
var sfapi={};sfapi.rootUrl='./';sfapi.rootUrlSuffix='__api';sfapi.scriptTagid='__sfapi';sfapi._getCallback=null;sfapi._api_token=null;sfapi.get=function(system,action,params,callback,format,apiToken,decodeExcludedParams)
{var scriptTag=document.getElementById(sfapi.scriptTagid);var head=document.getElementsByTagName("head").item(0);if(scriptTag){head.removeChild(scriptTag);}
scriptTag=document.createElement('script');scriptTag.setAttribute('id',sfapi.scriptTagid);scriptTag.setAttribute('type','text/javascript');head.appendChild(scriptTag);var src=sfapi.createURL(system,action,format,params,decodeExcludedParams);src=dfx.addToQueryString(src,{'_callback':'sfapi._getCallback'});if(apiToken){src=dfx.addToQueryString(src,{_api_token:apiToken});}else{src=sfapi.attachTokenToURL(src);}
sfapi._getCallback=function(data){if(data.error){alert('Invalid token');}else{if(callback){callback.call(null,data);}}};scriptTag.src=src;};sfapi.post=function(system,action,params,successCallback,errorCallback,format,decodeExcludedParams)
{var url=sfapi.createURL(system,action,format,{},decodeExcludedParams);var token=document.getElementById('__api_token');if(token){params._api_token=token.value;}
if(!errorCallback){errorCallback=function(xhr){if(console&&console.error&&xhr&&xhr.responseText){console.error(xhr.statusText);}};}
dfx.post(url,params,function(data){if(data.error){alert('Invalid token');}else if(successCallback){successCallback.call(null,data);}},errorCallback);};sfapi.createURL=function(system,action,format,params,decodeExcludedParams)
{params=params||{};format=format||'json';decodeExcludedParams=decodeExcludedParams||[];var queryStringParams=dfx.queryString(sfapi.rootUrl);sfapi.rootUrl=dfx.baseUrl(sfapi.rootUrl);var url=dfx.addToPath(sfapi.rootUrl,sfapi.rootUrlSuffix);url=dfx.addToPath(url,format+'/'+system+'/'+action);if(dfx.isEmpty(decodeExcludedParams)===false){var encodedExcludedParams=decodeExcludedParams.join('|');params.decodeExclude=encodedExcludedParams;}
queryStringParams=dfx.arrayMerge(queryStringParams,params);url=dfx.addToQueryString(url,queryStringParams);return url;};sfapi.attachTokenToURL=function(url)
{var token=document.getElementById('__api_token');if(token){var tokenParam={_api_token:token.value};url=dfx.addToQueryString(url,tokenParam);}
return url;};sfapi.login=function(uname,pass,callback)
{sfapi.get('API','getInterfaceUserToken',{username:uname,password:pass},function(data){if(data.result){var tokenElem=document.createElement('input');tokenElem.id='__api_token';tokenElem.type='hidden';tokenElem.value=data.result;document.body.appendChild(tokenElem);if(callback){callback.call(null,true);}}else{if(callback){callback.call(null,false);}}},'json');};sfapi.logout=function(callback)
{sfapi.get('User','logoutUser',{},function(success){if(success){var tokenElem=document.getElementById('__api_token');document.body.removeChild(tokenElem);if(callback){callback.call(null,true);}}else{if(callback){callback.call(null,false);}}});};var hexcase=0;var b64pad="";var chrsz=8;function hex_md5(s){return binl2hex(core_md5(str2binl(s),s.length*chrsz));}
function b64_md5(s){return binl2b64(core_md5(str2binl(s),s.length*chrsz));}
function str_md5(s){return binl2str(core_md5(str2binl(s),s.length*chrsz));}
function hex_hmac_md5(key,data){return binl2hex(core_hmac_md5(key,data));}
function b64_hmac_md5(key,data){return binl2b64(core_hmac_md5(key,data));}
function str_hmac_md5(key,data){return binl2str(core_hmac_md5(key,data));}
function md5_vm_test()
{return hex_md5("abc")=="900150983cd24fb0d6963f7d28e17f72";}
function core_md5(x,len)
{x[len>>5]|=0x80<<((len)%32);x[(((len+64)>>>9)<<4)+14]=len;var a=1732584193;var b=-271733879;var c=-1732584194;var d=271733878;for(var i=0;i<x.length;i+=16)
{var olda=a;var oldb=b;var oldc=c;var oldd=d;a=md5_ff(a,b,c,d,x[i+0],7,-680876936);d=md5_ff(d,a,b,c,x[i+1],12,-389564586);c=md5_ff(c,d,a,b,x[i+2],17,606105819);b=md5_ff(b,c,d,a,x[i+3],22,-1044525330);a=md5_ff(a,b,c,d,x[i+4],7,-176418897);d=md5_ff(d,a,b,c,x[i+5],12,1200080426);c=md5_ff(c,d,a,b,x[i+6],17,-1473231341);b=md5_ff(b,c,d,a,x[i+7],22,-45705983);a=md5_ff(a,b,c,d,x[i+8],7,1770035416);d=md5_ff(d,a,b,c,x[i+9],12,-1958414417);c=md5_ff(c,d,a,b,x[i+10],17,-42063);b=md5_ff(b,c,d,a,x[i+11],22,-1990404162);a=md5_ff(a,b,c,d,x[i+12],7,1804603682);d=md5_ff(d,a,b,c,x[i+13],12,-40341101);c=md5_ff(c,d,a,b,x[i+14],17,-1502002290);b=md5_ff(b,c,d,a,x[i+15],22,1236535329);a=md5_gg(a,b,c,d,x[i+1],5,-165796510);d=md5_gg(d,a,b,c,x[i+6],9,-1069501632);c=md5_gg(c,d,a,b,x[i+11],14,643717713);b=md5_gg(b,c,d,a,x[i+0],20,-373897302);a=md5_gg(a,b,c,d,x[i+5],5,-701558691);d=md5_gg(d,a,b,c,x[i+10],9,38016083);c=md5_gg(c,d,a,b,x[i+15],14,-660478335);b=md5_gg(b,c,d,a,x[i+4],20,-405537848);a=md5_gg(a,b,c,d,x[i+9],5,568446438);d=md5_gg(d,a,b,c,x[i+14],9,-1019803690);c=md5_gg(c,d,a,b,x[i+3],14,-187363961);b=md5_gg(b,c,d,a,x[i+8],20,1163531501);a=md5_gg(a,b,c,d,x[i+13],5,-1444681467);d=md5_gg(d,a,b,c,x[i+2],9,-51403784);c=md5_gg(c,d,a,b,x[i+7],14,1735328473);b=md5_gg(b,c,d,a,x[i+12],20,-1926607734);a=md5_hh(a,b,c,d,x[i+5],4,-378558);d=md5_hh(d,a,b,c,x[i+8],11,-2022574463);c=md5_hh(c,d,a,b,x[i+11],16,1839030562);b=md5_hh(b,c,d,a,x[i+14],23,-35309556);a=md5_hh(a,b,c,d,x[i+1],4,-1530992060);d=md5_hh(d,a,b,c,x[i+4],11,1272893353);c=md5_hh(c,d,a,b,x[i+7],16,-155497632);b=md5_hh(b,c,d,a,x[i+10],23,-1094730640);a=md5_hh(a,b,c,d,x[i+13],4,681279174);d=md5_hh(d,a,b,c,x[i+0],11,-358537222);c=md5_hh(c,d,a,b,x[i+3],16,-722521979);b=md5_hh(b,c,d,a,x[i+6],23,76029189);a=md5_hh(a,b,c,d,x[i+9],4,-640364487);d=md5_hh(d,a,b,c,x[i+12],11,-421815835);c=md5_hh(c,d,a,b,x[i+15],16,530742520);b=md5_hh(b,c,d,a,x[i+2],23,-995338651);a=md5_ii(a,b,c,d,x[i+0],6,-198630844);d=md5_ii(d,a,b,c,x[i+7],10,1126891415);c=md5_ii(c,d,a,b,x[i+14],15,-1416354905);b=md5_ii(b,c,d,a,x[i+5],21,-57434055);a=md5_ii(a,b,c,d,x[i+12],6,1700485571);d=md5_ii(d,a,b,c,x[i+3],10,-1894986606);c=md5_ii(c,d,a,b,x[i+10],15,-1051523);b=md5_ii(b,c,d,a,x[i+1],21,-2054922799);a=md5_ii(a,b,c,d,x[i+8],6,1873313359);d=md5_ii(d,a,b,c,x[i+15],10,-30611744);c=md5_ii(c,d,a,b,x[i+6],15,-1560198380);b=md5_ii(b,c,d,a,x[i+13],21,1309151649);a=md5_ii(a,b,c,d,x[i+4],6,-145523070);d=md5_ii(d,a,b,c,x[i+11],10,-1120210379);c=md5_ii(c,d,a,b,x[i+2],15,718787259);b=md5_ii(b,c,d,a,x[i+9],21,-343485551);a=safe_add(a,olda);b=safe_add(b,oldb);c=safe_add(c,oldc);d=safe_add(d,oldd);}
return Array(a,b,c,d);}
function md5_cmn(q,a,b,x,s,t)
{return safe_add(bit_rol(safe_add(safe_add(a,q),safe_add(x,t)),s),b);}
function md5_ff(a,b,c,d,x,s,t)
{return md5_cmn((b&c)|((~b)&d),a,b,x,s,t);}
function md5_gg(a,b,c,d,x,s,t)
{return md5_cmn((b&d)|(c&(~d)),a,b,x,s,t);}
function md5_hh(a,b,c,d,x,s,t)
{return md5_cmn(b^c^d,a,b,x,s,t);}
function md5_ii(a,b,c,d,x,s,t)
{return md5_cmn(c^(b|(~d)),a,b,x,s,t);}
function core_hmac_md5(key,data)
{var bkey=str2binl(key);if(bkey.length>16)bkey=core_md5(bkey,key.length*chrsz);var ipad=Array(16),opad=Array(16);for(var i=0;i<16;i++)
{ipad[i]=bkey[i]^0x36363636;opad[i]=bkey[i]^0x5C5C5C5C;}
var hash=core_md5(ipad.concat(str2binl(data)),512+data.length*chrsz);return core_md5(opad.concat(hash),512+128);}
function safe_add(x,y)
{var lsw=(x&0xFFFF)+(y&0xFFFF);var msw=(x>>16)+(y>>16)+(lsw>>16);return(msw<<16)|(lsw&0xFFFF);}
function bit_rol(num,cnt)
{return(num<<cnt)|(num>>>(32-cnt));}
function str2binl(str)
{var bin=Array();var mask=(1<<chrsz)-1;for(var i=0;i<str.length*chrsz;i+=chrsz)
bin[i>>5]|=(str.charCodeAt(i/chrsz)&mask)<<(i%32);return bin;}
function binl2str(bin)
{var str="";var mask=(1<<chrsz)-1;for(var i=0;i<bin.length*32;i+=chrsz)
str+=String.fromCharCode((bin[i>>5]>>>(i%32))&mask);return str;}
function binl2hex(binarray)
{var hex_tab=hexcase?"0123456789ABCDEF":"0123456789abcdef";var str="";for(var i=0;i<binarray.length*4;i++)
{str+=hex_tab.charAt((binarray[i>>2]>>((i%4)*8+4))&0xF)+
hex_tab.charAt((binarray[i>>2]>>((i%4)*8))&0xF);}
return str;}
function binl2b64(binarray)
{var tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var str="";for(var i=0;i<binarray.length*4;i+=3)
{var triplet=(((binarray[i>>2]>>8*(i%4))&0xFF)<<16)|(((binarray[i+1>>2]>>8*((i+1)%4))&0xFF)<<8)|((binarray[i+2>>2]>>8*((i+2)%4))&0xFF);for(var j=0;j<4;j++)
{if(i*8+j*6>binarray.length*32)str+=b64pad;else str+=tab.charAt((triplet>>6*(3-j))&0x3F);}}
return str;}
var hexcase=0;var b64pad="";var chrsz=8;function hex_sha1(s){return binb2hex(core_sha1(str2binb(s),s.length*chrsz));}
function b64_sha1(s){return binb2b64(core_sha1(str2binb(s),s.length*chrsz));}
function str_sha1(s){return binb2str(core_sha1(str2binb(s),s.length*chrsz));}
function hex_hmac_sha1(key,data){return binb2hex(core_hmac_sha1(key,data));}
function b64_hmac_sha1(key,data){return binb2b64(core_hmac_sha1(key,data));}
function str_hmac_sha1(key,data){return binb2str(core_hmac_sha1(key,data));}
function sha1_vm_test()
{return hex_sha1("abc")=="a9993e364706816aba3e25717850c26c9cd0d89d";}
function core_sha1(x,len)
{x[len>>5]|=0x80<<(24-len%32);x[((len+64>>9)<<4)+15]=len;var w=Array(80);var a=1732584193;var b=-271733879;var c=-1732584194;var d=271733878;var e=-1009589776;for(var i=0;i<x.length;i+=16)
{var olda=a;var oldb=b;var oldc=c;var oldd=d;var olde=e;for(var j=0;j<80;j++)
{if(j<16)w[j]=x[i+j];else w[j]=rol(w[j-3]^w[j-8]^w[j-14]^w[j-16],1);var t=safe_add(safe_add(rol(a,5),sha1_ft(j,b,c,d)),safe_add(safe_add(e,w[j]),sha1_kt(j)));e=d;d=c;c=rol(b,30);b=a;a=t;}
a=safe_add(a,olda);b=safe_add(b,oldb);c=safe_add(c,oldc);d=safe_add(d,oldd);e=safe_add(e,olde);}
return Array(a,b,c,d,e);}
function sha1_ft(t,b,c,d)
{if(t<20)return(b&c)|((~b)&d);if(t<40)return b^c^d;if(t<60)return(b&c)|(b&d)|(c&d);return b^c^d;}
function sha1_kt(t)
{return(t<20)?1518500249:(t<40)?1859775393:(t<60)?-1894007588:-899497514;}
function core_hmac_sha1(key,data)
{var bkey=str2binb(key);if(bkey.length>16)bkey=core_sha1(bkey,key.length*chrsz);var ipad=Array(16),opad=Array(16);for(var i=0;i<16;i++)
{ipad[i]=bkey[i]^0x36363636;opad[i]=bkey[i]^0x5C5C5C5C;}
var hash=core_sha1(ipad.concat(str2binb(data)),512+data.length*chrsz);return core_sha1(opad.concat(hash),512+160);}
function safe_add(x,y)
{var lsw=(x&0xFFFF)+(y&0xFFFF);var msw=(x>>16)+(y>>16)+(lsw>>16);return(msw<<16)|(lsw&0xFFFF);}
function rol(num,cnt)
{return(num<<cnt)|(num>>>(32-cnt));}
function str2binb(str)
{var bin=Array();var mask=(1<<chrsz)-1;for(var i=0;i<str.length*chrsz;i+=chrsz)
bin[i>>5]|=(str.charCodeAt(i/chrsz)&mask)<<(32-chrsz-i%32);return bin;}
function binb2str(bin)
{var str="";var mask=(1<<chrsz)-1;for(var i=0;i<bin.length*32;i+=chrsz)
str+=String.fromCharCode((bin[i>>5]>>>(32-chrsz-i%32))&mask);return str;}
function binb2hex(binarray)
{var hex_tab=hexcase?"0123456789ABCDEF":"0123456789abcdef";var str="";for(var i=0;i<binarray.length*4;i++)
{str+=hex_tab.charAt((binarray[i>>2]>>((3-i%4)*8+4))&0xF)+
hex_tab.charAt((binarray[i>>2]>>((3-i%4)*8))&0xF);}
return str;}
function binb2b64(binarray)
{var tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var str="";for(var i=0;i<binarray.length*4;i+=3)
{var triplet=(((binarray[i>>2]>>8*(3-i%4))&0xFF)<<16)|(((binarray[i+1>>2]>>8*(3-(i+1)%4))&0xFF)<<8)|((binarray[i+2>>2]>>8*(3-(i+2)%4))&0xFF);for(var j=0;j<4;j++)
{if(i*8+j*6>binarray.length*32)str+=b64pad;else str+=tab.charAt((triplet>>6*(3-j))&0x3F);}}
return str;}
function AccountManagerAssetType(assetid)
{this.assetid=assetid;var username=document.getElementById('form'+assetid+'-qdusername');if(username){username.readOnly=true;}}
AccountManagerAssetType.prototype={attachValidation:function(options)
{for(var qid in options){if(options[qid].hasOwnProperty('rules')===true){for(var type in options[qid].rules){if(type==='email'){this.attachTextValidation(qid,options[qid].rules);}else if(type==='password'){var qnType=options[qid].type;this.attachPasswordValidation(qid,type,qnType,options[qid].rules[type]);}}}}},attachPasswordValidation:function(qid,type,qnType,options)
{var self=this;var id='form'+this.assetid+'-q'+qid;var input=null;var confirm=null;if(qnType==='passwordchange'){input=document.getElementById(id);if(typeof input==='undefined'||input===null){return;}
input.onkeyup=function(evt){self.passwordValidation(id,this.value);};confirm=document.getElementById(id+'-confirm');if(typeof confirm==='undefined'||confirm===null){return;}
confirm.onkeyup=function(evt){self.passwordMatch(id,this.value);};}},getOption:function(options,key)
{if(options.hasOwnProperty(key)===true){return options[key];}else{return null;}},attachTextValidation:function(qid,options)
{var self=this;var id='form'+this.assetid+'-q'+qid;var input=document.getElementById(id);if(typeof input==='undefined'||input===null){return;}
if(options.hasOwnProperty('email')===true){input.onblur=function(evt){self.emailValidation(id,this.value,options.email);};}},emailValidation:function(id,value,options)
{var error=document.getElementById(id+'-error');error.innerHTML='';var ret=false;error.style.display='none';if(value===''){return true;}
var emailV=new RuleTypeEmailWidgetType(id,value);ret=emailV.validate();if(ret===false){var emailMsg=this.getOption(options,'msg');error.innerHTML=emailMsg;error.style.display='block';}
return ret;},passwordValidation:function(id,value)
{var passwordV=new RuleTypePasswordWidgetType(id,value);passwordV.desc=document.getElementById(id+'-pwdesc');passwordV.update();},passwordMatch:function(id,value)
{var password=document.getElementById(id).value;var confirm=document.getElementById(id+'-confirm').value;var msg=document.getElementById(id+'-matched');if(password!==confirm){msg.innerHTML='Not Matched';}else{msg.innerHTML='Matched';}}};function CustomFormAssetType(assetid)
{this.assetid=assetid;}
CustomFormAssetType.prototype={attachValidation:function(options)
{for(var qid in options){var tmp={};if(options[qid].hasOwnProperty('rules')===true){for(var type in options[qid].rules){if(type==='len'||type==='email'){if(options[qid].type==='text'){tmp[type]=options[qid].rules[type];}}else{var qnType=options[qid].type;this.attach(qid,type,qnType,options[qid].rules[type]);}}}
if(tmp!=={}){this.attachTextValidation(qid,tmp);}}},attachTextValidation:function(qid,options)
{var self=this;var id='form'+this.assetid+'-q'+qid;var input=document.getElementById(id);if(typeof input==='undefined'||input===null){return;}
if(options.hasOwnProperty('len')===true&&options.hasOwnProperty('email')===true){input.onblur=function(evt){var ret=self.lenValidation(id,this.value,options.len);if(ret===true){self.emailValidation(id,this.value,options.email);}};}else if(options.hasOwnProperty('len')===true){input.onblur=function(evt){self.lenValidation(id,this.value,options.len);};}else if(options.hasOwnProperty('email')===true){input.onblur=function(evt){self.emailValidation(id,this.value,options.email);};}},attach:function(qid,type,qnType,options)
{var self=this;var id='form'+this.assetid+'-q'+qid;var input=null;if(type==='number'){if(qnType!=='number'){return;}
input=document.getElementById(id);if(typeof input==='undefined'||input===null){return;}
input.onblur=function(evt){self.numberValidation(id,this.value,options);};}else if(type==='selcount'){if(qnType==='dropdown'){input=document.getElementById(id);if(typeof input==='undefined'||input===null){return;}
input.onblur=function(evt){var len=this.length;var count=0;for(var i=0;i<len;i++){if(this.options[i].selected===true){count++;}}
self.dropdownCountValidation(id,count,options);};}else if(qnType==='options'){var index=0;var count=0;var checkbox=document.getElementById(id+'-'+index);while(typeof checkbox!=='undefined'&&checkbox!==null){checkbox.onblur=function(evt){self.optionsCountValidation(id,options);};index++;checkbox=document.getElementById(id+'-'+index);}}}else if(qnType==='passwordchange'){input=document.getElementById(id);if(typeof input==='undefined'||input===null){return;}
input.onkeyup=function(evt){self.passwordValidation(id,this.value);};confirm=document.getElementById(id+'-confirm');if(typeof confirm==='undefined'||confirm===null){return;}
confirm.onkeyup=function(evt){self.passwordMatch(id,this.value);};}},getOption:function(options,key)
{if(options.hasOwnProperty(key)===true){return options[key];}else{return null;}},lenValidation:function(id,value,options)
{var error=document.getElementById(id+'-error');if(!error){return true;}
error.innerHTML='';var ret=false;error.style.display='none';if(value===''){return true;}
var len=this.getOption(options,'len');var lenOp=this.getOption(options,'lenOp');if(len!==null&&len!==''&&lenOp!==null){var lenV=new RuleTypeLengthWidgetType(id,value,lenOp,len);ret=lenV.validate();if(ret===false){var lenMsg=this.getOption(options,'msg');error.innerHTML=lenMsg;error.style.display='block';}
return ret;}},emailValidation:function(id,value,options)
{var error=document.getElementById(id+'-error');error.innerHTML='';var ret=false;error.style.display='none';if(value===''){return true;}
var emailV=new RuleTypeEmailWidgetType(id,value);ret=emailV.validate();if(ret===false){var emailMsg=this.getOption(options,'msg');error.innerHTML=emailMsg;error.style.display='block';}
return ret;},numberValidation:function(id,value,options)
{var msg=this.getOption(options,'msg');var error=document.getElementById(id+'-error');error.innerHTML='';var ret=false;error.style.display='none';if(value===''){return true;}
var isNum=new RuleTypeNumberWidgetType(id,value);ret=isNum.validate();if(ret===false){error.innerHTML=msg;error.style.display='block';return false;}
var min=this.getOption(options,'min');var max=this.getOption(options,'max');var magnitude=new RuleTypeMagnitudeWidgetType(id,value,min,max);ret=magnitude.validate();if(ret===false){error.innerHTML=msg;error.style.display='block';return false;}
var intOnly=this.getOption(options,'intOnly');if(intOnly===true){var rule=new RuleTypeIntegerWidgetType(id,value,options.intOnly);ret=rule.validate();if(ret===false){error.innerHTML=msg;error.style.display='block';return false;}}
return true;},dropdownCountValidation:function(id,value,options)
{var error=document.getElementById(id+'-error');error.innerHTML='';var ret=false;error.style.display='none';if(value===''){return;}
var count=this.getOption(options,'countVal');var countOp=this.getOption(options,'countOp');if(count!==null&&count!==''&&countOp!==null){var countV=new RuleTypeLengthWidgetType(id,value,countOp,count);countV.setPlain(true);ret=countV.validate();if(ret===false){var msg=this.getOption(options,'msg');error.innerHTML=msg;error.style.display='block';return;}}},optionsCountValidation:function(id,options)
{var error=document.getElementById(id+'-error');error.innerHTML='';var ret=false;error.style.display='none';var index=0;var x=0;var checkbox=document.getElementById(id+'-'+index);while(typeof checkbox!=='undefined'&&checkbox!==null){if(checkbox.checked===true){x++;}
index++;checkbox=document.getElementById(id+'-'+index);}
var count=this.getOption(options,'countVal');var countOp=this.getOption(options,'countOp');if(count!==null&&count!==''&&countOp!==null){var countV=new RuleTypeLengthWidgetType(id,x,countOp,count);countV.setPlain(true);ret=countV.validate();if(ret===false){var countMsg=this.getOption(options,'msg');error.innerHTML=countMsg;error.style.display='block';return;}}},passwordValidation:function(id,value)
{var passwordV=new RuleTypePasswordWidgetType(id,value);passwordV.desc=document.getElementById(id+'-pwdesc');passwordV.update();},passwordMatch:function(id,value)
{var password=document.getElementById(id).value;var confirm=document.getElementById(id+'-confirm').value;var msg=document.getElementById(id+'-matched');if(password!==confirm){msg.innerHTML='Not Matched';}else{msg.innerHTML='Matched';}}};(function(window,undefined){var document=window.document;var jQuery=(function(){var jQuery=function(selector,context){return new jQuery.fn.init(selector,context,rootjQuery);},_jQuery=window.jQuery,_$=window.$,rootjQuery,quickExpr=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,rnotwhite=/\S/,trimLeft=/^\s+/,trimRight=/\s+$/,rdigit=/\d/,rsingleTag=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,rvalidchars=/^[\],:{}\s]*$/,rvalidescape=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,rvalidtokens=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,rvalidbraces=/(?:^|:|,)(?:\s*\[)+/g,rwebkit=/(webkit)[ \/]([\w.]+)/,ropera=/(opera)(?:.*version)?[ \/]([\w.]+)/,rmsie=/(msie) ([\w.]+)/,rmozilla=/(mozilla)(?:.*? rv:([\w.]+))?/,userAgent=navigator.userAgent,browserMatch,readyBound=false,readyList,promiseMethods="then done fail isResolved isRejected promise".split(" "),DOMContentLoaded,toString=Object.prototype.toString,hasOwn=Object.prototype.hasOwnProperty,push=Array.prototype.push,slice=Array.prototype.slice,trim=String.prototype.trim,indexOf=Array.prototype.indexOf,class2type={};jQuery.fn=jQuery.prototype={constructor:jQuery,init:function(selector,context,rootjQuery){var match,elem,ret,doc;if(!selector){return this;}
if(selector.nodeType){this.context=this[0]=selector;this.length=1;return this;}
if(selector==="body"&&!context&&document.body){this.context=document;this[0]=document.body;this.selector="body";this.length=1;return this;}
if(typeof selector==="string"){match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1]){context=context instanceof jQuery?context[0]:context;doc=(context?context.ownerDocument||context:document);ret=rsingleTag.exec(selector);if(ret){if(jQuery.isPlainObject(context)){selector=[document.createElement(ret[1])];jQuery.fn.attr.call(selector,context,true);}else{selector=[doc.createElement(ret[1])];}}else{ret=jQuery.buildFragment([match[1]],[doc]);selector=(ret.cacheable?jQuery.clone(ret.fragment):ret.fragment).childNodes;}
return jQuery.merge(this,selector);}else{elem=document.getElementById(match[2]);if(elem&&elem.parentNode){if(elem.id!==match[2]){return rootjQuery.find(selector);}
this.length=1;this[0]=elem;}
this.context=document;this.selector=selector;return this;}}else if(!context||context.jquery){return(context||rootjQuery).find(selector);}else{return this.constructor(context).find(selector);}}else if(jQuery.isFunction(selector)){return rootjQuery.ready(selector);}
if(selector.selector!==undefined){this.selector=selector.selector;this.context=selector.context;}
return jQuery.makeArray(selector,this);},selector:"",jquery:"1.5.1",length:0,size:function(){return this.length;},toArray:function(){return slice.call(this,0);},get:function(num){return num==null?this.toArray():(num<0?this[this.length+num]:this[num]);},pushStack:function(elems,name,selector){var ret=this.constructor();if(jQuery.isArray(elems)){push.apply(ret,elems);}else{jQuery.merge(ret,elems);}
ret.prevObject=this;ret.context=this.context;if(name==="find"){ret.selector=this.selector+(this.selector?" ":"")+selector;}else if(name){ret.selector=this.selector+"."+name+"("+selector+")";}
return ret;},each:function(callback,args){return jQuery.each(this,callback,args);},ready:function(fn){jQuery.bindReady();readyList.done(fn);return this;},eq:function(i){return i===-1?this.slice(i):this.slice(i,+i+1);},first:function(){return this.eq(0);},last:function(){return this.eq(-1);},slice:function(){return this.pushStack(slice.apply(this,arguments),"slice",slice.call(arguments).join(","));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},end:function(){return this.prevObject||this.constructor(null);},push:push,sort:[].sort,splice:[].splice};jQuery.fn.init.prototype=jQuery.fn;jQuery.extend=jQuery.fn.extend=function(){var options,name,src,copy,copyIsArray,clone,target=arguments[0]||{},i=1,length=arguments.length,deep=false;if(typeof target==="boolean"){deep=target;target=arguments[1]||{};i=2;}
if(typeof target!=="object"&&!jQuery.isFunction(target)){target={};}
if(length===i){target=this;--i;}
for(;i<length;i++){if((options=arguments[i])!=null){for(name in options){src=target[name];copy=options[name];if(target===copy){continue;}
if(deep&&copy&&(jQuery.isPlainObject(copy)||(copyIsArray=jQuery.isArray(copy)))){if(copyIsArray){copyIsArray=false;clone=src&&jQuery.isArray(src)?src:[];}else{clone=src&&jQuery.isPlainObject(src)?src:{};}
target[name]=jQuery.extend(deep,clone,copy);}else if(copy!==undefined){target[name]=copy;}}}}
return target;};jQuery.extend({noConflict:function(deep){window.$=_$;if(deep){window.jQuery=_jQuery;}
return jQuery;},isReady:false,readyWait:1,ready:function(wait){if(wait===true){jQuery.readyWait--;}
if(!jQuery.readyWait||(wait!==true&&!jQuery.isReady)){if(!document.body){return setTimeout(jQuery.ready,1);}
jQuery.isReady=true;if(wait!==true&&--jQuery.readyWait>0){return;}
readyList.resolveWith(document,[jQuery]);if(jQuery.fn.trigger){jQuery(document).trigger("ready").unbind("ready");}}},bindReady:function(){if(readyBound){return;}
readyBound=true;if(document.readyState==="complete"){return setTimeout(jQuery.ready,1);}
if(document.addEventListener){document.addEventListener("DOMContentLoaded",DOMContentLoaded,false);window.addEventListener("load",jQuery.ready,false);}else if(document.attachEvent){document.attachEvent("onreadystatechange",DOMContentLoaded);window.attachEvent("onload",jQuery.ready);var toplevel=false;try{toplevel=window.frameElement==null;}catch(e){}
if(document.documentElement.doScroll&&toplevel){doScrollCheck();}}},isFunction:function(obj){return jQuery.type(obj)==="function";},isArray:Array.isArray||function(obj){return jQuery.type(obj)==="array";},isWindow:function(obj){return obj&&typeof obj==="object"&&"setInterval"in obj;},isNaN:function(obj){return obj==null||!rdigit.test(obj)||isNaN(obj);},type:function(obj){return obj==null?String(obj):class2type[toString.call(obj)]||"object";},isPlainObject:function(obj){if(!obj||jQuery.type(obj)!=="object"||obj.nodeType||jQuery.isWindow(obj)){return false;}
if(obj.constructor&&!hasOwn.call(obj,"constructor")&&!hasOwn.call(obj.constructor.prototype,"isPrototypeOf")){return false;}
var key;for(key in obj){}
return key===undefined||hasOwn.call(obj,key);},isEmptyObject:function(obj){for(var name in obj){return false;}
return true;},error:function(msg){throw msg;},parseJSON:function(data){if(typeof data!=="string"||!data){return null;}
data=jQuery.trim(data);if(rvalidchars.test(data.replace(rvalidescape,"@").replace(rvalidtokens,"]").replace(rvalidbraces,""))){return window.JSON&&window.JSON.parse?window.JSON.parse(data):(new Function("return "+data))();}else{jQuery.error("Invalid JSON: "+data);}},parseXML:function(data,xml,tmp){if(window.DOMParser){tmp=new DOMParser();xml=tmp.parseFromString(data,"text/xml");}else{xml=new ActiveXObject("Microsoft.XMLDOM");xml.async="false";xml.loadXML(data);}
tmp=xml.documentElement;if(!tmp||!tmp.nodeName||tmp.nodeName==="parsererror"){jQuery.error("Invalid XML: "+data);}
return xml;},noop:function(){},globalEval:function(data){if(data&&rnotwhite.test(data)){var head=document.head||document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");if(jQuery.support.scriptEval()){script.appendChild(document.createTextNode(data));}else{script.text=data;}
head.insertBefore(script,head.firstChild);head.removeChild(script);}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()===name.toUpperCase();},each:function(object,callback,args){var name,i=0,length=object.length,isObj=length===undefined||jQuery.isFunction(object);if(args){if(isObj){for(name in object){if(callback.apply(object[name],args)===false){break;}}}else{for(;i<length;){if(callback.apply(object[i++],args)===false){break;}}}}else{if(isObj){for(name in object){if(callback.call(object[name],name,object[name])===false){break;}}}else{for(var value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}}
return object;},trim:trim?function(text){return text==null?"":trim.call(text);}:function(text){return text==null?"":text.toString().replace(trimLeft,"").replace(trimRight,"");},makeArray:function(array,results){var ret=results||[];if(array!=null){var type=jQuery.type(array);if(array.length==null||type==="string"||type==="function"||type==="regexp"||jQuery.isWindow(array)){push.call(ret,array);}else{jQuery.merge(ret,array);}}
return ret;},inArray:function(elem,array){if(array.indexOf){return array.indexOf(elem);}
for(var i=0,length=array.length;i<length;i++){if(array[i]===elem){return i;}}
return-1;},merge:function(first,second){var i=first.length,j=0;if(typeof second.length==="number"){for(var l=second.length;j<l;j++){first[i++]=second[j];}}else{while(second[j]!==undefined){first[i++]=second[j++];}}
first.length=i;return first;},grep:function(elems,callback,inv){var ret=[],retVal;inv=!!inv;for(var i=0,length=elems.length;i<length;i++){retVal=!!callback(elems[i],i);if(inv!==retVal){ret.push(elems[i]);}}
return ret;},map:function(elems,callback,arg){var ret=[],value;for(var i=0,length=elems.length;i<length;i++){value=callback(elems[i],i,arg);if(value!=null){ret[ret.length]=value;}}
return ret.concat.apply([],ret);},guid:1,proxy:function(fn,proxy,thisObject){if(arguments.length===2){if(typeof proxy==="string"){thisObject=fn;fn=thisObject[proxy];proxy=undefined;}else if(proxy&&!jQuery.isFunction(proxy)){thisObject=proxy;proxy=undefined;}}
if(!proxy&&fn){proxy=function(){return fn.apply(thisObject||this,arguments);};}
if(fn){proxy.guid=fn.guid=fn.guid||proxy.guid||jQuery.guid++;}
return proxy;},access:function(elems,key,value,exec,fn,pass){var length=elems.length;if(typeof key==="object"){for(var k in key){jQuery.access(elems,k,key[k],exec,fn,value);}
return elems;}
if(value!==undefined){exec=!pass&&exec&&jQuery.isFunction(value);for(var i=0;i<length;i++){fn(elems[i],key,exec?value.call(elems[i],i,fn(elems[i],key)):value,pass);}
return elems;}
return length?fn(elems[0],key):undefined;},now:function(){return(new Date()).getTime();},_Deferred:function(){var
callbacks=[],fired,firing,cancelled,deferred={done:function(){if(!cancelled){var args=arguments,i,length,elem,type,_fired;if(fired){_fired=fired;fired=0;}
for(i=0,length=args.length;i<length;i++){elem=args[i];type=jQuery.type(elem);if(type==="array"){deferred.done.apply(deferred,elem);}else if(type==="function"){callbacks.push(elem);}}
if(_fired){deferred.resolveWith(_fired[0],_fired[1]);}}
return this;},resolveWith:function(context,args){if(!cancelled&&!fired&&!firing){firing=1;try{while(callbacks[0]){callbacks.shift().apply(context,args);}}
catch(e){throw e;}
finally{fired=[context,args];firing=0;}}
return this;},resolve:function(){deferred.resolveWith(jQuery.isFunction(this.promise)?this.promise():this,arguments);return this;},isResolved:function(){return!!(firing||fired);},cancel:function(){cancelled=1;callbacks=[];return this;}};return deferred;},Deferred:function(func){var deferred=jQuery._Deferred(),failDeferred=jQuery._Deferred(),promise;jQuery.extend(deferred,{then:function(doneCallbacks,failCallbacks){deferred.done(doneCallbacks).fail(failCallbacks);return this;},fail:failDeferred.done,rejectWith:failDeferred.resolveWith,reject:failDeferred.resolve,isRejected:failDeferred.isResolved,promise:function(obj){if(obj==null){if(promise){return promise;}
promise=obj={};}
var i=promiseMethods.length;while(i--){obj[promiseMethods[i]]=deferred[promiseMethods[i]];}
return obj;}});deferred.done(failDeferred.cancel).fail(deferred.cancel);delete deferred.cancel;if(func){func.call(deferred,deferred);}
return deferred;},when:function(object){var lastIndex=arguments.length,deferred=lastIndex<=1&&object&&jQuery.isFunction(object.promise)?object:jQuery.Deferred(),promise=deferred.promise();if(lastIndex>1){var array=slice.call(arguments,0),count=lastIndex,iCallback=function(index){return function(value){array[index]=arguments.length>1?slice.call(arguments,0):value;if(!(--count)){deferred.resolveWith(promise,array);}};};while((lastIndex--)){object=array[lastIndex];if(object&&jQuery.isFunction(object.promise)){object.promise().then(iCallback(lastIndex),deferred.reject);}else{--count;}}
if(!count){deferred.resolveWith(promise,array);}}else if(deferred!==object){deferred.resolve(object);}
return promise;},uaMatch:function(ua){ua=ua.toLowerCase();var match=rwebkit.exec(ua)||ropera.exec(ua)||rmsie.exec(ua)||ua.indexOf("compatible")<0&&rmozilla.exec(ua)||[];return{browser:match[1]||"",version:match[2]||"0"};},sub:function(){function jQuerySubclass(selector,context){return new jQuerySubclass.fn.init(selector,context);}
jQuery.extend(true,jQuerySubclass,this);jQuerySubclass.superclass=this;jQuerySubclass.fn=jQuerySubclass.prototype=this();jQuerySubclass.fn.constructor=jQuerySubclass;jQuerySubclass.subclass=this.subclass;jQuerySubclass.fn.init=function init(selector,context){if(context&&context instanceof jQuery&&!(context instanceof jQuerySubclass)){context=jQuerySubclass(context);}
return jQuery.fn.init.call(this,selector,context,rootjQuerySubclass);};jQuerySubclass.fn.init.prototype=jQuerySubclass.fn;var rootjQuerySubclass=jQuerySubclass(document);return jQuerySubclass;},browser:{}});readyList=jQuery._Deferred();jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(i,name){class2type["[object "+name+"]"]=name.toLowerCase();});browserMatch=jQuery.uaMatch(userAgent);if(browserMatch.browser){jQuery.browser[browserMatch.browser]=true;jQuery.browser.version=browserMatch.version;}
if(jQuery.browser.webkit){jQuery.browser.safari=true;}
if(indexOf){jQuery.inArray=function(elem,array){return indexOf.call(array,elem);};}
if(rnotwhite.test("\xA0")){trimLeft=/^[\s\xA0]+/;trimRight=/[\s\xA0]+$/;}
rootjQuery=jQuery(document);if(document.addEventListener){DOMContentLoaded=function(){document.removeEventListener("DOMContentLoaded",DOMContentLoaded,false);jQuery.ready();};}else if(document.attachEvent){DOMContentLoaded=function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",DOMContentLoaded);jQuery.ready();}};}
function doScrollCheck(){if(jQuery.isReady){return;}
try{document.documentElement.doScroll("left");}catch(e){setTimeout(doScrollCheck,1);return;}
jQuery.ready();}
return jQuery;})();(function(){jQuery.support={};var div=document.createElement("div");div.style.display="none";div.innerHTML="   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var all=div.getElementsByTagName("*"),a=div.getElementsByTagName("a")[0],select=document.createElement("select"),opt=select.appendChild(document.createElement("option")),input=div.getElementsByTagName("input")[0];if(!all||!all.length||!a){return;}
jQuery.support={leadingWhitespace:div.firstChild.nodeType===3,tbody:!div.getElementsByTagName("tbody").length,htmlSerialize:!!div.getElementsByTagName("link").length,style:/red/.test(a.getAttribute("style")),hrefNormalized:a.getAttribute("href")==="/a",opacity:/^0.55$/.test(a.style.opacity),cssFloat:!!a.style.cssFloat,checkOn:input.value==="on",optSelected:opt.selected,deleteExpando:true,optDisabled:false,checkClone:false,noCloneEvent:true,noCloneChecked:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};input.checked=true;jQuery.support.noCloneChecked=input.cloneNode(true).checked;select.disabled=true;jQuery.support.optDisabled=!opt.disabled;var _scriptEval=null;jQuery.support.scriptEval=function(){if(_scriptEval===null){var root=document.documentElement,script=document.createElement("script"),id="script"+jQuery.now();try{script.appendChild(document.createTextNode("window."+id+"=1;"));}catch(e){}
root.insertBefore(script,root.firstChild);if(window[id]){_scriptEval=true;delete window[id];}else{_scriptEval=false;}
root.removeChild(script);root=script=id=null;}
return _scriptEval;};try{delete div.test;}catch(e){jQuery.support.deleteExpando=false;}
if(!div.addEventListener&&div.attachEvent&&div.fireEvent){div.attachEvent("onclick",function click(){jQuery.support.noCloneEvent=false;div.detachEvent("onclick",click);});div.cloneNode(true).fireEvent("onclick");}
div=document.createElement("div");div.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";var fragment=document.createDocumentFragment();fragment.appendChild(div.firstChild);jQuery.support.checkClone=fragment.cloneNode(true).cloneNode(true).lastChild.checked;jQuery(function(){var div=document.createElement("div"),body=document.getElementsByTagName("body")[0];if(!body){return;}
div.style.width=div.style.paddingLeft="1px";body.appendChild(div);jQuery.boxModel=jQuery.support.boxModel=div.offsetWidth===2;if("zoom"in div.style){div.style.display="inline";div.style.zoom=1;jQuery.support.inlineBlockNeedsLayout=div.offsetWidth===2;div.style.display="";div.innerHTML="<div style='width:4px;'></div>";jQuery.support.shrinkWrapBlocks=div.offsetWidth!==2;}
div.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";var tds=div.getElementsByTagName("td");jQuery.support.reliableHiddenOffsets=tds[0].offsetHeight===0;tds[0].style.display="";tds[1].style.display="none";jQuery.support.reliableHiddenOffsets=jQuery.support.reliableHiddenOffsets&&tds[0].offsetHeight===0;div.innerHTML="";body.removeChild(div).style.display="none";div=tds=null;});var eventSupported=function(eventName){var el=document.createElement("div");eventName="on"+eventName;if(!el.attachEvent){return true;}
var isSupported=(eventName in el);if(!isSupported){el.setAttribute(eventName,"return;");isSupported=typeof el[eventName]==="function";}
el=null;return isSupported;};jQuery.support.submitBubbles=eventSupported("submit");jQuery.support.changeBubbles=eventSupported("change");div=all=a=null;})();var rbrace=/^(?:\{.*\}|\[.*\])$/;jQuery.extend({cache:{},uuid:0,expando:"jQuery"+(jQuery.fn.jquery+Math.random()).replace(/\D/g,""),noData:{"embed":true,"object":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000","applet":true},hasData:function(elem){elem=elem.nodeType?jQuery.cache[elem[jQuery.expando]]:elem[jQuery.expando];return!!elem&&!isEmptyDataObject(elem);},data:function(elem,name,data,pvt){if(!jQuery.acceptData(elem)){return;}
var internalKey=jQuery.expando,getByName=typeof name==="string",thisCache,isNode=elem.nodeType,cache=isNode?jQuery.cache:elem,id=isNode?elem[jQuery.expando]:elem[jQuery.expando]&&jQuery.expando;if((!id||(pvt&&id&&!cache[id][internalKey]))&&getByName&&data===undefined){return;}
if(!id){if(isNode){elem[jQuery.expando]=id=++jQuery.uuid;}else{id=jQuery.expando;}}
if(!cache[id]){cache[id]={};if(!isNode){cache[id].toJSON=jQuery.noop;}}
if(typeof name==="object"||typeof name==="function"){if(pvt){cache[id][internalKey]=jQuery.extend(cache[id][internalKey],name);}else{cache[id]=jQuery.extend(cache[id],name);}}
thisCache=cache[id];if(pvt){if(!thisCache[internalKey]){thisCache[internalKey]={};}
thisCache=thisCache[internalKey];}
if(data!==undefined){thisCache[name]=data;}
if(name==="events"&&!thisCache[name]){return thisCache[internalKey]&&thisCache[internalKey].events;}
return getByName?thisCache[name]:thisCache;},removeData:function(elem,name,pvt){if(!jQuery.acceptData(elem)){return;}
var internalKey=jQuery.expando,isNode=elem.nodeType,cache=isNode?jQuery.cache:elem,id=isNode?elem[jQuery.expando]:jQuery.expando;if(!cache[id]){return;}
if(name){var thisCache=pvt?cache[id][internalKey]:cache[id];if(thisCache){delete thisCache[name];if(!isEmptyDataObject(thisCache)){return;}}}
if(pvt){delete cache[id][internalKey];if(!isEmptyDataObject(cache[id])){return;}}
var internalCache=cache[id][internalKey];if(jQuery.support.deleteExpando||cache!=window){delete cache[id];}else{cache[id]=null;}
if(internalCache){cache[id]={};if(!isNode){cache[id].toJSON=jQuery.noop;}
cache[id][internalKey]=internalCache;}else if(isNode){if(jQuery.support.deleteExpando){delete elem[jQuery.expando];}else if(elem.removeAttribute){elem.removeAttribute(jQuery.expando);}else{elem[jQuery.expando]=null;}}},_data:function(elem,name,data){return jQuery.data(elem,name,data,true);},acceptData:function(elem){if(elem.nodeName){var match=jQuery.noData[elem.nodeName.toLowerCase()];if(match){return!(match===true||elem.getAttribute("classid")!==match);}}
return true;}});jQuery.fn.extend({data:function(key,value){var data=null;if(typeof key==="undefined"){if(this.length){data=jQuery.data(this[0]);if(this[0].nodeType===1){var attr=this[0].attributes,name;for(var i=0,l=attr.length;i<l;i++){name=attr[i].name;if(name.indexOf("data-")===0){name=name.substr(5);dataAttr(this[0],name,data[name]);}}}}
return data;}else if(typeof key==="object"){return this.each(function(){jQuery.data(this,key);});}
var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length){data=jQuery.data(this[0],key);data=dataAttr(this[0],key,data);}
return data===undefined&&parts[1]?this.data(parts[0]):data;}else{return this.each(function(){var $this=jQuery(this),args=[parts[0],value];$this.triggerHandler("setData"+parts[1]+"!",args);jQuery.data(this,key,value);$this.triggerHandler("changeData"+parts[1]+"!",args);});}},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});}});function dataAttr(elem,key,data){if(data===undefined&&elem.nodeType===1){data=elem.getAttribute("data-"+key);if(typeof data==="string"){try{data=data==="true"?true:data==="false"?false:data==="null"?null:!jQuery.isNaN(data)?parseFloat(data):rbrace.test(data)?jQuery.parseJSON(data):data;}catch(e){}
jQuery.data(elem,key,data);}else{data=undefined;}}
return data;}
function isEmptyDataObject(obj){for(var name in obj){if(name!=="toJSON"){return false;}}
return true;}
jQuery.extend({queue:function(elem,type,data){if(!elem){return;}
type=(type||"fx")+"queue";var q=jQuery._data(elem,type);if(!data){return q||[];}
if(!q||jQuery.isArray(data)){q=jQuery._data(elem,type,jQuery.makeArray(data));}else{q.push(data);}
return q;},dequeue:function(elem,type){type=type||"fx";var queue=jQuery.queue(elem,type),fn=queue.shift();if(fn==="inprogress"){fn=queue.shift();}
if(fn){if(type==="fx"){queue.unshift("inprogress");}
fn.call(elem,function(){jQuery.dequeue(elem,type);});}
if(!queue.length){jQuery.removeData(elem,type+"queue",true);}}});jQuery.fn.extend({queue:function(type,data){if(typeof type!=="string"){data=type;type="fx";}
if(data===undefined){return jQuery.queue(this[0],type);}
return this.each(function(i){var queue=jQuery.queue(this,type,data);if(type==="fx"&&queue[0]!=="inprogress"){jQuery.dequeue(this,type);}});},dequeue:function(type){return this.each(function(){jQuery.dequeue(this,type);});},delay:function(time,type){time=jQuery.fx?jQuery.fx.speeds[time]||time:time;type=type||"fx";return this.queue(type,function(){var elem=this;setTimeout(function(){jQuery.dequeue(elem,type);},time);});},clearQueue:function(type){return this.queue(type||"fx",[]);}});var rclass=/[\n\t\r]/g,rspaces=/\s+/,rreturn=/\r/g,rspecialurl=/^(?:href|src|style)$/,rtype=/^(?:button|input)$/i,rfocusable=/^(?:button|input|object|select|textarea)$/i,rclickable=/^a(?:rea)?$/i,rradiocheck=/^(?:radio|checkbox)$/i;jQuery.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};jQuery.fn.extend({attr:function(name,value){return jQuery.access(this,name,value,true,jQuery.attr);},removeAttr:function(name,fn){return this.each(function(){jQuery.attr(this,name,"");if(this.nodeType===1){this.removeAttribute(name);}});},addClass:function(value){if(jQuery.isFunction(value)){return this.each(function(i){var self=jQuery(this);self.addClass(value.call(this,i,self.attr("class")));});}
if(value&&typeof value==="string"){var classNames=(value||"").split(rspaces);for(var i=0,l=this.length;i<l;i++){var elem=this[i];if(elem.nodeType===1){if(!elem.className){elem.className=value;}else{var className=" "+elem.className+" ",setClass=elem.className;for(var c=0,cl=classNames.length;c<cl;c++){if(className.indexOf(" "+classNames[c]+" ")<0){setClass+=" "+classNames[c];}}
elem.className=jQuery.trim(setClass);}}}}
return this;},removeClass:function(value){if(jQuery.isFunction(value)){return this.each(function(i){var self=jQuery(this);self.removeClass(value.call(this,i,self.attr("class")));});}
if((value&&typeof value==="string")||value===undefined){var classNames=(value||"").split(rspaces);for(var i=0,l=this.length;i<l;i++){var elem=this[i];if(elem.nodeType===1&&elem.className){if(value){var className=(" "+elem.className+" ").replace(rclass," ");for(var c=0,cl=classNames.length;c<cl;c++){className=className.replace(" "+classNames[c]+" "," ");}
elem.className=jQuery.trim(className);}else{elem.className="";}}}}
return this;},toggleClass:function(value,stateVal){var type=typeof value,isBool=typeof stateVal==="boolean";if(jQuery.isFunction(value)){return this.each(function(i){var self=jQuery(this);self.toggleClass(value.call(this,i,self.attr("class"),stateVal),stateVal);});}
return this.each(function(){if(type==="string"){var className,i=0,self=jQuery(this),state=stateVal,classNames=value.split(rspaces);while((className=classNames[i++])){state=isBool?state:!self.hasClass(className);self[state?"addClass":"removeClass"](className);}}else if(type==="undefined"||type==="boolean"){if(this.className){jQuery._data(this,"__className__",this.className);}
this.className=this.className||value===false?"":jQuery._data(this,"__className__")||"";}});},hasClass:function(selector){var className=" "+selector+" ";for(var i=0,l=this.length;i<l;i++){if((" "+this[i].className+" ").replace(rclass," ").indexOf(className)>-1){return true;}}
return false;},val:function(value){if(!arguments.length){var elem=this[0];if(elem){if(jQuery.nodeName(elem,"option")){var val=elem.attributes.value;return!val||val.specified?elem.value:elem.text;}
if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type==="select-one";if(index<0){return null;}
for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected&&(jQuery.support.optDisabled?!option.disabled:option.getAttribute("disabled")===null)&&(!option.parentNode.disabled||!jQuery.nodeName(option.parentNode,"optgroup"))){value=jQuery(option).val();if(one){return value;}
values.push(value);}}
if(one&&!values.length&&options.length){return jQuery(options[index]).val();}
return values;}
if(rradiocheck.test(elem.type)&&!jQuery.support.checkOn){return elem.getAttribute("value")===null?"on":elem.value;}
return(elem.value||"").replace(rreturn,"");}
return undefined;}
var isFunction=jQuery.isFunction(value);return this.each(function(i){var self=jQuery(this),val=value;if(this.nodeType!==1){return;}
if(isFunction){val=value.call(this,i,self.val());}
if(val==null){val="";}else if(typeof val==="number"){val+="";}else if(jQuery.isArray(val)){val=jQuery.map(val,function(value){return value==null?"":value+"";});}
if(jQuery.isArray(val)&&rradiocheck.test(this.type)){this.checked=jQuery.inArray(self.val(),val)>=0;}else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(val);jQuery("option",this).each(function(){this.selected=jQuery.inArray(jQuery(this).val(),values)>=0;});if(!values.length){this.selectedIndex=-1;}}else{this.value=val;}});}});jQuery.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(elem,name,value,pass){if(!elem||elem.nodeType===3||elem.nodeType===8||elem.nodeType===2){return undefined;}
if(pass&&name in jQuery.attrFn){return jQuery(elem)[name](value);}
var notxml=elem.nodeType!==1||!jQuery.isXMLDoc(elem),set=value!==undefined;name=notxml&&jQuery.props[name]||name;if(elem.nodeType===1){var special=rspecialurl.test(name);if(name==="selected"&&!jQuery.support.optSelected){var parent=elem.parentNode;if(parent){parent.selectedIndex;if(parent.parentNode){parent.parentNode.selectedIndex;}}}
if((name in elem||elem[name]!==undefined)&&notxml&&!special){if(set){if(name==="type"&&rtype.test(elem.nodeName)&&elem.parentNode){jQuery.error("type property can't be changed");}
if(value===null){if(elem.nodeType===1){elem.removeAttribute(name);}}else{elem[name]=value;}}
if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name)){return elem.getAttributeNode(name).nodeValue;}
if(name==="tabIndex"){var attributeNode=elem.getAttributeNode("tabIndex");return attributeNode&&attributeNode.specified?attributeNode.value:rfocusable.test(elem.nodeName)||rclickable.test(elem.nodeName)&&elem.href?0:undefined;}
return elem[name];}
if(!jQuery.support.style&&notxml&&name==="style"){if(set){elem.style.cssText=""+value;}
return elem.style.cssText;}
if(set){elem.setAttribute(name,""+value);}
if(!elem.attributes[name]&&(elem.hasAttribute&&!elem.hasAttribute(name))){return undefined;}
var attr=!jQuery.support.hrefNormalized&&notxml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}
if(set){elem[name]=value;}
return elem[name];}});var rnamespaces=/\.(.*)$/,rformElems=/^(?:textarea|input|select)$/i,rperiod=/\./g,rspace=/ /g,rescape=/[^\w\s.|`]/g,fcleanup=function(nm){return nm.replace(rescape,"\\$&");};jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType===3||elem.nodeType===8){return;}
try{if(jQuery.isWindow(elem)&&(elem!==window&&!elem.frameElement)){elem=window;}}
catch(e){}
if(handler===false){handler=returnFalse;}else if(!handler){return;}
var handleObjIn,handleObj;if(handler.handler){handleObjIn=handler;handler=handleObjIn.handler;}
if(!handler.guid){handler.guid=jQuery.guid++;}
var elemData=jQuery._data(elem);if(!elemData){return;}
var events=elemData.events,eventHandle=elemData.handle;if(!events){elemData.events=events={};}
if(!eventHandle){elemData.handle=eventHandle=function(){return typeof jQuery!=="undefined"&&!jQuery.event.triggered?jQuery.event.handle.apply(eventHandle.elem,arguments):undefined;};}
eventHandle.elem=elem;types=types.split(" ");var type,i=0,namespaces;while((type=types[i++])){handleObj=handleObjIn?jQuery.extend({},handleObjIn):{handler:handler,data:data};if(type.indexOf(".")>-1){namespaces=type.split(".");type=namespaces.shift();handleObj.namespace=namespaces.slice(0).sort().join(".");}else{namespaces=[];handleObj.namespace="";}
handleObj.type=type;if(!handleObj.guid){handleObj.guid=handler.guid;}
var handlers=events[type],special=jQuery.event.special[type]||{};if(!handlers){handlers=events[type]=[];if(!special.setup||special.setup.call(elem,data,namespaces,eventHandle)===false){if(elem.addEventListener){elem.addEventListener(type,eventHandle,false);}else if(elem.attachEvent){elem.attachEvent("on"+type,eventHandle);}}}
if(special.add){special.add.call(elem,handleObj);if(!handleObj.handler.guid){handleObj.handler.guid=handler.guid;}}
handlers.push(handleObj);jQuery.event.global[type]=true;}
elem=null;},global:{},remove:function(elem,types,handler,pos){if(elem.nodeType===3||elem.nodeType===8){return;}
if(handler===false){handler=returnFalse;}
var ret,type,fn,j,i=0,all,namespaces,namespace,special,eventType,handleObj,origType,elemData=jQuery.hasData(elem)&&jQuery._data(elem),events=elemData&&elemData.events;if(!elemData||!events){return;}
if(types&&types.type){handler=types.handler;types=types.type;}
if(!types||typeof types==="string"&&types.charAt(0)==="."){types=types||"";for(type in events){jQuery.event.remove(elem,type+types);}
return;}
types=types.split(" ");while((type=types[i++])){origType=type;handleObj=null;all=type.indexOf(".")<0;namespaces=[];if(!all){namespaces=type.split(".");type=namespaces.shift();namespace=new RegExp("(^|\\.)"+
jQuery.map(namespaces.slice(0).sort(),fcleanup).join("\\.(?:.*\\.)?")+"(\\.|$)");}
eventType=events[type];if(!eventType){continue;}
if(!handler){for(j=0;j<eventType.length;j++){handleObj=eventType[j];if(all||namespace.test(handleObj.namespace)){jQuery.event.remove(elem,origType,handleObj.handler,j);eventType.splice(j--,1);}}
continue;}
special=jQuery.event.special[type]||{};for(j=pos||0;j<eventType.length;j++){handleObj=eventType[j];if(handler.guid===handleObj.guid){if(all||namespace.test(handleObj.namespace)){if(pos==null){eventType.splice(j--,1);}
if(special.remove){special.remove.call(elem,handleObj);}}
if(pos!=null){break;}}}
if(eventType.length===0||pos!=null&&eventType.length===1){if(!special.teardown||special.teardown.call(elem,namespaces)===false){jQuery.removeEvent(elem,type,elemData.handle);}
ret=null;delete events[type];}}
if(jQuery.isEmptyObject(events)){var handle=elemData.handle;if(handle){handle.elem=null;}
delete elemData.events;delete elemData.handle;if(jQuery.isEmptyObject(elemData)){jQuery.removeData(elem,undefined,true);}}},trigger:function(event,data,elem){var type=event.type||event,bubbling=arguments[3];if(!bubbling){event=typeof event==="object"?event[jQuery.expando]?event:jQuery.extend(jQuery.Event(type),event):jQuery.Event(type);if(type.indexOf("!")>=0){event.type=type=type.slice(0,-1);event.exclusive=true;}
if(!elem){event.stopPropagation();if(jQuery.event.global[type]){jQuery.each(jQuery.cache,function(){var internalKey=jQuery.expando,internalCache=this[internalKey];if(internalCache&&internalCache.events&&internalCache.events[type]){jQuery.event.trigger(event,data,internalCache.handle.elem);}});}}
if(!elem||elem.nodeType===3||elem.nodeType===8){return undefined;}
event.result=undefined;event.target=elem;data=jQuery.makeArray(data);data.unshift(event);}
event.currentTarget=elem;var handle=jQuery._data(elem,"handle");if(handle){handle.apply(elem,data);}
var parent=elem.parentNode||elem.ownerDocument;try{if(!(elem&&elem.nodeName&&jQuery.noData[elem.nodeName.toLowerCase()])){if(elem["on"+type]&&elem["on"+type].apply(elem,data)===false){event.result=false;event.preventDefault();}}}catch(inlineError){}
if(!event.isPropagationStopped()&&parent){jQuery.event.trigger(event,data,parent,true);}else if(!event.isDefaultPrevented()){var old,target=event.target,targetType=type.replace(rnamespaces,""),isClick=jQuery.nodeName(target,"a")&&targetType==="click",special=jQuery.event.special[targetType]||{};if((!special._default||special._default.call(elem,event)===false)&&!isClick&&!(target&&target.nodeName&&jQuery.noData[target.nodeName.toLowerCase()])){try{if(target[targetType]){old=target["on"+targetType];if(old){target["on"+targetType]=null;}
jQuery.event.triggered=true;target[targetType]();}}catch(triggerError){}
if(old){target["on"+targetType]=old;}
jQuery.event.triggered=false;}}},handle:function(event){var all,handlers,namespaces,namespace_re,events,namespace_sort=[],args=jQuery.makeArray(arguments);event=args[0]=jQuery.event.fix(event||window.event);event.currentTarget=this;all=event.type.indexOf(".")<0&&!event.exclusive;if(!all){namespaces=event.type.split(".");event.type=namespaces.shift();namespace_sort=namespaces.slice(0).sort();namespace_re=new RegExp("(^|\\.)"+namespace_sort.join("\\.(?:.*\\.)?")+"(\\.|$)");}
event.namespace=event.namespace||namespace_sort.join(".");events=jQuery._data(this,"events");handlers=(events||{})[event.type];if(events&&handlers){handlers=handlers.slice(0);for(var j=0,l=handlers.length;j<l;j++){var handleObj=handlers[j];if(all||namespace_re.test(handleObj.namespace)){event.handler=handleObj.handler;event.data=handleObj.data;event.handleObj=handleObj;var ret=handleObj.handler.apply(this,args);if(ret!==undefined){event.result=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}
if(event.isImmediatePropagationStopped()){break;}}}}
return event.result;},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(event){if(event[jQuery.expando]){return event;}
var originalEvent=event;event=jQuery.Event(originalEvent);for(var i=this.props.length,prop;i;){prop=this.props[--i];event[prop]=originalEvent[prop];}
if(!event.target){event.target=event.srcElement||document;}
if(event.target.nodeType===3){event.target=event.target.parentNode;}
if(!event.relatedTarget&&event.fromElement){event.relatedTarget=event.fromElement===event.target?event.toElement:event.fromElement;}
if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc&&doc.clientLeft||body&&body.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc&&doc.clientTop||body&&body.clientTop||0);}
if(event.which==null&&(event.charCode!=null||event.keyCode!=null)){event.which=event.charCode!=null?event.charCode:event.keyCode;}
if(!event.metaKey&&event.ctrlKey){event.metaKey=event.ctrlKey;}
if(!event.which&&event.button!==undefined){event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));}
return event;},guid:1E8,proxy:jQuery.proxy,special:{ready:{setup:jQuery.bindReady,teardown:jQuery.noop},live:{add:function(handleObj){jQuery.event.add(this,liveConvert(handleObj.origType,handleObj.selector),jQuery.extend({},handleObj,{handler:liveHandler,guid:handleObj.handler.guid}));},remove:function(handleObj){jQuery.event.remove(this,liveConvert(handleObj.origType,handleObj.selector),handleObj);}},beforeunload:{setup:function(data,namespaces,eventHandle){if(jQuery.isWindow(this)){this.onbeforeunload=eventHandle;}},teardown:function(namespaces,eventHandle){if(this.onbeforeunload===eventHandle){this.onbeforeunload=null;}}}}};jQuery.removeEvent=document.removeEventListener?function(elem,type,handle){if(elem.removeEventListener){elem.removeEventListener(type,handle,false);}}:function(elem,type,handle){if(elem.detachEvent){elem.detachEvent("on"+type,handle);}};jQuery.Event=function(src){if(!this.preventDefault){return new jQuery.Event(src);}
if(src&&src.type){this.originalEvent=src;this.type=src.type;this.isDefaultPrevented=(src.defaultPrevented||src.returnValue===false||src.getPreventDefault&&src.getPreventDefault())?returnTrue:returnFalse;}else{this.type=src;}
this.timeStamp=jQuery.now();this[jQuery.expando]=true;};function returnFalse(){return false;}
function returnTrue(){return true;}
jQuery.Event.prototype={preventDefault:function(){this.isDefaultPrevented=returnTrue;var e=this.originalEvent;if(!e){return;}
if(e.preventDefault){e.preventDefault();}else{e.returnValue=false;}},stopPropagation:function(){this.isPropagationStopped=returnTrue;var e=this.originalEvent;if(!e){return;}
if(e.stopPropagation){e.stopPropagation();}
e.cancelBubble=true;},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=returnTrue;this.stopPropagation();},isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse};var withinElement=function(event){var parent=event.relatedTarget;try{if(parent!==document&&!parent.parentNode){return;}
while(parent&&parent!==this){parent=parent.parentNode;}
if(parent!==this){event.type=event.data;jQuery.event.handle.apply(this,arguments);}}catch(e){}},delegate=function(event){event.type=event.data;jQuery.event.handle.apply(this,arguments);};jQuery.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(orig,fix){jQuery.event.special[orig]={setup:function(data){jQuery.event.add(this,fix,data&&data.selector?delegate:withinElement,orig);},teardown:function(data){jQuery.event.remove(this,fix,data&&data.selector?delegate:withinElement);}};});if(!jQuery.support.submitBubbles){jQuery.event.special.submit={setup:function(data,namespaces){if(this.nodeName&&this.nodeName.toLowerCase()!=="form"){jQuery.event.add(this,"click.specialSubmit",function(e){var elem=e.target,type=elem.type;if((type==="submit"||type==="image")&&jQuery(elem).closest("form").length){trigger("submit",this,arguments);}});jQuery.event.add(this,"keypress.specialSubmit",function(e){var elem=e.target,type=elem.type;if((type==="text"||type==="password")&&jQuery(elem).closest("form").length&&e.keyCode===13){trigger("submit",this,arguments);}});}else{return false;}},teardown:function(namespaces){jQuery.event.remove(this,".specialSubmit");}};}
if(!jQuery.support.changeBubbles){var changeFilters,getVal=function(elem){var type=elem.type,val=elem.value;if(type==="radio"||type==="checkbox"){val=elem.checked;}else if(type==="select-multiple"){val=elem.selectedIndex>-1?jQuery.map(elem.options,function(elem){return elem.selected;}).join("-"):"";}else if(elem.nodeName.toLowerCase()==="select"){val=elem.selectedIndex;}
return val;},testChange=function testChange(e){var elem=e.target,data,val;if(!rformElems.test(elem.nodeName)||elem.readOnly){return;}
data=jQuery._data(elem,"_change_data");val=getVal(elem);if(e.type!=="focusout"||elem.type!=="radio"){jQuery._data(elem,"_change_data",val);}
if(data===undefined||val===data){return;}
if(data!=null||val){e.type="change";e.liveFired=undefined;jQuery.event.trigger(e,arguments[1],elem);}};jQuery.event.special.change={filters:{focusout:testChange,beforedeactivate:testChange,click:function(e){var elem=e.target,type=elem.type;if(type==="radio"||type==="checkbox"||elem.nodeName.toLowerCase()==="select"){testChange.call(this,e);}},keydown:function(e){var elem=e.target,type=elem.type;if((e.keyCode===13&&elem.nodeName.toLowerCase()!=="textarea")||(e.keyCode===32&&(type==="checkbox"||type==="radio"))||type==="select-multiple"){testChange.call(this,e);}},beforeactivate:function(e){var elem=e.target;jQuery._data(elem,"_change_data",getVal(elem));}},setup:function(data,namespaces){if(this.type==="file"){return false;}
for(var type in changeFilters){jQuery.event.add(this,type+".specialChange",changeFilters[type]);}
return rformElems.test(this.nodeName);},teardown:function(namespaces){jQuery.event.remove(this,".specialChange");return rformElems.test(this.nodeName);}};changeFilters=jQuery.event.special.change.filters;changeFilters.focus=changeFilters.beforeactivate;}
function trigger(type,elem,args){var event=jQuery.extend({},args[0]);event.type=type;event.originalEvent={};event.liveFired=undefined;jQuery.event.handle.call(elem,event);if(event.isDefaultPrevented()){args[0].preventDefault();}}
if(document.addEventListener){jQuery.each({focus:"focusin",blur:"focusout"},function(orig,fix){jQuery.event.special[fix]={setup:function(){this.addEventListener(orig,handler,true);},teardown:function(){this.removeEventListener(orig,handler,true);}};function handler(e){e=jQuery.event.fix(e);e.type=fix;return jQuery.event.handle.call(this,e);}});}
jQuery.each(["bind","one"],function(i,name){jQuery.fn[name]=function(type,data,fn){if(typeof type==="object"){for(var key in type){this[name](key,data,type[key],fn);}
return this;}
if(jQuery.isFunction(data)||data===false){fn=data;data=undefined;}
var handler=name==="one"?jQuery.proxy(fn,function(event){jQuery(this).unbind(event,handler);return fn.apply(this,arguments);}):fn;if(type==="unload"&&name!=="one"){this.one(type,data,fn);}else{for(var i=0,l=this.length;i<l;i++){jQuery.event.add(this[i],type,handler,data);}}
return this;};});jQuery.fn.extend({unbind:function(type,fn){if(typeof type==="object"&&!type.preventDefault){for(var key in type){this.unbind(key,type[key]);}}else{for(var i=0,l=this.length;i<l;i++){jQuery.event.remove(this[i],type,fn);}}
return this;},delegate:function(selector,types,data,fn){return this.live(types,data,fn,selector);},undelegate:function(selector,types,fn){if(arguments.length===0){return this.unbind("live");}else{return this.die(types,null,fn,selector);}},trigger:function(type,data){return this.each(function(){jQuery.event.trigger(type,data,this);});},triggerHandler:function(type,data){if(this[0]){var event=jQuery.Event(type);event.preventDefault();event.stopPropagation();jQuery.event.trigger(event,data,this[0]);return event.result;}},toggle:function(fn){var args=arguments,i=1;while(i<args.length){jQuery.proxy(fn,args[i++]);}
return this.click(jQuery.proxy(fn,function(event){var lastToggle=(jQuery._data(this,"lastToggle"+fn.guid)||0)%i;jQuery._data(this,"lastToggle"+fn.guid,lastToggle+1);event.preventDefault();return args[lastToggle].apply(this,arguments)||false;}));},hover:function(fnOver,fnOut){return this.mouseenter(fnOver).mouseleave(fnOut||fnOver);}});var liveMap={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};jQuery.each(["live","die"],function(i,name){jQuery.fn[name]=function(types,data,fn,origSelector){var type,i=0,match,namespaces,preType,selector=origSelector||this.selector,context=origSelector?this:jQuery(this.context);if(typeof types==="object"&&!types.preventDefault){for(var key in types){context[name](key,data,types[key],selector);}
return this;}
if(jQuery.isFunction(data)){fn=data;data=undefined;}
types=(types||"").split(" ");while((type=types[i++])!=null){match=rnamespaces.exec(type);namespaces="";if(match){namespaces=match[0];type=type.replace(rnamespaces,"");}
if(type==="hover"){types.push("mouseenter"+namespaces,"mouseleave"+namespaces);continue;}
preType=type;if(type==="focus"||type==="blur"){types.push(liveMap[type]+namespaces);type=type+namespaces;}else{type=(liveMap[type]||type)+namespaces;}
if(name==="live"){for(var j=0,l=context.length;j<l;j++){jQuery.event.add(context[j],"live."+liveConvert(type,selector),{data:data,selector:selector,handler:fn,origType:type,origHandler:fn,preType:preType});}}else{context.unbind("live."+liveConvert(type,selector),fn);}}
return this;};});function liveHandler(event){var stop,maxLevel,related,match,handleObj,elem,j,i,l,data,close,namespace,ret,elems=[],selectors=[],events=jQuery._data(this,"events");if(event.liveFired===this||!events||!events.live||event.target.disabled||event.button&&event.type==="click"){return;}
if(event.namespace){namespace=new RegExp("(^|\\.)"+event.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");}
event.liveFired=this;var live=events.live.slice(0);for(j=0;j<live.length;j++){handleObj=live[j];if(handleObj.origType.replace(rnamespaces,"")===event.type){selectors.push(handleObj.selector);}else{live.splice(j--,1);}}
match=jQuery(event.target).closest(selectors,event.currentTarget);for(i=0,l=match.length;i<l;i++){close=match[i];for(j=0;j<live.length;j++){handleObj=live[j];if(close.selector===handleObj.selector&&(!namespace||namespace.test(handleObj.namespace))&&!close.elem.disabled){elem=close.elem;related=null;if(handleObj.preType==="mouseenter"||handleObj.preType==="mouseleave"){event.type=handleObj.preType;related=jQuery(event.relatedTarget).closest(handleObj.selector)[0];}
if(!related||related!==elem){elems.push({elem:elem,handleObj:handleObj,level:close.level});}}}}
for(i=0,l=elems.length;i<l;i++){match=elems[i];if(maxLevel&&match.level>maxLevel){break;}
event.currentTarget=match.elem;event.data=match.handleObj.data;event.handleObj=match.handleObj;ret=match.handleObj.origHandler.apply(match.elem,arguments);if(ret===false||event.isPropagationStopped()){maxLevel=match.level;if(ret===false){stop=false;}
if(event.isImmediatePropagationStopped()){break;}}}
return stop;}
function liveConvert(type,selector){return(type&&type!=="*"?type+".":"")+selector.replace(rperiod,"`").replace(rspace,"&");}
jQuery.each(("blur focus focusin focusout load resize scroll unload click dblclick "+"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave "+"change select submit keydown keypress keyup error").split(" "),function(i,name){jQuery.fn[name]=function(data,fn){if(fn==null){fn=data;data=null;}
return arguments.length>0?this.bind(name,data,fn):this.trigger(name);};if(jQuery.attrFn){jQuery.attrFn[name]=true;}});(function(){var chunker=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,done=0,toString=Object.prototype.toString,hasDuplicate=false,baseHasDuplicate=true,rBackslash=/\\/g,rNonWord=/\W/;[0,0].sort(function(){baseHasDuplicate=false;return 0;});var Sizzle=function(selector,context,results,seed){results=results||[];context=context||document;var origContext=context;if(context.nodeType!==1&&context.nodeType!==9){return[];}
if(!selector||typeof selector!=="string"){return results;}
var m,set,checkSet,extra,ret,cur,pop,i,prune=true,contextXML=Sizzle.isXML(context),parts=[],soFar=selector;do{chunker.exec("");m=chunker.exec(soFar);if(m){soFar=m[3];parts.push(m[1]);if(m[2]){extra=m[3];break;}}}while(m);if(parts.length>1&&origPOS.exec(selector)){if(parts.length===2&&Expr.relative[parts[0]]){set=posProcess(parts[0]+parts[1],context);}else{set=Expr.relative[parts[0]]?[context]:Sizzle(parts.shift(),context);while(parts.length){selector=parts.shift();if(Expr.relative[selector]){selector+=parts.shift();}
set=posProcess(selector,set);}}}else{if(!seed&&parts.length>1&&context.nodeType===9&&!contextXML&&Expr.match.ID.test(parts[0])&&!Expr.match.ID.test(parts[parts.length-1])){ret=Sizzle.find(parts.shift(),context,contextXML);context=ret.expr?Sizzle.filter(ret.expr,ret.set)[0]:ret.set[0];}
if(context){ret=seed?{expr:parts.pop(),set:makeArray(seed)}:Sizzle.find(parts.pop(),parts.length===1&&(parts[0]==="~"||parts[0]==="+")&&context.parentNode?context.parentNode:context,contextXML);set=ret.expr?Sizzle.filter(ret.expr,ret.set):ret.set;if(parts.length>0){checkSet=makeArray(set);}else{prune=false;}
while(parts.length){cur=parts.pop();pop=cur;if(!Expr.relative[cur]){cur="";}else{pop=parts.pop();}
if(pop==null){pop=context;}
Expr.relative[cur](checkSet,pop,contextXML);}}else{checkSet=parts=[];}}
if(!checkSet){checkSet=set;}
if(!checkSet){Sizzle.error(cur||selector);}
if(toString.call(checkSet)==="[object Array]"){if(!prune){results.push.apply(results,checkSet);}else if(context&&context.nodeType===1){for(i=0;checkSet[i]!=null;i++){if(checkSet[i]&&(checkSet[i]===true||checkSet[i].nodeType===1&&Sizzle.contains(context,checkSet[i]))){results.push(set[i]);}}}else{for(i=0;checkSet[i]!=null;i++){if(checkSet[i]&&checkSet[i].nodeType===1){results.push(set[i]);}}}}else{makeArray(checkSet,results);}
if(extra){Sizzle(extra,origContext,results,seed);Sizzle.uniqueSort(results);}
return results;};Sizzle.uniqueSort=function(results){if(sortOrder){hasDuplicate=baseHasDuplicate;results.sort(sortOrder);if(hasDuplicate){for(var i=1;i<results.length;i++){if(results[i]===results[i-1]){results.splice(i--,1);}}}}
return results;};Sizzle.matches=function(expr,set){return Sizzle(expr,null,null,set);};Sizzle.matchesSelector=function(node,expr){return Sizzle(expr,null,null,[node]).length>0;};Sizzle.find=function(expr,context,isXML){var set;if(!expr){return[];}
for(var i=0,l=Expr.order.length;i<l;i++){var match,type=Expr.order[i];if((match=Expr.leftMatch[type].exec(expr))){var left=match[1];match.splice(1,1);if(left.substr(left.length-1)!=="\\"){match[1]=(match[1]||"").replace(rBackslash,"");set=Expr.find[type](match,context,isXML);if(set!=null){expr=expr.replace(Expr.match[type],"");break;}}}}
if(!set){set=typeof context.getElementsByTagName!=="undefined"?context.getElementsByTagName("*"):[];}
return{set:set,expr:expr};};Sizzle.filter=function(expr,set,inplace,not){var match,anyFound,old=expr,result=[],curLoop=set,isXMLFilter=set&&set[0]&&Sizzle.isXML(set[0]);while(expr&&set.length){for(var type in Expr.filter){if((match=Expr.leftMatch[type].exec(expr))!=null&&match[2]){var found,item,filter=Expr.filter[type],left=match[1];anyFound=false;match.splice(1,1);if(left.substr(left.length-1)==="\\"){continue;}
if(curLoop===result){result=[];}
if(Expr.preFilter[type]){match=Expr.preFilter[type](match,curLoop,inplace,result,not,isXMLFilter);if(!match){anyFound=found=true;}else if(match===true){continue;}}
if(match){for(var i=0;(item=curLoop[i])!=null;i++){if(item){found=filter(item,match,i,curLoop);var pass=not^!!found;if(inplace&&found!=null){if(pass){anyFound=true;}else{curLoop[i]=false;}}else if(pass){result.push(item);anyFound=true;}}}}
if(found!==undefined){if(!inplace){curLoop=result;}
expr=expr.replace(Expr.match[type],"");if(!anyFound){return[];}
break;}}}
if(expr===old){if(anyFound==null){Sizzle.error(expr);}else{break;}}
old=expr;}
return curLoop;};Sizzle.error=function(msg){throw"Syntax error, unrecognized expression: "+msg;};var Expr=Sizzle.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(elem){return elem.getAttribute("href");},type:function(elem){return elem.getAttribute("type");}},relative:{"+":function(checkSet,part){var isPartStr=typeof part==="string",isTag=isPartStr&&!rNonWord.test(part),isPartStrNotTag=isPartStr&&!isTag;if(isTag){part=part.toLowerCase();}
for(var i=0,l=checkSet.length,elem;i<l;i++){if((elem=checkSet[i])){while((elem=elem.previousSibling)&&elem.nodeType!==1){}
checkSet[i]=isPartStrNotTag||elem&&elem.nodeName.toLowerCase()===part?elem||false:elem===part;}}
if(isPartStrNotTag){Sizzle.filter(part,checkSet,true);}},">":function(checkSet,part){var elem,isPartStr=typeof part==="string",i=0,l=checkSet.length;if(isPartStr&&!rNonWord.test(part)){part=part.toLowerCase();for(;i<l;i++){elem=checkSet[i];if(elem){var parent=elem.parentNode;checkSet[i]=parent.nodeName.toLowerCase()===part?parent:false;}}}else{for(;i<l;i++){elem=checkSet[i];if(elem){checkSet[i]=isPartStr?elem.parentNode:elem.parentNode===part;}}
if(isPartStr){Sizzle.filter(part,checkSet,true);}}},"":function(checkSet,part,isXML){var nodeCheck,doneName=done++,checkFn=dirCheck;if(typeof part==="string"&&!rNonWord.test(part)){part=part.toLowerCase();nodeCheck=part;checkFn=dirNodeCheck;}
checkFn("parentNode",part,doneName,checkSet,nodeCheck,isXML);},"~":function(checkSet,part,isXML){var nodeCheck,doneName=done++,checkFn=dirCheck;if(typeof part==="string"&&!rNonWord.test(part)){part=part.toLowerCase();nodeCheck=part;checkFn=dirNodeCheck;}
checkFn("previousSibling",part,doneName,checkSet,nodeCheck,isXML);}},find:{ID:function(match,context,isXML){if(typeof context.getElementById!=="undefined"&&!isXML){var m=context.getElementById(match[1]);return m&&m.parentNode?[m]:[];}},NAME:function(match,context){if(typeof context.getElementsByName!=="undefined"){var ret=[],results=context.getElementsByName(match[1]);for(var i=0,l=results.length;i<l;i++){if(results[i].getAttribute("name")===match[1]){ret.push(results[i]);}}
return ret.length===0?null:ret;}},TAG:function(match,context){if(typeof context.getElementsByTagName!=="undefined"){return context.getElementsByTagName(match[1]);}}},preFilter:{CLASS:function(match,curLoop,inplace,result,not,isXML){match=" "+match[1].replace(rBackslash,"")+" ";if(isXML){return match;}
for(var i=0,elem;(elem=curLoop[i])!=null;i++){if(elem){if(not^(elem.className&&(" "+elem.className+" ").replace(/[\t\n\r]/g," ").indexOf(match)>=0)){if(!inplace){result.push(elem);}}else if(inplace){curLoop[i]=false;}}}
return false;},ID:function(match){return match[1].replace(rBackslash,"");},TAG:function(match,curLoop){return match[1].replace(rBackslash,"").toLowerCase();},CHILD:function(match){if(match[1]==="nth"){if(!match[2]){Sizzle.error(match[0]);}
match[2]=match[2].replace(/^\+|\s*/g,'');var test=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(match[2]==="even"&&"2n"||match[2]==="odd"&&"2n+1"||!/\D/.test(match[2])&&"0n+"+match[2]||match[2]);match[2]=(test[1]+(test[2]||1))-0;match[3]=test[3]-0;}
else if(match[2]){Sizzle.error(match[0]);}
match[0]=done++;return match;},ATTR:function(match,curLoop,inplace,result,not,isXML){var name=match[1]=match[1].replace(rBackslash,"");if(!isXML&&Expr.attrMap[name]){match[1]=Expr.attrMap[name];}
match[4]=(match[4]||match[5]||"").replace(rBackslash,"");if(match[2]==="~="){match[4]=" "+match[4]+" ";}
return match;},PSEUDO:function(match,curLoop,inplace,result,not){if(match[1]==="not"){if((chunker.exec(match[3])||"").length>1||/^\w/.test(match[3])){match[3]=Sizzle(match[3],null,null,curLoop);}else{var ret=Sizzle.filter(match[3],curLoop,inplace,true^not);if(!inplace){result.push.apply(result,ret);}
return false;}}else if(Expr.match.POS.test(match[0])||Expr.match.CHILD.test(match[0])){return true;}
return match;},POS:function(match){match.unshift(true);return match;}},filters:{enabled:function(elem){return elem.disabled===false&&elem.type!=="hidden";},disabled:function(elem){return elem.disabled===true;},checked:function(elem){return elem.checked===true;},selected:function(elem){if(elem.parentNode){elem.parentNode.selectedIndex;}
return elem.selected===true;},parent:function(elem){return!!elem.firstChild;},empty:function(elem){return!elem.firstChild;},has:function(elem,i,match){return!!Sizzle(match[3],elem).length;},header:function(elem){return(/h\d/i).test(elem.nodeName);},text:function(elem){return"text"===elem.getAttribute('type');},radio:function(elem){return"radio"===elem.type;},checkbox:function(elem){return"checkbox"===elem.type;},file:function(elem){return"file"===elem.type;},password:function(elem){return"password"===elem.type;},submit:function(elem){return"submit"===elem.type;},image:function(elem){return"image"===elem.type;},reset:function(elem){return"reset"===elem.type;},button:function(elem){return"button"===elem.type||elem.nodeName.toLowerCase()==="button";},input:function(elem){return(/input|select|textarea|button/i).test(elem.nodeName);}},setFilters:{first:function(elem,i){return i===0;},last:function(elem,i,match,array){return i===array.length-1;},even:function(elem,i){return i%2===0;},odd:function(elem,i){return i%2===1;},lt:function(elem,i,match){return i<match[3]-0;},gt:function(elem,i,match){return i>match[3]-0;},nth:function(elem,i,match){return match[3]-0===i;},eq:function(elem,i,match){return match[3]-0===i;}},filter:{PSEUDO:function(elem,match,i,array){var name=match[1],filter=Expr.filters[name];if(filter){return filter(elem,i,match,array);}else if(name==="contains"){return(elem.textContent||elem.innerText||Sizzle.getText([elem])||"").indexOf(match[3])>=0;}else if(name==="not"){var not=match[3];for(var j=0,l=not.length;j<l;j++){if(not[j]===elem){return false;}}
return true;}else{Sizzle.error(name);}},CHILD:function(elem,match){var type=match[1],node=elem;switch(type){case"only":case"first":while((node=node.previousSibling)){if(node.nodeType===1){return false;}}
if(type==="first"){return true;}
node=elem;case"last":while((node=node.nextSibling)){if(node.nodeType===1){return false;}}
return true;case"nth":var first=match[2],last=match[3];if(first===1&&last===0){return true;}
var doneName=match[0],parent=elem.parentNode;if(parent&&(parent.sizcache!==doneName||!elem.nodeIndex)){var count=0;for(node=parent.firstChild;node;node=node.nextSibling){if(node.nodeType===1){node.nodeIndex=++count;}}
parent.sizcache=doneName;}
var diff=elem.nodeIndex-last;if(first===0){return diff===0;}else{return(diff%first===0&&diff/first>=0);}}},ID:function(elem,match){return elem.nodeType===1&&elem.getAttribute("id")===match;},TAG:function(elem,match){return(match==="*"&&elem.nodeType===1)||elem.nodeName.toLowerCase()===match;},CLASS:function(elem,match){return(" "+(elem.className||elem.getAttribute("class"))+" ").indexOf(match)>-1;},ATTR:function(elem,match){var name=match[1],result=Expr.attrHandle[name]?Expr.attrHandle[name](elem):elem[name]!=null?elem[name]:elem.getAttribute(name),value=result+"",type=match[2],check=match[4];return result==null?type==="!=":type==="="?value===check:type==="*="?value.indexOf(check)>=0:type==="~="?(" "+value+" ").indexOf(check)>=0:!check?value&&result!==false:type==="!="?value!==check:type==="^="?value.indexOf(check)===0:type==="$="?value.substr(value.length-check.length)===check:type==="|="?value===check||value.substr(0,check.length+1)===check+"-":false;},POS:function(elem,match,i,array){var name=match[2],filter=Expr.setFilters[name];if(filter){return filter(elem,i,match,array);}}}};var origPOS=Expr.match.POS,fescape=function(all,num){return"\\"+(num-0+1);};for(var type in Expr.match){Expr.match[type]=new RegExp(Expr.match[type].source+(/(?![^\[]*\])(?![^\(]*\))/.source));Expr.leftMatch[type]=new RegExp(/(^(?:.|\r|\n)*?)/.source+Expr.match[type].source.replace(/\\(\d+)/g,fescape));}
var makeArray=function(array,results){array=Array.prototype.slice.call(array,0);if(results){results.push.apply(results,array);return results;}
return array;};try{Array.prototype.slice.call(document.documentElement.childNodes,0)[0].nodeType;}catch(e){makeArray=function(array,results){var i=0,ret=results||[];if(toString.call(array)==="[object Array]"){Array.prototype.push.apply(ret,array);}else{if(typeof array.length==="number"){for(var l=array.length;i<l;i++){ret.push(array[i]);}}else{for(;array[i];i++){ret.push(array[i]);}}}
return ret;};}
var sortOrder,siblingCheck;if(document.documentElement.compareDocumentPosition){sortOrder=function(a,b){if(a===b){hasDuplicate=true;return 0;}
if(!a.compareDocumentPosition||!b.compareDocumentPosition){return a.compareDocumentPosition?-1:1;}
return a.compareDocumentPosition(b)&4?-1:1;};}else{sortOrder=function(a,b){var al,bl,ap=[],bp=[],aup=a.parentNode,bup=b.parentNode,cur=aup;if(a===b){hasDuplicate=true;return 0;}else if(aup===bup){return siblingCheck(a,b);}else if(!aup){return-1;}else if(!bup){return 1;}
while(cur){ap.unshift(cur);cur=cur.parentNode;}
cur=bup;while(cur){bp.unshift(cur);cur=cur.parentNode;}
al=ap.length;bl=bp.length;for(var i=0;i<al&&i<bl;i++){if(ap[i]!==bp[i]){return siblingCheck(ap[i],bp[i]);}}
return i===al?siblingCheck(a,bp[i],-1):siblingCheck(ap[i],b,1);};siblingCheck=function(a,b,ret){if(a===b){return ret;}
var cur=a.nextSibling;while(cur){if(cur===b){return-1;}
cur=cur.nextSibling;}
return 1;};}
Sizzle.getText=function(elems){var ret="",elem;for(var i=0;elems[i];i++){elem=elems[i];if(elem.nodeType===3||elem.nodeType===4){ret+=elem.nodeValue;}else if(elem.nodeType!==8){ret+=Sizzle.getText(elem.childNodes);}}
return ret;};(function(){var form=document.createElement("div"),id="script"+(new Date()).getTime(),root=document.documentElement;form.innerHTML="<a name='"+id+"'/>";root.insertBefore(form,root.firstChild);if(document.getElementById(id)){Expr.find.ID=function(match,context,isXML){if(typeof context.getElementById!=="undefined"&&!isXML){var m=context.getElementById(match[1]);return m?m.id===match[1]||typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id").nodeValue===match[1]?[m]:undefined:[];}};Expr.filter.ID=function(elem,match){var node=typeof elem.getAttributeNode!=="undefined"&&elem.getAttributeNode("id");return elem.nodeType===1&&node&&node.nodeValue===match;};}
root.removeChild(form);root=form=null;})();(function(){var div=document.createElement("div");div.appendChild(document.createComment(""));if(div.getElementsByTagName("*").length>0){Expr.find.TAG=function(match,context){var results=context.getElementsByTagName(match[1]);if(match[1]==="*"){var tmp=[];for(var i=0;results[i];i++){if(results[i].nodeType===1){tmp.push(results[i]);}}
results=tmp;}
return results;};}
div.innerHTML="<a href='#'></a>";if(div.firstChild&&typeof div.firstChild.getAttribute!=="undefined"&&div.firstChild.getAttribute("href")!=="#"){Expr.attrHandle.href=function(elem){return elem.getAttribute("href",2);};}
div=null;})();if(document.querySelectorAll){(function(){var oldSizzle=Sizzle,div=document.createElement("div"),id="__sizzle__";div.innerHTML="<p class='TEST'></p>";if(div.querySelectorAll&&div.querySelectorAll(".TEST").length===0){return;}
Sizzle=function(query,context,extra,seed){context=context||document;if(!seed&&!Sizzle.isXML(context)){var match=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(query);if(match&&(context.nodeType===1||context.nodeType===9)){if(match[1]){return makeArray(context.getElementsByTagName(query),extra);}else if(match[2]&&Expr.find.CLASS&&context.getElementsByClassName){return makeArray(context.getElementsByClassName(match[2]),extra);}}
if(context.nodeType===9){if(query==="body"&&context.body){return makeArray([context.body],extra);}else if(match&&match[3]){var elem=context.getElementById(match[3]);if(elem&&elem.parentNode){if(elem.id===match[3]){return makeArray([elem],extra);}}else{return makeArray([],extra);}}
try{return makeArray(context.querySelectorAll(query),extra);}catch(qsaError){}}else if(context.nodeType===1&&context.nodeName.toLowerCase()!=="object"){var oldContext=context,old=context.getAttribute("id"),nid=old||id,hasParent=context.parentNode,relativeHierarchySelector=/^\s*[+~]/.test(query);if(!old){context.setAttribute("id",nid);}else{nid=nid.replace(/'/g,"\\$&");}
if(relativeHierarchySelector&&hasParent){context=context.parentNode;}
try{if(!relativeHierarchySelector||hasParent){return makeArray(context.querySelectorAll("[id='"+nid+"'] "+query),extra);}}catch(pseudoError){}finally{if(!old){oldContext.removeAttribute("id");}}}}
return oldSizzle(query,context,extra,seed);};for(var prop in oldSizzle){Sizzle[prop]=oldSizzle[prop];}
div=null;})();}
(function(){var html=document.documentElement,matches=html.matchesSelector||html.mozMatchesSelector||html.webkitMatchesSelector||html.msMatchesSelector,pseudoWorks=false;try{matches.call(document.documentElement,"[test!='']:sizzle");}catch(pseudoError){pseudoWorks=true;}
if(matches){Sizzle.matchesSelector=function(node,expr){expr=expr.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!Sizzle.isXML(node)){try{if(pseudoWorks||!Expr.match.PSEUDO.test(expr)&&!/!=/.test(expr)){return matches.call(node,expr);}}catch(e){}}
return Sizzle(expr,null,null,[node]).length>0;};}})();(function(){var div=document.createElement("div");div.innerHTML="<div class='test e'></div><div class='test'></div>";if(!div.getElementsByClassName||div.getElementsByClassName("e").length===0){return;}
div.lastChild.className="e";if(div.getElementsByClassName("e").length===1){return;}
Expr.order.splice(1,0,"CLASS");Expr.find.CLASS=function(match,context,isXML){if(typeof context.getElementsByClassName!=="undefined"&&!isXML){return context.getElementsByClassName(match[1]);}};div=null;})();function dirNodeCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){var match=false;elem=elem[dir];while(elem){if(elem.sizcache===doneName){match=checkSet[elem.sizset];break;}
if(elem.nodeType===1&&!isXML){elem.sizcache=doneName;elem.sizset=i;}
if(elem.nodeName.toLowerCase()===cur){match=elem;break;}
elem=elem[dir];}
checkSet[i]=match;}}}
function dirCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){var match=false;elem=elem[dir];while(elem){if(elem.sizcache===doneName){match=checkSet[elem.sizset];break;}
if(elem.nodeType===1){if(!isXML){elem.sizcache=doneName;elem.sizset=i;}
if(typeof cur!=="string"){if(elem===cur){match=true;break;}}else if(Sizzle.filter(cur,[elem]).length>0){match=elem;break;}}
elem=elem[dir];}
checkSet[i]=match;}}}
if(document.documentElement.contains){Sizzle.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):true);};}else if(document.documentElement.compareDocumentPosition){Sizzle.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16);};}else{Sizzle.contains=function(){return false;};}
Sizzle.isXML=function(elem){var documentElement=(elem?elem.ownerDocument||elem:0).documentElement;return documentElement?documentElement.nodeName!=="HTML":false;};var posProcess=function(selector,context){var match,tmpSet=[],later="",root=context.nodeType?[context]:context;while((match=Expr.match.PSEUDO.exec(selector))){later+=match[0];selector=selector.replace(Expr.match.PSEUDO,"");}
selector=Expr.relative[selector]?selector+"*":selector;for(var i=0,l=root.length;i<l;i++){Sizzle(selector,root[i],tmpSet);}
return Sizzle.filter(later,tmpSet);};jQuery.find=Sizzle;jQuery.expr=Sizzle.selectors;jQuery.expr[":"]=jQuery.expr.filters;jQuery.unique=Sizzle.uniqueSort;jQuery.text=Sizzle.getText;jQuery.isXMLDoc=Sizzle.isXML;jQuery.contains=Sizzle.contains;})();var runtil=/Until$/,rparentsprev=/^(?:parents|prevUntil|prevAll)/,rmultiselector=/,/,isSimple=/^.[^:#\[\.,]*$/,slice=Array.prototype.slice,POS=jQuery.expr.match.POS,guaranteedUnique={children:true,contents:true,next:true,prev:true};jQuery.fn.extend({find:function(selector){var ret=this.pushStack("","find",selector),length=0;for(var i=0,l=this.length;i<l;i++){length=ret.length;jQuery.find(selector,this[i],ret);if(i>0){for(var n=length;n<ret.length;n++){for(var r=0;r<length;r++){if(ret[r]===ret[n]){ret.splice(n--,1);break;}}}}}
return ret;},has:function(target){var targets=jQuery(target);return this.filter(function(){for(var i=0,l=targets.length;i<l;i++){if(jQuery.contains(this,targets[i])){return true;}}});},not:function(selector){return this.pushStack(winnow(this,selector,false),"not",selector);},filter:function(selector){return this.pushStack(winnow(this,selector,true),"filter",selector);},is:function(selector){return!!selector&&jQuery.filter(selector,this).length>0;},closest:function(selectors,context){var ret=[],i,l,cur=this[0];if(jQuery.isArray(selectors)){var match,selector,matches={},level=1;if(cur&&selectors.length){for(i=0,l=selectors.length;i<l;i++){selector=selectors[i];if(!matches[selector]){matches[selector]=jQuery.expr.match.POS.test(selector)?jQuery(selector,context||this.context):selector;}}
while(cur&&cur.ownerDocument&&cur!==context){for(selector in matches){match=matches[selector];if(match.jquery?match.index(cur)>-1:jQuery(cur).is(match)){ret.push({selector:selector,elem:cur,level:level});}}
cur=cur.parentNode;level++;}}
return ret;}
var pos=POS.test(selectors)?jQuery(selectors,context||this.context):null;for(i=0,l=this.length;i<l;i++){cur=this[i];while(cur){if(pos?pos.index(cur)>-1:jQuery.find.matchesSelector(cur,selectors)){ret.push(cur);break;}else{cur=cur.parentNode;if(!cur||!cur.ownerDocument||cur===context){break;}}}}
ret=ret.length>1?jQuery.unique(ret):ret;return this.pushStack(ret,"closest",selectors);},index:function(elem){if(!elem||typeof elem==="string"){return jQuery.inArray(this[0],elem?jQuery(elem):this.parent().children());}
return jQuery.inArray(elem.jquery?elem[0]:elem,this);},add:function(selector,context){var set=typeof selector==="string"?jQuery(selector,context):jQuery.makeArray(selector),all=jQuery.merge(this.get(),set);return this.pushStack(isDisconnected(set[0])||isDisconnected(all[0])?all:jQuery.unique(all));},andSelf:function(){return this.add(this.prevObject);}});function isDisconnected(node){return!node||!node.parentNode||node.parentNode.nodeType===11;}
jQuery.each({parent:function(elem){var parent=elem.parentNode;return parent&&parent.nodeType!==11?parent:null;},parents:function(elem){return jQuery.dir(elem,"parentNode");},parentsUntil:function(elem,i,until){return jQuery.dir(elem,"parentNode",until);},next:function(elem){return jQuery.nth(elem,2,"nextSibling");},prev:function(elem){return jQuery.nth(elem,2,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");},nextUntil:function(elem,i,until){return jQuery.dir(elem,"nextSibling",until);},prevUntil:function(elem,i,until){return jQuery.dir(elem,"previousSibling",until);},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},children:function(elem){return jQuery.sibling(elem.firstChild);},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(until,selector){var ret=jQuery.map(this,fn,until),args=slice.call(arguments);if(!runtil.test(name)){selector=until;}
if(selector&&typeof selector==="string"){ret=jQuery.filter(selector,ret);}
ret=this.length>1&&!guaranteedUnique[name]?jQuery.unique(ret):ret;if((this.length>1||rmultiselector.test(selector))&&rparentsprev.test(name)){ret=ret.reverse();}
return this.pushStack(ret,name,args.join(","));};});jQuery.extend({filter:function(expr,elems,not){if(not){expr=":not("+expr+")";}
return elems.length===1?jQuery.find.matchesSelector(elems[0],expr)?[elems[0]]:[]:jQuery.find.matches(expr,elems);},dir:function(elem,dir,until){var matched=[],cur=elem[dir];while(cur&&cur.nodeType!==9&&(until===undefined||cur.nodeType!==1||!jQuery(cur).is(until))){if(cur.nodeType===1){matched.push(cur);}
cur=cur[dir];}
return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir]){if(cur.nodeType===1&&++num===result){break;}}
return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType===1&&n!==elem){r.push(n);}}
return r;}});function winnow(elements,qualifier,keep){if(jQuery.isFunction(qualifier)){return jQuery.grep(elements,function(elem,i){var retVal=!!qualifier.call(elem,i,elem);return retVal===keep;});}else if(qualifier.nodeType){return jQuery.grep(elements,function(elem,i){return(elem===qualifier)===keep;});}else if(typeof qualifier==="string"){var filtered=jQuery.grep(elements,function(elem){return elem.nodeType===1;});if(isSimple.test(qualifier)){return jQuery.filter(qualifier,filtered,!keep);}else{qualifier=jQuery.filter(qualifier,filtered);}}
return jQuery.grep(elements,function(elem,i){return(jQuery.inArray(elem,qualifier)>=0)===keep;});}
var rinlinejQuery=/ jQuery\d+="(?:\d+|null)"/g,rleadingWhitespace=/^\s+/,rxhtmlTag=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,rtagName=/<([\w:]+)/,rtbody=/<tbody/i,rhtml=/<|&#?\w+;/,rnocache=/<(?:script|object|embed|option|style)/i,rchecked=/checked\s*(?:[^=]|=\s*.checked.)/i,wrapMap={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};wrapMap.optgroup=wrapMap.option;wrapMap.tbody=wrapMap.tfoot=wrapMap.colgroup=wrapMap.caption=wrapMap.thead;wrapMap.th=wrapMap.td;if(!jQuery.support.htmlSerialize){wrapMap._default=[1,"div<div>","</div>"];}
jQuery.fn.extend({text:function(text){if(jQuery.isFunction(text)){return this.each(function(i){var self=jQuery(this);self.text(text.call(this,i,self.text()));});}
if(typeof text!=="object"&&text!==undefined){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));}
return jQuery.text(this);},wrapAll:function(html){if(jQuery.isFunction(html)){return this.each(function(i){jQuery(this).wrapAll(html.call(this,i));});}
if(this[0]){var wrap=jQuery(html,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){wrap.insertBefore(this[0]);}
wrap.map(function(){var elem=this;while(elem.firstChild&&elem.firstChild.nodeType===1){elem=elem.firstChild;}
return elem;}).append(this);}
return this;},wrapInner:function(html){if(jQuery.isFunction(html)){return this.each(function(i){jQuery(this).wrapInner(html.call(this,i));});}
return this.each(function(){var self=jQuery(this),contents=self.contents();if(contents.length){contents.wrapAll(html);}else{self.append(html);}});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},unwrap:function(){return this.parent().each(function(){if(!jQuery.nodeName(this,"body")){jQuery(this).replaceWith(this.childNodes);}}).end();},append:function(){return this.domManip(arguments,true,function(elem){if(this.nodeType===1){this.appendChild(elem);}});},prepend:function(){return this.domManip(arguments,true,function(elem){if(this.nodeType===1){this.insertBefore(elem,this.firstChild);}});},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(elem){this.parentNode.insertBefore(elem,this);});}else if(arguments.length){var set=jQuery(arguments[0]);set.push.apply(set,this.toArray());return this.pushStack(set,"before",arguments);}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});}else if(arguments.length){var set=this.pushStack(this,"after",arguments);set.push.apply(set,jQuery(arguments[0]).toArray());return set;}},remove:function(selector,keepData){for(var i=0,elem;(elem=this[i])!=null;i++){if(!selector||jQuery.filter(selector,[elem]).length){if(!keepData&&elem.nodeType===1){jQuery.cleanData(elem.getElementsByTagName("*"));jQuery.cleanData([elem]);}
if(elem.parentNode){elem.parentNode.removeChild(elem);}}}
return this;},empty:function(){for(var i=0,elem;(elem=this[i])!=null;i++){if(elem.nodeType===1){jQuery.cleanData(elem.getElementsByTagName("*"));}
while(elem.firstChild){elem.removeChild(elem.firstChild);}}
return this;},clone:function(dataAndEvents,deepDataAndEvents){dataAndEvents=dataAndEvents==null?false:dataAndEvents;deepDataAndEvents=deepDataAndEvents==null?dataAndEvents:deepDataAndEvents;return this.map(function(){return jQuery.clone(this,dataAndEvents,deepDataAndEvents);});},html:function(value){if(value===undefined){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(rinlinejQuery,""):null;}else if(typeof value==="string"&&!rnocache.test(value)&&(jQuery.support.leadingWhitespace||!rleadingWhitespace.test(value))&&!wrapMap[(rtagName.exec(value)||["",""])[1].toLowerCase()]){value=value.replace(rxhtmlTag,"<$1></$2>");try{for(var i=0,l=this.length;i<l;i++){if(this[i].nodeType===1){jQuery.cleanData(this[i].getElementsByTagName("*"));this[i].innerHTML=value;}}}catch(e){this.empty().append(value);}}else if(jQuery.isFunction(value)){this.each(function(i){var self=jQuery(this);self.html(value.call(this,i,self.html()));});}else{this.empty().append(value);}
return this;},replaceWith:function(value){if(this[0]&&this[0].parentNode){if(jQuery.isFunction(value)){return this.each(function(i){var self=jQuery(this),old=self.html();self.replaceWith(value.call(this,i,old));});}
if(typeof value!=="string"){value=jQuery(value).detach();}
return this.each(function(){var next=this.nextSibling,parent=this.parentNode;jQuery(this).remove();if(next){jQuery(next).before(value);}else{jQuery(parent).append(value);}});}else{return this.pushStack(jQuery(jQuery.isFunction(value)?value():value),"replaceWith",value);}},detach:function(selector){return this.remove(selector,true);},domManip:function(args,table,callback){var results,first,fragment,parent,value=args[0],scripts=[];if(!jQuery.support.checkClone&&arguments.length===3&&typeof value==="string"&&rchecked.test(value)){return this.each(function(){jQuery(this).domManip(args,table,callback,true);});}
if(jQuery.isFunction(value)){return this.each(function(i){var self=jQuery(this);args[0]=value.call(this,i,table?self.html():undefined);self.domManip(args,table,callback);});}
if(this[0]){parent=value&&value.parentNode;if(jQuery.support.parentNode&&parent&&parent.nodeType===11&&parent.childNodes.length===this.length){results={fragment:parent};}else{results=jQuery.buildFragment(args,this,scripts);}
fragment=results.fragment;if(fragment.childNodes.length===1){first=fragment=fragment.firstChild;}else{first=fragment.firstChild;}
if(first){table=table&&jQuery.nodeName(first,"tr");for(var i=0,l=this.length,lastIndex=l-1;i<l;i++){callback.call(table?root(this[i],first):this[i],results.cacheable||(l>1&&i<lastIndex)?jQuery.clone(fragment,true,true):fragment);}}
if(scripts.length){jQuery.each(scripts,evalScript);}}
return this;}});function root(elem,cur){return jQuery.nodeName(elem,"table")?(elem.getElementsByTagName("tbody")[0]||elem.appendChild(elem.ownerDocument.createElement("tbody"))):elem;}
function cloneCopyEvent(src,dest){if(dest.nodeType!==1||!jQuery.hasData(src)){return;}
var internalKey=jQuery.expando,oldData=jQuery.data(src),curData=jQuery.data(dest,oldData);if((oldData=oldData[internalKey])){var events=oldData.events;curData=curData[internalKey]=jQuery.extend({},oldData);if(events){delete curData.handle;curData.events={};for(var type in events){for(var i=0,l=events[type].length;i<l;i++){jQuery.event.add(dest,type+(events[type][i].namespace?".":"")+events[type][i].namespace,events[type][i],events[type][i].data);}}}}}
function cloneFixAttributes(src,dest){if(dest.nodeType!==1){return;}
var nodeName=dest.nodeName.toLowerCase();dest.clearAttributes();dest.mergeAttributes(src);if(nodeName==="object"){dest.outerHTML=src.outerHTML;}else if(nodeName==="input"&&(src.type==="checkbox"||src.type==="radio")){if(src.checked){dest.defaultChecked=dest.checked=src.checked;}
if(dest.value!==src.value){dest.value=src.value;}}else if(nodeName==="option"){dest.selected=src.defaultSelected;}else if(nodeName==="input"||nodeName==="textarea"){dest.defaultValue=src.defaultValue;}
dest.removeAttribute(jQuery.expando);}
jQuery.buildFragment=function(args,nodes,scripts){var fragment,cacheable,cacheresults,doc=(nodes&&nodes[0]?nodes[0].ownerDocument||nodes[0]:document);if(args.length===1&&typeof args[0]==="string"&&args[0].length<512&&doc===document&&args[0].charAt(0)==="<"&&!rnocache.test(args[0])&&(jQuery.support.checkClone||!rchecked.test(args[0]))){cacheable=true;cacheresults=jQuery.fragments[args[0]];if(cacheresults){if(cacheresults!==1){fragment=cacheresults;}}}
if(!fragment){fragment=doc.createDocumentFragment();jQuery.clean(args,doc,fragment,scripts);}
if(cacheable){jQuery.fragments[args[0]]=cacheresults?fragment:1;}
return{fragment:fragment,cacheable:cacheable};};jQuery.fragments={};jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(selector){var ret=[],insert=jQuery(selector),parent=this.length===1&&this[0].parentNode;if(parent&&parent.nodeType===11&&parent.childNodes.length===1&&insert.length===1){insert[original](this[0]);return this;}else{for(var i=0,l=insert.length;i<l;i++){var elems=(i>0?this.clone(true):this).get();jQuery(insert[i])[original](elems);ret=ret.concat(elems);}
return this.pushStack(ret,name,insert.selector);}};});function getAll(elem){if("getElementsByTagName"in elem){return elem.getElementsByTagName("*");}else if("querySelectorAll"in elem){return elem.querySelectorAll("*");}else{return[];}}
jQuery.extend({clone:function(elem,dataAndEvents,deepDataAndEvents){var clone=elem.cloneNode(true),srcElements,destElements,i;if((!jQuery.support.noCloneEvent||!jQuery.support.noCloneChecked)&&(elem.nodeType===1||elem.nodeType===11)&&!jQuery.isXMLDoc(elem)){cloneFixAttributes(elem,clone);srcElements=getAll(elem);destElements=getAll(clone);for(i=0;srcElements[i];++i){cloneFixAttributes(srcElements[i],destElements[i]);}}
if(dataAndEvents){cloneCopyEvent(elem,clone);if(deepDataAndEvents){srcElements=getAll(elem);destElements=getAll(clone);for(i=0;srcElements[i];++i){cloneCopyEvent(srcElements[i],destElements[i]);}}}
return clone;},clean:function(elems,context,fragment,scripts){context=context||document;if(typeof context.createElement==="undefined"){context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;}
var ret=[];for(var i=0,elem;(elem=elems[i])!=null;i++){if(typeof elem==="number"){elem+="";}
if(!elem){continue;}
if(typeof elem==="string"&&!rhtml.test(elem)){elem=context.createTextNode(elem);}else if(typeof elem==="string"){elem=elem.replace(rxhtmlTag,"<$1></$2>");var tag=(rtagName.exec(elem)||["",""])[1].toLowerCase(),wrap=wrapMap[tag]||wrapMap._default,depth=wrap[0],div=context.createElement("div");div.innerHTML=wrap[1]+elem+wrap[2];while(depth--){div=div.lastChild;}
if(!jQuery.support.tbody){var hasBody=rtbody.test(elem),tbody=tag==="table"&&!hasBody?div.firstChild&&div.firstChild.childNodes:wrap[1]==="<table>"&&!hasBody?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j){if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length){tbody[j].parentNode.removeChild(tbody[j]);}}}
if(!jQuery.support.leadingWhitespace&&rleadingWhitespace.test(elem)){div.insertBefore(context.createTextNode(rleadingWhitespace.exec(elem)[0]),div.firstChild);}
elem=div.childNodes;}
if(elem.nodeType){ret.push(elem);}else{ret=jQuery.merge(ret,elem);}}
if(fragment){for(i=0;ret[i];i++){if(scripts&&jQuery.nodeName(ret[i],"script")&&(!ret[i].type||ret[i].type.toLowerCase()==="text/javascript")){scripts.push(ret[i].parentNode?ret[i].parentNode.removeChild(ret[i]):ret[i]);}else{if(ret[i].nodeType===1){ret.splice.apply(ret,[i+1,0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))));}
fragment.appendChild(ret[i]);}}}
return ret;},cleanData:function(elems){var data,id,cache=jQuery.cache,internalKey=jQuery.expando,special=jQuery.event.special,deleteExpando=jQuery.support.deleteExpando;for(var i=0,elem;(elem=elems[i])!=null;i++){if(elem.nodeName&&jQuery.noData[elem.nodeName.toLowerCase()]){continue;}
id=elem[jQuery.expando];if(id){data=cache[id]&&cache[id][internalKey];if(data&&data.events){for(var type in data.events){if(special[type]){jQuery.event.remove(elem,type);}else{jQuery.removeEvent(elem,type,data.handle);}}
if(data.handle){data.handle.elem=null;}}
if(deleteExpando){delete elem[jQuery.expando];}else if(elem.removeAttribute){elem.removeAttribute(jQuery.expando);}
delete cache[id];}}}});function evalScript(i,elem){if(elem.src){jQuery.ajax({url:elem.src,async:false,dataType:"script"});}else{jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");}
if(elem.parentNode){elem.parentNode.removeChild(elem);}}
var ralpha=/alpha\([^)]*\)/i,ropacity=/opacity=([^)]*)/,rdashAlpha=/-([a-z])/ig,rupper=/([A-Z])/g,rnumpx=/^-?\d+(?:px)?$/i,rnum=/^-?\d/,cssShow={position:"absolute",visibility:"hidden",display:"block"},cssWidth=["Left","Right"],cssHeight=["Top","Bottom"],curCSS,getComputedStyle,currentStyle,fcamelCase=function(all,letter){return letter.toUpperCase();};jQuery.fn.css=function(name,value){if(arguments.length===2&&value===undefined){return this;}
return jQuery.access(this,name,value,true,function(elem,name,value){return value!==undefined?jQuery.style(elem,name,value):jQuery.css(elem,name);});};jQuery.extend({cssHooks:{opacity:{get:function(elem,computed){if(computed){var ret=curCSS(elem,"opacity","opacity");return ret===""?"1":ret;}else{return elem.style.opacity;}}}},cssNumber:{"zIndex":true,"fontWeight":true,"opacity":true,"zoom":true,"lineHeight":true},cssProps:{"float":jQuery.support.cssFloat?"cssFloat":"styleFloat"},style:function(elem,name,value,extra){if(!elem||elem.nodeType===3||elem.nodeType===8||!elem.style){return;}
var ret,origName=jQuery.camelCase(name),style=elem.style,hooks=jQuery.cssHooks[origName];name=jQuery.cssProps[origName]||origName;if(value!==undefined){if(typeof value==="number"&&isNaN(value)||value==null){return;}
if(typeof value==="number"&&!jQuery.cssNumber[origName]){value+="px";}
if(!hooks||!("set"in hooks)||(value=hooks.set(elem,value))!==undefined){try{style[name]=value;}catch(e){}}}else{if(hooks&&"get"in hooks&&(ret=hooks.get(elem,false,extra))!==undefined){return ret;}
return style[name];}},css:function(elem,name,extra){var ret,origName=jQuery.camelCase(name),hooks=jQuery.cssHooks[origName];name=jQuery.cssProps[origName]||origName;if(hooks&&"get"in hooks&&(ret=hooks.get(elem,true,extra))!==undefined){return ret;}else if(curCSS){return curCSS(elem,name,origName);}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}
callback.call(elem);for(name in options){elem.style[name]=old[name];}},camelCase:function(string){return string.replace(rdashAlpha,fcamelCase);}});jQuery.curCSS=jQuery.css;jQuery.each(["height","width"],function(i,name){jQuery.cssHooks[name]={get:function(elem,computed,extra){var val;if(computed){if(elem.offsetWidth!==0){val=getWH(elem,name,extra);}else{jQuery.swap(elem,cssShow,function(){val=getWH(elem,name,extra);});}
if(val<=0){val=curCSS(elem,name,name);if(val==="0px"&&currentStyle){val=currentStyle(elem,name,name);}
if(val!=null){return val===""||val==="auto"?"0px":val;}}
if(val<0||val==null){val=elem.style[name];return val===""||val==="auto"?"0px":val;}
return typeof val==="string"?val:val+"px";}},set:function(elem,value){if(rnumpx.test(value)){value=parseFloat(value);if(value>=0){return value+"px";}}else{return value;}}};});if(!jQuery.support.opacity){jQuery.cssHooks.opacity={get:function(elem,computed){return ropacity.test((computed&&elem.currentStyle?elem.currentStyle.filter:elem.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":computed?"1":"";},set:function(elem,value){var style=elem.style;style.zoom=1;var opacity=jQuery.isNaN(value)?"":"alpha(opacity="+value*100+")",filter=style.filter||"";style.filter=ralpha.test(filter)?filter.replace(ralpha,opacity):style.filter+' '+opacity;}};}
if(document.defaultView&&document.defaultView.getComputedStyle){getComputedStyle=function(elem,newName,name){var ret,defaultView,computedStyle;name=name.replace(rupper,"-$1").toLowerCase();if(!(defaultView=elem.ownerDocument.defaultView)){return undefined;}
if((computedStyle=defaultView.getComputedStyle(elem,null))){ret=computedStyle.getPropertyValue(name);if(ret===""&&!jQuery.contains(elem.ownerDocument.documentElement,elem)){ret=jQuery.style(elem,name);}}
return ret;};}
if(document.documentElement.currentStyle){currentStyle=function(elem,name){var left,ret=elem.currentStyle&&elem.currentStyle[name],rsLeft=elem.runtimeStyle&&elem.runtimeStyle[name],style=elem.style;if(!rnumpx.test(ret)&&rnum.test(ret)){left=style.left;if(rsLeft){elem.runtimeStyle.left=elem.currentStyle.left;}
style.left=name==="fontSize"?"1em":(ret||0);ret=style.pixelLeft+"px";style.left=left;if(rsLeft){elem.runtimeStyle.left=rsLeft;}}
return ret===""?"auto":ret;};}
curCSS=getComputedStyle||currentStyle;function getWH(elem,name,extra){var which=name==="width"?cssWidth:cssHeight,val=name==="width"?elem.offsetWidth:elem.offsetHeight;if(extra==="border"){return val;}
jQuery.each(which,function(){if(!extra){val-=parseFloat(jQuery.css(elem,"padding"+this))||0;}
if(extra==="margin"){val+=parseFloat(jQuery.css(elem,"margin"+this))||0;}else{val-=parseFloat(jQuery.css(elem,"border"+this+"Width"))||0;}});return val;}
if(jQuery.expr&&jQuery.expr.filters){jQuery.expr.filters.hidden=function(elem){var width=elem.offsetWidth,height=elem.offsetHeight;return(width===0&&height===0)||(!jQuery.support.reliableHiddenOffsets&&(elem.style.display||jQuery.css(elem,"display"))==="none");};jQuery.expr.filters.visible=function(elem){return!jQuery.expr.filters.hidden(elem);};}
var r20=/%20/g,rbracket=/\[\]$/,rCRLF=/\r?\n/g,rhash=/#.*$/,rheaders=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,rinput=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,rlocalProtocol=/(?:^file|^widget|\-extension):$/,rnoContent=/^(?:GET|HEAD)$/,rprotocol=/^\/\//,rquery=/\?/,rscript=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,rselectTextarea=/^(?:select|textarea)/i,rspacesAjax=/\s+/,rts=/([?&])_=[^&]*/,rucHeaders=/(^|\-)([a-z])/g,rucHeadersFunc=function(_,$1,$2){return $1+$2.toUpperCase();},rurl=/^([\w\+\.\-]+:)\/\/([^\/?#:]*)(?::(\d+))?/,_load=jQuery.fn.load,prefilters={},transports={},ajaxLocation,ajaxLocParts;try{ajaxLocation=document.location.href;}catch(e){ajaxLocation=document.createElement("a");ajaxLocation.href="";ajaxLocation=ajaxLocation.href;}
ajaxLocParts=rurl.exec(ajaxLocation.toLowerCase());function addToPrefiltersOrTransports(structure){return function(dataTypeExpression,func){if(typeof dataTypeExpression!=="string"){func=dataTypeExpression;dataTypeExpression="*";}
if(jQuery.isFunction(func)){var dataTypes=dataTypeExpression.toLowerCase().split(rspacesAjax),i=0,length=dataTypes.length,dataType,list,placeBefore;for(;i<length;i++){dataType=dataTypes[i];placeBefore=/^\+/.test(dataType);if(placeBefore){dataType=dataType.substr(1)||"*";}
list=structure[dataType]=structure[dataType]||[];list[placeBefore?"unshift":"push"](func);}}};}
function inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR,dataType,inspected){dataType=dataType||options.dataTypes[0];inspected=inspected||{};inspected[dataType]=true;var list=structure[dataType],i=0,length=list?list.length:0,executeOnly=(structure===prefilters),selection;for(;i<length&&(executeOnly||!selection);i++){selection=list[i](options,originalOptions,jqXHR);if(typeof selection==="string"){if(!executeOnly||inspected[selection]){selection=undefined;}else{options.dataTypes.unshift(selection);selection=inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR,selection,inspected);}}}
if((executeOnly||!selection)&&!inspected["*"]){selection=inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR,"*",inspected);}
return selection;}
jQuery.fn.extend({load:function(url,params,callback){if(typeof url!=="string"&&_load){return _load.apply(this,arguments);}else if(!this.length){return this;}
var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}
var type="GET";if(params){if(jQuery.isFunction(params)){callback=params;params=undefined;}else if(typeof params==="object"){params=jQuery.param(params,jQuery.ajaxSettings.traditional);type="POST";}}
var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(jqXHR,status,responseText){responseText=jqXHR.responseText;if(jqXHR.isResolved()){jqXHR.done(function(r){responseText=r;});self.html(selector?jQuery("<div>").append(responseText.replace(rscript,"")).find(selector):responseText);}
if(callback){self.each(callback,[responseText,status,jqXHR]);}}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return this.elements?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||rselectTextarea.test(this.nodeName)||rinput.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:jQuery.isArray(val)?jQuery.map(val,function(val,i){return{name:elem.name,value:val.replace(rCRLF,"\r\n")};}):{name:elem.name,value:val.replace(rCRLF,"\r\n")};}).get();}});jQuery.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});jQuery.each(["get","post"],function(i,method){jQuery[method]=function(url,data,callback,type){if(jQuery.isFunction(data)){type=type||callback;callback=data;data=undefined;}
return jQuery.ajax({type:method,url:url,data:data,success:callback,dataType:type});};});jQuery.extend({getScript:function(url,callback){return jQuery.get(url,undefined,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},ajaxSetup:function(target,settings){if(!settings){settings=target;target=jQuery.extend(true,jQuery.ajaxSettings,settings);}else{jQuery.extend(true,target,jQuery.ajaxSettings,settings);}
for(var field in{context:1,url:1}){if(field in settings){target[field]=settings[field];}else if(field in jQuery.ajaxSettings){target[field]=jQuery.ajaxSettings[field];}}
return target;},ajaxSettings:{url:ajaxLocation,isLocal:rlocalProtocol.test(ajaxLocParts[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":window.String,"text html":true,"text json":jQuery.parseJSON,"text xml":jQuery.parseXML}},ajaxPrefilter:addToPrefiltersOrTransports(prefilters),ajaxTransport:addToPrefiltersOrTransports(transports),ajax:function(url,options){if(typeof url==="object"){options=url;url=undefined;}
options=options||{};var
s=jQuery.ajaxSetup({},options),callbackContext=s.context||s,globalEventContext=callbackContext!==s&&(callbackContext.nodeType||callbackContext instanceof jQuery)?jQuery(callbackContext):jQuery.event,deferred=jQuery.Deferred(),completeDeferred=jQuery._Deferred(),statusCode=s.statusCode||{},ifModifiedKey,requestHeaders={},responseHeadersString,responseHeaders,transport,timeoutTimer,parts,state=0,fireGlobals,i,jqXHR={readyState:0,setRequestHeader:function(name,value){if(!state){requestHeaders[name.toLowerCase().replace(rucHeaders,rucHeadersFunc)]=value;}
return this;},getAllResponseHeaders:function(){return state===2?responseHeadersString:null;},getResponseHeader:function(key){var match;if(state===2){if(!responseHeaders){responseHeaders={};while((match=rheaders.exec(responseHeadersString))){responseHeaders[match[1].toLowerCase()]=match[2];}}
match=responseHeaders[key.toLowerCase()];}
return match===undefined?null:match;},overrideMimeType:function(type){if(!state){s.mimeType=type;}
return this;},abort:function(statusText){statusText=statusText||"abort";if(transport){transport.abort(statusText);}
done(0,statusText);return this;}};function done(status,statusText,responses,headers){if(state===2){return;}
state=2;if(timeoutTimer){clearTimeout(timeoutTimer);}
transport=undefined;responseHeadersString=headers||"";jqXHR.readyState=status?4:0;var isSuccess,success,error,response=responses?ajaxHandleResponses(s,jqXHR,responses):undefined,lastModified,etag;if(status>=200&&status<300||status===304){if(s.ifModified){if((lastModified=jqXHR.getResponseHeader("Last-Modified"))){jQuery.lastModified[ifModifiedKey]=lastModified;}
if((etag=jqXHR.getResponseHeader("Etag"))){jQuery.etag[ifModifiedKey]=etag;}}
if(status===304){statusText="notmodified";isSuccess=true;}else{try{success=ajaxConvert(s,response);statusText="success";isSuccess=true;}catch(e){statusText="parsererror";error=e;}}}else{error=statusText;if(!statusText||status){statusText="error";if(status<0){status=0;}}}
jqXHR.status=status;jqXHR.statusText=statusText;if(isSuccess){deferred.resolveWith(callbackContext,[success,statusText,jqXHR]);}else{deferred.rejectWith(callbackContext,[jqXHR,statusText,error]);}
jqXHR.statusCode(statusCode);statusCode=undefined;if(fireGlobals){globalEventContext.trigger("ajax"+(isSuccess?"Success":"Error"),[jqXHR,s,isSuccess?success:error]);}
completeDeferred.resolveWith(callbackContext,[jqXHR,statusText]);if(fireGlobals){globalEventContext.trigger("ajaxComplete",[jqXHR,s]);if(!(--jQuery.active)){jQuery.event.trigger("ajaxStop");}}}
deferred.promise(jqXHR);jqXHR.success=jqXHR.done;jqXHR.error=jqXHR.fail;jqXHR.complete=completeDeferred.done;jqXHR.statusCode=function(map){if(map){var tmp;if(state<2){for(tmp in map){statusCode[tmp]=[statusCode[tmp],map[tmp]];}}else{tmp=map[jqXHR.status];jqXHR.then(tmp,tmp);}}
return this;};s.url=((url||s.url)+"").replace(rhash,"").replace(rprotocol,ajaxLocParts[1]+"//");s.dataTypes=jQuery.trim(s.dataType||"*").toLowerCase().split(rspacesAjax);if(!s.crossDomain){parts=rurl.exec(s.url.toLowerCase());s.crossDomain=!!(parts&&(parts[1]!=ajaxLocParts[1]||parts[2]!=ajaxLocParts[2]||(parts[3]||(parts[1]==="http:"?80:443))!=(ajaxLocParts[3]||(ajaxLocParts[1]==="http:"?80:443))));}
if(s.data&&s.processData&&typeof s.data!=="string"){s.data=jQuery.param(s.data,s.traditional);}
inspectPrefiltersOrTransports(prefilters,s,options,jqXHR);if(state===2){return false;}
fireGlobals=s.global;s.type=s.type.toUpperCase();s.hasContent=!rnoContent.test(s.type);if(fireGlobals&&jQuery.active++===0){jQuery.event.trigger("ajaxStart");}
if(!s.hasContent){if(s.data){s.url+=(rquery.test(s.url)?"&":"?")+s.data;}
ifModifiedKey=s.url;if(s.cache===false){var ts=jQuery.now(),ret=s.url.replace(rts,"$1_="+ts);s.url=ret+((ret===s.url)?(rquery.test(s.url)?"&":"?")+"_="+ts:"");}}
if(s.data&&s.hasContent&&s.contentType!==false||options.contentType){requestHeaders["Content-Type"]=s.contentType;}
if(s.ifModified){ifModifiedKey=ifModifiedKey||s.url;if(jQuery.lastModified[ifModifiedKey]){requestHeaders["If-Modified-Since"]=jQuery.lastModified[ifModifiedKey];}
if(jQuery.etag[ifModifiedKey]){requestHeaders["If-None-Match"]=jQuery.etag[ifModifiedKey];}}
requestHeaders.Accept=s.dataTypes[0]&&s.accepts[s.dataTypes[0]]?s.accepts[s.dataTypes[0]]+(s.dataTypes[0]!=="*"?", */*; q=0.01":""):s.accepts["*"];for(i in s.headers){jqXHR.setRequestHeader(i,s.headers[i]);}
if(s.beforeSend&&(s.beforeSend.call(callbackContext,jqXHR,s)===false||state===2)){jqXHR.abort();return false;}
for(i in{success:1,error:1,complete:1}){jqXHR[i](s[i]);}
transport=inspectPrefiltersOrTransports(transports,s,options,jqXHR);if(!transport){done(-1,"No Transport");}else{jqXHR.readyState=1;if(fireGlobals){globalEventContext.trigger("ajaxSend",[jqXHR,s]);}
if(s.async&&s.timeout>0){timeoutTimer=setTimeout(function(){jqXHR.abort("timeout");},s.timeout);}
try{state=1;transport.send(requestHeaders,done);}catch(e){if(status<2){done(-1,e);}else{jQuery.error(e);}}}
return jqXHR;},param:function(a,traditional){var s=[],add=function(key,value){value=jQuery.isFunction(value)?value():value;s[s.length]=encodeURIComponent(key)+"="+encodeURIComponent(value);};if(traditional===undefined){traditional=jQuery.ajaxSettings.traditional;}
if(jQuery.isArray(a)||(a.jquery&&!jQuery.isPlainObject(a))){jQuery.each(a,function(){add(this.name,this.value);});}else{for(var prefix in a){buildParams(prefix,a[prefix],traditional,add);}}
return s.join("&").replace(r20,"+");}});function buildParams(prefix,obj,traditional,add){if(jQuery.isArray(obj)&&obj.length){jQuery.each(obj,function(i,v){if(traditional||rbracket.test(prefix)){add(prefix,v);}else{buildParams(prefix+"["+(typeof v==="object"||jQuery.isArray(v)?i:"")+"]",v,traditional,add);}});}else if(!traditional&&obj!=null&&typeof obj==="object"){if(jQuery.isArray(obj)||jQuery.isEmptyObject(obj)){add(prefix,"");}else{for(var name in obj){buildParams(prefix+"["+name+"]",obj[name],traditional,add);}}}else{add(prefix,obj);}}
jQuery.extend({active:0,lastModified:{},etag:{}});function ajaxHandleResponses(s,jqXHR,responses){var contents=s.contents,dataTypes=s.dataTypes,responseFields=s.responseFields,ct,type,finalDataType,firstDataType;for(type in responseFields){if(type in responses){jqXHR[responseFields[type]]=responses[type];}}
while(dataTypes[0]==="*"){dataTypes.shift();if(ct===undefined){ct=s.mimeType||jqXHR.getResponseHeader("content-type");}}
if(ct){for(type in contents){if(contents[type]&&contents[type].test(ct)){dataTypes.unshift(type);break;}}}
if(dataTypes[0]in responses){finalDataType=dataTypes[0];}else{for(type in responses){if(!dataTypes[0]||s.converters[type+" "+dataTypes[0]]){finalDataType=type;break;}
if(!firstDataType){firstDataType=type;}}
finalDataType=finalDataType||firstDataType;}
if(finalDataType){if(finalDataType!==dataTypes[0]){dataTypes.unshift(finalDataType);}
return responses[finalDataType];}}
function ajaxConvert(s,response){if(s.dataFilter){response=s.dataFilter(response,s.dataType);}
var dataTypes=s.dataTypes,converters={},i,key,length=dataTypes.length,tmp,current=dataTypes[0],prev,conversion,conv,conv1,conv2;for(i=1;i<length;i++){if(i===1){for(key in s.converters){if(typeof key==="string"){converters[key.toLowerCase()]=s.converters[key];}}}
prev=current;current=dataTypes[i];if(current==="*"){current=prev;}else if(prev!=="*"&&prev!==current){conversion=prev+" "+current;conv=converters[conversion]||converters["* "+current];if(!conv){conv2=undefined;for(conv1 in converters){tmp=conv1.split(" ");if(tmp[0]===prev||tmp[0]==="*"){conv2=converters[tmp[1]+" "+current];if(conv2){conv1=converters[conv1];if(conv1===true){conv=conv2;}else if(conv2===true){conv=conv1;}
break;}}}}
if(!(conv||conv2)){jQuery.error("No conversion from "+conversion.replace(" "," to "));}
if(conv!==true){response=conv?conv(response):conv2(conv1(response));}}}
return response;}
var jsc=jQuery.now(),jsre=/(\=)\?(&|$)|()\?\?()/i;jQuery.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return jQuery.expando+"_"+(jsc++);}});jQuery.ajaxPrefilter("json jsonp",function(s,originalSettings,jqXHR){var dataIsString=(typeof s.data==="string");if(s.dataTypes[0]==="jsonp"||originalSettings.jsonpCallback||originalSettings.jsonp!=null||s.jsonp!==false&&(jsre.test(s.url)||dataIsString&&jsre.test(s.data))){var responseContainer,jsonpCallback=s.jsonpCallback=jQuery.isFunction(s.jsonpCallback)?s.jsonpCallback():s.jsonpCallback,previous=window[jsonpCallback],url=s.url,data=s.data,replace="$1"+jsonpCallback+"$2",cleanUp=function(){window[jsonpCallback]=previous;if(responseContainer&&jQuery.isFunction(previous)){window[jsonpCallback](responseContainer[0]);}};if(s.jsonp!==false){url=url.replace(jsre,replace);if(s.url===url){if(dataIsString){data=data.replace(jsre,replace);}
if(s.data===data){url+=(/\?/.test(url)?"&":"?")+s.jsonp+"="+jsonpCallback;}}}
s.url=url;s.data=data;window[jsonpCallback]=function(response){responseContainer=[response];};jqXHR.then(cleanUp,cleanUp);s.converters["script json"]=function(){if(!responseContainer){jQuery.error(jsonpCallback+" was not called");}
return responseContainer[0];};s.dataTypes[0]="json";return"script";}});jQuery.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(text){jQuery.globalEval(text);return text;}}});jQuery.ajaxPrefilter("script",function(s){if(s.cache===undefined){s.cache=false;}
if(s.crossDomain){s.type="GET";s.global=false;}});jQuery.ajaxTransport("script",function(s){if(s.crossDomain){var script,head=document.head||document.getElementsByTagName("head")[0]||document.documentElement;return{send:function(_,callback){script=document.createElement("script");script.async="async";if(s.scriptCharset){script.charset=s.scriptCharset;}
script.src=s.url;script.onload=script.onreadystatechange=function(_,isAbort){if(!script.readyState||/loaded|complete/.test(script.readyState)){script.onload=script.onreadystatechange=null;if(head&&script.parentNode){head.removeChild(script);}
script=undefined;if(!isAbort){callback(200,"success");}}};head.insertBefore(script,head.firstChild);},abort:function(){if(script){script.onload(0,1);}}};}});var
xhrId=jQuery.now(),xhrCallbacks,testXHR;function xhrOnUnloadAbort(){jQuery(window).unload(function(){for(var key in xhrCallbacks){xhrCallbacks[key](0,1);}});}
function createStandardXHR(){try{return new window.XMLHttpRequest();}catch(e){}}
function createActiveXHR(){try{return new window.ActiveXObject("Microsoft.XMLHTTP");}catch(e){}}
jQuery.ajaxSettings.xhr=window.ActiveXObject?function(){return!this.isLocal&&createStandardXHR()||createActiveXHR();}:createStandardXHR;testXHR=jQuery.ajaxSettings.xhr();jQuery.support.ajax=!!testXHR;jQuery.support.cors=testXHR&&("withCredentials"in testXHR);testXHR=undefined;if(jQuery.support.ajax){jQuery.ajaxTransport(function(s){if(!s.crossDomain||jQuery.support.cors){var callback;return{send:function(headers,complete){var xhr=s.xhr(),handle,i;if(s.username){xhr.open(s.type,s.url,s.async,s.username,s.password);}else{xhr.open(s.type,s.url,s.async);}
if(s.xhrFields){for(i in s.xhrFields){xhr[i]=s.xhrFields[i];}}
if(s.mimeType&&xhr.overrideMimeType){xhr.overrideMimeType(s.mimeType);}
if(!(s.crossDomain&&!s.hasContent)&&!headers["X-Requested-With"]){headers["X-Requested-With"]="XMLHttpRequest";}
try{for(i in headers){xhr.setRequestHeader(i,headers[i]);}}catch(_){}
xhr.send((s.hasContent&&s.data)||null);callback=function(_,isAbort){var status,statusText,responseHeaders,responses,xml;try{if(callback&&(isAbort||xhr.readyState===4)){callback=undefined;if(handle){xhr.onreadystatechange=jQuery.noop;delete xhrCallbacks[handle];}
if(isAbort){if(xhr.readyState!==4){xhr.abort();}}else{status=xhr.status;responseHeaders=xhr.getAllResponseHeaders();responses={};xml=xhr.responseXML;if(xml&&xml.documentElement){responses.xml=xml;}
responses.text=xhr.responseText;try{statusText=xhr.statusText;}catch(e){statusText="";}
if(!status&&s.isLocal&&!s.crossDomain){status=responses.text?200:404;}else if(status===1223){status=204;}}}}catch(firefoxAccessException){if(!isAbort){complete(-1,firefoxAccessException);}}
if(responses){complete(status,statusText,responses,responseHeaders);}};if(!s.async||xhr.readyState===4){callback();}else{if(!xhrCallbacks){xhrCallbacks={};xhrOnUnloadAbort();}
handle=xhrId++;xhr.onreadystatechange=xhrCallbacks[handle]=callback;}},abort:function(){if(callback){callback(0,1);}}};}});}
var elemdisplay={},rfxtypes=/^(?:toggle|show|hide)$/,rfxnum=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,timerId,fxAttrs=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];jQuery.fn.extend({show:function(speed,easing,callback){var elem,display;if(speed||speed===0){return this.animate(genFx("show",3),speed,easing,callback);}else{for(var i=0,j=this.length;i<j;i++){elem=this[i];display=elem.style.display;if(!jQuery._data(elem,"olddisplay")&&display==="none"){display=elem.style.display="";}
if(display===""&&jQuery.css(elem,"display")==="none"){jQuery._data(elem,"olddisplay",defaultDisplay(elem.nodeName));}}
for(i=0;i<j;i++){elem=this[i];display=elem.style.display;if(display===""||display==="none"){elem.style.display=jQuery._data(elem,"olddisplay")||"";}}
return this;}},hide:function(speed,easing,callback){if(speed||speed===0){return this.animate(genFx("hide",3),speed,easing,callback);}else{for(var i=0,j=this.length;i<j;i++){var display=jQuery.css(this[i],"display");if(display!=="none"&&!jQuery._data(this[i],"olddisplay")){jQuery._data(this[i],"olddisplay",display);}}
for(i=0;i<j;i++){this[i].style.display="none";}
return this;}},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2,callback){var bool=typeof fn==="boolean";if(jQuery.isFunction(fn)&&jQuery.isFunction(fn2)){this._toggle.apply(this,arguments);}else if(fn==null||bool){this.each(function(){var state=bool?fn:jQuery(this).is(":hidden");jQuery(this)[state?"show":"hide"]();});}else{this.animate(genFx("toggle",3),fn,fn2,callback);}
return this;},fadeTo:function(speed,to,easing,callback){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:to},speed,easing,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);if(jQuery.isEmptyObject(prop)){return this.each(optall.complete);}
return this[optall.queue===false?"each":"queue"](function(){var opt=jQuery.extend({},optall),p,isElement=this.nodeType===1,hidden=isElement&&jQuery(this).is(":hidden"),self=this;for(p in prop){var name=jQuery.camelCase(p);if(p!==name){prop[name]=prop[p];delete prop[p];p=name;}
if(prop[p]==="hide"&&hidden||prop[p]==="show"&&!hidden){return opt.complete.call(this);}
if(isElement&&(p==="height"||p==="width")){opt.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(jQuery.css(this,"display")==="inline"&&jQuery.css(this,"float")==="none"){if(!jQuery.support.inlineBlockNeedsLayout){this.style.display="inline-block";}else{var display=defaultDisplay(this.nodeName);if(display==="inline"){this.style.display="inline-block";}else{this.style.display="inline";this.style.zoom=1;}}}}
if(jQuery.isArray(prop[p])){(opt.specialEasing=opt.specialEasing||{})[p]=prop[p][1];prop[p]=prop[p][0];}}
if(opt.overflow!=null){this.style.overflow="hidden";}
opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(rfxtypes.test(val)){e[val==="toggle"?hidden?"show":"hide":val](prop);}else{var parts=rfxnum.exec(val),start=e.cur();if(parts){var end=parseFloat(parts[2]),unit=parts[3]||(jQuery.cssNumber[name]?"":"px");if(unit!=="px"){jQuery.style(self,name,(end||1)+unit);start=((end||1)/e.cur())*start;jQuery.style(self,name,start+unit);}
if(parts[1]){end=((parts[1]==="-="?-1:1)*end)+start;}
e.custom(start,end,unit);}else{e.custom(start,val,"");}}});return true;});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue){this.queue([]);}
this.each(function(){for(var i=timers.length-1;i>=0;i--){if(timers[i].elem===this){if(gotoEnd){timers[i](true);}
timers.splice(i,1);}}});if(!gotoEnd){this.dequeue();}
return this;}});function genFx(type,num){var obj={};jQuery.each(fxAttrs.concat.apply([],fxAttrs.slice(0,num)),function(){obj[this]=type;});return obj;}
jQuery.each({slideDown:genFx("show",1),slideUp:genFx("hide",1),slideToggle:genFx("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(name,props){jQuery.fn[name]=function(speed,easing,callback){return this.animate(props,speed,easing,callback);};});jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&typeof speed==="object"?jQuery.extend({},speed):{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&!jQuery.isFunction(easing)&&easing};opt.duration=jQuery.fx.off?0:typeof opt.duration==="number"?opt.duration:opt.duration in jQuery.fx.speeds?jQuery.fx.speeds[opt.duration]:jQuery.fx.speeds._default;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false){jQuery(this).dequeue();}
if(jQuery.isFunction(opt.old)){opt.old.call(this);}};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig){options.orig={};}}});jQuery.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this);}
(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop];}
var parsed,r=jQuery.css(this.elem,this.prop);return isNaN(parsed=parseFloat(r))?!r||r==="auto"?0:r:parsed;},custom:function(from,to,unit){var self=this,fx=jQuery.fx;this.startTime=jQuery.now();this.start=from;this.end=to;this.unit=unit||this.unit||(jQuery.cssNumber[this.prop]?"":"px");this.now=this.start;this.pos=this.state=0;function t(gotoEnd){return self.step(gotoEnd);}
t.elem=this.elem;if(t()&&jQuery.timers.push(t)&&!timerId){timerId=setInterval(fx.tick,fx.interval);}},show:function(){this.options.orig[this.prop]=jQuery.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());jQuery(this.elem).show();},hide:function(){this.options.orig[this.prop]=jQuery.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0);},step:function(gotoEnd){var t=jQuery.now(),done=true;if(gotoEnd||t>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var i in this.options.curAnim){if(this.options.curAnim[i]!==true){done=false;}}
if(done){if(this.options.overflow!=null&&!jQuery.support.shrinkWrapBlocks){var elem=this.elem,options=this.options;jQuery.each(["","X","Y"],function(index,value){elem.style["overflow"+value]=options.overflow[index];});}
if(this.options.hide){jQuery(this.elem).hide();}
if(this.options.hide||this.options.show){for(var p in this.options.curAnim){jQuery.style(this.elem,p,this.options.orig[p]);}}
this.options.complete.call(this.elem);}
return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;var specialEasing=this.options.specialEasing&&this.options.specialEasing[this.prop];var defaultEasing=this.options.easing||(jQuery.easing.swing?"swing":"linear");this.pos=jQuery.easing[specialEasing||defaultEasing](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}
return true;}};jQuery.extend(jQuery.fx,{tick:function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++){if(!timers[i]()){timers.splice(i--,1);}}
if(!timers.length){jQuery.fx.stop();}},interval:13,stop:function(){clearInterval(timerId);timerId=null;},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(fx){jQuery.style(fx.elem,"opacity",fx.now);},_default:function(fx){if(fx.elem.style&&fx.elem.style[fx.prop]!=null){fx.elem.style[fx.prop]=(fx.prop==="width"||fx.prop==="height"?Math.max(0,fx.now):fx.now)+fx.unit;}else{fx.elem[fx.prop]=fx.now;}}}});if(jQuery.expr&&jQuery.expr.filters){jQuery.expr.filters.animated=function(elem){return jQuery.grep(jQuery.timers,function(fn){return elem===fn.elem;}).length;};}
function defaultDisplay(nodeName){if(!elemdisplay[nodeName]){var elem=jQuery("<"+nodeName+">").appendTo("body"),display=elem.css("display");elem.remove();if(display==="none"||display===""){display="block";}
elemdisplay[nodeName]=display;}
return elemdisplay[nodeName];}
var rtable=/^t(?:able|d|h)$/i,rroot=/^(?:body|html)$/i;if("getBoundingClientRect"in document.documentElement){jQuery.fn.offset=function(options){var elem=this[0],box;if(options){return this.each(function(i){jQuery.offset.setOffset(this,options,i);});}
if(!elem||!elem.ownerDocument){return null;}
if(elem===elem.ownerDocument.body){return jQuery.offset.bodyOffset(elem);}
try{box=elem.getBoundingClientRect();}catch(e){}
var doc=elem.ownerDocument,docElem=doc.documentElement;if(!box||!jQuery.contains(docElem,elem)){return box?{top:box.top,left:box.left}:{top:0,left:0};}
var body=doc.body,win=getWindow(doc),clientTop=docElem.clientTop||body.clientTop||0,clientLeft=docElem.clientLeft||body.clientLeft||0,scrollTop=(win.pageYOffset||jQuery.support.boxModel&&docElem.scrollTop||body.scrollTop),scrollLeft=(win.pageXOffset||jQuery.support.boxModel&&docElem.scrollLeft||body.scrollLeft),top=box.top+scrollTop-clientTop,left=box.left+scrollLeft-clientLeft;return{top:top,left:left};};}else{jQuery.fn.offset=function(options){var elem=this[0];if(options){return this.each(function(i){jQuery.offset.setOffset(this,options,i);});}
if(!elem||!elem.ownerDocument){return null;}
if(elem===elem.ownerDocument.body){return jQuery.offset.bodyOffset(elem);}
jQuery.offset.initialize();var computedStyle,offsetParent=elem.offsetParent,prevOffsetParent=elem,doc=elem.ownerDocument,docElem=doc.documentElement,body=doc.body,defaultView=doc.defaultView,prevComputedStyle=defaultView?defaultView.getComputedStyle(elem,null):elem.currentStyle,top=elem.offsetTop,left=elem.offsetLeft;while((elem=elem.parentNode)&&elem!==body&&elem!==docElem){if(jQuery.offset.supportsFixedPosition&&prevComputedStyle.position==="fixed"){break;}
computedStyle=defaultView?defaultView.getComputedStyle(elem,null):elem.currentStyle;top-=elem.scrollTop;left-=elem.scrollLeft;if(elem===offsetParent){top+=elem.offsetTop;left+=elem.offsetLeft;if(jQuery.offset.doesNotAddBorder&&!(jQuery.offset.doesAddBorderForTableAndCells&&rtable.test(elem.nodeName))){top+=parseFloat(computedStyle.borderTopWidth)||0;left+=parseFloat(computedStyle.borderLeftWidth)||0;}
prevOffsetParent=offsetParent;offsetParent=elem.offsetParent;}
if(jQuery.offset.subtractsBorderForOverflowNotVisible&&computedStyle.overflow!=="visible"){top+=parseFloat(computedStyle.borderTopWidth)||0;left+=parseFloat(computedStyle.borderLeftWidth)||0;}
prevComputedStyle=computedStyle;}
if(prevComputedStyle.position==="relative"||prevComputedStyle.position==="static"){top+=body.offsetTop;left+=body.offsetLeft;}
if(jQuery.offset.supportsFixedPosition&&prevComputedStyle.position==="fixed"){top+=Math.max(docElem.scrollTop,body.scrollTop);left+=Math.max(docElem.scrollLeft,body.scrollLeft);}
return{top:top,left:left};};}
jQuery.offset={initialize:function(){var body=document.body,container=document.createElement("div"),innerDiv,checkDiv,table,td,bodyMarginTop=parseFloat(jQuery.css(body,"marginTop"))||0,html="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";jQuery.extend(container.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});container.innerHTML=html;body.insertBefore(container,body.firstChild);innerDiv=container.firstChild;checkDiv=innerDiv.firstChild;td=innerDiv.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(checkDiv.offsetTop!==5);this.doesAddBorderForTableAndCells=(td.offsetTop===5);checkDiv.style.position="fixed";checkDiv.style.top="20px";this.supportsFixedPosition=(checkDiv.offsetTop===20||checkDiv.offsetTop===15);checkDiv.style.position=checkDiv.style.top="";innerDiv.style.overflow="hidden";innerDiv.style.position="relative";this.subtractsBorderForOverflowNotVisible=(checkDiv.offsetTop===-5);this.doesNotIncludeMarginInBodyOffset=(body.offsetTop!==bodyMarginTop);body.removeChild(container);body=container=innerDiv=checkDiv=table=td=null;jQuery.offset.initialize=jQuery.noop;},bodyOffset:function(body){var top=body.offsetTop,left=body.offsetLeft;jQuery.offset.initialize();if(jQuery.offset.doesNotIncludeMarginInBodyOffset){top+=parseFloat(jQuery.css(body,"marginTop"))||0;left+=parseFloat(jQuery.css(body,"marginLeft"))||0;}
return{top:top,left:left};},setOffset:function(elem,options,i){var position=jQuery.css(elem,"position");if(position==="static"){elem.style.position="relative";}
var curElem=jQuery(elem),curOffset=curElem.offset(),curCSSTop=jQuery.css(elem,"top"),curCSSLeft=jQuery.css(elem,"left"),calculatePosition=(position==="absolute"&&jQuery.inArray('auto',[curCSSTop,curCSSLeft])>-1),props={},curPosition={},curTop,curLeft;if(calculatePosition){curPosition=curElem.position();}
curTop=calculatePosition?curPosition.top:parseInt(curCSSTop,10)||0;curLeft=calculatePosition?curPosition.left:parseInt(curCSSLeft,10)||0;if(jQuery.isFunction(options)){options=options.call(elem,i,curOffset);}
if(options.top!=null){props.top=(options.top-curOffset.top)+curTop;}
if(options.left!=null){props.left=(options.left-curOffset.left)+curLeft;}
if("using"in options){options.using.call(elem,props);}else{curElem.css(props);}}};jQuery.fn.extend({position:function(){if(!this[0]){return null;}
var elem=this[0],offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=rroot.test(offsetParent[0].nodeName)?{top:0,left:0}:offsetParent.offset();offset.top-=parseFloat(jQuery.css(elem,"marginTop"))||0;offset.left-=parseFloat(jQuery.css(elem,"marginLeft"))||0;parentOffset.top+=parseFloat(jQuery.css(offsetParent[0],"borderTopWidth"))||0;parentOffset.left+=parseFloat(jQuery.css(offsetParent[0],"borderLeftWidth"))||0;return{top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};},offsetParent:function(){return this.map(function(){var offsetParent=this.offsetParent||document.body;while(offsetParent&&(!rroot.test(offsetParent.nodeName)&&jQuery.css(offsetParent,"position")==="static")){offsetParent=offsetParent.offsetParent;}
return offsetParent;});}});jQuery.each(["Left","Top"],function(i,name){var method="scroll"+name;jQuery.fn[method]=function(val){var elem=this[0],win;if(!elem){return null;}
if(val!==undefined){return this.each(function(){win=getWindow(this);if(win){win.scrollTo(!i?val:jQuery(win).scrollLeft(),i?val:jQuery(win).scrollTop());}else{this[method]=val;}});}else{win=getWindow(elem);return win?("pageXOffset"in win)?win[i?"pageYOffset":"pageXOffset"]:jQuery.support.boxModel&&win.document.documentElement[method]||win.document.body[method]:elem[method];}};});function getWindow(elem){return jQuery.isWindow(elem)?elem:elem.nodeType===9?elem.defaultView||elem.parentWindow:false;}
jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn["inner"+name]=function(){return this[0]?parseFloat(jQuery.css(this[0],type,"padding")):null;};jQuery.fn["outer"+name]=function(margin){return this[0]?parseFloat(jQuery.css(this[0],type,margin?"margin":"border")):null;};jQuery.fn[type]=function(size){var elem=this[0];if(!elem){return size==null?null:this;}
if(jQuery.isFunction(size)){return this.each(function(i){var self=jQuery(this);self[type](size.call(this,i,self[type]()));});}
if(jQuery.isWindow(elem)){var docElemProp=elem.document.documentElement["client"+name];return elem.document.compatMode==="CSS1Compat"&&docElemProp||elem.document.body["client"+name]||docElemProp;}else if(elem.nodeType===9){return Math.max(elem.documentElement["client"+name],elem.body["scroll"+name],elem.documentElement["scroll"+name],elem.body["offset"+name],elem.documentElement["offset"+name]);}else if(size===undefined){var orig=jQuery.css(elem,type),ret=parseFloat(orig);return jQuery.isNaN(ret)?orig:ret;}else{return this.css(type,typeof size==="string"?size:size+"px");}};});window.jQuery=window.$=jQuery;})(window);(function(c,j){function k(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.10",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,l,m){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(l)g-=parseFloat(c.curCSS(f,"border"+this+"Width",true))||0;if(m)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){var b=a.nodeName.toLowerCase(),d=c.attr(a,"tabindex");if("area"===b){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&k(a)}return(/input|select|textarea|button|object/.test(b)?!a.disabled:"a"==b?a.href||!isNaN(d):!isNaN(d))&&k(a)},tabbable:function(a){var b=c.attr(a,"tabindex");return(isNaN(b)||b>=0)&&c(a).is(":focusable")}});c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e<b.length;e++)a.options[b[e][0]]&&b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==="hidden")return false;b=b&&b==="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,h,i){return c.ui.isOverAxis(a,d,h)&&c.ui.isOverAxis(b,e,i)}})}})(jQuery);;(function(b,j){if(b.cleanData){var k=b.cleanData;b.cleanData=function(a){for(var c=0,d;(d=a[c])!=null;c++)b(d).triggerHandler("remove");k(a)}}else{var l=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add([this]).each(function(){b(this).triggerHandler("remove")});return l.call(b(this),a,c)})}}b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=function(h){return!!b.data(h,a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend(true,{},c.options);b[e][a].prototype=b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):d;if(e&&d.charAt(0)==="_")return h;e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==j){h=i;return false}}):this.each(function(){var g=b.data(this,a);g?g.option(d||{})._init():b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){b.data(c,this.widgetName,this);this.element=b(c);this.options=b.extend(true,{},this.options,this._getCreateOptions(),a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(a,c){var d=a;if(arguments.length===0)return b.extend({},this.options);if(typeof a==="string"){if(c===j)return this.options[a];d={};d[a]=c}this._setOptions(d);return this},_setOptions:function(a){var c=this;b.each(a,function(d,e){c._setOption(d,e)});return this},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",c);return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a=b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery);;(function(c){c.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(b){return a._mouseDown(b)}).bind("click."+this.widgetName,function(b){if(true===c.data(b.target,a.widgetName+".preventClickEvent")){c.removeData(b.target,a.widgetName+".preventClickEvent");b.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(a){a.originalEvent=a.originalEvent||{};if(!a.originalEvent.mouseHandled){this._mouseStarted&&this._mouseUp(a);this._mouseDownEvent=a;var b=this,e=a.which==1,f=typeof this.options.cancel=="string"?c(a.target).parents().add(a.target).filter(this.options.cancel).length:false;if(!e||f||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){b.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted=this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault();return true}}this._mouseMoveDelegate=function(d){return b._mouseMove(d)};this._mouseUpDelegate=function(d){return b._mouseUp(d)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);a.preventDefault();return a.originalEvent.mouseHandled=true}},_mouseMove:function(a){if(c.browser.msie&&!(document.documentMode>=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;a.target==this._mouseDownEvent.target&&c.data(a.target,this.widgetName+".preventClickEvent",true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery);;(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.setTimeout){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j={top:b.of.pageY,left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/2;if(b.at[1]==="bottom")j.top+=k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+(parseInt(c.curCSS(this,"marginRight",true))||0),w=m+q+(parseInt(c.curCSS(this,"marginBottom",true))||0),i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]==="center")i.top-=m/2;i.left=Math.round(i.left);i.top=Math.round(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();b.left=d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];b.left+=a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=c(b),g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery);;(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper=="original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b=this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;return true},_mouseStart:function(a){var b=this.options;this.helper=this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-
this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions();d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);return true},_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b=false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&this.options.revert.call(this.element,b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle||!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone():this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&&a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-
(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[(a.containment=="document"?0:d(window).scrollLeft())-this.offset.relative.left-this.offset.parent.left,(a.containment=="document"?0:d(window).scrollTop())-this.offset.relative.top-this.offset.parent.top,(a.containment=="document"?0:d(window).scrollLeft())+d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a.containment=="document"?0:d(window).scrollTop())+(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&a.containment.constructor!=Array){var b=d(a.containment)[0];if(b){a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}}else if(a.containment.constructor==Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.left<this.containment[0])e=this.containment[0]+this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>this.containment[2])e=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;e=this.originalPageX+Math.round((e-this.originalPageX)/b.grid[0])*b.grid[0];e=this.containment?!(e-this.offset.click.left<this.containment[0]||e-this.offset.click.left>this.containment[2])?e:!(e-this.offset.click.left<this.containment[0])?e-b.grid[0]:e+b.grid[0]:e}}return{top:g-this.offset.click.top-
this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop()),left:e-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove();this.helper=null;this.cancelHelperRemoval=false},_trigger:function(a,b,c){c=c||this._uiHash();d.ui.plugin.call(this,a,[b,c]);if(a=="drag")this.positionAbs=this._convertPositionTo("absolute");return d.Widget.prototype._trigger.call(this,a,b,c)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}});d.extend(d.ui.draggable,{version:"1.8.10"});d.ui.plugin.add("draggable","connectToSortable",{start:function(a,b){var c=d(this).data("draggable"),f=c.options,e=d.extend({},b,{item:c.element});c.sortables=[];d(f.connectToSortable).each(function(){var g=d.data(this,"sortable");if(g&&!g.options.disabled){c.sortables.push({instance:g,shouldRevert:g.options.revert});g._refreshItems();g._trigger("activate",a,e)}})},stop:function(a,b){var c=d(this).data("draggable"),f=d.extend({},b,{item:c.element});d.each(c.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;c.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert)this.instance.options.revert=true;this.instance._mouseStop(a);this.instance.options.helper=this.instance.options._helper;c.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})}else{this.instance.cancelHelperRemoval=false;this.instance._trigger("deactivate",a,f)}})},drag:function(a,b){var c=d(this).data("draggable"),f=this;d.each(c.sortables,function(){this.instance.positionAbs=c.positionAbs;this.instance.helperProportions=c.helperProportions;this.instance.offset.click=c.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=d(f).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return b.helper[0]};a.target=this.instance.currentItem[0];this.instance._mouseCapture(a,true);this.instance._mouseStart(a,true,true);this.instance.offset.click.top=c.offset.click.top;this.instance.offset.click.left=c.offset.click.left;this.instance.offset.parent.left-=c.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=c.offset.parent.top-this.instance.offset.parent.top;c._trigger("toSortable",a);c.dropped=this.instance.element;c.currentItem=c.element;this.instance.fromOutside=c}this.instance.currentItem&&this.instance._mouseDrag(a)}else if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",a,this.instance._uiHash(this.instance));this.instance._mouseStop(a,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();this.instance.placeholder&&this.instance.placeholder.remove();c._trigger("fromSortable",a);c.dropped=false}})}});d.ui.plugin.add("draggable","cursor",{start:function(){var a=d("body"),b=d(this).data("draggable").options;if(a.css("cursor"))b._cursor=a.css("cursor");a.css("cursor",b.cursor)},stop:function(){var a=d(this).data("draggable").options;a._cursor&&d("body").css("cursor",a._cursor)}});d.ui.plugin.add("draggable","iframeFix",{start:function(){var a=d(this).data("draggable").options;d(a.iframeFix===true?"iframe":a.iframeFix).each(function(){d('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")})},stop:function(){d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});d.ui.plugin.add("draggable","opacity",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("opacity"))b._opacity=a.css("opacity");a.css("opacity",b.opacity)},stop:function(a,b){a=d(this).data("draggable").options;a._opacity&&d(b.helper).css("opacity",a._opacity)}});d.ui.plugin.add("draggable","scroll",{start:function(){var a=d(this).data("draggable");if(a.scrollParent[0]!=document&&a.scrollParent[0].tagName!="HTML")a.overflowOffset=a.scrollParent.offset()},drag:function(a){var b=d(this).data("draggable"),c=b.options,f=false;if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){if(!c.axis||c.axis!="x")if(b.overflowOffset.top+b.scrollParent[0].offsetHeight-a.pageY<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop+c.scrollSpeed;else if(a.pageY-b.overflowOffset.top<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop-
c.scrollSpeed;if(!c.axis||c.axis!="y")if(b.overflowOffset.left+b.scrollParent[0].offsetWidth-a.pageX<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft+c.scrollSpeed;else if(a.pageX-b.overflowOffset.left<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft-c.scrollSpeed}else{if(!c.axis||c.axis!="x")if(a.pageY-d(document).scrollTop()<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()-c.scrollSpeed);else if(d(window).height()-
(a.pageY-d(document).scrollTop())<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()+c.scrollSpeed);if(!c.axis||c.axis!="y")if(a.pageX-d(document).scrollLeft()<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()-c.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()+c.scrollSpeed)}f!==false&&d.ui.ddmanager&&!c.dropBehaviour&&d.ui.ddmanager.prepareOffsets(b,a)}});d.ui.plugin.add("draggable","snap",{start:function(){var a=d(this).data("draggable"),b=a.options;a.snapElements=[];d(b.snap.constructor!=String?b.snap.items||":data(draggable)":b.snap).each(function(){var c=d(this),f=c.offset();this!=a.element[0]&&a.snapElements.push({item:this,width:c.outerWidth(),height:c.outerHeight(),top:f.top,left:f.left})})},drag:function(a,b){for(var c=d(this).data("draggable"),f=c.options,e=f.snapTolerance,g=b.offset.left,n=g+c.helperProportions.width,m=b.offset.top,o=m+c.helperProportions.height,h=c.snapElements.length-1;h>=0;h--){var i=c.snapElements[h].left,k=i+c.snapElements[h].width,j=c.snapElements[h].top,l=j+c.snapElements[h].height;if(i-e<g&&g<k+e&&j-e<m&&m<l+e||i-e<g&&g<k+e&&j-e<o&&o<l+e||i-e<n&&n<k+e&&j-e<m&&m<l+e||i-e<n&&n<k+e&&j-e<o&&o<l+e){if(f.snapMode!="inner"){var p=Math.abs(j-o)<=e,q=Math.abs(l-m)<=e,r=Math.abs(i-n)<=e,s=Math.abs(k-g)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:j-c.helperProportions.height,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:l,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:i-c.helperProportions.width}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:k}).left-c.margins.left}var t=p||q||r||s;if(f.snapMode!="outer"){p=Math.abs(j-m)<=e;q=Math.abs(l-o)<=e;r=Math.abs(i-g)<=e;s=Math.abs(k-n)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:j,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:l-c.helperProportions.height,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:i}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:k-c.helperProportions.width}).left-c.margins.left}if(!c.snapElements[h].snapping&&(p||q||r||s||t))c.options.snap.snap&&c.options.snap.snap.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[h].item}));c.snapElements[h].snapping=p||q||r||s||t}else{c.snapElements[h].snapping&&c.options.snap.release&&c.options.snap.release.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[h].item}));c.snapElements[h].snapping=false}}}});d.ui.plugin.add("draggable","stack",{start:function(){var a=d(this).data("draggable").options;a=d.makeArray(d(a.stack)).sort(function(c,f){return(parseInt(d(c).css("zIndex"),10)||0)-(parseInt(d(f).css("zIndex"),10)||0)});if(a.length){var b=parseInt(a[0].style.zIndex)||0;d(a).each(function(c){this.style.zIndex=b+c});this[0].style.zIndex=b+a.length}}});d.ui.plugin.add("draggable","zIndex",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("zIndex"))b._zIndex=a.css("zIndex");a.css("zIndex",b.zIndex)},stop:function(a,b){a=d(this).data("draggable").options;a._zIndex&&d(b.helper).css("zIndex",a._zIndex)}})})(jQuery);;(function(d){d.widget("ui.droppable",{widgetEventPrefix:"drop",options:{accept:"*",activeClass:false,addClasses:true,greedy:false,hoverClass:false,scope:"default",tolerance:"intersect"},_create:function(){var a=this.options,b=a.accept;this.isover=0;this.isout=1;this.accept=d.isFunction(b)?b:function(c){return c.is(b)};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};d.ui.ddmanager.droppables[a.scope]=d.ui.ddmanager.droppables[a.scope]||[];d.ui.ddmanager.droppables[a.scope].push(this);a.addClasses&&this.element.addClass("ui-droppable")},destroy:function(){for(var a=d.ui.ddmanager.droppables[this.options.scope],b=0;b<a.length;b++)a[b]==this&&a.splice(b,1);this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable");return this},_setOption:function(a,b){if(a=="accept")this.accept=d.isFunction(b)?b:function(c){return c.is(b)};d.Widget.prototype._setOption.apply(this,arguments)},_activate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass);b&&this._trigger("activate",a,this.ui(b))},_deactivate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass);b&&this._trigger("deactivate",a,this.ui(b))},_over:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.addClass(this.options.hoverClass);this._trigger("over",a,this.ui(b))}},_out:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("out",a,this.ui(b))}},_drop:function(a,b){var c=b||d.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return false;var e=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var g=d.data(this,"droppable");if(g.options.greedy&&!g.options.disabled&&g.options.scope==c.options.scope&&g.accept.call(g.element[0],c.currentItem||c.element)&&d.ui.intersect(c,d.extend(g,{offset:g.element.offset()}),g.options.tolerance)){e=true;return false}});if(e)return false;if(this.accept.call(this.element[0],c.currentItem||c.element)){this.options.activeClass&&this.element.removeClass(this.options.activeClass);this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("drop",a,this.ui(c));return this.element}return false},ui:function(a){return{draggable:a.currentItem||a.element,helper:a.helper,position:a.position,offset:a.positionAbs}}});d.extend(d.ui.droppable,{version:"1.8.10"});d.ui.intersect=function(a,b,c){if(!b.offset)return false;var e=(a.positionAbs||a.position.absolute).left,g=e+a.helperProportions.width,f=(a.positionAbs||a.position.absolute).top,h=f+a.helperProportions.height,i=b.offset.left,k=i+b.proportions.width,j=b.offset.top,l=j+b.proportions.height;switch(c){case"fit":return i<=e&&g<=k&&j<=f&&h<=l;case"intersect":return i<e+a.helperProportions.width/2&&g-a.helperProportions.width/2<k&&j<f+a.helperProportions.height/2&&h-a.helperProportions.height/2<l;case"pointer":return d.ui.isOver((a.positionAbs||a.position.absolute).top+(a.clickOffset||a.offset.click).top,(a.positionAbs||a.position.absolute).left+(a.clickOffset||a.offset.click).left,j,i,b.proportions.height,b.proportions.width);case"touch":return(f>=j&&f<=l||h>=j&&h<=l||f<j&&h>l)&&(e>=i&&e<=k||g>=i&&g<=k||e<i&&g>k);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f<c.length;f++)if(!(c[f].options.disabled||a&&!c[f].accept.call(c[f].element[0],a.currentItem||a.element))){for(var h=0;h<g.length;h++)if(g[h]==c[f].element[0]){c[f].proportions.height=0;continue a}c[f].visible=c[f].element.css("display")!="none";if(c[f].visible){c[f].offset=c[f].element.offset();c[f].proportions={width:c[f].element[0].offsetWidth,height:c[f].element[0].offsetHeight};e=="mousedown"&&c[f]._activate.call(c[f],b)}}},drop:function(a,b){var c=false;d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(this.options){if(!this.options.disabled&&this.visible&&d.ui.intersect(a,this,this.options.tolerance))c=c||this._drop.call(this,b);if(!this.options.disabled&&this.visible&&this.accept.call(this.element[0],a.currentItem||a.element)){this.isout=1;this.isover=0;this._deactivate.call(this,b)}}});return c},drag:function(a,b){a.options.refreshPositions&&d.ui.ddmanager.prepareOffsets(a,b);d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(!(this.options.disabled||this.greedyChild||!this.visible)){var c=d.ui.intersect(a,this,this.options.tolerance);if(c=!c&&this.isover==1?"isout":c&&this.isover==0?"isover":null){var e;if(this.options.greedy){var g=this.element.parents(":data(droppable):eq(0)");if(g.length){e=d.data(g[0],"droppable");e.greedyChild=c=="isover"?1:0}}if(e&&c=="isover"){e.isover=0;e.isout=1;e._out.call(e,b)}this[c]=1;this[c=="isout"?"isover":"isout"]=0;this[c=="isover"?"_over":"_out"].call(this,b);if(e&&c=="isout"){e.isout=0;e.isover=1;e._over.call(e,b)}}}})}}})(jQuery);;(function(e){e.widget("ui.resizable",e.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1E3},_create:function(){var b=this,a=this.options;this.element.addClass("ui-resizable");e.extend(this,{_aspectRatio:!!a.aspectRatio,aspectRatio:a.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:a.helper||a.ghost||a.animate?a.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){/relative/.test(this.element.css("position"))&&e.browser.opera&&this.element.css({position:"relative",top:"auto",left:"auto"});this.element.wrap(e('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var d=0;d<c.length;d++){var f=e.trim(c[d]),g=e('<div class="ui-resizable-handle '+("ui-resizable-"+f)+'"></div>');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor==String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),k=0;k=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,k);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){e(this).removeClass("ui-resizable-autohide");b._handles.show()},function(){if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a=false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio:this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis];if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize",b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height;f=f?0:c.sizeDiff.width;f={width:c.helper.width()-f,height:c.helper.height()-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f,{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",b);this._helper&&this.helper.remove();return false},_updateCache:function(b){this.offset=this.helper.offset();if(l(b.left))this.position.left=b.left;if(l(b.top))this.position.top=b.top;if(l(b.height))this.size.height=b.height;if(l(b.width))this.size.width=b.width},_updateRatio:function(b){var a=this.position,c=this.size,d=this.axis;if(b.height)b.width=c.height*this.aspectRatio;else if(b.width)b.height=c.width/this.aspectRatio;if(d=="sw"){b.left=a.left+(c.width-b.width);b.top=null}if(d=="nw"){b.top=a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this.options,c=this.axis,d=l(b.width)&&a.maxWidth&&a.maxWidth<b.width,f=l(b.height)&&a.maxHeight&&a.maxHeight<b.height,g=l(b.width)&&a.minWidth&&a.minWidth>b.width,h=l(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+
this.size.height,k=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&k)b.left=i-a.minWidth;if(d&&k)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a<this._proportionallyResizeElements.length;a++){var c=this._proportionallyResizeElements[a];if(!this.borderDif){var d=[c.css("borderTopWidth"),c.css("borderRightWidth"),c.css("borderBottomWidth"),c.css("borderLeftWidth")],f=[c.css("paddingTop"),c.css("paddingRight"),c.css("paddingBottom"),c.css("paddingLeft")];this.borderDif=e.map(d,function(g,h){g=parseInt(g,10)||0;h=parseInt(f[h],10)||0;return g+h})}e.browser.msie&&(e(b).is(":hidden")||e(b).parents(":hidden").length)||c.css({height:b.height()-this.borderDif[0]-this.borderDif[2]||0,width:b.width()-this.borderDif[1]-this.borderDif[3]||0})}},_renderProxy:function(){var b=this.options;this.elementOffset=this.element.offset();if(this._helper){this.helper=this.helper||e('<div style="overflow:hidden;"></div>');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]);b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});e.extend(e.ui.resizable,{version:"1.8.10"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(),10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top-f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var k=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:k.parents(a.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(r,function(n,o){if((n=(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(k.css("position"))){c._revertToRelativePosition=true;k.css({position:"absolute",top:"auto",left:"auto"})}k.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType?e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})};if(b._revertToRelativePosition){b._revertToRelativePosition=false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a=e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height-
g};g=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing,step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement=e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d=e(a),f=[];e(["Top","Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset;var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options,d=a.containerOffset,f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left:a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?d.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top-d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(d+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition,f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&&/static/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25,display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable");b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b=e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},l=function(b){return!isNaN(parseInt(b,10))}})(jQuery);;(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"),selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("<div class='ui-selectable-helper'></div>")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX,c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting",c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d=this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.right<b||a.top>i||a.bottom<g);else if(d.tolerance=="fit")k=a.left>b&&a.right<h&&a.top>g&&a.bottom<i;if(k){if(a.selected){a.$element.removeClass("ui-selected");a.selected=false}if(a.unselecting){a.$element.removeClass("ui-unselecting");a.unselecting=false}if(!a.selecting){a.$element.addClass("ui-selecting");a.selecting=true;f._trigger("selecting",c,{selecting:a.element})}}else{if(a.selecting)if(c.metaKey&&a.startselected){a.$element.removeClass("ui-selecting");a.selecting=false;a.$element.addClass("ui-selected");a.selected=true}else{a.$element.removeClass("ui-selecting");a.selecting=false;if(a.startselected){a.$element.addClass("ui-unselecting");a.unselecting=true}f._trigger("unselecting",c,{unselecting:a.element})}if(a.selected)if(!c.metaKey&&!a.startselected){a.$element.removeClass("ui-selected");a.selected=false;a.$element.addClass("ui-unselecting");a.unselecting=true;f._trigger("unselecting",c,{unselecting:a.element})}}}});return false}},_mouseStop:function(c){var f=this;this.dragged=false;e(".ui-unselecting",this.element[0]).each(function(){var d=e.data(this,"selectable-item");d.$element.removeClass("ui-unselecting");d.unselecting=false;d.startselected=false;f._trigger("unselected",c,{unselected:d.element})});e(".ui-selecting",this.element[0]).each(function(){var d=e.data(this,"selectable-item");d.$element.removeClass("ui-selecting").addClass("ui-selected");d.selecting=false;d.selected=true;d.startselected=true;f._trigger("selected",c,{selected:d.element})});this._trigger("stop",c);this.helper.remove();return false}});e.extend(e.ui.selectable,{version:"1.8.10"})})(jQuery);;(function(d){d.widget("ui.sortable",d.ui.mouse,{widgetEventPrefix:"sort",options:{appendTo:"parent",axis:false,connectWith:false,containment:false,cursor:"auto",cursorAt:false,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){this.containerCache={};this.element.addClass("ui-sortable");this.refresh();this.floating=this.items.length?/left|right/.test(this.items[0].item.css("float")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a==="disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&&!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem=c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment();if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a);return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY<b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop+b.scrollSpeed;else if(a.pageY-this.overflowOffset.top<b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop-b.scrollSpeed;if(this.overflowOffset.left+
this.scrollParent[0].offsetWidth-a.pageX<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft+b.scrollSpeed;else if(a.pageX-this.overflowOffset.left<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft-b.scrollSpeed}else{if(a.pageY-d(document).scrollTop()<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()-b.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()+
b.scrollSpeed);if(a.pageX-d(document).scrollLeft()<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()-b.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()+b.scrollSpeed)}c!==false&&d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a)}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";for(b=this.items.length-1;b>=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0],e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a,c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset();c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp({target:null});this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var b=this.containers.length-
1;b>=0;b--){this.containers[b]._trigger("deactivate",null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}if(this.placeholder){this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):d(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")},toArray:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+j<k&&b+l>g&&b+l<h;return this.options.tolerance=="pointer"||this.options.forcePointerForContainers||this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>a[this.floating?"width":"height"]?j:g<b+this.helperProportions.width/2&&c-this.helperProportions.width/2<h&&i<e+this.helperProportions.height/2&&f-this.helperProportions.height/2<k},_intersectsWithPointer:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left,a.width);b=b&&a;a=this._getDragVerticalDirection();var c=this._getDragHorizontalDirection();if(!b)return false;return this.floating?c&&c=="right"||a=="down"?2:1:a&&(a=="down"?2:1)},_intersectsWithSides:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top+a.height/2,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left+a.width/2,a.width);var c=this._getDragVerticalDirection(),e=this._getDragHorizontalDirection();return this.floating&&e?e=="right"&&a||e=="left"&&!a:c&&(c=="down"&&b||c=="up"&&!b)},_getDragVerticalDirection:function(){var a=this.positionAbs.top-this.lastPositionAbs.top;return a!=0&&(a>0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith();if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=d.data(f[g],"sortable");if(h&&h!=this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});return d(b)},_removeCurrentsFromItems:function(){for(var a=this.currentItem.find(":data(sortable-item)"),b=0;b<this.items.length;b++)for(var c=0;c<a.length;c++)a[c]==this.items[b].item[0]&&this.items.splice(b,1)},_refreshItems:function(a){this.items=[];this.containers=[this];var b=this.items,c=[[d.isFunction(this.options.items)?this.options.items.call(this.element[0],a,{item:this.currentItem}):d(this.options.items,this.element),this]],e=this._connectWith();if(e)for(var f=e.length-1;f>=0;f--)for(var g=d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h<g;h++){i=d(e[h]);i.data("sortable-item",a);b.push({item:i,instance:a,width:0,height:0,left:0,top:0})}}},refreshPositions:function(a){if(this.offsetParent&&this.helper)this.offset.parent=this._getParentOffset();for(var b=this.items.length-1;b>=0;b--){var c=this.items[b],e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b=this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=e.top;this.containers[b].containerCache.width=this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f=d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f},update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===1){this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h-f)<b){b=Math.abs(h-f);e=this.items[g]}}if(e||this.options.dropOnEmpty){this.currentContainer=this.containers[c];e?this._rearrange(a,e,null,true):this._rearrange(a,null,this.containers[c].element,true);this._trigger("change",a,this._uiHash());this.containers[c]._trigger("change",a,this._uiHash(this));this.options.placeholder.update(this.currentContainer,this.placeholder);this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}}},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a,this.currentItem])):b.helper=="clone"?this.currentItem.clone():this.currentItem;a.parents("body").length||d(b.appendTo!="parent"?b.appendTo:this.currentItem[0].parentNode)[0].appendChild(a[0]);if(a[0]==this.currentItem[0])this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")};if(a[0].style.width==""||b.forceHelperSize)a.width(this.currentItem.width());if(a[0].style.height==""||b.forceHelperSize)a.height(this.currentItem.height());return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.currentItem.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)){var b=d(a.containment)[0];a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0]))this.offset.relative=this._getRelativeOffset();var f=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-
this.offset.click.left<this.containment[0])f=this.containment[0]+this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;f=this.originalPageX+Math.round((f-this.originalPageX)/b.grid[0])*b.grid[0];f=this.containment?!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:!(f-this.offset.click.left<this.containment[0])?f-b.grid[0]:f+b.grid[0]:f}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())}},_rearrange:function(a,b,c,e){c?c[0].appendChild(this.placeholder[0]):b.item[0].parentNode.insertBefore(this.placeholder[0],this.direction=="down"?b.item[0]:b.item[0].nextSibling);this.counter=this.counter?++this.counter:1;var f=this,g=this.counter;window.setTimeout(function(){g==f.counter&&f.refreshPositions(!e)},0)},_clear:function(a,b){this.reverting=false;var c=[];!this._noFinalSort&&this.currentItem[0].parentNode&&this.placeholder.before(this.currentItem);this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var e in this._storedCSS)if(this._storedCSS[e]=="auto"||this._storedCSS[e]=="static")this._storedCSS[e]="";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();this.fromOutside&&!b&&c.push(function(f){this._trigger("receive",f,this._uiHash(this.fromOutside))});if((this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!b)c.push(function(f){this._trigger("update",f,this._uiHash())});if(!d.ui.contains(this.element[0],this.currentItem[0])){b||c.push(function(f){this._trigger("remove",f,this._uiHash())});for(e=this.containers.length-1;e>=0;e--)if(d.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this,this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop",a,this._uiHash());for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}return false}b||this._trigger("beforeStop",a,this._uiHash());this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.helper[0]!=this.currentItem[0]&&this.helper.remove();this.helper=null;if(!b){for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}this.fromOutside=false;return true},_trigger:function(){d.Widget.prototype._trigger.apply(this,arguments)===false&&this.cancel()},_uiHash:function(a){var b=a||this;return{helper:b.helper,placeholder:b.placeholder||d([]),position:b.position,originalPosition:b.originalPosition,offset:b.positionAbs,item:b.currentItem,sender:a?a.element:null}}});d.extend(d.ui.sortable,{version:"1.8.10"})})(jQuery);;(function(c){c.widget("ui.accordion",{options:{active:0,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var a=this,b=a.options;a.running=0;a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix");a.headers=a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){b.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){b.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){b.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){b.disabled||c(this).removeClass("ui-state-focus")});a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");if(b.navigation){var d=a.element.find("a").filter(b.navigationFilter).eq(0);if(d.length){var h=d.closest(".ui-accordion-header");a.active=h.length?h:d.closest(".ui-accordion-content").prev()}}a.active=a._findActive(a.active||b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");a.active.next().addClass("ui-accordion-content-active");a._createIcons();a.resize();a.element.attr("role","tablist");a.headers.attr("role","tab").bind("keydown.accordion",function(f){return a._keydown(f)}).next().attr("role","tabpanel");a.headers.not(a.active||"").attr({"aria-expanded":"false",tabIndex:-1}).next().hide();a.active.length?a.active.attr({"aria-expanded":"true",tabIndex:0}):a.headers.eq(0).attr("tabIndex",0);c.browser.safari||a.headers.find("a").attr("tabIndex",-1);b.event&&a.headers.bind(b.event.split(" ").join(".accordion ")+".accordion",function(f){a._clickHandler.call(a,f,this);f.preventDefault()})},_createIcons:function(){var a=this.options;if(a.icons){c("<span></span>").addClass("ui-icon "+
a.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var a=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabIndex");this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(a.autoHeight||a.fillHeight)b.css("height","");return c.Widget.prototype.destroy.call(this)},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons();b&&this._createIcons()}if(a=="disabled")this.headers.add(this.headers.next())[b?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(a){if(!(this.options.disabled||a.altKey||a.ctrlKey)){var b=c.ui.keyCode,d=this.headers.length,h=this.headers.index(a.target),f=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:f=this.headers[(h+1)%d];break;case b.LEFT:case b.UP:f=this.headers[(h-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target},a.target);a.preventDefault()}if(f){c(a.target).attr("tabIndex",-1);c(f).attr("tabIndex",0);f.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0,b-c(this).innerHeight()+
c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height("").height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a==="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d=this.options;if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]===this.active[0];d.active=d.collapsible&&b?false:this.headers.index(a);if(!(this.running||!d.collapsible&&b)){var h=this.active;j=a.next();g=this.active.next();e={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):j,oldContent:g};var f=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(j,g,e,b,f);h.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);a.next().addClass("ui-accordion-content-active")}}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var g=this.active.next(),e={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:g},j=this.active=c([]);this._toggle(j,g,e)}},_toggle:function(a,b,d,h,f){var g=this,e=g.options;g.toShow=a;g.toHide=b;g.data=d;var j=function(){if(g)return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data);g.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&h?{toShow:c([]),toHide:b,complete:j,down:f,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:j,down:f,autoHeight:e.autoHeight||e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;h=c.ui.accordion.animations;var i=e.duration,k=e.animated;if(k&&!h[k]&&!c.easing[k])k="slide";h[k]||(h[k]=function(l){this.slide(l,{easing:k,duration:i||700})});h[k](d)}else{if(e.collapsible&&h)a.toggle();else{b.hide();a.show()}j(true)}b.prev().attr({"aria-expanded":"false",tabIndex:-1}).blur();a.prev().attr({"aria-expanded":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");if(this.toHide.length)this.toHide.parent()[0].className=this.toHide.parent()[0].className;this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion,{version:"1.8.10",animations:{slide:function(a,b){a=c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),h=0,f={},g={},e;b=a.toShow;e=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(j,i){g[i]="hide";j=(""+c.css(a.toShow[0],i)).match(/^([\d+-.]+)(.*)$/);f[i]={value:j[1],unit:j[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(g,{step:function(j,i){if(i.prop=="height")h=i.end-i.start===0?0:(i.now-i.start)/(i.end-i.start);a.toShow[0].style[i.prop]=h*f[i.prop].value+f[i.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css({width:e,overflow:d});a.complete()}})}else a.toHide.animate({height:"hide",paddingTop:"hide",paddingBottom:"hide"},a);else a.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery);;(function(d){var e=0;d.widget("ui.autocomplete",{options:{appendTo:"body",delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var a=this,b=this.element[0].ownerDocument,g;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!(a.options.disabled||a.element.attr("readonly"))){g=false;var f=d.ui.keyCode;switch(c.keyCode){case f.PAGE_UP:a._move("previousPage",c);break;case f.PAGE_DOWN:a._move("nextPage",c);break;case f.UP:a._move("previous",c);c.preventDefault();break;case f.DOWN:a._move("next",c);c.preventDefault();break;case f.ENTER:case f.NUMPAD_ENTER:if(a.menu.active){g=true;c.preventDefault()}case f.TAB:if(!a.menu.active)return;a.menu.select(c);break;case f.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!=a.element.val()){a.selectedItem=null;a.search(null,c)}},a.options.delay);break}}}).bind("keypress.autocomplete",function(c){if(g){g=false;c.preventDefault()}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)};this.menu=d("<ul></ul>").addClass("ui-autocomplete").appendTo(d(this.options.appendTo||"body",b)[0]).mousedown(function(c){var f=a.menu.element[0];d(c.target).closest(".ui-menu-item").length||setTimeout(function(){d(document).one("mousedown",function(h){h.target!==a.element[0]&&h.target!==f&&!d.ui.contains(f,h.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,f){f=f.item.data("item.autocomplete");false!==a._trigger("focus",c,{item:f})&&/^key/.test(c.originalEvent.type)&&a.element.val(f.value)},selected:function(c,f){var h=f.item.data("item.autocomplete"),i=a.previous;if(a.element[0]!==b.activeElement){a.element.focus();a.previous=i;setTimeout(function(){a.previous=i;a.selectedItem=h},1)}false!==a._trigger("select",c,{item:h})&&a.element.val(h.value);a.term=a.element.val();a.close(c);a.selectedItem=h},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");d.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");this.menu.element.remove();d.Widget.prototype.destroy.call(this)},_setOption:function(a,b){d.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(d(b||"body",this.element[0].ownerDocument)[0]);a==="disabled"&&b&&this.xhr&&this.xhr.abort()},_initSource:function(){var a=this,b,g;if(d.isArray(this.options.source)){b=this.options.source;this.source=function(c,f){f(d.ui.autocomplete.filter(b,c.term))}}else if(typeof this.options.source==="string"){g=this.options.source;this.source=function(c,f){a.xhr&&a.xhr.abort();a.xhr=d.ajax({url:g,data:c,dataType:"json",autocompleteRequest:++e,success:function(h){this.autocompleteRequest===e&&f(h)},error:function(){this.autocompleteRequest===e&&f([])}})}}else this.source=this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length<this.options.minLength)return this.close(b);clearTimeout(this.closing);if(this._trigger("search",b)!==false)return this._search(a)},_search:function(a){this.pending++;this.element.addClass("ui-autocomplete-loading");this.source({term:a},this.response)},_response:function(a){if(!this.options.disabled&&a&&a.length){a=this._normalize(a);this._suggest(a);this._trigger("open")}else this.close();this.pending--;this.pending||this.element.removeClass("ui-autocomplete-loading")},close:function(a){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this.menu.element.hide();this.menu.deactivate();this._trigger("close",a)}},_change:function(a){this.previous!==this.element.val()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(a){if(a.length&&a[0].label&&a[0].value)return a;return d.map(a,function(b){if(typeof b==="string")return{label:b,value:b};return d.extend({label:b.label||b.value,value:b.value||b.label},b)})},_suggest:function(a){var b=this.menu.element.empty().zIndex(this.element.zIndex()+1);this._renderMenu(b,a);this.menu.deactivate();this.menu.refresh();b.show();this._resizeMenu();b.position(d.extend({of:this.element},this.options.position))},_resizeMenu:function(){var a=this.menu.element;a.outerWidth(Math.max(a.width("").outerWidth(),this.element.outerWidth()))},_renderMenu:function(a,b){var g=this;d.each(b,function(c,f){g._renderItem(a,f)})},_renderItem:function(a,b){return d("<li></li>").data("item.autocomplete",b).append(d("<a></a>").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b);else this.search(null,b)},widget:function(){return this.menu.element}});d.extend(d.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(a,b){var g=new RegExp(d.ui.autocomplete.escapeRegex(b),"i");return d.grep(a,function(c){return g.test(c.label||c.value||c)})}})})(jQuery);(function(d){d.widget("ui.menu",{_create:function(){var e=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(a){if(d(a.target).closest(".ui-menu-item a").length){a.preventDefault();e.select(a)}});this.refresh()},refresh:function(){var e=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex",-1).mouseenter(function(a){e.activate(a,d(this).parent())}).mouseleave(function(){e.deactivate()})},activate:function(e,a){this.deactivate();if(this.hasScroll()){var b=a.offset().top-this.element.offset().top,g=this.element.attr("scrollTop"),c=this.element.height();if(b<0)this.element.attr("scrollTop",g+b);else b>=c&&this.element.attr("scrollTop",g+b-c+a.height())}this.active=a.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",e,{item:a})},deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id");this._trigger("blur");this.active=null}},next:function(e){this.move("next",".ui-menu-item:first",e)},previous:function(e){this.move("prev",".ui-menu-item:last",e)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(e,a,b){if(this.active){e=this.active[e+"All"](".ui-menu-item").eq(0);e.length?this.activate(b,e):this.activate(b,this.element.children(a))}else this.activate(b,this.element.children(a))},nextPage:function(e){if(this.hasScroll())if(!this.active||this.last())this.activate(e,this.element.children(".ui-menu-item:first"));else{var a=this.active.offset().top,b=this.element.height(),g=this.element.children(".ui-menu-item").filter(function(){var c=d(this).offset().top-a-b+d(this).height();return c<10&&c>-10});g.length||(g=this.element.children(".ui-menu-item:last"));this.activate(e,g)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(e){if(this.hasScroll())if(!this.active||this.first())this.activate(e,this.element.children(".ui-menu-item:last"));else{var a=this.active.offset().top,b=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var g=d(this).offset().top-a+b-d(this).height();return g<10&&g>-10});result.length||(result=this.element.children(".ui-menu-item:first"));this.activate(e,result)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()<this.element.attr("scrollHeight")},select:function(e){this._trigger("selected",e,{item:this.active})}})})(jQuery);;(function(a){var g,i=function(b){a(":ui-button",b.target.form).each(function(){var c=a(this).data("button");setTimeout(function(){c.refresh()},1)})},h=function(b){var c=b.name,d=b.form,f=a([]);if(c)f=d?a(d).find("[name='"+c+"']"):a("[name='"+c+"']",b.ownerDocument).filter(function(){return!this.form});return f};a.widget("ui.button",{options:{disabled:null,text:true,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",i);if(typeof this.options.disabled!=="boolean")this.options.disabled=this.element.attr("disabled");this._determineButtonType();this.hasTitle=!!this.buttonElement.attr("title");var b=this,c=this.options,d=this.type==="checkbox"||this.type==="radio",f="ui-state-hover"+(!d?" ui-state-active":"");if(c.label===null)c.label=this.buttonElement.html();if(this.element.is(":disabled"))c.disabled=true;this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role","button").bind("mouseenter.button",function(){if(!c.disabled){a(this).addClass("ui-state-hover");this===g&&a(this).addClass("ui-state-active")}}).bind("mouseleave.button",function(){c.disabled||a(this).removeClass(f)}).bind("focus.button",function(){a(this).addClass("ui-state-focus")}).bind("blur.button",function(){a(this).removeClass("ui-state-focus")});d&&this.element.bind("change.button",function(){b.refresh()});if(this.type==="checkbox")this.buttonElement.bind("click.button",function(){if(c.disabled)return false;a(this).toggleClass("ui-state-active");b.buttonElement.attr("aria-pressed",b.element[0].checked)});else if(this.type==="radio")this.buttonElement.bind("click.button",function(){if(c.disabled)return false;a(this).addClass("ui-state-active");b.buttonElement.attr("aria-pressed",true);var e=b.element[0];h(e).not(e).map(function(){return a(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed",false)});else{this.buttonElement.bind("mousedown.button",function(){if(c.disabled)return false;a(this).addClass("ui-state-active");g=this;a(document).one("mouseup",function(){g=null})}).bind("mouseup.button",function(){if(c.disabled)return false;a(this).removeClass("ui-state-active")}).bind("keydown.button",function(e){if(c.disabled)return false;if(e.keyCode==a.ui.keyCode.SPACE||e.keyCode==a.ui.keyCode.ENTER)a(this).addClass("ui-state-active")}).bind("keyup.button",function(){a(this).removeClass("ui-state-active")});this.buttonElement.is("a")&&this.buttonElement.keyup(function(e){e.keyCode===a.ui.keyCode.SPACE&&a(this).click()})}this._setOption("disabled",c.disabled)},_determineButtonType:function(){this.type=this.element.is(":checkbox")?"checkbox":this.element.is(":radio")?"radio":this.element.is("input")?"input":"button";if(this.type==="checkbox"||this.type==="radio"){this.buttonElement=this.element.parents().last().find("label[for="+this.element.attr("id")+"]");this.element.addClass("ui-helper-hidden-accessible");var b=this.element.is(":checked");b&&this.buttonElement.addClass("ui-state-active");this.buttonElement.attr("aria-pressed",b)}else this.buttonElement=this.element},widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible");this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active  ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());this.hasTitle||this.buttonElement.removeAttr("title");a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments);if(b==="disabled")c?this.element.attr("disabled",true):this.element.removeAttr("disabled");this._resetButton()},refresh:function(){var b=this.element.is(":disabled");b!==this.options.disabled&&this._setOption("disabled",b);if(this.type==="radio")h(this.element[0]).each(function(){a(this).is(":checked")?a(this).button("widget").addClass("ui-state-active").attr("aria-pressed",true):a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed",false)});else if(this.type==="checkbox")this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed",true):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed",false)},_resetButton:function(){if(this.type==="input")this.options.label&&this.element.val(this.options.label);else{var b=this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only"),c=a("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,f=d.primary&&d.secondary,e=[];if(d.primary||d.secondary){e.push("ui-button-text-icon"+(f?"s":d.primary?"-primary":"-secondary"));d.primary&&b.prepend("<span class='ui-button-icon-primary ui-icon "+d.primary+"'></span>");d.secondary&&b.append("<span class='ui-button-icon-secondary ui-icon "+d.secondary+"'></span>");if(!this.options.text){e.push(f?"ui-button-icons-only":"ui-button-icon-only");b.removeClass("ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary");this.hasTitle||b.attr("title",c)}}else e.push("ui-button-text-only");b.addClass(e.join(" "))}}});a.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c);a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end()},destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");a.Widget.prototype.destroy.call(this)}})})(jQuery);;(function(c,j){var k={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},l={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true};c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:{my:"center",at:"center",collision:"fit",using:function(a){var b=c(this).css(a).offset().top;b<0&&c(this).css("top",a.top-b)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var a=this,b=a.options,d=b.title||"&#160;",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("<div></div>")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),h=c('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("<span></span>")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("<span></span>").addClass("ui-dialog-title").attr("id",e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");a.uiDialog.remove();a.originalTitle&&a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d,e;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!==b.uiDialog[0]){e=c(this).css("z-index");isNaN(e)||(d=Math.max(d,e))}});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+=1;d.uiDialog.css("z-index",c.ui.dialog.maxZ);d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target===f[0]&&e.shiftKey){g.focus(1);return false}}});c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false,e=c("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("<div></div>").addClass("ui-dialog-buttonset").appendTo(e);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a,function(){return!(d=true)});if(d){c.each(a,function(f,h){h=c.isFunction(h)?{click:h,text:f}:h;f=c('<button type="button"></button>').attr(h,true).unbind("click").click(function(){h.click.apply(b.element[0],arguments)}).appendTo(g);c.fn.button&&f.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g=d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition,originalSize:f.originalSize,position:f.position,size:f.size}}a=a===j?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position");a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize",f,b(h))},stop:function(f,h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop",f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0],e;if(a){if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "):[a[0],a[1]];if(b.length===1)b[1]=b[0];c.each(["left","top"],function(g,f){if(+b[g]===b[g]){d[g]=b[g];b[g]=f}});a={my:b.join(" "),at:b.join(" "),offset:d.join(" ")}}a=c.extend({},c.ui.dialog.prototype.options.position,a)}else a=c.ui.dialog.prototype.options.position;(e=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(c.extend({of:window},a));e||this.uiDialog.hide()},_setOptions:function(a){var b=this,d={},e=false;c.each(a,function(g,f){b._setOption(g,f);if(g in k)e=true;if(g in
l)d[g]=f});e&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",d)},_setOption:function(a,b){var d=this,e=d.uiDialog;switch(a){case"beforeclose":a="beforeClose";break;case"buttons":d._createButtons(b);break;case"closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case"dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case"disabled":b?e.addClass("ui-dialog-disabled"):e.removeClass("ui-dialog-disabled");break;case"draggable":var g=e.is(":data(draggable)");g&&!b&&e.draggable("destroy");!g&&b&&d._makeDraggable();break;case"position":d._position(b);break;case"resizable":(g=e.is(":data(resizable)"))&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case"title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||"&#160;"));break}c.Widget.prototype._setOption.apply(d,arguments)},_size:function(){var a=this.options,b,d,e=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();d=Math.max(0,a.minHeight-b);if(a.height==="auto")if(c.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();a=this.element.css("height","auto").height();e||this.uiDialog.hide();this.element.height(Math.max(a,d))}else this.element.height(Math.max(a.height-b,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.10",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(a){if(this.instances.length===0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()<c.ui.dialog.overlay.maxZ)return false})},1);c(document).bind("keydown.dialog-overlay",function(d){if(a.options.closeOnEscape&&d.keyCode&&d.keyCode===c.ui.keyCode.ESCAPE){a.close(d);d.preventDefault()}});c(window).bind("resize.dialog-overlay",c.ui.dialog.overlay.resize)}var b=(this.oldInstances.pop()||c("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){var b=c.inArray(a,this.instances);b!=-1&&this.oldInstances.push(this.instances.splice(b,1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var d=0;c.each(this.instances,function(){d=Math.max(d,this.css("z-index"))});this.maxZ=d},height:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a<b?c(window).height()+"px":a+"px"}else return c(document).height()+"px"},width:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);b=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);return a<b?c(window).width()+"px":a+"px"}else return c(document).width()+"px"},resize:function(){var a=c([]);c.each(c.ui.dialog.overlay.instances,function(){a=a.add(this)});a.css({width:0,height:0}).css({width:c.ui.dialog.overlay.width(),height:c.ui.dialog.overlay.height()})}});c.extend(c.ui.dialog.overlay.prototype,{destroy:function(){c.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);;(function(d){d.widget("ui.slider",d.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var b=this,a=this.options;this._mouseSliding=this._keySliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all");a.disabled&&this.element.addClass("ui-slider-disabled ui-disabled");this.range=d([]);if(a.range){if(a.range===true){this.range=d("<div></div>");if(!a.values)a.values=[this._valueMin(),this._valueMin()];if(a.values.length&&a.values.length!==2)a.values=[a.values[0],a.values[0]]}else this.range=d("<div></div>");this.range.appendTo(this.element).addClass("ui-slider-range");if(a.range==="min"||a.range==="max")this.range.addClass("ui-slider-range-"+a.range);this.range.addClass("ui-widget-header")}d(".ui-slider-handle",this.element).length===0&&d("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");if(a.values&&a.values.length)for(;d(".ui-slider-handle",this.element).length<a.values.length;)d("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");this.handles=d(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(c){c.preventDefault()}).hover(function(){a.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(a.disabled)d(this).blur();else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(c){d(this).data("index.ui-slider-handle",c)});this.handles.keydown(function(c){var e=true,f=d(this).data("index.ui-slider-handle"),h,g,i;if(!b.options.disabled){switch(c.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:e=false;if(!b._keySliding){b._keySliding=true;d(this).addClass("ui-state-active");h=b._start(c,f);if(h===false)return}break}i=b.options.step;h=b.options.values&&b.options.values.length?(g=b.values(f)):(g=b.value());switch(c.keyCode){case d.ui.keyCode.HOME:g=b._valueMin();break;case d.ui.keyCode.END:g=b._valueMax();break;case d.ui.keyCode.PAGE_UP:g=b._trimAlignValue(h+(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:g=b._trimAlignValue(h-(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(h===b._valueMax())return;g=b._trimAlignValue(h+i);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(h===b._valueMin())return;g=b._trimAlignValue(h-i);break}b._slide(c,f,g);return e}}).keyup(function(c){var e=d(this).data("index.ui-slider-handle");if(b._keySliding){b._keySliding=false;b._stop(c,e);b._change(c,e);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy();return this},_mouseCapture:function(b){var a=this.options,c,e,f,h,g;if(a.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:b.pageX,y:b.pageY});e=this._valueMax()-this._valueMin()+1;h=this;this.handles.each(function(i){var j=Math.abs(c-h.values(i));if(e>j){e=j;f=d(this);g=i}});if(a.range===true&&this.values(1)===a.min){g+=1;f=d(this.handles[g])}if(this._start(b,g)===false)return false;this._mouseSliding=true;h._handleIndex=g;f.addClass("ui-state-active").focus();a=f.offset();this._clickOffset=!d(b.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:b.pageX-a.left-f.width()/2,top:b.pageY-a.top-f.height()/2-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(b,g,c);return this._animateOff=true},_mouseStart:function(){return true},_mouseDrag:function(b){var a=this._normValueFromMouse({x:b.pageX,y:b.pageY});this._slide(b,this._handleIndex,a);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(b){var a;if(this.orientation==="horizontal"){a=this.elementSize.width;b=b.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{a=this.elementSize.height;b=b.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}a=b/a;if(a>1)a=1;if(a<0)a=0;if(this.orientation==="vertical")a=1-a;b=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+a*b)},_start:function(b,a){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(a);c.values=this.values()}return this._trigger("start",b,c)},_slide:function(b,a,c){var e;if(this.options.values&&this.options.values.length){e=this.values(a?0:1);if(this.options.values.length===2&&this.options.range===true&&(a===0&&c>e||a===1&&c<e))c=e;if(c!==this.values(a)){e=this.values();e[a]=c;b=this._trigger("slide",b,{handle:this.handles[a],value:c,values:e});this.values(a?0:1);b!==false&&this.values(a,c,true)}}else if(c!==this.value()){b=this._trigger("slide",b,{handle:this.handles[a],value:c});b!==false&&this.value(c)}},_stop:function(b,a){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(a);c.values=this.values()}this._trigger("stop",b,c)},_change:function(b,a){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(a);c.values=this.values()}this._trigger("change",b,c)}},value:function(b){if(arguments.length){this.options.value=this._trimAlignValue(b);this._refreshValue();this._change(null,0)}return this._value()},values:function(b,a){var c,e,f;if(arguments.length>1){this.options.values[b]=this._trimAlignValue(a);this._refreshValue();this._change(null,b)}if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;e=arguments[0];for(f=0;f<c.length;f+=1){c[f]=this._trimAlignValue(e[f]);this._change(null,f)}this._refreshValue()}else return this.options.values&&this.options.values.length?this._values(b):this.value();else return this._values()},_setOption:function(b,a){var c,e=0;if(d.isArray(this.options.values))e=this.options.values.length;d.Widget.prototype._setOption.apply(this,arguments);switch(b){case"disabled":if(a){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.attr("disabled","disabled");this.element.addClass("ui-disabled")}else{this.handles.removeAttr("disabled");this.element.removeClass("ui-disabled")}break;case"orientation":this._detectOrientation();this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue();break;case"value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case"values":this._animateOff=true;this._refreshValue();for(c=0;c<e;c+=1)this._change(null,c);this._animateOff=false;break}},_value:function(){var b=this.options.value;return b=this._trimAlignValue(b)},_values:function(b){var a,c;if(arguments.length){a=this.options.values[b];return a=this._trimAlignValue(a)}else{a=this.options.values.slice();for(c=0;c<a.length;c+=1)a[c]=this._trimAlignValue(a[c]);return a}},_trimAlignValue:function(b){if(b<=this._valueMin())return this._valueMin();if(b>=this._valueMax())return this._valueMax();var a=this.options.step>0?this.options.step:1,c=(b-this._valueMin())%a;alignValue=b-c;if(Math.abs(c)*2>=a)alignValue+=c>0?a:-a;return parseFloat(alignValue.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var b=this.options.range,a=this.options,c=this,e=!this._animateOff?a.animate:false,f,h={},g,i,j,l;if(this.options.values&&this.options.values.length)this.handles.each(function(k){f=(c.values(k)-c._valueMin())/(c._valueMax()-c._valueMin())*100;h[c.orientation==="horizontal"?"left":"bottom"]=f+"%";d(this).stop(1,1)[e?"animate":"css"](h,a.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(k===0)c.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},a.animate);if(k===1)c.range[e?"animate":"css"]({width:f-g+"%"},{queue:false,duration:a.animate})}else{if(k===0)c.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},a.animate);if(k===1)c.range[e?"animate":"css"]({height:f-g+"%"},{queue:false,duration:a.animate})}g=f});else{i=this.value();j=this._valueMin();l=this._valueMax();f=l!==j?(i-j)/(l-j)*100:0;h[c.orientation==="horizontal"?"left":"bottom"]=f+"%";this.handle.stop(1,1)[e?"animate":"css"](h,a.animate);if(b==="min"&&this.orientation==="horizontal")this.range.stop(1,1)[e?"animate":"css"]({width:f+"%"},a.animate);if(b==="max"&&this.orientation==="horizontal")this.range[e?"animate":"css"]({width:100-f+"%"},{queue:false,duration:a.animate});if(b==="min"&&this.orientation==="vertical")this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},a.animate);if(b==="max"&&this.orientation==="vertical")this.range[e?"animate":"css"]({height:100-f+"%"},{queue:false,duration:a.animate})}}});d.extend(d.ui.slider,{version:"1.8.10"})})(jQuery);;(function(d,p){function u(){return++v}function w(){return++x}var v=0,x=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading&#8230;</em>",tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&&e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]||(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a.element.find(a._sanitizeSelector(i)));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=a.element.find("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");if(c.selected>=0&&this.anchors.length){a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"));this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+
g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal",function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")};this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=a.element.find(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected=-1;c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier.";d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e=d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b,e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=c.element.find("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]);j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove();if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1<this.anchors.length?1:-1));e.disabled=d.map(d.grep(e.disabled,function(h){return h!=b}),function(h){return h>=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null,this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this},load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){e.element.find(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c,"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this},url:function(b,e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.10"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k<a.anchors.length?k:0)},b);j&&j.stopPropagation()});e=a._unrotate||(a._unrotate=!e?function(j){j.clientX&&a.rotate(null)}:function(){t=c.selected;h()});if(b){this.element.bind("tabsshow",h);this.anchors.bind(c.event+".tabs",e);h()}else{clearTimeout(a.rotation);this.element.unbind("tabsshow",h);this.anchors.unbind(c.event+".tabs",e);delete this._rotate;delete this._unrotate}return this}})})(jQuery);;(function(d,G){function K(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._inDialog=this._datepickerShowing=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass="ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,yearRange:"c-10:c+10",showOtherMonths:false,selectOtherMonths:false,showWeek:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false,autoSize:false};d.extend(this._defaults,this.regional[""]);this.dpDiv=d('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')}function E(a,b){d.extend(a,b);for(var c in b)if(b[c]==null||b[c]==G)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.10"}});var y=(new Date).getTime();d.extend(K.prototype,{markerClassName:"hasDatepicker",log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){E(this._defaults,a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]=f}}}e=a.nodeName.toLowerCase();f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:d('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')}},_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&&b.append.remove();if(c){b.append=d('<span class="'+this._appendClass+'">'+c+"</span>");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c=="focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c=this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("<img/>").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('<button type="button"></button>').addClass(this._triggerClass).html(f==""?c:d("<img/>").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker():d.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;g<f.length;g++)if(f[g].length>h){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b),true);this._updateDatepicker(b);this._updateAlternate(b);b.dpDiv.show()}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+=1;this._dialogInput=d('<input type="text" id="'+("dp"+this.uuid)+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}E(a.settings,e||{});b=b&&b.constructor==Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().removeClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().addClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;for(var b=0;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]==a)return true;return false},_getInst:function(a){try{return d.data(a,"datepicker")}catch(b){throw"Missing instance data for this datepicker";}},_optionDatepicker:function(a,b,c){var e=this._getInst(a);if(arguments.length==2&&typeof b=="string")return b=="defaults"?d.extend({},d.datepicker._defaults):e?b=="all"?d.extend({},e.settings):this._get(e,b):null;var f=b||{};if(typeof b=="string"){f={};f[b]=c}if(e){this._curInst==e&&this._hideDatepicker();var h=this._getDateDatepicker(a,true);E(e.settings,f);this._attachments(d(a),e);this._autoSize(e);this._setDateDatepicker(a,h);this._updateDatepicker(e)}},_changeDatepicker:function(a,b,c){this._optionDatepicker(a,b,c)},_refreshDatepicker:function(a){(a=this._getInst(a))&&this._updateDatepicker(a)},_setDateDatepicker:function(a,b){if(a=this._getInst(a)){this._setDate(a,b);this._updateDatepicker(a);this._updateAlternate(a)}},_getDateDatepicker:function(a,b){(a=this._getInst(a))&&!a.inline&&this._setDateFromField(a,b);return a?this._getDate(a):null},_doKeyDown:function(a){var b=d.datepicker._getInst(a.target),c=true,e=b.dpDiv.is(".ui-datepicker-rtl");b._keyEvent=true;if(d.datepicker._datepickerShowing)switch(a.keyCode){case 9:d.datepicker._hideDatepicker();c=false;break;case 13:c=d("td."+d.datepicker._dayOverClass+":not(."+d.datepicker._currentClass+")",b.dpDiv);c[0]?d.datepicker._selectDay(a.target,b.selectedMonth,b.selectedYear,c[0]):d.datepicker._hideDatepicker();return false;case 27:d.datepicker._hideDatepicker();break;case 33:d.datepicker._adjustDate(a.target,a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 34:d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,"stepMonths"),"M");break;case 35:if(a.ctrlKey||a.metaKey)d.datepicker._clearDate(a.target);c=a.ctrlKey||a.metaKey;break;case 36:if(a.ctrlKey||a.metaKey)d.datepicker._gotoToday(a.target);c=a.ctrlKey||a.metaKey;break;case 37:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?+1:-1,"D");c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 38:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,-7,"D");c=a.ctrlKey||a.metaKey;break;case 39:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?-1:+1,"D");c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,"stepMonths"),"M");break;case 40:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,+7,"D");c=a.ctrlKey||a.metaKey;break;default:c=false}else if(a.keyCode==36&&a.ctrlKey)d.datepicker._showDatepicker(this);else c=false;if(c){a.preventDefault();a.stopPropagation()}},_doKeyPress:function(a){var b=d.datepicker._getInst(a.target);if(d.datepicker._get(b,"constrainInput")){b=d.datepicker._possibleChars(d.datepicker._get(b,"dateFormat"));var c=String.fromCharCode(a.charCode==G?a.keyCode:a.charCode);return a.ctrlKey||a.metaKey||c<" "||!b||b.indexOf(c)>-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a);d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=d("input",a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);d.datepicker._curInst&&d.datepicker._curInst!=b&&d.datepicker._curInst.dpDiv.stop(true,true);var c=d.datepicker._get(b,"beforeShow");E(b.settings,c?c.apply(a,[a,b]):{});b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value="";if(!d.datepicker._pos){d.datepicker._pos=d.datepicker._findPos(a);d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c={left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.empty();b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b);c=d.datepicker._checkOffset(b,c,e);b.dpDiv.css({position:d.datepicker._inDialog&&d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");var f=d.datepicker._get(b,"duration"),h=function(){d.datepicker._datepickerShowing=true;var i=b.dpDiv.find("iframe.ui-datepicker-cover");if(i.length){var g=d.datepicker._getBorders(b.dpDiv);i.css({left:-g[0],top:-g[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex(d(a).zIndex()+1);d.effects&&d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f,h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=b}}},_updateDatepicker:function(a){var b=this,c=d.datepicker._getBorders(a.dpDiv);a.dpDiv.empty().append(this._generateHTML(a));var e=a.dpDiv.find("iframe.ui-datepicker-cover");e.length&&e.css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()});a.dpDiv.find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",function(){d(this).removeClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).removeClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&d(this).removeClass("ui-datepicker-next-hover")}).bind("mouseover",function(){if(!b._isDisabledDatepicker(a.inline?a.dpDiv.parent()[0]:a.input[0])){d(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");d(this).addClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).addClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&d(this).addClass("ui-datepicker-next-hover")}}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end();c=this._getNumberOfMonths(a);e=c[1];e>1?a.dpDiv.addClass("ui-datepicker-multi-"+e).css("width",17*e+"em"):a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");a.dpDiv[(c[0]!=1||c[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var f=a.yearshtml;setTimeout(function(){f===a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);f=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]||c};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(),h=a.input?a.input.outerWidth():0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(),j=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+i?d(document).scrollTop():0;b.left-=Math.min(b.left,b.left+e>g&&g>e?Math.abs(b.left+e-g):0);b.top-=Math.min(b.top,b.top+f>j&&j>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b=this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1||d.expr.filters.hidden(a));)a=a[b?"previousSibling":"nextSibling"];a=d(a).offset();return[a.left,a.top]},_hideDatepicker:function(a){var b=this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b);this._curInst=null};d.effects&&d.effects[a]?b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?c:null,e);a||e();if(a=this._get(b,"onClose"))a.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b]);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(d.datepicker._curInst){a=d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&&!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&&d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth;b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth=b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e._selectingMonthYear=false;e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_clickMonthYear:function(a){var b=this._getInst(d(a)[0]);b.input&&b._selectingMonthYear&&setTimeout(function(){b.input.focus()},0);b._selectingMonthYear=!b._selectingMonthYear},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay=d("a",e).html();f.selectedMonth=f.currentMonth=b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=d(a);this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a);a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a));d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b=a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null;var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;e=typeof e!="string"?e:(new Date).getFullYear()%100+parseInt(e,10);for(var f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,j=c=-1,l=-1,u=-1,k=false,o=function(p){(p=z+1<a.length&&a.charAt(z+1)==p)&&z++;return p},m=function(p){var v=o(p);p=new RegExp("^\\d{1,"+(p=="@"?14:p=="!"?20:p=="y"&&v?4:p=="o"?3:2)+"}");p=b.substring(s).match(p);if(!p)throw"Missing number at position "+s;s+=p[0].length;return parseInt(p[0],10)},n=function(p,v,H){p=o(p)?H:v;for(v=0;v<p.length;v++)if(b.substr(s,p[v].length).toLowerCase()==p[v].toLowerCase()){s+=p[v].length;return v+1}throw"Unknown name at position "+
s;},r=function(){if(b.charAt(s)!=a.charAt(z))throw"Unexpected literal at position "+s;s++},s=0,z=0;z<a.length;z++)if(k)if(a.charAt(z)=="'"&&!o("'"))k=false;else r();else switch(a.charAt(z)){case"d":l=m("d");break;case"D":n("D",f,h);break;case"o":u=m("o");break;case"m":j=m("m");break;case"M":j=n("M",i,g);break;case"y":c=m("y");break;case"@":var w=new Date(m("@"));c=w.getFullYear();j=w.getMonth()+1;l=w.getDate();break;case"!":w=new Date((m("!")-this._ticksTo1970)/1E4);c=w.getFullYear();j=w.getMonth()+
1;l=w.getDate();break;case"'":if(o("'"))r();else k=true;break;default:r()}if(c==-1)c=(new Date).getFullYear();else if(c<100)c+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c<=e?0:-100);if(u>-1){j=1;l=u;do{e=this._getDaysInMonth(c,j-1);if(l<=e)break;j++;l-=e}while(1)}w=this._daylightSavingAdjust(new Date(c,j-1,l));if(w.getFullYear()!=c||w.getMonth()+1!=j||w.getDate()!=l)throw"Invalid date";return w},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames:null)||this._defaults.monthNames;var i=function(o){(o=k+1<a.length&&a.charAt(k+1)==o)&&k++;return o},g=function(o,m,n){m=""+m;if(i(o))for(;m.length<n;)m="0"+m;return m},j=function(o,m,n,r){return i(o)?r[m]:n[m]},l="",u=false;if(b)for(var k=0;k<a.length;k++)if(u)if(a.charAt(k)=="'"&&!i("'"))u=false;else l+=a.charAt(k);else switch(a.charAt(k)){case"d":l+=g("d",b.getDate(),2);break;case"D":l+=j("D",b.getDay(),e,f);break;case"o":l+=g("o",(b.getTime()-(new Date(b.getFullYear(),0,0)).getTime())/864E5,3);break;case"m":l+=g("m",b.getMonth()+1,2);break;case"M":l+=j("M",b.getMonth(),h,c);break;case"y":l+=i("y")?b.getFullYear():(b.getYear()%100<10?"0":"")+b.getYear()%100;break;case"@":l+=b.getTime();break;case"!":l+=b.getTime()*1E4+this._ticksTo1970;break;case"'":if(i("'"))l+="'";else u=true;break;default:l+=a.charAt(k)}return l},_possibleChars:function(a){for(var b="",c=false,e=function(h){(h=f+1<a.length&&a.charAt(f+1)==h)&&f++;return h},f=0;f<a.length;f++)if(c)if(a.charAt(f)=="'"&&!e("'"))c=false;else b+=a.charAt(f);else switch(a.charAt(f)){case"d":case"m":case"y":case"@":b+="0123456789";break;case"D":case"M":return null;case"'":if(e("'"))b+="'";else c=true;break;default:b+=a.charAt(f)}return b},_get:function(a,b){return a.settings[b]!==G?a.settings[b]:this._defaults[b]},_setDateFromField:function(a,b){if(a.input.val()!=a.lastVal){var c=this._get(a,"dateFormat"),e=a.lastVal=a.input?a.input.val():null,f,h;f=h=this._getDefaultDate(a);var i=this._getFormatConfig(a);try{f=this.parseDate(c,e,i)||h}catch(g){this.log(g);e=b?"":e}a.selectedDay=f.getDate();a.drawMonth=a.selectedMonth=f.getMonth();a.drawYear=a.selectedYear=f.getFullYear();a.currentDay=e?f.getDate():0;a.currentMonth=e?f.getMonth():0;a.currentYear=e?f.getFullYear():0;this._adjustInstDate(a)}},_getDefaultDate:function(a){return this._restrictMinMax(a,this._determineDate(a,this._get(a,"defaultDate"),new Date))},_determineDate:function(a,b,c){var e=function(h){var i=new Date;i.setDate(i.getDate()+h);return i},f=function(h){try{return d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),h,d.datepicker._getFormatConfig(a))}catch(i){}var g=(h.toLowerCase().match(/^c/)?d.datepicker._getDate(a):null)||new Date,j=g.getFullYear(),l=g.getMonth();g=g.getDate();for(var u=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,k=u.exec(h);k;){switch(k[2]||"d"){case"d":case"D":g+=parseInt(k[1],10);break;case"w":case"W":g+=parseInt(k[1],10)*7;break;case"m":case"M":l+=parseInt(k[1],10);g=Math.min(g,d.datepicker._getDaysInMonth(j,l));break;case"y":case"Y":j+=parseInt(k[1],10);g=Math.min(g,d.datepicker._getDaysInMonth(j,l));break}k=u.exec(h)}return new Date(j,l,g)};if(b=(b=b==null||b===""?c:typeof b=="string"?f(b):typeof b=="number"?isNaN(b)?c:e(b):new Date(b.getTime()))&&b.toString()=="Invalid Date"?c:b){b.setHours(0);b.setMinutes(0);b.setSeconds(0);b.setMilliseconds(0)}return this._daylightSavingAdjust(b)},_daylightSavingAdjust:function(a){if(!a)return null;a.setHours(a.getHours()>12?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),j=this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay?new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),k=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n=this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=k&&n<k?k:n;this._daylightSavingAdjust(new Date(m,g,1))>n;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-j,1)),this._getFormatConfig(a));n=this._canAdjustMonth(a,-1,m,g)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+y+".datepicker._adjustDate('#"+a.id+"', -"+j+", 'M');\" title=\""+n+'"><span class="ui-icon ui-icon-circle-triangle-'+
(c?"e":"w")+'">'+n+"</span></a>":f?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+n+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+n+"</span></a>";var r=this._get(a,"nextText");r=!h?r:this.formatDate(r,this._daylightSavingAdjust(new Date(m,g+j,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+y+".datepicker._adjustDate('#"+a.id+"', +"+j+", 'M');\" title=\""+r+'"><span class="ui-icon ui-icon-circle-triangle-'+
(c?"w":"e")+'">'+r+"</span></a>":f?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+r+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+r+"</span></a>";j=this._get(a,"currentText");r=this._get(a,"gotoCurrent")&&a.currentDay?u:b;j=!h?j:this.formatDate(j,r,this._getFormatConfig(a));h=!a.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+y+'.datepicker._hideDatepicker();">'+this._get(a,"closeText")+"</button>":"";e=e?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(c?h:"")+(this._isInRange(a,r)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+y+".datepicker._gotoToday('#"+a.id+"');\">"+j+"</button>":"")+(c?"":h)+"</div>":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;j=this._get(a,"showWeek");r=this._get(a,"dayNames");this._get(a,"dayNamesShort");var s=this._get(a,"dayNamesMin"),z=this._get(a,"monthNames"),w=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),v=this._get(a,"showOtherMonths"),H=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var L=this._getDefaultDate(a),I="",C=0;C<i[0];C++){for(var M="",D=0;D<i[1];D++){var N=this._daylightSavingAdjust(new Date(m,g,a.selectedDay)),t=" ui-corner-all",x="";if(l){x+='<div class="ui-datepicker-group';if(i[1]>1)switch(D){case 0:x+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right":"left");break;case i[1]-
1:x+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:x+=" ui-datepicker-group-middle";t="";break}x+='">'}x+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+t+'">'+(/all|left/.test(t)&&C==0?c?f:n:"")+(/all|right/.test(t)&&C==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,k,o,C>0||D>0,z,w)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var A=j?'<th class="ui-datepicker-week-col">'+this._get(a,"weekHeader")+"</th>":"";for(t=0;t<7;t++){var q=(t+h)%7;A+="<th"+((t+h+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+r[q]+'">'+s[q]+"</span></th>"}x+=A+"</tr></thead><tbody>";A=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay,A);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;A=l?6:Math.ceil((t+A)/7);q=this._daylightSavingAdjust(new Date(m,g,1-t));for(var O=0;O<A;O++){x+="<tr>";var P=!j?"":'<td class="ui-datepicker-week-col">'+this._get(a,"calculateWeek")(q)+"</td>";for(t=0;t<7;t++){var F=p?p.apply(a.input?a.input[0]:null,[q]):[true,""],B=q.getMonth()!=g,J=B&&!H||!F[0]||k&&q<k||o&&q>o;P+='<td class="'+((t+h+6)%7>=5?" ui-datepicker-week-end":"")+(B?" ui-datepicker-other-month":"")+(q.getTime()==N.getTime()&&g==a.selectedMonth&&a._keyEvent||L.getTime()==q.getTime()&&L.getTime()==N.getTime()?" "+this._dayOverClass:"")+(J?" "+this._unselectableClass+" ui-state-disabled":"")+(B&&!v?"":" "+F[1]+(q.getTime()==u.getTime()?" "+this._currentClass:"")+(q.getTime()==b.getTime()?" ui-datepicker-today":""))+'"'+((!B||v)&&F[2]?' title="'+F[2]+'"':"")+(J?"":' onclick="DP_jQuery_'+y+".datepicker._selectDay('#"+a.id+"',"+q.getMonth()+","+q.getFullYear()+', this);return false;"')+">"+(B&&!v?"&#xa0;":J?'<span class="ui-state-default">'+q.getDate()+"</span>":'<a class="ui-state-default'+(q.getTime()==b.getTime()?" ui-state-highlight":"")+(q.getTime()==u.getTime()?" ui-state-active":"")+(B?" ui-priority-secondary":"")+'" href="#">'+q.getDate()+"</a>")+"</td>";q.setDate(q.getDate()+1);q=this._daylightSavingAdjust(q)}x+=P+"</tr>"}g++;if(g>11){g=0;m++}x+="</tbody></table>"+(l?"</div>"+(i[0]>0&&D==i[1]-1?'<div class="ui-datepicker-row-break"></div>':""):"");M+=x}I+=M}I+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':"");a._keyEvent=false;return I},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var j=this._get(a,"changeMonth"),l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),k='<div class="ui-datepicker-title">',o="";if(h||!j)o+='<span class="ui-datepicker-month">'+i[b]+"</span>";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+y+".datepicker._selectMonthYear('#"+a.id+"', this, 'M');\" onclick=\"DP_jQuery_"+y+".datepicker._clickMonthYear('#"+a.id+"');\">";for(var n=0;n<12;n++)if((!i||n>=e.getMonth())&&(!m||n<=f.getMonth()))o+='<option value="'+n+'"'+(n==b?' selected="selected"':"")+">"+g[n]+"</option>";o+="</select>"}u||(k+=o+(h||!(j&&l)?"&#xa0;":""));a.yearshtml="";if(h||!l)k+='<span class="ui-datepicker-year">'+c+"</span>";else{g=this._get(a,"yearRange").split(":");var r=(new Date).getFullYear();i=function(s){s=s.match(/c[+-].*/)?c+parseInt(s.substring(1),10):s.match(/[+-].*/)?r+parseInt(s,10):parseInt(s,10);return isNaN(s)?r:s};b=i(g[0]);g=Math.max(b,i(g[1]||""));b=e?Math.max(b,e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()):g;for(a.yearshtml+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+y+".datepicker._selectMonthYear('#"+
a.id+"', this, 'Y');\" onclick=\"DP_jQuery_"+y+".datepicker._clickMonthYear('#"+a.id+"');\">";b<=g;b++)a.yearshtml+='<option value="'+b+'"'+(b==c?' selected="selected"':"")+">"+b+"</option>";a.yearshtml+="</select>";if(d.browser.mozilla)k+='<select class="ui-datepicker-year"><option value="'+c+'" selected="selected">'+c+"</option></select>";else{k+=a.yearshtml;a.yearshtml=null}}k+=this._get(a,"yearSuffix");if(u)k+=(h||!(j&&l)?"&#xa0;":"")+o;k+="</div>";return k},_adjustInstDate:function(a,b,c){var e=a.drawYear+(c=="Y"?b:0),f=a.drawMonth+(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&b<c?c:b;return b=a&&b>a?a:b},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");if(b)b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a);c=this._daylightSavingAdjust(new Date(c,e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker=function(a){if(!this.length)return this;if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));return this.each(function(){typeof a=="string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new K;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.10";window["DP_jQuery_"+y]=d})(jQuery);;(function(b,d){b.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=b("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===d)return this._value();this._setOption("value",a);return this},_setOption:function(a,c){if(a==="value"){this.options.value=c;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;return Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var a=this.value(),c=this._percentage();if(this.oldValue!==a){this.oldValue=a;this._trigger("change")}this.valueDiv.toggleClass("ui-corner-right",a===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.10"})})(jQuery);;jQuery.effects||function(f,j){function n(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1],16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return o.transparent;return o[f.trim(c).toLowerCase()]}function s(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return n(b)}function p(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle,a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function q(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in t||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function u(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function k(c,a,b,d){if(typeof c=="object"){d=a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}function m(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects[c])return true;return false}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=s(b.elem,a);b.end=n(b.end);b.colorInit=true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var o={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},r=["add","remove","toggle"],t={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b,d){if(f.isFunction(b)){d=b;b=null}return this.queue("fx",function(){var e=f(this),g=e.attr("style")||" ",h=q(p.call(this)),l,v=e.attr("className");f.each(r,function(w,i){c[i]&&e[i+"Class"](c[i])});l=q(p.call(this));e.attr("className",v);e.animate(u(h,l),a,b,function(){f.each(r,function(w,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments)});h=f.queue(this);l=h.splice(h.length-1,1)[0];h.splice(1,0,l);f.dequeue(this)})};f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,a):f.effects.animateClass.apply(this,[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.10",save:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.data("ec.storage."+a[b],c[0].style[a[b]])},restore:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.css(a[b],c.data("ec.storage."+a[b]))},setMode:function(c,a){if(a=="toggle")a=c.is(":hidden")?"show":"hide";return a},getBaseline:function(c,a){var b;switch(c[0]){case"top":b=0;break;case"middle":b=0.5;break;case"bottom":b=1;break;default:b=c[0]/a.height}switch(c[1]){case"left":c=0;break;case"center":c=0.5;break;case"right":c=1;break;default:c=c[1]/a.width}return{x:c,y:b}},createWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent();var a={width:c.outerWidth(true),height:c.outerHeight(true),"float":c.css("float")},b=f("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0});c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c);return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments),b={options:a[1],duration:a[2],callback:a[3]};a=b.options.mode;var d=f.effects[c];if(f.fx.off||!d)return a?this[a](b.duration,b.callback):this.each(function(){b.callback&&b.callback.call(this)});return d.call(this,b)},_show:f.fn.show,show:function(c){if(m(c))return this._show.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(m(c))return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(m(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return-(h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g))+b},easeOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*a)*Math.sin((a*e-c)*2*Math.PI/g)+d+b},easeInOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e/2)==2)return b+d;g||(g=e*0.3*1.5);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);if(a<1)return-0.5*h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)+b;return h*Math.pow(2,-10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)*0.5+d+b},easeInBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*(a/=e)*a*((g+1)*a-g)+b},easeOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*((a=a/e-1)*a*((g+1)*a+g)+1)+b},easeInOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;if((a/=e/2)<1)return d/2*a*a*(((g*=1.525)+1)*a-g)+b;return d/2*((a-=2)*a*(((g*=1.525)+1)*a+g)+2)+b},easeInBounce:function(c,a,b,d,e){return d-f.easing.easeOutBounce(c,e-a,0,d,e)+b},easeOutBounce:function(c,a,b,d,e){return(a/=e)<1/2.75?d*7.5625*a*a+b:a<2/2.75?d*(7.5625*(a-=1.5/2.75)*a+0.75)+b:a<2.5/2.75?d*(7.5625*(a-=2.25/2.75)*a+0.9375)+b:d*(7.5625*(a-=2.625/2.75)*a+0.984375)+b},easeInOutBounce:function(c,a,b,d,e){if(a<e/2)return f.easing.easeInBounce(c,a*2,0,d,e)*0.5+b;return f.easing.easeOutBounce(c,a*2-e,0,d,e)*0.5+d*0.5+b}})}(jQuery);;(function(b){b.effects.blind=function(c){return this.queue(function(){var a=b(this),g=["position","top","bottom","left","right"],f=b.effects.setMode(a,c.options.mode||"hide"),d=c.options.direction||"vertical";b.effects.save(a,g);a.show();var e=b.effects.createWrapper(a).css({overflow:"hidden"}),h=d=="vertical"?"height":"width";d=d=="vertical"?e.height():e.width();f=="show"&&e.css(h,0);var i={};i[h]=f=="show"?d:0;e.animate(i,c.duration,c.options.easing,function(){f=="hide"&&a.hide();b.effects.restore(a,g);b.effects.removeWrapper(a);c.callback&&c.callback.apply(a[0],arguments);a.dequeue()})})}})(jQuery);;(function(e){e.effects.bounce=function(b){return this.queue(function(){var a=e(this),l=["position","top","bottom","left","right"],h=e.effects.setMode(a,b.options.mode||"effect"),d=b.options.direction||"up",c=b.options.distance||20,m=b.options.times||5,i=b.duration||250;/show|hide/.test(h)&&l.push("opacity");e.effects.save(a,l);a.show();e.effects.createWrapper(a);var f=d=="up"||d=="down"?"top":"left";d=d=="up"||d=="left"?"pos":"neg";c=b.options.distance||(f=="top"?a.outerHeight({margin:true})/3:a.outerWidth({margin:true})/3);if(h=="show")a.css("opacity",0).css(f,d=="pos"?-c:c);if(h=="hide")c/=m*2;h!="hide"&&m--;if(h=="show"){var g={opacity:1};g[f]=(d=="pos"?"+=":"-=")+c;a.animate(g,i/2,b.options.easing);c/=2;m--}for(g=0;g<m;g++){var j={},k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing);c=h=="hide"?c*2:c/2}if(h=="hide"){g={opacity:0};g[f]=(d=="pos"?"-=":"+=")+c;a.animate(g,i/2,b.options.easing,function(){a.hide();e.effects.restore(a,l);e.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments)})}else{j={};k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing,function(){e.effects.restore(a,l);e.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments)})}a.queue("fx",function(){a.dequeue()});a.dequeue()})}})(jQuery);;(function(b){b.effects.clip=function(e){return this.queue(function(){var a=b(this),i=["position","top","bottom","left","right","height","width"],f=b.effects.setMode(a,e.options.mode||"hide"),c=e.options.direction||"vertical";b.effects.save(a,i);a.show();var d=b.effects.createWrapper(a).css({overflow:"hidden"});d=a[0].tagName=="IMG"?d:a;var g={size:c=="vertical"?"height":"width",position:c=="vertical"?"top":"left"};c=c=="vertical"?d.height():d.width();if(f=="show"){d.css(g.size,0);d.css(g.position,c/2)}var h={};h[g.size]=f=="show"?c:0;h[g.position]=f=="show"?0:c/2;d.animate(h,{queue:false,duration:e.duration,easing:e.options.easing,complete:function(){f=="hide"&&a.hide();b.effects.restore(a,i);b.effects.removeWrapper(a);e.callback&&e.callback.apply(a[0],arguments);a.dequeue()}})})}})(jQuery);;(function(c){c.effects.drop=function(d){return this.queue(function(){var a=c(this),h=["position","top","bottom","left","right","opacity"],e=c.effects.setMode(a,d.options.mode||"hide"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a);var f=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var g=d.options.distance||(f=="top"?a.outerHeight({margin:true})/2:a.outerWidth({margin:true})/2);if(e=="show")a.css("opacity",0).css(f,b=="pos"?-g:g);var i={opacity:e=="show"?1:0};i[f]=(e=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+g;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){e=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);;(function(j){j.effects.explode=function(a){return this.queue(function(){var c=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3,d=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3;a.options.mode=a.options.mode=="toggle"?j(this).is(":visible")?"hide":"show":a.options.mode;var b=j(this).show().css("visibility","hidden"),g=b.offset();g.top-=parseInt(b.css("marginTop"),10)||0;g.left-=parseInt(b.css("marginLeft"),10)||0;for(var h=b.outerWidth(true),i=b.outerHeight(true),e=0;e<c;e++)for(var f=0;f<d;f++)b.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+
e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery);;(function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery);;(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","bottom","left","right"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1],10)/100*f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery);;(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&&this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);;(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c<times;c++){b.animate({opacity:animateTo},duration,a.options.easing);animateTo=(animateTo+1)%2}b.animate({opacity:animateTo},duration,a.options.easing,function(){animateTo==0&&b.hide();a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()}).dequeue()})}})(jQuery);;(function(c){c.effects.puff=function(b){return this.queue(function(){var a=c(this),e=c.effects.setMode(a,b.options.mode||"hide"),g=parseInt(b.options.percent,10)||150,h=g/100,i={height:a.height(),width:a.width()};c.extend(b.options,{fade:true,mode:e,percent:e=="hide"?g:100,from:e=="hide"?i:{height:i.height*h,width:i.width*h}});a.effect("scale",b.options,b.duration,b.callback);a.dequeue()})};c.effects.scale=function(b){return this.queue(function(){var a=c(this),e=c.extend(true,{},b.options),g=c.effects.setMode(a,b.options.mode||"effect"),h=parseInt(b.options.percent,10)||(parseInt(b.options.percent,10)==0?0:g=="hide"?0:100),i=b.options.direction||"both",f=b.options.origin;if(g!="effect"){e.origin=f||["middle","center"];e.restore=true}f={height:a.height(),width:a.width()};a.from=b.options.from||(g=="show"?{height:0,width:0}:f);h={y:i!="horizontal"?h/100:1,x:i!="vertical"?h/100:1};a.to={height:f.height*h.y,width:f.width*h.x};if(b.options.fade){if(g=="show"){a.from.opacity=0;a.to.opacity=1}if(g=="hide"){a.from.opacity=1;a.to.opacity=0}}e.from=a.from;e.to=a.to;e.mode=g;a.effect("size",e,b.duration,b.callback);a.dequeue()})};c.effects.size=function(b){return this.queue(function(){var a=c(this),e=["position","top","bottom","left","right","width","height","overflow","opacity"],g=["position","top","bottom","left","right","overflow","opacity"],h=["width","height","overflow"],i=["fontSize"],f=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],k=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],p=c.effects.setMode(a,b.options.mode||"effect"),n=b.options.restore||false,m=b.options.scale||"both",l=b.options.origin,j={height:a.height(),width:a.width()};a.from=b.options.from||j;a.to=b.options.to||j;if(l){l=c.effects.getBaseline(l,j);a.from.top=(j.height-a.from.height)*l.y;a.from.left=(j.width-a.from.width)*l.x;a.to.top=(j.height-a.to.height)*l.y;a.to.left=(j.width-a.to.width)*l.x}var d={from:{y:a.from.height/j.height,x:a.from.width/j.width},to:{y:a.to.height/j.height,x:a.to.width/j.width}};if(m=="box"||m=="both"){if(d.from.y!=d.to.y){e=e.concat(f);a.from=c.effects.setTransition(a,f,d.from.y,a.from);a.to=c.effects.setTransition(a,f,d.to.y,a.to)}if(d.from.x!=d.to.x){e=e.concat(k);a.from=c.effects.setTransition(a,k,d.from.x,a.from);a.to=c.effects.setTransition(a,k,d.to.x,a.to)}}if(m=="content"||m=="both")if(d.from.y!=d.to.y){e=e.concat(i);a.from=c.effects.setTransition(a,i,d.from.y,a.from);a.to=c.effects.setTransition(a,i,d.to.y,a.to)}c.effects.save(a,n?e:g);a.show();c.effects.createWrapper(a);a.css("overflow","hidden").css(a.from);if(m=="content"||m=="both"){f=f.concat(["marginTop","marginBottom"]).concat(i);k=k.concat(["marginLeft","marginRight"]);h=e.concat(f).concat(k);a.find("*[width]").each(function(){child=c(this);n&&c.effects.save(child,h);var o={height:child.height(),width:child.width()};child.from={height:o.height*d.from.y,width:o.width*d.from.x};child.to={height:o.height*d.to.y,width:o.width*d.to.x};if(d.from.y!=d.to.y){child.from=c.effects.setTransition(child,f,d.from.y,child.from);child.to=c.effects.setTransition(child,f,d.to.y,child.to)}if(d.from.x!=d.to.x){child.from=c.effects.setTransition(child,k,d.from.x,child.from);child.to=c.effects.setTransition(child,k,d.to.x,child.to)}child.css(child.from);child.animate(child.to,b.duration,b.options.easing,function(){n&&c.effects.restore(child,h)})})}a.animate(a.to,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){a.to.opacity===0&&a.css("opacity",a.from.opacity);p=="hide"&&a.hide();c.effects.restore(a,n?e:g);c.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);;(function(d){d.effects.shake=function(a){return this.queue(function(){var b=d(this),j=["position","top","bottom","left","right"];d.effects.setMode(b,a.options.mode||"effect");var c=a.options.direction||"left",e=a.options.distance||20,l=a.options.times||3,f=a.duration||a.options.duration||140;d.effects.save(b,j);b.show();d.effects.createWrapper(b);var g=c=="up"||c=="down"?"top":"left",h=c=="up"||c=="left"?"pos":"neg";c={};var i={},k={};c[g]=(h=="pos"?"-=":"+=")+e;i[g]=(h=="pos"?"+=":"-=")+e*2;k[g]=(h=="pos"?"-=":"+=")+e*2;b.animate(c,f,a.options.easing);for(e=1;e<l;e++)b.animate(i,f,a.options.easing).animate(k,f,a.options.easing);b.animate(i,f,a.options.easing).animate(c,f/2,a.options.easing,function(){d.effects.restore(b,j);d.effects.removeWrapper(b);a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()});b.dequeue()})}})(jQuery);;(function(c){c.effects.slide=function(d){return this.queue(function(){var a=c(this),h=["position","top","bottom","left","right"],f=c.effects.setMode(a,d.options.mode||"show"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a).css({overflow:"hidden"});var g=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var e=d.options.distance||(g=="top"?a.outerHeight({margin:true}):a.outerWidth({margin:true}));if(f=="show")a.css(g,b=="pos"?isNaN(e)?"-"+e:-e:e);var i={};i[g]=(f=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+e;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){f=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);;(function(e){e.effects.transfer=function(a){return this.queue(function(){var b=e(this),c=e(a.options.to),d=c.offset();c={top:d.top,left:d.left,height:c.innerHeight(),width:c.innerWidth()};d=b.offset();var f=e('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery);;eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(5($){$.V.x({t:5(f){2(!f.d)f.d=$.7.d++;2(!$.7.l)$.7.l=[];j 1.A(5(){2(1.4)j 1.4.n(f);8 1.4=[];1.4.n(f);c s=1;1.6=5(e){e=$.7.R(e||o.7);$.x(e,1.p||{});c a=0,m=P;2(e.u)a=e.u/M;2(e.H)a=-e.H/3;2(o.I)a=-e.u;r(c i=0;i<s.4.q;i++)2(s.4[i])2(s.4[i].U(s,e,a)===9){m=9;e.T();e.S()}j m};2($.k.h&&!1.b){1.b=5(e){1.p={F:e.F,E:e.E,D:e.D,C:e.C}};$(1).Q(\'B\',1.b)}2(1.g)2($.k.h)1.g(\'z\',1.6,9);8 1.g(\'t\',1.6,9);8 1.y=1.6;$.7.l.n($(1))})},v:5(f){j 1.A(5(){2(f&&1.4){r(c i=0;i<1.4.q;i++)2(1.4[i]&&1.4[i].d==f.d)O 1.4[i]}8{2($.k.h&&!1.b)$(1).N(\'B\',1.b);2(1.g)2($.k.h)1.w(\'z\',1.6,9);8 1.w(\'t\',1.6,9);8 1.y=G;1.4=1.6=1.b=1.p=G}})}});$(o).L(\'K\',5(){c a=$.7.l||[];r(c i=0;i<a.q;i++)a[i].v()})})(J);',58,58,'|this|if||_mwHandlers|function|_mwHandler|event|else|false||_mwFixCursorPos|var|guid|||addEventListener|mozilla||return|browser|_mwCache|returnValue|push|window|_mwCursorPos|length|for||mousewheel|wheelDelta|unmousewheel|removeEventListener|extend|onmousewheel|DOMMouseScroll|each|mousemove|clientY|clientX|pageY|pageX|null|detail|opera|jQuery|unload|one|120|unbind|delete|true|bind|fix|stopPropagation|preventDefault|call|fn'.split('|'),0,{}));(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);;(function($){var g=location.href.replace(/#.*/,''),h=$.localScroll=function(a){$('body').localScroll(a)};h.defaults={duration:1e3,axis:'y',event:'click',stop:1};h.hash=function(a){a=$.extend({},h.defaults,a);a.hash=0;if(location.hash)setTimeout(function(){i(0,location,a)},0)};$.fn.localScroll=function(b){b=$.extend({},h.defaults,b);return(b.persistent||b.lazy)?this.bind(b.event,function(e){var a=$([e.target,e.target.parentNode]).filter(c)[0];a&&i(e,a,b)}):this.find('a,area').filter(c).bind(b.event,function(e){i(e,this,b)}).end().end();function c(){var a=this;return!!a.href&&!!a.hash&&a.href.replace(a.hash,'')==g&&(!b.filter||$(a).is(b.filter))}};function i(e,a,b){var c=a.hash.slice(1),d=document.getElementById(c)||document.getElementsByName(c)[0],f;if(d){e&&e.preventDefault();f=$(b.target||$.scrollTo.window());if(b.lock&&f.is(':animated')||b.onBefore&&b.onBefore.call(a,e,d,f)===!1)return;if(b.stop)f.queue('fx',[]).stop();f.scrollTo(d,b).trigger('notify.serialScroll',[d]);if(b.hash)f.queue(function(){location=a.hash;$(this).dequeue()})}}})(jQuery);if(!window.dfx){window.dfx=function(){};}
dfx.get=function(url,data,callBack)
{url=dfx.cleanAjaxRequestUrl(url);dfxjQuery.get(url,data,callBack);};dfx.post=function(url,data,successCallback,errorCallback,timeout,extraParams)
{url=dfx.cleanAjaxRequestUrl(url);timeout=timeout||20;var params={url:url,type:'POST',data:data,success:successCallback,error:errorCallback,timeout:(timeout*1000)};if(extraParams){dfx.foreach(extraParams,function(key){params[key]=extraParams[key];return true;});}
dfxjQuery.ajax(params);};dfx.getJSON=function(url,data,callBack)
{url=dfx.cleanAjaxRequestUrl(url);dfxjQuery.getJSON(url,data,callBack);};dfx.cleanAjaxRequestUrl=function(url)
{if(typeof url!=='string'){var url=location.href;}
url=dfx.noAnchorPartUrl(url);return url;};if(!window.dfx){window.dfx=function(){};}
Array.prototype.inArray=function(value)
{if(Array.prototype.indexOf){if(this.indexOf(value)>=0){return true;}else{return false;}}
var len=this.length;for(var i=0;i<len;i++){if(this[i]===value){return true;}}
return false;};Array.prototype.find=function(item)
{var length=this.length;for(var i=0;i<length;i++){if(this[i]===item){return i;}}
return-1;};Array.prototype.mergeCollection=function(collection)
{if(!collection){return;}
var len=collection.length;for(var i=0;i<len;i++){this.push(collection[i]);}};Array.prototype.unique=function()
{var a=[];var l=this.length;for(var i=0;i<l;i++){if(a.find(this[i])<0){a.push(this[i]);}}
return a;};function shiftArrayElements(array,index)
{var len=array.length;for(var i=parseInt(index);i<(len-1);i++){var n=i+1;array[i]=array[n];}
array.pop();return array;};dfx.foreach=function(value,cb)
{if(value instanceof Array){var len=value.length;for(var i=0;i<len;i++){var res=cb.call(this,i);if(res===false){break;}}}else{for(var id in value){if(value.hasOwnProperty(id)===true){var res=cb.call(this,id);if(res===false){break;}}}}};dfx.isEmpty=function(value)
{if(value){if(value instanceof Array){if(value.length>0){return false;}}else{for(var id in value){if(value.hasOwnProperty(id)===true){return false;}}}}
return true;};dfx.isArray=function(v)
{return dfxjQuery.isArray(v);};dfx.inArray=function(needle,haystack,typeSensitive)
{if(dfx.isset(typeSensitive)===false){typeSensitive=true;}
var hln=haystack.length;for(var i=0;i<hln;i++){if((typeSensitive===true&&needle===haystack[i])||(typeSensitive===false&&needle==haystack[i])){return true;}}
return false;};dfx.arrayDiff=function(array1,array2,firstOnly)
{var al=array1.length;var res=[];for(var i=0;i<al;i++){if(dfx.inArray(array1[i],array2)===false){res.push(array1[i]);}}
if(firstOnly!==true){al=array2.length;for(var i=0;i<al;i++){if(dfx.inArray(array2[i],array1)===false){res.push(array2[i]);}}}
return res;};dfx.arrayImplode=function(glue,pieces)
{var ret='';var finalTrimReq=false;dfx.foreach(pieces,function(key){ret+=pieces[key]+glue;finalTrimReq=true;});if(finalTrimReq){var trimLn=(ret.length-glue.length);ret=ret.substr(0,trimLn);}
return ret;};dfx.arrayKeys=function(array)
{var ret=new Array();var i=0;dfx.foreach(array,function(key){ret[i]=key;i++;});return ret;};dfx.arrayMerge=function(array1,array2)
{if(array1 instanceof Array){var maintainIndex=false;}else{var maintainIndex=true;}
dfx.foreach(array2,function(idx){var value=array2[idx];if(maintainIndex===true){array1[idx]=value;}else{array1.push(value);}});return array1;};dfx.removeArrayIndex=function(array,index)
{if(!array||dfx.isset(array[index])===false){return null;}
return array.splice(index,1);};dfx.arraySearch=function(needle,haystack)
{var foundAtIndex=false;if(needle instanceof String){needle=needle.toString();}
if((typeof needle==='string'&&typeof needle==='boolean')||(haystack instanceof Array===false&&haystack instanceof Object===false)){return foundAtIndex;}
dfx.foreach(haystack,function(i){var value=haystack[i];if(value===needle){foundAtIndex=i;return false;}});return foundAtIndex;};dfx.arrayFill=function(startIndex,num,value,nonObjectArray)
{if(nonObjectArray===true&&startIndex===0){var retAr=[];}else{var retAr={};}
for(var i=startIndex;i<num;i++){retAr[i]=value;}
return retAr;};dfx.arrayIntersect=function(array1,array2)
{var tmp={};var unique=[];var count=array2.length;for(var i=0;i<count;i++){tmp[array2[i]]=array2[i];}
count=array1.length;for(var i=count;i>=0;i--){if(dfx.isset(tmp[array1[i]])===false){dfx.unset(array1,i);}}
return array1;};dfx.count=function(anyArray)
{if(anyArray instanceof Array){return anyArray.length;}else{var counter=0;dfx.foreach(anyArray,function(key){counter++;});return counter;}};dfx.unset=function(anyArray,index)
{if(anyArray instanceof Array){anyArray.splice(index,1);}else{delete anyArray[index];}};if(!window.dfx){window.dfx=function(){};}
dfx.setStyle=function(element,property,value)
{if(element){dfxjQuery(element).css(property,value);}};dfx.setStyles=function(elements,property,value)
{dfxjQuery(elements).css(property,value);};dfx.getStyle=function(element,property)
{return dfxjQuery(element).css(property);};dfx.hasClass=function(element,className)
{return dfxjQuery(element).hasClass(className);};dfx.addClass=function(element,classNames)
{dfxjQuery(element).addClass(classNames);};dfx.removeClass=function(element,classNames)
{dfxjQuery(element).removeClass(classNames);};dfx.swapClass=function(element,oldClassName,newClassName)
{if(dfx.hasClass(element,oldClassName)===true){dfx.removeClass(element,oldClassName);}
dfx.addClass(element,newClassName);};dfx.camelCase=function(property)
{var hyphenTest=/-([a-z])/;while(hyphenTest.test(property)==true){property=property.replace(hyphenTest,RegExp.$1.toUpperCase());}
return property;};dfx.getHexColourCode=function(colour)
{if(colour.substring(0,1)==='#'){if(colour.length===4){colour=colour.replace(/#(\d|[a-fA-F])(\d|[a-fA-F])(\d|[a-fA-F])/,'#$1$1$2$2$3$3');}
return colour;}
if(colour.substring(0,3)==='rgb'){var rgb=colour.match(/rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/);var r=parseInt(rgb[1]).toString(16);var g=parseInt(rgb[2]).toString(16);var b=parseInt(rgb[3]).toString(16);var hexColour='#'+r+g+b;return hexColour;}
return dfx.getColourNameValue(colour);};dfx.getRGBColourCode=function(colour)
{if(colour.substring(0,1)==='#'){var components=dfx.getColourComponents(colour);var colourString='rgb('+components.r+','+components.g+','+components.b+')';return colourString;}
if(colour.substring(0,3)==='rgb'){return colour;}
return dfx.getRGBColourCode(dfx.getColourNameValue(colour));};dfx.getColourComponents=function(colour)
{var components={};if(colour.substring(0,1)==='#'){colour=dfx.getHexColourCode(colour);var rgb=colour.match(/#([a-fA-F\d]{2})([a-fA-F\d]{2})([a-fA-F\d]{2})/);components.r=parseInt(rgb[1],16);components.g=parseInt(rgb[2],16);components.b=parseInt(rgb[3],16);}else if(colour.substring(0,3)==='rgb'){var rgb=colour.match(/rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/);components.r=rgb[1];components.g=rgb[2];components.b=rgb[3];}else{components=dfx.getColourComponents(dfx.getColourNameValue(colour));}
return components;};dfx.toggle=function(element)
{dfxjQuery(element).toggle();};dfx.setOpacity=function(element,value)
{dfx.setStyle(element,'opacity',value);};dfx.getOpacity=function(element)
{return dfx.getStyle(element,'opacity');};dfx.colourNameString='/aliceblue#f0f8ff/antiquewhite#faebd7/aqua#00ffff/aquamarine#7fffd4/azure#f0ffff/beige#f5f5dc/bisque#ffe4c4/black#000000/blanchedalmond#ffebcd/blue#0000ff/blueviolet#8a2be2/brown#a52a2a/burlywood#deb887/cadetblue#5f9ea0/chartreuse#7fff00/chocolate#d2691e/coral#ff7f50/cornflowerblue#6495ed/cornsilk#fff8dc/crimson#dc143c/cyan#00ffff/darkblue#00008b/darkcyan#008b8b/darkgoldenrod#b8860b/darkgray#a9a9a9/darkgrey#a9a9a9/darkgreen#006400/darkkhaki#bdb76b/darkmagenta#8b008b/darkolivegreen#556b2f/darkorange#ff8c00/darkorchid#9932cc/darkred#8b0000/darksalmon#e9967a/darkseagreen#8fbc8f/darkslateblue#483d8b/darkslategray#2f4f4f/darkslategrey#2f4f4f/darkturquoise#00ced1/darkviolet#9400d3/deeppink#ff1493/deepskyblue#00bfff/dimgray#696969/dimgrey#696969/dodgerblue#1e90ff/firebrick#b22222/floralwhite#fffaf0/forestgreen#228b22/fuchsia#ff00ff/gainsboro#dcdcdc/ghostwhite#f8f8ff/gold#ffd700/goldenrod#daa520/gray#808080/grey#808080/green#008000/greenyellow#adff2f/honeydew#f0fff0/hotpink#ff69b4/indianred #cd5c5c/indigo #4b0082/ivory#fffff0/khaki#f0e68c/lavender#e6e6fa/lavenderblush#fff0f5/lawngreen#7cfc00/lemonchiffon#fffacd/lightblue#add8e6/lightcoral#f08080/lightcyan#e0ffff/lightgoldenrodyellow#fafad2/lightgray#d3d3d3/lightgrey#d3d3d3/lightgreen#90ee90/lightpink#ffb6c1/lightsalmon#ffa07a/lightseagreen#20b2aa/lightskyblue#87cefa/lightslategray#778899/lightslategrey#778899/lightsteelblue#b0c4de/lightyellow#ffffe0/lime#00ff00/limegreen#32cd32/linen#faf0e6/magenta#ff00ff/maroon#800000/mediumaquamarine#66cdaa/mediumblue#0000cd/mediumorchid#ba55d3/mediumpurple#9370d8/mediumseagreen#3cb371/mediumslateblue#7b68ee/mediumspringgreen#00fa9a/mediumturquoise#48d1cc/mediumvioletred#c71585/midnightblue#191970/mintcream#f5fffa/mistyrose#ffe4e1/moccasin#ffe4b5/navajowhite#ffdead/navy#000080/oldlace#fdf5e6/olive#808000/olivedrab#6b8e23/orange#ffa500/orangered#ff4500/orchid#da70d6/palegoldenrod#eee8aa/palegreen#98fb98/paleturquoise#afeeee/palevioletred#d87093/papayawhip#ffefd5/peachpuff#ffdab9/peru#cd853f/pink#ffc0cb/plum#dda0dd/powderblue#b0e0e6/purple#800080/red#ff0000/rosybrown#bc8f8f/royalblue#4169e1/saddlebrown#8b4513/salmon#fa8072/sandybrown#f4a460/seagreen#2e8b57/seashell#fff5ee/sienna#a0522d/silver#c0c0c0/skyblue#87ceeb/slateblue#6a5acd/slategray#708090/slategrey#708090/snow#fffafa/springgreen#00ff7f/steelblue#4682b4/tan#d2b48c/teal#008080/thistle#d8bfd8/tomato#ff6347/turquoise#40e0d0/violet#ee82ee/wheat#f5deb3/white#ffffff/whitesmoke#f5f5f5/yellow#ffff00/yellowgreen#9acd32/';dfx.getColourNameValue=function(colourName)
{colourName=colourName.toLowerCase();var reg=new RegExp('\/'+colourName+'(#[a-f0-9]{6})\/');var matches=reg.exec(dfx.colourNameString);if(matches){return matches[1];}
return'#000000';};dfx.showElement=function(element,visibilityOnly)
{dfx.setStyle(element,'visibility','visible');if(dfx.isset(visibilityOnly)===false||visibilityOnly===false){dfx.setStyle(element,'display','block');}};dfx.hideElement=function(element,visibilityOnly)
{dfx.setStyle(element,'visibility','hidden');if(dfx.isset(visibilityOnly)===false||visibilityOnly===false){dfx.setStyle(element,'display','none');}};dfx.isShowing=function(element)
{var display=dfx.getStyle(element,'display');if(display==='none'||!display){return false;}
var visibility=dfx.getStyle(element,'visibility');if(visibility==='hidden'||!visibility){return false;}
return true;};dfx.toggleClass=function(elems,className)
{dfxjQuery(elems).toggleClass(className);};dfx.getComputedStyle=function(el,styleName)
{if(styleName){styleName=dfx.camelCase(styleName);}
if(document.defaultView&&document.defaultView.getComputedStyle){var styles=document.defaultView.getComputedStyle(el,null);if(styleName){return styles[styleName];}
return styles;}else if(el.currentStyle){if(styleName){return el.currentStyle[styleName];}
return el.currentStyle;}};if(!window.dfx){window.dfx=function(){};}
dfx.date=function(format,timestamp,tsIso8601)
{if(timestamp===null&&tsIso8601){timestamp=dfx.tsIso8601ToTimestamp(tsIso8601);if(!timestamp){return;}}
var date=new Date(timestamp);var formats=format.split('');var fc=formats.length;var dateStr='';for(var i=0;i<fc;i++){var r='';var f=formats[i];switch(f){case'D':case'l':var names=['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];r=names[date.getDay()];if(f==='D'){r=r.substring(0,3);}
break;case'F':case'M':months=['January','February','March','April','May','June','July','August','September','October','November','December'];r=months[date.getMonth()];if(f==='M'){r=r.substring(0,3);}
break;case'd':r=date.getDate();break;case'S':r=dfx.getOrdinalSuffix(date.getDate());break;case'Y':case'y':r=date.getFullYear();if(f==='y'){r=r.toString().substring(2);}
break;case'H':r=date.getHours();break;case'h':r=date.getHours();if(r===0){r=12;}else if(r>12){r-=12;}
break;case'i':r=dfx.addNumberPadding(date.getMinutes());break;case'a':r='am';if(date.getHours()>=12){r='pm';}
break;default:r=f;break;}
dateStr+=r;}
return dateStr;};dfx.getOrdinalSuffix=function(number)
{var suffix='';var tmp=(number%100);if(tmp>=4&&tmp<=20){suffix='th';}else{switch(number%10){case 1:suffix='st';break;case 2:suffix='nd';break;case 3:suffix='rd';break;default:suffix='th';break;}}
return suffix;};dfx.addNumberPadding=function(number)
{if(number<10){number='0'+number;}
return number;};dfx.tsIso8601ToTimestamp=function(tsIso8601)
{var regexp=/(\d\d\d\d)(?:-?(\d\d)(?:-?(\d\d)(?:[T ](\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(?:Z|(?:([-+])(\d\d)(?::?(\d\d))?)?)?)?)?)?/;var d=tsIso8601.match(new RegExp(regexp));if(d){var date=new Date();date.setDate(d[3]);date.setFullYear(d[1]);date.setMonth(d[2]-1);date.setHours(d[4]);date.setMinutes(d[5]);date.setSeconds(d[6]);var offset=(d[9]*60);if(d[8]==='+'){offset*=-1;}
offset-=date.getTimezoneOffset();var timestamp=(date.getTime()+(offset*60*1000));return timestamp;}
return null;};if(!window.dfx){window.dfx=function(){};}
function dom()
{this.scrollBarWidth=null;}
dfx.scriptsIncluded=[];dfx.cssIncluded=[];dfx.ELEMENT_NODE=1;dfx.ATTRIBUTE_NODE=2;dfx.TEXT_NODE=3;dfx.CDATA_SECTION_NODE=4;dfx.ENTITY_REFERENCE_NODE=5;dfx.ENTITY_NODE=6;dfx.PROCESSING_INSTRUCTION_NODE=7;dfx.COMMENT_NODE=8;dfx.DOCUMENT_NODE=9;dfx.DOCUMENT_TYPE_NODE=10;dfx.DOCUMENT_FRAGMENT_NODE=11;dfx.NOTATION_NODE=12;dfx.getClass=function(className,startElement,tagName,onlyChildren)
{var ret;if(!startElement){startElement=document.body;}
className='.'+className.split(' ').join('.');if(tagName){className=tagName+className;}
if(onlyChildren===true){ret=dfxjQuery.makeArray(dfxjQuery(startElement).children(className));}else{ret=dfxjQuery.makeArray(dfxjQuery(startElement).find(className));}
return ret;};dfx.getId=dom.getId=function(id,startElement)
{if(!startElement){startElement=document;}
element=startElement.getElementById(id);return element;};dfx.getTag=function(tagName,startElement,onlyChildren)
{var ret;if(!startElement){startElement=document;}
if(onlyChildren===true){ret=dfxjQuery.makeArray(dfxjQuery(startElement).children(tagName));}else{ret=dfxjQuery.makeArray(dfxjQuery(startElement).find(tagName));}
return ret;};dfx.getElements=function(searchString,startElement)
{if(!startElement){startElement=document;}
var searchElems=searchString.split(' ');var matches=[];var searchResults=[];var schLen=searchElems.length;for(var i=0;i<schLen;i++){searchResults=[];if(searchElems[i].match(/.+\./)){var classPieces=searchElems[i].split('.');if(classPieces.length===2){searchResults=dfx.getClass(classPieces[1],startElement,classPieces[0]);}else{searchResults=dfx.getClass(classPieces[0],startElement);}}else if(searchElems[i].match(/^#/)){var idString=searchElems[i].substring(1);searchResults.push(dfx.getId(idString));}else{searchResults=dfx.getTag(searchElems[i],startElement);}
matches.mergeCollection(searchResults);}
return matches;};dfx.getElementCoords=function(element,relative)
{var offset=dfxjQuery(element).offset();return{x:offset.left,y:offset.top};};dfx.setCoords=function(element,x,y)
{dfx.setStyle(element,'top',y+'px');dfx.setStyle(element,'left',x+'px');};dfx.getScrollCoords=function()
{var scrollX=0;var scrollY=0;if(window.pageYOffset){scrollX=window.pageXOffset;scrollY=window.pageYOffset;}else if(document.body&&(document.body.scrollLeft||document.body.scrollTop)){scrollX=document.body.scrollLeft;scrollY=document.body.scrollTop;}else{scrollX=document.documentElement.scrollLeft;scrollY=document.documentElement.scrollTop;}
var coords={x:scrollX,y:scrollY};return coords;};dfx.getElementWidth=function(element,inner)
{if(inner===true){return element.clientWidth;}else{return element.offsetWidth;}};dfx.getElementHeight=function(element,inner)
{if(inner===true){return element.clientHeight;}else{return element.offsetHeight;}};dfx.getElementDimensions=function(element,inner)
{if(inner===undefined){inner=false;}
var result={'width':dfx.getElementWidth(element,inner),'height':dfx.getElementHeight(element,inner)};return result;};dfx.getBoundingRectangle=function(element)
{var coords=dfx.getElementCoords(element);var dimensions=dfx.getElementDimensions(element);var result={'x1':coords.x,'y1':coords.y,'x2':coords.x+dimensions.width,'y2':coords.y+dimensions.height};return result;};dfx.getWindowDimensions=function()
{var windowWidth=0;var windowHeight=0;if(window.innerWidth){windowWidth=window.innerWidth;windowHeight=window.innerHeight;var scrollWidth=dfx.getScrollbarWidth();if(document.documentElement.scrollHeight>windowHeight){if(typeof scrollWidth==='number'){windowWidth-=scrollWidth;}}
if(document.body.scrollWidth>windowWidth){if(typeof scrollWidth==='number'){windowHeight-=scrollWidth;}}}else if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){windowWidth=document.documentElement.clientWidth;windowHeight=document.documentElement.clientHeight;}else if(document.body&&(document.body.clientWidth||document.body.clientHeight)){windowWidth=document.body.clientWidth;windowHeight=document.body.clientHeight;}
var result={'width':windowWidth,'height':windowHeight};return result;};dfx.getScrollbarWidth=function()
{if(dom.scrollBarWidth){return dom.scrollBarWidth;}
var wrapDiv=null;var childDiv=null;var widthNoScrollBar=0;var widthWithScrollBar=0;wrapDiv=document.createElement('div');wrapDiv.style.position='absolute';wrapDiv.style.top='-1000px';wrapDiv.style.left='-1000px';wrapDiv.style.width='100px';wrapDiv.style.height='50px';wrapDiv.style.overflow='hidden';childDiv=document.createElement('div');childDiv.style.width='100%';childDiv.style.height='200px';wrapDiv.appendChild(childDiv);document.body.appendChild(wrapDiv);widthNoScrollBar=childDiv.offsetWidth;wrapDiv.style.overflow='auto';widthWithScrollBar=childDiv.offsetWidth;document.body.removeChild(document.body.lastChild);var scrollBarWidth=(widthNoScrollBar-widthWithScrollBar);dom.scrollBarWidth=scrollBarWidth;return scrollBarWidth;};dfx.empty=function(element)
{if(element){return dfxjQuery(element).empty();}};dfx.remove=function(element)
{if(element){return dfxjQuery(element).remove();}};dfx.prepend=function(parent,elem)
{dfxjQuery(parent).prepend(elem);};dfx.append=function(parent,elem)
{dfxjQuery(parent).append(elem);};dfx.insertBefore=function(before,elem)
{dfxjQuery(before).before(elem);};dfx.insertAfter=function(after,elem)
{dfxjQuery(after).after(elem);};dfx.getHtml=function(element)
{return dfxjQuery(element).html();};dfx.setHtml=function(element,content)
{if(element){dfxjQuery(element).html(content);}};dfx.appendHtml=function(element,content)
{dfxjQuery(element).html(dfx.getHtml(element)+content);};dfx.prependHtml=function(element,content)
{dfxjQuery(element).html(content+dfx.getHtml());};dfx.getParents=function(elements,filter,stopEl)
{var res=dfxjQuery(elements).parents(filter);var ln=res.length;var ar=[];for(var i=0;i<ln;i++){if(res[i]===stopEl){break;}
ar.push(res[i]);}
return ar;};dfx.getSiblings=function(element,dir,elementNodesOnly,stopElem)
{if(elementNodesOnly===true){if(dir==='prev'){return dfxjQuery(element).prevAll();}else{return dfxjQuery(element).nextAll();}}else{var elems=[];if(dir==='prev'){while(element.previousSibling){element=element.previousSibling;if(element===stopElem){break;}
elems.push(element);}}else{while(element.nextSibling){element=element.nextSibling;if(element===stopElem){break;}
elems.push(element);}}
return elems;}};dfx.normalize=function(element)
{if(dfx.isBlockElement(element)===true){return false;}
while(element.nextSibling){var next=element.nextSibling;if(element.nodeType===dfx.TEXT_NODE){if(next.nodeType===dfx.TEXT_NODE){dfx.remove(next);element.nodeValue+=next.nodeValue;}else{break;}}else if(element.tagName===next.tagName){dfx.remove(next);var childLen=next.childNodes.length;while(childLen>0){element.appendChild(next.firstChild);childLen=next.childNodes.length;}}else{break;}}
while(element.previousSibling){var prev=element.previousSibling;if(element.nodeType===dfx.TEXT_NODE){if(prev.nodeType===dfx.TEXT_NODE){dfx.remove(element);prev.nodeValue+=element.nodeValue;element=prev;}else{break;}}else if(element.tagName===prev.tagName){dfx.remove(element);var childLen=element.childNodes.length;while(childLen>0){prev.appendChild(element.firstChild);childLen=element.childNodes.length;}
element=prev;}else{break;}}};dfx.normalizeChildren=function(parent)
{if(parent.nodeType!==dfx.ELEMENT_NODE){return false;}
var nodeLen=parent.childNodes.length;for(var i=0;i<nodeLen;i++){var child=parent.childNodes[i];if(child){if(child.nodeType!==dfx.TEXT_NODE){dfx.normalizeChildren(child);}
dfx.normalize(child);}}};dfx.includeScript=function(url,callback)
{if(url.indexOf('http://')===-1&&url.indexOf('https://')===-1){return;}
dfxjQuery.getScript(url,callback);};dfx.includeScripts=function(urls,callback)
{if(!urls||urls.length===0){callback.call(this);}else{var url=urls.shift();dfx.includeScript(url,function(){dfx.includeScripts(urls,callback);});}};dfx._includeCss=function(url)
{var head=document.getElementsByTagName('head').item(0);var links=head.getElementsByTagName('link');var lnkLen=links.length;for(var i=0;i<lnkLen;i++){if(links[i].href===url){return;}}
var link=document.createElement('link');dfxjQuery(link).attr({href:url,media:'screen',type:'text/css',rel:'stylesheet'}).appendTo('head');};dfx.includeCss=function(url,callback)
{var self=this;if(Widget.CSS_MINIFIED===true){if(callback){callback.call(self);}}else{if(dfx.cssIncluded[url]!==true){var loadCss=function(cb){var loadData={css:true,action:'loadCss',url:url};dfx.post(window.location.href,loadData,function(cssContent){dfx.addCssToStyle(cssContent);dfx.cssIncluded[url]=true;if(cb){cb.call(self);}});};loadCss(callback);}else{if(callback){callback.call(self);}}}};dfx.addCssToStyle=function(cssContent,id)
{var styleid='backendStyle';if(id){styleid=id;}
var head=document.getElementsByTagName("head").item(0);var styleTag=document.getElementById(styleid);if(styleTag){if(styleTag.styleSheet){styleTag.styleSheet.cssText=styleTag.styleSheet.cssText+cssContent;}else{dfx.setNodeTextContent(styleTag,dfx.getNodeTextContent(styleTag)+cssContent);}}else{styleTag=document.createElement('style');styleTag.setAttribute('type','text/css');styleTag.setAttribute('id',styleid);if(styleTag.styleSheet){styleTag.styleSheet.cssText=cssContent;}else{dfx.setNodeTextContent(styleTag,cssContent);}
head.appendChild(styleTag);}};dfx.getNodeTextContent=function(node)
{return dfxjQuery(node).text();};dfx.setNodeTextContent=function(node,txt)
{return dfxjQuery(node).text(txt);};dfx.getIframeDocument=function(iframe)
{var doc=null;if(iframe.contentDocument){doc=iframe.contentDocument;}else if(iframe.contentWindow){doc=iframe.contentWindow.document;}else if(iframe.document){doc=iframe.document;}
return doc;};dfx.isBlockElement=function(element)
{if(!element){return false;}
switch(element.nodeName.toLowerCase()){case'p':case'div':case'pre':case'ul':case'ol':case'li':case'table':case'tbody':case'td':case'th':case'fieldset':case'form':case'blockquote':case'dl':case'dir':case'center':case'address':case'h1':case'h2':case'h3':case'h4':case'h5':case'h6':case'img':return true;break;default:return false;break;}
return false;};dfx.isStubElement=function(element)
{if(element){switch(element.nodeName.toLowerCase()){case'img':case'br':case'hr':case'iframe':case'param':case'link':case'meta':case'input':case'frame':case'col':case'base':case'area':return true;break;default:return false;break;}}
return false;};dfx.isChildOf=function(el,parent,stopElem)
{try{if(parent instanceof Array){var c=parent.length;while(el&&el!==stopElem&&el.parentNode){for(var i=0;i<c;i++){if(el.parentNode===parent[i]){return true;}}
el=el.parentNode;}}else{while(el&&el!==stopElem&&el.parentNode){if(el.parentNode===parent){return true;}
el=el.parentNode;}}}catch(e){}
return false;};dfx.getFormData=function(element)
{var data={},parent=null;if(element){parent=element;}else{parent=document;}
dfxjQuery(':input',parent).each(function(){var type=this.type;var tag=this.tagName.toLowerCase();if(type==='text'||type==='password'||tag==='textarea'){data[this.name]=this.value;}
if(type==='checkbox'||type==='radio'){data[this.name]=this.checked;}
if(tag==='select'){data[this.name]=this.selectedIndex;}});return data;};dfx.clearFormData=function(element)
{var parent=null;if(element){parent=element;}else{parent=document;}
dfxjQuery(':input',parent).each(function(){var type=this.type;var tag=this.tagName.toLowerCase();if(type==='text'||type==='password'||tag==='textarea'){this.value="";}
if(type==='checkbox'||type==='radio'){this.checked=false;}
if(tag==='select'){this.selectedIndex=-1;}});};dfx.cloneNode=function(elems,cloneEvents)
{if(cloneEvents===undefined){cloneEvents=true;}
return dfxjQuery(elems).clone(cloneEvents);};dfx.attr=function(elements,key,val)
{return dfxjQuery(elements).attr(key,val);};dfx.removeAttr=function(elements,name)
{dfxjQuery(elements).removeAttr(name);};dfx.getElementsBetween=function(fromElem,toElem)
{var elements=[];if(!fromElem||!toElem){return elements;}
if(fromElem===toElem){return elements;}
if(dfx.isChildOf(toElem,fromElem)===true){var fElemLen=fromElem.childNodes.length;for(var i=0;i<fElemLen;i++){if(fromElem.childNodes[i]===toElem){break;}else if(dfx.isChildOf(toElem,fromElem.childNodes[i])===true){return dfx.arrayMerge(elements,dfx.getElementsBetween(fromElem.childNodes[i],toElem));}else{elements.push(fromElem.childNodes[i]);}}
return elements;}
var startEl=fromElem.nextSibling;while(startEl){if(dfx.isChildOf(toElem,startEl)===true){elements=dfx.arrayMerge(elements,dfx.getElementsBetween(startEl,toElem));return elements;}else if(startEl===toElem){return elements;}else{elements.push(startEl);startEl=startEl.nextSibling;}}
var fromParents=dfx.getParents(fromElem);var toParents=dfx.getParents(toElem);var parentElems=dfx.arrayDiff(fromParents,toParents,true);var pElemLen=parentElems.length;for(var j=0;j<(pElemLen-1);j++){elements=dfx.arrayMerge(elements,dfx.getSiblings(parentElems[j],'next'));}
var lastParent=parentElems[(parentElems.length-1)];elements=dfx.arrayMerge(elements,dfx.getElementsBetween(lastParent,toElem));return elements;};dfx.getCommonAncestor=function(a,b)
{var node=a;while(node){if(dfx.isChildOf(b,node)===true){return node;}
node=node.parentNode;}
return null;};dfx.getNextNode=function(node)
{if(node.nextSibling){return node.nextSibling;}else if(node.parentNode){return dfx.getFirstChild(node.parentNode);}
return null;};dfx.getPrevNode=function(node)
{if(node.previousSibling){return node.previousSibling;}else if(node.parentNode){return dfx.getLastChild(node.parentNode);}
return null;};dfx.getFirstChild=function(node)
{if(node.firstChild){if(node.firstChild.nodeType===dfx.ELEMENT_NODE){return dfx.getFirstChild(node.firstChild);}else{return node.firstChild;}}
return node;};dfx.getLastChild=function(node)
{if(node.lastChild){if(node.lastChild.nodeType===dfx.ELEMENT_NODE){return dfx.getLastChild(node.lastChild);}else{return node.lastChild;}}
return node;};dfx.removeEmptyNodes=function(parent,callback)
{var elems=dfxjQuery(parent).find(':empty');var i=elems.length;while(i>0){i--;if(dfx.isStubElement(elems[i])===false){if(!callback||callback.call(this,elems[i])!==false){dfx.remove(elems[i]);}}}};dfx.find=function(parent,exp)
{return dfxjQuery(parent).find(exp);};dfx.getTextNodes=function(parent,removeEmpty)
{var nodes=[];if(parent&&parent.childNodes){var ln=parent.childNodes.length;for(var i=0;i<ln;i++){var child=parent.childNodes[i];if(child.nodeType===dfx.TEXT_NODE){if(removeEmpty===true&&/^\s*$/.test(child.data)===true){dfx.remove(child);}else{nodes.push(child);}}else if(child.childNodes&&child.childNodes.length>0){nodes=nodes.concat(dfx.getTextNodes(child));}}}
return nodes;};dfx.isTag=function(node,tag)
{if(node&&node.tagName&&node.tagName.toLowerCase()===tag.toLowerCase()){return true;}
return false;};dfx.getTagName=function(node)
{if(node&&node.tagName){return node.tagName.toLowerCase();}
return null;};dfx.getFirstBlockParent=function(elem,stopEl)
{while(elem.parentNode){elem=elem.parentNode;if(stopEl&&elem===stopEl){return null;}
if(dfx.isBlockElement(elem)===true){return elem;}}
return null;};dfx.walk=function(elem,callback,lvl)
{if(!elem){return;}
if(!lvl){lvl=0;}
var retVal=callback.call(this,elem,lvl);if(retVal===false){return;}
if(elem.childNodes&&elem.childNodes.length>0){dfx.walk(elem.firstChild,callback,(lvl+1));}else if(elem.nextSibling){dfx.walk(elem.nextSibling,callback,lvl);}else if(elem.parentNode&&elem.parentNode.nextSibling){dfx.walk(elem.parentNode.nextSibling,callback,(lvl-1));}};dfx.revWalk=function(elem,callback)
{if(!elem){return;}
var retVal=callback.call(this,elem);if(retVal===false){return;}
if(elem.childNodes&&elem.childNodes.length>0){dfx.walk(elem.lastChild,callback);}else if(elem.previousSibling){dfx.walk(elem.previousSibling,callback);}else if(elem.parentNode&&elem.parentNode.previousSibling){dfx.walk(elem.parentNode.previousSibling,callback);}};dfx.setUnselectable=function(elem,selectable)
{if(elem){if(selectable===true){elem.unselectable='on';dfx.setStyle(elem,'-moz-user-select','none');dfx.setStyle(elem,'cursor','default');}else{elem.unselectable='off';dfx.setStyle(elem,'-moz-user-select','normal');dfx.setStyle(elem,'cursor','auto');}}};dfx.noDocWriteAllowed=function(){};if(!window.dfx){window.dfx=function(){};}
dfx.move=function(elements,left,top,duration,callback,easing)
{var opts={};if(left!==null){opts.left=left;}
if(top!==null){opts.top=top;}
dfxjQuery(elements).animate(opts,duration,easing,callback);};dfx.animate=function(elements,params,duration,callback,easing)
{dfxjQuery(elements).animate(params,duration,easing,callback);};dfx.fadeIn=function(elements,speed,callback)
{dfxjQuery(elements).fadeIn(speed,callback);};dfx.fadeOut=function(elements,speed,callback)
{dfxjQuery(elements).fadeOut(speed,callback);};dfx.blindDown=function(elements,speed,callback)
{dfxjQuery(elements).slideDown(speed,callback);};dfx.blindUp=function(elements,speed,callback)
{dfxjQuery(elements).slideUp(speed,callback);};dfx.blindToggle=function(elements,speed,callback)
{dfxjQuery(elements).slideToggle(speed,callback);};dfx.bounce=function(element,times,height,callback)
{if(times>0){var coords=dfx.getElementCoords(element);dfx.move(element,null,(coords.y-height),400,function(){dfx.move(element,null,coords.y,400,function(){if(times>0){dfx.bounce(element,(times-1),height,callback);}else if(callback){callback.call(this);}});});}else if(callback){callback.call(this);}};dfx.stop=function(elements)
{dfxjQuery(elements).stop();};if(!window.dfx){window.dfx=function(){};}
dfx.DOM_VK_DELETE=8;dfx.DOM_VK_LEFT=37;dfx.DOM_VK_UP=38;dfx.DOM_VK_RIGHT=39;dfx.DOM_VK_DOWN=40;dfx.DOM_VK_ENTER=13;dfx.registeredEvents=null;dfx.startMousePositionTrack=function(callback)
{dfxjQuery(document.body).bind('mousemove',callback);};dfx.stopMousePositionTrack=function(callback)
{dfxjQuery(document.body).unbind('mousemove',callback);};dfx.addEvent=function(elements,type,callback,data)
{if(elements){if(type==='safedblclick'){dfx.safedblclick(elements,callback,data);}else if(type==='mousewheel'){dfxjQuery(elements).mousewheel(callback);}else{dfxjQuery(elements).bind(type,data,callback);}}};dfx.safedblclick=function(elements,clickCallback,dblClickCallback,data)
{var t=null;dfxjQuery(elements).bind('click',data,function(e){clearTimeout(t);t=setTimeout(function(){clickCallback.call(this,e,data);},250);});dfxjQuery(elements).bind('dblclick',data,function(e){clearTimeout(t);dblClickCallback.call(this,e,data);});};dfx.trigger=function(elements,type,data)
{if(elements){dfxjQuery(elements).trigger(type,data);}};dfx.removeEvent=function(elements,type,func)
{if(elements){dfxjQuery(elements).unbind(type,func);}};dfx.hover=function(elements,over,out)
{if(elements){dfxjQuery(elements).hover(over,out);}};dfx.toggle=function(elements,fn,fn)
{if(elements){dfxjQuery(elements).toggle(fn,fn);}};dfx.addLoadEvent=function(func)
{dfxjQuery(document).ready(func);};dfx.changeEvent=function(element,eventType,oldFunc,newFunc)
{event.removeEvent(element,eventType,oldFunc);event.addEvent(element,eventType,newFunc);};dfx.getMouseEventPosition=function(evt)
{return{x:evt.pageX,y:evt.pageY};};dfx.getMouseEventTarget=function(evt)
{var ret=null;if(evt.target){ret=evt.target;}else if(evt.srcElement){ret=evt.srcElement;}
return ret;};dfx.preventDefault=function(e)
{e.preventDefault();dfx.stopPropagation(e);};dfx.stopPropagation=function(e)
{e.stopPropagation();};dfx.getEventType=function(e)
{return e.type;};dfx.which=function(e)
{return e.which;};dfx.getKeyChar=function(e)
{return String.fromCharCode(dfx.which(e));};dfx.resizeHeight=function(element,handle,startFn,endFn,moveFn,min,max)
{var elH=dfx.getElementHeight(element);var mPosY=0;min=min||null;max=max||null;if(dfx.isFn(moveFn)===false){moveFn=function(){};}
var move=function(e){var pos=dfx.getMouseEventPosition(e);if(pos.y<mPosY){elH=(elH+(mPosY-pos.y));}else if(pos.y>mPosY){elH=(elH-(pos.y-mPosY));}
if(elH>=0&&(min===null||elH>=min)&&(max===null||elH<=max)){element.style.height=elH+'px';var info={prevPosY:mPosY,newPosY:pos.y,height:elH};moveFn.call(this,info);}
mPosY=pos.y;};dfx.addEvent(handle,'mousedown.drag',function(e){elH=dfx.getElementHeight(element);mPosY=0;if(dfx.isFn(startFn)===true){startFn.call(this);}
mPosY=dfx.getMouseEventPosition(e).y;dfx.addEvent(document,'mousemove.drag',function(e){move(e);});dfx.addEvent(document,'mouseup.drag',function(){dfx.removeEvent(document,'mousemove.drag');dfx.removeEvent(document,'mouseup.drag');if(dfx.isFn(endFn)===true){endFn.call(this);}});});};dfx.drag=function(element,options,startFn,endFn,dragFn)
{var offset=0;var maxRight=0;var maxLeft=0;var elemWidth=dfx.getElementWidth(element);if(options){if(options.maxLeft){maxLeft=options.maxLeft;}}
var drag=function(e){var pos=(dfx.getMouseEventPosition(e).x+offset);if(pos<maxLeft){pos=maxLeft;}
if(maxRight!==0&&pos>maxRight){pos=maxRight;}
if(pos>=0){var finalPos=pos;if(options){if(options.offset){finalPos=(pos-options.offset);}}
dfx.setStyle(element,'left',finalPos+'px');if(dragFn){dragFn.call(this,finalPos,maxRight);}}};dfx.addEvent(element,'mousedown.drag',function(e){if(dfx.isFn(startFn)===true){startFn.call(this);}
var elemX=dfx.getElementCoords(element).x;var mPosX=dfx.getMouseEventPosition(e).x;offset=(elemX-mPosX);maxRight=(dfx.getWindowDimensions().width-elemWidth);if(options){if(options.maxRight){maxRight=options.maxRight;}}
dfx.addEvent(document,'mousemove.drag',function(e){drag(e);});dfx.addEvent(document,'mouseup.drag',function(){dfx.removeEvent(document,'mousemove.drag');dfx.removeEvent(document,'mouseup.drag');if(dfx.isFn(endFn)===true){endFn.call(this,maxRight);}});});};if(!window.dfx){window.dfx=function(){};}
dfx.inherits=function(child,parent,noWidgetType)
{if(parent==='Widget'){parent='AbstractWidget';}
var parentObj=null;if(noWidgetType){parentObj=window[parent];}else{parentObj=window[parent+'WidgetType'];}
if(parentObj){dfx.noInclusionInherits(child,parent,noWidgetType);}else{Widget.prototype.includeWidget(parent,function(){dfx.noInclusionInherits(child,parent,noWidgetType);});}};dfx.noInclusionInherits=function(child,parent,noWidgetType)
{if(parent instanceof String||typeof parent==='string'){if(noWidgetType){parent=window[parent];}else{parent=window[parent+'WidgetType'];}}
if(child instanceof String||typeof child==='string'){if(noWidgetType){child=window[child];}else{child=window[child+'WidgetType'];}}
var above=function(){};if(dfx.isset(parent)===true){for(value in parent.prototype){if(child.prototype[value]){above.prototype[value]=parent.prototype[value];continue;}
child.prototype[value]=parent.prototype[value];}}
if(child.prototype){above.prototype.constructor=parent;child.prototype['super']=new above();}};if(!window.dfx){window.dfx=function(){};}
if(!this.JSON){JSON={};}
(function(){function f(n){return n<10?'0'+n:n;}
if(typeof Date.prototype.toJSON!=='function'){Date.prototype.toJSON=function(key){return this.getUTCFullYear()+'-'+
f(this.getUTCMonth()+1)+'-'+
f(this.getUTCDate())+'T'+
f(this.getUTCHours())+':'+
f(this.getUTCMinutes())+':'+
f(this.getUTCSeconds())+'Z';};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf();};}
var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];if(typeof c==='string'){return c;}
return'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4);})+'"':'"'+string+'"';}
function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==='object'&&typeof value.toJSON==='function'){value=value.toJSON(key);}
if(typeof rep==='function'){value=rep.call(holder,key,value);}
switch(typeof value){case'string':return quote(value);case'number':return isFinite(value)?String(value):'null';case'boolean':case'null':return String(value);case'object':if(!value){return'null';}
gap+=indent;partial=[];if(typeof value.length==='number'&&!value.propertyIsEnumerable('length')){length=value.length;for(i=0;i<length;i+=1){partial[i]=str(i,value)||'null';}
v=partial.length===0?'[]':gap?'[\n'+gap+
partial.join(',\n'+gap)+'\n'+
mind+']':'['+partial.join(',')+']';gap=mind;return v;}
if(rep&&typeof rep==='object'){length=rep.length;for(i=0;i<length;i+=1){k=rep[i];if(typeof k==='string'){v=str(k,value);if(v){partial.push(quote(k)+(gap?': ':':')+v);}}}}else{for(k in value){if(Object.hasOwnProperty.call(value,k)){v=str(k,value);if(v){partial.push(quote(k)+(gap?': ':':')+v);}}}}
v=partial.length===0?'{}':gap?'{\n'+gap+partial.join(',\n'+gap)+'\n'+
mind+'}':'{'+partial.join(',')+'}';gap=mind;return v;}}
if(typeof JSON.stringify!=='function'){JSON.stringify=function(value,replacer,space){var i;gap='';indent='';if(typeof space==='number'){for(i=0;i<space;i+=1){indent+=' ';}}else if(typeof space==='string'){indent=space;}
rep=replacer;if(replacer&&typeof replacer!=='function'&&(typeof replacer!=='object'||typeof replacer.length!=='number')){throw new Error('JSON.stringify');}
return str('',{'':value});};}
if(typeof JSON.parse!=='function'){JSON.parse=function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==='object'){for(k in value){if(Object.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v;}else{delete value[k];}}}}
return reviver.call(holder,key,value);}
cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return'\\u'+
('0000'+a.charCodeAt(0).toString(16)).slice(-4);});}
if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,''))){j=eval('('+text+')');return typeof reviver==='function'?walk({'':j},''):j;}
throw new SyntaxError('JSON.parse');};}})();dfx.jsonDecode=function(variable,filter)
{return JSON.parse(variable,filter);};dfx.jsonEncode=function(variable)
{return JSON.stringify(variable);};dfx.jsonDecode=function(variable,filter)
{return JSON.parse(variable,filter);};dfx.jsonEncode=function(variable)
{return JSON.stringify(variable);};if(!window.dfx){window.dfx=function(){};}
var Util={};Util.ObjectHash=function()
{this.objects=[];this.values=[];};Util.ObjectHash.prototype.getObjectIndex=function(object)
{var oln=this.objects.length;for(var i=0;i<oln;i++){if(this.objects[i]===object){return i;}}
return-1;};Util.ObjectHash.prototype.put=function(object,value)
{var index=this.getObjectIndex(object);if(index!==-1){this.values[index]=value;}else{this.objects.push(object);this.values.push(value);}};Util.ObjectHash.prototype.get=function(object)
{var index=this.getObjectIndex(object);if(index!==-1){return this.values[index];}
return null;};Util.ObjectHash.prototype.containsKey=function(object)
{return(this.getObjectIndex(object)!=-1);};Util.ObjectHash.prototype.replace=function(object,value)
{var index=this.getObjectIndex(object);if(index!==-1){this.values[index]=value;}};Util.Xml=function(xml)
{this.xml=xml;};Util.Xml.prototype.parse=function()
{var xml=this.xml;var doc=null;if(window.ActiveXObject){doc=new ActiveXObject("Microsoft.XMLDOM");doc.async="false";doc.loadXML(xml);}else{var parser=new DOMParser();doc=parser.parseFromString(xml,"text/xml");}
return doc;};Util.Xml.getElementById=function(id,parent)
{if(parent){if(parent.getElementById){return parent.getElementById(id);}
var pcln=parent.childNodes.length;for(var i=0;i<pcln;i++){if(parent.childNodes[i].getAttribute('id')===id){return parent.childNodes[i];}else{if(parent.childNodes[i].childNodes.length>0){var el=this.getElementById(id,parent.childNodes[i]);if(el&&el.getAttribute('id')===id){return el;}}}}}
return null;};dfx.ltrim=function(str,trimChars)
{trimChars=trimChars||'\\s';return str.replace(new RegExp('^['+trimChars+']+','g'),'');}
dfx.rtrim=function(str,trimChars)
{trimChars=trimChars||'\\s';return str.replace(new RegExp('['+trimChars+']+$','g'),'');}
dfx.trim=function(value,trimChars)
{return dfx.ltrim(dfx.rtrim(value,trimChars),trimChars);};dfx.isBlank=function(value)
{if(!value||/^\s*$/.test(value)){return true;}
return false;};dfx.ellipsize=function(value,length)
{if(typeof value!=='string'||typeof length!=='number'){return'';}
if(length<0){return'';}
if(value.length<=length){return value;}
value=value.substr(0,length);value=value.replace(/\s$/,'');var end=value.substr((length-3),3);var endNoDots=end.replace(/\.$/,'');var numDots=(end.length-endNoDots.length);value=value+dfx.strRepeat('.',(3-numDots));return value;};dfx.ellipsizeDom=function(elem,length)
{var browserInfo=dfx.browser();if(browserInfo.type==='msie'){dfx.setStyle(elem,'text-overflow','ellipsis');dfx.setStyle(elem,'white-space','nowrap');dfx.setStyle(elem,'width',length+'px');}else{dfx.setStyle(elem,'visibility','hidden');var currWidth=dfx.getStyle(elem,'width');currWidth=parseInt(currWidth.substr(0,(currWidth.length-2)),10);if(currWidth>length){var oriName=dfx.getHtml(elem);var tmpName=oriName;while(currWidth>length){tmpName=tmpName.substring(0,(tmpName.length-1));dfx.setHtml(elem,tmpName);currWidth=dfx.getStyle(elem,'width');currWidth=parseInt(currWidth.substr(0,(currWidth.length-2)),10);}
var ellipsisLen=tmpName.length+1;oriName=dfx.ellipsize(oriName,(ellipsisLen-4));dfx.setHtml(elem,oriName);}
dfx.setStyle(elem,'visibility','visible');}};dfx.ucFirst=function(str)
{return str.substr(0,1).toUpperCase()+str.substr(1,str.length);};dfx.ucWords=function(str)
{return str.toLowerCase().replace(/\w+/g,function(s){return s.charAt(0).toUpperCase()+s.substr(1);});};dfx.isFn=function(f)
{if(typeof f==='function'){return true;}
return false;};dfx.isObj=function(v)
{if(v!==null&&typeof v==='object'){return true;}
return false;};dfx.isset=function(v)
{if(typeof v!=='undefined'&&v!==null){return true;}
return false;};dfx.isNumeric=function(str)
{var result=str.match(/^[-+]?[ ]?\d+\.?\d*$/);if(result!==null){return true;}
return false;};dfx.clone=function(value,shallow)
{if(typeof value!=='object'){return value;}
if(value===null){var valueClone=null;}else{var valueClone=new value.constructor();for(var property in value){if(shallow){valueClone[property]=value[property];}
if(value[property]===null){valueClone[property]=null;}else if(typeof value[property]==='object'){valueClone[property]=dfx.clone(value[property],shallow);}else{valueClone[property]=value[property];}}}
return valueClone;};dfx.objDiff=function(obj1,obj2)
{var count1=0;var count2=0;for(var p in obj1){count1++;}
for(var q in obj2){count2++;}
if(count1!==count2){return true;}
for(var p in obj1){if(obj2.hasOwnProperty(p)===false){return true;}
if(typeof obj1[p]==='object'){if(dfx.objDiff(obj1[p],obj2[p])){return true;}}else{if(obj1[p]!==obj2[p]){return true;}}}
return false;};dfx.stripUrlProtcol=function(url)
{var pStartIdx=url.search(/:\/\//);if(pStartIdx===-1){return url;}else{pStartIdx+=3;var protocolStrippedUrl=url.substr(pStartIdx);return protocolStrippedUrl;}};dfx.baseUrl=function(fullUrl)
{var qStartIdx=fullUrl.search(/\?|#/);if(qStartIdx===-1){return fullUrl;}else{var baseUrl=fullUrl.substr(0,qStartIdx);return baseUrl;}};dfx.getUrlPath=function(fullUrl)
{var protocolStrippedUrl=dfx.stripUrlProtcol(fullUrl);var protocolFreeBaseUrl=dfx.baseUrl(protocolStrippedUrl);var pStartIdx=protocolFreeBaseUrl.search(/\//);if(pStartIdx===-1){return'';}else{pStartIdx+=1;var path=protocolFreeBaseUrl.substr(pStartIdx);return path;}};dfx.queryString=function(url)
{var result={};var qStartIdx=url.search(/\?/);if(qStartIdx===-1){return result;}else{var aStartIdx=url.search(/\#/);if(aStartIdx===-1){var anchorPartAdj=0;}else{var anchorPartAdj=(url.length-aStartIdx+1);}
var queryStr=url.substr((qStartIdx+1),(url.length-qStartIdx-anchorPartAdj));if(queryStr.length>0){var pairs=queryStr.split('&');var len=pairs.length;var pair=[];for(var i=0;i<len;i++){if(pairs[i].search('=')!==-1){pair=pairs[i].split('=');result[pair[0]]=pair[1];}}
return result;}else{return result;}}};dfx.anchorPart=function(url)
{if(typeof url==='string'){var aStartIdx=url.search(/\#/);if(aStartIdx===-1){url='';}else{url=url.substr(aStartIdx,(url.length-aStartIdx));}}
return url;};dfx.noAnchorPartUrl=function(url)
{if(typeof url==='string'){var aStartIdx=url.search(/\#/);if(aStartIdx!==-1){var url=url.substr(0,aStartIdx);}}
return url;};dfx.addToQueryString=function(url,addQueries)
{var mergedUrl='';var baseUrl=dfx.baseUrl(url);var queryStringArray=dfx.queryString(url);mergedQry=dfx.objectMerge(queryStringArray,addQueries);var queryStr='?';dfx.foreach(mergedQry,function(key){queryStr=queryStr+key+'='+mergedQry[key]+'&';});if(queryStr.length>1){mergedUrl=baseUrl+queryStr.substr(0,(queryStr.length-1));}else{mergedUrl=url;}
var anchorPartURL=dfx.anchorPart(url);if(anchorPartURL.length>0){mergedUrl=mergedUrl+anchorPartURL;}
return mergedUrl;};dfx.removeFromQueryString=function(url,idenifier)
{if(url==undefined){url='';}
if(idenifier==undefined){idenifier='';}
var trimmedUrl=url.replace(new RegExp('&*'+idenifier+'=[^&\\s\#]*','g'),'');trimmedUrl=trimmedUrl.replace(/^[?&]+|[?&]+$/g,'');trimmedUrl=trimmedUrl.replace(/\?&/g,'?');trimmedUrl=trimmedUrl.replace(/\?\#/g,'\#');return trimmedUrl;};dfx.addToPath=function(url,addPath)
{addPath=dfx.trim(addPath,'/');if(addPath.length>0){var mergedUrl='';var baseUrl=dfx.baseUrl(url);var queryStringArray=dfx.queryString(url);var anchorPartURL=dfx.anchorPart(url);baseUrl=dfx.rtrim(baseUrl,'/');mergedUrl=baseUrl+'/'+addPath;if(!dfx.isEmpty(queryStringArray)){mergedUrl+='?';dfx.foreach(queryStringArray,function(key){mergedUrl+=key+'='+queryStringArray[key]+'&';});mergedUrl=mergedUrl.substr(0,(mergedUrl.length-1));}
if(anchorPartURL.length>0){mergedUrl+=anchorPartURL;}}else{var mergedUrl=url;}
return mergedUrl;};dfx.getFileInputName=function(fileFieldValue)
{var filename='';if(fileFieldValue.indexOf('\\')>-1){filename=fileFieldValue.substring(fileFieldValue.lastIndexOf('\\')+1,fileFieldValue.length);}
if(fileFieldValue.indexOf('/')>-1){filename=fileFieldValue.substring(fileFieldValue.lastIndexOf('/')+1,fileFieldValue.length);}
if(filename===''){return fileFieldValue;}
return filename;};dfx.getUniqueId=function()
{var timestamp=(new Date()).getTime();var random=Math.ceil(Math.random()*1000000);var id=timestamp+''+random;return id.substr(5,18);};dfx.objectMerge=function(ob1,ob2)
{dfx.foreach(ob2,function(key){ob1[key]=ob2[key];return true;});return ob1;};dfx.convertSpaces=function(elem,options)
{options=options||{};if(dfx.isset(options.newLines)===false){options.newLines=true;}
if(dfx.isset(options.tabs)===false){options.tabs=true;}
var count=elem.childNodes.length;var c=String.fromCharCode(160);var content=null;for(var i=0;i<count;i++){var child=elem.childNodes[i];content=null;if(child.nodeType===dfx.TEXT_NODE){content=child.data;}
if(content!==null){var rep='';content=content.replace(/\r/g,rep);if(options.newLines===false){rep='';}else{rep='<br />';}
content=content.replace(/\n/g,rep);if(options.tabs===false){rep='';}else{rep=c+c+c+c;}
content=content.replace(/\t/g,rep);if(child.data){child.data=content;}}
if(child.childNodes&&child.childNodes.length>0){dfx.convertSpaces(child,options);}}};dfx.stripTags=function(content,allowedTags)
{var match;var re=new RegExp(/<\/?(\w+)((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)\/?>/gim);var resCont=content;while((match=re.exec(content))!=null){if(dfx.isset(allowedTags)===false||dfx.inArray(match[1],allowedTags)!==true){resCont=resCont.replace(match[0],'');}}
return resCont;};dfx.getImage=function(url,callback)
{var img=new Image();img.onload=function(){callback.call(this,img);};img.onerror=function(){callback.call(this,false);};img.src=url;};dfx.resizeImage=function(img,size,sizesOnly)
{var h=dfx.attr(img,'height');var w=dfx.attr(img,'width');var max=null;if((size instanceof Object)===true){max=dfx.clone(size);}else{max={height:size,width:size};}
if(h===w){var min=Math.min(max.width,max.height);h=min;w=min;}else{if(w>=max.width||h>=max.height){if(w>=max.width){h=(h*(max.width/w));w=max.width;}
if(h>=max.height){w=(w*(max.height/h));h=max.height;}}else{if(w>h){h=(h*(max.width/w));w=max.width;}else if(h>w){w=(w*(max.height/h));h=max.height;}}}
h=Math.round(h);w=Math.round(w);if(sizesOnly===true){var result={height:h,width:w};return result;}else{dfx.attr(img,'height',h);dfx.attr(img,'width',w);return img;}};dfx.strRepeat=function(str,multiplier)
{var rstr='';for(var i=0;i<multiplier;i++){rstr+=str;}
return rstr;};dfx.browser=function()
{var result={};result.version=dfxjQuery.browser.version;if(dfxjQuery.browser.mozilla===true){result.type='mozilla';}else if(dfxjQuery.browser.msie===true){result.type='msie';}else if(dfxjQuery.browser.opera===true){result.type='opera';}else if(dfxjQuery.browser.safari===true){result.type='safari';}
return result;};dfx.getElemPositionStyles=function(elem,orientation)
{var h=dfx.getElementHeight(elem);var w=dfx.getElementWidth(elem);var res={};orientation=orientation||Widget.CENTER;switch(orientation){case Widget.CENTER:res={'margin-top':((h/2)*(-1))+'px','top':'50%','margin-left':((w/2)*(-1))+'px','left':'50%'};break;case Widget.TOP:res={'margin-top':(h*(-1))+'px','top':'0px','margin-left':((w/2)*(-1))+'px','left':'50%'};break;case Widget.BOTTOM:res={'margin-top':(h*(-1))+'px','top':'100%','margin-left':((w/2)*(-1))+'px','left':'50%'};break;case Widget.LEFT:res={'margin-top':((h/2)*(-1))+'px','top':'50%','left':'0px'};break;case Widget.RIGHT:res={'margin-top':((h/2)*(-1))+'px','top':'50%','margin-left':(w*(-1))+'px','left':'100%'};break;default:break;}
return res;};dfx.htmlspecialchars=function(str)
{str=str.replace(/&/g,'&amp;');str=str.replace(/"/g,'&quot;');str=str.replace(/'/g,'&#039;');str=str.replace(/</g,'&lt;');str=str.replace(/>/g,'&gt;');return str;};dfx.readableSize=function(size,unit)
{var units=['B','kB','MB','GB'];var maxUnit=(units.length-1);if(unit){var index=units.find(unit);if(index<0){unit=null;}}
if(unit<0){unit=2;}
var factor=0;while(unit!==factor&&size>=1000&&factor<maxUnit){size=(size/1000);factor++;}
var readable=size.toFixed(2)+units[factor];return readable;};dfx.displayThumbViewer=function(thumb,evt,targetWidget)
{var intervalid=null;var thumbViewer=dfx.getId('SplashScreenThumbViewer');if(thumbViewer===null){thumbViewer=dfx.createThumbViewer(thumb,evt);dfx.hideElement(thumbViewer);document.body.appendChild(thumbViewer);}
var oriImage=dfx.getMouseEventTarget(evt);dfx.getId('SplashScreenThumbViewer-img').setAttribute('src',oriImage.getAttribute('src'));dfx.setThumbViewerText(thumb,evt,function(){var thumbWidth=54;var thumbHeight=79;var viewerWidth=236;var viewerHeight=193;var target=dfx.getMouseEventTarget(evt);var coords=dfx.getElementCoords(target);var left=(coords.x-(viewerWidth-thumbHeight));var top=(coords.y-(viewerHeight-thumbWidth));var scrollY=dfx.getScrollCoords().y;if(scrollY>0){top-=scrollY;}
dfx.setStyle(thumbViewer,'left',left);dfx.setStyle(thumbViewer,'top',top);dfx.showElement(thumbViewer);targetWidget.thumbDisplayed=true;var setMousePos=function(e){var scrY=dfx.getScrollCoords().y;var pageX=e.pageX;var pageY=(e.pageY-scrY);if((pageX<left||pageX>(left+viewerWidth))||(pageY<top||pageY>(top+viewerHeight))){dfx.hideElement(dfx.getId('SplashScreenThumbViewer'));clearInterval(intervalid);dfx.stopMousePositionTrack(setMousePos);}};dfx.startMousePositionTrack(setMousePos);});};dfx.createThumbViewer=function(thumb,evt)
{var thumbWrapper=document.createElement('div');thumbWrapper.id='SplashScreenThumbViewer';thumbWrapper.className='SplashScreenThumbViewerWrapper';var imageHolder=document.createElement('div');imageHolder.className='SplashScreenThumbViewerImageHolder';var description=document.createElement('div');description.id='SplashScreenThumbViewer-desc';description.className='SplashScreenThumbViewerDescription';var oriImage=dfx.getMouseEventTarget(evt);var image=document.createElement('img');image.id='SplashScreenThumbViewer-img';image.src=oriImage.getAttribute('src');imageHolder.appendChild(image);thumbWrapper.appendChild(imageHolder);thumbWrapper.appendChild(description);return thumbWrapper;};dfx.setThumbViewerText=function(thumb,evt,callback)
{var oriImage=dfx.getMouseEventTarget(evt);var assetid=oriImage.getAttribute('assetid');var version=oriImage.getAttribute('version');if(version==='0'){AssetManager.getAsset(assetid,function(asset){dfx.getId('SplashScreenThumbViewer-desc').innerHTML=asset.name;callback();},true,{attributes:['name'],type:false,typeIcon:false,linking:[],urls:false});}else{dfx.getId('SplashScreenThumbViewer-desc').innerHTML='Version '+version;callback();}};dfx.preloadStylesheetImages=function(prefix,defaultBaseUrl)
{prefix=prefix||[];defaultBaseUrl=defaultBaseUrl||'/';var styleSheets=document.styleSheets;var sln=styleSheets.length;for(var i=0;i<sln;i++){var baseUrl='';var contents='';if(styleSheets[i].href){baseUrl=styleSheets[i].href.substring(0,styleSheets[i].href.lastIndexOf('/'));}
if(baseUrl!==''){baseUrl+='/';}else{baseUrl=defaultBaseUrl;}
if(styleSheets[i].cssRules){var sheetRules=styleSheets[i].cssRules;var rln=sheetRules.length;for(var j=0;j<rln;j++){contents+=sheetRules[j].cssText;}}else{contents+=styleSheets[i].cssText;}
var re='('+prefix.join('|')+')[^\(]+\.(gif|jpg|png)';var regExp=new RegExp(re,'g');var imgUrls=contents.match(regExp);if(imgUrls!==null&&imgUrls.length>0){dfx.foreach(imgUrls,function(key){var img=new Image();img.src=baseUrl+imgUrls[key];});}}};dfx.getFileExtension=function(filename)
{var parts=filename.split('.');if(parts.length===1){return'';}
var ext=parts[(parts.length-1)].toLowerCase();return ext;};dfx.entitiesArray={160:'&nbsp;',161:'&iexcl;',162:'&cent;',163:'&pound;',164:'&curren;',165:'&yen;',166:'&brvbar;',167:'&sect;',168:'&uml;',169:'&copy;',170:'&ordf;',171:'&laquo;',172:'&not;',173:'&shy;',174:'&reg;',175:'&macr;',176:'&deg;',177:'&plusmn;',178:'&sup2;',179:'&sup3;',180:'&acute;',181:'&micro;',182:'&para;',183:'&middot;',184:'&cedil;',185:'&sup1;',186:'&ordm;',187:'&raquo;',188:'&frac14;',189:'&frac12;',190:'&frac34;',191:'&iquest;',192:'&Agrave;',193:'&Aacute;',194:'&Acirc;',195:'&Atilde;',196:'&Auml;',197:'&Aring;',198:'&AElig;',199:'&Ccedil;',200:'&Egrave;',201:'&Eacute;',202:'&Ecirc;',203:'&Euml;',204:'&Igrave;',205:'&Iacute;',206:'&Icirc;',207:'&Iuml;',208:'&ETH;',209:'&Ntilde;',210:'&Ograve;',211:'&Oacute;',212:'&Ocirc;',213:'&Otilde;',214:'&Ouml;',215:'&times;',216:'&Oslash;',217:'&Ugrave;',218:'&Uacute;',219:'&Ucirc;',220:'&Uuml;',221:'&Yacute;',222:'&THORN;',223:'&szlig;',224:'&agrave;',225:'&aacute;',226:'&acirc;',227:'&atilde;',228:'&auml;',229:'&aring;',230:'&aelig;',231:'&ccedil;',232:'&egrave;',233:'&eacute;',234:'&ecirc;',235:'&euml;',236:'&igrave;',237:'&iacute;',238:'&icirc;',239:'&iuml;',240:'&eth;',241:'&ntilde;',242:'&ograve;',243:'&oacute;',244:'&ocirc;',245:'&otilde;',246:'&ouml;',247:'&divide;',248:'&oslash;',249:'&ugrave;',250:'&uacute;',251:'&ucirc;',252:'&uuml;',253:'&yacute;',254:'&thorn;',255:'&yuml;',402:'&fnof;',913:'&Alpha;',914:'&Beta;',915:'&Gamma;',916:'&Delta;',917:'&Epsilon;',918:'&Zeta;',919:'&Eta;',920:'&Theta;',921:'&Iota;',922:'&Kappa;',923:'&Lambda;',924:'&Mu;',925:'&Nu;',926:'&Xi;',927:'&Omicron;',928:'&Pi;',929:'&Rho;',931:'&Sigma;',932:'&Tau;',933:'&Upsilon;',934:'&Phi;',935:'&Chi;',936:'&Psi;',937:'&Omega;',945:'&alpha;',946:'&beta;',947:'&gamma;',948:'&delta;',949:'&epsilon;',950:'&zeta;',951:'&eta;',952:'&theta;',953:'&iota;',954:'&kappa;',955:'&lambda;',956:'&mu;',957:'&nu;',958:'&xi;',959:'&omicron;',960:'&pi;',961:'&rho;',962:'&sigmaf;',963:'&sigma;',964:'&tau;',965:'&upsilon;',966:'&phi;',967:'&chi;',968:'&psi;',969:'&omega;',977:'&thetasym;',978:'&upsih;',982:'&piv;',8226:'&bull;',8230:'&hellip;',8242:'&prime;',8243:'&Prime;',8254:'&oline;',8260:'&frasl;',8472:'&weierp;',8465:'&image;',8476:'&real;',8482:'&trade;',8501:'&alefsym;',8592:'&larr;',8593:'&uarr;',8594:'&rarr;',8595:'&darr;',8596:'&harr;',8629:'&crarr;',8656:'&lArr;',8657:'&uArr;',8658:'&rArr;',8659:'&dArr;',8660:'&hArr;',8704:'&forall;',8706:'&part;',8707:'&exist;',8709:'&empty;',8711:'&nabla;',8712:'&isin;',8713:'&notin;',8715:'&ni;',8719:'&prod;',8721:'&sum;',8722:'&minus;',8727:'&lowast;',8730:'&radic;',8733:'&prop;',8734:'&infin;',8736:'&ang;',8743:'&and;',8744:'&or;',8745:'&cap;',8746:'&cup;',8747:'&int;',8756:'&there4;',8764:'&sim;',8773:'&cong;',8776:'&asymp;',8800:'&ne;',8801:'&equiv;',8804:'&le;',8805:'&ge;',8834:'&sub;',8835:'&sup;',8836:'&nsub;',8838:'&sube;',8839:'&supe;',8853:'&oplus;',8855:'&otimes;',8869:'&perp;',8901:'&sdot;',8968:'&lceil;',8969:'&rceil;',8970:'&lfloor;',8971:'&rfloor;',9001:'&lang;',9002:'&rang;',9674:'&loz;',9824:'&spades;',9827:'&clubs;',9829:'&hearts;',9830:'&diams;'};dfx.fixHtml=function(html)
{var newHtml='';var ln=html.length;for(i=0;i<ln;i++){code=html.charCodeAt(i);if(code>127){entity=dfx.entitiesArray[code];if(entity){newHtml+=entity;}else{newHtml+='&#'+code+';';}}else{newHtml+=html.charAt(i);}}
return newHtml;};dfx.addAutoComplete=function(element,tags,callback,clearValue,customClass)
{if(!element||!tags){return;}
var anyCharMode=false;if(tags instanceof Array){if(tags.length===0){return;}
tags={'.':tags};anyCharMode=true;}
dfx.attr(element,'autocomplete','off');var lists={};var currTag=null;var insertText=function(hElem){var html=dfx.getHtml(hElem);var appendToField=true;if(callback){appendToField=callback.call(this,html);}
if(appendToField===true){var rstr='';if(anyCharMode===true){rstr='[ ]?([\\w]*)$';currTag='';}else{rstr=' ?\\'+currTag+'[^\\'+currTag+']*$';}
if(clearValue===true){element.value='';return;}
var r=new RegExp(rstr);element.value=dfx.ltrim(element.value.replace(r,' '+currTag+html+' '));}};var regExTags=[];for(var tag in tags){if(tags.hasOwnProperty(tag)===false||tags[tag].length===0){continue;}
regExTags.push(tag);var ul=document.createElement('ul');dfx.addClass(ul,'dfxTagList');if(customClass){dfx.addClass(ul,customClass);}
var content='<li>'+tags[tag].join('</li><li>')+'</li>';dfx.setHtml(ul,content);(function(listElem){var lis=dfx.getTag('li',listElem);dfx.hover(lis,function(e){dfx.removeClass(lis,'highlight');dfx.addClass(dfx.getMouseEventTarget(e),'highlight');},function(e){dfx.removeClass(dfx.getMouseEventTarget(e),'highlight');});dfx.addEvent(lis,'click',function(e){insertText(dfx.getMouseEventTarget(e));listElem.parentNode.removeChild(listElem);element.focus();});})(ul);lists[tag]=ul;}
var rstr='';if(anyCharMode===true){rstr=' ([\\w]*)$';}else{rstr=' (\\'+regExTags.join('|\\')+')([\\w ]*)$';}
var r=new RegExp(rstr);var textSizeCalc=document.createElement('div');dfx.setStyle(textSizeCalc,'position','fixed');dfx.setStyle(textSizeCalc,'left','-1000px');dfx.setStyle(textSizeCalc,'top','-1000px');var elementWidth=parseInt(dfx.getElementWidth(element));dfx.addEvent(element,'keyup',function(e){if(e.which===16||e.which===17||e.which===18||e.which===27||e.which===13){return;}
var match=r.exec(' '+element.value);if(!match){currTag=null;dfx.foreach(lists,function(tagChar){if(lists[tagChar].parentNode){lists[tagChar].parentNode.removeChild(lists[tagChar]);}});return;}
var tagChar=null;if(anyCharMode===true){tagChar='.';}else{tagChar=match[1];}
var searchStr='';if(match[2]){searchStr=match[2].toLowerCase();}else if(anyCharMode===true){searchStr=match[1].toLowerCase();}
var found=false;for(var node=lists[tagChar].firstChild;node;node=node.nextSibling){if(searchStr===''||dfx.getHtml(node).toLowerCase().indexOf(searchStr)===0){dfx.showElement(node);found=true;}else{dfx.hideElement(node);}}
if(found===true){currTag=tagChar;if(!lists[tagChar].parentNode){dfx.removeClass(dfx.getTag('li',lists[tagChar]),'highlight');var elemPos=dfx.getBoundingRectangle(element);var offset=0;dfx.setHtml(textSizeCalc,dfx.ltrim(element.value.substr(0,((' '+element.value).search(r)+1))));document.body.appendChild(textSizeCalc);offset=dfx.getElementWidth(textSizeCalc);document.body.removeChild(textSizeCalc);if(offset>elementWidth){offset=(elementWidth-10);}else if(offset<0){offset=0;}
dfx.setStyle(lists[tagChar],'left',elemPos.x1+offset+'px');dfx.setStyle(lists[tagChar],'top',elemPos.y2+'px');document.body.appendChild(lists[tagChar]);}}else if(lists[tagChar].parentNode){currTag=null;lists[tagChar].parentNode.removeChild(lists[tagChar]);}});dfx.addEvent(element,'keydown',function(e){if(!currTag){return;}
var key=e.which;var hElem=dfx.getClass('highlight',lists[currTag])[0];if(key===40){var node=null;if(!hElem||dfx.getElementHeight(hElem)===0){node=lists[currTag].firstChild;}else{node=hElem.nextSibling;}
for(;node;node=node.nextSibling){if(dfx.getElementHeight(node)!==0){dfx.removeClass(hElem,'highlight');dfx.addClass(node,'highlight');break;}}
dfx.preventDefault(e);return false;}else if(key===38){for(var node=hElem.previousSibling;node;node=node.previousSibling){if(dfx.getElementHeight(node)!==0){dfx.removeClass(hElem,'highlight');dfx.addClass(node,'highlight');break;}}
dfx.preventDefault(e);return false;}else if(key===13){if(hElem&&dfx.getElementHeight(hElem)!==0){insertText(hElem);dfx.preventDefault(e);dfx.foreach(lists,function(tagChar){if(lists[tagChar].parentNode){lists[tagChar].parentNode.removeChild(lists[tagChar]);}});return false;}}else if(key===27){dfx.foreach(lists,function(tagChar){if(lists[tagChar].parentNode){lists[tagChar].parentNode.removeChild(lists[tagChar]);}});dfx.preventDefault(e);return false;}});dfx.addEvent(element,'blur',function(){setTimeout(function(){if(document.activeElement!==element){dfx.foreach(lists,function(tagChar){if(lists[tagChar].parentNode){lists[tagChar].parentNode.removeChild(lists[tagChar]);}});}},150);});};dfx.validateUrl=function(url,requireScheme,allowedSchemes,allowLeadingPathUnderscores,allowUpperCasePath)
{if(allowLeadingPathUnderscores!==false){allowLeadingPathUnderscores=true;}
if(allowUpperCasePath!==false){allowUpperCasePath=true;}
if(requireScheme===true){if(dfx.isEmpty(allowedSchemes)===true){return false;}else{var schemeMatch='('+dfx.arrayImplode('|',allowedSchemes)+'):\/\/';}}else{if(dfx.isEmpty(allowedSchemes)===true){var schemeMatch='';}else{var schemeMatch='(('+dfx.arrayImplode('|',allowedSchemes)+'):\/\/)?';}}
var regExStr='^'+schemeMatch;var domainMatch='[a-z0-9]+';domainMatch+='(([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,})?';var ipMatch='(?:\\d{1,3}\\.){3}\\d{1,3}';regExStr+='('+domainMatch+'|'+ipMatch+')';regExStr+='(:[0-9]{1,5})?';regExStr+='(\\?.*|\/.*|#.*)*$';var regExp=new RegExp(regExStr,'i');var matches=url.match(regExp);if(matches===null){return false;}
var urlValid=true;var urlPath=dfx.getUrlPath(url);if(urlPath!==''){var doubleSlashExp='^\/|\/\/';var regExp=new RegExp(doubleSlashExp,'i');var doubleSlashIdx=urlPath.search(regExp);if(doubleSlashIdx!==-1){return false;}
var individualPaths=urlPath.split('/');dfx.foreach(individualPaths,function(idx){var pathValid=dfx.validateSingleUrlPath(individualPaths[idx],allowLeadingPathUnderscores,allowUpperCasePath);if(pathValid===false){urlValid=false;return false;}});}
return urlValid;};dfx.validateSingleUrlPath=function(singlePath,allowLeadingUnderscores,allowUpperCasePath)
{if(allowLeadingUnderscores!==false){allowLeadingUnderscores=true;}
if(allowUpperCasePath!==false){allowUpperCasePath=true;}
if(allowUpperCasePath===false&&singlePath.toLowerCase()!==singlePath){return false;}
var regExStr='';if(allowLeadingUnderscores===false){regExStr+='^_|';}
regExStr+='[^a-z0-9\-$_@.!*~(),]';var regExp=new RegExp(regExStr,'i');var matches=singlePath.match(regExp);if(matches===null){var urlValid=true;}else{var urlValid=false;}
return urlValid;};dfx.validateEmail=function(email)
{var regExStr='^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.([a-z][a-z]+)|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$';var regExp=new RegExp(regExStr,'i');var matches=email.match(regExp);if(matches===null){var emailValid=false;}else{var emailValid=true;}
return emailValid;};if(!window.console){window.console={};window.console.log=function(){};window.console.info=function(){};}
var swfobject=function(){var UNDEF="undefined",OBJECT="object",SHOCKWAVE_FLASH="Shockwave Flash",SHOCKWAVE_FLASH_AX="ShockwaveFlash.ShockwaveFlash",FLASH_MIME_TYPE="application/x-shockwave-flash",EXPRESS_INSTALL_ID="SWFObjectExprInst",win=window,doc=document,nav=navigator,domLoadFnArr=[],regObjArr=[],objIdArr=[],listenersArr=[],script,timer=null,storedAltContent=null,storedAltContentId=null,isDomLoaded=false,isExpressInstallActive=false;var ua=function(){var w3cdom=typeof doc.getElementById!=UNDEF&&typeof doc.getElementsByTagName!=UNDEF&&typeof doc.createElement!=UNDEF,playerVersion=[0,0,0],d=null;if(typeof nav.plugins!=UNDEF&&typeof nav.plugins[SHOCKWAVE_FLASH]==OBJECT){d=nav.plugins[SHOCKWAVE_FLASH].description;if(d&&!(typeof nav.mimeTypes!=UNDEF&&nav.mimeTypes[FLASH_MIME_TYPE]&&!nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)){d=d.replace(/^.*\s+(\S+\s+\S+$)/,"$1");playerVersion[0]=parseInt(d.replace(/^(.*)\..*$/,"$1"),10);playerVersion[1]=parseInt(d.replace(/^.*\.(.*)\s.*$/,"$1"),10);playerVersion[2]=/r/.test(d)?parseInt(d.replace(/^.*r(.*)$/,"$1"),10):0;}}
else if(typeof win.ActiveXObject!=UNDEF){var a=null,fp6Crash=false;try{a=new ActiveXObject(SHOCKWAVE_FLASH_AX+".7");}
catch(e){try{a=new ActiveXObject(SHOCKWAVE_FLASH_AX+".6");playerVersion=[6,0,21];a.AllowScriptAccess="always";}
catch(e){if(playerVersion[0]==6){fp6Crash=true;}}
if(!fp6Crash){try{a=new ActiveXObject(SHOCKWAVE_FLASH_AX);}
catch(e){}}}
if(!fp6Crash&&a){try{d=a.GetVariable("$version");if(d){d=d.split(" ")[1].split(",");playerVersion=[parseInt(d[0],10),parseInt(d[1],10),parseInt(d[2],10)];}}
catch(e){}}}
var u=nav.userAgent.toLowerCase(),p=nav.platform.toLowerCase(),webkit=/webkit/.test(u)?parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,ie=false,windows=p?/win/.test(p):/win/.test(u),mac=p?/mac/.test(p):/mac/.test(u);return{w3cdom:w3cdom,pv:playerVersion,webkit:webkit,ie:ie,win:windows,mac:mac};}();var onDomLoad=function(){if(!ua.w3cdom){return;}
addDomLoadEvent(main);if(ua.ie&&ua.win){try{doc.write("<scr"+"ipt id=__ie_ondomload defer=true src=//:></scr"+"ipt>");script=getElementById("__ie_ondomload");if(script){addListener(script,"onreadystatechange",checkReadyState);}}
catch(e){}}
if(ua.webkit&&typeof doc.readyState!=UNDEF){timer=setInterval(function(){if(/loaded|complete/.test(doc.readyState)){callDomLoadFunctions();}},10);}
if(typeof doc.addEventListener!=UNDEF){doc.addEventListener("DOMContentLoaded",callDomLoadFunctions,null);}
addLoadEvent(callDomLoadFunctions);}();function checkReadyState(){if(script.readyState=="complete"){script.parentNode.removeChild(script);callDomLoadFunctions();}}
function callDomLoadFunctions(){if(isDomLoaded){return;}
if(ua.ie&&ua.win){var s=createElement("span");try{var t=doc.getElementsByTagName("body")[0].appendChild(s);t.parentNode.removeChild(t);}
catch(e){return;}}
isDomLoaded=true;if(timer){clearInterval(timer);timer=null;}
var dl=domLoadFnArr.length;for(var i=0;i<dl;i++){domLoadFnArr[i]();}}
function addDomLoadEvent(fn){if(isDomLoaded){fn();}
else{domLoadFnArr[domLoadFnArr.length]=fn;}}
function addLoadEvent(fn){if(typeof win.addEventListener!=UNDEF){win.addEventListener("load",fn,false);}
else if(typeof doc.addEventListener!=UNDEF){doc.addEventListener("load",fn,false);}
else if(typeof win.attachEvent!=UNDEF){addListener(win,"onload",fn);}
else if(typeof win.onload=="function"){var fnOld=win.onload;win.onload=function(){fnOld();fn();};}
else{win.onload=fn;}}
function main(){var rl=regObjArr.length;for(var i=0;i<rl;i++){var id=regObjArr[i].id;if(ua.pv[0]>0){var obj=getElementById(id);if(obj){regObjArr[i].width=obj.getAttribute("width")?obj.getAttribute("width"):"0";regObjArr[i].height=obj.getAttribute("height")?obj.getAttribute("height"):"0";if(hasPlayerVersion(regObjArr[i].swfVersion)){if(ua.webkit&&ua.webkit<312){fixParams(obj);}
setVisibility(id,true);}
else if(regObjArr[i].expressInstall&&!isExpressInstallActive&&hasPlayerVersion("6.0.65")&&(ua.win||ua.mac)){showExpressInstall(regObjArr[i]);}
else{displayAltContent(obj);}}}
else{setVisibility(id,true);}}}
function fixParams(obj){var nestedObj=obj.getElementsByTagName(OBJECT)[0];if(nestedObj){var e=createElement("embed"),a=nestedObj.attributes;if(a){var al=a.length;for(var i=0;i<al;i++){if(a[i].nodeName=="DATA"){e.setAttribute("src",a[i].nodeValue);}
else{e.setAttribute(a[i].nodeName,a[i].nodeValue);}}}
var c=nestedObj.childNodes;if(c){var cl=c.length;for(var j=0;j<cl;j++){if(c[j].nodeType==1&&c[j].nodeName=="PARAM"){e.setAttribute(c[j].getAttribute("name"),c[j].getAttribute("value"));}}}
obj.parentNode.replaceChild(e,obj);}}
function showExpressInstall(regObj){isExpressInstallActive=true;var obj=getElementById(regObj.id);if(obj){if(regObj.altContentId){var ac=getElementById(regObj.altContentId);if(ac){storedAltContent=ac;storedAltContentId=regObj.altContentId;}}
else{storedAltContent=abstractAltContent(obj);}
if(!(/%$/.test(regObj.width))&&parseInt(regObj.width,10)<310){regObj.width="310";}
if(!(/%$/.test(regObj.height))&&parseInt(regObj.height,10)<137){regObj.height="137";}
doc.title=doc.title.slice(0,47)+" - Flash Player Installation";var pt=ua.ie&&ua.win?"ActiveX":"PlugIn",dt=doc.title,fv="MMredirectURL="+win.location+"&MMplayerType="+pt+"&MMdoctitle="+dt,replaceId=regObj.id;if(ua.ie&&ua.win&&obj.readyState!=4){var newObj=createElement("div");replaceId+="SWFObjectNew";newObj.setAttribute("id",replaceId);obj.parentNode.insertBefore(newObj,obj);obj.style.display="none";var fn=function(){obj.parentNode.removeChild(obj);};addListener(win,"onload",fn);}
createSWF({data:regObj.expressInstall,id:EXPRESS_INSTALL_ID,width:regObj.width,height:regObj.height},{flashvars:fv},replaceId);}}
function displayAltContent(obj){if(ua.ie&&ua.win&&obj.readyState!=4){var el=createElement("div");obj.parentNode.insertBefore(el,obj);el.parentNode.replaceChild(abstractAltContent(obj),el);obj.style.display="none";var fn=function(){obj.parentNode.removeChild(obj);};addListener(win,"onload",fn);}
else{obj.parentNode.replaceChild(abstractAltContent(obj),obj);}}
function abstractAltContent(obj){var ac=createElement("div");if(ua.win&&ua.ie){ac.innerHTML=obj.innerHTML;}
else{var nestedObj=obj.getElementsByTagName(OBJECT)[0];if(nestedObj){var c=nestedObj.childNodes;if(c){var cl=c.length;for(var i=0;i<cl;i++){if(!(c[i].nodeType==1&&c[i].nodeName=="PARAM")&&!(c[i].nodeType==8)){ac.appendChild(c[i].cloneNode(true));}}}}}
return ac;}
function createSWF(attObj,parObj,id){var r,el=getElementById(id);if(el){if(typeof attObj.id==UNDEF){attObj.id=id;}
if(ua.ie&&ua.win){var att="";for(var i in attObj){if(attObj[i]!=Object.prototype[i]){if(i.toLowerCase()=="data"){parObj.movie=attObj[i];}
else if(i.toLowerCase()=="styleclass"){att+=' class="'+attObj[i]+'"';}
else if(i.toLowerCase()!="classid"){att+=' '+i+'="'+attObj[i]+'"';}}}
var par="";for(var j in parObj){if(parObj[j]!=Object.prototype[j]){par+='<param name="'+j+'" value="'+parObj[j]+'" />';}}
el.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+att+'>'+par+'</object>';objIdArr[objIdArr.length]=attObj.id;r=getElementById(attObj.id);}
else if(ua.webkit&&ua.webkit<312){var e=createElement("embed");e.setAttribute("type",FLASH_MIME_TYPE);for(var k in attObj){if(attObj[k]!=Object.prototype[k]){if(k.toLowerCase()=="data"){e.setAttribute("src",attObj[k]);}
else if(k.toLowerCase()=="styleclass"){e.setAttribute("class",attObj[k]);}
else if(k.toLowerCase()!="classid"){e.setAttribute(k,attObj[k]);}}}
for(var l in parObj){if(parObj[l]!=Object.prototype[l]){if(l.toLowerCase()!="movie"){e.setAttribute(l,parObj[l]);}}}
el.parentNode.replaceChild(e,el);r=e;}
else{var o=createElement(OBJECT);o.setAttribute("type",FLASH_MIME_TYPE);for(var m in attObj){if(attObj[m]!=Object.prototype[m]){if(m.toLowerCase()=="styleclass"){o.setAttribute("class",attObj[m]);}
else if(m.toLowerCase()!="classid"){o.setAttribute(m,attObj[m]);}}}
for(var n in parObj){if(parObj[n]!=Object.prototype[n]&&n.toLowerCase()!="movie"){createObjParam(o,n,parObj[n]);}}
el.parentNode.replaceChild(o,el);r=o;}}
return r;}
function createObjParam(el,pName,pValue){var p=createElement("param");p.setAttribute("name",pName);p.setAttribute("value",pValue);el.appendChild(p);}
function removeSWF(id){var obj=getElementById(id);if(obj&&(obj.nodeName=="OBJECT"||obj.nodeName=="EMBED")){if(ua.ie&&ua.win){if(obj.readyState==4){removeObjectInIE(id);}
else{win.attachEvent("onload",function(){removeObjectInIE(id);});}}
else{obj.parentNode.removeChild(obj);}}}
function removeObjectInIE(id){var obj=getElementById(id);if(obj){for(var i in obj){if(typeof obj[i]=="function"){obj[i]=null;}}
obj.parentNode.removeChild(obj);}}
function getElementById(id){var el=null;try{el=doc.getElementById(id);}
catch(e){}
return el;}
function createElement(el){return doc.createElement(el);}
function addListener(target,eventType,fn){target.attachEvent(eventType,fn);listenersArr[listenersArr.length]=[target,eventType,fn];}
function hasPlayerVersion(rv){var pv=ua.pv,v=rv.split(".");v[0]=parseInt(v[0],10);v[1]=parseInt(v[1],10)||0;v[2]=parseInt(v[2],10)||0;return(pv[0]>v[0]||(pv[0]==v[0]&&pv[1]>v[1])||(pv[0]==v[0]&&pv[1]==v[1]&&pv[2]>=v[2]))?true:false;}
function createCSS(sel,decl){if(ua.ie&&ua.mac){return;}
var h=doc.getElementsByTagName("head")[0],s=createElement("style");s.setAttribute("type","text/css");s.setAttribute("media","screen");if(!(ua.ie&&ua.win)&&typeof doc.createTextNode!=UNDEF){s.appendChild(doc.createTextNode(sel+" {"+decl+"}"));}
h.appendChild(s);if(ua.ie&&ua.win&&typeof doc.styleSheets!=UNDEF&&doc.styleSheets.length>0){var ls=doc.styleSheets[doc.styleSheets.length-1];if(typeof ls.addRule==OBJECT){ls.addRule(sel,decl);}}}
function setVisibility(id,isVisible){var v=isVisible?"visible":"hidden";if(isDomLoaded&&getElementById(id)){getElementById(id).style.visibility=v;}
else{createCSS("#"+id,"visibility:"+v);}}
function urlEncodeIfNecessary(s){var regex=/[\\\"<>\.;]/;var hasBadChars=regex.exec(s)!=null;return hasBadChars?encodeURIComponent(s):s;}
var cleanup=function(){if(ua.ie&&ua.win){window.attachEvent("onunload",function(){var ll=listenersArr.length;for(var i=0;i<ll;i++){listenersArr[i][0].detachEvent(listenersArr[i][1],listenersArr[i][2]);}
var il=objIdArr.length;for(var j=0;j<il;j++){removeSWF(objIdArr[j]);}
for(var k in ua){ua[k]=null;}
ua=null;for(var l in swfobject){swfobject[l]=null;}
swfobject=null;});}}();return{registerObject:function(objectIdStr,swfVersionStr,xiSwfUrlStr){if(!ua.w3cdom||!objectIdStr||!swfVersionStr){return;}
var regObj={};regObj.id=objectIdStr;regObj.swfVersion=swfVersionStr;regObj.expressInstall=xiSwfUrlStr?xiSwfUrlStr:false;regObjArr[regObjArr.length]=regObj;setVisibility(objectIdStr,false);},getObjectById:function(objectIdStr){var r=null;if(ua.w3cdom){var o=getElementById(objectIdStr);if(o){var n=o.getElementsByTagName(OBJECT)[0];if(!n||(n&&typeof o.SetVariable!=UNDEF)){r=o;}
else if(typeof n.SetVariable!=UNDEF){r=n;}}}
return r;},embedSWF:function(swfUrlStr,replaceElemIdStr,widthStr,heightStr,swfVersionStr,xiSwfUrlStr,flashvarsObj,parObj,attObj,domLoaded){if(!ua.w3cdom||!swfUrlStr||!replaceElemIdStr||!widthStr||!heightStr||!swfVersionStr){return;}
widthStr+="";heightStr+="";if(hasPlayerVersion(swfVersionStr)){setVisibility(replaceElemIdStr,false);var att={};if(attObj&&typeof attObj===OBJECT){for(var i in attObj){if(attObj[i]!=Object.prototype[i]){att[i]=attObj[i];}}}
att.data=swfUrlStr;att.width=widthStr;att.height=heightStr;var par={};if(parObj&&typeof parObj===OBJECT){for(var j in parObj){if(parObj[j]!=Object.prototype[j]){par[j]=parObj[j];}}}
if(flashvarsObj&&typeof flashvarsObj===OBJECT){for(var k in flashvarsObj){if(flashvarsObj[k]!=Object.prototype[k]){if(typeof par.flashvars!=UNDEF){par.flashvars+="&"+k+"="+flashvarsObj[k];}
else{par.flashvars=k+"="+flashvarsObj[k];}}}}
addDomLoadEvent(function(){createSWF(att,par,replaceElemIdStr);if(att.id==replaceElemIdStr){setVisibility(replaceElemIdStr,true);}});if(domLoaded===true){callDomLoadFunctions();}}
else if(xiSwfUrlStr&&!isExpressInstallActive&&hasPlayerVersion("6.0.65")&&(ua.win||ua.mac)){isExpressInstallActive=true;setVisibility(replaceElemIdStr,false);addDomLoadEvent(function(){var regObj={};regObj.id=regObj.altContentId=replaceElemIdStr;regObj.width=widthStr;regObj.height=heightStr;regObj.expressInstall=xiSwfUrlStr;showExpressInstall(regObj);});}},getFlashPlayerVersion:function(){return{major:ua.pv[0],minor:ua.pv[1],release:ua.pv[2]};},hasFlashPlayerVersion:hasPlayerVersion,createSWF:function(attObj,parObj,replaceElemIdStr){if(ua.w3cdom){return createSWF(attObj,parObj,replaceElemIdStr);}
else{return undefined;}},removeSWF:function(objElemIdStr){if(ua.w3cdom){removeSWF(objElemIdStr);}},createCSS:function(sel,decl){if(ua.w3cdom){createCSS(sel,decl);}},addDomLoadEvent:addDomLoadEvent,addLoadEvent:addLoadEvent,getQueryParamValue:function(param){var q=doc.location.search||doc.location.hash;if(param==null){return urlEncodeIfNecessary(q);}
if(q){var pairs=q.substring(1).split("&");for(var i=0;i<pairs.length;i++){if(pairs[i].substring(0,pairs[i].indexOf("="))==param){return urlEncodeIfNecessary(pairs[i].substring((pairs[i].indexOf("=")+1)));}}}
return"";},expressInstallCallback:function(){if(isExpressInstallActive&&storedAltContent){var obj=getElementById(EXPRESS_INSTALL_ID);if(obj){obj.parentNode.replaceChild(storedAltContent,obj);if(storedAltContentId){setVisibility(storedAltContentId,true);if(ua.ie&&ua.win){storedAltContent.style.display="block";}}
storedAltContent=null;storedAltContentId=null;isExpressInstallActive=false;}}}};}();var WidgetStore=new function()
{var self=this;var objStore={};var activeWidgetId=null;var shortcutKeys=[];var activeWidgets={};var data={};var datacbs={};this.add=function(id,obj){if(dfx.isset(objStore[id])===true){delete objStore[id];}
objStore[id]=obj;};this.remove=function(id){if(dfx.isset(objStore[id])===true){delete objStore[id];}};this.get=function(id){return objStore[id];};this.exists=function(id){if(typeof objStore[id]==='undefined'){return false;}
return true;};this.fireClickedInside=function(child,e){var alerted=[];if(child.parentNode===null){return alerted;}
var chilLen=child.parentNode.childNodes.length;for(var i=0;i<chilLen;i++){var node=child.parentNode.childNodes.item(i);if(objStore[node.id]!==null){if(typeof objStore[node.id].clickedInside==='function'){alerted.push(node.id);objStore[node.id].clickedInside(e);}}}
return alerted.concat(this.fireClickedInside(child.parentNode));};this.getInnerWidgets=function(element){var innerWidgets=[];var chilLen=element.childNodes.length;for(var i=0;i<chilLen;i++){var node=element.childNodes.item(i);if(objStore[node.id]){innerWidgets.push(node.id);}
innerWidgets=innerWidgets.concat(this.getInnerWidgets(node));}
return innerWidgets;};this.disableOthers=function(child){disabledNodes=[];innerNodes=this.getInnerWidgets(child);innerNodes.push(child.id);for(var i in objStore){if(!innerNodes.inArray(i)){if(typeof objStore[i].disable==='function'){if(objStore[i].isEnabled()){objStore[i].disable();disabledNodes.push(i);}}}}
return disabledNodes;};this.activateWidgets=function(widgetids){var idsLen=widgetids.length;for(var i=0;i<idsLen;i++){this.activateWidget(widgetids[i]);}};this.activateWidget=function(widgetid){activeWidgets[widgetid]=true;};this.getActiveWidgets=function(){var widgets=[];for(var widget in activeWidgets){widgets.push(widget);}
return widgets;};this.disableWidgets=function(widgetids){var idsLen=widgetids.length;for(var i=0;i<idsLen;i++){this.disableWidget(widgetids[i]);}};this.disableWidget=function(widgetid){delete activeWidgets[widgetid];};this.fireClickedOutside=function(elems,e){for(i in objStore){if(!elems.inArray(i)){if(typeof objStore[i].clickedOutside==='function'){objStore[i].clickedOutside(e);}}}};this.fireSizeChanged=function(elem){var changedEl=elem;while(elem!==null){if(objStore[elem.id]!==null){if(typeof objStore[elem.id].sizeChanged==='function'){objStore[elem.id].sizeChanged(changedEl);}}
elem=elem.parentNode;}};this.fireParentSizeChanged=function(widgetid,elem,size){if(!elem&&elem.nodeType!==1){return;}
var childLen=elem.childNodes.length;for(var i=0;i<childLen;i++){var childid=elem.childNodes[i].id;if(dfx.isset(objStore[childid])===true){if(dfx.isFn(objStore[childid].parentSizeChanged)===true){objStore[childid].parentSizeChanged(widgetid,elem,size);}}
this.fireParentSizeChanged(widgetid,elem.childNodes[i],size);}};this.getShortcutList=function(){var str='';for(var property in shortcutKeys){if(shortcutKeys[property].name&&shortcutKeys[property].keys){str+=shortcutKeys[property].name+' ('+shortcutKeys[property].keys+')'+"\n";}}
return str;};this.registerShortcutKey=function(shortcut,widgetid,name,action,activeWidget){var keys=shortcut.toLowerCase().split('+');var keyObj={};keyObj.widgetid=widgetid;keyObj.name=name;keyObj.keys=shortcut.toUpperCase();keyObj.keysArray=keys;keyObj.activeWidget=activeWidget;shortcutKeys.push(keyObj);var otherKeys={'delete':46,'esc':27,'tab':9};dfx.addEvent(document,'keydown',function(e){if(activeWidget===true&&WidgetStore.get(widgetid)!==WidgetStore.getActiveWidget()){return true;}
var keysPressed=0;var len=keys.length;for(var i=0;i<len;i++){var key=keys[i];if(key==='ctrl'&&e.ctrlKey){keysPressed++;}else if(key==='shift'&&e.shiftKey){keysPressed++;}else if(key==='alt'&&e.altKey){keysPressed++;}else if(otherKeys[key]===e.keyCode){keysPressed++;}else if(key===String.fromCharCode(e.keyCode).toLowerCase()){keysPressed++;}}
if(keysPressed===len){action(e);dfx.preventDefault(e);return false;}});};this.setData=function(dataid,value){var oldVal=data[dataid];data[dataid]=value;if(dfx.isset(datacbs[dataid])===true){for(var id in datacbs[dataid]){if(datacbs[dataid].hasOwnProperty(id)===true){datacbs[dataid][id].call(this,value,oldVal);}}}};this.getData=function(dataid){return data[dataid];};this.addDataChangeListener=function(id,dataid,callback){if(dfx.isset(datacbs[dataid])===false){datacbs[dataid]={};}
datacbs[dataid][id]=callback;};this.removeDataChangeListener=function(id,dataid){if(!dataid||!id){return;}
if(dfx.isset(datacbs[dataid])===true&&dfx.isset(datacbs[dataid][id])){delete datacbs[dataid][id];}};this.getUnsavedChangesStr=function(){return"You have unsaved changes.\n\nPress OK to continue and lose these changes or Cancel to stay on the current screen.";};};function smoothScroll()
{$.localScroll({offset:{top:-32}});}
if(!mysource){var mysource={};}
mysource.MysourceImageGallery={};var mig=mysource.MysourceImageGallery;mig.imageLoaders={};mig.displayCount=0;mig.createMysourceImageGallery=function(ops)
{new mig.Gallery(ops);};mig.Gallery=function(ops)
{var self=this;this.galleryType='normal';if(ops.height==='small'||ops.height==='big'){this.galleryType='light';}
this.galleryid=ops.galleryid+'-'+mig.displayCount;this.galleryWidth=ops.width||580;mig.displayCount++;this.galleryTheme=ops.theme||'black';this.images=ops.images||{};this.imageids=ops.imageids||[];this.currentIndex=0;this.currentImage=null;if(this.galleryType==='normal'){this.galleryHeight=ops.height||523;this.smallThumb=(this.galleryHeight<=400);this.imageDisplayWidth=(this.galleryWidth-20);this.imageDisplayHeight=(this.galleryHeight-135);if(this.smallThumb===true){this.imageDisplayHeight+=30;}
this.container=ops.container;this.galleryImage=dfx.getClass('galleryImage',this.container)[0];this.imageContainer=dfx.getClass('imageContainer',this.container)[0];this.prevNavButton=dfx.getClass('galleryImagePrev',this.container)[0];this.nextNavButton=dfx.getClass('galleryImageNext',this.container)[0];this.imageCaption=dfx.getClass('imgCaption',this.container)[0];dfx.setStyle(this.galleryImage,'height',this.imageDisplayHeight+'px');}else if(this.galleryType==='light'){var setDimensions=function(){var winSize=dfx.getWindowDimensions();self.maxContainerW=(winSize.width-180);self.maxContainerH=(winSize.height-80);self.captionHeight=29;self.imageDisplayWidth=self.maxContainerW;self.imageDisplayHeight=((self.maxContainerH-self.captionHeight)-2);};setDimensions();window.onresize=function(e){setDimensions();};this.popOverlay=document.createElement('div');var c='<div class="galleryPopContainer">';c+='   <div class="galleryPopBorder">';c+='       <div class="galleryPopImage">';c+='           <img class="imagePopContainer" src="" alt="img2" height="48" width="48" style="visibility: hidden;">';c+='           <a href="#" class="galleryPopImageNext"><span>Show next gallery image</span></a>';c+='           <a href="#" class="galleryPopImagePrev"><span>Show previous gallery image</span></a>';c+='       </div>';c+='       <div class="galleryPopFooter">';c+='           <p class="galleryPopCaption"> </p>';c+='       </div>';c+='   </div><!-- .galleryPopBorder -->';c+='   <a href="#" class="galleryPopClose"> </a>';c+='</div><!-- .galleryPopContainer -->';dfx.setHtml(this.popOverlay,c);dfx.addClass(this.popOverlay,'galleryPopOverlay');var editingAsset=dfx.getId('EditingAsset');if(editingAsset){editingAsset.appendChild(this.popOverlay);}else{document.body.appendChild(this.popOverlay);}
this.container=ops.container;this.galleryPopContainer=dfx.getClass('galleryPopContainer',this.popOverlay)[0];this.imageContainer=dfx.getClass('imagePopContainer',this.popOverlay)[0];this.prevNavButton=dfx.getClass('galleryPopImagePrev',this.popOverlay)[0];this.nextNavButton=dfx.getClass('galleryPopImageNext',this.popOverlay)[0];this.imageCaption=dfx.getClass('galleryPopCaption',this.popOverlay)[0];this.galleryPopFooter=dfx.getClass('galleryPopFooter',this.popOverlay)[0];this.galleryPopClose=dfx.getClass('galleryPopClose',this.popOverlay)[0];this.galleryHeight=ops.height;this.smallThumb=(this.galleryHeight==='small');dfx.hideElement(this.popOverlay);}
this.firstTimeLoading=true;this.imageLoader=new mig.ImageLoader(this.galleryid);mig.imageLoaders[this.galleryid]=this.imageLoader;this.imageLoader.addImage('gallery_loader',mig.Gallery.preLoaderAnimPath);dfx.foreach(this.imageids,function(idx){var iid=self.imageids[idx];if(self.images[iid].url.search(/\?/)===-1){self.imageLoader.addImage(iid+'_tb',self.images[iid].url+'?tb=1');}else{self.imageLoader.addImage(iid+'_tb',self.images[iid].url+'&tb=1');}
return true;});this.isLoaderReady(function(){self.imageSlider=new mig.Gallery.Slider(self,self.galleryid,self.images,self.imageids,self.imageLoader,self.galleryWidth,self.galleryHeight,self.smallThumb,self.container);self.imageSlider.addOnSelectCallback(function(id){self.currentImage=id;dfx.foreach(self.imageids,function(idx){if(self.imageids[idx]===id){self.currentIndex=idx;return false;}
return true;});self.displayImage();});if(this.galleryType==='normal'){self.init(function(){if(self.imageids.length>1){dfx.showElement(this.nextNavButton);}
self.currentIndex=0;self.currentImage=self.imageids[self.currentIndex];self.displayImage();self.imageSlider.init(function(){});});}else if(this.galleryType==='light'){self.init(function(){self.imageSlider.init(function(){});});}});};mig.Gallery.preLoaderPath='__web/Systems/ImageGallery/images/transparent.gif';mig.Gallery.preLoaderAnimPath='__web/Systems/ImageGallery/images/pre-loader.gif';mig.Gallery.prototype={init:function(cb)
{dfx.removeEvent(this.prevNavButton,'click');dfx.removeEvent(this.nextNavButton,'click');var self=this;dfx.addEvent(this.prevNavButton,'click',function(e){self.previous();return false;});dfx.addEvent(this.nextNavButton,'click',function(e){self.next();return false;});if(this.galleryType==='light'){dfx.removeEvent(this.galleryPopClose,'click');dfx.addEvent(this.galleryPopClose,'click',function(e){dfx.hideElement(self.popOverlay);return false;});dfx.addEvent(this.popOverlay,'click',function(e){var target=dfx.getMouseEventTarget(e);if(dfx.hasClass(target,'galleryPopOverlay')===true){dfx.hideElement(self.popOverlay);return false;}});}
if(cb){cb.call(this);}},isLoaderReady:function(cb)
{var self=this;if(this.imageLoader.ready('gallery_loader')===true){cb.call(self);}else{setTimeout(function(){self.isLoaderReady(cb);},100);}},previous:function()
{if(this.currentIndex>0){this.currentIndex=(this.currentIndex-1);this.currentImage=this.imageids[this.currentIndex];if(this.galleryType==='light'){dfx.hideElement(this.prevNavButton);dfx.hideElement(this.nextNavButton);dfx.setStyle(this.imageContainer,'visibility','hidden');}
this.imageSlider.locateImageToMiddle(this.currentImage,true);this.displayImage();}},next:function()
{var imgLen=this.imageids.length;if(this.currentIndex<(imgLen-1)){this.currentIndex=this.currentIndex+1;this.currentImage=this.imageids[this.currentIndex];if(this.galleryType==='light'){dfx.hideElement(this.prevNavButton);dfx.hideElement(this.nextNavButton);dfx.setStyle(this.imageContainer,'visibility','hidden');}
this.imageSlider.locateImageToMiddle(this.currentImage,true);this.displayImage();}},displayImage:function()
{var self=this;if(this.galleryType==='light'){dfx.setStyle(this.galleryPopFooter,'visibility','hidden');dfx.setStyle(this.imageContainer,'visibility','hidden');dfx.showElement(this.popOverlay);dfx.hideElement(this.galleryPopClose);}
this.imageLoader.addImage(this.currentImage,this.images[this.currentImage].url);this.imageSlider.selectImage(this.currentImage);var titleHtml=unescape(this.images[this.currentImage].title);titleHtml+='&nbsp;('+(this.currentIndex+1);titleHtml+=' of '+this.imageids.length+' images)';dfx.setHtml(this.imageCaption,titleHtml);var nW=this.images[this.currentImage].width;var nH=this.images[this.currentImage].height;if(this.images[this.currentImage].width>this.imageDisplayWidth||this.images[this.currentImage].height>this.imageDisplayHeight){var size=this._scaleDownImage(this.imageDisplayWidth,this.imageDisplayHeight,this.images[this.currentImage].width,this.images[this.currentImage].height);nW=size.nW;nH=size.nH;}
var setNavButtons=function(){if(self.currentIndex===0){dfx.hideElement(self.prevNavButton);dfx.showElement(self.nextNavButton);}else if(self.currentIndex===(self.imageids.length-1)){dfx.hideElement(self.nextNavButton);dfx.showElement(self.prevNavButton);}else{dfx.showElement(self.nextNavButton);dfx.showElement(self.prevNavButton);}
dfx.setStyle(self.imageContainer,'visibility','visible');};var _displayImage=function(){if(self.imageLoader.ready(self.currentImage)===true){var parent=self.imageContainer.parentNode;if(self.galleryType==='normal'){if(self.firstTimeLoading===false){dfx.remove(self.imageContainer);var img=document.createElement('img');dfx.setStyle(img,'visibility','hidden');dfx.addClass(img,'imageContainer');img.src=self.images[self.currentImage].url;img.alt=self.images[self.currentImage].alt;img.setAttribute('width',nW);img.setAttribute('height',nH);self.imageContainer=img;parent.appendChild(self.imageContainer);}else{dfx.setStyle(self.imageContainer,'visibility','hidden');self.imageContainer.setAttribute('width',nW);self.imageContainer.setAttribute('height',nH);self.firstTimeLoading=false;}
if(nH<self.imageDisplayHeight){dfx.setStyle(self.imageContainer,'margin-top',Math.ceil((self.imageDisplayHeight-nH)/2)+'px');}else{dfx.setStyle(self.imageContainer,'margin-top','0px');}
setNavButtons();}else if(self.galleryType==='light'){var targetContainerW=nW;var targetContainerH=nH+self.captionHeight+2;var params={width:targetContainerW,height:targetContainerH,marginTop:((targetContainerH/2)*(-1)),marginLeft:((targetContainerW/2)*(-1))};dfx.animate(self.galleryPopContainer,params,600,function(){var img=document.createElement('img');dfx.setStyle(img,'visibility','hidden');dfx.addClass(img,'imageContainer');img.src=self.images[self.currentImage].url;img.alt=self.images[self.currentImage].alt;img.setAttribute('width',(nW-4));img.setAttribute('height',nH);dfx.insertBefore(self.imageContainer,img);dfx.remove(self.imageContainer);self.imageContainer=img;setNavButtons();dfx.setStyle(self.galleryPopFooter,'visibility','visible');dfx.showElement(self.galleryPopClose);});}}else{setTimeout(function(){_displayImage();},300);}};if(self.firstTimeLoading===false){self.displayLoaderImage();}
_displayImage();},displayLoaderImage:function()
{if(this.galleryType==='normal'){this.imageContainer.setAttribute('width',48);this.imageContainer.setAttribute('height',48);dfx.setStyle(this.imageContainer,'margin-top',((this.imageDisplayHeight/2)-24)+'px');this.imageContainer.src=mig.Gallery.preLoaderAnimPath;}},_scaleDownImage:function(gW,gH,iW,iH)
{var size={};if(iW>gW&&iH<=gH){nW=gW;nH=Math.ceil((iH*gW)/iW);}else if(iH>gH&&iW<=gW){nW=Math.ceil((iW*gH)/iH);nH=gH;}else if(iW>gW&&iH>gH){if(iW>=iH){nW=gW;nH=Math.ceil((iH*gW)/iW);if(nH>gH){iH=nH;iW=nW;nW=Math.ceil((iW*gH)/iH);nH=gH;}}else if(iW<iH){nW=Math.ceil((iW*gH)/iH);nH=gH;if(nW>gW){iH=nH;iW=nW;nW=gW;nH=Math.ceil((iH*gW)/iW);}}}else if(iW<gW&&iH<gH){nW=iW;nH=iH;}
size.nW=nW;size.nH=nH;return size;}};mig.Gallery.Slider=function(gallery,galleryid,images,imageids,imageLoader,galleryWidth,galleryHeight,smallThumb,container)
{this.gallery=gallery;this.galleryid=galleryid;this.id=this.galleryid+'_slider';this.images=images;this.imageids=imageids;this.imageLoader=imageLoader;this.smallThumb=smallThumb;this.thumbImageHeight=75;if(this.smallThumb===true){this.thumbImageHeight=45;}
this.currentImageid=this.imageids[0];this.onSelectCallbacks=[];this.ready=false;this.waitingQueue=[];this.sliderAnimationSpeed=600;this.galleryWidth=galleryWidth;this.leftMargin=10;this.rightMargin=10;this.visibleRegionWidth=((this.galleryWidth-this.leftMargin)-this.rightMargin);this.stripWidth=null;this.startAnimationLeft=this.leftMargin;this.endAnimationLeft=null;this.stripLeftOffset=this.leftMargin;this.currentSliderIndex=null;this.imageOffsets=[];this.imgClickedOffsets={};this.container=container;this.thumbListUl=dfx.getClass('thumbList',this.container)[0];this.thumbs=dfx.getClass('galleryThumbs',this.container)[0];this.thumbsInner=dfx.getClass('galleryThumbsInner',this.container)[0];this.thumbStripDiv=dfx.getClass('thumbStrip',this.container)[0];this.inAnimation=false;this.noSliderAnimation=false;dfx.setStyle(this.thumbStripDiv,'left',this.leftMargin+'px');var sliderClassName='';if(this.smallThumb===true){sliderClassName='Small';}
this.sliderLeftButtonDiv=dfx.getClass('thumbSlider'+sliderClassName+'Left',this.container)[0];this.sliderRightButtonDiv=dfx.getClass('thumbSlider'+sliderClassName+'Right',this.container)[0];this.sliderLeftButton=dfx.getClass('thumbSliderLeftAnchor',this.container)[0];this.sliderRightButton=dfx.getClass('thumbSliderRightAnchor',this.container)[0];dfx.showElement(this.thumbs);dfx.setStyle(this.thumbsInner,'width',this.galleryWidth+'px');};mig.Gallery.Slider.prototype={init:function(cb)
{var self=this;dfx.removeEvent(this.sliderLeftButton,'click');dfx.removeEvent(this.sliderRightButton,'click');dfx.addEvent(this.sliderLeftButton,'click',function(e){if(self.inAnimation===true||self.startAnimationLeft===self.stripLeftOffset||self.noSliderAnimation===true){return false;}
var target=self.stripLeftOffset+self.visibleRegionWidth;if(target>=self.startAnimationLeft){target=self.startAnimationLeft;}else{var found=false;var num=self.imageOffsets.length;for(var i=(num-1);i>0;i--){var lo=self.imageOffsets[i].leftOffset;var ro=self.imageOffsets[i].rightOffset;if(found===false&&lo>=target){target=lo;found=true;}}}
self.inAnimation=true;dfx.animate(self.thumbStripDiv,{left:target},self.sliderAnimationSpeed,function(){self.stripLeftOffset=target;self.inAnimation=false;self.updateNavButtons();});return false;});dfx.addEvent(this.sliderRightButton,'click',function(e){if(self.inAnimation===true||self.endAnimationLeft===self.stripLeftOffset||self.noSliderAnimation===true){return false;}
var target=(self.stripLeftOffset-self.visibleRegionWidth);if(target<=self.endAnimationLeft){target=self.endAnimationLeft;}else{var found=false;dfx.foreach(self.imageOffsets,function(idx){var lo=self.imageOffsets[idx].leftOffset;var ro=self.imageOffsets[idx].rightOffset;if(found===false&&ro<=target){target=lo;found=true;}
return true;});}
self.inAnimation=true;dfx.animate(self.thumbStripDiv,{left:target},self.sliderAnimationSpeed,function(){self.stripLeftOffset=target;self.inAnimation=false;self.updateNavButtons();});return false;});var content='';dfx.foreach(this.imageids,function(idx){var iid=self.imageids[idx];var thumbid=iid+'_tb';content+='<li style="padding: 0px 0px 0px 0px; ';content+='margin: 0px 5px 0px 0px;" id="'+self.id+'_';content+=iid+'_list" class="thumbItem';var thumbW=Math.ceil((self.images[iid].width*self.thumbImageHeight)/self.images[iid].height);self.images[iid].thumbW=thumbW;if(idx===0){content+=' thumbItemSelected';}
content+=' ">';if(self.imageLoader.ready(thumbid)===true){content+='<img id="'+self.id+'_'+iid+'" height="';content+=self.thumbImageHeight+'" ';content+='width="'+thumbW+'" src="';if(self.images[iid].url.search(/\?/)===-1){content+=self.images[iid].url+'?tb=1" alt="'+self.images[iid].alt+'" />';}else{content+=self.images[iid].url+'&tb=1" alt="'+self.images[iid].alt+'" />';}}else{self.waitingQueue.push(iid);content+='<img id="'+self.id+'_'+iid+'" height="';content+=self.thumbImageHeight+'" width="45" src="';content+=mig.Gallery.preLoaderPath+'"';content+=' style="background: transparent url('+mig.Gallery.preLoaderAnimPath+') no-repeat 50% 50%"';content+=' alt="'+self.images[iid].alt+'" />';}
content+='</li>';var imagePadding=4;var imageBorder=1;var imageMargin=5;var totalThumbW=(self.images[iid].thumbW+(imagePadding+imageBorder)*2);var minMiddleOffset=(self.leftMargin-Math.ceil(self.visibleRegionWidth/2));if(idx===0){var rightOffset=(self.leftMargin-totalThumbW);var imgMidOffset=(self.leftMargin-Math.ceil(totalThumbW/2));self.imageOffsets.push({leftOffset:self.leftMargin,width:self.images[iid].thumbW,rightOffset:rightOffset,midOffset:imgMidOffset,thumbDisplayWidth:totalThumbW});self.imgClickedOffsets[iid]=self.leftMargin;prevOffset=(self.leftMargin-(totalThumbW+imageMargin));}else{var rightOffset=(prevOffset-totalThumbW);var leftOffset=prevOffset;var imgMidOffset=(leftOffset-Math.ceil(totalThumbW/2));var imgClickedOffset=null;if(imgMidOffset<minMiddleOffset){imgClickedOffset=(self.leftMargin-Math.abs(minMiddleOffset-imgMidOffset));}else if(imgMidOffset>=minMiddleOffset){imgClickedOffset=self.leftMargin;}
self.imageOffsets.push({leftOffset:prevOffset,width:self.images[iid].thumbW,rightOffset:rightOffset,midOffset:imgMidOffset,thumbDisplayWidth:totalThumbW});self.imgClickedOffsets[iid]=imgClickedOffset;prevOffset=(prevOffset-totalThumbW-imageMargin);}
return true;});var stripW=0;var imgGap=5;dfx.foreach(this.imageOffsets,function(idx){stripW+=self.imageOffsets[idx].thumbDisplayWidth+imgGap;return true;});stripW=(stripW-imgGap);dfx.setStyle(this.thumbStripDiv,'width',stripW+'px');if(stripW<=self.visibleRegionWidth){this.noSliderAnimation=true;}
this.stripWidth=stripW;this.endAnimationLeft=((this.galleryWidth-this.stripWidth)-this.rightMargin);dfx.setStyle(this.thumbListUl,'padding-left','0px');dfx.foreach(this.imgClickedOffsets,function(iid){if(self.imgClickedOffsets[iid]<=self.endAnimationLeft){self.imgClickedOffsets[iid]=self.endAnimationLeft;}
return true;});dfx.setHtml(this.thumbListUl,content);dfx.foreach(this.imageids,function(idx){var iid=self.imageids[idx];var imgid=self.id+'_'+iid;dfx.addEvent(dfx.getId(imgid),'click',function(e){if(self.inAnimation===true){return false;}
self.gallery.displayLoaderImage();self.selectImage(iid);self.locateImageToMiddle(iid,false);});return true;});dfx.hideElement(this.sliderLeftButtonDiv);if(this.noSliderAnimation===true){dfx.hideElement(this.sliderRightButtonDiv);}else{dfx.showElement(this.sliderRightButtonDiv);}
this.onReadyCb=cb;if(this.waitingQueue.length>0){self._processQueueLoader();}},updateNavButtons:function()
{if(this.noSliderAnimation===true){dfx.hideElement(this.sliderLeftButtonDiv);dfx.hideElement(this.sliderRightButtonDiv);}else if(this.stripLeftOffset===this.startAnimationLeft){dfx.hideElement(this.sliderLeftButtonDiv);dfx.showElement(this.sliderRightButtonDiv);}else if(this.stripLeftOffset===this.endAnimationLeft){dfx.hideElement(this.sliderRightButtonDiv);dfx.showElement(this.sliderLeftButtonDiv);}else{dfx.showElement(this.sliderLeftButtonDiv);dfx.showElement(this.sliderRightButtonDiv);}},locateImageToMiddle:function(id,noCallback)
{var self=this;if(this.noSliderAnimation===true){if(noCallback===false){var cbLen=self.onSelectCallbacks.length;for(var i=0;i<cbLen;i++){self.onSelectCallbacks[i].call(self,id);}}
this.updateNavButtons();}else if(this.imgClickedOffsets[id]!==null){this.inAnimation=true;dfx.animate(this.thumbStripDiv,{left:this.imgClickedOffsets[id]},300,function(){if(noCallback===false){var cbLen=self.onSelectCallbacks.length;for(var i=0;i<cbLen;i++){self.onSelectCallbacks[i].call(self,id);}}
self.stripLeftOffset=self.imgClickedOffsets[id];self.inAnimation=false;self.updateNavButtons();});}else{if(noCallback===false){var cbLen=self.onSelectCallbacks.length;for(var i=0;i<cbLen;i++){self.onSelectCallbacks[i].call(self,id);}}}},selectImage:function(id)
{if(this.currentImageid===id){return;}
var oldList=dfx.getId(this.id+'_'+this.currentImageid+'_list');var newList=dfx.getId(this.id+'_'+id+'_list');dfx.removeClass(oldList,'thumbItemSelected');dfx.addClass(newList,'thumbItemSelected');this.currentImageid=id;},_processQueueLoader:function()
{var self=this;if(this.waitingQueue.length>0){var tmp=[];var stop=false;dfx.foreach(this.waitingQueue,function(idx){var iid=self.waitingQueue[idx];var thumbid=self.waitingQueue[idx]+'_tb';if(self.imageLoader.ready(thumbid)===true){var img=dfx.getId(self.id+'_'+iid);if(dfx.isset(img)===false){stop=true;return false;}else{var tW=Math.ceil((self.images[iid].width*self.thumbImageHeight)/self.images[iid].height);img.setAttribute('width',tW);if(self.images[iid].url.search(/\?/)===-1){img.setAttribute('src',self.images[iid].url+'?tb=1');}else{img.setAttribute('src',self.images[iid].url+'&tb=1');}}}else{tmp.push(iid);}
return true;});if(stop===false){this.waitingQueue=tmp;setTimeout(function(){self._processQueueLoader();},500);}}else{self.onReadyCb.call(self);}},addOnSelectCallback:function(cb)
{this.onSelectCallbacks.push(cb);}};mig.ImageLoader=function(galleryid)
{this.galleryid=galleryid;this.images={};this.total=0;this.downloading=0;this.maxDownload=5;this.waiting=[];this.downloadingIntervalId=null;};mig.ImageLoader.prototype={addImage:function(id,url)
{if(dfx.isset(this.images[id])===true){return;}
if(this.downloading>this.maxDownload){this.waiting.push({id:id,url:url});if(this.downloadingIntervalId===null){var self=this;this.downloadingIntervalId=setInterval(function(){self._process();},500);}}else{this._startLoading(id,url,this.galleryid);}
this.total=this.total+1;},ready:function(id)
{if(dfx.isset(this.images[id])===false){return false;}
return this.images[id].ready;},get:function(id)
{if(this.ready(id)===false){return null;}
return this.images[id];},_startLoading:function(id,url,gid)
{var image=new Image();dfx.addEvent(image,'load',function(){if(dfx.isset(mig.imageLoaders[gid])===true){mig.imageLoaders[gid].images[id].ready=true;mig.imageLoaders[gid].downloading=(mig.imageLoaders[gid].downloading-1);}});this.downloading=(this.downloading+1);this.images[id]={ready:false,imgElem:image,url:url};image.src=url;},_process:function()
{var queueLen=this.waiting.length;if(queueLen>0&&this.downloading<this.maxDownload){var nextImg=this.waiting[0];this._startLoading(nextImg.id,nextImg.url,this.galleryid);this.waiting=this.waiting.slice(1);}else if(queueLen===0){clearInterval(this.downloadingIntervalId);this.downloadingIntervalId=null;}}};var SquizSuiteSquizSuiteScreen=new function()
{var _currentProduct=null;var _connectedProducts=[];var _currentTableDOM=null;var _connectedTableDOM=null;var _connectedProductRows=null;var _liveProductsIdx=[];var _refreshScheduled=false;var _newRow=null;var _newDetailRow=null;var _deletedProducts={};this.initScreen=function(data){var self=this;_currentProduct=data.currentProduct;_connectedProducts=data.connectedProducts;_currentTableDOM=dfx.getId('currProductTable');_connectedTableDOM=dfx.getId('connProductsTable');_connectedProductRows=dfx.getTag('tr',dfx.getTag('tbody',_connectedTableDOM));_refreshScheduled=data.refreshScheduled;dfx.foreach(_connectedProductRows,function(idx){if(idx===0){return true;}
if(dfx.hasClass(_connectedProductRows[idx],'rowEven')===true){dfx.addClass(_connectedProductRows[idx],'hidden');}
return true;});var expanders=dfx.getClass('SquizSuiteScreen-productExpander',_connectedTableDOM);dfx.foreach(expanders,function(idx){var span=expanders[idx];dfx.addEvent(span,'click',function(){self.toggleProductDetails(span);});return true;});_deletedProducts={}
var delBtns=dfx.getClass('SquizSuiteScreen-deleteColBtn',_connectedTableDOM);dfx.foreach(delBtns,function(idx){var delBtn=delBtns[idx];dfx.addEvent(delBtn,'click',function(){self.toggleProductDelete(delBtn);});return true;});var btnCon=dfx.getClass('addNewButtonContainer',dfx.getId('squizSuite-connectedProduct-box'))[0];if(data.currentProduct.url===''){dfx.hideElement(btnCon);}else{dfx.showElement(btnCon);}
if(_refreshScheduled===true){var refreshBtn=GUI.getWidget('refreshStatus');refreshBtn.disable();}
_newRow=_connectedProductRows[(_connectedProductRows.length-3)];_newDetailRow=_connectedProductRows[(_connectedProductRows.length-1)];dfx.hideElement(dfx.getClass('GUI-delete',_newDetailRow)[0]);this.toggleNewRow();_liveProductsIdx=[];dfx.foreach(_connectedProducts,function(idx){if(_connectedProducts[idx].status==='live'){_liveProductsIdx.push(idx);}
return true;});if(_liveProductsIdx.length>0){self._initLiveProductStatus(0,null);}};this.toggleProductDetails=function(span){var rowid=parseInt(span.getAttribute('rowid'));var row=_connectedProductRows[rowid+1];if(dfx.hasClass(row,'hidden')===true){dfx.removeClass(row,'hidden');dfx.addClass(span,'expanded');}else{dfx.addClass(row,'hidden');dfx.removeClass(span,'expanded');}};this.toggleProductDelete=function(delBtn){var trDom=dfx.getParents(delBtn,'tr',_connectedTableDOM)[0];var rowid=parseInt(trDom.getAttribute('rowid'));var row=_connectedProductRows[rowid+1];var suiteid=delBtn.getAttribute('suiteid');if(dfx.hasClass(trDom,'deleted')===true){dfx.removeClass(trDom,'deleted');dfx.removeClass(delBtn,'recover');dfx.removeClass(row,'deleted');_deletedProducts[suiteid]=false;}else{dfx.addClass(trDom,'deleted');dfx.addClass(delBtn,'recover');dfx.addClass(row,'deleted');_deletedProducts[suiteid]=true;}
GUI.setTemplateModified('SquizSuite','SquizSuiteScreen',true);};this.addProduct=function(){if(dfx.hasClass(_newRow,'hidden')===true){this.toggleNewRow();}};this.refreshNow=function(event){var screenid='SquizSuite::SquizSuiteScreen';var data={};data[screenid]={type:'refreshNow',schedule:true};var alt=event.altKey;if(alt===true){data[screenid].schedule=false;dfx.foreach(_connectedProducts,function(idx){if(_connectedProducts[idx].status==='live'&&_connectedProducts[idx].type!=='Squiz Update'){var statusDiv=dfx.getId('squizSuite-'+_connectedProducts[idx].suiteid+'-statusWrap');dfx.swapClass(statusDiv,'live','loading');}
return true;});}
var self=this;var params={templateData:dfx.jsonEncode(data)};GUI.sendRequest('GUI','saveTemplateData',params,function(data){if(data.result&&data.result.success){if(alt===true){GUI.reloadTemplate('SquizSuite','SquizSuiteScreen');}else{var refreshBtn=GUI.getWidget('refreshStatus');refreshBtn.setValue('Checking Now ...');refreshBtn.disable();}}});};this.toggleNewRow=function(){if(dfx.hasClass(_newRow,'hidden')===true){dfx.removeClass(_newRow,'hidden');dfx.removeClass(_newDetailRow,'hidden');}else{dfx.addClass(_newRow,'hidden');dfx.addClass(_newDetailRow,'hidden');}};this.approveConnection=function(btn){var screenid='SquizSuite::SquizSuiteScreen';var suiteid=btn.id.replace('squizSuite-','');suiteid=suiteid.replace('-approve-btn','');var data={};data[screenid]={type:'approveConnection',suiteid:suiteid};var self=this;var params={templateData:dfx.jsonEncode(data)};GUI.sendRequest('GUI','saveTemplateData',params,function(data){if(data.result&&data.result.success){self._requestProductSummary(suiteid,function(){});}});};this._initLiveProductStatus=function(idx,callback){var self=this;var suiteid=_connectedProducts[_liveProductsIdx[idx]].suiteid;this._requestProductSummary(suiteid,function(){if(idx<(_liveProductsIdx.length-1)){self._initLiveProductStatus((idx+1),callback);}else{if(callback){callback.call(self);}}});};this._requestProductSummary=function(suiteid,callback){var self=this;var data={};var screenid='SquizSuite::SquizSuiteScreen';data[screenid]={type:'getProductSummary',suiteid:suiteid};var params={templateData:dfx.jsonEncode(data)};GUI.sendRequest('GUI','saveTemplateData',params,function(data){var statusDiv=dfx.getId('squizSuite-'+suiteid+'-statusWrap');var summaryDiv=dfx.getId('squizSuite-'+suiteid+'-summary');if(data.result&&data.result.success){var summaryInfo=data.result.success[screenid];if(dfx.hasClass(statusDiv,'pending')===true){dfx.swapClass(statusDiv,'pending','live');}else{dfx.swapClass(statusDiv,'loading','live');}
var c='<span class="SquizSuiteScreen-summaryLabel">No summary information</span>';var first=true;dfx.foreach(summaryInfo,function(idx){if(first===true){c='';first=false;}
c+='<span class="SquizSuiteScreen-summaryLabel">'+summaryInfo[idx].label+'</span>';c+='<span class="SquizSuiteScreen-summaryValue">'+summaryInfo[idx].value+'</span>';return true;});dfx.setHtml(summaryDiv,c);}else{dfx.swapClass(statusDiv,'loading','error');var c='<span class="SquizSuiteScreen-summaryLabel">';c+='Failed to get the product summary ...</span>';c+='</span>';dfx.setHtml(summaryDiv,c);}
if(callback){callback.call(self);}});};this.getValue=function(){var data={};data.currProductName=GUI.getWidget('squizSuite-currProductName').getValue();data.deletedProducts=_deletedProducts;return data;};this.saved=function(retval){GUI.reloadTemplate('SquizSuite','SquizSuiteScreen');};}
function AbstractWidgetWidgetType(id)
{this.id=id;this.widgetType='Widget';this.action=null;this.domElem=dfx.getId(this.id);this.enabled=true;this.disabledDiv=null;this.attributes={};this.url=Widget.BASE_URL+'/'+Widget.EDIT_SUFFIX;this._events=[];this.widgetAttributes={};this.hasWizardOpts=false;this.onChangeCallbacks=[];this.confirmDialogActive=false;this.onModifiedCallbacks=[];this.onNotModifiedCallbacks=[];this.readOnly=false;this.lockInfo=null;this.saveDelay=500;}
Widget=AbstractWidgetWidgetType;Widget.LEFT=1;Widget.RIGHT=2;Widget.CENTER=4;Widget.TOP=8;Widget.BOTTOM=16;Widget.includes=null;Widget.includeCallbacks=null;Widget.scriptsIncluded=[];Widget.windowResizeCallbacks=[];Widget.registerWindowResize=function(callback)
{if(dfx.isFn(callback)===true){Widget.windowResizeCallbacks.push(callback);}};window.onresize=function(e)
{var len=Widget.windowResizeCallbacks.length;for(var i=0;i<len;i++){Widget.windowResizeCallbacks[i](e);}};Widget.prototype={dblclick:function(){},click:function(){},clickInside:function(){},clickOutside:function(){},focusGained:function(){},focusLost:function(){},getClass:function()
{return this.widgetType+'WidgetType';},getWidgetUrl:function(widgetType)
{var url=Widget.WEB_URL+'/Systems/'+widgetType+'/';return url;},getSkinURL:function(type)
{var url=Widget.WEB_URL+'Skins/'+Widget.ACTIVE_SKIN+'/';if(type){url+=type+'Widget/';}
return url;},includeWidget:function(type,callback)
{this.includeWidgets([type],callback);},includeWidgets:function(types,callback)
{var f=false;if(Widget.includes===null){Widget.includes=[];f=true;}
if(Widget.includeCallbacks===null){Widget.includeCallbacks=[];}
Widget.includes=Widget.includes.concat(types);Widget.includeCallbacks.unshift(callback);if(f===true){this._includeWidgets();}},_includeWidgets:function()
{if(Widget.includes.length===0){Widget.includes=null;var cbs=Widget.includeCallbacks;Widget.includeCallbacks=null;if(cbs){var cbsLen=cbs.length;for(var i=0;i<cbsLen;i++){if(dfx.isFn(cbs[i])){cbs[i].call(this);}}}}else{var type=Widget.includes.shift();var self=this;this._includeWidget(type,function(){self._includeWidgets.call(self);});}},_includeWidget:function(type,callback)
{var jsUrl=Widget.WEB_URL+'Systems/'+type+'Widget/';jsUrl+=type+'WidgetType.js';var cssUrl=Widget.WEB_URL+'Skins/'+Widget.ACTIVE_SKIN+'/';cssUrl+=type+'Widget/'+type+'WidgetType.css';if(typeof type!=='string'||typeof(window[type+'WidgetType'])!=='undefined'||dfx.scriptsIncluded.inArray(jsUrl)===true){dfx.includeCss(cssUrl,function(){callback.call(this);});}else if(typeof(window[type+'WidgetType'])==='undefined'){dfx.includeScript(jsUrl,function(){dfx.includeCss(cssUrl,function(){dfx.scriptsIncluded.push(jsUrl);callback.call(this);});});}},createWidget:function(id,type)
{if(id===null){id=type+'Widget_'+Math.floor(((Math.random()*99999)+1));}
var wObj=null;var args='';var end=arguments.length;for(var i=2;i<end;i++){args+=', arguments['+i+']';}
eval('wObj = new '+type+'WidgetType(id'+args+')');if(wObj.setReadOnly&&dfx.isFn(wObj.setReadOnly)){wObj.setReadOnly(this.readOnly);}
WidgetStore.add(id,wObj);if(this.add){this.add(id);}
return wObj;},ready:function()
{WidgetStore.setData('widgetReady',{widgetid:this.id});},setReadOnly:function(readOnly)
{this.readOnly=readOnly;},setAttribute:function(attr,val)
{this.attributes[attr]=val;},getAttribute:function(attr)
{return this.attributes[attr];},setWidgetAttribute:function(attr,val)
{this.widgetAttributes[attr]=val;},getWidgetAttribute:function(attr,val)
{return this.widgetAttributes[attr];},showOptions:function(){},exportWidget:function()
{var o={};o.widgetType=this.widgetType;if(this.children.length>0){o.children=[];var len=this.children.length;for(var i=0;i<len;i++){o.children.push(this.children[i].exportWidget());}}
return o;},getChildren:function()
{return this.children;},getAllChildren:function()
{var children=[];var len=this.children.length;for(var i=0;i<len;i++){children.push(this.children[i]);children=children.concat(this.children[i].getAllChildren());}
return children;},addEvents:function()
{this._addEvents();},_setEvent:function(el,type,action)
{var self=this;dfx.addEvent(el,type,function(e){action.call(this,e,self);});},_addEvents:function(){},setEvent:function(eventType,eventAction)
{this._events.push({type:eventType,action:eventAction});},enableEditing:function()
{var len=this.children.length;for(var i=0;i<len;i++){this.children[i].enableEditing();}},hasWizardOptions:function()
{return this.hasWizardOpts;},getWizardOptions:function(callback)
{if(dfx.isFn(callback)){callback.call(this,[]);}else{throw'callback must be a function';}},createChildren:function(parent,callback,index)
{if(typeof index==='undefined'){index=0;}
if(this.children[index]){var self=this;this.children[index++].create(function(el){parent.appendChild(el);self.createChildren(parent,callback,index);});}else{if(dfx.isFn(callback)){callback.call(this);}}},createWidgets:function(widgetList,callback,index,length,elements)
{if(dfx.isset(index)===false){index=0;length=widgetList.length;elements=[];}
var self=this;if(index<length){widgetList[index].create(function(el){elements.push(el);self.createWidgets(widgetList,callback,(index+1),length,elements);});}else{if(dfx.isFn(callback)){callback.call(this,elements);}}},disableEditing:function(){},isActive:function()
{if(this.id===WidgetStore.getActiveWidgetId()){return true;}
return false;},show:function(visibilityOnly,displayType)
{if(visibilityOnly===true){dfx.setStyle(this.domElem,'visibility','visible');}else{dfx.setStyle(this.domElem,'visibility','visible');var dt='block';if(dfx.isset(displayType)===true){dt=displayType;}
dfx.setStyle(this.domElem,'display',dt);}},hide:function(visibilityOnly)
{if(visibilityOnly===true){dfx.setStyle(this.domElem,'visibility','hidden');}else{dfx.setStyle(this.domElem,'visibility','hidden');dfx.setStyle(this.domElem,'display','none');}},disable:function()
{this.enabled=false;},enable:function()
{this.enabled=true;},isEnabled:function()
{return this.enabled;},displayUnderConstruction:function(targetid,callback,position)
{var d=document.createElement('div');var id=targetid+'-uc';var disabledDiv=dfx.getId(id);if(!disabledDiv){d.id=id;dfx.setStyle(d,'left','0px');dfx.setStyle(d,'top','0px');dfx.setStyle(d,'position','fixed');dfx.setStyle(d,'height','100%');dfx.setStyle(d,'width','100%');dfx.setStyle(d,'backgroundColor','#fff');dfx.setStyle(d,'zIndex','900');dfx.setStyle(d,'visibility','visible');var targetElem=dfx.getId(targetid);targetElem.setAttribute('old_position',dfx.getStyle(targetElem,'position'));dfx.setStyle(targetElem,'position','relative');if(position){dfx.setStyle(d,'position',position);}
var wrapper=document.createElement('div');wrapper.id=id+'-wrapper';wrapper.className='uc-wrapper';var icon=document.createElement('div');icon.id=id+'-icon';icon.className='uc-icon';var img=document.createElement('img');img.src=Widget.WEB_URL+'Skins/defaultSkin/images/Icons/warning_large.png';icon.appendChild(img);var message=document.createElement('div');message.id=id+'-message';message.innerHTML='This interface is under construction.<br /><span id="'+id+'-uc-click" class="uc-click">Click here to view</span>';message.className='uc-message';wrapper.appendChild(icon);wrapper.appendChild(message);d.appendChild(wrapper);dfx.insertBefore(targetElem.firstChild,d);dfx.addEvent(dfx.getId(id+'-uc-click'),'click',function(){var dd=dfx.getId(id);dfx.setStyle(dd,'display','none');dfx.setStyle(dd,'visibility','hidden');if(dfx.isFn(callback)===true){callback.call(this);}});disabledDiv=d;}else{if(targetId!==null){var targetElem=dfx.getId(targetid);targetElem.setAttribute('old_position',dfx.getStyle(targetElem,'position'));dfx.setStyle(targetElem,'position','relative');}
dfx.setStyle(disabledDiv,'display','block');dfx.setStyle(disabledDiv,'z-index','998');}
return disabledDiv;},displayDisabledDiv:function(showLoader,target,colour,position,loadMsg)
{if(!target){var saveLayer=dfx.getId('__saveLayer');if(saveLayer){dfx.remove(saveLayer);}}
var targetId=target||null;var targetElem=null;if(dfx.isObj(target)===true){targetElem=target;}else if(targetId){targetElem=dfx.getId(targetId);}
var id='';if(targetElem&&targetElem.id){id=targetElem.id+'_disabledDiv';}else{id='_disabledDiv';}
if(dfx.isset(colour)===false){colour='black';}
var disabledDiv=dfx.getId(id);if(!disabledDiv){var d=document.createElement('div');d.id=id;dfx.addClass(d,'disabledDiv');dfx.addClass(d,'disabledDiv-'+colour);if(targetElem){var pos=dfx.getStyle(targetElem,'position');targetElem.setAttribute('old_position',pos);dfx.setStyle(targetElem,'position','relative');if(position){dfx.setStyle(d,'position',position);}
if(dfx.isset(targetElem.firstChild)===true){dfx.insertBefore(targetElem.firstChild,d);}else{dfx.insertBefore(targetElem,d);}}else{dfx.insertBefore(document.body.firstChild,d);}
disabledDiv=d;}else{if(targetElem){targetElem.setAttribute('old_position',dfx.getStyle(targetElem,'position'));dfx.setStyle(targetElem,'position','relative');}
dfx.setStyle(disabledDiv,'display','block');dfx.setStyle(disabledDiv,'z-index','998');var wrapper=disabledDiv;}
if(!target){var toolbar=dfx.getClass('ToolbarWidgetType',document.body)[0];var toolbarMask=dfx.getClass('ToolbarMask',toolbar)[0];if(toolbarMask){dfx.showElement(toolbarMask);}else{var toolbarMask=document.createElement('div');dfx.addClass(toolbarMask,'ToolbarMask');dfx.setHtml(toolbarMask,'&nbsp;');toolbar.appendChild(toolbarMask);}}
var loaderId=id+'_loaderImg';var loaderMsgid=id+'_loaderMsg';var loaderImg=dfx.getId(loaderId);var loaderMsg=dfx.getId(loaderMsgid);if(showLoader===true){if(dfx.isset(loaderImg)===false){loaderImg=document.createElement('div');loaderImg.id=loaderId;var gif=document.createElement('img');if(colour==='black'){gif.src=this.getSkinURL()+'HTMLCanvasWidget/black.gif';}else{gif.src=this.getSkinURL()+'HTMLCanvasWidget/'+colour+'.gif';}
loaderImg.appendChild(gif);dfx.setStyle(gif,'margin','42px 0 0 42px');disabledDiv.appendChild(loaderImg);dfx.addClass(loaderImg,'ajax-loader');if(colour==='white'){dfx.addClass(loaderImg,'ajax-loader-white');}}
if(loaderMsg){dfx.remove(loaderMsg);}
loadMsg=loadMsg||'';loaderMsg=document.createElement('div');loaderMsg.id=loaderMsgid;dfx.addClass(loaderMsg,'msg');dfx.setHtml(loaderMsg,loadMsg);dfx.insertAfter(loaderImg,loaderMsg);}else{dfx.remove(loaderImg);dfx.remove(loaderMsg);}
return disabledDiv;},removeDisabledDiv:function(target,delayed)
{if(delayed===true){var self=this;setTimeout(function(){self.removeDisabledDiv(target);},this.saveDelay);return;}
var targetId=target||null;var targetElem=null;if(dfx.isObj(target)===true){targetElem=target;if(!targetElem.id){return;}}else if(targetId){targetElem=dfx.getId(targetId);}
var id='';if(targetElem&&targetElem.id){id=targetElem.id+'_disabledDiv';}else{id='_disabledDiv';}
var disEl=dfx.getId(id);if(targetElem){dfx.setStyle(targetElem,'position',targetElem.getAttribute('old_position'));}
dfx.setStyle(disEl,'display','none');dfx.setStyle(disEl,'z-index','1000');if(!target){var saveLayer=dfx.getId('__saveLayer');if(saveLayer){dfx.remove(saveLayer);}}
var toolbarMask=dfx.getClass('ToolbarMask',document.body)[0];if(toolbarMask){dfx.hideElement(toolbarMask);}},getDisabledDivid:function(targetElem)
{var id='';if(targetElem&&targetElem.id){id=targetElem.id+'_disabledDiv';}else{id='_disabledDiv';}
return id;},removeLoaderIcon:function(targetElem)
{var id=this.getDisabledDivid(targetElem);var loaderId=id+'_loaderImg';var loaderImg=dfx.getId(loaderId);if(loaderImg){dfx.remove(loaderImg);}},createScreenWarningMessage:function(options,callback)
{var wrap=document.createElement('div');wrap.id=options.id;dfx.addClass(wrap,'scrnWrnWrap');var content='<div class="scrnWrnLeftTitle">'+options.leftTitle+'</div>';if(options.colour==='yellow'){content+='  <div class="scrnWrnRightBody scrnWrnMsgYellow">';}else{content+='  <div class="scrnWrnRightBody scrnWrnMsgRed">';}
content+='    <div class="scrnWrnMsg">'+options.mainMessage+'</div>';content+='    <div class="scrnWrnBtnWrap"> </div>';content+='  </div>';content+='</div>';wrap.innerHTML=content;if(options.buttonTitle!==null){var self=this;var btnWrap=dfx.getClass('scrnWrnBtnWrap',wrap)[0];this.includeWidget('Button',function(){var btnWdgt=self.createWidget(self.id+'-button','Button','ButtonWidgetType-black');btnWdgt.setName(options.buttonTitle);btnWdgt.create(function(btnEl){btnWrap.appendChild(btnEl);if(options.buttonCb){btnWdgt.addClickEvent(function(e){options.buttonCb.call(self,e);});}
btnWdgt.setReadOnly(false);if(callback){callback.call(self,wrap);}});});}else{if(callback){callback.call(this,wrap);}}},addToolbarButton:function(id,title,clickAction,enabled)
{var toolbar=WidgetStore.get('Toolbar');var clickFn=function(){if(!dfx.hasClass(button,'ToolbarWidget-button-disabled')){clickAction.call(this);}};var createNewButton=function(){var main=document.createElement('div');dfx.addClass(main,'ToolbarWidget-button-main');dfx.addClass(main,'ToolbarWidget-button-disabled-main');button=document.createElement('input');dfx.addClass(button,'ToolbarWidget-button');dfx.addClass(button,'ToolbarWidget-button-disabled');button.setAttribute('id',id);button.setAttribute('type','button');button.setAttribute('value',title);dfx.addEvent(button,'mouseover',function(){if(dfx.hasClass(button,'ToolbarWidget-button-enabled')){dfx.addClass(button,'ToolbarWidget-button-enabled-hover');dfx.addClass(button.parentNode,'ToolbarWidget-button-enabled-main-hover');}});dfx.addEvent(button,'mouseout',function(){dfx.removeClass(button,'ToolbarWidget-button-enabled-hover');dfx.removeClass(button.parentNode,'ToolbarWidget-button-enabled-main-hover');});main.appendChild(button);toolbar.addButton(main);return button;};var toolbarBtnData=WidgetStore.getData('toolbarButtons');var button=null;if(toolbarBtnData){var btnLen=toolbarBtnData.length;for(var i=0;i<btnLen;i++){if(toolbarBtnData[i].title===title){button=dfx.getId(toolbarBtnData[i].id);button.setAttribute('id',id);toolbarBtnData[i].id=id;break;}}
if(button===null){button=createNewButton();toolbarBtnData.push({id:id,title:title});}}else{toolbarBtnData=[];toolbarBtnData.push({id:id,title:title});button=createNewButton();}
WidgetStore.setData('toolbarButtons',toolbarBtnData);dfx.removeEvent(button,'click');dfx.addEvent(button,'click',clickFn);return button;},enableToolbarButton:function(id)
{var button=document.getElementById(id);if(button){dfx.removeClass(button,'ToolbarWidget-button-disabled');dfx.addClass(button,'ToolbarWidget-button-enabled');dfx.removeClass(button.parentNode,'ToolbarWidget-button-disabled-main');dfx.addClass(button.parentNode,'ToolbarWidget-button-enabled-main');}},disableToolbarButton:function(id)
{var button=document.getElementById(id);if(button){dfx.removeClass(button,'ToolbarWidget-button-enabled');dfx.addClass(button,'ToolbarWidget-button-disabled');dfx.addClass(button.parentNode,'ToolbarWidget-button-disabled-main');dfx.removeClass(button.parentNode,'ToolbarWidget-button-enabled-main');}},removeToolbarButton:function(id)
{var button=document.getElementById(id);if(button){dfx.remove(button.parentNode);}
var toolbarBtnData=WidgetStore.getData('toolbarButtons');if(toolbarBtnData){var newToolbarBtnData=[];var btnLen=toolbarBtnData.length;for(var i=0;i<btnLen;i++){if(toolbarBtnData[i].id!==id){newToolbarBtnData.push(dfx.clone(toolbarBtnData[i]));}}
WidgetStore.setData('toolbarButtons',newToolbarBtnData);}},removeAllToolbarButtons:function()
{var toolbarBtnData=WidgetStore.getData('toolbarButtons');if(toolbarBtnData){var btnLen=toolbarBtnData.length;for(var i=0;i<btnLen;i++){this.removeToolbarButton(toolbarBtnData[i].id);}
WidgetStore.setData('toolbarButtons',[]);}},getCurrentUrl:function(incSuffix)
{var url=window.location.href;url=url.replace('/'+Widget.EDIT_SUFFIX,'');if(incSuffix===true){url=dfx.addToPath(url,Widget.EDIT_SUFFIX);}
return url;},getContextMenu:function()
{return WidgetStore.get('GlobalContextMenu');},setSaveButton:function(saveCallback,revertCallback,title)
{var saveBtn=WidgetStore.get('EditingSaveButton');saveBtn.setSaveButton(saveCallback,revertCallback,title);},disableSaveButton:function()
{var saveBtn=WidgetStore.get('EditingSaveButton');saveBtn.disableAll();},enableSaveButton:function()
{var saveBtn=WidgetStore.get('EditingSaveButton');saveBtn.enableAll();},save:function(callback,params)
{this.displayDisabledDiv(true);if(!params){params={action:'save',data:dfx.jsonEncode(this.getSaveData())}}
var self=this;this.request(params,function(result){if(!callback){callback=function(){};}
self.processSaveResponse(result,params,callback);});},processSaveResponse:function(data,params,callback)
{try{data=dfx.jsonDecode(data);}catch(e){this._showSaveError(params,callback);return;}
if(data.errors||data.error){this._showSaveFailed(data,callback,params);return;}else if(data.success){this.setModified(false);this._showSaveSuccess();callback.call(this,data.success,data);return;}else{this._showSaveError(params,callback);return;}},_showSaveSuccess:function()
{this.removeLoaderIcon();var id='__saveLayer';var main=dfx.getId(id);if(main){dfx.remove(main);}
main=document.createElement('div');main.id=id;dfx.setHtml(main,'<div class="saveCompleted-icon"></div><div class="saveCompleted-msg">Save Complete</div>');document.body.appendChild(main);},_showSaveFailed:function(data,callback,params)
{var errors=[];if(data.errors){errors=data.errors;}else{errors=[data.error];}
var canForce=null;var forceLockClass='';if(dfx.isset(data.canForceLock)===true){Locking.removeLockByResource(data.resourceid);canForce=false;if(data.canForceLock===true){canForce=true;forceLockClass=' forceLock';}}
this.removeLoaderIcon();var id='__saveLayer';var main=dfx.getId(id);if(main){dfx.remove(main);}
main=document.createElement('div');main.id=id;var content='<div class="saveFailed-icon"></div>';content+='<div class="saveFailed-msg">Unable to Save</div>';content+='<div class="saveFailed-errorList"><ul>';var eln=errors.length;for(var i=0;i<eln;i++){content+='<li>'+errors[i]+'</li>';}
content+='</ul><div class="saveFailed-button'+forceLockClass;content+='"></div></div>';dfx.setHtml(main,content);var self=this;var buttonCont=dfx.getClass('saveFailed-button',main)[0];this.includeWidget('Button',function(){if(canForce!==null){if(canForce===true){var forceButton=self.createWidget(null,'Button','ButtonWidgetType-black');forceButton.setName('Force Lock');forceButton.addClickEvent(function(){Locking.acquire(data.resourceid,function(status){if(status===true){params.lockInfo=dfx.jsonEncode({resource:data.resourceid,token:Locking.getToken(data.resourceid)});self.displayDisabledDiv(true);self.save(callback,params);}},true);},true);forceButton.create(function(buttonEl){buttonCont.appendChild(buttonEl);});}
var revertBtn=self.createWidget(null,'Button','ButtonWidgetType-black');revertBtn.setName('Revert Changes');revertBtn.addClickEvent(function(){self.displayDisabledDiv(true);self.updateScreen(function(){},true);},true);revertBtn.create(function(buttonEl){buttonCont.appendChild(buttonEl);});}else{var button=self.createWidget(null,'Button','ButtonWidgetType-black');button.setName('Return to Screen');button.addClickEvent(function(){self.removeDisabledDiv();callback.call(self,{errors:errors},data);},true);button.create(function(buttonEl){buttonCont.appendChild(buttonEl);});}});document.body.appendChild(main);},_showSaveError:function(params,callback,errorMsg)
{errorMsg=errorMsg||'Save Failed';this.removeLoaderIcon();var id='__saveLayer';var main=dfx.getId(id);if(main){dfx.remove(main);}
main=document.createElement('div');main.id=id;var content='<div class="saveError-icon"></div><div class="saveError-msg">'+errorMsg+'</div>';content+='<div class="saveError-errorList">';content+='<div class="saveError-button"></div></div>';dfx.setHtml(main,content);var self=this;var buttonCont=dfx.getClass('saveError-button',main)[0];this.includeWidget('Button',function(){var cancelButton=self.createWidget(null,'Button','ButtonWidgetType-black');cancelButton.setName('Cancel');cancelButton.addClickEvent(function(){self.removeDisabledDiv();callback.call(self);},true);var retry=self.createWidget(null,'Button','ButtonWidgetType-black');retry.setName('Retry Save');retry.addClickEvent(function(){self.displayDisabledDiv(true);self.save(callback,params);},true);retry.create(function(retryEl){cancelButton.create(function(cancelEl){buttonCont.appendChild(retryEl);buttonCont.appendChild(cancelEl);});});});document.body.appendChild(main);},showError:function(errors,callback)
{var data={errors:errors};callback=callback||function(){};this.displayDisabledDiv(true);this._showSaveFailed(data,callback);},getSaveData:function()
{var saveData={};var len=this.settings.length;for(var i=0;i<len;i++){if(this.settings[i]instanceof Object){for(var op in this.settings[i]){var values={};var opLen=this.settings[i][op].length;for(var j=0;j<opLen;j++){values[this.settings[i][op][j]]=this._getWidgetValue(this.settings[i][op][j]);}
saveData[op]=values;}}else{saveData[this.settings[i]]=this._getWidgetValue(this.settings[i]);}}
return saveData;},loadSettings:function(settings)
{var len=this.settings.length;for(var i=0;i<len;i++){if(this.settings[i]instanceof Object){for(var op in this.settings[i]){var oplen=this.settings[i][op].length;for(var j=0;j<oplen;j++){this._setWidgetValue(this.settings[i][op][j],settings[op][this.settings[i][op][j]]);}}}else{this._setWidgetValue(this.settings[i],settings[this.settings[i]]);}}},getSettingWidget:function(settingid)
{var id=this.id+'-settings:'+settingid;return WidgetStore.get(id);},getSettingValue:function(settingid)
{return this._getWidgetValue(settingid);},setSettingValue:function(settingid,value)
{return this._setWidgetValue(settingid,value);},getSettingElement:function(settingid)
{var id=this.id+'-settings:'+settingid;return dfx.getId(id);},_getWidgetValue:function(settingid)
{var value=null;var id=this.id+'-settings:'+settingid;if(WidgetStore.get(id)){if(!WidgetStore.get(id).getValue){}else{value=WidgetStore.get(id).getValue();}}else{var fn='get'+dfx.ucFirst(settingid)+'SettingValue';if(dfx.isFn(this[fn])===true){value=this[fn].call(this);}}
return value;},_setWidgetValue:function(settingid,value)
{var id=this.id+'-settings:'+settingid;var widget=WidgetStore.get(id);if(dfx.isset(widget)===true){if(dfx.isFn(widget.setValue)===false){}else{widget.setValue(value);}}else{var fn='set'+dfx.ucFirst(settingid)+'SettingValue';if(dfx.isFn(this[fn])===true){this[fn].call(this,value);}}},request:function(params,callback)
{if(dfx.isFn(this.getRequestParams)===true){var thisParams=this.getRequestParams();var keyLen=thisParams.keys.length;for(var i=0;i<keyLen;i++){params[thisParams.keys[i]]=thisParams.vals[i];}}
dfx.post(this.url,params,function(data){if(dfx.isFn(callback)){callback.call(this,data);}});},getRequestParams:function()
{var params={keys:[],vals:[]};return params;},confirmDialog:function(msg,title,okFn,msgOnly,cancelFn)
{var self=this;if(this.confirmDialogActive===true){return;}
this.includeWidget('ModalDialog',function(){var confirmDialog=self.createWidget(self.id+'-confirmDialog','ModalDialog');confirmDialog.setTitle(title);var msgDiv=document.createElement('div');dfx.setStyle(msgDiv,'padding','10px');dfx.setStyle(msgDiv,'background-color','#ffffff');if((msg instanceof Object)===true){if(dfx.isset(msg.nodeType)===true&&msg.nodeType===1){msgDiv.appendChild(msg);}}else{dfx.setHtml(msgDiv,msg);}
confirmDialog.setContent(msgDiv);confirmDialog.create(function(div){self.confirmDialogActive=true;confirmDialog.addButton('Cancel',function(cancelBtn){confirmDialog.addButton('OK',function(okBtn){okBtn.addClickEvent(function(){self.confirmDialogActive=false;confirmDialog.close();if(msgOnly!==true&&dfx.isFn(okFn)===true){okFn.call(self);}});cancelBtn.addClickEvent(function(){self.confirmDialogActive=false;confirmDialog.close();if(msgOnly!==true&&dfx.isFn(cancelFn)===true){cancelFn.call(self);}});});confirmDialog.addOnCloseCallback(function(){self.confirmDialogActive=false;if(dfx.isFn(cancelFn)===true){cancelFn.call(self);}});});confirmDialog.open();});});},errorDialog:function(msg,title,callback)
{var self=this;if(this.confirmDialogActive===true){return;}
this.includeWidget('ErrorDialog',function(){var errorDialog=self.createWidget(self.id+'-errorDialog','ErrorDialog');errorDialog.setTitle(title);var msgDiv=document.createElement('div');if((msg instanceof Object)===true){if(dfx.isset(msg.nodeType)===true&&msg.nodeType===1){msgDiv.appendChild(msg);}}else{dfx.setHtml(msgDiv,msg);}
errorDialog.setContent(msgDiv);errorDialog.create(function(div){self.errorDialogActive=true;errorDialog.addButton('Close',function(closeBtn){closeBtn.addClickEvent(function(){if(callback){callback.call(self);}
errorDialog.close();});});errorDialog.open();});});},addOnChangeEvent:function(fn)
{this.onChangeCallbacks.push(fn);},removeOnChangeEvents:function()
{delete this.onChangeCallbacks;this.onChangeCallbacks=[];},setModified:function(modified,force)
{if(force!==true&&this.readOnly===true){this.disableSaveButton();return;}
if(modified===true){this.enableSaveButton();var mLen=this.onModifiedCallbacks.length;for(var i=0;i<mLen;i++){this.onModifiedCallbacks.call(this);}}else if(modified===false){this.disableSaveButton();var mLen=this.onNotModifiedCallbacks.length;for(var i=0;i<mLen;i++){this.onNotModifiedCallbacks.call(this);}}},addOnModifiedCallback:function(fn,removeOthers)
{if(removeOthers===true){this.onModifiedCallbacks=[];}
this.onModifiedCallbacks.push(fn);},addOnNotModifiedCallback:function(fn,removeOthers)
{if(removeOthers===true){this.onNotModifiedCallbacks=[];}
this.onNotModifiedCallbacks.push(fn);}};function WidgetArrayParser(){}
WidgetArrayParser.parseStyle=function(widget,tag){};Widget.prototype.getWidgetArgs=function()
{return[];};var AssetManagerWidgetType=new function()
{var self=this;this.url='';this.assets={};this.assetTypes={};this.assetPicker=null;this.assetPickerElem=null;this.getAsset=function(assetid,callback,forceUpdate,options){var options=options||null;var params={widget:'AssetManagerWidget',action:'getAsset',assetid:assetid,options:dfx.jsonEncode(options)};this.retrieveData(params,function(assetInfo){var asset=self.createAsset(assetInfo);callback.call(self,asset);});};this.getShadowidFromRemoteid=function(remoteid,callback){var params={widget:'AssetManagerWidget',action:'getShadowAssetidFromRemoteid',remoteid:remoteid};this.retrieveData(params,function(shadowid){callback.call(self,shadowid);});};this.getRemoteidFromShadowid=function(shadowid,callback){var params={widget:'AssetManagerWidget',action:'getRemoteidFromShadowid',remoteid:shadowid};this.retrieveData(params,function(remoteid){callback.call(self,remoteid);});};this.getAssetLineageFromUrl=function(url,callback,forceUpdate){var params={widget:'AssetManagerWidget',action:'getAssetLineageFromUrl',url:url};this.retrieveData(params,function(result){var length=result.length;var lineage=[];for(var i=0;i<(length-1);i++){lineage.push(result[i].assetid);}
callback.call(self,lineage);});};this.getAssetFromUrl=function(url,callback,options){var options=options||null;var params={widget:'AssetManagerWidget',action:'getAssetFromUrl',url:url,options:dfx.jsonEncode(options)};this.retrieveData(params,function(assetInfo){var asset=null;if(assetInfo.length!==0){asset=self.createAsset(assetInfo);}
callback.call(self,asset);});};this.assetLoaded=function(assetid){if(dfx.isset(this.assets[assetid])===true){return true;}
return false;};this.getAssets=function(assetids,callback,forceUpdate,options){if(dfx.isset(assetids)===false||assetids.length<=0){callback.call(self,[]);return;}
var assets=[];var ids=[];var assetidsLen=assetids.length;for(var i=0;i<assetidsLen;i++){if(isNaN(parseInt(assetids[i]))===false){this.assets[assetids[i]]=null;ids.push(assetids[i]);}}
if(ids.length>0){var params={widget:'AssetManagerWidget',action:'getAssets',assetids:dfx.jsonEncode(ids),options:dfx.jsonEncode(options)};this.retrieveData(params,function(assetInfos){var assetInfoLen=assetInfos.length;for(var i=0;i<assetInfoLen;i++){var asset=self.createAsset(assetInfos[i]);assets.push(asset);}
callback.call(self,assets);});}else{callback.call(this,assets);}};this.retrieveData=function(params,callback){dfx.post(this.getUrl(),params,function(data){callback.call(self,data);},null,null,{dataType:'json'});};this.getAssetLineages=function(assetid,rootid,callback,glue,limit){if(this.assetLoaded(assetid)){if(this.assets[assetid].getLineages().length!==0){callback.call(self,this.assets[assetid].lineages,this.assets[assetid]);return;}}
var params={widget:'AssetManagerWidget',action:'getAssetLineages',assetid:assetid,rootid:rootid};if(dfx.isset(glue)===true){params.glue=glue;if(dfx.isset(limit)===true){params.limit=limit;}}
this.retrieveData(params,function(assetInfo){var asset=self.createAsset(assetInfo);callback.call(self,asset.lineages,asset);});};this.createAsset=function(assetInfo){var asset=null;if(assetInfo!==null){asset=new Asset(assetInfo.id);this.assets[asset.id]=asset;asset.lineages=assetInfo.lineages;asset.name=assetInfo.name;asset.type=assetInfo.type;asset.parents=assetInfo.parents;asset.children=assetInfo.children;asset.iconUrl=assetInfo.typeIconURL;asset.attributes=assetInfo.attributes;asset.configuration=assetInfo.configuration;asset.urls=assetInfo.urls;if(dfx.isset(assetInfo.linStr)===true){asset.linStr=assetInfo.linStr;}
if(dfx.isset(assetInfo.projectFolder)===true){asset.projectFolder=assetInfo.projectFolder;}
if(dfx.isset(assetInfo.encodedId)===true){asset.encodedId=assetInfo.encodedId;}}
return asset;};this.getUrl=function(){return window.location.href;};this.assetTypeLoaded=function(type){if(type in this.assetTypes){return true;}
return false;};this.getAssetTypeInfos=function(types,callback){var typesLen=types.length;if(typeof types==='undefined'||typesLen<=0){callback.call(this,[]);return;}
var assetTypes=[];var typesToGet=[];for(var i=0;i<typesLen;i++){if(this.assetTypeLoaded(types[i])){assetTypes.push(this.assetTypes[types[i]]);}else{typesToGet.push(types[i]);}}
if(typesToGet.length>0){var params={widget:'AssetManagerWidget',action:'getAssetTypeInfos',types:dfx.jsonEncode(typesToGet)};this.retrieveData(params,function(typeInfos){var typeInfosLen=typeInfos.length;for(var i=0;i<typeInfosLen;i++){var type=self.addAssetType(typeInfos[i]);assetTypes.push(type);}
callback.call(self,assetTypes);});}else{callback.call(this,assetTypes);}};this.isAssetType=function(assetid,type,callback){var params={widget:'AssetManagerWidget',action:'isAssetType',type:type,assetid:assetid};this.retrieveData(params,function(results){callback.call(this,results);});};this.addAssetType=function(typeInfo){this.assetTypes[typeInfo.typeid]=typeInfo;return typeInfo;};this.getAssetUrl=function(assetid,callback){this.getAsset(assetid,function(asset){callback.call(this,asset.getUrl());});};this.getAssetTypeIconUrl=function(assetType,size){var url=Widget.WEB_URL+'/Systems/AssetType/icons/'+assetType+'_'+size+'.png';return url;};this.searchAsset=function(value,callback,rootnodes){rootnodes=rootnodes||[];var params={widget:'AssetManagerWidget',action:'searchAssets',keyword:value,rootnodes:dfx.jsonEncode(rootnodes)};this.retrieveData(params,function(results){callback.call(this,results);});};this.getLineageAssets=function(lineage,callback){var assetids=lineage.split(':');if(assetids.length>0){this.getAssets(assetids,callback);}};this.createAssetPicker=function(callback,rootNode){var self=this;Widget.prototype.includeWidget('AssetPickerDialog',function(){var assetPicker=Widget.prototype.createWidget('__assetPicker','AssetPickerDialog');if(dfx.isset(rootNode)===true){assetPicker.setRootNode(rootNode);}
assetPicker.create(function(el){assetPicker.open();self.assetPicker=assetPicker;self.getUrl('23:26');if(dfx.isFn(callback)===true){callback.call(this);}});});};this.showAssetPicker=function(rootNode,assetPickedCallback){if(this.assetPicker===null){var self=this;this.createAssetPicker(function(){self.showAssetPicker(rootNode,assetPickedCallback);},rootNode);}else{this.assetPicker.addAssetsSelectedAction(assetPickedCallback,true);this.assetPicker.open();}};this.getProjectFolders=function(callback,projectid){var params={widget:'AssetManagerWidget',action:'getProjectFolders'};if(projectid){params.projectid=projectid;}
this.retrieveData(params,function(results){callback.call(this,results);});};this.getCurrentSite=function(callback){var params={widget:'AssetManagerWidget',action:'getCurrentSite'};this.retrieveData(params,function(results){callback.call(this,results);});};this.getPermission=function(assetid,privilegeid,userid,callback){var uid=userid||null;var params={widget:'AssetManagerWidget',action:'getPermission',assetid:assetid,privilegeid:privilegeid,userid:uid};this.retrieveData(params,function(results){callback.call(this,results);});};this.getPermissions=function(assetid,privilegeids,userid,callback){var uid=userid||null;var params={widget:'AssetManagerWidget',action:'getPermissions',assetid:assetid,privilegeids:dfx.jsonEncode(privilegeids),userid:uid};this.retrieveData(params,function(results){callback.call(this,results);});};this.getProject=function(callback,projectid){var params={widget:'AssetManagerWidget',action:'getProject'};if(projectid){params.projectid=projectid;}
this.retrieveData(params,function(results){callback.call(this,results);});};this.getAssetAutoscrollPath=function(assetid,callback){var params={widget:'AssetManagerWidget',action:'getAssetAutoscrollPath',assetid:assetid};this.retrieveData(params,function(results){callback.call(this,results);});};};function Asset(id)
{this.id=id;this.name='';this.type='asset';this.parents=null;this.children=[];this.info={};this.lineages=[];this.iconUrl='';this.urls=[];}
Asset.prototype={add:function(assetid)
{this.children.push(assetid);},getName:function()
{return this.name;},getType:function()
{return this.type;},getParent:function()
{return this.parent;},setParent:function(assetid)
{this.parent=assetid;},getChildren:function()
{return this.children;},setAssetInfo:function(info)
{this.info=info;},getTypeIconUrl:function()
{return this.iconUrl;},getLineages:function()
{return this.lineages||[];},getAttribute:function(attr)
{if(attr==='name'){return this.name;}
return this.attributes[attr];},getUrl:function(lineage)
{var self=this;var url='';var isArray=dfx.isArray(this.urls);var baseUrl=Widget.SITE_BASE_URL;dfx.foreach(Widget.PROJECT_FOLDER_WEBPATHS,function(idx){var path=Widget.PROJECT_FOLDER_WEBPATHS[idx];if(Widget.BASE_URL.search('/'+path)!==-1){baseUrl=Widget.BASE_URL.replace('/'+path,'');return false;}
return true;});if(isArray===false){if(this.urls.hasOwnProperty(lineage)===true){var findBaseUrl=false;dfx.foreach(this.urls[lineage],function(idx){var u=self.urls[lineage][idx];if(u.search(baseUrl)===0){findBaseUrl=true;url=u;return false;}
return true;});if(findBaseUrl===false){var protocol='http://';if(Widget.USING_SSL===true){protocol='https://';}
dfx.foreach(this.urls[lineage],function(idx){var u=self.urls[lineage][idx];if(u.search(protocol)===0){url=u;return false;}
return true;});}}else{for(var lin in this.urls){if(this.urls.hasOwnProperty(lin)===true){var matched='';var first='';dfx.foreach(this.urls[lin],function(idx){var u=self.urls[lin][idx];if(first===''){first=u;}
if(u.search(baseUrl)===0){matched=u;}
return true;});if(matched!==''){url=matched;}else if(first!==''){url=first;}
break;}}}}else if(isArray===true){dfx.foreach(this.urls,function(idx){if(typeof self.urls[idx]==='string'){if(self.urls[idx].search(baseUrl)===0){url=self.urls[idx];return false;}}
return true;});if(url===''){var len=this.urls.length;if(len===0){return'';}else{url=this.urls[0];}}}else{}
return url;}};var AssetManager=AssetManagerWidgetType;var Locking=new function()
{var self=this;this.lockUpdateInterval=60;var autoUpdateInt=null;this.tokens={};this.errors={};this.updating=false;this.init=function(){WidgetStore.addDataChangeListener('LockManager','activeMode',function(newMode,prevMode){self._reset();});WidgetStore.addDataChangeListener('LockManager','activeScreen',function(newScreen,prevScreen){if(newScreen&&prevScreen&&newScreen.id===prevScreen.id){return;}
self._reset();});};this._reset=function(){self.release(self.tokens);self.tokens={};self.errors={};self.updating=false;clearInterval(autoUpdateInt);};this.getToken=function(resource){if(this.tokens[resource]){return this.tokens[resource];}
return null;};this.acquire=function(resource,callback,force,data){if(force!==true&&this.hasLock(resource)===true){this.update(resource,callback,data);return;}
force=force||false;var params={widget:'LockingWidget',action:'acquire',resource:resource,force:force};dfx.post(Widget.EDIT_URL,params,function(resp){resp=dfx.jsonDecode(resp);var result=false;if(resp.success){self.tokens[resource]=resp.success;result=true;if(this.updating===false){this.startLockUpdate();}}else{result=self._addError(resource,resp.error,data);}
callback.call(self,result);});};this.canForceLock=function(resource,callback){var params={widget:'LockingWidget',action:'canForceLock',resource:resource};dfx.post(Widget.EDIT_URL,params,function(resp){callback.call(this,dfx.jsonDecode(resp));});};this.release=function(tokens,callback){tokens=tokens||this.tokens;if(dfx.isEmpty(tokens)===true){if(callback){callback.call(this);}
return;}
var params={widget:'LockingWidget',action:'release',locktokens:dfx.jsonEncode(tokens)};dfx.post(Widget.EDIT_URL,params,function(resp){resp=dfx.jsonDecode(resp);if(callback){callback.call(this,resp);}});};this.update=function(resource,callback,data){var params={widget:'LockingWidget',action:'update',resource:resource,locktoken:this.tokens[resource]};dfx.post(Widget.EDIT_URL,params,function(resp){resp=dfx.jsonDecode(resp);var result=true;if(resp.error){result=self._addError(resource,resp.error,data);}
if(dfx.isFn(callback)===true){callback.call(self,result);}});};this.updateAll=function(){var params={widget:'LockingWidget',action:'updateLocks',locktokens:dfx.jsonEncode(this.tokens)};dfx.post(Widget.EDIT_URL,params,function(data){});};this.hasLock=function(resource){if(this.tokens[resource]){return true;}
return false;};this.removeLockByResource=function(resource){if(this.tokens[resource]){delete this.tokens[resource];}};this._addError=function(resource,error,data){var errid=dfx.getUniqueId();error.data=data;error.resource=resource;this.errors[errid]=error;return errid;};this.getError=function(id,noRemove){var err=false;if(this.errors[id]){err=this.errors[id];if(noRemove!==true){delete this.errors[id];}}
return err;};this.hasErrors=function(){for(var e in this.errors){if(this.errors.hasOwnProperty(e)===true){return true;}}
return false;};this.startLockUpdate=function(){this.updating=true;autoUpdateInt=setInterval(function(){self.updateAll();},(this.lockUpdateInterval*1000));};this.init();};var MessageDialog=new function()
{var modalDialog=null;this.msgid=null;this.prepare=function(id,content,type,callback,title){this.msgid=id;title=title||this.getTypeTitle(type);Widget.prototype.includeWidgets('ModalDialog',function(){var msg=document.createElement('div');dfx.addClass(msg,'MessageDialog');dfx.addClass(msg,'MessageDialog-'+type);modalDialog=Widget.prototype.createWidget('MessageDialog-'+id,'ModalDialog');if(typeof content==='string'){dfx.setHtml(msg,content);}else{msg.appendChild(content);}
modalDialog.addOnCloseCallback(function(){WidgetStore.setData('activeMessage','');});modalDialog.setContent(msg);modalDialog.setTitle(title);modalDialog.create(function(){callback.call(this);});});};this.show=function(){modalDialog.open();WidgetStore.setData('activeMessage',this.msgid);};this.addButton=function(title,callback){modalDialog.addButton(title,function(button){button.addClickEvent(callback);});};this.close=function(){modalDialog.close();};this.hideCloseButton=function(){modalDialog.hideCloseButton();};this.getTypeTitle=function(type){var title='';switch(type){case'error':title='Error';break;case'warning':title='Warning';break;case'notice':title='Notice';break;default:title='';break;}
return title;};};function RuleTypeEmailWidgetType(id,value,allowEmpty)
{this.widgetType='RuleTypeEmailWidgetType';this.value=value;this.widgetid='';this.allowEmpty=allowEmpty;}
RuleTypeEmailWidgetType.prototype={reset:function()
{this.simpleResult=false;this.widget=null;this.value=null;this.server=true;this.client=true;this.errors=[];},setValue:function(val)
{this.value=val;},setWidgetid:function(wid)
{this.widgetid=wid;},setAllowEmpty:function(op)
{if(typeof op==='string'){var opStr=op.toLowerCase();if(opStr==='true'){this.allowEmpty=true;}else if(opStr==='false'){this.allowEmpty=false;}}else{this.allowEmpty=op;}},validate:function()
{var local='\d0-9a-zA-Z-_+';var localMiddle=local+'\.\\w';var normalPtn='^(['+local+'](['+localMiddle+'\']*['+local+']){0,1}@(((?:[\da-zA-Z]|[\da-zA-Z][\'-.\\w]*[\da-zA-Z])\.)+[a-zA-Z]{2,7}))$';var disNamePtn='^[a-zA-Z]+(([ \'\,\.\-][ a-zA-Z])?[a-zA-Z]*)*\s+<(['+local+'](['+localMiddle+']*['+local+']){0,1}@(((?:[\da-zA-Z]|[\da-zA-Z][\'-\w]*[\da-zA-Z])\.)+[a-zA-Z]{2,7}))>$';var normalRe=new RegExp(normalPtn,"g");var disNameRe=new RegExp(disNamePtn,"g");if(this.allowEmpty===true&&this.value.length===0){return true;}else if(disNameRe.test(this.value)===true){return true;}else if(normalRe.test(this.value)===true){return true;}else{this.errors=[];this.errors.push('Email address is not valid.');return false;}},getErrors:function()
{return this.errors;}};function RuleTypeIntegerWidgetType(id,value,intOnly)
{this.value=null;this.intOnly=false;this.widgetid='';if(typeof intOnly!=='undefined'&&intOnly!==null){this.intOnly=intOnly;}
if(typeof value!=='undefined'&&value!==null){this.value=value;}}
RuleTypeIntegerWidgetType.prototype={reset:function()
{this.simpleResult=false;this.widget=null;this.value=null;this.server=true;this.client=true;this.errors=[];},setValue:function(val)
{this.value=val;},setWidgetid:function(wid)
{this.widgetid=wid;},validate:function()
{if(this.intOnly===true){var checkVal=this.value;var val=Number(this.value);var decimalCheck=(/\.0+$|\.$/.test(checkVal));checkVal=parseInt(val,10);if(val!==checkVal||decimalCheck===true){return false;}}
return true;}};function RuleTypeLengthWidgetType(id,value,operator,length)
{this.widgetType='RuleTypeLengthWidgetType';this.value=value;this.length=null;this.operator=null;this.plain=false;this.widgetid='';if(typeof length!=='undefined'&&length!==null){this.setLength(length);}
if(typeof operator!=='undefined'&&operator!==null){this.setOperator(operator);}}
RuleTypeLengthWidgetType.prototype={reset:function()
{this.simpleResult=false;this.widget=null;this.value=null;this.server=true;this.client=true;this.errors=[];},setValue:function(val)
{this.value=val;},setWidgetid:function(wid)
{this.widgetid=wid;},setLength:function(len)
{this.length=len;},setPlain:function(plain)
{this.plain=plain;},setOperator:function(op)
{this.operator=op;switch(op){case'==':this.opDesc='equal to';break;case'!=':this.opDesc='no equal to';break;case'>':this.opDesc='larger than';break;case'<':this.opDesc='smaller than';break;case'>=':this.opDesc='equal or larger than';break;case'<=':this.opDesc='equal or smaller than';break;default:this.opDesc='';break;}},validate:function()
{this.errors=[];var result=false;var length=this.value.length;if(this.plain===true){length=this.value;}
var evalStr='result = ('+length+' '+this.operator+' '+this.length+');';eval(evalStr);if(result===true){return true;}else{var msg='The length of "'+this.value+'" is not '+this.opDesc+' '+this.length+'.';this.errors.push(msg);return false;}},getErrors:function()
{return this.errors;}};function RuleTypeMagnitudeWidgetType(id,value,min,max)
{this.value=null;this.min=null;this.max=null;this.widgetid='';if(typeof value!=='undefined'&&value!==null){this.value=value;}
if(typeof min!=='undefined'&&min!==null&&min!==''){this.min=Number(min);}
if(typeof max!=='undefined'&&max!==null&&max!==''){this.max=Number(max);}}
RuleTypeMagnitudeWidgetType.prototype={reset:function()
{this.simpleResult=false;this.widget=null;this.value=null;this.server=true;this.client=true;this.errors=[];},setValue:function(val)
{this.value=val;},setWidgetid:function(wid)
{this.widgetid=wid;},validate:function()
{var val=Number(this.value);if(this.min===null&&this.max!==null){if(val>this.max){return false;}}
if(this.min!==null&&this.max===null){if(val<this.min){return false;}}
if(this.min!==null&&this.max!==null){if(this.min>=this.max){return true;}
if(val<this.min||val>this.max){return false;}}
return true;}};function RuleTypeNumberWidgetType(id,value)
{this.value=null;this.widgetid='';if(typeof value!=='undefined'&&value!==null){this.value=value;}}
RuleTypeNumberWidgetType.prototype={reset:function()
{this.simpleResult=false;this.widget=null;this.value=null;this.server=true;this.client=true;this.errors=[];},setWidgetid:function(wid)
{this.widgetid=wid;},setValue:function(val)
{this.value=val;},validate:function()
{var val=Number(this.value);if(isNaN(val)===true){return false;}
var checkVal=parseInt(this.value,10);if(val===checkVal){return true;}
checkVal=parseFloat(this.value);if(val===checkVal){return true;}
return false;},getErrors:function()
{return this.errors;}};function RuleTypePasswordWidgetType(id,value)
{this.widgetType='RuleTypePasswordWidgetType';this.value=value;this.desc=document.getElementById(id+'-desc');this.color=document.getElementById(id+'-color');this.matched=document.getElementById(id+'-matched');this.widgetid='';this.currentRating=0;this.width=140;this.stepWidth=Math.round(this.width/5);}
RuleTypePasswordWidgetType.prototype={setValue:function(val)
{this.value=val;},validate:function()
{return true;},setWidgetid:function(wid)
{this.widgetid=wid;},update:function()
{var result=this.getPasswdRating(this.value);if(result!==this.currentRating){this.updateRatingBar(result);this.currentRating=result;}},getPasswdRating:function(val)
{var score=1;if(val.length>=6){score++;}
if(val.match(/[a-z]+/)!==null&&val.match(/[A-Z]+/)!==null&&val.match(/[0-9]+/)!==null){score++;}
if(val.match(/[ ]+/)!==null){score++;}
if(val.match(/[!@#$%^&*\?_~\-\(\)]+/)!==null){score++;}
if(val.length>=12){score++;}
return score;},updateRatingBar:function(rating)
{var str='';var classN='';var width=this.width;var color='';switch(rating){case 1:str='Weak';color='#ff0000';width=this.stepWidth;break;case 2:str='Better';color='#ff5f5f';width=(this.stepWidth*2);break;case 3:str='Medium';color='#56e500';width=(this.stepWidth*3);break;case 4:str='Strong';color='#4dcd00';width=(this.stepWidth*4);break;case 5:str='Very strong';color='#399800';break;default:str='Very weak';color='#cccccc';break;}
this.desc.innerHTML=str;this.color.style.width=width+'px';this.color.style.backgroundColor=color;}};function RuleTypePositiveWidgetType(id,value,positiveOnly)
{this.value=null;this.positiveOnly=false;this.widgetid='';if(typeof positiveOnly!=='undefined'&&positiveOnly!==null){this.positiveOnly=positiveOnly;}
if(typeof value!=='undefined'&&value!==null){this.value=value;}}
RuleTypePositiveWidgetType.prototype={reset:function()
{this.simpleResult=false;this.widget=null;this.value=null;this.server=true;this.client=true;this.errors=[];},setWidgetid:function(wid)
{this.widgetid=wid;},setValue:function(val)
{this.value=val;},validate:function()
{if(this.positiveOnly===true){var val=Number(this.value);if(val<0){return false;}}
return true;}};function RuleTypeUrlWidgetType(id)
{this.widgetType='RuleTypeUrlWidgetType';this.value=null;this.widgetid='';this.allowEmpty=false;this.requireProtocol=true;}
RuleTypeUrlWidgetType.prototype={reset:function()
{this.simpleResult=false;this.widget=null;this.value=null;this.server=true;this.client=true;this.errors=[];},setValue:function(val)
{this.value=val;},setWidgetid:function(wid)
{this.widgetid=wid;},setAllowEmpty:function(op)
{if(typeof op==='string'){var opStr=op.toLowerCase();if(opStr==='true'){this.allowEmpty=true;}else if(opStr==='false'){this.allowEmpty=false;}}else{this.allowEmpty=op;}},setRequireProtocol:function(op)
{if(typeof op==='string'){var opStr=op.toLowerCase();if(opStr==='true'){this.requireProtocol=true;}else if(opStr==='false'){this.requireProtocol=false;}}else{this.requireProtocol=op;}},validate:function()
{if(this.allowEmpty===true&&this.value.length===0){return true;}else if(dfx.validateUrl(this.value,this.requireProtocol,['http','https'])===true){return true;}else{return false;}},getErrors:function()
{return this.errors;}};function UnregisteredDomainWidgetType(type,firstLogin,urls,superUser,domain,pInfo)
{var self=this;this.type=type||null;if(this.type==='login'){this.initLogin();}else if(this.type==='domain'){this.firstLogin=firstLogin||false;this.urls=urls||[];this.superUser=superUser||false;this.domain=domain||'';this.pInfo=pInfo||{};this.initDomain();}else if(this.type==='network'){this.superUser=superUser||false;this.initNetworkConfiguration();}}
UnregisteredDomainWidgetType.prototype={initLogin:function()
{dfx.getId('LoginUsername').focus();dfx.setHtml(dfx.getId('LoginError'),'&nbsp;');},submit:function()
{var self=this;var url=(new String(document.location)).valueOf();this.clearError();var username=dfx.getId('LoginUsername').value;var authQryStr={auth_action:'login',step:'req_chal',username:username};dfx.get(dfx.addToQueryString(url,authQryStr),null,function(data){var challenge=data.getElementsByTagName('challenge').item(0).firstChild.nodeValue;if(challenge!=='0'){var password=dfx.getId('LoginPassword').value;var hashedPassword=hex_md5(hex_hmac_sha1(challenge,hex_sha1(password)));var browserInfo=dfx.browser();authQryStr.step='req_auth';authQryStr.password=hashedPassword;authQryStr.bt=browserInfo.type;authQryStr.bv=browserInfo.version;dfx.get(dfx.addToQueryString(url,authQryStr),null,function(data){var login=data.getElementsByTagName('login');var status=login.item(0).firstChild.nodeValue;if(status==='0'){var errorMsg=data.getElementsByTagName('error').item(0).firstChild.nodeValue;self.displayError(errorMsg);return false;}else{window.location.reload();return true;}});}else{var errorMsg=data.getElementsByTagName('error').item(0).firstChild.nodeValue;self.displayError(errorMsg);return false;}});return false;},clearError:function()
{dfx.setHtml(dfx.getId('LoginError'),'&nbsp;');},displayError:function(msg)
{dfx.setHtml(dfx.getId('LoginError'),msg);},initDomain:function()
{var self=this;if(this.superUser===true){var selectbox=dfx.getId('registerDomainToProject');var button=dfx.getId('UnregisteredDomainWidgetType-register');if(selectbox){dfx.swapClass(button,'ButtonWidgetType-black','ButtonWidgetType-black-disabled');this.buttonDisabled=true;dfx.addEvent(selectbox,'change',function(){if(selectbox.value==='0'){dfx.swapClass(button,'ButtonWidgetType-black','ButtonWidgetType-black-disabled');self.buttonDisabled=true;}else{dfx.swapClass(button,'ButtonWidgetType-black-disabled','ButtonWidgetType-black');self.buttonDisabled=false;}});}
dfx.addEvent(dfx.getId('UnregisteredDomainWidgetType-register_content'),'click',function(e){if(self.buttonDisabled&&self.buttonDisabled===true){return;}
var text=dfx.getClass('UnregisteredDomainWidgetType-middle-text',document.body)[0];text.innerHTML=text.innerHTML+'<br /><br />'+self.domain+' will be added to the System. Please wait for a moment.';var first='false';if(self.firstLogin===true){first='true';}
var url=(new String(document.location)).valueOf();var regQryStr={action:'registerDomain',domain:escape(self.domain),firstLogin:first};if(selectbox){regQryStr.projectid=selectbox.value;}
dfx.get(dfx.addToQueryString(url,regQryStr),{},function(res){if(res==='success'){text.innerHTML=text.innerHTML+'<br /><br />Congratulations! The new domain has been successfully installed. The page will be automatically redirected.';dfx.hideElement(dfx.getId('UnregisteredDomainWidgetType-register'));setTimeout(function(){window.location=self.domain+'/_edit';},1000);}else if(res==='failure'){text.innerHTML='Error occurred during adding a new domain. Please contact Squiz for further instruction.';}});});}
dfx.setStyle(dfx.getClass('EditingAutoSave-middle',document.body)[0],'height','100%');dfx.foreach(this.pInfo,function(pid){dfx.foreach(self.pInfo[pid],function(idx){dfx.addEvent(dfx.getId('url-'+pid+'-'+idx+'_content'),'click',function(e){window.location=self.pInfo[pid][idx]+'/_edit';});});});},initNetworkConfiguration:function()
{var self=this;var middle=dfx.getClass('EditingAutoSave-middle',dfx.getId('EditingAutoSave'))[0]
dfx.setStyle(middle,'height','100%');if(this.superUser===true){dfx.addEvent(dfx.getId('UnregisteredDomainWidgetType-confirm_content'),'click',function(e){var re=/\d{1,3}/;var values={};values.hostname=dfx.getId('hostname').value;if(dfx.trim(values.hostname)===''){alert('Please type the hostname');return;}
values.mailname=dfx.getId('mailname').value;if(dfx.trim(values.mailname)===''){alert('Please type the mailname');return;}
var types=['ip','netmask','gateway','broadcast','nameserver1','nameserver2'];var typesLn=types.length;for(var i=0;i<typesLn;i++){values[types[i]]=[];for(var j=0;j<4;j++){var val=dfx.getId(types[i]+j).value;if(re.test(val)===false){alert('Please enter the valid value in '+types[i]);return;}
values[types[i]].push(val);}}
var params={action:'networkConfiguration',values:dfx.jsonEncode(values)};dfx.hideElement(dfx.getClass('UnregisteredDomainWidgetType-formTable',dfx.getId('EditingAutoSave'))[0]);dfx.post(window.location.href,params,function(res){if(res==='success'){dfx.hideElement(dfx.getId('UnregisteredDomainWidgetType-confirm'));var middle=dfx.getClass('UnregisteredDomainWidgetType-middle',dfx.getId('EditingAutoSave'))[0]
var msg=document.createElement('div');msg.id='savingMessage';dfx.setHtml(msg,'Please wait while the new network settings are applied');dfx.addClass(msg,'UnregisteredDomainWidgetType-middle-text');dfx.setStyle(msg,'margin-left','93px');var progress=document.createElement('div');progress.id='savingProgress';var content='<div id="networkStatus" class="ajax-loader" style="background-image: url('+window.location.href.replace('/_edit','')+'/__web/Skins/defaultSkin/HTMLCanvasWidget/black_bg.png)">';content+='<img class="networkImage" src="'+window.location.href.replace('/_edit','')+'/__web/Skins/defaultSkin/HTMLCanvasWidget/black.gif" style="margin: 42px 0pt 0pt 42px;"/>';content+='</div>';content+='<div id="_disabledDiv_loaderMsg" class="msg"/>';dfx.setHtml(progress,content);dfx.addClass(progress,'UnregisteredDomainWidgetType-middle-text');var netStatus=dfx.getClass('ajax-loader',progress)[0];var image=dfx.getClass('networkImage',progress)[0];dfx.setStyle(middle,'height','150px');dfx.setStyle(netStatus,'margin-top','-28px');dfx.setStyle(netStatus,'top','0px');var iid=setInterval(function(){var params={action:'networkConfigDone'};dfx.post(window.location.href,params,function(res){if(res==='true'){dfx.setHtml(dfx.getId('savingMessage'),'The new network settings were applied successfully');dfx.setStyle(dfx.getId('savingMessage'),'margin-left','116px');var content='<div id="_disabledDiv_loaderImg" class="ajax-loader" style="margin-top: -22px; top: 0px; padding-bottom: 0px; background-image: url('+window.location.href.replace('/_edit','')+'/__web/Skins/defaultSkin/HTMLCanvasWidget/save_success.png)">';content+='&nbsp;';content+='</div>';content+='<div id="_disabledDiv_loaderMsg" class="msg"/>';dfx.setHtml(progress,content);clearInterval(iid);}else if(res==='failed'){dfx.setHtml(dfx.getId('savingMessage'),'The new network configuration has been failed. The old configuration has been recovered.');dfx.setStyle(dfx.getId('savingMessage'),'width','335px');dfx.setStyle(dfx.getId('savingProgress'),'margin-top','0px');var content='<div id="_disabledDiv_loaderImg" class="ajax-loader" style="margin-top: -22px; top: 0px; padding-bottom: 0px; background-image: url('+window.location.href.replace('/_edit','')+'/__web/Skins/defaultSkin/HTMLCanvasWidget/connection_fail.png)">';content+='&nbsp;';content+='</div>';content+='<div id="_disabledDiv_loaderMsg" class="msg"/>';dfx.setHtml(progress,content);clearInterval(iid);}});},10000);middle.appendChild(msg);middle.appendChild(progress);}else if(res==='failed'){alert('The new network settings caused the system to stop responding. The previous settings have been restored.');}else{res=dfx.jsonDecode(res);if(dfx.isset(res.result)===true&&res.result==='invalid'){alert(res.field+' is not a valid IP address.');}}});});}}};function AbstractAssetPickerViewWidgetType(id,picker)
{Widget.call(this,id);this.picker=picker;this.rootAssetid=null;this.currentAssetid=null;this.assetSelectedActions=[];this.assetDblClickedActions=[];this.loaderActions=[];this.lineageUpdatedActions=[];this.selectedAssets=[];this.lineage=[];this.switchOffActions=[];this.active=false;}
AbstractAssetPickerViewWidgetType.prototype={setInitialRoots:function(roots){},setRoot:function(assetid,setCurrent,callback)
{this.lineage=[assetid];this.rootAssetid=assetid;callback.call(this);},setCurrentAsset:function(assetid,clear,callback){},setLineage:function(lineage,selectedAssets){},setSelectedAssets:function(assets)
{this.selectedAssets=assets;},fireAssetSelected:function(assetid)
{var aln=this.assetSelectedActions.length;for(var i=0;i<aln;i++){this.assetSelectedActions[i].call(this,assetid);}},fireAssetDoubleClicked:function(assetid)
{var aln=this.assetDblClickedActions.length;for(var i=0;i<aln;i++){this.assetDblClickedActions[i].call(this,assetid);}},addAssetSelectedAction:function(callback)
{this.assetSelectedActions.push(callback);},addAssetDoubleClickedAction:function(callback)
{this.assetDblClickedActions.push(callback);},startLoading:function()
{this.fireLoadingActions(true);},endLoading:function()
{this.fireLoadingActions(false);},fireLoadingActions:function(started)
{var ln=this.loaderActions.length;for(var i=0;i<ln;i++){this.loaderActions[i].call(this,started);}},addLoaderAction:function(fn)
{this.loaderActions.push(fn);},addLinageUpdatedAction:function(fn)
{this.lineageUpdatedActions.push(fn);},fireLineageUpdatedActions:function()
{var ln=this.lineageUpdatedActions.length;for(var i=0;i<ln;i++){this.lineageUpdatedActions[i].call(this,this.lineage.concat([]),this.selectedAssets);}},getSelectedAssets:function()
{return this.selectedAssets;},isActive:function()
{return this.active;},addSwitchOffAction:function(callback)
{this.switchOffActions.push(callback);},fireSwitchOffActions:function()
{var ln=this.switchOffActions.length;for(var i=0;i<ln;i++){this.switchOffActions[i].call(this);}}};dfx.inherits('AbstractAssetPickerView','Widget');function AbstractAttributeEditorWidgetType(id)
{this.id=id;this.attributes=[];this.active=false;this.attrType='';}
AbstractAttributeEditorWidgetType.prototype={load:function(callback)
{callback.call(this);},init:function()
{this.attributes=[];},addAttribute:function(attrid,assetid,elem)
{var attribute=this.getAttribute(attrid,assetid);if(attribute!==null){attribute.addNode(elem);}else{attribute=new Attribute(attrid,assetid,dfx.getHtml(elem),elem,this.attrType);this.attributes.push(attribute);}
return attribute;},getAttribute:function(attrid,assetid)
{var atrs=this.attributes;var l=atrs.length;for(var i=0;i<l;i++){if(parseInt(atrs[i].assetid)===parseInt(assetid)&&atrs[i].attrid===attrid){return atrs[i];}}
return null;},isActive:function()
{return this.active;},activate:function(data)
{this.active=true;},deactivate:function()
{this.active=false;},remove:function(){},isModified:function()
{var ln=this.attributes.length;for(var i=0;i<ln;i++){if(this.attributes[i].isModified()===true){return true;}}},getModifiedValues:function()
{var values=[];var ln=this.attributes.length;for(var i=0;i<ln;i++){var attr=this.attributes[i];if(attr.isModified()===true){values.push({attrid:attr.attrid,assetid:attr.assetid,value:this.getAttributeValue(attr)});}}
return values;},getModifiedAttributes:function()
{var attributes=[];var ln=this.attributes.length;for(var i=0;i<ln;i++){var attr=this.attributes[i];if(attr.isModified()===true){attributes.push(attr);}}
return attributes;},getAttributeValue:function(attr)
{return dfx.getHtml(attr.nodes[0]);},isAttributeModified:function(attrid,assetid)
{var attr=this.getAttribute(attrid,assetid);if(attr){return attr.isModified();}
return false;},revertAttributeValue:function(attrid,assetid)
{var attr=this.getAttribute(attrid,assetid);if(attr){var initVal=attr.getInitialValue();attr.setValue(initVal);var nl=attr.nodes.length;for(var i=0;i<nl;i++){dfx.setHtml(attr.nodes[i],initVal);}}},setAttributeValue:function(attrid,assetid,value)
{var attr=this.getAttribute(attrid,assetid);if(attr){dfx.foreach(attr.nodes,function(i){if(attr.nodes[i]){dfx.setHtml(attr.nodes[i],value);attr.setValue(value);}});}}};dfx.inherits('AbstractAttributeEditor','Widget');function Attribute(attrid,assetid,value,el,type)
{this.attrid=attrid;this.assetid=assetid;this.value=value;this.initialValue=value;this.prevValue=value;this.nodes=[el];this.type=type;}
Attribute.prototype={addNode:function(node)
{this.nodes.push(node);},setValue:function(val)
{this.value=val;},getPrevValue:function()
{return this.prevValue;},getValue:function()
{return this.value;},getInitialValue:function()
{return this.initialValue;},setInitialValue:function(val)
{this.initialValue=val;},isModified:function()
{if(this.initialValue!==this.value){return true;}
return false;},updatePrevValue:function()
{this.prevValue=this.value;}};function AbstractContainerWidgetType(id)
{Widget.call(this,id);this.children=[];}
AbstractContainerWidgetType.prototype={add:function(id)
{this.children.push(id);},setReadOnly:function(readOnly)
{Widget.prototype.setReadOnly.call(this,readOnly);var cln=this.children.length;for(var i=0;i<cln;i++){var childWidget=WidgetStore.get(this.children[i]);if(childWidget){childWidget.setReadOnly(readOnly);}}},addEvents:function()
{Widget.prototype.addEvents.call(this);var len=this.children.length;for(var i=0;i<len;i++){this.children[i].addEvents();}
var el=dfx.getId(this.id);var self=this;var evs=this._events;var evLen=evs.length;for(i=0;i<evLen;i++){this._setEvent(el,evs[i].type,evs[i].action);}}};dfx.inherits('AbstractContainer','Widget');function AbstractEditingToolbarIconWidgetType(id)
{Widget.call(this,id);this.addHoverEvent();this.state='inactive';}
AbstractEditingToolbarIconWidgetType.prototype={addHoverEvent:function()
{var self=this;var wrapper=dfx.getId(this.id);dfx.hover(dfx.getId(this.id),function(){dfx.addClass(wrapper,'ToolbarIcon-wrapper-hover');},function(){dfx.removeClass(wrapper,'ToolbarIcon-wrapper-hover');});},setTitle:function(title)
{var wrapper=dfx.getId(this.id);if(wrapper){dfx.attr(wrapper,'title',title);}},toggleState:function(state)
{if(this.state===state){return;}
var button=dfx.getId(this.id+'-icon');var len=button.childNodes.length;var img=null;for(var i=0;i<len;i++){if(button.childNodes[i].nodeName==='IMG'){img=button.childNodes[i];}}
if(img===null){return;}
var wrapper=dfx.getId(this.id);if(state==='active'){this.state='active';dfx.addClass(wrapper,'ToolbarIcon-wrapper-active');}else if(state==='inactive'){this.state='inactive';dfx.removeClass(wrapper,'ToolbarIcon-wrapper-active');}}};dfx.inherits('AbstractEditingToolbarIcon','Widget');function AbstractSplashScreenWidgetType(id,dates)
{Widget.call(this,id);this.dates=dates;this.addDateClickEvent();this.addImageThumbMouseEvent();this.thumbDisplayed=false;}
AbstractSplashScreenWidgetType.prototype={addDateClickEvent:function()
{var self=this;var len=this.dates.length;for(var i=0;i<len;i++){(function(index){var dateStr=self.dates[index];var dateid=dateStr.toLowerCase().replace(/ /,'_').replace(/ /,'_');var dateDiv=dfx.getId(self.id+'-dateDiv-'+dateid);var dateWpDiv=dfx.getId(self.id+'-dateLogsWrapper-'+dateid);dfx.addEvent(dateDiv,'click',function(){if(dfx.hasClass(dateWpDiv,'SplashScreenLogsShown')===true){dfx.swapClass(dateWpDiv,'SplashScreenLogsShown','SplashScreenLogsHidden');dfx.swapClass(dateDiv,'SplashScreenDateDivExpanded','SplashScreenDateDivCollapsed');}else{dfx.swapClass(dateWpDiv,'SplashScreenLogsHidden','SplashScreenLogsShown');dfx.swapClass(dateDiv,'SplashScreenDateDivCollapsed','SplashScreenDateDivExpanded');}});})(i);}},addImageThumbMouseEvent:function()
{var self=this;var thumbs=dfx.getClass('SplashScreenThumb');var len=thumbs.length;for(var i=0;i<len;i++){(function(index){dfx.addEvent(thumbs[index],'mouseover',function(evt){var viewer=dfx.getId('SplashScreenThumbViewer');if(viewer===null){dfx.displayThumbViewer(thumbs[index],evt,self);}else if(dfx.getStyle(dfx.getId('SplashScreenThumbViewer'),'display')==='none'){dfx.displayThumbViewer(thumbs[index],evt,self);}
dfx.addClass(dfx.getId('SplashScreenThumbViewer-eventMask'),'SplashScreenThumbViewerEventMask');});})(i);}}};dfx.inherits('AbstractSplashScreen','Widget');function AccountManagerWizardWidgetType(id,settings)
{Widget.call(this,id);this.widgetType='AccountManagerWizard';this.id=id;this.settings=settings;this.createState=WidgetStore.get(this.id+'-settings:createState');this.verifyEmail=WidgetStore.get(this.id+'-settings:verifyEmail');this.init();}
AccountManagerWizardWidgetType.prototype={init:function()
{var self=this;if(this.createState){var section=dfx.getId(this.id+'-section-am_controls-items');var items=dfx.getClass('SectionWidgetType-section-item',section);var verifyDiv=items[1];this.createState.addToggleOffEvent(function(){dfx.showElement(verifyDiv);if(self.createState.toggleDisabled===false){self.verifyEmail.enable();}});this.createState.addToggleOnEvent(function(){dfx.hideElement(verifyDiv);self.verifyEmail.setValue(false);self.verifyEmail.disable();});}
this.setValue(this.settings);var defValue={createState:true,verifyEmail:false};this.setDefaultValue(defValue);},setLocalInstanceDefaultValue:function(localInstanceDefaultValue)
{this.localInstanceDefaultValue=localInstanceDefaultValue;},getLocalInstanceDefaultValue:function()
{return this.localInstanceDefaultValue;},getLocalInstanceDefaultNotSetValue:function()
{return null;},setDefaultValue:function(defaultValue)
{this.defaultValue=defaultValue;},getDefaultValue:function()
{return this.defaultValue;},getDefaultNotSetValue:function()
{return null;},getValueNotSetValue:function()
{return null;},getValue:function()
{var result={createState:this.createState.getValue(),verifyEmail:this.verifyEmail.getValue()};return result;},setValue:function(settings)
{if(settings===this.getValueNotSetValue()){settings={createState:this.createState.getValueNotSetValue(),verifyEmail:this.verifyEmail.getValueNotSetValue()};}
var self=this;this.createState.setValue(settings.createState,function(){self.verifyEmail.setValue(settings.verifyEmail);});},disable:function()
{this.createState.disable();this.verifyEmail.disable();},enable:function()
{this.createState.enable();this.verifyEmail.enable();}};dfx.inherits('AccountManagerWizard','Widget');function AdminScreensAccessWidgetType(id,privileges,permissions)
{Widget.call(this,id);this.widgetType='AdminScreensAccess';this.privileges=privileges;this.permissions=permissions;this.unsavedPrv={};this.tmpDeleted={};this.initPrv={};this.expanded={};this.postWidget=null;this.assetPicker=WidgetStore.get('EditingAssetPicker');this.assetPicker.setScreen('securityAdminScrnAccess');this.assetPicker.addProjectFolderWhiteList('securityAdminScrnAccess','Users');this.assetPicker.setHideSite('securityAdminScrnAccess');this.assetPicker.setUniqueSelect(false);this.init();}
AdminScreensAccessWidgetType.prototype={init:function()
{var self=this;this.addInfoboxEvent();this.addDeleteButtonEvent();this.addAddGroupEvent();this.setSaveButton(function(){self.saveSettings();},function(){self.revert();});},saveSettings:function()
{var self=this;var params={screen:'SecurityAdminScreenWidget',type:'save',newData:dfx.jsonEncode(this.unsavedPrv),oldData:dfx.jsonEncode(this.initPrv)};this.displayDisabledDiv(true);this.postWidget.processScreen(params,function(){self.setModified(false);self.reset();self.removeDisabledDiv(null,true);},true);},reset:function()
{for(var prvid in this.tmpDeleted){for(var gid in this.tmpDeleted[prvid]){this.deleteRow(prvid,gid);}}
this.initPrv=dfx.clone(this.unsavedPrv);this.tmpDeleted={};this._updateCount();},revert:function()
{var self=this;var sas=WidgetStore.get('SecurityAdminScreen');this.displayDisabledDiv(true);sas.loadAdminScreensAccess(function(){for(var prvid in self.expanded){self.expand(prvid);}
this.adminScreensAccessWdgt.expanded=dfx.clone(self.expanded);self.removeDisabledDiv();});},addInfoboxEvent:function()
{var self=this;var items=dfx.getClass('InfoBoxWidgetType-Grey-item');dfx.addEvent(items,'click',function(e){dfx.removeClass(items,'selected');var target=dfx.getMouseEventTarget(e);if(dfx.hasClass(target,'InfoBoxWidgetType-Grey-item')===false){var parent=dfx.getParents(target,'.InfoBoxWidgetType-Grey-item');target=parent[0];}
var item=dfx.getClass('PermName',target)[0];var prvid=item.id.replace('item-','');var wrap=dfx.getId(self.id+'-wrap-'+prvid);dfx.addClass(target,'selected');dfx.hideElement(dfx.getClass('ScreenContainer'));dfx.showElement(wrap);});var pLen=this.privileges.length;for(var i=0;i<pLen;i++){var item=dfx.getId('item-'+this.privileges[i]);if(item){dfx.trigger(item,'click');break;}}},addDeleteButtonEvent:function()
{var self=this;var permLen=this.permissions.length;for(var i=0;i<permLen;i++){var prvid=this.permissions[i].privilegeid;var groupid=this.permissions[i].userid;var id=this.id+'-delete-'+prvid+'-'+groupid;this.removeGroup(id);var nouserTd=dfx.getId(this.id+'-groupTable-'+prvid+'-row-nouser');dfx.hideElement(nouserTd);if(dfx.isset(this.unsavedPrv[prvid])===false){this.unsavedPrv[prvid]={};this.initPrv[prvid]={};}
this.unsavedPrv[prvid][groupid]=1;this.initPrv[prvid][groupid]=1;}},addAddGroupEvent:function()
{var self=this;var prvsLen=this.privileges.length;for(var j=0;j<prvsLen;j++){var addId=this.id+'-addGroup-'+this.privileges[j];var btnWdgt=WidgetStore.get(addId);this.addGroup(btnWdgt.id);}},addGroup:function(btnid)
{var self=this;var btnWdgt=WidgetStore.get(btnid);btnWdgt.addClickEvent(function(e){self._toggleAllAddNewButtons(false);var prvid=btnWdgt.id.replace(/AdminScreensAccess-addGroup-/,'');self.assetPicker.addAssetsSelectedAction(function(users){var len=users.length;for(var i=0;i<len;i++){self._addGroup(prvid,[users[i]]);}
self.setModified(true);},true);self.displayDisabledDiv(true);self.assetPicker.init('securityAdminScrnAccess',function(){self.assetPicker.dialog.open();});self.assetPicker.addCloseAction(function(){self._toggleAllAddNewButtons(true);self.removeDisabledDiv(null,true);});});},_toggleAllAddNewButtons:function(enable)
{var c='ButtonWidgetType';if(enable===true){c='ButtonWidgetType-disabled';}
var container=dfx.getId('AdminScreensAccess-wrap');var buttons=dfx.getClass(c,container);var len=buttons.length;for(var i=0;i<len;i++){this._toggleAddNewButton(buttons[i].id,enable);}},_toggleAddNewButton:function(buttonid,enable)
{var button=WidgetStore.get(buttonid);if(button){if(enable===true){button.enable();}else{button.disable();}}},_addGroup:function(prvid,userid)
{var self=this;if(dfx.isset(this.unsavedPrv[prvid])===true&&dfx.isset(this.unsavedPrv[prvid][userid])===true){return;}
var params={screen:'SecurityAdminScreenWidget',type:'getGroupInfo',groupid:dfx.jsonEncode(userid)};this.postWidget.getScreenData(params,function(data){if(data!==''){self.addRow(prvid,dfx.jsonDecode(data));}});},addRow:function(prvid,data)
{var btnId=this.id+'-delete-'+prvid+'-'+data.id;var html='<img src="'+data.url+'" />';html+='<span class="groupName">'+data.name+'</span>';html+='<div id="'+btnId+'" prvid="'+prvid+'" ';html+='gid="'+data.id+'" class="deleteIcon" ';html+='type="'+data.typeid+'">&nbsp;</div>';var tid=this.id+'-groupTable-'+prvid;var table=WidgetStore.get(tid);var row=table.createRowAsElement([html],['groupName'],data.id);table.addRow(row);this.removeGroup(btnId);if(dfx.isset(this.unsavedPrv[prvid])===false){this.unsavedPrv[prvid]={};}
this.unsavedPrv[prvid][data.id]=1;},deleteRow:function(prvid,gid)
{var tid=this.id+'-groupTable-'+prvid;var table=WidgetStore.get(tid);var row=dfx.getId(tid+'-row-'+gid);table.deleteRow(row);var summary=dfx.getId('summary-'+prvid);var total=parseInt(dfx.attr(summary,'total'),10);if(total===0){var nouserTd=dfx.getId(this.id+'-groupTable-'+prvid+'-row-nouser');dfx.showElement(nouserTd);dfx.setStyle(nouserTd,'display','table-row');}},removeGroup:function(gid)
{var self=this;var deleteBtn=dfx.getId(gid);dfx.addEvent(deleteBtn,'click',function(){var prvid=dfx.attr(this,'prvid');var group=dfx.attr(this,'gid');var type=dfx.attr(this,'type');var tid=self.id+'-groupTable-'+prvid;var row=dfx.getId(tid+'-row-'+group);var td=row.getElementsByTagName("td")[0];if(dfx.hasClass(this,'deleteIcon-recover')===true){if(dfx.isset(self.unsavedPrv[prvid])===false){self.unsavedPrv[prvid]={};}
self.unsavedPrv[prvid][group]=1;delete self.tmpDeleted[prvid][group];dfx.swapClass(this,'deleteIcon-recover','deleteIcon');dfx.swapClass(td,'TableWidgetType-cell-groupName-recover','TableWidgetType-cell-groupName');return;}
if(dfx.isset(self.unsavedPrv[prvid][group])===true){delete self.unsavedPrv[prvid][group];if(dfx.isset(self.tmpDeleted[prvid])===false){self.tmpDeleted[prvid]={};}
self.tmpDeleted[prvid][group]=1;}
dfx.swapClass(this,'deleteIcon','deleteIcon-recover');dfx.swapClass(td,'TableWidgetType-cell-groupName','TableWidgetType-cell-groupName-recover');self.setModified(true);});},_updateCount:function()
{for(var prvid in this.initPrv){var c=0;for(var gid in this.initPrv[prvid]){c++;}
dfx.setHtml(dfx.getId('item-'+prvid+'-count'),'('+c+')');}},setReadOnly:function(readOnly)
{var wrap=dfx.getId(this.id+'-wrap');if(readOnly===true){this.disableSaveButton();dfx.swapClass(wrap,'notReadOnly','readOnly');}else{this.setModified(false);dfx.swapClass(wrap,'readOnly','notReadOnly');}},forceEdit:function()
{var wrap=dfx.getId(this.id+'-wrap');this.setModified(false);dfx.swapClass(wrap,'readOnly','notReadOnly');var len=this.privileges.length;for(var i=0;i<len;i++){this.showButton(this.privileges[i]);}},showButton:function(prvid)
{var id=this.id+'-addGroup-'+prvid;var button=WidgetStore.get(id);button.setReadOnly(false);}};dfx.inherits('AdminScreensAccess','Widget');function AssetLineageWidgetType(id,picker)
{Widget.call(this,id);this.widgetType='AssetLineage';this.assets=[];this.list=null;this.picker=picker||null;this.hideProject=true;this.itemClickedEvents=[];}
AssetLineageWidgetType.prototype={create:function(callback)
{var id=this.id;var c=this.getClass();var main=document.createElement('div');main.id=id;dfx.addClass(main,c+'-lineageWrap');var ol=document.createElement('ol');ol.id=id+'-list';dfx.addClass(ol,c+'-list');main.appendChild(ol);this.list=ol;var total=this.getTotalAssets();var index=0;var aln=this.assets.length;for(var i=0;i<aln;i++){ol.appendChild(this._createItem(this.assets[i],i,total));}
callback.call(this,main);},setHideProject:function(hide)
{this.hideProject=hide;},_createItem:function(assetid,index,total)
{var c=this.getClass()+'-item';var li=document.createElement('li');dfx.addClass(li,c);li.id='asset_'+assetid;dfx.addClass(li,'asset_'+assetid);if(index===0){dfx.addClass(li,'first');if(this.hideProject===true){dfx.hideElement(li);}}
if((total-1)===index){dfx.addClass(li,'last');}
if(this.picker!==null){this.picker.getAsset(assetid,function(asset){var content='<div class="'+c+'-title">';content+='<div class="'+c+'-text">'+asset.name+'</div>';content+='<div class="'+c+'-arrow"></div>';dfx.setHtml(li,content);});}else{AssetManager.getAsset(assetid,function(asset){var content='<div class="'+c+'-title">';content+='<div class="'+c+'-text">'+asset.name+'</div>';content+='<div class="'+c+'-arrow"></div>';dfx.setHtml(li,content);});}
var self=this;dfx.addEvent(li,'click',function(){self.fireItemClickedEvents(assetid);var skipOne=false;if(parseInt(assetid,10)===parseInt(self.picker.projectid,10)){skipOne=true;}
while(li.nextSibling){if(skipOne===false){dfx.remove(li.nextSibling);self.assets.pop();}else{li=li.nextSibling;skipOne=false;}}
self.update();});return li;},setAssets:function(assets)
{if(this.list&&this.list.childNodes){if(parseInt(this.assets[0],10)!==parseInt(assets[0],10)){this.resetAssets(assets);return;}
this.assets=[];var cln=this.list.childNodes.length;for(var i=0;i<cln;i++){this.assets.push(parseInt(this.list.childNodes[i].id.replace('asset_','')));}
var ln=this.assets.length;var start=0;for(var i=0;i<ln;i++){if(parseInt(this.assets[i],10)!==parseInt(assets[i],10)){break;}
start++;}
for(var i=ln;i>=start;i--){if(this.assets[i]){delete this.assets[i];dfx.remove(this.list.childNodes[i]);}}
var aln=assets.length;for(var i=start;i<aln;i++){this.append(assets[i]);}
this.update();}
this.assets=assets;},resetAssets:function(assets)
{dfx.empty(this.list);var aln=assets.length;for(var i=0;i<aln;i++){this.list.appendChild(this._createItem(assets[i],i,aln));}
this.assets=assets;this.update();},append:function(assetid)
{var total=this.getTotalAssets();this.list.appendChild(this._createItem(assetid,total,(total+1)));this.update();},update:function()
{dfx.removeClass(this.list.childNodes,'selected');dfx.removeClass(this.list.childNodes,'aselected');dfx.removeClass(this.list.childNodes,'last');if(this.list.childNodes&&this.list.childNodes.length>0){dfx.addClass(this.list.childNodes[(this.list.childNodes.length-1)],'last');}},fireItemClickedEvents:function(assetid)
{var ln=this.itemClickedEvents.length;for(var i=0;i<ln;i++){this.itemClickedEvents[i].call(this,assetid);}},addItemClickedEvent:function(fn)
{this.itemClickedEvents.push(fn);},getTotalAssets:function()
{var total=0;for(var id in this.assets){if(this.assets.hasOwnProperty(id)===true){total++;}}
return total;}};dfx.inherits('AssetLineage','Widget');function AssetPickerWidgetType(id)
{Widget.call(this,id);this.assetid=null;this.lastid=null;this.widgetType='AssetPicker';this.pickerid=this.id+'-assetPicker';this.whiteList=[];this.blackList=[];this.hideSite=false;this.pickerTitle='Asset Finder';this.pickerSubTitle='';this.pickerOpenedCallbacks=[];this.setSelectedCallbacks=[];this.clearAssetidCallbacks=[];this.resetConfirmation='';}
AssetPickerWidgetType.prototype={setReadOnly:function(readOnly)
{AbstractWidgetWidgetType.prototype.setReadOnly.call(this,readOnly);if(dfx.getId(this.id)){var readOnlyDiv=dfx.getId(this.id+'-readOnly');var widgetDiv=dfx.getId(this.id+'-wrap');if(readOnly){dfx.showElement(readOnlyDiv);dfx.hideElement(widgetDiv);}else if(!readOnly){dfx.showElement(widgetDiv);dfx.hideElement(readOnlyDiv);}}},create:function(callback)
{var self=this;var div=document.createElement('div');div.id=this.id;dfx.addClass(div,this.widgetType);var wrap=document.createElement('div');wrap.id=this.id+'-wrap';dfx.addClass(wrap,this.widgetType+'-wrap');var rod=document.createElement('div');rod.id=this.id+'-readOnly';dfx.addClass(rod,this.widgetType+'-readOnly');if(this.readOnly){dfx.hideElement(wrap);}else{dfx.hideElement(rod);}
var _attachClickEvent=function(wrap){var btnDiv=dfx.getClass(self.widgetType+'-btn',wrap)[0];dfx.addEvent(btnDiv,'click',function(e){if(dfx.hasClass(dfx.getId(self.id+'-assetPicker'),'disabled')===false){self.displayDisabledDiv(true);self.assetPicker=WidgetStore.get('EditingAssetPicker');self.assetPicker.setScreen(self.pickerid);self.assetPicker.setTitle(self.pickerTitle);if(self.pickerSubTitle!==''){self.assetPicker.setSubTitle(self.pickerSubTitle);}
self.assetPicker.setUniqueSelect(true);self.assetPicker.addAssetsSelectedAction(function(assets){var assetid=assets[0];self.assetid=assetid;self.setSelectedAsset(assetid,function(){self.hideRevertButton();});},true,self.id+'-assetPicker');var whiteLen=self.whiteList.length;for(var i=0;i<whiteLen;i++){self.assetPicker.addProjectFolderWhiteList(self.pickerid,self.whiteList[i]);}
var blackLen=self.blackList.length;for(var j=0;j<blackLen;j++){self.assetPicker.addProjectFolderBlackList(self.pickerid,self.blackList[j]);}
self.assetPicker.setHideSite(self.pickerid,self.hideSite);self.assetPicker.init(self.id+'-assetPicker',function(){self.assetPicker.dialog.open();var cbLen=self.pickerOpenedCallbacks.length;for(var i=0;i<cbLen;i++){self.pickerOpenedCallbacks[i].call(self);}});}});var resetDiv=dfx.getClass(self.widgetType+'-reset',wrap)[0];dfx.attr(resetDiv,'title','Click to reset the value');var revertDiv=dfx.getClass(self.widgetType+'-revert',wrap)[0];dfx.attr(revertDiv,'title','Click to revert the value');dfx.addEvent(resetDiv,'click',function(e){self.reset();});dfx.addEvent(revertDiv,'click',function(e){self.setValue(self.lastid);self.hideRevertButton();self.showClearButton();});if(self.assetid===null){dfx.hideElement(resetDiv,true);}
if(dfx.isFn(callback)===true){div.appendChild(wrap);div.appendChild(rod);callback.call(self,div);return;}};var content='<div class="'+this.widgetType+'-left">&nbsp;</div>';if(this.assetid===null){var nonSelAst=self._createNonSelectedAsset();content+=nonSelAst;content+='<div id="'+this.id+'-assetPicker" class="'+this.widgetType+'-btn">Choose</div>';dfx.setHtml(wrap,content);dfx.setHtml(rod,self._createNonSelectedAsset(true));_attachClickEvent(wrap);}else{var options={attributes:['name'],type:false,typeIcon:false,linking:[],urls:false};AssetManager.getAsset(this.assetid,function(asset){var selAst=self._createSelectedAsset(asset.id,asset.iconUrl,asset.name);content+='<div id="'+self.id+'-middle" class="'+self.widgetType+'-middle">';content+=selAst;content+='</div>';content+='<div id="'+self.id+'-resetWrap" class="'+self.widgetType+'-resetWrap">';if(self.readOnly===true){content+='  <div id="'+self.id+'-reset" style="visibility: hidden;" class="'+self.widgetType+'-reset">&nbsp;</div>';}else{content+='  <div id="'+self.id+'-reset" class="'+self.widgetType+'-reset">&nbsp;</div>';}
content+='</div>';content+='<div id="'+self.id+'-revertWrap" class="'+self.widgetType+'-revertWrap">';content+='  <div id="'+self.id+'-revert" class="'+self.widgetType+'-revert">&nbsp;</div>';content+='</div>';content+='<div id="'+self.id+'-assetPicker" class="'+self.widgetType+'-btn">Change</div>';dfx.setHtml(wrap,content);dfx.setHtml(rod,self._createNonSelectedAsset(true));_attachClickEvent(wrap);},false,options);}},_createNonSelectedAsset:function(readOnly)
{var content='';if(readOnly===true){content+='<div id="'+this.id+'-middle" class="'+this.widgetType+'-middle-readOnly">Nothing selected</div>';}else{content+='<div id="'+this.id+'-middle" class="'+this.widgetType+'-middle">Nothing selected</div>';}
if(readOnly!==true){content+='<div id="'+this.id+'-resetWrap" class="'+this.widgetType+'-resetWrap">';content+='  <div id="'+this.id+'-reset" class="'+this.widgetType+'-reset">&nbsp;</div>';content+='</div>';}
content+='<div id="'+this.id+'-revertWrap" class="'+this.widgetType+'-revertWrap">';content+='  <div id="'+this.id+'-revert" class="'+this.widgetType+'-revert">&nbsp;</div>';content+='</div>';return content;},_createSelectedAsset:function(assetid,iconUrl,name)
{var content='';content+='<div class="'+this.widgetType+'-selected-icon"><img src="'+iconUrl+'" /></div>';content+='<div class="'+this.widgetType+'-selected-name">'+dfx.ellipsize(name,20)+'</div>';content+='<div class="'+this.widgetType+'-selected-assetid">[#'+assetid+']</div>';return content;},setProjectFolderWhiteList:function(folderTypes)
{this.whiteList=folderTypes||[];},setPickerTitle:function(title)
{this.pickerTitle=title;},setPickerSubTitle:function(subTitle)
{this.pickerSubTitle=subTitle;},setProjectFolderBlackList:function(folderTypes)
{this.blackList=folderTypes||[];},setHideSite:function(hideSite)
{this.hideSite=hideSite;},disable:function()
{this.disabled=true;dfx.addClass(dfx.getId(this.id+'-assetPicker'),'disabled');this.hideClearButton();},enable:function()
{this.disabled=false;dfx.removeClass(dfx.getId(this.id+'-assetPicker'),'disabled');this.showClearButton();},setResetConfirmation:function(msg)
{this.resetConfirmation=msg;},reset:function()
{if(this.resetConfirmation!==''){var self=this;var target=dfx.getId(this.id+'-resetWrap');this._showIntervention('reset',target,this.resetConfirmation,'OK','Cancel','250px','70px',function(){self._hideIntervention('reset');self._reset();});}else{this._reset();}},_showIntervention:function(id,target,msg,ok,cancel,width,height,okCb,cancelCb)
{var self=this;this._hideIntervention(id);this.includeWidget('Intervention',function(){if(dfx.isset(okCb)===false){okCb=function(){};}
if(dfx.isset(cancelCb)===false){cancelCb=function(){};}
var pop=self.createWidget('Intervention-'+id,'Intervention',cancelCb,okCb);pop.confirmText=ok;pop.cancelText=cancel;pop.create(function(){pop.setSize(width,height);pop.setMessage(msg);pop.show(target);});});},_hideIntervention:function(id)
{var cancel=dfx.getId('Intervention-'+id+'-cancelButton');if(cancel){dfx.trigger(cancel,'click');}},_reset:function()
{if(this.assetid!==null){this.lastid=this.assetid;}
this.setValue(null);var cbLen=this.clearAssetidCallbacks.length;for(var i=0;i<cbLen;i++){this.clearAssetidCallbacks[i].call(this,this.lastid);}
this.assetid=null;var middle=dfx.getId(this.id+'-middle');var childLen=middle.childNodes.length;for(var i=(childLen-1);i>=0;i--){dfx.remove(middle.childNodes[i]);}
dfx.getId(this.id+'-middle').innerHTML='Nothing selected';dfx.getId(this.id+'-assetPicker').innerHTML='Choose';this.hideClearButton();this.showRevertButton();this.setModified(true);},setSelectedAsset:function(assetid,callback)
{var self=this;this.assetid=assetid;var options={attributes:['name'],type:false,typeIcon:true,linking:[],urls:false};var _update=function(asset){var middle=dfx.getId(self.id+'-middle');middle.innerHTML='';var astContent=self._createSelectedAsset(asset.id,asset.iconUrl,asset.name);middle.innerHTML=astContent;dfx.getId(self.id+'-assetPicker').innerHTML='Change';dfx.getId(self.id+'-readOnly').innerHTML='';dfx.getId(self.id+'-readOnly').innerHTML=astContent;var cbLen=self.setSelectedCallbacks.length;for(var i=0;i<cbLen;i++){self.setSelectedCallbacks[i].call(self,assetid);}
if(self.disabled!==true){self.showClearButton();}
if(callback){callback.call(self);}};AssetManager.getAsset(assetid,function(asset){var count=0;var _ready=function(){var middle=dfx.getId(self.id+'-middle');if(!middle){count++;setTimeout(function(){if(count<=3){_ready();}},300);}else{_update(asset);}};_ready();},false,options);},addPickerOpenedCallback:function(fn,rmOthers)
{if(rmOthers){this.pickerOpenedCallbacks=[];}
this.pickerOpenedCallbacks.push(fn);},addSelectedCallback:function(fn,rmOthers)
{if(rmOthers){this.setSelectedCallbacks=[];}
this.setSelectedCallbacks.push(fn);},addClearAssetidCallback:function(fn,rmOthers)
{if(rmOthers){this.clearAssetidCallbacks=[];}
this.clearAssetidCallbacks.push(fn);},getValue:function()
{return this.assetid;},hideClearButton:function()
{dfx.hideElement(dfx.getId(this.id+'-reset'),true);},showClearButton:function()
{dfx.showElement(dfx.getId(this.id+'-reset'),true);},hideRevertButton:function()
{dfx.hideElement(dfx.getId(this.id+'-revert'));dfx.hideElement(dfx.getId(this.id+'-revertWrap'));},showRevertButton:function()
{dfx.showElement(dfx.getId(this.id+'-revert'));dfx.showElement(dfx.getId(this.id+'-revertWrap'));},setValue:function(assetid,callback)
{var self=this;if(assetid===null||assetid===0){this.hideClearButton();}else{this.setSelectedAsset(assetid,function(){if(self.disabled===false){self.showClearButton();}
if(dfx.isFn(callback)===true){callback.call(self);}});}}};dfx.inherits('AssetPicker','Widget');function AssetTagLineWidgetType(id,width)
{Widget.call(this,id);this.widgetType='AssetTagLine';this.clickMode='assetFinder';this.goToClassName=this.widgetType+'-assetInfo-goTo';this.nonAstClassName=this.widgetType+'-assetInfo-noAsset';this.assetid=null;this.name=null;this.iconUrl=null;this.url=null;this.assetType=null;this.width=width||250;this.assetLoaded=false;this.elem=null;this.noUrl=false;}
AssetTagLineWidgetType.prototype={setReadOnly:function(readOnly){},setAssetid:function(assetid)
{this.assetid=assetid;},setCustomData:function(data)
{this.assetid=data.id;this.name=data.name;this.iconUrl=data.iconUrl;this.assetType=data.assetType;this.url=data.url||'';this.assetLoaded=true;this.error=data.error;if(this.url===''||this.url.search("/__designs/")!==-1||this.assetid===0||this.error===true){this.noUrl=true;}},keyDown:function(e)
{if(e.altKey){this.clickMode='goTo';dfx.addClass(this.elem,this.goToClassName);}else{this.clickMode='assetFinder';dfx.removeClass(this.elem,this.goToClassName);}},create:function(callback)
{var self=this;var buildDom=function(){var a=document.createElement('a');a.id=self.id;a.title=self.assetType;dfx.addClass(a,self.widgetType+'-assetInfo');a.href='#';if(self.noUrl===true){dfx.addClass(a,self.nonAstClassName);}
dfx.addEvent(a,'click',function(e){if(self.noUrl===false){if(self.clickMode==='assetFinder'){AssetManager.getAssetAutoscrollPath(self.assetid,function(lineage){self.assetPicker=WidgetStore.get('EditingAssetPicker');self.assetPicker.setScreen('Usage');self.assetPicker.setUniqueSelect(true);self.assetPicker.addProjectFolderWhiteList('Usage','Documents');self.assetPicker.addProjectFolderWhiteList('Usage','Images');self.assetPicker.addProjectFolderWhiteList('Usage','Movies');self.assetPicker.addProjectFolderWhiteList('Usage','Users');self.assetPicker.setSaveButtonCheck(true);self.assetPicker.setCurrentAsset(self.assetid);self.assetPicker.setAutoScrollLineage(lineage,'Usage');self.displayDisabledDiv(true);self.assetPicker.init('Usage',function(){self.assetPicker.dialog.open();});self.assetPicker.addAssetsSelectedAction(function(selectedAssets){var len=selectedAssets.length;if(len===0){return;}
var lin=this.getSelectLineage();lin.shift();var last=lin[(lin.length-1)];if(last!==selectedAssets[0]){lin.push(selectedAssets[0]);}
lin=lin.join(':');JumperEditingToolbarIconWidgetType.prototype.jumpToAsset.call(self,selectedAssets,lin);},true);});}else if(self.clickMode==='goTo'){self.displayDisabledDiv(true);window.location.href=self.url+'/_edit';dfx.preventDefault(e);return;}}
dfx.preventDefault(e);});if(self.noUrl===false){dfx.hover(a,function(e){dfx.addEvent(document,'keydown.assetTagLine',function(e){return self.keyDown(e);});dfx.addEvent(document,'keyup.assetTagLine',function(e){dfx.removeClass(self.elem,self.goToClassName);self.clickMode='assetFinder';});},function(e){dfx.removeEvent(document,'.assetTagLine');});}
var iconSpan=document.createElement('span');iconSpan.title=a.title;dfx.addClass(iconSpan,self.widgetType+'-assetIcon');dfx.addClass(iconSpan,self.widgetType+'-alignLeft');if(self.error===true){dfx.addClass(iconSpan,'warning');}else{dfx.setStyle(iconSpan,'background-image','url(\''+self.iconUrl+'\')');}
var nameSpan=document.createElement('span');dfx.addClass(nameSpan,self.widgetType+'-assetName');dfx.addClass(nameSpan,self.widgetType+'-alignLeft');if(self.error===true){dfx.addClass(nameSpan,'warning');}
var browserInfo=dfx.browser();if(browserInfo.type==='msie'){if(self.width!==null){dfx.setStyle(nameSpan,'max-width',self.width+'px');}
dfx.setHtml(nameSpan,self.name);}else{dfx.setStyle(nameSpan,'visibility','hidden');dfx.setHtml(nameSpan,self.name);var titleWidth=dfx.getStyle(nameSpan,'width');titleWidth=parseInt(titleWidth.substr(0,(titleWidth.length-2)),10);if(titleWidth>self.width){var tmpName=self.name;while(titleWidth>self.width){tmpName=tmpName.substring(0,(tmpName.length-1));dfx.setHtml(nameSpan,tmpName);titleWidth=dfx.getStyle(nameSpan,'width');titleWidth=parseInt(titleWidth.substr(0,(titleWidth.length-2)),10);}
var ellipsisLen=tmpName.length+1;name=dfx.ellipsize(name,(ellipsisLen-4));dfx.setHtml(nameSpan,name);}
dfx.setStyle(nameSpan,'visibility','visible');}
var assetidSpan=document.createElement('span');dfx.addClass(assetidSpan,self.widgetType+'-assetId');if(self.noUrl===true){if(self.error===true){dfx.setHtml(assetidSpan,'&nbsp;');}else{dfx.setHtml(assetidSpan,'#'+self.assetid);}}else{dfx.setHtml(assetidSpan,'#'+self.assetid);}
a.appendChild(iconSpan);a.appendChild(nameSpan);a.appendChild(assetidSpan);return a;};var dom=null;if(this.assetLoaded===false){AssetManager.getAsset(this.assetid,function(asset){self.name=asset.name;self.iconUrl=asset.iconUrl;self.assetType=asset.type;self.url='';self.assetLoaded=true;if(self.url===''||self.url.search("/__designs/")!==-1||self.assetid===0){self.noUrl=true;}
self.elem=buildDom();if(callback){callback.call(self,self.elem);}},false,{attributes:['name'],type:true,typeIcon:true,linking:[],urls:true});}else{self.elem=buildDom();if(callback){callback.call(self,self.elem);}}},disable:function(){},enable:function(){},reset:function(){},getValue:function()
{return this.assetid;},setValue:function(assetid,callback){}};dfx.inherits('AssetTagLine','Widget');function AssetTypeFilterWidgetType(id)
{Widget.call(this,id);}
AssetTypeFilterWidgetType.prototype={getValue:function()
{var widget=WidgetStore.get(this.id+'-type');return widget.getValue();},setValue:function(value)
{var widget=WidgetStore.get(this.id+'-type');widget.setValue(value);}};dfx.inherits('AssetTypeFilter','Widget');function AssetTypeLevelSelectorWidgetType(id,type,leveled,rootid)
{Widget.call(this,id);this.widgetType='AssetTypeLevelSelector';this.parents=[];this.cache={};this.rootid=rootid;this.leveled=leveled;this._disabled=false;if(dfx.getId(id+'-assetTypeLevelSelectorWrapper')&&dfx.isset(dfx.getId(id))===false){var self=this;this.create();}}
AssetTypeLevelSelectorWidgetType.prototype={create:function(callback)
{var self=this;var text=self.createWidget(self.id+'-newFolder','TextField');text.setValue('Enter folder name');var items={};var select=self.createWidget(self.id+'-createLocation','Select');var _setItems=function(assets){dfx.foreach(assets,function(aid){var title='';if(assets[aid].lvl>0){var num=(assets[aid].lvl*2);for(var i=0;i<num;i++){title+=String.fromCharCode(160);}
title+='|_ '+assets[aid].name;}else{title=assets[aid].name;}
items[aid]=title;if(dfx.isset(assets[aid].children)===true&&dfx.isset(assets[aid].children.length)===false){_setItems(assets[aid].children);}
return true;});};items.none=String.fromCharCode(160);items[self.leveled.assetid]=self.leveled.name;_setItems(self.leveled.children);select.addItems(items);var newLocDiv=document.createElement('div');newLocDiv.id=self.id+'-newFolderBtn';dfx.addClass(newLocDiv,self.widgetType+'-newFolderBtn');dfx.setHtml(newLocDiv,'Create a new folder at this location');dfx.hideElement(newLocDiv);var wrap=dfx.getId(self.id+'-assetTypeLevelSelectorWrapper');text.create(function(textEl){select.addItemSelectedEvent(function(val){if(val===0){dfx.hideElement(newLocDiv);dfx.hideElement(textEl,true);}else{dfx.showElement(newLocDiv);if(dfx.hasClass(newLocDiv,'ticked')===true){dfx.showElement(textEl,true);}else{dfx.hideElement(textEl,true);}}});select.create(function(selEl){wrap.appendChild(selEl);wrap.appendChild(newLocDiv);wrap.appendChild(textEl);dfx.hideElement(textEl,true);dfx.addClass(dfx.getId(self.id+'-createLocation'),self.widgetType+'-select');dfx.addClass(dfx.getId(self.id+'-newFolder'),self.widgetType+'-text');var inputEl=dfx.getId(self.id+'-newFolder');dfx.setStyle(inputEl,'color','#aaa');dfx.addEvent(newLocDiv,'click',function(e){if(self._disabled!==true){if(dfx.hasClass(newLocDiv,'ticked')===true){dfx.removeClass(newLocDiv,'ticked');dfx.hideElement(textEl,true);}else{dfx.addClass(newLocDiv,'ticked');dfx.showElement(textEl,true);}}});dfx.addEvent(inputEl,'focus',function(e){if(dfx.trim(inputEl.value)==='Enter folder name'){inputEl.value='';dfx.setStyle(inputEl,'color','#000');}});dfx.addEvent(inputEl,'blur',function(e){if(dfx.trim(inputEl.value)===''){inputEl.value='Enter folder name';dfx.setStyle(inputEl,'color','#aaa');}});if(dfx.isFn(callback)===true){callback.call(self,null);return;}});});},getValue:function()
{var self=this;var select=WidgetStore.get(this.id+'-createLocation');var _getValue=function(){var returnIndexTrue=false;var returnTextFalse=false;var result={value:select.getValue(returnIndexTrue,returnTextFalse),alternateFolder:null};if(result.value==='none'){result.value='';}else{if(dfx.hasClass(dfx.getId(self.id+'-newFolderBtn'),'ticked')===true){var text=WidgetStore.get(self.id+'-newFolder');var val=text.getValue();if(val==='Enter folder name'){result.alternateFolder='';}else{result.alternateFolder=val;}}}
return result;};var _checkWidgetCreated=function(){select=WidgetStore.get(self.id+'-createLocation');var stid=null;if(!select){stid=setTimeout(function(){return _checkWidgetCreated();},300);}else{clearTimeout(stid);return _getValue();}};var value=_checkWidgetCreated();return value;},setValue:function(values)
{var select=WidgetStore.get(this.id+'-createLocation');var text=WidgetStore.get(this.id+'-newFolder');if(typeof values==='string'){var alternate=null;select.setValue(0);}else{var alternate=values.alternateFolder;select.setValue(values.value,true);}
if(alternate===null){dfx.removeClass(dfx.getId(this.id+'-newFolderBtn'),'ticked');text.setValue('Enter folder name');dfx.hideElement(dfx.getId(this.id+'-newFolder_container'),true);}else{dfx.addClass(dfx.getId(this.id+'-newFolderBtn'),'ticked');text.setValue(values.alternateFolder);dfx.showElement(dfx.getId(this.id+'-newFolder_container'),true);}},disable:function()
{this._disabled=true;var selectWdgt=WidgetStore.get(this.id+'-createLocation');selectWdgt.disable();var text=WidgetStore.get(this.id+'-newFolder');if(text){text.disable();}},enable:function()
{this._disabled=false;var selectWdgt=WidgetStore.get(this.id+'-createLocation');selectWdgt.enable();var text=WidgetStore.get(this.id+'-newFolder');if(text){text.enable();}},reset:function()
{var self=this;var params={action:'getWidgetInformation',widget:'WizardRunnerWidget',system:'AssetTypeLevelSelectorWidget',channel:'getWidgetData',rootid:this.rootid};dfx.post(window.location.href,params,function(data){self.leveled=dfx.jsonDecode(data);dfx.getId(self.id+'-assetTypeLevelSelectorWrapper').innerHTML='';self.create(function(){});});}};dfx.inherits('AssetTypeLevelSelector','Widget');function AssetVersioningWidgetType(id,assetid,version)
{Widget.call(this,id);this.widgetType='AssetVersioning';this.assetid=assetid;this.version=version;this.init();}
AssetVersioningWidgetType.prototype={init:function(){},getWidgetType:function()
{return'AssetVersioning';}};dfx.inherits('AssetVersioning','Widget');function AuthenticationCanvasWidgetType(id,hashEnabled)
{Widget.call(this,id);var self=this;this.clearError();this.hashEnabled=hashEnabled;dfx.getId('LoginUsername').focus();}
AuthenticationCanvasWidgetType.prototype={displayError:function(message)
{dfx.setHtml(dfx.getId('LoginError'),'Error: '+message);},clearError:function()
{dfx.setHtml(dfx.getId('LoginError'),'&nbsp;');},onEnterKey:function(evt)
{if(evt.keyCode===13){this.submit();}
return;},submit:function()
{var self=this;var url=(new String(document.location)).valueOf();this.clearError();var username=dfx.getId('LoginUsername').value;var password=dfx.getId('LoginPassword').value;var params={};params.auth_action='login';var _processLoginResponse=function(data){var login=data.getElementsByTagName('login');var status=login.item(0).firstChild.nodeValue;if(status==='0'){var errorMsg=data.getElementsByTagName('error').item(0).firstChild.nodeValue;self.displayError(errorMsg);return false;}else{window.location.reload();return true;}};if(this.hashEnabled===true){params.step='req_chal';params.username=username;dfx.post(window.location.href,params,function(data){var challenge=data.getElementsByTagName('challenge').item(0).firstChild.nodeValue;if(challenge!=='0'){var hashedPassword=hex_md5(hex_hmac_sha1(challenge,hex_sha1(password)));var browserInfo=dfx.browser();if(challenge==='-1'){hashedPassword=password;}
params.step='req_auth';params.password=hashedPassword;params.bt=browserInfo.type;params.bv=browserInfo.version;dfx.get(dfx.addToQueryString(url,params),null,_processLoginResponse);}else{var errorMsg=data.getElementsByTagName('error').item(0).firstChild.nodeValue;self.displayError(errorMsg);return false;}});}else{var browserInfo=dfx.browser();params.step='req_auth';params.username=username;params.password=password;params.bt=browserInfo.type;params.bv=browserInfo.version;dfx.post(window.location.href,params,_processLoginResponse);}
return false;}};dfx.inherits('AuthenticationCanvas','Widget');function BalloonPopupWidgetType(id)
{Widget.call(this,id);this.widgetType='BalloonPopup';this.contentid=this.id+'-content';this.classPrefix=this.getClass();this.contents=[];this.popupActive=false;this.buttons=[];this.dialog=null;this.domElem=null;this.contentEl=null;this.wrapper=null;this.validPositions=['wn','en','nw','ne','sw','se'];this.dims={width:'250px',height:'100px'};}
BalloonPopupWidgetType.prototype={setClassPrefix:function(prefix)
{this.classPrefix=prefix;},getClassPrefix:function()
{return this.classPrefix;},create:function(callback)
{var main=document.createElement('div');var wrapper=document.createElement('div');dfx.addClass(wrapper,this.getClass()+'-wrapper');main.appendChild(wrapper);main.id=this.id;this.domElem=main;this.wrapper=wrapper;var self=this;dfx.addClass(main,this.getClass());this.contentEl=document.createElement('div');self.contentEl.id=this.id+'-content';this.includeWidget('ModalDialog',function(){self.dialog=self.createWidget(self.id+'-dialog','ModalDialog');self.dialog.setTitle('Content Cannot Be Edited');self.dialog.setContent(self.contentEl);self.dialog.setSize(self.dims.width,self.dims.height);self.dialog.allowResize=false;self.dialog.create(function(el){wrapper.appendChild(el);document.body.appendChild(main);callback.call(self,main);return;},true);});},remove:function(){},setTitle:function(title)
{this.title=title;if(this.dialog){this.dialog.setTitle(title,true);}},getTitle:function()
{return this.title;},getContentElement:function()
{return this.contentEl;},addContent:function(contentEl)
{this.contents.push(contentEl);var el=dfx.getId(this.contentid);if(el){el.appendChild(contentEl);}},replaceContent:function(newContent)
{this.contents=[];this.contents.push(newContent);if(this.dialog){this.dialog.setContent(newContent);}},isActive:function()
{return this.popupActive;},close:function(callback)
{this.popupActive=false;var el=dfx.getId(this.id);if(el){dfx.remove(el);}
ModalDialogWidgetType.removeOpenDialog(this.dialog);if(dfx.isFn(callback)){callback.call(this);}},show:function(element)
{var arrow=dfx.getId(this.id+'-arrow');if(arrow){dfx.remove(arrow);}
var el=this.domElem;dfx.setStyle(el,'visibility','hidden');dfx.setStyle(el,'display','block');this.popupActive=true;var self=this;setTimeout(function(){self.setPopupPosition(element);dfx.setStyle(el,'visibility','visible');self.dialog.show();},100);},getElement:function(cp)
{return dfx.getClass(this.getClass()+cp,dfx.getId(this.id))[0];},setPopupPosition:function(element)
{var popupEl=this.domElem;if(!element||!popupEl){return;}
var elementRect=dfx.getBoundingRectangle(element);var windowDims=dfx.getWindowDimensions();var popupDims=dfx.getElementDimensions(popupEl);var scrollCoords=dfx.getScrollCoords();var margin=50;var arrowDist=20;var posInfo={element:element,elementRect:elementRect,windowDims:windowDims,scrollCoords:scrollCoords,popupDims:popupDims,margin:margin,arrowDist:arrowDist};var validPositions=this.validPositions;var pos=this._setPos(validPositions,posInfo);if(pos){this._setArrow(pos);}},_setPos:function(positions,posInfo)
{var pos='';var len=positions.length;for(var i=0;i<len;i++){var fn=this['_setPos'+positions[i].toUpperCase()];if(fn){var ret=fn.call(this,posInfo);if(ret){pos=positions[i];break;}}}
return pos;},_setPosE:function(info)
{if(info.windowDims.width>(info.elementRect.x2+info.arrowDist+info.popupDims.width+info.margin)){dfx.setStyle(dfx.getId(this.id),'left',(info.elementRect.x2+info.arrowDist)+'px');return true;}},_setPosW:function(info)
{if((info.elementRect.x1-info.arrowDist-info.popupDims.width-info.margin)>0){dfx.setStyle(dfx.getId(this.id),'left',(info.elementRect.x1-info.arrowDist-info.popupDims.width)+'px');return true;}},_setPosWN:function(info)
{if(this._setPosE(info)){if(info.windowDims.height>(info.elementRect.y1-info.scrollCoords.y+info.popupDims.height+info.margin)){dfx.setStyle(dfx.getId(this.id),'top',(info.elementRect.y1-info.arrowDist+'px'));return true;}}},_setPosEN:function(info)
{if(this._setPosW(info)){if(info.windowDims.height>(info.elementRect.y1-info.scrollCoords.y+info.popupDims.height+info.margin)){dfx.setStyle(dfx.getId(this.id),'top',(info.elementRect.y1-info.arrowDist+'px'));return true;}}},_setPosN:function(info)
{if(info.windowDims.height>(info.elementRect.y2-info.scrollCoords.y+info.popupDims.height+info.arrowDist+info.margin)){dfx.setStyle(dfx.getId(this.id),'top',(info.elementRect.y2+info.arrowDist)+'px');return true;}},_setPosS:function(info)
{if((info.elementRect.y1-info.popupDims.height-info.arrowDist-info.margin-info.scrollCoords.y)>0){dfx.setStyle(dfx.getId(this.id),'top',(info.elementRect.y1-info.arrowDist-info.popupDims.height)+'px');return true;}},_setPosSW:function(info)
{if(this._setPosS(info)){if(info.windowDims.width>(info.elementRect.x1+((info.elementRect.x2-info.elementRect.x1)/2)+info.popupDims.width+info.margin)){dfx.setStyle(dfx.getId(this.id),'left',((info.elementRect.x1+((info.elementRect.x2-info.elementRect.x1)/2))-info.arrowDist+'px'));return true;}}},_setPosSE:function(info)
{if(this._setPosS(info)){if(0<(info.elementRect.x2-((info.elementRect.x2-info.elementRect.x1)/2)-info.popupDims.width-info.margin)){dfx.setStyle(dfx.getId(this.id),'left',(info.elementRect.x2-((info.elementRect.x2-info.elementRect.x1)/2)-info.popupDims.width)+'px');return true;}}},_setPosNE:function(info)
{if(this._setPosN(info)){if(0<(info.elementRect.x2-((info.elementRect.x2-info.elementRect.x1)/2)-info.popupDims.width-info.margin)){dfx.setStyle(dfx.getId(this.id),'left',(info.elementRect.x2-((info.elementRect.x2-info.elementRect.x1)/2)-info.popupDims.width)+'px');return true;}}},_setArrow:function(o)
{var arrow=document.createElement('div');dfx.addClass(arrow,this.getClassPrefix()+'-arrow-'+o);this.wrapper.appendChild(arrow);},addButton:function(title,action)
{this.dialog.addButton(title,function(buttonWidget){buttonWidget.addClickEvent(function(){action.call(this);});});},removeButtons:function()
{this.buttons=[];var el=dfx.getId(this.id+'-i-bot-mid');if(el){dfx.empty(el);}},setSize:function(width,height)
{this.dims={width:width,height:height};if(this.dialog){this.dialog.setSize(width,height);}}};dfx.inherits('BalloonPopup','Widget');function BarChartWidgetType(id)
{Widget.call(this,id);}
dfx.inherits('BarChart','Widget');function ButtonWidgetType(id,classPrefix,textOnly,value,simpleButton)
{Widget.call(this,id);var self=this;this.content=dfx.getId(id+'_content');this.classPrefix=classPrefix||'ButtonWidgetType';this.textOnly=textOnly||false;this.enabled=true;this.clickEvents=[];this.value=value;this.toggleMode=false;this.minWidth=null;this.buttonParts={};this.simpleButton=simpleButton||false;this.dispStyle=null;this.buttonIconClassName=null;var container=dfx.getId(this.id+'_content');var btnDiv=dfx.getId(this.id);if(btnDiv){this.domElem=btnDiv;}
this.overFn=function(e){if(self.enabled===true){dfx.addClass(self.domElem,self.getClassPrefix()+'-hover');}};this.outFn=function(e){dfx.removeClass(self.domElem,self.getClassPrefix()+'-hover');};dfx.hover(container,this.overFn,this.outFn);if(dfx.isset(dfx.getId(this.id))===true){this.init();}}
ButtonWidgetType.prototype={init:function()
{this.buttonParts.left=dfx.getId(this.id+'_left');this.buttonParts.right=dfx.getId(this.id+'_right');this.buttonParts.middle=dfx.getId(this.id+'_middle');this.buttonParts.content=dfx.getId(this.id+'_content');},setReadOnly:function(readOnly)
{AbstractWidgetWidgetType.prototype.setReadOnly.call(this,readOnly);if(this.domElem){if(readOnly){dfx.hideElement(this.domElem);}else{dfx.showElement(this.domElem);}}},setSimpleButton:function(simpleButton)
{this.simpleButton=simpleButton;},setTextOnly:function(textOnly)
{this.textOnly=textOnly;},setClassPrefix:function(classPrefix)
{this.classPrefix=classPrefix;},getClassPrefix:function()
{return this.classPrefix;},setButtonColour:function(colour)
{this.setClassPrefix('ButtonWidgetType-'+colour);},changeButtonColour:function(colour)
{dfx.swapClass(this.domElem,this.classPrefix,('ButtonWidgetType-'+colour));dfx.swapClass(this.buttonParts.left,(this.classPrefix+'-left'),('ButtonWidgetType-'+colour+'-left'));dfx.swapClass(this.buttonParts.right,(this.classPrefix+'-right'),('ButtonWidgetType-'+colour+'-right'));dfx.swapClass(this.buttonParts.middle,(this.classPrefix+'-middle'),('ButtonWidgetType-'+colour+'-middle'));dfx.swapClass(this.buttonParts.content,(this.classPrefix+'-content'),('ButtonWidgetType-'+colour+'-content'));this.setButtonColour(colour);},create:function(callback)
{var div=document.createElement('div');this.domElem=div;div.setAttribute('id',this.id);div.className=this.classPrefix;if(this.readOnly===true){dfx.hideElement(this.domElem);}
var input=document.createElement('input');input.setAttribute('id',(this.id+'_content'));input.setAttribute('type','button');input.className=(this.classPrefix+'-content');input.setAttribute('value',this.value);if(this.textOnly!==true){var divLeft=document.createElement('div');if(this.buttonIconClassName){dfx.addClass(input,this.buttonIconClassName);}
var divMiddle=document.createElement('div');var divRight=document.createElement('div');divLeft.setAttribute('id',(this.id+'_left'));divMiddle.setAttribute('id',(this.id+'_middle'));if(this.minWidth!==null){dfx.setStyle(divMiddle,'width',this.minWidth);}
divRight.setAttribute('id',(this.id+'_right'));divLeft.className=(this.classPrefix+'-left');divMiddle.className=(this.classPrefix+'-middle');divRight.className=(this.classPrefix+'-right');this.buttonParts.left=divLeft;this.buttonParts.middle=divMiddle;this.buttonParts.right=divRight;this.buttonParts.content=input;divMiddle.appendChild(input);div.appendChild(divLeft);div.appendChild(divMiddle);div.appendChild(divRight);}else{div.appendChild(input);div.className=(div.className+' '+this.classPrefix+'-simple');}
var self=this;var overClass=(self.classPrefix+'-hover');dfx.addEvent(div,'mouseover',function(e){dfx.addClass(input,overClass);});dfx.addEvent(div,'mouseout',function(){dfx.removeClass(input,overClass);});this.content=input;if(this.enabled===false){this.setEnabled(false,true);}
var cln=this.clickEvents.length;for(var i=0;i<cln;i++){this.addClickEvent(this.clickEvents[i]);}
if(dfx.isFn(callback)===true){callback.call(this,div);}},setName:function(name)
{this.value=name;if(dfx.isset(this.content)===true){this.content.value=name;}},getName:function()
{return this.content.value;},getValue:function()
{return this.getName();},setEnabled:function(enabled,force)
{if(force!==true&&this.enabled===enabled){return;}
this.enabled=enabled;var suffix='';if(this.toggleMode!==true&&enabled!==true){dfx.removeEvent(this.domElem,'mouseover',this.overFn);dfx.removeEvent(this.domElem,'mouseout',this.outFn);}else{dfx.addEvent(this.domElem,'mouseover',this.overFn);dfx.addEvent(this.domElem,'mouseout',this.outFn);}
if(enabled!==true){dfx.addClass(this.domElem,(this.classPrefix+'-disabled'));dfx.removeClass(this.domElem,this.classPrefix);}else{dfx.addClass(this.domElem,this.classPrefix);dfx.removeClass(this.domElem,(this.classPrefix+'-disabled'));}},disable:function()
{this.setEnabled(false);},enable:function()
{this.setEnabled(true);},setDisabled:function(disabled)
{this.enabled=!disabled;},enableToggleMode:function()
{this.toggleMode=true;},addClickEvent:function(fn,removeOthers)
{if(removeOthers===true){this.removeEvents();}
if(this.domElem){var self=this;dfx.addEvent(this.domElem,'click',function(e){if(self.toggleMode===true||self.enabled===true){fn(e);}});}else{if(removeOthers===true){this.clickEvents=[];}
this.clickEvents.push(fn);}},setClickEvent:function(fn)
{var self=this;this.setEvent('click',function(e){if(self.toggleMode===true||self.enabled===true){fn(e);}});},removeEvents:function()
{dfx.removeEvent(this.domElem,'click');},setMinWidth:function(width)
{this.minWidth=width;if(this.minWidth!==null){dfx.setStyle(this.buttonParts.middle,'width',this.minWidth);}},hide:function()
{if(this.domElem){if(this.dispStyle===null){this.dispStyle=dfx.getStyle(this.domElem,'display');}
dfx.setStyle(this.domElem,'display','none');dfx.setStyle(this.domElem,'visibility','hidden');}},show:function()
{if(this.domElem){try{dfx.setStyle(this.domElem,'display',this.dispStyle);dfx.setStyle(this.domElem,'visibility','visible');}catch(e){};}},setButtonIconClassName:function(className)
{this.buttonIconClassName=className;}};dfx.inherits('Button','Widget');function ContentFormatWidgetType(id,simpleEdit)
{Widget.call(this,id);this.widgetType='ContentFormat';this.formats={};this.parentElements=null;this.show=false;this.simpleEdit=simpleEdit||false;}
ContentFormatWidgetType.prototype={addFormat:function(formatid,formatElem)
{this.formats[formatid]=formatElem;if(this.show===true){this.showFormat(formatid);}},setSimpleEdit:function(useSimpleEdit)
{this.simpleEdit=useSimpleEdit;},setParentElements:function(parentEls)
{this.parentElements=parentEls;},activateFormat:function(formatid)
{return;},setFormatValue:function(formatid,value)
{this.formats[formatid]=value;},removeFormat:function(formatid)
{if((formatid in this.formats)===true){dfx.remove(this.formats[formatid]);delete this.formats[formatid];}},removeFormats:function()
{for(var formatid in this.formats){this.removeFormat(formatid);}},showFormats:function(noEdit)
{if(dfx.isset(this.parentElements)===true){for(var formatid in this.formats){this.showFormat(formatid,false,noEdit);}
this.show=true;}},showFormat:function(formatid,hideOthers,noEdit)
{if(hideOthers===true){this.hideFormats();}
var format=this.formats[formatid];var len=this.parentElements.length;for(var i=0;i<len;i++){this.parentElements[i].appendChild(format);}
if(noEdit!==true){if(this.simpleEdit===true){this.showSimpleEdit(format);}else{new Viper(format);}}},hideFormats:function()
{var len=this.parentElements.length;for(var i=0;i<len;i++){dfx.empty(this.parentElements[i]);}},hideFormat:function(formatid)
{dfx.remove(this.formats[formatid]);},getFormats:function()
{return this.formats;},showSimpleEdit:function(format)
{var self=this;this.includeWidget('ModalDialog',function(){var simpleEditorDialog=self.createWidget(self.id+'-simpleEditorDialog','ModalDialog');simpleEditorDialog.create(function(){simpleEditorDialog.setTitle('Advanced Editor');var textArea=document.createElement('textarea');dfx.setStyle(textArea,'border','none');textArea.setAttribute('rows','20');textArea.setAttribute('cols','70');textArea.value=dfx.getHtml(format);simpleEditorDialog.addButton('OK',function(){simpleEditorDialog.close();dfx.setHtml(format,textArea.value);});simpleEditorDialog.setContentElement(textArea);simpleEditorDialog.open();simpleEditorDialog.addEvents();simpleEditorDialog.disable();textArea.focus();});});}};dfx.inherits('ContentFormat','Widget');function ContextSwitcherButtonWidgetType(id,data)
{Widget.call(this,id);this.widgetType='ContextSwitcherButton';this._data=data;this.buttonEl=dfx.getId(this.id);this._statusClass=['safeEdit','liveEdit','unpublished','published'];this.init();}
ContextSwitcherButtonWidgetType.prototype={init:function()
{var self=this;WidgetStore.addDataChangeListener('ContextSwitcherBtnModeListener','activeMode',function(newMode,prevMode){if(prevMode){self.updateButtonStatus(newMode.id,null);}});},updateButtonStatus:function(modeid,assetid)
{var self=this;self.getStatus(modeid,assetid,function(status){self.switchButton(status.status,status.title,status.canSwitch);if(assetid&&status.url){self.displayDisabledDiv(true,null,null,null,'Currently re-directing...');self._changeToUrl(status.url);}});},getStatus:function(modeType,assetid,callback)
{var param={widget:this.widgetType,action:'getStatus',modeType:modeType};if(dfx.isset(assetid)===true){param.assetid=assetid;}
dfx.post(this.getCurrentUrl(true),param,function(data){data=dfx.jsonDecode(data);callback.call(this,data);});},toggleContext:function()
{var answer=true;var saveBtn=WidgetStore.get('EditingSaveButton');if(saveBtn.isEnabled()===true){answer=confirm(WidgetStore.getUnsavedChangesStr());}
if(answer===true){var mode=WidgetStore.getData('activeMode');if(mode&&mode.id){mode=mode.id;}
if(mode==='EditEditingMode'){window.onbeforeunload=function(){};}
var param={widget:this.widgetType,action:'toggleContext'};this.displayDisabledDiv(true,null,null,null,'Currently re-directing...');var self=this;dfx.post(this.getCurrentUrl(true),param,function(url){self._changeToUrl(url);});}},_changeToUrl:function(url)
{var mode=WidgetStore.getData('activeMode');if(mode&&mode.id){mode=mode.id;}
var screen=WidgetStore.getData('activeScreen');if(screen&&screen.system){screen=screen.system;}
var modeScreen='initialMode='+mode;if(screen!=='EditSplash'){modeScreen+='&initialScreen='+screen;}
if(url.indexOf('?')===-1){url+='?';}else{modeScreen='';}
window.location.href=url+modeScreen;},switchButton:function(type,title,canSwitch)
{var c=this.getClass();var titleEl=dfx.getClass(c+'-text',this.buttonEl)[0];var currentEl=dfx.getClass(c+'-current',this.buttonEl)[0];dfx.setHtml(titleEl,title);dfx.removeClass(currentEl,this._statusClass.join(' '));dfx.addClass(currentEl,type);var switcherEl=this.buttonEl;dfx.removeEvent(switcherEl,'click');if(canSwitch===true){dfx.addClass(switcherEl,'toggle');var self=this;dfx.addEvent(switcherEl,'click',function(){self.toggleContext();});}else{dfx.removeClass(switcherEl,'toggle');}},updateStatus:function(published,inSafeEdit)
{this._data.published=published||false;this._data.inSafeEdit=inSafeEdit||false;var mode=WidgetStore.getData('activeMode');}};dfx.inherits('ContextSwitcherButton','Widget');function CustomFormQuestionCreateWidgetType(id)
{Widget.call(this,id);this.widgetType='CustomFormQuestionCreate';this.id=id;this.qnNum=0;this.domElem=dfx.getId(id);if(dfx.isset(this.domElem)===true){this.addEvents();}}
CustomFormQuestionCreateWidgetType.prototype={addEvents:function()
{var self=this;dfxjQuery(this.domElem).sortable({axis:'y',handle:'span.move'});var button=WidgetStore.get(this.id+'-addQn');button.addClickEvent(function(){self.createFields();});this.createFields(function(){self.createFields();});},createFields:function(callback)
{var self=this;var qid=this.qnNum;var div=document.createElement('div');div.qid=qid;div.id='question-'+qid+'-container';dfx.addClass(div,'questionDiv');this.domElem.appendChild(div);dfxjQuery(div).sortable('refresh');var move=document.createElement('span');move.id='question_move-'+qid;dfx.addClass(move,'move');div.appendChild(move);var req=this.createReqField(qid);div.appendChild(req);this.includeWidgets(['TextField','Select'],function(){var text=self.createWidget('question_name-'+qid,'TextField');text.setShowLabel(false);text.setWidth(160);text.setDisplayAsBlock(false);text.create(function(textField){div.appendChild(textField);var select=self.createTypeSelectField(qid);div.appendChild(select);self.qnNum+=1;if(dfx.isFn(callback)===true){callback.call(self);}
var deleteButton=document.createElement('span');div.appendChild(deleteButton);dfx.addClass(deleteButton,'delete');dfx.addEvent(deleteButton,'click',function(){self.markQuestion(qid);});});});},createReqField:function(qid)
{var star=document.createElement('span');star.id='question_required-'+qid;star.enabled='true';dfx.addClass(star,'requiredFieldToggle');dfx.addClass(star,'required-false');var req=document.createElement('input');req.id='question_required-'+qid+'-val';req.type='hidden';req.value='false';star.appendChild(req);dfx.addEvent(star,'click',function(){if(dfx.hasClass(star,'required-recover')===true){return;}
if(star.enabled==='true'){var req=dfx.getId(star.id+'-val');if(req.value==='true'){req.value='false';dfx.swapClass(star,'required-true','required-false');}else{req.value='true';dfx.swapClass(star,'required-false','required-true');}}});return star;},createTypeSelectField:function(qid)
{var types={text:'Text Box',number:'Numeric',options:'Checkbox/Radio Button',dropdown:'Select',fileUpload:'File Upload'};var select=document.createElement('select');dfx.addClass(select,'questionTypeSelect');select.id='question_type-'+qid;for(var key in types){var option=document.createElement('option');option.text=types[key];option.value=key;select[select.length]=option;}
return select;},markQuestion:function(qid)
{var div=dfx.getId('question-'+qid+'-container');var move=dfx.getId('question_move-'+qid);var star=dfx.getId('question_required-'+qid);var name=WidgetStore.get('question_name-'+qid);var type=dfx.getId('question_type-'+qid);if(dfx.hasClass(div,'recover')===true){dfx.swapClass(move,'move-recover','move');dfx.removeClass(star,'required-recover');name.enable();type.disabled=false;dfx.removeClass(div,'recover');}else{dfx.swapClass(move,'move','move-recover');dfx.addClass(star,'required-recover');name.disable();type.disabled=true;dfx.addClass(div,'recover');}},getValue:function()
{var value=[];var qn=this.domElem.firstChild;while(qn){var qid=qn.qid;if(dfx.hasClass(dfx.getId('question-'+qid+'-container'),'recover')===false){var val={req:dfx.getId('question_required-'+qid+'-val').value,name:WidgetStore.get('question_name-'+qid).getValue(),type:dfx.getId('question_type-'+qid).value};value.push(val);}
qn=qn.nextSibling;}
return value;},setValue:function(value)
{var len=value.length;for(var i=0;i<len;i++){WidgetStore.get('question_name-'+i).setValue(value[i].name);dfx.getId('question_type-'+i).value=value[i].type;var star=dfx.getId('question_required-'+i);var req=dfx.getId('question_required-'+i+'-val');req.value=value[i].req;if(value[i].req==='true'){dfx.swapClass(star,'required-false','required-true');}else{dfx.swapClass(star,'required-true','required-false');}}},disable:function()
{var button=WidgetStore.get(this.id+'-addQn');button.disable();for(var i=0;i<this.qnNum;i++){var star=dfx.getId('question_required-'+i);var text=WidgetStore.get('question_name-'+i);var select=dfx.getId('question_type-'+i);star.enabled='false';text.disable();var len=select.options.length;for(var x=0;x<len;x++){select.options[x].disabled='disabled';}}},enable:function()
{var button=WidgetStore.get(this.id+'-addQn');button.enable();for(var i=0;i<this.qnNum;i++){var star=dfx.getId('question_required-'+i);var text=WidgetStore.get('question_name-'+i);var select=dfx.getId('question_type-'+i);star.enabled='true';text.enable();var len=select.options.length;for(var x=0;x<len;x++){select.options[x].disabled='';}}}};dfx.inherits('CustomFormQuestionCreate','Widget');function DivButtonWidgetType(id)
{Widget.call(this,id);var self=this;this.titleElem=dfx.getId(this.id+'_box_title');this.descriptionElem=dfx.getId(this.id+'_box_description');this.iconElem=dfx.getId(this.id+'_box_icon');this.clickMask=dfx.getId(this.id+'_box_click_mask');this.onClickCallbacks=[];dfx.addEvent(this.clickMask,'click',function(e){var len=self.onClickCallbacks.length;for(var i=0;i<len;i++){self.onClickCallbacks[i].call(self,id);}});}
DivButtonWidgetType.prototype={addClickEvent:function(callback)
{this.onClickCallbacks.push(callback);}};dfx.inherits('DivButton','Widget');function DivWidgetType(id)
{Widget.call(this,id);this.widgetType='Div';this.cssClass=null;this.contentElements=[];}
DivWidgetType.prototype={create:function(callback)
{var div=document.createElement('div');div.setAttribute('id',this.id);if(this.cssClass!==null){dfx.addClass(div,this.cssClass);}
var len=this.contentElements.length;for(var i=0;i<len;i++){div.appendChild(this.contentElements[i]);}
var self=this;this.createChildren(div,function(){callback.call(self,div);return;});},setClass:function(c)
{this.cssClass=c;},addContentElement:function(elem)
{this.contentElements.push(elem);}};dfx.inherits('Div','Widget');function EditEditingModeLockingWidgetType(id)
{Widget.call(this,id);this.widgetType='EditEditingModeLocking';this.popupQueue=[];this.popup=null;}
EditEditingModeLockingWidgetType.prototype={showMessage:function(errInfo)
{if(this.popup===null){var self=this;this.includeWidget('BalloonPopup',function(){self.popup=self.createWidget(null,'BalloonPopup');self.popup.setSize('300px','60px');self.popup.create(function(el){self.showMessage(errInfo);});dfxjQuery(self.popup.dialog.domElem).draggable('disable');});return;}else if(this.popup.isActive()){this.popupQueue.push(errInfo);return;}else if(!errInfo){errInfo=this.popupQueue.shift();}
this._showFailedMessage(errInfo);this.popup.show(errInfo.element);},_showFailedMessage:function(error)
{var div=document.createElement('div');this.popup.setTitle('This content cannot be edited');var body=document.createElement('div');dfx.addClass(body,this.getClass()+'-error-body');var lockOwner=error.owner;var startTime=error.start;var canForceLock=error.force;var attrModified=error.modified;var message=lockOwner+' is currently editing this content.';message+=' You will need to wait until they are finished ';message+='before you can make your changes.';if(attrModified===true){message+='<br/><br/>';message+='The changes you have currently made will be lost.';}
dfx.setHtml(body,message);var options=document.createElement('div');dfx.addClass(options,this.getClass()+'-error-options');var stopEditing=document.createElement('a');dfx.setHtml(stopEditing,'OK');options.appendChild(stopEditing);div.appendChild(body);this.popup.replaceContent(div);var self=this;this.popup.removeButtons();this.popup.addButton('OK',function(){self.close();if(dfx.isFn(error.callback)===true){error.callback.call(self,'revert');}});if(canForceLock===true){this.popup.addButton('Force',function(){self.showProcessingAnimation();Locking.acquire(error.resource,function(result){if(result!==true){}else{if(dfx.isFn(error.callback)){error.callback.call(self,true);}
self.close();}},true);});}},isActive:function()
{if(this.popup){return this.popup.popupActive;}
return false;},close:function()
{this.popup.popupActive=false;if(this.popupQueue.length>0){var self=this;setTimeout(function(){self.showMessage();},100);}else{this.popup.close();this.popup=null;}},showProcessingAnimation:function()
{this.popup.popupActive=false;var div=document.createElement('div');var el=this.popup.getContentElement();dfx.addClass(div,this.getClass()+'-processingAnimation');this.popup.replaceContent(div);}};dfx.inherits('EditEditingModeLocking','Widget');function EditingAddButtonWidgetType(id)
{Widget.call(this,id);var self=this;this.opened=false;this.progress=false;dfx.hover(this.domElem,function(){dfx.addClass(self.domElem,'hover');},function(){dfx.removeClass(self.domElem,'hover');});dfx.addEvent(this.domElem,'click',function(){if(self.opened===true||self.progress===true){return;}
if(self.progress===false){self.progress=true;}
self.displayDisabledDiv(false);self.includeWidgets(['Select','TextField','ModalDialog'],function(){var modalDialog=self.createWidget('WizardModalDialog','ModalDialog');var contentParam={widgetType:'WizardSummary',widgetId:'WizardSummary',widgetArgs:dfx.jsonEncode([])};modalDialog.setDynamicParams(contentParam);modalDialog.setTitle('Wizards');modalDialog.setSize('730px','498px');modalDialog.setSubTitle('Click the wizard you would like to use');modalDialog.create(function(div){modalDialog.addOnOpenCallback(function(){WidgetStore.setData('wizardIsActive',true);self.disable();});modalDialog.addOnCloseCallback(function(windownCtrl){WidgetStore.setData('activeWizardAssetType',null);WidgetStore.setData('wizardIsActive',false);self.enable();});modalDialog.open();self.progress=false;});});});}
EditingAddButtonWidgetType.prototype={disable:function()
{dfx.addClass(dfx.getId('EditingAddButton'),'btnDisabled');this.opened=true;},enable:function()
{dfx.removeClass(dfx.getId('EditingAddButton'),'btnDisabled');this.opened=false;}};dfx.inherits('EditingAddButton','Widget');function EditingAutoSaveWidgetType(id,status,sessions,seconds,sessionid)
{Widget.call(this,id);var loc=window.location.href;Widget.CURRENT_SUFFIX='';if(loc.indexOf('/'+Widget.EDIT_SUFFIX)>0){Widget.CURRENT_SUFFIX=Widget.EDIT_SUFFIX;}
Widget.CURRENT_URL=loc.substring(0,loc.indexOf('/'+Widget.CURRENT_SUFFIX));this.url='';this.saving=false;this.seconds=seconds;this.sessionid=sessionid||null;this.intervalid=null;this.sessionPicker=null;this.loadedContents=null;this.counterInterval=null;this.registeredWidgets=[];this.sessionRadios=[];this.numFailedAttempts=0;this.maxAttempts=3;this._sessionPickerActive=false;this.isRecovering=false;this.loadedWidgets=[];var self=this;WidgetStore.addDataChangeListener('AutoSaveReadyListener','widgetReady',function(data){if(self._sessionPickerActive!==true&&self.isRecovering!==true){self.removeDisabledDiv(null,true);}
self.loadedWidgets.push(data.widgetid);self.setWidgetContents();});switch(status){case 0:setTimeout(function(){self.start(self.seconds);},self.seconds);break;case 1:var url=this.getCurrentUrl(true);this._createPickSessionBox(sessions,function(sessionid){self._sessionPickerActive=false;var postData={widget:'EditingAutoSaveWidget',action:'checkRedirect',sessionid:sessionid,url:url};dfx.post(url,postData,function(data){var result=dfx.jsonDecode(data);if(result.result==='redirect'){window.location=result.url;}else{var sel=dfx.getId(self.id);if(dfx.isset(sel)===true){dfx.remove(dfx.getId(self.id));self.disable(true);self.loadSessionContents(sessionid);}}});},function(){self._sessionPickerActive=false;var postData={widget:'EditingAutoSaveWidget',action:'removeSessions',url:url};dfx.post(url,postData,function(data){self.removeDisabledDiv();dfx.remove(dfx.getId(self.id));setTimeout(function(){self.start(self.seconds);},self.seconds);});});break;case 2:self.loadSessionContents(this.sessionid);setTimeout(function(){self.start(self.seconds);},self.seconds);break;default:break;}
this.includeWidgets(['Intervention','Button','ModalDialog'],function(){if(Widget.CSS_MINIFIED===false){dfx.preloadStylesheetImages(['BalloonPopupWidget','InterventionWidget','EditingSaveButtonWidget','EditingAutoSaveWidget','ModalDialogWidget','ButtonWidget','images/Icons'],self.getSkinURL());}
self.ipopup=self.createWidget(null,'Intervention',function(){WidgetStore.get('EditingSaveButton').removeWarning();self.numFailedAttempts=0;self.start(self.seconds);},function(){WidgetStore.get('EditingSaveButton').removeWarning();self._start();});self.ipopup.cancelText='Ignore';self.ipopup.confirmText='Retry';self.ipopup.create(function(){var msg='A backup of your unsaved changes could not be created. There may be a problem with your internet connection.';self.ipopup.setMessage(msg);self.ipopup.setSize('250px','90px');});});}
EditingAutoSaveWidgetType.prototype={start:function(interval)
{var self=this;this.intervalid=setInterval(function(){self._start();},(interval*1000));},stop:function()
{clearInterval(this.intervalid);},_start:function()
{if(this.saving===false){clearInterval(this.counterInterval);WidgetStore.get('EditingSaveButton').displayLoader();this.saving=true;var contents=this.saveWidgets();this.saveContents(dfx.jsonEncode(contents));}},saveWidgets:function()
{var contents={};var len=this.registeredWidgets.length;for(var i=0;i<len;i++){var widget=WidgetStore.get(this.registeredWidgets[i]);if(widget&&dfx.isFn(widget.getAutoSaveContents)===true){contents[widget.id]=widget.getAutoSaveContents();}}
return contents;},saveContents:function(contents)
{var activeScreen=WidgetStore.getData('activeScreen')||null;var activeMode=WidgetStore.getData('activeMode')||null;var url=this.getCurrentUrl(true);var postVars={widget:'EditingAutoSaveWidget',action:'saveContents',contents:contents,url:window.location.href,lastMode:null,lastScreen:null,lockInfo:dfx.jsonEncode(Locking.tokens)};if(activeMode){postVars.lastMode=activeMode.id;}
if(activeScreen){postVars.lastScreen=activeScreen.id;}
var self=this;dfx.post(url,postVars,function(data){self.saving=false;if(data!=='saved'){if(data.indexOf('lost-lock|')===0){var dataParts=data.split('|');if(dataParts[2]){Locking.removeLockByResource(dataParts[2]);}
var canForceLock=parseInt(dataParts[1]);if(canForceLock===1){canForceLock=true;}else{canForceLock=false;}
self._showLockFailed(canForceLock);clearInterval(self.intervalid);}else if(self.saveFailed()===true){return;}}else{self.numFailedAttempts=0;}
setTimeout(function(){WidgetStore.get('EditingSaveButton').removeLoader();},1100);},function(){if(self.saveFailed()!==true){WidgetStore.get('EditingSaveButton').removeLoader();}},7);},saveFailed:function()
{this.saving=false;this.numFailedAttempts++;if(this.maxAttempts<=this.numFailedAttempts){clearInterval(this.intervalid);WidgetStore.get('EditingSaveButton').displayWarning();if(this.ipopup){this.ipopup.show(dfx.getId('EditingSaveButton'),'fixed');return true;}
return true;}
return false;},_createPickSessionBox:function(sessions,okCb,cancelCb)
{this._sessionPickerActive=true;var self=this;var wrapper=document.createElement('div');var top=document.createElement('div');var middle=document.createElement('div');var bottom=document.createElement('div');wrapper.id=this.id;dfx.addClass(wrapper,this.id);dfx.addClass(top,this.id+'-top');dfx.addClass(middle,this.id+'-middle');dfx.addClass(bottom,this.id+'-bottom');var headerText=document.createElement('div');dfx.setHtml(headerText,'Session Detected');dfx.addClass(headerText,this.id+'-top-headerText');top.appendChild(headerText);var middleText=document.createElement('div');dfx.setHtml(middleText,'The following sessions have been detected. You should either restore or delete these sessions.');dfx.addClass(middleText,this.id+'-middle-text');middle.appendChild(middleText);wrapper.appendChild(top);wrapper.appendChild(middle);wrapper.appendChild(bottom);middle.appendChild(this._createSessionList(sessions));this.displayDisabledDiv();this.includeWidgets('Button',function(){var restoreBtn=self.createWidget(self.id+'-restore-button','Button','ButtonWidgetType-black',false,'Restore');var deleteBtn=self.createWidget(self.id+'-delete-button','Button','ButtonWidgetType-black',false,'Discard All');restoreBtn.create(function(rstBtn){deleteBtn.create(function(delBtn){bottom.appendChild(rstBtn);bottom.appendChild(delBtn);restoreBtn.addClickEvent(function(){var radioNum=self.sessionRadios.length;var selectedSessionid='';for(var i=0;i<radioNum;i++){if(self.sessionRadios[i].checked===true||self.sessionRadios[i].checked==='checked'){selectedSessionid=self.sessionRadios[i].value;}}
okCb.call(self,selectedSessionid);});deleteBtn.addClickEvent(cancelCb);dfx.setStyle(wrapper,'visibility','hidden');this.displayDisabledDiv();document.body.appendChild(wrapper);var posStyles=dfx.getElemPositionStyles(wrapper);for(var property in posStyles){dfx.setStyle(wrapper,property,posStyles[property]);}
dfx.setStyle(wrapper,'visibility','visible');});});});},_showLockFailed:function(canForce)
{var self=this;this.includeWidgets(['Intervention','Button','ModalDialog'],function(){var popup=self.createWidget(null,'Intervention',function(){WidgetStore.get('EditingSaveButton').removeWarning();var activeScreen=WidgetStore.getData('activeScreen');if(activeScreen&&activeScreen.obj&&activeScreen.obj.refreshScreen){self.displayDisabledDiv(true);self.setModified(false);activeScreen.obj.refreshScreen(activeScreen.id);self.start(self.seconds);}else{var activeMode=WidgetStore.getData('activeMode');var modeObj=WidgetStore.get(activeMode.id+'WidgetType');if(modeObj&&modeObj.reset){self.displayDisabledDiv(true);modeObj.reset(function(){modeObj.setReadOnly(true);self.start(self.seconds);});}else{self.start(self.seconds);}}},function(){WidgetStore.get('EditingSaveButton').removeWarning();var activeScreen=WidgetStore.getData('activeScreen');if(activeScreen){var screenWidget=WidgetStore.get(activeScreen.screenWdgtid);if(screenWidget){screenWidget.forceEdit(function(){self.removeDisabledDiv();self.start(self.seconds);});}else{self.errorDialog('Failed to forcibly acquire the lock on the screen.','Locking failed.',function(){self.removeDisabledDiv();self.start(self.seconds);});}}else{var widgetid='';var activeMode=WidgetStore.getData('activeMode');if(activeMode.id==='ProfileScreenMode'){widgetid='ProfileScreenWidgetType';}else if(activeMode.id==='TrashEditingMode'){widgetid='TrashEditingModeWidgetType';}
if(widgetid!==''){var modeWidget=WidgetStore.get(widgetid);modeWidget.forceEdit(function(){self.removeDisabledDiv();self.start(self.seconds);});}else{self.errorDialog('Failed to forcibly acquire the lock on the screen.','Locking failed.',function(){self.removeDisabledDiv();self.start(self.seconds);});}}});popup.cancelText='Revert Changes';if(canForce!==true){popup.confirmText=null;}else{popup.confirmText='Force Edit';}
popup.create(function(){popup.setCancelButtonSize(100);popup.setConfirmButtonSize(100);var msg='Someone has forcibly acquired locks for this screen';popup.setMessage(msg);popup.setSize('292px','62px');self.displayDisabledDiv();popup.show(dfx.getId('EditingSaveButton'),'fixed');});});},_createSessionList:function(sessions)
{var div=document.createElement('ul');var sessArr=[];for(var sessionid in sessions){sessArr.push({'sessionid':sessionid,'sessionDate':sessions[sessionid].date,'title':sessions[sessionid].title});}
var sessNum=sessArr.length;for(var i=0;i<sessNum;i++){var li=document.createElement('li');var wrap=document.createElement('div');var textWrap=document.createElement('div');var title=document.createElement('div');var time=document.createElement('div');var titleLabel=document.createElement('label');titleLabel.setAttribute('for','session_'+sessArr[i].sessionid);titleLabel.innerHTML=sessArr[i].title+'<br />'+sessArr[i].sessionDate;textWrap.appendChild(titleLabel);var radioWrap=document.createElement('div');if(dfxjQuery.browser.msie===true&&dfxjQuery.browser.version==='7.0'){radio=document.createElement('<input name="session" />');}else{radio=document.createElement('input');radio.name='session';}
radio.id='session_'+sessArr[i].sessionid;radio.type='radio';radio.value=sessArr[i].sessionid;radioWrap.appendChild(radio);if(i===0){radio.setAttribute('checked',true);}
this.sessionRadios.push(radio);wrap.appendChild(radioWrap);wrap.appendChild(textWrap);dfx.addClass(wrap,this.id+'-session-wrap');dfx.addClass(radioWrap,this.id+'-session-radio-wrap');dfx.addClass(textWrap,this.id+'-session-text-wrap');dfx.addClass(title,this.id+'-session-title');dfx.addClass(time,this.id+'-session-time');dfx.addClass(radio,this.id+'-session-radio');if(i===(sessNum-1)){dfx.addClass(li,this.id+'-last-session-li');}else{dfx.addClass(li,this.id+'-session-li');}
dfx.setStyle(wrap,'overflow','hidden');li.appendChild(wrap);div.appendChild(li);}
return div;},registerWidget:function(widget)
{if(this.registeredWidgets.inArray(widget.id)===false){this.registeredWidgets.push(widget.id);}},unregisterWidget:function(widget)
{var index=this.registeredWidgets.find(widget.id);if(index>=0){this.registeredWidgets.splice(index,1);}},loadSessionContents:function(sessid)
{var self=this;this.loadContents(sessid,function(){self.enable();self.isRecovering=true;self._sessionPickerActive=false;self.setWidgetContents();setTimeout(function(){self.start(self.seconds);},self.seconds);});},loadContents:function(sessid,callBack)
{var url=this.getCurrentUrl(true);var postVars='?widget=EditingAutoSaveWidget&action=loadContents&sessid='+sessid;var self=this;dfx.post(url+postVars,true,function(data){var asTag=data.firstChild;if(dfx.isset(asTag)===true&&asTag.childNodes.length>0){var assetid=dfx.getNodeTextContent(asTag.getElementsByTagName('assetid').item(0));var time=dfx.getNodeTextContent(asTag.getElementsByTagName('time').item(0));var str=dfx.getNodeTextContent(asTag.getElementsByTagName('contents').item(0));self.setAutoSaveTime(time);self.setLoadedStateAssetid(assetid);var contents=dfx.jsonDecode(str);self.loadedContents=contents;}
if(dfx.isFn(callBack)===true){callBack.call();}});},setWidgetContents:function()
{for(var widgetid in this.loadedContents){this._setWidgetContents(widgetid);break;}},_setWidgetContents:function(widgetid)
{if(this.loadedWidgets.inArray(widgetid)!==true){return;}
var widget=WidgetStore.get(widgetid);if(dfx.isset(widget)===true&&dfx.isFn(widget.loadAutoSaveContents)===true){var content=this.loadedContents[widgetid];delete this.loadedContents[widgetid];if(dfx.isEmpty(this.loadedContents)===true){this.removeDisabledDiv(null,true);this.isRecovering=false;}
widget.loadAutoSaveContents(content,function(){});}},continueLoadContents:function(widgetid)
{this.setWidgetContents();},setAutoSaveTime:function(time)
{this.loadedStateTime=parseInt(time);},getAutoSaveTime:function(formated)
{if(dfx.isset(formated)===true){var date=new Date();date.setTime((time*1000));return date.toLocaleString();}
return this.loadedStateTime;},setLoadedStateAssetid:function(assetid)
{this.loadedStateAssetid=assetid;},getLoadedStateAssetid:function()
{return this.loadedStateAssetid;},closeSelectionBox:function()
{this._sessionPickerActive=false;var self=this;dfx.remove(dfx.getId(this.id+'_pickSessionBox'));setTimeout(function(){self.start(self.seconds);},this.seconds);this.enable();},disable:function(showLoading)
{Widget.prototype.disable.call(this);this.displayDisabledDiv(showLoading);},enable:function()
{Widget.prototype.enable.call(this);this.removeDisabledDiv();},getSavedContents:function(widgetId)
{if(dfx.isset(this.loadedContents)===true){return this.loadedContents[widgetId];}
return null;},removeSavedContents:function(widgetId)
{if(dfx.isset(this.loadedContents)===true){delete this.loadedContents[widgetId];}}};dfx.inherits('EditingAutoSave','Widget');function EditingContentSharingWidgetType(id)
{Widget.call(this,id);this.keywordsList=null;}
EditingContentSharingWidgetType.prototype={validateKey:function(key)
{if(key!==null&&key!==''){return true;}
return false;},add:function(key,title,content,callback)
{var keyVal={title:title,content:content};var params={widget:'EditingContentSharingWidget',action:'addNewKeyword',keyword:dfx.jsonEncode(keyVal)};dfx.post(this.url,params,function(data){var data=dfx.jsonDecode(data);if(callback){callback.call(this,data);}});},remove:function(key){},edit:function(key,value){},get:function(key){},getKeywordsList:function(callback,force)
{var params={widget:'EditingContentSharingWidget',action:'getKeywordsList'};var self=this;dfx.post(this.url,params,function(data){self.keywordsList=dfx.jsonDecode(data);callback.call(this,self.keywordsList);});},getValueFromList:function(key)
{var len=this.keywordsList.length;for(var i=0;i<len;i++){if(this.keywordsList[i].getAttribute('id')===key){return dfx.getNodeTextContent(this.keywordsList[i]);}}
return null;}};dfx.inherits('EditingContentSharing','Widget');function EditingModeSwitcherWidgetType(id,modesInfo,contentDivId,initialMode)
{Widget.call(this,id);var modeSwitcher=dfx.getId('mode_switcher');dfx.remove(modeSwitcher);dfx.getId('ToolbarContent').appendChild(modeSwitcher);this.contentDivId=contentDivId;this.modeInfos=modesInfo;this.modes=[];this.modeSwitchActions={};this.addModes(modesInfo);if(dfx.isset(initialMode)===true&&initialMode!==''){this.initialMode=initialMode;}else{this.initialMode='PreviewEditingMode';}
this.currentMode=this.initialMode;WidgetStore.setData('activeMode',this.getModeInfo(this.initialMode));this.previousModeId=null;this.divs=dfx.getClass('mode-button',dfx.getId('mode_switcher-buttons'),'div');this.switcherInner=dfx.getClass('mode-switcher-inner')[0];this.slider=dfx.getId('EditingModeSwitcherSlider');this.expanderControler=dfx.getClass('expander-arrow')[0];this.modeSwictherElem=dfx.getId('EditingModeSwitcher');this.staticButtonsWidth=dfx.getElementWidth(this.modeSwictherElem);this.staticButtonsCount=dfx.getClass('mode-button',this.modeSwictherElem,'div').length;this.lastVisibleButton=this.divs[this.staticButtonsCount];this.setZindex();var self=this;var expander=dfx.getId('expander');this.expander=expander;dfx.setStyle(dfx.getClass('mode-switcher-inner'),'width',this.getMinWidth());dfx.attr(expander,'state','closed');dfx.hover(this.divs,function(e){var target=dfx.getMouseEventTarget(e);if(dfx.hasClass(target,'button-spacer')===true){target=target.parentNode;}
dfx.removeClass(self.divs,'mode-button-hover');if(!dfx.hasClass(target,'mode-button-selected')){dfx.addClass(target,'mode-button-hover');}},function(e){var target=dfx.getMouseEventTarget(e);dfx.removeClass(target,'mode-button-hover');});if(this.divs.length<=3){dfx.setStyle(dfx.getId('expander'),'display','none');}
dfx.addEvent(expander,'click',function(e,callBack){if(dfx.attr(expander,'state')==='closed'){self.open();}else{self.animateModeSelection(self.lastVisibleButton);}});dfx.hover(expander,function(){dfx.addClass(expander,'hover');},function(){dfx.removeClass(expander,'hover');});this.maxWidth=this.getMaxWidth();dfx.setStyle(dfx.getId('EditingModeSwitcherSlider'),'width',(this.maxWidth+2)+'px');dfx.setStyle(dfx.getId('mode_switcher-buttons'),'width',(this.maxWidth+this.staticButtonsWidth+3)+'px');var self=this;dfx.addEvent(this.divs,'click',function(e){var target=dfx.getMouseEventTarget(e);if(dfx.hasClass(target,'button-spacer')===true){target=target.parentNode;}
if(self.isStaticButton(target)===false){self.lastVisibleButton=target;}
self.switchMode(target);});this.mouseOut=true;var autoClose=function(){if(self.mouseOut===true&&dfx.attr(expander,'state')==='opened'){self.animateModeSelection(self.lastVisibleButton);}};var i=null;dfx.hover(dfx.getClass('ToolbarWidgetType'),function(){if(i){clearTimeout(i);}
self.mouseOut=false;},function(){self.mouseOut=true;i=setTimeout(autoClose,2000);});if(dfx.isset(WidgetStore.get('EditingAutoSave'))===true){WidgetStore.get('EditingAutoSave').registerWidget(this);}
var preSelectedMode=dfx.getId(this.id+'-'+this.initialMode);if(!preSelectedMode){var toolbarid=this.initialMode.replace(/ScreenMode|EditingMode/,'EditingToolbarIcon');preSelectedMode=dfx.getId(toolbarid);if(preSelectedMode){dfx.trigger(preSelectedMode,'click');return;}}
this.switchMode(preSelectedMode,null,function(){self.ready();});}
EditingModeSwitcherWidgetType.prototype={switchMode:function(selectedMode,requestParams,callback,extraData,noConfirm)
{var selectedModeId='';if(selectedMode&&dfx.isset(selectedMode.id)===true){selectedModeId=selectedMode.id;}else{selectedModeId=selectedMode[0].id;}
if(noConfirm!==true&&this.previousModeId==='EditEditingMode'){var editWidget=WidgetStore.get('EditEditingModeWidgetType');if(dfx.isset(editWidget)===true){editWidget.modeSwitchedOff();}}
var screenModification=this._hasModified();if(screenModification===true){var answer=confirm(WidgetStore.getUnsavedChangesStr());if(!answer){return;}else{this.disableSaveButton();}}
this._removeSelectedModeClass(selectedModeId);if(this.isStaticButton(selectedMode)===false){this.lastVisibleButton=selectedMode;}
this.animateModeSelection(selectedMode);this.disable(true);var modeid=selectedModeId.substring((this.id+'-').length);this._switchMode(modeid,requestParams,callback,extraData);},_hasModified:function()
{var saveButton=WidgetStore.get('EditingSaveButton');if(saveButton.isEnabled()===true){return true;}
return false;},_removeSelectedModeClass:function(modeid)
{dfx.addClass(dfx.getId(modeid),'mode-button-selected');if(modeid!==(this.id+'-'+this.currentMode)){dfx.removeClass(dfx.getId(this.id+'-'+this.currentMode),'mode-button-selected');}},_switchMode:function(modeid,requestParams,callback,extraData)
{var prevMode=WidgetStore.get(this.previousModeId+'WidgetType');if(prevMode){if(prevMode.switchedOff){prevMode.switchedOff();}else{throw prevMode.id+' must implement switchedOff() method.';}}else{prevMode=WidgetStore.get('PreviewEditingModeWidgetType');if(prevMode){prevMode.switchedOff();}else{prevMode=WidgetStore.get('PreviewEditingMode');if(dfx.isset(prevMode)===true){prevMode.switchedOff();}}}
var self=this;var url=window.location.toString();url=dfx.removeFromQueryString(url,'initialMode');request=dfx.addToQueryString(url,{'modeType':modeid});this.previousMode=this.previousModeId;this.previousModeId=modeid;dfx.get(request,requestParams,function(data){self.currentMode=modeid;WidgetStore.setData('activeMode',self.getModeInfo(modeid));var targetWidget=WidgetStore.get(self.contentDivId);if(self.currentMode==='PreviewEditingMode'||self.currentMode==='EditEditingMode'){var editingContents=dfx.getId('EditingScreenModes');dfx.setStyle(editingContents,'display','none');dfx.setStyle(editingContents,'visibility','hidden');editingContents=dfx.getId('EditingContents');dfx.setStyle(editingContents,'display','block');dfx.setStyle(editingContents,'visibility','visible');dfx.removeClass(editingContents,'scrollable');var conLen=editingContents.childNodes.length;for(var i=0;i<conLen;i++){dfx.remove(editingContents.childNodes[i]);}
targetWidget.setAlternateDiv('EditingContents');}else{var editingContents=dfx.getId('EditingContents');dfx.setStyle(editingContents,'display','none');dfx.setStyle(editingContents,'visibility','hidden');editingContents=dfx.getId('EditingScreenModes');dfx.setStyle(editingContents,'display','block');dfx.setStyle(editingContents,'visibility','visible');editingContents=dfx.getId('EditingScreenModes');if(editingContents){var conLen2=editingContents.childNodes.length;for(var i=0;i<conLen2;i++){dfx.remove(editingContents.childNodes[i]);}}else{var newDiv=document.createElement('div');newDiv.id='EditingScreenModes';dfx.addClass(newDiv,'EditingContentsWidgetType');document.body.appendChild(newDiv);}
targetWidget.setAlternateDiv('EditingScreenModes');}
targetWidget.updateContent(data,function(data){if(dfx.isFn(callback)===true){callback.call(self,data);}});});},getCurrentMode:function()
{return this.currentMode;},getPreviousMode:function()
{return this.previousMode;},getAutoSaveContents:function()
{return this.currentMode;},loadAutoSaveContents:function(content,callback)
{var self=this;if(dfx.isset(content)===true){if(this.currentMode!==content){this.switchMode(dfx.getId(this.id+'-'+content),null,function(){callback.call(self);});}}},disable:function()
{Widget.prototype.disable.call(this);this.displayDisabledDiv(true);},enable:function()
{Widget.prototype.enable.call(this);this.removeDisabledDiv();},animateModeSelection:function(selectedEl)
{if(selectedEl===null||this.isStaticButton(selectedEl)===true){selectedEl=this.lastVisibleButton;}
var staticButtonsRect=dfx.getBoundingRectangle(this.modeSwictherElem);var selectedElRect=dfx.getBoundingRectangle(selectedEl);var sliderMargin=parseInt(dfx.getStyle(this.slider,'margin-left'));var margin=((selectedElRect.x1-staticButtonsRect.x2-sliderMargin)*-1);dfx.animate(this.slider,{marginLeft:margin+'px'},200);this.close(null,null,true);},open:function(callback)
{var toShow=[];var ln=this.divs.length;for(var i=2;i<ln;i++){if(parseInt(dfx.getStyle(this.divs[i],'margin-left'))<0){this.toShow.push(this.divs[i]);}}
dfx.addClass(this.expanderControler,'expander-arrow-left');dfx.attr(this.expander,'state','opened');if(dfx.isFn(callback)===false){callback=function(){};}
if(parseInt(dfx.getStyle(this.slider,'margin-left'))<0){dfx.animate(this.slider,{marginLeft:0},200,callback);callback=function(){};}
dfx.animate(this.switcherInner,{width:(this.staticButtonsWidth+this.getMaxWidth()-4)},200,callback);},close:function(width,resize,force)
{if(force!==true&&this.mouseOut!==true){return;}
dfx.removeClass(this.expanderControler,'expander-arrow-left');dfx.attr(this.expander,'state','closed');dfx.animate(this.switcherInner,{width:this.getMinWidth()+'px'},300);},setZindex:function()
{var len=this.divs.length;for(var i=0;i<len;i++){var zIndex=(len-i);if(i<this.staticButtonsCount){zIndex=len;}
dfx.setStyle(this.divs[i],'z-index',zIndex);}
dfx.setStyle(this.modeSwictherElem,'z-index',len);},getMaxWidth:function()
{if(!this.maxWidth){this.maxWidth=0;var len=this.divs.length;for(var i=this.staticButtonsCount;i<len;i++){var width=dfx.getElementWidth(this.divs[i]);this.maxWidth+=width;}}
return this.maxWidth;},getMinWidth:function()
{var width=(this.staticButtonsWidth+dfx.getElementWidth(this.lastVisibleButton));return(width-2);},getModeInfo:function(modeid)
{return this.modeInfos[modeid];},isStaticButton:function(el)
{var count=this.staticButtonsCount;for(var i=0;i<count;i++){if(el===this.divs[i]){return true;}}
return false;},createModeButton:function(title,id,selected,buttonType,iconType)
{if(dfx.isset(buttonType)===true&&buttonType!=='mode'){var self=this;var toolbar=WidgetStore.get('Toolbar');switch(buttonType){case'icon':var iconDiv=dfx.getId(iconType+'EditingToolbarIcon');var previd=null;dfx.addEvent(iconDiv,'click',function(){var iconW=WidgetStore.get(iconType+'EditingToolbarIcon');if(previd!==id||iconW.state==='inactive'){var screenModification=self._hasModified();if(screenModification===true){var answer=confirm(WidgetStore.getUnsavedChangesStr());if(!answer){return;}}
var icon=WidgetStore.get(iconType+'EditingToolbarIcon');if(icon){icon.toggleState('active');}
self.setModified(false);self._removeSelectedModeClass(id);self._switchMode(id);previd=id;}else{self.switchMode(self.divs[0]);previd=null;}});break;default:break;}}else{var div=document.createElement('div');div.id=this.id+'-'+id;dfx.setUnselectable(div,true);dfx.setHtml(div,title+'<div class="button-spacer"></div>');dfx.addClass(div,'mode-button');dfx.setStyle(div,'z-index','8');dfx.setStyle(div,'cursor','pointer');if(selected===true){dfx.addClass(div,'mode-button-selected');this.currentMode=id;}
return div;}},addModes:function(modes)
{var parentElement=dfx.getId('EditingModeSwitcher');var i=0;for(var id in modes){var mode=modes[id];if(modes.hasOwnProperty(id)===false){continue;}
this.modes[i]={title:mode.title,widgetid:id,system:mode.system};var div=this.createModeButton(mode.title,id,false,mode.type,mode.iconType);if(dfx.isset(div)===true){parentElement.appendChild(div);if(i===1){parentElement=dfx.getId('EditingModeSwitcherSlider');}}
i++;}},makeButtonVisible:function(modeid,callback)
{if(this.buttonIsVisible(modeid)===true){callback.call(this);}else{this.open(callback);}},buttonIsVisible:function(modeid)
{var el=dfx.getId(modeid);if(this.isStaticButton(el)===true||this.lastVisibleButton===el){return true;}else if(dfx.attr(this.expander,'state')==='opened'){return true;}
return false;},getModeButtonid:function(modeid)
{return'EditingModeSwitcher-'+modeid;},getModeIconid:function(modeid)
{return modeid.replace('EditingMode','').replace('ScreenMode','')+'EditingToolbarIcon';}};dfx.inherits('EditingModeSwitcher','Widget');function EditingSaveButtonWidgetType(id)
{Widget.call(this,id);this.widgetType='EditingSaveButton';this.saveCallback=null;this.revertCallback=null;this.domElem=dfx.getId(this.id);this.saveDiv=dfx.getId(this.id+'-save');this.revertDiv=dfx.getId(this.id+'-revert');this.loaderDiv=dfx.getId(this.id+'-loader');this.inactClassName='inact';this.hoverClassName='hover';this.loading=false;this.enabled=false;var self=this;dfx.addEvent(this.saveDiv,'click',function(){if(self.loading===true){return;}
if(dfx.hasClass(self.domElem,self.inactClassName)===false){self.disableAll();if(dfx.isFn(self.saveCallback)===true){self.saveCallback.call(self);}}});var iw=null;dfx.addEvent(this.revertDiv,'click',function(){if(dfx.hasClass(self.domElem,self.inactClassName)===false){self.disableAll();self.displayDisabledDiv();if(iw){iw.show(self.saveDiv,'fixed');return;}
self.includeWidget('Intervention',function(){iw=self.createWidget(null,'Intervention',function(){self.removeDisabledDiv();self.enableAll();},function(){if(dfx.isFn(self.revertCallback)===true){self.displayDisabledDiv(true);self.revertCallback.call(self);}});iw.create(function(){iw.setMessage('You will lose any changes that you have made. Do you still want to revert?');iw.setSize('260px','61px');iw.show(self.saveDiv,'fixed');});});}});dfx.hover(this.domElem,function(){dfx.addClass(self.domElem,self.hoverClassName);},function(){dfx.removeClass(self.domElem,self.hoverClassName);});dfx.hover(this.revertDiv,function(evt){dfx.addClass(self.revertDiv,'mover');},function(evt){dfx.removeClass(self.revertDiv,'mover');});WidgetStore.addDataChangeListener('EditingSaveButton','activeMode',function(newMode,oldMode){if(newMode.id==='PreviewEditingMode'||newMode.id==='VersioningEditingMode'){self.disableAll();}});WidgetStore.addDataChangeListener('EditingSaveButton','activeScreen',function(newScreen,oldScreen){if(dfx.isset(newScreen)===false){return;}});window.onbeforeunload=function(e){if(self.enabled){return WidgetStore.getUnsavedChangesStr();}else{Locking.release();}};var input=dfx.getId(this.id+'-save-input');dfx.addEvent(input,'focus',function(e){dfx.trigger(input,'blur');});this.displayWarning();this.removeWarning();}
EditingSaveButtonWidgetType.prototype={setSaveButton:function(saveCallback,revertCallback)
{this.saveCallback=saveCallback;this.revertCallback=revertCallback;},setTitle:function(title)
{dfx.setHtml(this.saveDiv,title);},displayLoader:function()
{this.loading=true;dfx.addClass(this.domElem,'loader');},removeLoader:function()
{this.loading=false;dfx.removeClass(this.domElem,'loader');},displayWarning:function()
{this.displayLoader();dfx.addClass(this.domElem,'warning');this.loading=false;},removeWarning:function()
{this.removeLoader();dfx.removeClass(this.domElem,'warning');this.loading=false;},showSaveButton:function()
{dfx.setStyle(this.domElem,'visibility','visible');},hideSaveButton:function()
{dfx.setStyle(this.domElem,'visibility','hidden');},enableAll:function()
{this.enableSave();this.enableRevert();this.enabled=true;},disableAll:function()
{this.disableSave();this.disableRevert();this.enabled=false;},enableSave:function()
{dfx.removeClass(this.domElem,this.inactClassName);},disableSave:function()
{dfx.addClass(this.domElem,this.inactClassName);},enableRevert:function()
{dfx.removeClass(this.domElem,this.inactClassName);},disableRevert:function()
{dfx.addClass(this.domElem,this.inactClassName);}};dfx.inherits('EditingSaveButton','Widget');function EditingToolbarWidgetType(id)
{Widget.call(this,id);this.screenToolsEl=dfx.getId(id+'-screenTools');this.iconsWrapper=dfx.getId(id+'-iconsWrapper');this.buttonsWrapper=dfx.getId(id+'-buttonsWrapper');this.init();}
EditingToolbarWidgetType.prototype={init:function()
{var self=this;WidgetStore.addDataChangeListener('EditingToolbar','activeMode',function(newVal,oldVal){self.screenChanged(newVal,oldVal);});},screenChanged:function(newVal,oldVal)
{if(newVal.id!=='EditEditingMode'){dfx.empty(this.screenToolsEl);}},addScreenTool:function(elem)
{this.screenToolsEl.appendChild(this._createWrapper('tools',elem));},addIcon:function(iconElem)
{this.iconsWrapper.appendChild(this._createWrapper('icons',iconElem));},addButton:function(button)
{this.buttonsWrapper.appendChild(this._createWrapper('buttons',button));},_createWrapper:function(type,elem)
{var wrapper=document.createElement('div');dfx.addClass(wrapper,'ToolbarWidgetType-'+type+'Wrapper-item');wrapper.appendChild(elem);return wrapper;}};dfx.inherits('EditingToolbar','Widget');function ExpandableMenuItemWidgetType(id,title)
{Widget.call(this,id);this.widgetType='ExpandableMenuItem';this.title=null;this.content=null;this.data=null;this.setTitle(title);}
ExpandableMenuItemWidgetType.prototype={create:function(callback)
{if(!dfx.isFn(callback)){throw InvalidArgumentException();}
var main=document.createElement('div');main.id=this.id;dfx.addClass(main,this.getClass());var top=document.createElement('div');top.id=this.id+'-top';dfx.addClass(top,this.getClass()+'-top');var expander=document.createElement('div');expander.id=this.id+'-expander';dfx.addClass(expander,this.getClass()+'-expander');var titleBar=document.createElement('div');titleBar.id=this.id+'-title';dfx.addClass(titleBar,this.getClass()+'-title');dfx.setHtml(titleBar,this.title);var summary=document.createElement('div');summary.id=this.id+'-summary';dfx.addClass(summary,this.getClass()+'-summary');dfx.setHtml(summary,this.summary);var bottom=document.createElement('div');bottom.id=this.id+'-bottom';dfx.addClass(bottom,this.getClass()+'-bottom');this.content=document.createElement('div');dfx.addClass(this.content,this.getClass()+'-content');top.appendChild(expander);top.appendChild(titleBar);top.appendChild(summary);bottom.appendChild(this.content);main.appendChild(top);main.appendChild(bottom);this.createChildren(this.content,function(){callback.call(this,main);return;});},setTitle:function(title)
{this.title=title;var el=dfx.getId(this.id+'-title');if(el){dfx.setHtml(el,title);}},getTitle:function()
{return this.title;},setSummary:function(s)
{this.summary=s;var el=dfx.getId(this.id+'-summary');if(el){dfx.setStyle(el,'width',this._getMaxSummaryWidth()+'px');dfx.setHtml(el,s);}},_getMaxSummaryWidth:function()
{var title=dfx.getId(this.id+'-title');if(title){var pw=dfx.getElementWidth(title.parentNode);var tw=dfx.getElementWidth(title);var sw=(pw-tw-50);if(sw<0){sw=0;}
return sw;}},getSummary:function()
{return this.summary;},add:function(widget)
{Widget.prototype.add.call(this,widget);var el=this.content;if(el){widget.create(function(elem){el.appendChild(elem);});}},expand:function()
{var expander=dfx.getId(this.id+'-expander');var el=dfx.getId(this.id+'-bottom');dfx.setStyle(el,'display','block');dfx.addClass(expander,this.getClass()+'-expander-open');this.setSummary('');},collapse:function()
{var expander=dfx.getId(this.id+'-expander');var el=dfx.getId(this.id+'-bottom');dfx.setStyle(el,'display','none');dfx.removeClass(expander,this.getClass()+'-expander-open');this.setSummary(this.getChildrenSummary());},getChildrenSummary:function()
{var s=[];var len=this.children.length;for(var i=0;i<len;i++){if(dfx.isFn(this.children[i].getWidgetSummary)===true){s.push(this.children[i].getWidgetSummary());}}
return s.join(' - ');},_addEvents:function()
{this.setSummary(this.getChildrenSummary());var expander=dfx.getId(this.id+'-expander');if(expander){var el=dfx.getId(this.id+'-bottom');var self=this;dfx.addEvent(dfx.getId(this.id+'-top'),'click',function(){if(dfx.getStyle(el,'display')==='block'){self.collapse();}else{self.expand();}});}else{throw new'Failed to add action to expander. '+this.getClass();}},setData:function(data)
{this.data=data;},getData:function()
{return this.data;}};dfx.inherits('ExpandableMenuItem','Widget');function ExpandableMenuWidgetType(id,collapsed,ani)
{Widget.call(this,id);this.widgetType='ExpandableMenu';this.domElm=null;this.sortEnabled=false;this.animation=ani||false;this.collapsed=collapsed||true;this.header=dfx.getId(this.id+'_header');this.body=dfx.getId(this.id+'_body');this.addHeaderClickEvent();}
ExpandableMenuWidgetType.prototype={addHeaderClickEvent:function(callback)
{var self=this;dfx.addEvent(this.header,'click',function(){var after=function(){if(self.collapsed===true){self.collapsed=false;dfx.swapClass(self.header,'ExpandableMenuWidgetType-header-collapse','ExpandableMenuWidgetType-header-open');}else{self.collapsed=true;dfx.swapClass(self.header,'ExpandableMenuWidgetType-header-open','ExpandableMenuWidgetType-header-collapse');}
if(dfx.isFn(callback)===true){callback.call(self);}};if(self.animation===true){if(self.collapsed===true){dfx.blindDown(self.body,'fast',after);}else{dfx.blindUp(self.body,'fast',after);}}else{if(self.collapsed===true){dfx.setStyle(self.body,'display','block');}else{dfx.setStyle(self.body,'display','none');}
after();}});},create:function(callback)
{if(dfx.isFn(callback)===false){throw'callback must be a function (ExpandableMenuWidgetType.create)';}
var main=document.createElement('div');main.id=this.id;dfx.addClass(main,this.getClass());this.domElm=main;callback.call(this,main);},addItem:function(title,data,callback)
{if(dfx.isFn(callback)===false){throw'callback must be a function';}
var self=this;this.includeWidgets(['ExpandableMenuItem'],function(){var item=self.createWidget(null,'ExpandableMenuItem',title);item.setData(data);self.add(item);item.create(function(itemEl){self.domElm.appendChild(itemEl);if(self.sortEnabled===true){dfxjQuery(self.domElm).SortableAddItem(itemEl);}
callback.call(self,item);});});},show:function(index,closeOthers)
{var len=this.children.length;if(closeOthers===true){for(var i=0;i<len;i++){this.children[i].collapse();}}
if(index<0){index=(len-1);}
this.children[index].expand();},getChildren:function()
{var elems=dfx.getClass('ExpandableMenuItemWidgetType',this.domElem);var children=[];var len=elems.length;for(var i=0;i<len;i++){children.push(WidgetStore.get(elems[i].id));}
return children;},enableSorting:function(onStopCallback,handle)
{this.sortEnabled=true;var c='ExpandableMenuItemWidgetType';handle=handle||('div.'+c+'-top');dfxjQuery(dfx.getId(this.id)).Sortable({accept:c,revert:true,tolerance:'intersect',opacity:0.8,handle:handle,ghosting:true,axis:'vertically',onStop:function(e){dfx.setStyle(dfx.getClass(c),'display','block');if(dfx.isFn(onStopCallback)===true){onStopCallback.call(this);}},onStart:function(){dfx.setStyle(dfx.getId('dragHelper'),'z-index',1010);}});}};dfx.inherits('ExpandableMenu','Widget');function FileCreateWizardWidgetType(id)
{Widget.call(this,id);this.progressBar=null;this.incrm=100;this.errors=[];this.success={};var wiz=WidgetStore.get('WizardRunner');if(dfx.isset(wiz)===true){this.wizardRunner=wiz;var self=this;wiz.setCustomProcessFn(function(steps,values){self.processWizard(steps,values);});}}
FileCreateWizardWidgetType.prototype={processWizard:function(steps,values,_index)
{if(dfx.isset(_index)===false){_index=0;this.errors=[];this.success={};if(values.length>0){this.incrm=(100/values.length);}
var self=this;this.createProgressBar(function(el){self.wizardRunner.wizardStepManager._setProcessingMessage(el);self.wizardRunner.wizardStepManager._showProcessing();self.processWizard(steps,values,_index);});}else{if(dfx.isset(values[_index])===true){var fileWidget=null;for(var step in values[_index]){for(var widgetid in values[_index][step]){var widget=WidgetStore.get(widgetid);if(widget.widgetType==='FileUpload'){fileWidget=widget;break;}}}
var self=this;this.processSingleUpload(fileWidget,_index,values[_index],function(){self.processWizard(steps,values,(_index+1));});}else{this.wizardRunner.wizardStepManager._hideConfirmProcessing();var result={};result.errors=this.errors;result.type='action';if(dfx.isEmpty(this.success)===false){result.success=this.success;}
this.wizardRunner.wizardStepManager._showCompleteMsg(result);this.reset();}}},reset:function()
{this.errors=[];this.success={};this.incrm=100;},_getUploadParams:function()
{return this.wizardRunner.getProcessParams();},processSingleUpload:function(fileWidget,idx,stepData,callback)
{if(dfx.isset(fileWidget)===false){return;}
var form=document.createElement('form');form.id=this.id+idx;form.setAttribute('method','post');form.setAttribute('enctype','multipart/form-data');form.setAttribute('encoding','multipart/form-data');var fieldEl=fileWidget.getElem(stepData._oriIndex);var tmpDiv=document.createElement('div');dfx.insertBefore(fieldEl,tmpDiv);form.appendChild(fieldEl);var params=this._getUploadParams();var steps=[];steps.push(stepData);params.steps=dfx.jsonEncode(steps);params.steps=params.steps.replace(/&/gi,'__AMPERSAND__-_');params.steps=params.steps.replace(/#/gi,'__HASH__-_');form.setAttribute('action',dfx.addToQueryString(this.url,params));this.appendFields(form);dfx.setStyle(form,'display','none');document.body.appendChild(form);fileWidget.setForm(form);var self=this;fileWidget.setEndFunction(function(status){self._fileUploadCompleted(idx,status,form,callback);});form.submit();dfx.insertBefore(tmpDiv,fieldEl);dfx.remove(tmpDiv);},_fileUploadCompleted:function(idx,status,form,callback)
{var self=this;status=dfx.jsonDecode(dfx.getHtml(status));var errLen=status.errors.length;for(var i=0;i<errLen;i++){self.errors.push(status.errors[i]);}
if(status.hasOwnProperty('success')===true){if(status.success.hasOwnProperty('icon')===true){self.success.icon=status.success.icon;}
if(status.success.hasOwnProperty('assets')===true){if(self.success.hasOwnProperty('assets')===false){self.success.assets={};}
for(var assetid in status.success.assets){self.success.assets[assetid]=status.success.assets[assetid];}}}
dfx.remove(form);self.progressBar.updateProgress((self.incrm*(idx+1)),function(){callback.call(self);});},createProgressBar:function(callback)
{var main=document.createElement('div');var progressBarCont=document.createElement('div');main.appendChild(progressBarCont);var self=this;this.includeWidget('ProgressBar',function(){self.progressBar=self.createWidget(this.id+'-progresbar','ProgressBar');self.progressBar.setNoDeleteBtn(true);self.progressBar.create(function(el){self.progressBar.updateLabel('File upload in progress ...');progressBarCont.appendChild(el);callback.call(self,main);});});},appendFields:function(formEl){}};dfx.inherits('FileCreateWizard','Widget');function FileUploadWidgetType(id,allowedTypes,linkedTextFieldid,showFileName)
{Widget.call(this,id);this.widgetType='FileUpload';this.iframe=null;this.startFn=null;this.endFn=null;this.updateFn=null;this.uploadElements=[];this._currentIndex=0;this.parentNode=null;this.allowedTypes=allowedTypes||[];this.showFileName=showFileName||false;this.linkedTextFieldid=linkedTextFieldid||null;this.linkedTextField=null;this.previousText=null;this._errorIw=null;var self=this;this.includeWidget('Intervention',function(){self.init();});}
FileUploadWidgetType.prototype={init:function()
{this._createIframe();var elem=dfx.getId(this.id);this.attachFileTypeCheck(elem);if(dfx.isset(elem)===true){this.parentNode=elem.parentNode;this.uploadElements[this._currentIndex]=elem;}},attachFileTypeCheck:function(ipt)
{var self=this;var errorIw=this._errorIw;dfx.addEvent(ipt,'change',function(e){if(self.linkedTextFieldid!==null){if(self.linkedTextField===null){self.linkedTextField=WidgetStore.get(self.linkedTextFieldid);}
self.linkedTextField.setReturnLocalInstanceDefaultValue(false);var currentLinkedTextFieldVal=self.linkedTextField.getValue();}
var displayFileNames=function(){var pathSplit=ipt.value.split(/\/|\\/);var inputValue=pathSplit[(pathSplit.length-1)];if(self.showFileName){dfx.setHtml(ipt.parentNode.childNodes[1],inputValue);}
if(self.linkedTextFieldid!==null){self.linkedTextField.setLocalInstanceDefaultValue(inputValue);self.linkedTextField.setReturnLocalInstanceDefaultValue(true);if(self.linkedTextField.enabled===true&&(currentLinkedTextFieldVal==='')){self.linkedTextField.setValue('');dfx.trigger(self.linkedTextField.input,'keyup');}}};if(self.allowedTypes.length>0){var ext=dfx.getFileExtension(ipt.value);if(errorIw!==null){if(errorIw.popupActive===true){errorIw.close();errorIw=null;}}
if(dfx.inArray(ext,self.allowedTypes)===false){errorIw=self.createWidget('inter','Intervention',null,function(){ipt.value='';if(self.linkedTextFieldid!==null){self.linkedTextField.setLocalInstanceDefaultValue('');if(currentLinkedTextFieldVal===''){self.linkedTextField.setValue('');}
dfx.trigger(self.linkedTextField.input,'keyup');if(self.showFileName){dfx.setHtml(ipt.parentNode.childNodes[1],'&nbsp;');}}});errorIw.setCancelText(null);errorIw.setConfirmText('Close');errorIw.create(function(){errorIw.setSize(null,'61px');errorIw.setMessage('The file type that you have selected is not supported.');errorIw.show(ipt);});}else{displayFileNames();}}else{displayFileNames();}});},getAllowedExtensions:function()
{return this.allowedTypes;},create:function(callback)
{var wrap=document.createElement('div');var input=document.createElement('input');input.id=this.id;input.name=this.id;this.attachFileTypeCheck(input);dfx.addClass(input,'FileUploadWidgetType');input.type='file';this.uploadElements[this._currentIndex]=input;wrap.appendChild(input);if(this.showFileName===true){var filename=document.createElement('div');filename.id=this.id+'-filename';dfx.addClass(filename,this.widgetType+'WidgetType-filename');dfx.setHtml(filename,'No file selected');wrap.appendChild(filename);}
if(dfx.isFn(callback)===true){callback.call(this,wrap);}},setForm:function(form)
{form.setAttribute('target',this.id+'-iframe');var hidden=document.createElement('input');hidden.type='hidden';hidden.name='APC_UPLOAD_PROGRESS';hidden.value=this.id+'-apc';var fields=form.getElementsByTagName('input');var ln=fields.length;for(var i=0;i<ln;i++){if(fields[i].type==='file'){dfx.insertBefore(fields[i],hidden);break;}}
var self=this;form.onsubmit=function(){self._uploadStarted();};},_uploadStarted:function()
{if(this.startFn!==null){this.startFn.call(this);}},_uploadCompleted:function()
{if(this.endFn!==null){var doc=dfx.getIframeDocument(this.iframe);this.endFn.call(this,doc.body);}},_createIframe:function()
{var id=this.id+'-iframe';var iframe=dfx.getId(id);if(iframe){dfx.remove(iframe);}
iframe=null;var failBrowser=false;try{iframe=document.createElement('<iframe name="'+id+'">');failBrowser=true;}catch(ex){iframe=document.createElement('iframe');iframe.name=id;}
var self=this;iframe.id=id;iframe.setAttribute('src','about:blank');dfx.setStyle(iframe,'display','none');document.body.appendChild(iframe);if(failBrowser===false){iframe.onload=function(){self._uploadCompleted();};}else{iframe.onreadystatechange=function(){if(iframe.readyState==='complete'){self._uploadCompleted();}};}
this.iframe=iframe;},setUpdateFunction:function(callback)
{this.updateFn=callback;},setStartFunction:function(callback)
{this.startFn=callback;},setEndFunction:function(callback)
{this.endFn=callback;},checkProgress:function(callback)
{var progress=0;var params={action:'getProgress',widget:'FileUploadWidget',progress_key:this.id+'-apc'};var self=this;dfx.get(this.url,params,function(progress){if(dfx.isFn(callback)===true){callback.call(this,progress);}
if(dfx.isFn(self.updateFn)===true){self.updateFn.call(self,progress);}});},getValue:function()
{return this.uploadElements[this._currentIndex].value;},getElem:function(idx)
{return this.uploadElements[idx];},setElem:function(idx,elem)
{this.uploadElements[idx]=elem;this.parentNode.appendChild(elem);},setValue:function(value,r,index)
{if(this._currentIndex!==index){var cElem=this.uploadElements[this._currentIndex].parentNode;if(dfx.isset(cElem)===true){dfx.setStyle(cElem,'display','none');}
this._currentIndex=index;}
var nElem=this.uploadElements[index];if(dfx.isset(nElem)===false){this.create(function(elem){dfx.insertAfter(cElem,elem);});}else{dfx.setStyle(nElem.parentNode,'display','block');}},reset:function()
{var self=this;var wrap=dfx.getId(this.id).parentNode;wrap.innerHTML='';this.uploadElements=[];this._currentIndex=0;this.create(function(i){wrap.appendChild(i);});}};dfx.inherits('FileUpload','Widget');function HelpWidgetType(id,systems,canSubmitIssue,isClientSystem,firstLogin)
{Widget.call(this,id);this.widgetType='Help';this.container=null;this.mode='help';this.screen='';this.title='';this.subTitle='';this.systems=systems||[];this.pointer=null;this.pointerDim={};this._fadeTimer=null;this.levels=['msg','popup','tab','ape','screen','mode'];this.systemsMenu=null;this.selectedSystem=null;this.iframeDoc=null;this.canSubmitIssue=canSubmitIssue;this.isClientSystem=isClientSystem;this.info={};this.stepList={steps:[],element:null};this.navBtns={};this.domElem=null;this.firstLogin=firstLogin||false;this.url=this.getCurrentUrl(true);this.init();}
HelpWidgetType.prototype={init:function()
{this.selectedSystem=null;var button=dfx.getId('HelpEditingToolbarIcon-icon');var self=this;dfx.addEvent(button,'click',function(){var icon=WidgetStore.get('HelpEditingToolbarIcon');if(icon){if(icon.state!=='active'){icon.toggleState('active');}else{self._close();return;}}
self.selectedSystem=null;if(self.container===null){WidgetStore.addDataChangeListener('HelpGenModeListener','activeMode',function(newMode,prevMode){self.modeChanged(newMode,prevMode);});WidgetStore.addDataChangeListener('HelpGenScreenListener','activeScreen',function(newScreen,prevScreen){self.screenChanged(newScreen,prevScreen);});self.create(function(el){self.container=el;document.body.appendChild(el);self.titleEl=dfx.getClass(self.getClass()+'-title',el)[0];self.titleSubEl=dfx.getClass(self.getClass()+'-sub-title',el)[0];var iframe=dfx.getId(self.id+'-iframe');dfx.addEvent(iframe,'load',function(){self.frameLoaded();var doc=dfx.getIframeDocument(iframe);var elems=dfx.getClass('HelpWidgetType-article-title',doc.body);self.iframeDoc=doc;if(self.mode==='help'){if(dfx.ucFirst(doc.title)===doc.title){self.setSubTitle(doc.title);}
if(self.firstLogin===true){self.firstLogin=false;var firstMsg='Welcome to Squiz CMS. Please take the time to read these general';firstMsg+=' help articles and familiarise yourself with the system.';self.showInfoBox(firstMsg);}
self.applyLinkActions(doc);self.checkArticleContext(doc);}else if(self.mode==='issue'){self.setSubTitle(dfx.ucFirst(self.getCurrentSystem()));}
setTimeout(function(){self.hideOverlay();},500);});if(self.firstLogin===true){var params={value:'Editing',context:'General',system:'Editing'};self.loadInIframe(params);}else{self.loadInIframe();}
var handle=[dfx.getClass('HelpWidgetType-top-mid',el)[0],dfx.getClass('HelpWidgetType-title',el)[0],dfx.getClass('HelpWidgetType-sub-title',el)[0]];var reisizeEl=dfx.getClass(self.getClass()+'-mid-center',el)[0];dfxjQuery(el).draggable({handle:handle,start:function(){dfx.setStyle(el,'right','auto');},drag:this.adjustPosition});var resizables=[el,dfx.getClass(this.getClass()+'-mid',el)[0]];var overlay=dfx.getClass(this.getClass()+'-mid-overlay',el)[0];var handles=dfx.getClass(this.getClass()+'-bottom-right',el)[0];var opts={handles:handles,minWidth:380,minHeight:150};self.enableResize(resizables,opts,function(){dfx.setStyle(overlay,'width','100%');dfx.setStyle(overlay,'height','100%');},function(){dfx.setStyle(overlay,'width','0%');dfx.setStyle(overlay,'height','0%');});});}else{dfx.setStyle(self.container,'display','block');self.loadInIframe();}});if(this.firstLogin===true){WidgetStore.addDataChangeListener('HelpGenModeListener-firstLogin','activeMode',function(newMode,prevMode){if(prevMode&&self.firstLogin===true){dfx.trigger(button,'click');WidgetStore.removeDataChangeListener('HelpGenModeListener-firstLogin','activeMode');}});}},create:function(callback)
{var self=this;var c=this.getClass();var id=this.id;var main=document.createElement('div');main.id=id;dfx.addClass(main,c);this.domElem=main;var content='<div class="'+c+'-top">';content+='<div class="'+c+'-top-left"></div>';content+='<div class="'+c+'-top-right"></div>';content+='<div class="'+c+'-top-mid">';content+='<div class="'+c+'-top-close" title="Close"></div><div class="'+c+'-title">Help Desk</div><div class="'+c+'-sub-title">'+this.subTitle+'</div>';content+='<div class="'+c+'-mode-switcher"><div class="'+c+'-slider left">&nbsp;</div><div class="'+c+'-icon-help" title="Click to view the help articles">&nbsp;</div><div class="'+c+'-icon-support" title="Click to view and report problems with the system">&nbsp;</div></div>';content+='</div>';content+='</div>';content+='<div class="'+c+'-menubar">';content+='<div class="'+c+'-menubar-left"></div>';content+='<div class="'+c+'-menubar-right"></div>';content+='<div class="'+c+'-menubar-center"></div>';content+='</div>';content+='<div class="'+c+'-issue-menubar hide">';content+='<div class="'+c+'-issue-menubar-left"></div>';content+='<div class="'+c+'-issue-menubar-right"></div>';content+='</div>';content+='<div class="'+c+'-mid">';content+='<div class="'+c+'-mid-left"></div>';content+='<div class="'+c+'-mid-right"></div>';content+='<div class="'+c+'-mid-center">';content+='<div class="'+c+'-helpContent">';content+='<iframe frameborder="0" border="0" name="'+this.id+'-iframe" id="'+this.id+'-iframe" width="100%" height="100%" src="" style="border:none;"></iframe>';content+='<div id="'+this.id+'-mid-overlay" class="'+c+'-mid-overlay"></div>';content+='<div id= "'+this.id+'-msgoverlay" class="'+c+'-mid-msgoverlay"></div>';content+='<div class="'+c+'-mid-infoBox-wrapper">';content+='<div class="'+c+'-mid-infoBox">';content+='<div class="'+c+'-mid-infoBox-inner">';content+='<div class="'+c+'-mid-infoBox-wrp">';content+='<div class="'+c+'-mid-infoBox-icon-info"></div>';content+='<div class="'+c+'-mid-infoBox-msg"></div>';content+='</div>';content+='<div class="'+c+'-mid-infoBox-hidemsg"><span id="_infoBox-hide" class="'+c+'-mid-infoBox-hide">Cancel</span></div>';content+='</div></div></div>';content+='</div>';content+='</div>';content+='</div>';content+='<div class="'+c+'-bottom"><div class="'+c+'-bottom-left"></div><div class="'+c+'-bottom-right"></div><div class="'+c+'-bottom-center"></div></div>';dfx.setHtml(main,content);var closeBtn=dfx.getClass(c+'-top-close',main)[0];dfx.addEvent(closeBtn,'click',function(){if(self.mode==='issue'){self.changeMode('help');}
self._close();});var modeSwitcher=dfx.getClass(c+'-mode-switcher',main)[0];dfx.addEvent(modeSwitcher,'click',function(){self.changeMode();});var menuBar=dfx.getClass(c+'-menubar-center',main)[0];this._createMenuBar(menuBar);if(dfx.isFn(callback)===true){callback.call(this,main);}},adjustPosition:function(event,ui)
{var obj=dfx.getId(this.id);var objHeight=obj.offsetHeight;var objWidth=obj.offsetWidth;var winWidth=dfx.getWindowDimensions().width;var winHeight=dfx.getWindowDimensions().height;var maxWidth=(winWidth-objWidth);var maxHeight=(winHeight-objHeight);if(ui.position.top<0){ui.position.top=0;}
if(ui.position.top>maxHeight){ui.position.top=maxHeight;}
if(ui.position.left<0){ui.position.left=0;}
if(ui.position.left>maxWidth){ui.position.left=maxWidth;}},changeMode:function(mode)
{var self=this;var c=this.getClass();var main=dfx.getId(this.id);var modeSwitcher=dfx.getClass(c+'-mode-switcher',main)[0];var menuBar=dfx.getClass(c+'-menubar-center',main)[0];var slider=dfx.getClass(c+'-slider',main)[0];var helpMenubar=dfx.getClass(c+'-menubar',main)[0];var changeTo='';if(dfx.isset(mode)===false){if(dfx.hasClass(slider,'left')===true){changeTo='issue';}else{changeTo='help';}}else{changeTo=mode;}
var title=dfx.getClass('HelpWidgetType-title',main)[0];var subTitle=dfx.getClass('HelpWidgetType-sub-title',main)[0];switch(changeTo){case'help':dfx.swapClass(slider,'right','left');dfx.addClass(self.navBtns.bugs,'hidden');if(this.canSubmitIssue===true){dfx.addClass(self.navBtns.newIssue,'hidden');}
dfx.removeClass(self.navBtns.find,'hidden');dfx.removeClass(self.navBtns.index,'hidden');dfx.removeClass(self.navBtns.general,'hidden');dfx.removeClass(self.navBtns.search,'hidden');this.setTitle('Help Desk');dfx.removeClass(title,'supportDesk');this.mode='help';this.loadInIframe();break;case'issue':dfx.swapClass(slider,'left','right');dfx.removeClass(self.navBtns.bugs,'hidden');if(this.canSubmitIssue===true){dfx.removeClass(self.navBtns.newIssue,'hidden');}
dfx.addClass(self.navBtns.find,'hidden');dfx.addClass(self.navBtns.index,'hidden');dfx.addClass(self.navBtns.general,'hidden');dfx.addClass(self.navBtns.search,'hidden');this.setTitle('Support Desk');dfx.addClass(title,'supportDesk');this.mode='issue';this.loadInIframe({},'getBugLists','bug');break;default:break;}},_createMenuBar:function(menuBar)
{var self=this;var btns=[];this.navBtns.back=this._createMenuBarBackButton();menuBar.appendChild(this.navBtns.back);this.navBtns.forward=this._createMenuBarForwardButton();menuBar.appendChild(this.navBtns.forward);this.navBtns.home=this._createMenuBarHomeButton();menuBar.appendChild(this.navBtns.home);this.navBtns.navSys=this._createMenuBarSysSelector();menuBar.appendChild(this.navBtns.navSys);this.navBtns.find=this._createMenuBarFind();menuBar.appendChild(this.navBtns.find);this.navBtns.index=this._createMenuBarIndex();menuBar.appendChild(this.navBtns.index);this.navBtns.general=this._createMenuBarGeneral();menuBar.appendChild(this.navBtns.general);this.navBtns.search=this._createMenuBarSearch();menuBar.appendChild(this.navBtns.search);this.navBtns.bugs=this._createMenuBarInstallationBugs()
menuBar.appendChild(this.navBtns.bugs);if(this.canSubmitIssue===true){this.navBtns.newIssue=this._createMenuBarNewIssue();menuBar.appendChild(this.navBtns.newIssue);}
dfx.foreach(this.navBtns,function(key){var button=self.navBtns[key];dfx.addClass(button,'HelpWidgetType-nav-button');dfx.addEvent(button,'mousedown',function(e){var target=dfx.getMouseEventTarget(e);dfx.addClass(target,'nav-btn-hit');dfx.addEvent(document,'mouseup.HelpWidgetType_nav',function(e){dfx.removeClass(button,'nav-btn-hit');dfx.removeEvent(document,'mouseup.HelpWidgetType_nav');});});return true;});if(this.mode==='help'){dfx.addClass(this.navBtns.bugs,'hidden');dfx.addClass(this.navBtns.newIssue,'hidden');}else if(this.mode==='issue'){dfx.addClass(this.navBtns.find,'hidden');dfx.addClass(this.navBtns.index,'hidden');dfx.addClass(this.navBtns.search,'hidden');}},_createMenuBarBackButton:function()
{var self=this;var back=document.createElement('div');back.title='Back';dfx.addClass(back,this.getClass()+'-nav-back');dfx.addEvent(back,'click',function(){window[self.id+'-iframe'].history.back();});return back;},_createMenuBarForwardButton:function()
{var self=this;var forward=document.createElement('div');forward.title='Forward';dfx.addClass(forward,this.getClass()+'-nav-forward');dfx.addEvent(forward,'click',function(){window[self.id+'-iframe'].history.forward();});return forward;},_createMenuBarHomeButton:function()
{var self=this;var home=document.createElement('div');home.title='Home';dfx.addClass(home,this.getClass()+'-nav-home');dfx.addEvent(home,'click',function(){if(self.mode==='help'){self.selectedSystem=null;self.loadInIframe();}else{dfx.removeClass(dfx.getId('HelpWidgetType-nav-newIssue'),'selected');dfx.removeClass(dfx.getId('HelpWidgetType-nav-bugs'),'selected');self.selectedSystem=null;self.loadInIframe({},'getBugLists','bug');}});return home;},_createMenuBarSysSelector:function()
{var self=this;var navSys=document.createElement('div');navSys.title='Menu';dfx.addClass(navSys,this.getClass()+'-nav-systems');dfx.addEvent(navSys,'click',function(){var active=dfx.hasClass(self.navBtns.navSys,'HelpWidgetType-nav-systems-on');if(active===true){dfx.removeClass(self.navBtns.navSys,'HelpWidgetType-nav-systems-on');dfx.setHtml(self.systemsMenu,'');dfx.hideElement(self.systemsMenu);}else{dfx.addClass(self.navBtns.navSys,'HelpWidgetType-nav-systems-on');var cls=self.getClass()+'-systemsMenu';var menu=document.createElement('div');dfx.addClass(menu,cls);var content='<div class="'+cls+'-wrapper">';var c=cls+'-item';var currentSystem=self.getCurrentSystem();var baseURL=self.getSkinURL();for(var i in self.systems){if(self.systems.hasOwnProperty(i)===true){var bgurl=baseURL+'images/SystemIcons/smh_'+self.systems[i].toLowerCase()+'.png';content+='<div class="'+c;if(currentSystem===self.systems[i]){content+=' selected';}
content+='" sys="'+self.systems[i]+'">';content+='<div class="'+c+'-text" sys="'+self.systems[i]+'">'+self.systems[i].replace(/([a-z])([A-Z])/,'$1 $2')+'</div>';if(currentSystem===self.systems[i]){content+='<div class="'+c+'-selected"></div>';}
content+='</div>';}}
content+='</div>';content+='<div class="'+cls+'-bottom"></div>';dfx.setHtml(menu,content);dfx.addEvent(dfx.getClass(c,menu),'click',function(e){var target=dfx.getMouseEventTarget(e);if(self.mode==='help'){if(target.getAttribute('sys')){self.selectedSystem=target.getAttribute('sys');self.loadInIframe({value:self.selectedSystem});}}else{if(target.getAttribute('sys')){self.selectedSystem=target.getAttribute('sys');dfx.removeClass(dfx.getId('HelpWidgetType-nav-newIssue'),'selected');dfx.removeClass(dfx.getId('HelpWidgetType-nav-bugs'),'selected');self.loadInIframe({onlySystem:self.getCurrentSystem()},'getBugLists','bug');}}});dfx.addEvent([document,self.iframeDoc],'click',function(e){var target=dfx.getMouseEventTarget(e);if(target!==navSys){dfx.removeClass(navSys,'HelpWidgetType-nav-systems-on');dfx.setHtml(self.systemsMenu,'');dfx.hideElement(self.systemsMenu);}});self.systemsMenu=menu;dfx.showElement(self.systemsMenu);var menuBar=dfx.getClass('HelpWidgetType-menubar',dfx.getId(self.id))[0];menuBar.appendChild(menu);}});return navSys;},_createMenuBarGeneral:function()
{var self=this;var index=document.createElement('div');index.title='General help articles';dfx.addClass(index,this.getClass()+'-nav-gen');var params={value:'Editing',context:'General',system:'Editing'};dfx.addEvent(index,'click',function(){self.loadInIframe(params);});return index;},_createMenuBarIndex:function()
{var self=this;var index=document.createElement('div');index.title='Glossary';dfx.addClass(index,this.getClass()+'-nav-index');dfx.addEvent(index,'click',function(){self.loadInIframe({glossary:'glossary_index'});});return index;},_createMenuBarSearch:function()
{var self=this;var search=document.createElement('input');search.type='text';dfx.addClass(search,this.getClass()+'-nav-search');dfx.addEvent(search,'keypress',function(e){if(e.keyCode===13){value=dfx.trim(search.value);if(value.length===0){return;}
self.search(value);}});return search;},_createMenuBarFind:function()
{var self=this;var find=document.createElement('div');find.title='Picker';dfx.addClass(find,this.getClass()+'-nav-find');dfx.addEvent(find,'click',function(e,showMsg){dfx.addEvent(document,'keypress.HelpWidgetType_finder',function(e){if(e.keyCode===27){self.closeMessage();dfx.removeEvent(document,'keypress.HelpWidgetType_finder');dfx.removeEvent(document,'mousedown.HelpWidgetType_finder');}});if(showMsg!==false){self.showMessage('Click on a section of the screen to view more information about it.');}
dfx.addEvent(document,'mousedown.HelpWidgetType_finder',function(e){var target=dfx.getMouseEventTarget(e);if(target!==find&&target!==self.iframeDoc.getElementById('_infoBox-hide')&&target!==dfx.getId('_infoBox-hide')){dfx.removeEvent(document,'keypress.HelpWidgetType_finder');var target=dfx.getMouseEventTarget(e);var parents=dfx.getParents(target);var parentEvents=self._removeEvents(parents);var targetEvents=self._removeEvents([target]);dfx.addEvent(document,'mouseup.HelpWidgetType_finder',function(){setTimeout(function(){self._addElemEvents(parentEvents);self._addElemEvents(targetEvents);},150);dfx.removeEvent(document,'mouseup.HelpWidgetType_finder');});dfx.removeEvent(document,'mousedown.HelpWidgetType_finder');var elemInfos=self.getIds(parents);if(target.id){elemInfos.ids.unshift(target.id);}
if(target.className){elemInfos.classNames.unshift(target.className);}
var params={widget:'HelpWidget',action:'findArticleForWidget',elemInfos:dfx.jsonEncode(elemInfos),system:self.getCurrentSystem(true)};var contextInfo=self._getContextInfo();params.context=contextInfo.context;params.cvalue=contextInfo.value;dfx.get(self.url,params,function(data){try{data=dfx.jsonDecode(data);}catch(e){data={};}
if(!data.msg){self.pointToWidget(data.widgetid,data.widgetclass,data.system);self.showArticle(data.glossaryid,'glossary',data.system);}else{self.showMessage(data.msg);dfx.trigger(find,'click',false);}});dfx.preventDefault(e);dfx.stopPropagation(e);return false;}});});return find;},_createMenuBarInstallationBugs:function()
{var self=this;var bugs=document.createElement('div');bugs.title='Show issues from this system';bugs.id='HelpWidgetType-nav-bugs';dfx.addClass(bugs,this.getClass()+'-nav-bugs');dfx.addEvent(bugs,'click',function(){dfx.addClass(self.navBtns.bugs,'selected');if(self.canSubmitIssue===true){dfx.removeClass(self.navBtns.newIssue,'selected');}
self.loadInIframe({currentInstall:true},'getBugLists','bug');});return bugs;},_createMenuBarNewIssue:function()
{var self=this;var newIssue=document.createElement('div');newIssue.title='Add new issue';newIssue.id='HelpWidgetType-nav-newIssue';dfx.addClass(newIssue,this.getClass()+'-nav-newIssue');dfx.addEvent(newIssue,'click',function(){dfx.addClass(self.navBtns.newIssue,'selected');dfx.removeClass(self.navBtns.bugs,'selected');self.loadInIframe({},'newIssue','bug');});return newIssue;},_close:function()
{dfx.setStyle(this.container,'display','none');var icon=WidgetStore.get('HelpEditingToolbarIcon');if(icon){icon.toggleState('inactive');}
this.closeMessage();dfx.removeEvent(document,'keypress.HelpWidgetType_finder');dfx.removeEvent(document,'mousedown.HelpWidgetType_finder');},showArticle:function(id,type,system)
{switch(type){case'glossary':var params={glossary:id};if(system){params.system=system;}
this.loadInIframe(params);break;default:break;}},search:function(searchString)
{var params={searchString:escape(searchString)};this.loadInIframe(params,'getSearchResults');},getSearchResults:function(searchString,startOffset)
{var params={searchString:searchString,startOffset:startOffset};var url=this.generateIframeUrl(params,'getSearchResults');var self=this;dfx.get(url,null,function(content){var wrapper=document.createElement('div');dfx.setHtml(wrapper,content);var iframe=dfx.getId(self.id+'-iframe');var iframeDoc=dfx.getIframeDocument(iframe);var ol=dfx.getClass('Help-searchResults-list',iframeDoc)[0];dfx.insertAfter(ol.lastChild,wrapper.firstChild.childNodes);var currentMoreLink=dfx.getClass('Help-searchResults-moreLink',iframeDoc);if(wrapper.childNodes[1]){dfx.insertAfter(currentMoreLink,wrapper.childNodes[1]);}
dfx.remove(currentMoreLink);});},getIds:function(elements)
{var elemInfos={ids:[],classNames:[]};var ln=elements.length;for(var i=0;i<ln;i++){if(elements[i].id){elemInfos.ids.push(elements[i].id);}
if(elements[i].className){elemInfos.classNames.push(elements[i].className);}}
return elemInfos;},_removeEvents:function(elements)
{var events={elements:[],dfxEvents:[],browserEvents:[]};var eventTypes=['onmousedown','onmouseup','onclick','click'];var eventTypesCount=eventTypes.length;var ln=elements.length;for(var i=0;i<ln;i++){var element=elements[i];if(element.tagName.toLowerCase()==='body'){break;}
var es=null;if(element.tagName.toLowerCase()==='label'){var elem=dfx.getId(element.htmlFor);if(elem){es=dfxjQuery.data(dfx.getId(element.htmlFor),'events');if(es){events.elements.push(dfx.getId(element.htmlFor));events.dfxEvents.push(es);dfxjQuery.data(dfx.getId(element.htmlFor),'events',{});}}}else{var copiedEvents=null;var jqueryEvents=dfxjQuery.data(element,'events');if(jqueryEvents){copiedEvents=this._copyEvents(jqueryEvents);dfx.removeEvent(element);}
var browserEvents={};for(var j=0;j<eventTypesCount;j++){var eventType=eventTypes[j];var eventStr=element[eventType];if(eventStr){browserEvents[eventType]=eventStr;element[eventType]='';}}
events.elements.push(element);events.dfxEvents.push(copiedEvents);events.browserEvents.push(browserEvents);}}
return events;},_copyEvents:function(events)
{var copiedEvents=[];dfx.foreach(events,function(type){dfx.foreach(events[type],function(i){var event=events[type][i];copiedEvents.push(event);});});return copiedEvents;},_addElemEvents:function(events)
{var ln=events.elements.length;for(var i=0;i<ln;i++){if(events.dfxEvents[i]){if(!events.dfxEvents[i]){continue;}
var jln=events.dfxEvents[i].length;for(var j=0;j<jln;j++){dfx.addEvent(events.elements[i],events.dfxEvents[i][j].type,events.dfxEvents[i][j].handler);}}
dfx.foreach(events.browserEvents[i],function(eventType){events.elements[i][eventType]=events.browserEvents[i][eventType];});}},setTitle:function(title)
{this.title=title;if(this.titleEl){var niceTitle=title.replace(/(\w)([A-Z]{1})/g,'$1 $2');dfx.setHtml(this.titleEl,niceTitle);}},setSubTitle:function(subTitle)
{this.subTitle=subTitle;if(this.titleSubEl){var niceTitle=subTitle.replace(/(\w)([A-Z]{1})/g,'$1 $2');if(niceTitle!=='General Help'){niceTitle+=' System';}
dfx.setHtml(this.titleSubEl,niceTitle);}},frameLoaded:function()
{this.closeMessage();this.stepList={steps:[],element:null};},_getContextInfo:function()
{var wizardIsActive=WidgetStore.getData('wizardIsActive');if(wizardIsActive===true){var activeWizardid=WidgetStore.getData('activeWizardAssetType');if(!activeWizardid){activeWizardid='Wizard';}
return{context:'Wizard',value:activeWizardid,system:'Wizard'};}
var apeType=WidgetStore.getData('activeAssetSetting');if(apeType){return{context:'APE',value:apeType};}
var screen=WidgetStore.getData('activeScreen');if(screen){return{context:'Screen',value:screen.system.replace(/ScreenWidget/,'')};}
var mode=WidgetStore.getData('activeMode');this.info.currentMode=mode;if(mode){return{context:'Mode',value:mode.title};}},loadInIframe:function(params,action,type)
{this.showLodingAnim();var url=this.generateIframeUrl(params,action,type);var iframe=dfx.getId(this.id+'-iframe');if(iframe){iframe.setAttribute('src',url);}},generateIframeUrl:function(params,action,type)
{if(!params){params={};}
if(!action){action='getHelpContents';}
var contextInfo=this._getContextInfo();if(!params.context){params.context=contextInfo.context;}
if(!params.value){params.value=contextInfo.value;}
if(!params.system){if(contextInfo.system){params.system=contextInfo.system;}else{params.system=this.getCurrentSystem();}}
if(window.location.href.indexOf('__user')!==-1){if((params.value==='Preview'||params.value==='Edit')&&params.system==='Editing'){params.value='Profile';params.system='User';}}
var data=dfx.jsonEncode(params);var url=this.url;if(this.url.indexOf('?')===-1){url+='?';}else{url+='&';}
url+='widget=HelpWidget&action='+action;if(type){url+='&type='+type;}
url+='&data='+escape(data);return url;},getCurrentSystem:function(notSelected)
{if(notSelected!==true&&this.selectedSystem!==null){return this.selectedSystem;}
var system=null;var screen=WidgetStore.getData('activeScreen');if(screen){system=screen.baseSystem;}
if(!system){var mode=WidgetStore.getData('activeMode');if(mode){system=mode.system;}}
return system;},getCurrentMode:function()
{return WidgetStore.getData('activeMode');},getCurrentScreen:function()
{return WidgetStore.getData('activeScreen');},checkArticleContext:function(doc)
{var msg='In order to understand this article, please perform the following steps.';var stepList=document.createElement('div');var c=this.getClass()+'-stepsList';dfx.addClass(stepList,c);this.stepList.element=stepList;var elems=dfx.find(doc,'h1');if(elems.length>0){var elem=elems[0];if(elem.getAttribute('atype')!=='article'&&elem.getAttribute('atype')!=='glossary'){return;}
var prevElem=elem;var self=this;var lvlLen=this.levels.length;for(var i=(lvlLen-1);i>=0;i--){var hasPerm=true;var level=this.levels[i];var val=elem.getAttribute(level);if(val){switch(level){case'mode':if(!val){continue;}
var mode=this.getCurrentMode();if(mode.id!==val){var modeVal=val;var modeSwitcher=WidgetStore.get('EditingModeSwitcher');var modeInfo=modeSwitcher.getModeInfo(modeVal);var hasPerm=dfx.isObj(modeInfo);if(hasPerm){var modeNameInstr='Select '+modeInfo.title;var actionFn=function(){if(dfx.getId(modeSwitcher.getModeButtonid(modeVal))){self.pointToWidget(modeSwitcher.getModeButtonid(modeVal));}else if(dfx.getId(modeSwitcher.getModeIconid(modeVal))){self.pointToWidget(modeSwitcher.getModeIconid(modeVal));}};}else{var modeNameInstr='Unable to retrieve';var actionFn='';}
var stepInfo={title:modeNameInstr,type:'mode',modeid:val,action:actionFn};this._addStep(stepInfo,hasPerm);}
break;case'screen':if(!val){continue;}
var screenVal=val;var screenTitle=elem.getAttribute('screenTitle');if(!screenTitle){screenTitle=screenVal;}
var stepInfo={title:'Select '+dfx.ucFirst(screenTitle),screenid:screenVal,type:'screen',action:function(){var modeid=self.getCurrentMode().id;self.pointToWidget(WidgetStore.get(modeid+'WidgetType').getTabid(screenVal)+'-title');}};if(this.stepList.steps.length!==0){this._addStep(stepInfo,hasPerm);}else{var screenInfo=this.getCurrentScreen()||{id:''};var screen=screenInfo.id;if(screen!==val){this._addStep(stepInfo,hasPerm);}}
break;case'tab':if(!val){continue;}
var tabVal=val;var title=elem.getAttribute('tab_title')||tabVal;var stepInfo={title:'Click the '+title+' tab',tabid:tabVal,type:'tab',action:function(){self.pointToWidget(tabVal);}};WidgetStore.addDataChangeListener('HelpTabChgListener','activeTabid',function(){self.updateStepsList();});if(this.stepList.steps.length!==0){this._addStep(stepInfo,hasPerm);}else{var activeTab=WidgetStore.getData('activeTab');if(activeTab!==val){this._addStep(stepInfo,hasPerm);}}
break;default:break;}}
if(hasPerm===false){break;}}}
this.updateStepsList(msg);},_addStep:function(step,hasPerm)
{if(hasPerm){var c=this.getClass()+'-stepsList-item';var stepPos=(this.stepList.steps.length+1);var main=document.createElement('div');dfx.addClass(main,c);var contents='<div class="'+c+'-icon step_'+stepPos+'"></div>';contents+='<div class="'+c+'-cont-wrp">';contents+='<div class="'+c+'-cont-top">';contents+='<div class="'+c+'-cont-title">'+step.title+'</div>';contents+='<div class="'+c+'-cont-showme">Show me</div>';contents+='</div>';contents+='<div class="'+c+'-cont-err"></div>';contents+='</div>';dfx.setHtml(main,contents);var showMeElem=dfx.getClass(c+'-cont-showme',main)[0];dfx.addEvent(showMeElem,'click',function(){if(dfx.isFn(step.action)===true){step.action.call(this);}});step.element=main;this.stepList.element.appendChild(main);}else{step.title='Permission Denied';step.action='';}
step.hasPerm=hasPerm;this.stepList.steps.push(step);},updateStepsList:function(msg)
{var sl=this.stepList.steps.length;if(sl===0){return;}
var foundActiveStep=false;var statuses=['incomplete','active','complete','error'];var prevStatus=null;var shown=false;for(var i=0;i<sl;i++){var step=this.stepList.steps[i];var status=0;if(step.hasPerm){switch(step.type){case'mode':var currMode=this.getCurrentMode();if(step.modeid===currMode.id){status=2;}
break;case'screen':var screenInfo=this.getCurrentScreen()||{id:''};var screen=screenInfo.id;if(screen===step.screenid){status=2;}else{if(screenInfo.obj){if(screenInfo.obj.hasPermission(step.screenid)!==true){status=3;}}else{var modeId=WidgetStore.getData('activeMode');if(modeId){var modeWidget=WidgetStore.get(modeId.id+'WidgetType');if(modeWidget&&modeWidget.hasPermission&&modeWidget.hasPermission(step.screenid)!==true){status=3;}}}}
break;case'tab':if(WidgetStore.getData('activeTabid')===step.tabid){status=2;}
break;default:break;}}else{status=3;}
if(status!==2&&status!==3&&(prevStatus===null||prevStatus===2)){status=1;}else if(prevStatus!==null&&prevStatus!==2&&prevStatus!==3){status=0;}
prevStatus=status;var errMsg=this._setStepStatus(step,statuses[status],i);if(errMsg===true){msg=false;}
if(i===(sl-1)&&status===2){var self=this;self.stepList={steps:[],element:null};setTimeout(function(){self.hideInfoBox();self.applyLinkActions(self.iframeDoc);},1000);}else if(shown===false){shown=true;}}
this.showInfoBox(msg,this.stepList.element,true);},_setStepStatus:function(step,status,pos)
{if(pos===0&&status==='error'){this._setInfoBoxStyle('error');var elem=this.iframeDoc.getElementById('_infoBox-msg');dfx.empty(elem);var msg='We have detected that you do not have appropriate';msg+=' permissions to follow the steps requrired to place yourself';msg+=' in context for this article.';dfx.setHtml(elem,msg);return true;}else if(step.element){this._removeStepStatuses(step);dfx.addClass(step.element,this.getClass()+'-stepList-item-'+status);if(status==='error'){var errEl=dfx.getClass(this.getClass()+'-stepsList-item-cont-err',step.element)[0];dfx.setHtml(errEl,'You don\'t have permission to perform this action');}}},_removeStepStatuses:function(step)
{var statuses=['incomplete','active','complete','error'];while(statuses.length){dfx.removeClass(step.element,this.getClass()+'-stepList-item-'+statuses.pop());}
var errEl=dfx.getClass(this.getClass()+'-stepsList-item-cont-err',step.element)[0];dfx.empty(errEl);},applyLinkActions:function(doc)
{var elems=dfx.find(doc,'span[term]');var self=this;dfx.removeEvent(elems,'click');dfx.addEvent(elems,'click',function(e){var target=dfx.getMouseEventTarget(e);if(target.hasAttribute('term')===false){target=target.parentNode;}
var params={glossary:target.getAttribute('term')};if(target.getAttribute('system')){params.value=target.getAttribute('system');}
if(target.getAttribute('context')){params.context=target.getAttribute('context');}
self.loadInIframe(params);});var iconElems=dfx.getClass('HelpWidgetType-pnter-img',doc);var iconln=iconElems.length;for(var i=0;i<iconln;i++){var elem=iconElems[i];var widgetid=elem.getAttribute('widget')||'';var widgetClass=elem.getAttribute('widgetclass')||'';if(dfx.getId(widgetid)||(widgetClass!==''&&dfx.getClass(widgetClass).length>0)){var hidden=false;if(dfx.getId(widgetid)&&dfx.getStyle(dfx.getId(widgetid),'visibility')==='hidden'){hidden=true;}
if(hidden===false){dfx.setStyle(elem,'display','inline');dfx.setStyle(elem.parentNode,'margin-right','20px');}else{dfx.setStyle(elem,'display','none');dfx.setStyle(elem.parentNode,'margin-right','0px');}}else{dfx.setStyle(elem,'display','none');dfx.setStyle(elem.parentNode,'margin-right','0px');}}
dfx.addEvent(iconElems,'click',function(e){var target=dfx.getMouseEventTarget(e);var widgetid=target.getAttribute('widget')||'';var widgetClass=target.getAttribute('widgetclass')||'';var system=target.getAttribute('system')||'';self.pointToWidget(widgetid,widgetClass,system);dfx.preventDefault(e);dfx.stopPropagation(e);return false;});},pointToWidget:function(widgetid,widgetClass,system)
{var widgetElem=null;if(!widgetid||widgetid===''){if(!widgetClass||widgetClass===''){return;}
var celems=dfx.getClass(widgetClass);var cln=celems.length;for(var i=0;i<cln;i++){if(dfx.getElementWidth(celems[i])>0){widgetElem=celems[i];break;}}}else{widgetElem=dfx.getId(widgetid);}
if(!widgetElem){return;}
if(widgetid&&widgetid.indexOf('EditingModeSwitcher')===0){if(this._showModeButton(widgetid)===false){return;}}
if(dfx.getStyle(widgetElem,'visibility','hidden')===true){return;}
var rect=dfx.getBoundingRectangle(widgetElem);if(rect.x1===0&&rect.x2===0||rect.x1===rect.x2||rect.y1===rect.y2){return;}
var winDim=dfx.getWindowDimensions();var pointer=this.getPointer();dfx.setStyle(pointer,'display','block');if(dfxjQuery.support.opacity===true){dfx.setOpacity(pointer,1);}
var pointerRect=dfx.getBoundingRectangle(pointer);var pointerH=(pointerRect.y2-pointerRect.y1);var pointerW=(pointerRect.x2-pointerRect.x1);this.pointerDim.height=pointerH;this.pointerDim.width=pointerW;var bounceHeight=20;var scroll=dfx.getScrollCoords();if((rect.y1-pointerH+bounceHeight)>scroll.y){this.showPointer(widgetElem,'down',system);}else if((rect.y2+pointerH)<(winDim.height-scroll.y)){this.showPointer(widgetElem,'up',system);}else if((rect.y2+pointerW)<winDim.width){this.showPointer(widgetElem,'left',system);}else if((rect.y1-pointerW)>0){this.showPointer(widgetElem,'right',system);}},_showModeButton:function(widgetid)
{var modeSwitcher=WidgetStore.get('EditingModeSwitcher');var self=this;if(modeSwitcher.buttonIsVisible(widgetid)===false){modeSwitcher.makeButtonVisible(widgetid,function(){self.pointToWidget(widgetid);setTimeout(function(){modeSwitcher.animateModeSelection(null);},5000);});return false;}
return true;},getPointer:function()
{if(this.pointer===null){this.pointer=document.createElement('div');var c=this.getClass();dfx.addClass(this.pointer,c+'-pointer');dfx.addClass(this.pointer,c+'-pointer-hidden');document.body.appendChild(this.pointer);}
return this.pointer;},showPointer:function(elem,direction,system)
{var c=this.getClass();this._removeDirectionClasses();dfx.addClass(this.pointer,c+'-pointer-'+direction);dfx.removeClass(this.pointer,c+'-pointer-hidden');var rect=dfx.getBoundingRectangle(elem);var top=0;var left=0;var bounceHeight=20;switch(direction){case'up':bounceHeight=(-bounceHeight);top=rect.y2;if((rect.x2-rect.x1)<250){left=(this.getRectMidPnt(rect)-(this.pointerDim.width/2));}else{left=rect.x1;}
break;case'left':left=rect.x2;top=this.getRectMidPnt(rect,true);break;case'right':left=(rect.x1-this.pointerDim.width);top=this.getRectMidPnt(rect,true);break;case'down':default:top=(rect.y1-this.pointerDim.height);if((rect.x2-rect.x1)<250){left=(this.getRectMidPnt(rect)-(this.pointerDim.width/2));}else{left=rect.x1;}
break;}
dfx.setStyle(this.pointer,'top',top+'px');dfx.setStyle(this.pointer,'left',left+'px');if(system&&system==='Help'||dfx.isChildOf(elem,this.domElem)===true){}else{var coords=dfx.getBoundingRectangle(this.container);rect=dfx.getBoundingRectangle(this.pointer);var posOffset=20;var newPos=null;var midX=(rect.x1+((rect.x2-rect.x1)/2));var midY=(rect.y1+((rect.y2-rect.y1)/2));if(coords.x1<=midX&&coords.x2>=midX&&coords.y1<=midY&&coords.y2>=midY){var winDim=dfx.getWindowDimensions();if(rect.x2+posOffset+(coords.x2-coords.x1)<winDim.width){newPos=(rect.x2+posOffset);}else{newPos=(rect.x1-posOffset-(coords.x2-coords.x1));}
dfx.setStyle(this.container,'right','auto');dfx.setStyle(this.container,'left',newPos+'px');}}
dfx.stop(this.pointer);clearTimeout(this._fadeTimer);var self=this;dfx.bounce(this.pointer,4,bounceHeight,function(){self._fadeTimer=setTimeout(function(){if(dfxjQuery.support.opacity===true){dfx.fadeOut(self.pointer,600);}else{dfx.setStyle(self.pointer,'display','none');}},1000);});},hidePointer:function()
{if(this.pointer){dfx.stop(this.pointer);dfx.fadeOut(this.pointer,200);}},getRectMidPnt:function(rect,height)
{var midPnt=0;if(height===true){midPnt=(rect.y1+((rect.y2-rect.y1)/2));}else{midPnt=(rect.x1+((rect.x2-rect.x1)/2));}
return midPnt;},_removeDirectionClasses:function()
{var c=this.getClass();var d=['down','up','left','right'];var l=d.length;for(var i=0;i<l;i++){dfx.removeClass(this.pointer,c+'-pointer-'+d[i]);}},enableResize:function(resizeElements,options,start,stop)
{dfx.addEvent(options.handles,'mousedown.helpWidgetResize',function(de){start.call(this);var width=dfx.getElementWidth(resizeElements[0]);var height=dfx.getElementHeight(resizeElements[1]);var startMPos=dfx.getMouseEventPosition(de);var top=dfx.getClass('HelpWidgetType-top-mid');dfx.addEvent(document,'mousemove.helpWidgetResize',function(me){var mpos=dfx.getMouseEventPosition(me);var wdiff=(mpos.x-startMPos.x);var nwidth=(width+wdiff);if(nwidth>=options.minWidth){dfx.setStyle(resizeElements[0],'width',nwidth+'px');}
var hdiff=(mpos.y-startMPos.y);var nheight=(height+hdiff);if(nheight>=options.minHeight){dfx.setStyle(resizeElements[1],'height',nheight+'px');}});dfx.addEvent(document,'mouseup.helpWidgetResize',function(){stop.call(this);dfx.removeEvent(document,'mousemove.helpWidgetResize');dfx.removeEvent(document,'mouseup.helpWidgetResize');});});},showOverlay:function(loading)
{var overlay=dfx.getClass('HelpWidgetType-mid-msgoverlay',this.container)[0];this.displayDisabledDiv(loading,overlay,'white','absolute');},hideOverlay:function()
{var overlay=dfx.getClass('HelpWidgetType-mid-msgoverlay',this.container)[0];this.removeDisabledDiv(overlay);},showLodingAnim:function()
{this.showOverlay(true);},showAllTasks:function(id,linkElem)
{var elem=this.iframeDoc.getElementById(id);var c=this.getClass()+'-list-item-hidden';dfx.removeClass(dfx.getClass(c,elem),c);dfx.remove(linkElem.parentNode);},refresh:function()
{var iframe=dfx.getId(this.id+'-iframe');if(iframe){var doc=dfx.getIframeDocument(iframe);if(doc){this.applyLinkActions(doc);this.checkArticleContext(doc);}}},modeChanged:function(newMode,prevMode)
{this.hidePointer();if(this.stepList.steps.length>0){this.updateStepsList();}else if(!this.info||!this.info.currentMode||newMode.id!==this.info.currentMode.id){this._showScreenChanged();}else{this.hideInfoBox();}},_showScreenChanged:function()
{if(this.iframeDoc.getElementById('HelpWidgetType-articleList-Tasks')||this.iframeDoc.getElementById('HelpWidgetType-articleList-Bugs')){var elem=document.createElement('div');var content='You have switched screens. Click on the Home button';content+=' to view the Suggestions for the current screen';dfx.setHtml(elem,content);this.showInfoBox(elem);}},screenChanged:function(newScreen,prevScreen)
{if(newScreen===null){return;}
this.hidePointer();this.applyLinkActions(this.iframeDoc);if(this.stepList.steps.length>0){this.updateStepsList();}else if(!newScreen||!this.info.currentScreen||(newScreen.id!==this.info.currentScreen.id)){this._showScreenChanged();}else{this.hideInfoBox();}},showInfoBox:function(msgElem,extraElem,noOverride)
{if(!this.iframeDoc){return;}
var infoBox=this.iframeDoc.getElementById('_infoBox');if(!infoBox){return;}
if(noOverride===true&&dfx.getStyle(infoBox,'display')!=='none'){return;}
if(msgElem){var elem=this.iframeDoc.getElementById('_infoBox-msg');dfx.empty(elem);if(typeof msgElem==='string'){dfx.setHtml(elem,msgElem);}else{elem.appendChild(msgElem);}}
var exElem=dfx.getClass(this.getClass()+'-iframe-infoBox-extra',infoBox)[0];if(extraElem){dfx.empty(exElem);exElem.appendChild(extraElem);dfx.setStyle(exElem,'display','block');}else{dfx.setStyle(exElem,'display','none');}
var hideElem=this.iframeDoc.getElementById('_infoBox-hide');dfx.removeEvent(hideElem);var self=this;dfx.addEvent(hideElem,'click',function(){self.hideInfoBox();});if(dfx.getStyle(infoBox,'display')==='none'){dfx.setStyle(infoBox,'opacity','0');dfx.setStyle(infoBox,'display','block');dfx.setStyle(infoBox,'margin-top',-dfx.getElementHeight(infoBox));dfx.animate(infoBox,{marginTop:0,opacity:1},1000,function(){dfx.setStyle(infoBox,'display','block');dfx.setStyle(infoBox,'margin-top','10px');dfx.setStyle(infoBox,'opacity',1);});}},hideInfoBox:function()
{this.stepList={steps:[],element:null};if(!this.iframeDoc){return;}
var infoBox=this.iframeDoc.getElementById('_infoBox');if(!infoBox){return;}
dfx.animate(infoBox,{marginTop:(-dfx.getElementHeight(infoBox)),opacity:0},500,function(){dfx.setStyle(infoBox,'display','none');dfx.setStyle(infoBox,'margin-top','0px');dfx.setStyle(infoBox,'opacity',1);});},_setInfoBoxStyle:function(style)
{var infoBox=this.iframeDoc.getElementById('_infoBox');dfx.addClass(infoBox,'HelpWidgetType-mid-infoBox-'+style);},showMessage:function(msg)
{this.showOverlay();var msgBox=dfx.getClass('HelpWidgetType-mid-infoBox',this.container)[0];var elem=dfx.getClass('HelpWidgetType-mid-infoBox-msg',msgBox)[0];dfx.setHtml(elem,msg);dfx.setStyle();if(dfx.getStyle(msgBox,'display')==='block'){dfxjQuery(msgBox).effect("bounce",{distance:10,times:3},300);}else{dfx.setStyle(msgBox,'display','block');}
dfx.removeEvent(document,'click.HelpWidgetType_message');dfx.removeEvent(document,'keypress.HelpWidgetType_message');var self=this;dfx.addEvent(document,'keypress.HelpWidgetType_message',function(e){if(e.keyCode===27){self.closeMessage();}});var hideElem=this.iframeDoc.getElementById('_infoBox-hide');var cancelEl=dfx.getClass('HelpWidgetType-mid-infoBox-hidemsg',msgBox)[0];dfx.addEvent([hideElem,cancelEl],'click.HelpWidgetType_message',function(e){dfx.removeEvent(document,'mousedown.HelpWidgetType_finder');self.closeMessage();self.stepList={steps:[],element:null};dfx.removeEvent(cancelEl,'click.HelpWidgetType_message');});},closeMessage:function()
{dfx.removeEvent(document,'keypress.HelpWidgetType_message');var msgBox=dfx.getClass('HelpWidgetType-mid-infoBox',this.container)[0];if(dfx.getStyle(msgBox,'display')!=='none'){this.hideOverlay();dfx.setStyle(msgBox,'display','none');}}};dfx.inherits('Help','Widget');function IFrameWidgetType(id,source)
{Widget.call(this,id);this.widgetType='IFrame';this.cssClass=null;this.contentElements=[];this.source=source;}
IFrameWidgetType.prototype={create:function(callback)
{var iframeElem=document.createElement('iframe');iframeElem.setAttribute('id',this.id);iframeElem.setAttribute('src',this.source);if(this.cssClass!==null){dfx.addClass(iframeElem,this.cssClass);}
var len=this.contentElements.length;for(var i=0;i<len;i++){iframeElem.appendChild(this.contentElements[i]);}
var self=this;this.createChildren(iframeElem,function(){callback.call(self,iframeElem);return;});},setClass:function(c)
{this.cssClass=c;},addContentElement:function(elem)
{this.contentElements.push(elem);}};dfx.inherits('IFrame','Widget');function ListItemWidgetType(id,columnSizes,showRemoveButton)
{Widget.call(this,id);}
ListItemWidgetType.prototype={};dfx.inherits('ListItem','Widget');function LogAdminScreenWidgetType(id)
{Widget.call(this,id);this.widgetType='LogAdminScreen';}
LogAdminScreenWidgetType.prototype={init:function(data)
{this.settings=dfx.jsonDecode(data.settings);},getRequestParams:function()
{var params={keys:['action','mode','screen'],vals:['processScreen','AdminScreenMode','LogAdminScreenWidget']};return params;},switchOnScreen:function()
{var self=this;if(this.settings.length>0){this.setSaveButton(function(){self.save();},function(){});}},switchOffScreen:function(){}};dfx.inherits('LogAdminScreen','Widget');function MetadataAdminSettingWidgetType(id)
{Widget.call(this,id);this.widgetType='MetadataAdminSetting';this.settings={};this.settingValues={};}
MetadataAdminSettingWidgetType.prototype={create:function(callback)
{this.createMain(function(el){callback.call(this,el);return;});},createMain:function(callback,childElem,className)
{var c=this.getClassName();var main=document.createElement('div');if(dfx.isset(className)===true){dfx.addClass(main,className);}
var content='';content+='<div class="'+c+'-bot-left">';content+='<div class="'+c+'-desc-label">Description</div>';content+='<div class="'+c+'-desc"></div>';content+='</div>';content+='<div class="'+c+'-bot-right"></div>';dfx.setHtml(main,content);var descCont=dfx.getClass(c+'-desc',main)[0];if(childElem){dfx.getClass(c+'-bot-right',main)[0].appendChild(childElem);}
var self=this;this.includeWidget('TextArea',function(){var desc=self.createWidget(null,'TextArea');self.settings.description=desc;desc.create(function(descEl){if(dfx.isset(self.settingValues.description)===true){desc.setValue(self.settingValues.description);}
descCont.appendChild(descEl);desc.addOnChangeEvent(function(){self.setModified(true);});});callback.call(self,main);});},getClassName:function()
{return'MetadataAdminSettingWidgetType';},getSettings:function()
{var settings={};for(var setting in this.settings){if(this.settings.hasOwnProperty(setting)===true){settings[setting]=this.settings[setting].getValue();}}
return settings;},setSttings:function(settings)
{if(settings){this.settingValues=settings;}},check:function()
{return true;}};dfx.inherits('MetadataAdminSetting','Widget');function OptionsWidgetType(id,options)
{Widget.call(this,id);this.widgetType='Options';this.id=id;this.counter=0;this.lock=false;this.domElem=null;this.showCheck=true;this.showKey=false;this.deleted={};this.multi=false;this.onChangeCallbacks=[];this._newOptionBoxValue='Add new value ...';this.setOptions(options);this.addNew=dfx.getId(this.id+'-addNew');if(this.addNew){this.addNewEvent();}
var elem=dfx.getId(this.id);if(elem){this.domElem=elem;this.init();var self=this;dfxjQuery(this.domElem).sortable({axis:'y',handle:'span.move',stop:function(){self.fireOnChangeEvents();}});}
this.allowEmpty=false;this.allowEmptyText='-- Leave Empty --';this.empty=dfx.getId(this.id+'-emptyText');if(this.empty){this.empty.onblur=function(evt){self.fireOnChangeEvents();};}}
OptionsWidgetType.prototype={init:function()
{var self=this;dfx.foreach(this.options,function(key){self.createField(key,self.options[key].value,self.options[key].selected);});},create:function(callback)
{var c=this.getClass();var main=document.createElement('div');main.id=this.id+'-container';dfx.addClass(main,c+'-container');var content='';if(this.readOnly===false){var aec='entry-hidden';if(this.allowEmpty===true){aec='entry';}
content+='<div id="'+this.id+'-emptyTextContainer" class="'+aec+'">';content+='<input type="text" id="'+this.id+'-emptyText" name="'+this.id+'-emptyText" class="emptyText OptionsWidgetType-emptyText" value="'+this.allowEmptyText+'"/>';content+='</div>';}
content+='<div id="'+this.id+'" class="'+c+'"></div>';if(this.readOnly===false){content+='<div class="entry">';content+='<input type="text" id="'+this.id+'-addNew" name="'+this.id+'-addNew" class="addNew OptionsWidgetType-addNew" readonly="1"/>';content+='</div>';}
dfx.setHtml(main,content);this.domElem=dfx.getClass(c,main)[0];this.addNew=dfx.getClass('addNew',main)[0];this.addNewEvent();this.empty=dfx.getClass('emptyText',main)[0];if(this.empty){this.empty.onblur=function(evt){self.fireOnChangeEvents();};}
var self=this;dfxjQuery(this.domElem).sortable({axis:'y',handle:'span.move',stop:function(){self.fireOnChangeEvents();}});this.init();callback.call(this,main);},addNewEvent:function()
{if(this.addNew){var self=this;this.addNew.value=this._newOptionBoxValue;dfx.addEvent(this.addNew,'focus',function(){if(self.lock===false){self.lock=true;var newEntry=self.createField(null,'',false);newEntry.focus();dfx.addEvent(newEntry,'blur',function(){if(newEntry.value!==''){self.fireOnChangeEvents();dfx.removeEvent(newEntry,'blur');self.lock=false;}});}});}},getUniqueNewKey:function()
{var newKey=0;var currentKeys=dfx.arrayKeys(this.options);while(dfx.inArray(newKey,currentKeys,false)===true){newKey++;}
return newKey;},createField:function(key,val,checked)
{var self=this;var div=document.createElement('div');var id=this.id+'_'+this.counter;div.id=id;dfx.addClass(div,'entry');this.domElem.appendChild(div);dfxjQuery(div).sortable('refresh');var moveButton=document.createElement('span');moveButton.id=id+'-move';dfx.addClass(moveButton,'move');dfx.addClass(moveButton,'OptionsWidgetType-move');div.appendChild(moveButton);if(this.readOnly===true){dfx.hideElement(moveButton);}
var keyField=document.createElement('input');if(key===null){key=this.getUniqueNewKey();}
keyField.type='text';keyField.value=key;keyField.id=this.id+'_key['+this.counter+']';keyField.name=this.id+'_key[]';dfx.addClass(keyField,'key');dfx.addClass(keyField,'OptionsWidgetType-key');div.appendChild(keyField);keyField.onblur=function(evt){self.fireOnChangeEvents();};if(this.showKey===false||(this.showKey!==false&&this.readOnly===true)){dfx.hideElement(keyField);}
var valField=document.createElement('input');valField.type='text';valField.value=val;valField.id=this.id+'_val['+this.counter+']';valField.name=this.id+'_val[]';dfx.addClass(valField,'value');dfx.addClass(valField,'OptionsWidgetType-value');div.appendChild(valField);if(this.readOnly===true){valField.disabled='disabled';}
valField.onblur=function(evt){self.fireOnChangeEvents();};if(this.showCheck===true){var checkField=document.createElement('input');checkField.type='checkbox';checkField.check=checked;checkField.id=this.id+'_selected['+this.counter+']';checkField.name=this.id+'_selected[]';dfx.addClass(checkField,'check');dfx.addClass(checkField,'OptionsWidgetType-check');var container=document.createElement('div');container.id=this.id+'_check_'+this.counter;container.appendChild(checkField);div.appendChild(container);if(checked===true){dfx.addClass(container,'check-selected');}else{dfx.addClass(container,'check');}
if(this.readOnly===true){dfx.addClass(container,'check-disabled');checkField.disabled='disabled';}
dfx.addEvent(checkField,'click',function(){if(checkField.check===false){self.uncheckAll(false);checkField.check=true;dfx.swapClass(container,'check','check-selected');}else{checkField.check=false;dfx.swapClass(container,'check-selected','check');}
self.fireOnChangeEvents();});}
var deleteButton=document.createElement('span');deleteButton.id=id+'_delete';dfx.addClass(deleteButton,'delete');dfx.addClass(deleteButton,'OptionsWidgetType-delete');div.appendChild(deleteButton);if(this.readOnly===true){dfx.hideElement(deleteButton);}
dfx.addEvent(deleteButton,'click',function(){self.markForDeletion(div);self.updateTabIndexes();self.fireOnChangeEvents();});this.counter++;if(this.options!==undefined){if(this.options.hasOwnProperty(key)===true){if(this.options[key].hasOwnProperty('marked')===true&&this.options[key].marked===true){this.markForDeletion(div,true);}}else{this.options[keyField.value]={'selected':false,'value':valField.value};}}
this.updateTabIndexes();return valField;},markForDeletion:function(div,force)
{var id=div.id;var count=id.replace(this.id+'_','');var move=dfx.getId(id+'-move');var val=dfx.getId(this.id+'_val['+count+']');var key=dfx.getId(this.id+'_key['+count+']');var check=dfx.getId(this.id+'_selected['+count+']');if(this.deleted.hasOwnProperty(count)===false||force===true){this.deleted[count]=true;dfx.addClass(div,'recover');dfx.swapClass(move,'move','move-recover');key.disabled='disabled';val.disabled='disabled';check.disabled='disabled';}else{delete this.deleted[count];dfx.removeClass(div,'recover');dfx.swapClass(move,'move-recover','move');key.disabled='';val.disabled='';check.disabled='';}},updateTabIndexes:function()
{var inputs=dfx.getTag('input',this.domElem);var iln=inputs.length;var count=1;for(var i=0;i<iln;i++){var input=inputs[i];if(dfx.getStyle(input,'display')!=='none'){input.tabIndex=count;count++;}}
if(this.addNew){this.addNew.tabIndex=count;}},formatValue:function(val)
{var res='';if(dfx.isset(val.options)){var valOptions=val.options;dfx.foreach(valOptions,function(key){res+=key+':';var option=valOptions[key];dfx.foreach(option,function(optionKey){res+=optionKey+'-'+option[optionKey]+',';});});}
return res;},setOptions:function(options)
{this.options=options;},setAddNewOptionBoxValue:function(value)
{this._newOptionBoxValue=value;},setDefaultOptions:function()
{this.options={0:{selected:false,value:'First Choice'},1:{selected:false,value:'Second Choice'}};},refresh:function()
{dfx.setHtml(this.domElem,'');this.counter=0;this.init();},prune:function()
{for(var index in this.deleted){var div=dfx.getId(this.id+'_'+index);this.domElem.removeChild(div);delete this.options[index];}
this.deleted={};},getValue:function()
{var op={};var len=this.domElem.childNodes.length;for(var i=0;i<len;i++){var elem=this.domElem.childNodes[i];var inputs=elem.getElementsByTagName('INPUT');if(dfx.isset(inputs[0])===true&&dfx.isset(inputs[1])===true){var key=inputs[0].value;var val=inputs[1].value;if(key!==''&&val!==''){op[key]={};op[key]['value']=val;if(inputs[1].disabled===true){op[key]['marked']=true;}
if(this.showCheck===true){if(dfx.isset(inputs[2])===true){op[key]['selected']=inputs[2].check;}}}}}
var ret={};ret.options=op;ret.allowEmpty=this.allowEmpty;var allowEmptyTextField=dfx.getId(this.id+'-emptyText');if(allowEmptyTextField){ret.allowEmptyText=allowEmptyTextField.value;}else{ret.allowEmptyText='';}
return ret;},getDefaultValue:function(asString)
{var values=this.getValue();var selected=[];for(var x in values.options){if(values.options[x].selected===true){selected.push(x);}}
if(asString&&asString===true){return selected.join(',');}else{return selected;}},addOnChangeEvent:function(fn)
{this.onChangeCallbacks.push(fn);},fireOnChangeEvents:function(val)
{var len=(this.onChangeCallbacks.length-1);for(var i=len;i>=0;i--){this.onChangeCallbacks[i].call(this);}},setMulti:function(multi)
{this.multi=multi;this.uncheckAll(true);},setAllowEmpty:function(allow,text)
{var container=dfx.getId(this.id+'-emptyTextContainer');if(container){if(allow===true){dfx.swapClass(container,'entry-hidden','entry');}else{dfx.swapClass(container,'entry','entry-hidden');}}
this.allowEmpty=allow;if(text){this.allowEmptyText=text;if(this.empty){this.empty.value=text;}}},uncheckAll:function(keepOne)
{if(this.multi===false){var containerKept=true;var checkboxKept=true;if(keepOne===true){containerKept=false;checkboxKept=false;}
var containers=dfx.getClass('check-selected',this.domElem);var ids={};var conLen=containers.length;for(var j=0;j<conLen;j++){ids[containers[j].id]=true;}
for(var id in ids){if(containerKept===false){containerKept=true;continue;}
var container=dfx.getId(id);dfx.swapClass(container,'check-selected','check');}
var checkboxes=dfx.getClass('check',this.domElem);var checkLen=checkboxes.length;for(var i=0;i<checkLen;i++){if(checkboxes[i].type==='checkbox'){if(checkboxes[i].check===true){if(checkboxKept===false){checkboxKept=true;continue;}
checkboxes[i].check=false;}}}}},enableKey:function()
{this.showKey=true;},disableKey:function()
{this.showKey=false;},enableCheck:function()
{this.showCheck=true;},disableCheck:function()
{this.showCheck=false;}};dfx.inherits('Options','Widget');function PasswordStrengthWidgetType(id,passwdFieldId,width)
{Widget.call(this,id);this.widgetType='PasswordStrength';this.passwdDesc=dfx.getId(id+'-passwdDescription');this.passwdStrength=dfx.getId(id+'-passwdStrength');this.currentRating=-1;this.width=null;if(dfx.isset(width)===true){this.width=width;}else{this.width=140;}
this.stepWidth=Math.round(this.width/5);}
PasswordStrengthWidgetType.prototype={init:function()
{var self=this;dfx.addEvent(this.passwdField.domEl,'keyup',function(e){var passwd=self.passwdField.getValue();if(passwd===''){self.passwdDesc.innerHTML='Very weak';self.passwdDesc.className=self.widgetType+'WidgetType-Description';self.passwdStrengthInner.className=self.widgetType+'WidgetType-passwordStrengthInner';self.currentRating=-1;}else{var result=self.getPasswdRating(passwd);if(result!==self.currentRating){var classN=self.getRatingClassName(self.currentRating);dfx.removeClass(self.passwdDesc,classN);dfx.removeClass(self.passwdStrengthInner,classN);self.updateRatingBar(result);self.currentRating=result;}}});this.initRatingBar();},create:function(callback)
{var div=document.createElement('div');div.id=this.id+'-passwdStrengthContainer';dfx.addClass(div,'PasswordStrengthWidgetType-Container');var divDesc=document.createElement('div');divDesc.id=this.id+'-passwdDescription';dfx.addClass(divDesc,this.widgetType+'WidgetType-Description');var divStrength=document.createElement('div');divStrength.id=this.id+'-passwdStrength';dfx.addClass(divStrength,this.widgetType+'WidgetType-passwordStrength');var divStrengthInner=document.createElement('div');divStrength.id=this.id+'-passwdStrengthInner';dfx.addClass(divStrengthInner,this.widgetType+'WidgetType-passwordStrengthInner');dfx.setHtml(divStrengthInner,'&nbsp;');this.passwdDesc=divDesc;this.passwdStrength=divStrength;this.passwdStrengthInner=divStrengthInner;this.domEl=div;div.appendChild(divDesc);divStrength.appendChild(divStrengthInner);div.appendChild(divStrength);if(this.readOnly===true){dfx.hideElement(div);}else{dfx.showElement(div);}
callback.call(this,div);},setPasswordField:function(id)
{this.passwdFieldId=id;this.passwdField=WidgetStore.get(this.passwdFieldId);},getPasswdRating:function(val)
{var score=0;if(val.length>=6){score++;}
if(val.match(/[a-z]+/)!==null&&val.match(/[A-Z]+/)!==null&&val.match(/[0-9]+/)!==null){score++;}
if(val.match(/[ ]+/)!==null){score++;}
if(val.match(/[!@#$%\^&*\?_~\-\(\)]+/)!==null){score++;}
if(val.length>=12){score++;}
return score;},clearValue:function()
{this.initRatingBar();},initRatingBar:function()
{dfx.setHtml(this.passwdDesc,'Very weak');var classNames=['veryWeak','weak','better','medium','strong','veryStrong'];var len=classNames.length;for(var i=0;i<len;i++){dfx.removeClass(this.passwdStrengthInner,classNames[i]);dfx.removeClass(this.passwdDesc,classNames[i]);}},updateRatingBar:function(rating)
{var classN=this.getRatingClassName(rating);dfx.setHtml(this.passwdDesc,this.getRatingDisplayName(rating));dfx.addClass(this.passwdDesc,classN);dfx.addClass(this.passwdStrengthInner,classN);},getRatingClassName:function(rating)
{var classN='';switch(rating){case 0:classN='veryWeak';break;case 1:classN='weak';break;case 2:classN='better';break;case 3:classN='medium';break;case 4:classN='strong';break;case 5:classN='veryStrong';break;default:break;}
return classN;},getRatingDisplayName:function(rating)
{var str='';switch(rating){case 0:str='Very weak';break;case 1:str='Weak';break;case 2:str='Better';break;case 3:str='Medium';break;case 4:str='Strong';break;case 5:str='Very strong';break;default:break;}
return str;}};dfx.inherits('PasswordStrength','Widget');function PasswordWidgetType(id,className)
{Widget.call(this,id);this.widgetType='Password';this.reEnterText='Re enter password here ...';this.isMatched=false;this.passwordTypedEvents=[];if(dfx.getId(id+'-passwordWrapper')&&dfx.isset(dfx.getId(id))===false){var self=this;this.create(function(el){dfx.getId(id+'-passwordWrapper').appendChild(el);self.addEvents();});}}
PasswordWidgetType.prototype={setReadOnly:function(readOnly)
{AbstractWidgetWidgetType.prototype.setReadOnly.call(this,readOnly);var p=dfx.getClass('PasswordWidgetType-passwordContainer',dfx.getId(this.id))[0];var c=dfx.getClass('PasswordWidgetType-confirmPasswordContainer',dfx.getId(this.id))[0];var mt=dfx.getId('ProfileScreenWidgetType-password-passwordMatchedText');if(readOnly===true){dfx.hideElement(p);dfx.hideElement(c);dfx.hideElement(mt);}else{dfx.showElement(p);dfx.showElement(c);dfx.showElement(mt);}},addEvents:function()
{this.password=dfx.getId(this.id+'-password');this.confirmPassword=dfx.getId(this.id+'-confirmPassword');this.passwdMatched=dfx.getId(this.id+'-passwordMatchedText');if(dfx.isset(this.confirmPassword)===true){var self=this;dfx.addEvent(this.confirmPassword,'focus',function(e){dfx.hideElement(dfx.getId(self.id+'-msgField'));});dfx.addEvent(this.confirmPassword,'blur',function(e){var cPasswd=self.confirmPassword.value;if(cPasswd===''){dfx.hideElement(self.confirmPassword);dfx.showElement(dfx.getId(self.id+'-msgField'));}});dfx.addEvent(this.confirmPassword,'keyup',function(e){var passwd=self.password.value;var cPasswd=self.confirmPassword.value;if(passwd!==''&&passwd===cPasswd){dfx.setHtml(self.passwdMatched,'Matched');dfx.addClass(self.passwdMatched,'matched');self.isMatched=true;}else{dfx.setHtml(self.passwdMatched,'No Match');dfx.removeClass(self.passwdMatched,'matched');self.isMatched=false;}
self.firePasswordTypedEvents();});dfx.addEvent(this.password,'keyup',function(e){var passwd=self.password.value;var cPasswd=self.confirmPassword.value;if(passwd!==''&&passwd===cPasswd){dfx.setHtml(self.passwdMatched,'Matched');}else{dfx.setHtml(self.passwdMatched,'No Match');}
self.firePasswordTypedEvents();});}},firePasswordTypedEvents:function()
{var len=this.passwordTypedEvents.length;for(var i=0;i<len;i++){this.passwordTypedEvents[i].call(this);}},addPasswordTypedEvents:function(fn,removeOthers)
{var removeO=removeOthers||false;if(removeO===true){this.passwordTypedEvents=[];}
this.passwordTypedEvents.push(fn);},create:function(callback)
{var self=this;this.includeWidgets(['PasswordField','PasswordStrength','TextField'],function(){var div=document.createElement('div');var password=self.createWidget(self.id+'-password','PasswordField');var confirmPassword=self.createWidget(self.id+'-confirmPassword','PasswordField');var passwordStrength=self.createWidget(self.id+'-passwordStrength','PasswordStrength');var matched=document.createElement('div');var confirmMsgField=self.createWidget(self.id+'-msgField','TextField');confirmMsgField.setValue(self.reEnterText);div.id=self.id;matched.id=self.id+'-passwordMatchedText';dfx.setHtml(matched,'No Match');dfx.addClass(matched,'PasswordConfirmMatched');password.setShowLabel(self.showPasswordLabel);if(self.showPasswordLabel===true){password.setLabel(self.passwordLabel);}
password.setWidth(self.passwordWidth);confirmPassword.setShowLabel(self.showConfirmPasswordLabel);if(self.showConfirmPasswordLabel===true){confirmPassword.setLabel(self.passwordConfirmLabel);}
confirmPassword.setWidth(self.passwordConfirmWidth);password.create(function(p){confirmPassword.create(function(c){passwordStrength.create(function(s){confirmMsgField.create(function(confirmMsgFieldEl){passwordStrength.setPasswordField(self.id+'-password');passwordStrength.init();self.passContainer=p;self.passConfirmContainer=c;dfx.addClass(p,self.widgetType+'WidgetType-passwordContainer');dfx.addClass(c,self.widgetType+'WidgetType-confirmPasswordContainer');var pi=dfx.getClass('TextFieldWidgetType',p)[0];var ci=dfx.getClass('TextFieldWidgetType',c)[0];dfx.setStyle(pi,'width','203px');dfx.setStyle(ci,'width','203px');dfx.setStyle(confirmMsgField.input,'width','203px');dfx.setStyle(confirmMsgField.input,'color','#858585');dfx.setStyle(ci,'color','#646464');var confirmInputBox=confirmPassword.input;c.appendChild(confirmMsgFieldEl);dfx.addEvent(confirmMsgField.input,'focus',function(){dfx.hideElement(confirmMsgField.input);dfx.showElement(confirmInputBox);confirmInputBox.focus();});dfx.setStyle(confirmInputBox,'display','none');div.appendChild(s);div.appendChild(p);div.appendChild(c);div.appendChild(matched);dfx.addClass(div,self.widgetType+'WidgetType');if(self.readOnly===true){dfx.hideElement(p);dfx.hideElement(c);dfx.hideElement(matched);}
callback.call(this,div);return div;});});});});});},addConfirmEvent:function()
{var self=this;dfx.addEvent(this.confirmPasswd,'keyup',function(e){var passwd=self.passwdField.getValue();var result=self.getPasswdRating(passwd);if(result!==this.currentRating){self.updateRatingBar(result);this.currentRating=result;}});this.initRatingBar();},isValueMatched:function()
{return this.isMatched;},getValue:function()
{if(this.password){return this.password.value;}
return'';},getConfirmValue:function()
{if(this.confirmPassword){return this.confirmPassword.value;}
return'';},setValue:function(val)
{var self=this;var _setPasswordValue=function(){if(val===''){self.password.value='';self.confirmPassword.value='';dfx.showElement(dfx.getId(self.id+'-reenterText'));dfx.setStyle(self.confirmPassword,'color','#646464');}else{self.password.value=val;dfx.setStyle(self.confirmPassword,'color','#000');self.confirmPassword.value=val;self.isMatched=true;dfx.hideElement(dfx.getId(self.id+'-reenterText'));}};var ti=null;var _setValue=function(){if(!self.password){var ti=setTimeout(function(){_setValue();},100);}else{if(ti!==null){clearTimeout(ti);_setPasswordValue();}}}
_setValue();},clearValue:function()
{var widget=WidgetStore.get(this.id+'-passwordStrength');this.setValue('');widget.clearValue();this.isMatched=false;},setShowPasswordLabel:function(show)
{if(typeof show==='string'||show==='true'){this.showPasswordLabel=true;}else if(typeof show==='boolean'||show===true){this.showPasswordLabel=show;}},setPasswordLabel:function(label)
{this.passwordLabel=label;},setPasswordWidth:function(width)
{this.passwordWidth=width;},setShowConfirmPasswordLabel:function(show)
{if(typeof show==='string'||show==='true'){this.showConfirmPasswordLabel=true;}else if(typeof show==='boolean'||show===true){this.showConfirmPasswordLabel=show;}},setPasswordConfirmLabel:function(label)
{this.passwordConfirmLabel=label;},setPasswordConfirmWidth:function(width)
{this.passwordConfirmWidth=width;},disable:function()
{this.password.disabled=true;dfx.setStyle(this.password,'background-color','#999999');this.confirmPassword.disabled=true;dfx.setStyle(this.confirmPassword,'background-color','#999999');this.enabled=false;},enable:function()
{var self=this;var _enable=function(){self.password.disabled=false;dfx.setStyle(self.password,'background-color','#FFFFFF');self.confirmPassword.disabled=false;dfx.setStyle(self.confirmPassword,'background-color','#FFFFFF');self.enabled=true;};var _check=function(){if(!self.password||!self.confirmPassword){_wait();}else{_enable();}};var _wait=function(){setTimeout(function(){_check();},100);};_check();}};dfx.inherits('Password','Widget');function ProgressBarWidgetType(id)
{Widget.call(this,id);this.classPrefix='ProgressBarWidgetType';this.bar=dfx.getId(this.id+'_bar_background');this.label=dfx.getId(this.id+'_label');this.percent=0;this.px=0;this.totalWidth=0;this.startCallbacks=[];this.progressCallbacks=[];this.completeCallbacks=[];this.deleteCallbacks=[];this.enabled=true;this.noDelete=false;}
ProgressBarWidgetType.prototype={setNoDeleteBtn:function(noDelete)
{if(dfx.isset(noDelete)===false){this.noDelete=false;}else{this.noDelete=noDelete;}},create:function(callback)
{var self=this;var wrapper=document.createElement('div');wrapper.id=this.id+'_progress';wrapper.className=this.classPrefix;var barBackground=document.createElement('div');barBackground.id=this.id+'_bar_background';barBackground.className=this.classPrefix+'-bar-background';var ready=document.createElement('div');ready.id=this.id+'_ready';ready.className=this.classPrefix+'-ready';var label=document.createElement('div');label.id=this.id+'_label';label.className=this.classPrefix+'-label';if(this.noDelete===false){var deleteDiv=document.createElement('div');deleteDiv.id=this.id+'_delete';deleteDiv.className=this.classPrefix+'-delete';}
barBackground.appendChild(ready);wrapper.appendChild(barBackground);wrapper.appendChild(label);if(this.noDelete===false){wrapper.appendChild(deleteDiv);dfx.addEvent(deleteDiv,'click',function(e){var cLen=self.deleteCallbacks.length;if(self.isEnabled()===true){self.disable();}else{self.enable();}
for(var i=0;i<cLen;i++){self.deleteCallbacks[i].call(self,self.id);}});}
this.wrapper=wrapper;this.bar=barBackground;this.label=label;if(dfx.isFn(callback)===true){callback.call(this,wrapper);}},hide:function()
{dfx.hideElement(dfx.getId(this.id+'_progress'));},show:function()
{dfx.showElement(dfx.getId(this.id+'_progress'));},disable:function()
{var rect=dfx.getBoundingRectangle(this.wrapper);var width=(rect.x2-rect.x1);this.enabled=false;dfx.addClass(dfx.getId(this.id+'_delete'),'recover');dfx.setStyle(this.bar,'width',width+'px');dfx.addClass(this.bar,'disabled');},enable:function()
{this.enabled=true;dfx.removeClass(dfx.getId(this.id+'_delete'),'recover');dfx.setStyle(this.bar,'width','0px');dfx.removeClass(this.bar,'disabled');},isEnabled:function()
{return this.enabled;},addOnStartCallback:function(callback)
{if(dfx.isFn(callback)===true){this.startCallbacks.push(callback);}},addOnProgressCallback:function(callback)
{if(dfx.isFn(callback)===true){this.progressCallbacks.push(callback);}},addOnCompleteCallback:function(callback)
{if(dfx.isFn(callback)===true){this.completeCallbacks.push(callback);}},addOnDeleteCallback:function(callback)
{if(dfx.isFn(callback)===true){this.deleteCallbacks.push(callback);}},getLabel:function()
{return this.label.innerHTML;},updateLabel:function(label)
{dfx.setHtml(this.label,label);},updateProgress:function(percent,callback)
{var self=this;if(this.percent===0){var scLen=this.startCallbacks.length;for(var i=0;i<scLen;i++){this.startCallbacks[i].call(this);}}
this.percent=Math.floor(percent);if(this.totalWidth===0){var rect=dfx.getBoundingRectangle(this.wrapper);this.totalWidth=(rect.x2-rect.x1);}
targetWidth=Math.ceil((this.totalWidth/100)*percent);dfx.animate(this.bar,{width:targetWidth+'px'},1000,function(){if(dfx.isFn(callback)===true){callback.call(this);}
if(self.percent===100){var scLen=self.completeCallbacks.length;for(var j=0;j<scLen;j++){self.completeCallbacks[j].call(this);}}else{var pcLen=self.progressCallbacks.length;for(var j=0;j<pcLen;j++){self.progressCallbacks[j].call(this);}}},false);},reset:function()
{this.percent=0;this.px=0;this.totalWidth=0;dfx.setStyle(this.bar,'width','0px');},isFinished:function()
{if(this.percent===100){return true;}
return false;}};dfx.inherits('ProgressBar','Widget');function PublicAssetFilterWidgetType(id)
{Widget.call(this,id);this.id=id;}
PublicAssetFilterWidgetType.prototype={getValue:function()
{var id=this.id+'-toggle';var widget=WidgetStore.get(id);var result={};result.enabled=widget.getValue();return result;},setValue:function(value)
{var id=this.id+'-toggle';var widget=WidgetStore.get(id);widget.setValue(value);}};dfx.inherits('PublicAssetFilter','Widget');function PublishedAssetFilterWidgetType(id)
{Widget.call(this,id);this.id=id;}
PublishedAssetFilterWidgetType.prototype={getValue:function()
{var id=this.id+'-toggle';var widget=WidgetStore.get(id);var result={};result.enabled=widget.getValue();return result;},setValue:function(value)
{var id=this.id+'-toggle';var widget=WidgetStore.get(id);widget.setValue(value);}};dfx.inherits('PublishedAssetFilter','Widget');function RootNodeListWidgetType(id,whiteList,hideSite,buttonName)
{Widget.call(this,id);this.widgetType='RootNodeList';this.parents=[];this.cache={};this.whiteList=whiteList||[];this.hideSite=hideSite||false;this.buttonName=buttonName;this.addButton=null;var self=this;if(dfx.getId(id+'-rootNodeListWrapper')&&dfx.isset(dfx.getId(id))===false){self.create(function(el){self.addEvents();});}}
RootNodeListWidgetType.prototype={create:function(callback)
{var self=this;var left=document.createElement('div');left.id=self.id+'-locationList';dfx.addClass(left,self.widgetType+'-locationList');var right=document.createElement('div');right.id=self.id+'-addNewWrap';dfx.addClass(right,self.widgetType+'-addNewWrap');var button=self.createWidget(self.id+'-addNewLocation','Button');self.addButton=button;button.setName(self.buttonName);button.create(function(el){right.appendChild(el);if(self.parents.length===0){var row=document.createElement('div');dfx.setHtml(row,'No locations are currently set');dfx.addClass(row,self.widgetType+'-noLoc');dfx.addClass(row,self.widgetType+'-list-last');left.appendChild(row);}else{dfx.foreach(self.parents,function(idx){var pid=self.parents[idx];return self.createParentRow(pid,function(div){left.appendChild(div);return true;});});}
var wrap=dfx.getId(self.id+'-rootNodeListWrapper');wrap.appendChild(left);wrap.appendChild(right);dfx.addClass(el,'RootNodeList-AddNewButton');var modal=dfx.getId('WizardModalDialog-mid-center');var wizardZindex=null;button.addClickEvent(function(){self._toggleAllAddNewButtons(false);self.displayDisabledDiv(true,modal,'white','absolute');wizardZindex=parseInt(dfx.getStyle(dfx.getId('WizardModalDialog'),'z-index'),10);var disabledZindex=parseInt(dfx.getStyle(dfx.getId('_disabledDiv'),'z-index'),10);dfx.setStyle(dfx.getId('WizardModalDialog'),'z-index',(disabledZindex-1));self.assetPicker=WidgetStore.get('EditingAssetPicker');self.assetPicker.setScreen(self.id+'-assetPicker');self.assetPicker.setUniqueSelect(false);self.assetPicker.addAssetsSelectedAction(function(assets){var len=assets.length;for(var i=0;i<len;i++){self._processSelectedAsset(assets[i],left);}
dfx.setStyle(dfx.getId('WizardModalDialog'),'z-index',wizardZindex);},true,self.id+'-assetPicker');var pickerid=self.id+'-assetPicker';var folders=['Documents','Images','Movies','Designs','Roles','Users','Workflows'];var fLen=folders.length;self.assetPicker.resetProjectFolderList(pickerid);for(var i=0;i<fLen;i++){if(dfx.inArray(folders[i],self.whiteList)===true){self.assetPicker.addProjectFolderWhiteList(pickerid,folders[i]);}else{self.assetPicker.addProjectFolderBlackList(pickerid,folders[i]);}}
self.assetPicker.setForceShowRoots(pickerid,true);self.assetPicker.setHideSite(pickerid,self.hideSite);self.assetPicker.init(self.id+'-assetPicker',function(){self.assetPicker.dialog.open();});self.assetPicker.addCloseAction(function(){self._toggleAllAddNewButtons(true);dfx.setStyle(dfx.getId('WizardModalDialog'),'z-index',wizardZindex);self.removeDisabledDiv(modal);});callback.call(this);return;});return;});},_toggleAllAddNewButtons:function(enable)
{var c='RootNodeList-AddNewButton';var buttons=dfx.getClass(c);var len=buttons.length;for(var i=0;i<len;i++){this._toggleAddNewButton(buttons[i].id,enable);}},_toggleAddNewButton:function(buttonid,enable)
{var button=WidgetStore.get(buttonid);if(button){if(enable===true){button.enable();}else{button.disable();}}},_processSelectedAsset:function(assetid,left)
{if(dfx.inArray(assetid,this.parents)===false){if(this.parents.length===0){var noLoc=dfx.getClass(this.widgetType+'-noLoc',dfx.getId(this.id+'-rootNodeListWrapper'))[0];dfx.hideElement(noLoc);}
var self=this;this.createParentRow(assetid,function(div){var list=dfx.getId(self.id+'-locationList');var rows=dfx.getClass(self.widgetType+'-row',list);dfx.removeClass(rows,self.widgetType+'-list-last');dfx.addClass(div,self.widgetType+'-list-last');left.appendChild(div);self.parents.push(assetid);});}},createParentRow:function(pid,callback)
{var self=this;var _create=function(asset,cb){var div=document.createElement('div');div.id=self.id+'-row-'+pid;dfx.addClass(div,self.widgetType+'-row');var content='<div class="'+self.widgetType+'-icon"><img src="'+asset.iconUrl+'" /></div>';content+='<div class="'+self.widgetType+'-name">'+asset.name+'</div>';content+='<div class="'+self.widgetType+'-delete" title="Remove from list">&nbsp;</div>';dfx.setHtml(div,content);var delBtn=dfx.getClass(self.widgetType+'-delete',div)[0];if(self.disabled===true){dfx.hideElement(delBtn);}
dfx.addEvent(delBtn,'click',function(e){if(dfx.hasClass(delBtn,'recover')===true){dfx.removeClass(delBtn,'recover');dfx.removeClass(div,'deleted');}else{dfx.addClass(delBtn,'recover');dfx.addClass(div,'deleted');}});self.cache[pid]={name:asset.name,iconUrl:asset.iconUrl};return callback.call(self,div);};if(dfx.isset(this.cache[pid])===true){_create(this.cache[pid],callback);}else{AssetManager.getAsset(pid,function(asset){_create(asset,callback);},true,{attributes:['name'],type:false,typeIcon:true,linking:[],urls:false});}},getValue:function()
{if(this.parents.length===0){return[];}else{var result=[];var self=this;dfx.foreach(this.parents,function(idx){result.push({id:self.parents[idx],deleted:dfx.hasClass(dfx.getId(self.id+'-row-'+self.parents[idx]),'deleted')});return true;});}
return result;},setValue:function(values)
{var self=this;this.parents=[];dfx.foreach(values,function(idx){self.parents.push(values[idx].id);return true;});var listWrap=dfx.getId(this.id+'-locationList');var _setValue=function(){dfx.setHtml(listWrap,'');if(self.parents.length===0){var row=document.createElement('div');dfx.setHtml(row,'No locations are currently set');dfx.addClass(row,self.widgetType+'-noLoc');dfx.addClass(row,self.widgetType+'-list-last');listWrap.appendChild(row);}else{var last=null;dfx.foreach(self.parents,function(idx){var assetid=self.parents[idx];self.createParentRow(assetid,function(div){if(values[idx].deleted===true){dfx.addClass(div,'deleted');dfx.addClass(dfx.getClass(self.widgetType+'-delete',div)[0],'recover');}
listWrap.appendChild(div);});return true;});dfx.addClass(dfx.getId(self.id+'-row-'+self.parents[(self.parents.length-1)]),self.widgetType+'-list-last');}};var cid=null;var _waitForDOM=function(){if(!listWrap){cid=setTimeout(function(){listWrap=dfx.getId(self.id+'-locationList');_waitForDOM();},2000);}else{clearTimeout(cid);return _setValue();}};return _waitForDOM();},disable:function()
{var delBtns=dfx.getClass('RootNodeList-delete',dfx.getId(this.id+'-rootNodeListWrapper'));dfx.foreach(delBtns,function(idx){dfx.hideElement(delBtns[idx]);});this.addButton.disable();this.disabled=true;},enable:function()
{var delBtns=dfx.getClass('RootNodeList-delete',dfx.getId(this.id+'-rootNodeListWrapper'));dfx.foreach(delBtns,function(idx){dfx.showElement(delBtns[idx]);});this.addButton.enable();this.disabled=false;},reset:function()
{this.parents=[];this.cache={};var row=document.createElement('div');var listWrap=dfx.getId(this.id+'-locationList');dfx.setHtml(listWrap,'');dfx.setHtml(row,'No locations are currently set');dfx.addClass(row,this.widgetType+'-noLoc');dfx.addClass(row,this.widgetType+'-list-last');listWrap.appendChild(row);}};dfx.inherits('RootNodeList','Widget');function RuleTypeWidgetType(id)
{Widget.call(this,id);this.widgetType='RuleTypeWidgetType';this.simpleResult=false;this.widget=null;this.widgetid='';this.value=null;this.server=true;this.client=true;this.errors=[];this.errorMsg='Rule JS class '+id+' does not have validateRule method overriden. Please make sure you implement it.';}
RuleTypeWidgetType.prototype={create:function(callback)
{if(dfx.isFn(callabck)===true){callback.call(this);return;}},reset:function()
{this.simpleResult=false;this.widget=null;this.value=null;this.server=true;this.client=true;this.errors=[];},simpleResultMode:function()
{this.simpleResult=true;},validate:function(arg)
{this.setValue(arg);var result=this.getRuleValidationInfo();if(this.validateRule()===false){result.result=false;result.errors=result.errors.concat(this.errors);}
if(this.simpleResult===true){return result.result;}
return result;},validateRule:function()
{this.errors.push(this.errorMsg);return false;},setWidgetid:function(wid)
{this.widgetid=wid;},setValue:function(arg)
{if(dfx.isObj(arg)===true&&dfx.isArray(arg)===false){if(this.isValidWidget(arg)===false){var msg='The widget (#ID: '+this.id+') is not a valid widget to apply rules.';alert(msg);}
this.widget=arg;this.value=arg.getValue();}else{this.value=arg;}},setServer:function(svr)
{this.server=svr;},setClient:function(clt)
{this.client=clt;},setErrorMsg:function(msg)
{this.errorMsg=msg;},getRuleValidationInfo:function()
{var info={'rule_type':this.getRuleTypeString(),'result':true,'errors':[]};return info;},getRuleTypeString:function()
{if(dfx.isset(this.widgetType)===false||typeof this.widgetType!=='string'){return'';}
return this.widgetType.substr(8,(this.widgetType.length-18));},isValidWidget:function(wdgt)
{if(dfx.isset(wdgt.getValue)===true&&dfx.isFn(wdgt.getValue)===true){return true;}
return false;}};dfx.inherits('RuleType','Widget');function ScrollPaneWidgetType(id,width,widthUnit,height,heightUnit,mouseWheelSclDist,hasVerticalSclBar,hasHorizontalSclBar,overflow)
{Widget.call(this,id);this.widgetType='ScrollPane';this.content=null;this.domElem=null;this.vScroll=null;this.hScroll=null;this.height=height||null;this.width=width||null;this.heightUnit=heightUnit||'px';this.widthUnit=widthUnit||'px';this.mouseWheelSclDist=mouseWheelSclDist||'0';if(overflow==='auto'){return;}
this.hasVerticalSclBar=false;if(dfx.isset(hasVerticalSclBar)===true){this.hasVerticalSclBar=hasVerticalSclBar;}
this.hasHorizontalSclBar=false;if(dfx.isset(hasHorizontalSclBar)===true){this.hasHorizontalSclBar=hasHorizontalSclBar;}
this.init();}
ScrollPaneWidgetType.prototype={init:function()
{var main=dfx.getId(this.id);if(main){this.content=dfx.getId(this.id+'-content');this.domElem=main;var self=this;if(this.height!==null){this.setHeight(parseInt(this.height),this.heightUnit);}
if(this.width!==null){this.setWidth(parseInt(this.width),this.widthUnit);}
this.create(function(){self.update();self._addEvents();});}else{var c=this.getClass();var main=document.createElement('div');main.id=this.id;dfx.addClass(main,c);var content=document.createElement('div');content.id=this.id+'-content';this.content=content;dfx.addClass(content,c+'-content');main.appendChild(content);this.domElem=main;}},parentSizeChanged:function(widgetid,elem,size)
{this.setHeight(size.height,'px');this.update();},create:function(callback)
{var main=this.domElem;if(this.hasVerticalSclBar===true){this.vScroll=new ScrollPaneWidgetTypeVerticalScrollbar(this.id+'-vertical',main,this.content);}
if(this.hasHorizontalSclBar===true){this.hScroll=new ScrollPaneWidgetTypeHorizontalScrollbar(this.id+'-horizontal',main,this.content);}
var self=this;if(this.hScroll!==null){this.hScroll.addDisabledAction(function(){if(self.vScroll!==null){self.vScroll.heightModifier=2;self.vScroll.update();}});}
if(this.vScroll!==null){main.appendChild(this.vScroll.create());}
if(this.hScroll!==null){main.appendChild(this.hScroll.create());}
if(dfx.isFn(callback)){callback.call(this,main);}},getClass:function()
{return'ScrollPaneWidgetType';},addContentElement:function(el)
{if(this.content){this.content.appendChild(el);}},update:function(noDelayedUpdate)
{if(!dfx.getId(this.id)){return;}
var paneWidth=dfx.getElementWidth(this.domElem);if(paneWidth>0){this.updateWidth();this.updateHeight();if(this.vScroll!==null){this.vScroll.update();}
if(this.hScroll!==null){this.hScroll.update();}}
if(noDelayedUpdate!==true){var self=this;setTimeout(function(){self.update(true);},2000);}},updateWidth:function(){},updateHeight:function()
{var paneHeight=dfx.getElementHeight(this.domElem);dfx.setStyle(this.content,'height','auto');var elH=dfx.getElementHeight(this.content);if(elH<paneHeight){dfx.setStyle(this.content,'height','100%');}},setWidth:function(size,unit)
{var u=unit||'px';dfx.setStyle(this.domElem,'width',size+u);},setHeight:function(size,unit)
{var u=unit||'px';dfx.setStyle(this.domElem,'height',size+u);},getBorderWidth:function()
{var l=parseInt(dfx.getStyle(this.domElem,'border-left-width'));var r=parseInt(dfx.getStyle(this.domElem,'border-right-width'));var v=l+r;if(isNaN(v)){v=0;}
return v;},addDisabledAction:function(action)
{if(this.vScroll!==null){this.vScroll.addDisabledAction(action);}
if(this.hScroll!==null){this.hScroll.addDisabledAction(action);}},addEnabledAction:function(action)
{if(this.vScroll!==null){this.vScroll.addEnabledAction(action);}
if(this.hScroll!==null){this.hScroll.addEnabledAction(action);}},_addEvents:function()
{if(this.vScroll!==null){this.vScroll.addEvents();}
if(this.hScroll!==null){this.hScroll.addEvents();}},scrollTo:function(top)
{if(this.vScroll!==null){this.vScroll.sync(0);}}};dfx.inherits('ScrollPane','Widget');function ScrollPaneWidgetTypeScrollbar(id)
{this.id=id;this.domElem=null;this.scroller=null;this.enabledActions=[];this.disabledActions=[];}
ScrollPaneWidgetTypeScrollbar.prototype={getWidth:function()
{return dfx.getElementWidth(this.domElem);},getHeight:function()
{return dfx.getElementHeight(this.domElem);},fireDisabledActions:function()
{var len=this.disabledActions.length;for(var i=0;i<len;i++){this.disabledActions[i].call(this);}},addDisabledAction:function(action)
{this.disabledActions.push(action);},fireEnabledActions:function()
{var len=this.enabledActions.length;for(var i=0;i<len;i++){this.enabledActions[i].call(this);}},addEnabledAction:function(action)
{this.enabledActions.push(action);}};function ScrollPaneWidgetTypeVerticalScrollbar(id,elem,content)
{ScrollPaneWidgetTypeScrollbar.call(this,id);this.scrollPaneElem=elem;this.arrowTop=this.shaft=this.arrowBottom=null;this.content=content;this.paneHeight=this.scrollerHeight=this.shaftHeight=this.arrowHeight=0;this.syncC=this.maxDown=this.shaftTop=0;this.contentHeight=dfx.getElementHeight(this.content);this.mouseWheelMultiplier=5;this.heightModifier=3;}
ScrollPaneWidgetTypeVerticalScrollbar.prototype={create:function()
{var c='ScrollPaneWidgetType-scroll';var main=document.createElement('div');dfx.addClass(main,c+'-vertical');this.arrowTop=document.createElement('div');dfx.addClass(this.arrowTop,c+'-vertical-arrow-top');main.appendChild(this.arrowTop);this.shaft=document.createElement('div');dfx.addClass(this.shaft,c+'-vertical-shaft');main.appendChild(this.shaft);this.scroller=document.createElement('div');dfx.addClass(this.scroller,c+'-vertical-scroller');this.shaft.appendChild(this.scroller);this.arrowBottom=document.createElement('div');dfx.addClass(this.arrowBottom,c+'-vertical-arrow-bottom');main.appendChild(this.arrowBottom);this.domElem=main;return main;},update:function()
{if(dfx.isset(this.content.firstChild)===false){return;}
var paneHeight=dfx.getElementHeight(this.scrollPaneElem);this.paneHeight=paneHeight;var arrowHeight=dfx.getElementHeight(this.arrowTop);this.arrowHeight=arrowHeight;var t=parseInt(dfx.getStyle(this.scrollPaneElem,'border-top-width'));var b=parseInt(dfx.getStyle(this.scrollPaneElem,'border-bottom-width'));var v=t+b;if(isNaN(v)){v=0;}
this.shaftHeight=(paneHeight-(arrowHeight*this.heightModifier)-v+1);dfx.setStyle(this.shaft,'height',this.shaftHeight+'px');this.contentHeight=dfx.getElementHeight(this.content.firstChild);this.contentHeight-=parseInt(dfx.getStyle(this.content.firstChild,'margin-top'));this.contentHeight-=parseInt(dfx.getStyle(this.content.firstChild,'margin-bottom'));dfx.setStyle(this.content.firstChild,'position','relative');if(this.contentHeight<=this.paneHeight){this.fireDisabledActions();dfx.setStyle(this.domElem,'display','none');this.maxDown=this.contentHeight;return;}else{this.fireEnabledActions();dfx.setStyle(this.domElem,'display','block');}
this.scrollerHeight=((paneHeight*this.shaftHeight)/this.contentHeight);dfx.setStyle(this.scroller,'height',this.scrollerHeight+'px');this.maxDown=(dfx.getElementHeight(this.shaft)-this.scrollerHeight);this.syncC=(this.contentHeight-this.paneHeight);this.syncB=(this.shaftHeight-this.scrollerHeight);},addEvents:function()
{var clickDist=0;var self=this;var mMove=function(e){var pos=dfx.getMouseEventPosition(e);var np=(pos.y-self.shaftTop-clickDist);self.sync(np);};dfx.addEvent(this.scroller,'mousedown',function(e){var pos=dfx.getMouseEventPosition(e);clickDist=(pos.y-dfx.getElementCoords(self.scroller).y);self.shaftTop=dfx.getElementCoords(self.shaft).y;dfx.addEvent(document,'mousemove',mMove);return false;});dfx.addEvent(document,'mouseup',function(e){dfx.removeEvent(document,'mousemove',mMove);});var arrowTopInterval=null;dfx.addEvent(this.arrowTop,'mousedown',function(e){arrowTopInterval=setInterval(function(){self.sync(parseInt(dfx.getStyle(self.scroller,'top'))-5);},10);});dfx.addEvent(document,'mouseup',function(e){clearInterval(arrowTopInterval);});var arrowBottomInterval=null;dfx.addEvent(this.arrowBottom,'mousedown',function(e){arrowBottomInterval=setInterval(function(){self.sync(parseInt(dfx.getStyle(self.scroller,'top'))+5);},10);});dfx.addEvent(document,'mouseup',function(e){clearInterval(arrowBottomInterval);});dfx.addEvent(this.scrollPaneElem,'mousewheel',function(e,delta){self.sync((parseInt(dfx.getStyle(self.scroller,'top'))-delta*self.mouseWheelMultiplier));});dfx.addEvent(this.shaft,'mousedown',function(e){var mp=(dfx.getMouseEventPosition(e).y-dfx.getElementCoords(self.shaft).y);var top=parseInt(dfx.getStyle(self.scroller,'top'));var p=0;if(mp>top){p=top+self.scrollerHeight;}else{p=(top-self.scrollerHeight);}
self.sync(p);});},sync:function(top)
{if(top<0){top=0;}else if(top>this.maxDown){top=this.maxDown;}
dfx.setStyle(this.scroller,'top',top+'px');var pos=(0-(top*this.syncC/this.syncB));if(isNaN(pos)){pos=0;}
dfx.setStyle(this.content.firstChild,'top',pos+'px');}};dfx.noInclusionInherits('ScrollPaneWidgetTypeVerticalScrollbar','ScrollPaneWidgetTypeScrollbar',true);function ScrollPaneWidgetTypeHorizontalScrollbar(id,elem,content)
{ScrollPaneWidgetTypeScrollbar.call(this,id);this.scrollPaneElem=elem;this.content=content;this.arrowLeft=this.shaft=this.scroller=this.arrowRight=null;this.paneWidth=this.arrowWidth=this.arrowWidth=this.shaftWidth=0;this.scrollerWidth=this.contentWidth=this.syncC=this.syncB=0;this.maxRight=this.shaftLeft=0;}
ScrollPaneWidgetTypeHorizontalScrollbar.prototype={create:function()
{var c='ScrollPaneWidgetType-scroll';var main=document.createElement('div');dfx.addClass(main,c+'-horizontal');this.arrowLeft=document.createElement('div');dfx.addClass(this.arrowLeft,c+'-horizontal-arrow-left');main.appendChild(this.arrowLeft);this.shaft=document.createElement('div');dfx.addClass(this.shaft,c+'-horizontal-shaft');main.appendChild(this.shaft);this.scroller=document.createElement('div');dfx.addClass(this.scroller,c+'-horizontal-scroller');this.shaft.appendChild(this.scroller);this.arrowRight=document.createElement('div');dfx.addClass(this.arrowRight,c+'-horizontal-arrow-right');main.appendChild(this.arrowRight);this.domElem=main;return main;},update:function()
{if(dfx.isset(this.content.firstChild)===false){return;}
this.paneWidth=dfx.getElementWidth(this.scrollPaneElem);this.arrowWidth=dfx.getElementWidth(this.arrowLeft);var l=parseInt(dfx.getStyle(this.scrollPaneElem,'border-left-width'));var r=parseInt(dfx.getStyle(this.scrollPaneElem,'border-right-width'));var v=l+r;if(isNaN(v)){v=0;}
this.shaftWidth=(this.paneWidth-(this.arrowWidth*2)-v);dfx.setStyle(this.shaft,'width',this.shaftWidth+'px');this.contentWidth=dfx.getElementWidth(this.content.firstChild);dfx.setStyle(this.content.firstChild,'position','relative');if(this.contentWidth<=this.paneWidth){dfx.setStyle(this.domElem,'display','none');this.fireDisabledActions();return;}
this.scrollerWidth=((this.paneWidth*this.shaftWidth)/this.contentWidth);dfx.setStyle(this.scroller,'width',this.scrollerWidth+'px');this.maxRight=(dfx.getElementWidth(this.shaft)-dfx.getElementWidth(this.scroller));this.syncC=(this.contentWidth-this.paneWidth+(this.arrowWidth*2));this.syncB=(this.shaftWidth-this.scrollerWidth);},addEvents:function()
{var clickDist=0;var self=this;var mMove=function(e){var pos=dfx.getMouseEventPosition(e);var np=(pos.x-self.shaftLeft-clickDist);self.sync(np);};dfx.addEvent(this.scroller,'mousedown',function(e){var pos=dfx.getMouseEventPosition(e);clickDist=(pos.x-dfx.getElementCoords(self.scroller).x);self.shaftLeft=dfx.getElementCoords(self.shaft).x;dfx.addEvent(document,'mousemove',mMove);return false;});dfx.addEvent(document,'mouseup',function(e){dfx.removeEvent(document,'mousemove',mMove);});var arrowLeftInterval=null;dfx.addEvent(this.arrowLeft,'mousedown',function(e){arrowLeftInterval=setInterval(function(){self.sync(parseInt(dfx.getStyle(self.scroller,'left'))-5);},10);});dfx.addEvent(document,'mouseup',function(e){clearInterval(arrowLeftInterval);});var arrowRightInterval=null;dfx.addEvent(this.arrowRight,'mousedown',function(e){arrowRightInterval=setInterval(function(){self.sync(parseInt(dfx.getStyle(self.scroller,'left'))+5);},10);});dfx.addEvent(document,'mouseup',function(e){clearInterval(arrowRightInterval);});dfx.addEvent(this.shaft,'mousedown',function(e){var mp=(dfx.getMouseEventPosition(e).x-dfx.getElementCoords(self.shaft).x);var left=parseInt(dfx.getStyle(self.scroller,'left'));var p=0;if(mp>left){p=left+self.scrollerWidth;}else{p=(left-self.scrollerWidth);}
self.sync(p);});},sync:function(left)
{if(left<0){left=0;}else if(left>this.maxRight){left=this.maxRight;}
dfx.setStyle(this.scroller,'left',left+'px');var pos=(0-(left*this.syncC/this.syncB));dfx.setStyle(this.content.firstChild,'left',pos+'px');}};dfx.noInclusionInherits('ScrollPaneWidgetTypeHorizontalScrollbar','ScrollPaneWidgetTypeScrollbar',true);function SearchContentFormatWidgetType(id,simpleEdit)
{Widget.call(this,id);this.widgetType='SearchContentFormat';this.formats={};this.parentElements=null;this.show=false;this.simpleEdit=simpleEdit||false;}
SearchContentFormatWidgetType.prototype={addFormat:function(formatid,formatElem)
{this.formats[formatid]=formatElem;if(this.show===true){this.showFormat(formatid);}},setSimpleEdit:function(useSimpleEdit)
{this.simpleEdit=useSimpleEdit;},setParentElements:function(parentEls)
{this.parentElements=parentEls;},activateFormat:function(formatid)
{return;},setFormatValue:function(formatid,value)
{this.formats[formatid]=value;},removeFormat:function(formatid)
{if((formatid in this.formats)===true){dfx.remove(this.formats[formatid]);delete this.formats[formatid];}},removeFormats:function()
{for(var formatid in this.formats){this.removeFormat(formatid);}},showFormats:function(noEdit)
{if(dfx.isset(this.parentElements)===true){for(var formatid in this.formats){this.showFormat(formatid,false,noEdit);}
this.show=true;}},showFormat:function(formatid,hideOthers,noEdit)
{if(hideOthers===true){this.hideFormats();}
var format=this.formats[formatid];var len=this.parentElements.length;for(var i=0;i<len;i++){this.parentElements[i].appendChild(format);}
if(noEdit!==true){if(this.simpleEdit===true){this.showSimpleEdit(format);}else{new Viper(format);}}},hideFormats:function()
{var len=this.parentElements.length;for(var i=0;i<len;i++){dfx.empty(this.parentElements[i]);}},hideFormat:function(formatid)
{dfx.remove(this.formats[formatid]);},getFormats:function()
{return this.formats;},showSimpleEdit:function(format)
{var self=this;this.includeWidget('ModalDialog',function(){var simpleEditorDialog=self.createWidget(self.id+'-simpleEditorDialog','ModalDialog');simpleEditorDialog.create(function(){simpleEditorDialog.setTitle('Advanced Editor');var textArea=document.createElement('textarea');dfx.setStyle(textArea,'border','none');textArea.setAttribute('rows','20');textArea.setAttribute('cols','70');textArea.value=dfx.getHtml(format);simpleEditorDialog.addButton('OK',function(){simpleEditorDialog.close();dfx.setHtml(format,textArea.value);});simpleEditorDialog.setContentElement(textArea);simpleEditorDialog.open();simpleEditorDialog.addEvents();simpleEditorDialog.disable();textArea.focus();});});}};dfx.inherits('SearchContentFormat','Widget');function SettingsPaneWidgetType(id)
{Widget.call(this,id);this.domElem=dfx.getId(this.id);this.dynamicDiv=null;this.container=null;this.prevHeight=null;this.resizeEvents=null;this.editingContents=null;this.loader=null;this.offset=0;this.noOffset=false;this.top=null;this.resizeButton=null;this.assetType=null;if(dfx.isset(this.domElem)===true){this.init();}
WidgetStore.addDataChangeListener('SettingsPaneWidget','activeMode',function(newMode,prevMode){WidgetStore.setData('activeAssetSetting',null);});WidgetStore.addDataChangeListener('SettingsPaneWidget','activeScreen',function(newScreen,prevScreen){WidgetStore.setData('activeAssetSetting',null);});}
SettingsPaneWidgetType.prototype={create:function(callback)
{var div=document.createElement('div');div.id=this.id;var top=document.createElement('div');top.id=this.id+'-top';var btn=document.createElement('div');dfx.addClass(btn,'SettingsPaneWidgetType-top-btn');top.appendChild(btn);this.top=top;this.addResizeBtnEvent(btn);dfx.addClass(top,'SettingsPaneWidgetType-top');div.appendChild(top);this.container=document.createElement('div');this.container.id=this.id+'-container';dfx.addClass(this.container,'SettingsPaneWidgetType-container');div.appendChild(this.container);this.domElem=div;dfx.addClass(div,'SettingsPaneWidgetType');this.init();if(dfx.isFn(callback)===true){WidgetStore.setData('bugState',1);callback.call(this,div);return;}},init:function()
{var ec=dfx.getId('EditingContents');this.editingContents=ec;dfx.insertAfter(ec,this.domElem);dfx.addClass(ec,'scrollable');this.offset=parseInt(dfx.getStyle(ec,'margin-top'),10);var self=this;this.includeWidget('DynamicDiv',function(){self.dynamicDiv=self.createWidget(self.id+'-dd','DynamicDiv');self.dynamicDiv.setElement(self.container);});dfx.addEvent(window,'resize',function(){self.resizeContent();});this.enableResize();this.resizeContent();},enableResize:function()
{var elem=dfx.getClass('SettingsPaneWidgetType-top',this.domElem)[0];var self=this;var windim=null;dfx.resizeHeight(this.domElem,elem,function(){windim=dfx.getWindowDimensions();},null,function(info){self.resizeContent(windim,info.height);},0);},fireSizeChanged:function(size)
{WidgetStore.fireParentSizeChanged(this.id,this.domElem,size);},setSettingsContent:function(dynamicContent,callback)
{this.dynamicDiv.updateContent(dynamicContent,callback);},changeContent:function(params,endFunc)
{var self=this;this.displayDisabledDiv(true,this.container,'white','absolute');this.dynamicDiv.changeContent(params,function(data){if(data){var ddata=dfx.jsonDecode(data);if(ddata&&ddata.assetType){self.assetType=ddata.assetType;WidgetStore.setData('activeAssetSetting',self.assetType);}}
self.removeDisabledDiv(self.container);if(dfx.isFn(endFunc)===true){endFunc.call(this,data);}});},resizeContent:function(dim,height)
{var ec=this.editingContents;dim=dim||dfx.getWindowDimensions();elHeight=height||dfx.getElementHeight(this.domElem);var marginTop=this.offset;var contentH=(dim.height-elHeight-marginTop);if(this.noOffset!==true){contentH-=31;}
if(dfx.getStyle(ec,'display')!=='none'){dfx.setStyle(ec,'height',contentH+'px');}
return contentH;},remove:function()
{dfx.remove(this.domElem);if(dfx.getStyle(this.editingContents,'display')!=='none'){dfx.setStyle(this.editingContents,'height','auto');}},setHeight:function(height,noOffset)
{this.noOffset=noOffset;dfx.setStyle(this.domElem,'height',height);this.resizeContent();},getHeight:function()
{return dfx.getElementHeight(this.domElem);},addResizeBtnEvent:function(elem)
{this.resizeButton=elem;var self=this;dfx.addEvent(elem,'click',function(){if(dfx.hasClass(elem,'close')!==true){self.close();}else{self.open();}});},close:function()
{this.removeDisabledDiv(this.container);dfx.addClass(this.resizeButton,'close');this.prevHeight=dfx.getElementHeight(this.domElem);dfx.setStyle(this.domElem,'height','0px');WidgetStore.setData('bugState',{state:0,widget:this});dfx.removeEvent(dfx.getClass('SettingsPaneWidgetType-top',this.domElem)[0]);this.resizeContent();WidgetStore.setData('activeAssetSetting',null);},open:function()
{if(this.prevHeight!==null){dfx.setStyle(this.domElem,'height',this.prevHeight+'px');}
dfx.removeClass(this.resizeButton,'close');WidgetStore.setData('bugState',{state:1,widget:this});WidgetStore.setData('activeAssetSetting',this.assetType);this.enableResize();this.resizeContent();}};dfx.inherits('SettingsPane','Widget');function SplitPaneWidgetType(id,orientation,totalSize,totalSizeType,paneOneSize,paneOneSizeType,paneTwoSize,paneTwoSizeType,minSize,minSizeType,maxSize,maxSizeType)
{Widget.call(this,id);this.totalSize=totalSize;this.totalSizeType=totalSizeType;this.paneOneSize=paneOneSize;this.paneOneSizeType=paneOneSizeType;this.paneTwoSize=paneTwoSize;this.paneTwoSizeType=paneTwoSizeType;this.sizeType='px';this.minSize=minSize;this.minSizeType=minSizeType;this.maxSize=maxSize;this.maxSizeType=maxSizeType;this.vertical=true;if(orientation==='horizontal'){this.vertical=false;}
this.splitPane=dfx.getId(id);this.splitPane.onselectstart=function(){return false;};this.handle=dfx.getId(id+'_handlebar');this.paneOne=dfx.getId(id+'_paneone');this.paneTwo=dfx.getId(id+'_panetwo');this.containerSize=this.getContainerSize();this.handlebarSize=this.getHandlebarSize();if(this.vertical===true){this.verticalDrag();}else{this.horizontalDrag();}}
SplitPaneWidgetType.prototype={paneOneFullSizeOn:function()
{this.paneOneCurrentSize=this.paneOneSize;if(this.paneOneSizeType==='%'){dfx.setStyle(this.paneOne.parentNode,'width','100%');dfx.swapClass(this.paneTwo.parentNode,'SplitPaneWidgetType-show','SplitPaneWidgetType-hide');}},paneOneFullSizeOff:function()
{if(this.paneOneSizeType==='%'){dfx.setStyle(this.paneOne.parentNode,'width',this.paneOneCurrentSize+'%');dfx.swapClass(this.paneTwo.parentNode,'SplitPaneWidgetType-hide','SplitPaneWidgetType-show');}},getContainerSize:function()
{var type='width';if(this.vertical){type='height';}
return parseInt(dfx.getStyle(this.splitPane,type));},getHandlebarSize:function()
{var size=1;return size;},verticalDrag:function()
{var self=this;var dragHandle=null;var left=dfx.getElementCoords(this.handle)['x']+1;var top=dfx.getElementCoords(this.handle)['y']+1;var rect=null;var coords=null;var dimensions=null;var updateMeLater=function(){rect=dfx.getBoundingRectangle(self.splitPane);coords=dfx.getElementCoords(self.splitPane);dimensions=dfx.getElementDimensions(self.splitPane);};setTimeout(updateMeLater,1000);var move=function(e){if(dragHandle===null){dragHandle=self.handle.cloneNode(true);dragHandle.id=dragHandle.id+'_clone';dfx.setStyle(dragHandle,'z-index','999');dfx.setStyle(dragHandle,'background-color','#999');dfx.setStyle(dragHandle,'position','absolute');dfx.setStyle(dragHandle,'height',dfx.getElementHeight(self.handle)+'px');dfx.setStyle(dragHandle,'width',dfx.getElementWidth(self.handle)+'px');dfx.setStyle(dragHandle,'top',top+'px');dfx.setStyle(dragHandle,'display','block');dfx.setStyle(document.body,'cursor','w-resize');dfx.setStyle(dragHandle,'cursor','w-resize');document.body.appendChild(dragHandle);}
if(e.clientX<rect.x2&&e.clientX>rect.x1){var pos=dfx.getMouseEventPosition(e);dfx.setStyle(dragHandle,'left',pos.x+'px');}};dfx.addEvent(this.handle,'mousedown',function(){dfx.addEvent(document,'mousemove',move);});dfx.addEvent(document,'mouseup',function(e){if(dragHandle){var width=0;var splitPaneSize=dfx.getElementWidth(self.splitPane);if(self.paneTwoSizeType==='%'){width=Math.ceil(((splitPaneSize-(parseInt(dfx.getStyle(dragHandle,'left'))-rect.x1))/splitPaneSize)*100);}else{width=(splitPaneSize-(parseInt(dfx.getStyle(dragHandle,'left'))-rect.x1));}
if(self.minSize&&width<self.minSize){width=self.minSize;}else if(self.maxSize&&width>self.maxSize){width=self.maxSize;}
dfx.setStyle(self.paneTwo.parentNode,'width',width+self.paneTwoSizeType);var oneWidth=0;if(self.paneOneSizeType==='%'){if(self.paneTwoSizeType==='%'){oneWidth=(100-width);}else{oneWidth=self.pixelToPercent(splitPaneSize,width);}}else{if(self.paneTwoSizeType==='%'){oneWidth=(self.percentToPixel(splitPaneSize,width)-self.handlebarSize);}else{oneWidth=(splitPaneSize-width-self.handlebarSize);}}
dfx.setStyle(self.paneOne.parentNode,'width',oneWidth+self.paneOneSizeType);dfx.remove(dragHandle);dragHandle=null;dfx.setStyle(document.body,'cursor','');dfx.removeEvent(document,'mousemove',move);}});},pixelToPercent:function(total,pixel)
{return Math.ceil(((total-pixel)/total)*100);},percentToPixel:function(total,percent)
{return Math.ceil(total*((100-percent)/100));},horizontalDrag:function()
{var self=this;var dragHandle=null;var left=dfx.getElementCoords(this.handle)['x']+1;var rect=null;var move=function(e){if(dragHandle===null){dragHandle=self.handle.cloneNode(true);dragHandle.id=self.handle.id+'_clone';dfx.setStyle(dragHandle,'background-color','#999');dfx.setStyle(dragHandle,'position','absolute');dfx.setStyle(dragHandle,'height',dfx.getElementHeight(self.handle)+'px');dfx.setStyle(dragHandle,'width',dfx.getElementWidth(self.handle)+'px');dfx.setStyle(dragHandle,'left',rect.x1+'px');dfx.setStyle(dragHandle,'display','block');dfx.setStyle(document.body,'cursor','n-resize');dfx.setStyle(dragHandle,'cursor','n-resize');document.body.appendChild(dragHandle);}
if(e.clientY<rect.y2&&e.clientY>rect.y1){var pos=dfx.getMouseEventPosition(e);dfx.setStyle(dragHandle,'top',pos.y+'px');}};var mouseUp=function(e){if(dragHandle){var splitPaneSize=dfx.getElementHeight(self.splitPane);var height=((parseInt(dfx.getStyle(dragHandle,'top'))-rect.y1)/splitPaneSize);if(self.sizeType==='%'){height=Math.ceil(height*100);}else{height=(parseInt(dfx.getStyle(dragHandle,'top'))-rect.y1);}
if(self.minSize&&height<self.minSize){height=self.minSize;}else if(self.maxSize&&height>self.maxSize){height=self.maxSize;}
dfx.setStyle(self.paneOne.parentNode,'height',height+self.sizeType);if(self.containerSize===0){self.containerSize=self.getContainerSize();}
if(self.handlebarSize===0){self.handlebarSize=self.getHandlebarSize();}
var paneTwoSize=0;if(self.sizeType==='%'){paneTwoSize=(100-height);}else{paneTwoSize=(self.containerSize-self.handlebarSize-height);}
dfx.setStyle(self.paneTwo.parentNode,'height',paneTwoSize+self.sizeType);dfx.remove(dragHandle);WidgetStore.fireParentSizeChanged(self.paneOne,self);WidgetStore.fireParentSizeChanged(self.paneTwo,self);dragHandle=null;dfx.setStyle(document.body,'cursor','');dfx.removeEvent(document,'mousemove',move);dfx.removeEvent(document,'mouseup',mouseUp);}};dfx.addEvent(this.handle,'mousedown',function(){if(!rect){rect=dfx.getBoundingRectangle(self.splitPane);}
dfx.addEvent(document,'mousemove',move);dfx.addEvent(document,'mouseup',mouseUp);});}};dfx.inherits('SplitPane','Widget');function SquizSearchContentFormatWidgetType(id,simpleEdit)
{Widget.call(this,id);this.widgetType='SquizSearchContentFormat';this.formats={};this.parentElements=null;this.show=false;this.simpleEdit=simpleEdit||false;}
SquizSearchContentFormatWidgetType.prototype={addFormat:function(formatid,formatElem)
{this.formats[formatid]=formatElem;if(this.show===true){this.showFormat(formatid);}},setSimpleEdit:function(useSimpleEdit)
{this.simpleEdit=useSimpleEdit;},setParentElements:function(parentEls)
{this.parentElements=parentEls;},activateFormat:function(formatid)
{return;},setFormatValue:function(formatid,value)
{this.formats[formatid]=value;},removeFormat:function(formatid)
{if((formatid in this.formats)===true){dfx.remove(this.formats[formatid]);delete this.formats[formatid];}},removeFormats:function()
{for(var formatid in this.formats){this.removeFormat(formatid);}},showFormats:function(noEdit)
{if(dfx.isset(this.parentElements)===true){for(var formatid in this.formats){this.showFormat(formatid,false,noEdit);}
this.show=true;}},showFormat:function(formatid,hideOthers,noEdit)
{if(hideOthers===true){this.hideFormats();}
var format=this.formats[formatid];var len=this.parentElements.length;for(var i=0;i<len;i++){this.parentElements[i].appendChild(format);}
if(noEdit!==true){if(this.simpleEdit===true){this.showSimpleEdit(format);}else{new Viper(format);}}},hideFormats:function()
{var len=this.parentElements.length;for(var i=0;i<len;i++){dfx.empty(this.parentElements[i]);}},hideFormat:function(formatid)
{dfx.remove(this.formats[formatid]);},getFormats:function()
{return this.formats;},showSimpleEdit:function(format)
{var self=this;this.includeWidget('ModalDialog',function(){var simpleEditorDialog=self.createWidget(self.id+'-simpleEditorDialog','ModalDialog');simpleEditorDialog.create(function(){simpleEditorDialog.setTitle('Advanced Editor');var textArea=document.createElement('textarea');dfx.setStyle(textArea,'border','none');textArea.setAttribute('rows','20');textArea.setAttribute('cols','70');textArea.value=dfx.getHtml(format);simpleEditorDialog.addButton('OK',function(){simpleEditorDialog.close();dfx.setHtml(format,textArea.value);});simpleEditorDialog.setContentElement(textArea);simpleEditorDialog.open();simpleEditorDialog.addEvents();simpleEditorDialog.disable();textArea.focus();});});}};dfx.inherits('SquizSearchContentFormat','Widget');function TabPaneWidgetType(id,orientation,tabs)
{Widget.call(this,id);this.widgetType='TabPane';this.selectedIndex=-1;this.tabElements=[];this.tabs=tabs;this.tabsElem=dfx.getId(this.id+'-tabs');this.stopSelection=false;this.selectHandlers=[];this.changeHandlers=[];this.orientation=orientation;this.domElem=dfx.getId(this.id);if(dfx.isset(this.domElem)===true){this._addEvents();}}
TabPaneWidgetType.prototype={getClass:function()
{var className=Widget.prototype.getClass.call(this);if(this.orientation==='1'){className+='-o-left';}else if(this.orientation==='3'){className+='-o-top';}
return className;},addOnSelectHandler:function(callback)
{this.selectHandlers.push(callback);},addOnChangeHandler:function(callback)
{this.changeHandlers.push(callback);},create:function(callback)
{var main=document.createElement('div');main.id=this.id;dfx.addClass(main,'TabPaneWidgetType');var tabs=document.createElement('div');dfx.addClass(tabs,'TabPaneWidgetType-tabs');main.appendChild(tabs);this.tabsElem=tabs;var leftFade=document.createElement('div');dfx.addClass(leftFade,'TabPaneWidgetType-tabs-left-fade');tabs.appendChild(leftFade);var containers=document.createElement('div');containers.id=this.id+'-containers';dfx.addClass(containers,'TabPaneWidgetType-containers');main.appendChild(containers);var tcount=0;for(var tab in this.tabs){if(this.tabs.hasOwnProperty(tab)===false){continue;}
var tabEl=this._createTab(tab,tcount++);tabs.appendChild(tabEl);}
var rightFade=document.createElement('div');dfx.addClass(rightFade,'TabPaneWidgetType-tabs-right-fade');tabs.appendChild(rightFade);this.domElem=main;this._addEvents();var self=this;this.includeWidget('CardLayout',function(){var cardLayout=self.createWidget(self.id+'-cardLayout','CardLayout');for(var tab in self.tabs){if(self.tabs.hasOwnProperty(tab)===false){continue;}
cardLayout.add(self.tabs[tab]);}
cardLayout.create(function(card){containers.appendChild(card);self.selectTab(0);callback.call(self,main);return;});});},_createTab:function(title,index)
{var c='TabPaneWidgetType-tab';var main=document.createElement('div');main.id=this.id+'-tabs:'+title;dfx.addClass(main,c);dfx.addClass(main,'tab-'+index);var content='<div class="'+c+'-left"></div>';content+='<div class="'+c+'-content">'+title+'</div>';content+='<div class="'+c+'-right"></div>';dfx.setHtml(main,content);return main;},getTabs:function()
{var tabs=[];var tbs=this.tabsElem;if(tbs){if(tbs.firstChild&&tbs.firstChild.id===this.id+'-tabs-wrapper'){tabs=tbs.firstChild.childNodes;}else{var len=tbs.childNodes.length;for(var i=0;i<len;i++){if(dfx.hasClass(tbs.childNodes[i],'TabPaneWidgetType-tabs-left-fade')){continue;}
if(dfx.hasClass(tbs.childNodes[i],'TabPaneWidgetType-tabs-right-fade')){continue;}
tabs.push(tbs.childNodes[i]);}}}
return tabs;},getTab:function(idx)
{var tbs=this.getTabs();if(tbs[idx]){return tbs[idx];}
return null;},_addEvents:function()
{var tabs=this.getTabs();var tbln=tabs.length;for(var i=0;i<tbln;i++){this.tabElements.push(tabs[i]);this._addTabClickEvent(tabs[i],i);}
var selected=0;if(this.selectedIndex>0){selected=this.selectedIndex;}
WidgetStore.setData('activeTabid',this.tabElements[selected].id);},_addTabClickEvent:function(tab,index)
{var self=this;dfx.addEvent(tab,'click',function(){self.selectTab(index);});},showTab:function(index)
{dfx.showElement(this.tabElements[index]);},hideTab:function(index)
{dfx.hideElement(this.tabElements[index]);},selectTab:function(index,force)
{if(index<0){return;}
if(index===this.selectedIndex){return;}
var prevIndex=this.selectedIndex;if(this.selectedIndex===-1){this.selectedIndex=0;}
WidgetStore.setData('activeTabid',this.tabElements[index].id);if(this.fireTabSelectedEvent(index,this.selectedIndex)===false){return;}
if(this.stopSelection===true){this.stopSelection=false;return;}
var cardLayout=WidgetStore.get(this.id+'-cardLayout');var c=this.getClass();if(this.selectedIndex!==-1){dfx.removeClass(this.tabElements[this.selectedIndex],'selected');}
this.selectedIndex=index;cardLayout.show(index);if(this.orientation==='1'){dfx.addClass(this.tabElements[index],'selected');}else{if(prevIndex>=0){var prevTab=this.tabElements[prevIndex];dfx.removeClass(prevTab,'selected');}
var tabElm=this.tabElements[index];dfx.addClass(tabElm,'selected');}
this.fireTabChangedEvent(index,prevIndex);},fireTabSelectedEvent:function(index,prevIndex)
{var cont=true;var ln=this.selectHandlers.length;for(var i=0;i<ln;i++){if(this.selectHandlers[i].call(this,index,prevIndex)===false){cont=false;}}
return cont;},fireTabChangedEvent:function(index,prevIndex)
{var ln=this.changeHandlers.length;for(var i=0;i<ln;i++){this.changeHandlers[i].call(this,index,prevIndex);}},getCurrentTabIndex:function()
{return this.selectedIndex;}};dfx.inherits('TabPane','Widget');function TableWidgetType(id)
{Widget.call(this,id);this.widgetType='Table';this.index=0;this.data=[];this.tableElem=null;this.domElem=null;this.clickEvents={};this.tableIndex=0;var elem=dfx.getId(this.id);if(elem){this.domElem=elem;this._setClickEvent();}}
TableWidgetType.prototype={init:function()
{this.index=0;this.show(this.index);},create:function(callback)
{var c=this.getClass();var div=document.createElement('div');div.id=this.id;this.domElem=div;var tables='';var len=this.data.length;for(var i=0;i<len;i++){var rowData=this.data[i];var colClassExists=false;if(dfx.isset(rowData.colClass)===true){colClassExists=true;}
var suffix='-hidden';if(i===this.index){suffix='';}
var tableContents='<table id="'+this.id+'-'+i+'" class="';tableContents+=c+suffix+'" cellspacing="0" cellpadding="0">';var headerContents=this.createHeader(rowData);var rows='';for(var j in rowData.data){if(rowData.data.hasOwnProperty(j)===false){continue;}
rows+=this.createRow(rowData[j]);}
rows='<tbody>'+rows+'</tbody>';tableContents+=headerContents+rows+'</table>';tables+=tableContents;}
dfx.setHtml(div,tables);this._setClickEvent();if(dfx.isFn(callback)===true){callback.call(this,div);}},addRow:function(row,tableIndex)
{if(dfx.isset(tableIndex)===false){tableIndex=0;}
var tableElem=dfx.getId(this.id+'-'+tableIndex);if(dfx.isset(tableElem)===true){if(dfx.isset(tableElem.firstChild)===true){var elem=tableElem.firstChild;while(elem){if(elem.tagName.toLowerCase()==='tbody'){tableElem=elem;break;}else{elem=elem.nextSibling;}}}
tableElem.appendChild(row);}},getRowElement:function(id)
{var rowid=this.id+'-row-'+id;return rowid;},hasRow:function(rowid)
{if(dfx.getId(this.getRowElement(rowid))){return true;}
return false;},deleteRow:function(row,tableIndex)
{if(dfx.isset(tableIndex)===false){tableIndex=0;}
var tableElem=dfx.getId(this.id+'-'+tableIndex);if(dfx.isset(tableElem)===true){if(row){dfx.remove(row);}}},createRowAsElement:function(rowData,colClass,rowid)
{if(dfx.isset(rowid)===false){rowid=0;}
var c=this.getClass();var id=this.id+'-row-'+rowid;var tr=document.createElement('tr');tr.id=id;dfx.addClass(tr,c+'-row');for(var k in rowData){if(rowData.hasOwnProperty(k)===false){continue;}
var rr=rowData[k];var td=document.createElement('td');dfx.addClass(td,c+'-cell');if(dfx.isset(colClass)===true){dfx.addClass(td,' '+c+'-cell-'+colClass[k]);}
if(typeof rr==='object'){td.appendChild(rr);}else{dfx.setHtml(td,rr);}
tr.appendChild(td);}
return tr;},createRow:function(rowData,colClass)
{var c=this.getClass();var id=this.id+'-row-'+j;var tr='<tr id="'+id+'" class="'+c+'-row">';for(var k in rowData){if(rowData.hasOwnProperty(k)===false){continue;}
var rr=rowData[k];var td='<td class="'+c+'-cell';if(dfx.isset(colClass)===true){td+=' '+c+'-cell-'+colClass[k];}
tr+=td+'">'+rr+'</td>';}
tr+='</tr>';return tr;},createHeader:function(rowData)
{var cl=this.getClass();var col=rowData.col;var colHeaderClass='';var colClassExist=false;if(dfx.isset(rowData.colHeaderClass)===true){colHeaderClass=rowData.colHeaderClass;colClassExist=true;}
var contents='';if(dfx.isset(col)===true){contents='<thead>';contents+='<tr class="'+cl+'-row-bg">';for(var i in col){if(col.hasOwnProperty(i)===false){continue;}
var c=col[i];var style='';if(colClassExist===true){contents+='<th class="'+cl+'-header '+cl+'-header-'+colHeaderClass[i]+'" style="'+style+'">';}else{contents+='<th class="'+cl+'-header" style="'+style+'">';}
contents+=c;contents+='</td>';}
contents+='</tr>';contents+='</thead>';}
return contents;},setData:function(data)
{this.data.push(data);},getIndex:function()
{return this.index;},check:function(offset)
{var i=(this.index+offset);var check=dfx.getId(this.id+'-'+i);if(dfx.isset(check)===false){return false;}else{return true;}},prev:function()
{this.show((this.index+1));this.hide(this.index);this.index+=1;return this.check(1);},next:function()
{this.show((this.index-1));this.hide(this.index);this.index-=1;return this.check(-1);},show:function(index)
{if(dfx.isset(index)===false){dfx.showElement(this.domElem);return;}
var current=dfx.getId(this.id+'-'+index);if(dfx.isset(current)===true){current.className=this.getClass();}},hide:function(index)
{if(dfx.isset(index)===false){dfx.hideElement(this.domElem);return;}
var current=dfx.getId(this.id+'-'+index);if(dfx.isset(current)===true){current.className=this.getClass()+'-hidden';}},makeSortable:function(tableIndex,handle,start,stop)
{if(dfx.isset(tableIndex)===false){tableIndex=0;}
var tableElem=dfx.getId(this.id+'-'+tableIndex);var tbody=tableElem.getElementsByTagName("tbody")[0];if(dfx.isset(tbody)===true){var params={axis:'y'};if(dfx.isset(handle)===true){params.handle=handle;}
if(dfx.isFn(start)===true){params.start=start;}
if(dfx.isFn(stop)===true){params.stop=stop;}
dfxjQuery(tbody).sortable(params);}},reorderRow:function(fromId,toId)
{var to=null;if(dfx.isset(toId)===false){var table=dfx.getId(this.id+'-'+this.tableIndex);var tbody=table.getElementsByTagName("tbody")[0];to=tbody.getElementsByTagName("tr")[0];}else{to=dfx.getId(this.getRowElement(toId));}
var from=dfx.getId(this.getRowElement(fromId));if(dfx.isset(to)===true&&dfx.isset(from)===true){if(to.id!==from.id){dfx.insertBefore(to,from);}}},_setClickEvent:function()
{var self=this;dfx.addEvent(this.domElem,'click',function(e){var target=dfx.getMouseEventTarget(e);var parents=dfx.getParents(target,null,self.domElem);parents.unshift(target);var ln=parents.length;var rowid='';var colidx=0;for(var i=0;i<ln;i++){var p=parents[i];if(p.tagName){if(p.tagName.toLowerCase()==='tr'){rowid=p.id;break;}else if(p.tagName.toLowerCase()==='td'){var tmp=p.previousSibling;while(tmp){if(tmp.tagName&&tmp.tagName.toLowerCase()==='td'){colidx++;}
tmp=tmp.previousSibling;}}}}
self.fireClickEvents(p.id,colidx,target);});},fireClickEvents:function(rowid,col,target)
{for(var id in this.clickEvents){if(this.clickEvents.hasOwnProperty(id)===true){this.clickEvents[id].call(this,rowid,col,target);}}},addClickEvent:function(id,callback)
{this.clickEvents[id]=callback;},getRowids:function(tableIndex,filterFn)
{if(dfx.isFn(filterFn)===false){filterFn=function(){return true;};}
tableIndex=tableIndex||0;var tableElem=dfx.getId(this.id+'-'+tableIndex);var rows=dfx.getTag('tr',tableElem);var rln=rows.length;var ids=[];for(var i=0;i<rln;i++){if(dfx.hasClass(rows[i],'TableWidgetType-row-bg')===true){continue;}
if(filterFn.call(this,rows[i])===true){ids.push(rows[i].id.replace(this.id+'-row-',''));}}
return ids;},getRowid:function(rowid)
{return rowid.replace(this.id+'-row-','');}};dfx.inherits('Table','Widget');function TextAreaWidgetType(id)
{Widget.call(this,id);this.widgetType='TextArea';var self=this;this.error=false;this.errorElem=this.domElem;this.name='';this.label='';this.labelEl=null;this.hasWizardOpts=true;this.inline=false;this.setValueActions=[];this.domElem=null;this.inuput=null;this.value='';this.rod=null;this.onChangeCallbacks=[];if(dfx.isset(dfx.getId(this.id))===true){this.input=dfx.getId(this.id);var rod=dfx.getId(this.id+'-readOnly');if(rod){this.rod=rod;}
this.addEvents();}}
TextAreaWidgetType.prototype={blur:function(){},focus:function()
{this.input.focus();},setReadOnly:function(readOnly)
{AbstractWidgetWidgetType.prototype.setReadOnly.call(this,readOnly);var textArea=dfx.getId(this.id);var rod=dfx.getId(this.id+'-readOnly');if(rod&&textArea){if(this.readOnly){var h=dfx.getStyle(textArea,'height');var w=dfx.getStyle(textArea,'width');dfx.setStyle(rod,'height',h);dfx.setStyle(rod,'width','99%');dfx.addClass(rod,this.widgetType+'WidgetType-readOnly');dfx.showElement(rod);dfx.hideElement(textArea);}else{dfx.showElement(textArea);dfx.hideElement(rod);}}},create:function(callback)
{var div=document.createElement('div');div.id=this.id+'-wrap';if(this.showLabel===true){div.appendChild(this.createLabel(this.inline));}
var textArea=document.createElement('textarea');textArea.id=this.id;this.input=textArea;div.appendChild(textArea);this.domElem=div;textArea.value=this.value;var rod=document.createElement('div');this.rod=rod;rod.id=this.id+'-readOnly';div.appendChild(rod);dfx.setHtml(rod,'<pre style="margin: 0px;">'+dfx.htmlspecialchars(this.value)+'</pre>');if(this.readOnly){dfx.showElement(rod);dfx.hideElement(textArea);}else{dfx.showElement(textArea);dfx.hideElement(rod);}
if(dfx.isFn(callback)===true){callback.call(this,div);}},createLabel:function(inline)
{var label=document.createElement('label');dfx.setHtml(label,this.label);label.setAttribute('for',this.id);this.labelEl=label;if(inline===true){dfx.setStyle(label,'float','left');dfx.setStyle(label,'margin-top','3px');}
return label;},setValue:function(val)
{val=val||'';if(val==='null'){val='';}
this.value=val;if(dfx.isset(this.input)===true){this.input.value=val;if(this.rod){dfx.setHtml(this.rod,'<pre style="margin: 0px;">'+dfx.htmlspecialchars(val)+'</pre>');}}
this.fireSetValueActions(val);},setContents:function(val)
{this.setValue(val);},getValue:function()
{return this.input.value||'';},getContents:function()
{return this.getValue();},getHtml:function()
{return this.getValue();},getName:function()
{return this.name;},getErrorElement:function()
{return this.errorElem;},getTextAreaElement:function()
{return dfx.getId(this.id);},setName:function(name)
{this.name=name;},setShowLabel:function(show)
{this.showLabel=show;},setLabel:function(label)
{this.label=label;if(this.labelEl!==null){dfx.setHtml(this.labelEl,label);}},getLabel:function()
{return this.label;},setInline:function(inline)
{this.inline=inline;},clearValue:function()
{this.input.value='';},getWidgetSummary:function()
{var s='';var val=this.getValue();if(val!==''){s=this.label+':'+val;}
return s;},disable:function()
{this.input.disabled=true;dfx.setOpacity(this.input,0.6);},enable:function()
{this.input.disabled=false;dfx.setOpacity(this.input,1);},addSetValueAction:function(action)
{this.setValueActions.push(action);},fireSetValueActions:function(value)
{var aln=this.setValueActions.length;for(var i=0;i<aln;i++){this.setValueActions[i].call(this,value);}},addOnChangeEvent:function(fn)
{var self=this;if(this.onChangeCallbacks.length===0){dfx.addEvent(this.input,'keyup',function(evt){var val=evt.target.value;var len=self.onChangeCallbacks.length;for(var i=0;i<len;i++){self.onChangeCallbacks[i].call(self,val,evt);}});}
this.onChangeCallbacks.push(fn);},removeOnChangeEvents:function()
{delete this.onChangeCallbacks;this.onChangeCallbacks=[];}};dfx.inherits('TextArea','Widget');function TimeLineWidgetType(id,markers,baseYear,baseTime,year,month,type,offset)
{Widget.call(this,id);this.widgetType='TimeLine';this.id=id;this.markers=markers||[];this.className='TimeLineWidgetType';this.domElem=null;this.timeLinesElem=null;this.timeLines={};this.markerContainers={};this.currentTimeLine=null;this.currentLevel='year';this.currentMarkers=null;this.baseYear=baseYear;this.baseTime=baseTime;this.currentMonth=0;this.currentYear=0;this.currentDay=0;this.selectedIndex=null;this.dateObj=new Date();this.yearUnit=[];this.navButtons={};this.prevButton=null;this.nextButton=null;this.switchStatus=false;this.markerSelectedEvents=[];this.noMarkerBeforeTimeEvents=[];this.rangeSliderDraggedEvents=[];this.onSwitchCompleteEvents=[];this.prevEvents=[];this.nextEvents=[];this.slider={};this.monthDisabled=false;this.dayDisabled=false;this.type=type;this.offset=offset||0;this.sliderElem=null;this.markerCount=0;while(this.markers[this.markerCount]){this.markerCount++;}
this.levels=['day','month','year'];var currentMonth=month||this.dateObj.getMonth();var currentYear=year||this.dateObj.getFullYear();this.create();}
TimeLineWidgetType.prototype={create:function(callback)
{var main=document.createElement('div');main.id=this.id;this.domElem=main;var elem=document.createElement('div');this.timeLinesElem=elem;main.appendChild(elem);this.createNavigation();this.createSlider();this.setSliderInactive();var self=this;this.addOnSwitchCompleteEvent(function(){self.switchStatus=false;});if(callback){callback.call(this,main);}},createSlider:function()
{var label=document.createElement('div');var labelText=document.createElement('span');var options={offset:this.offset};label.appendChild(labelText);var div=document.createElement('div');div.id=this.id+'-slider';this.sliderElem=div;dfx.attr(div,'title','Drag this to view the version for a specific date and time');dfx.addClass(div,this.className+'-slider');this.domElem.appendChild(div);div.appendChild(label);if(this.type==='point'){dfx.addClass(labelText,this.className+'-slider-label-text');dfx.addClass(label,this.className+'-slider-label');var shovel=document.createElement('div');dfx.addClass(shovel,this.className+'-slider-shovel');div.appendChild(shovel);}else if(this.type==='range'){dfx.addClass(label,this.className+'-slider-label-range');label.id=this.id+'-slider-label-range';var range=document.createElement('div');range.id=this.id+'-slider-range';dfx.addClass(range,this.className+'-slider-range');dfx.setStyle(div,'width','8.5%');var rangeTop=document.createElement('div');dfx.addClass(rangeTop,this.className+'-slider-range-top');var rangeLeft=document.createElement('div');dfx.addClass(rangeLeft,this.className+'-slider-range-left');var rangeMiddle=document.createElement('div');dfx.addClass(rangeMiddle,this.className+'-slider-range-middle');var rangeRight=document.createElement('div');dfx.addClass(rangeRight,this.className+'-slider-range-right');range.appendChild(rangeTop);range.appendChild(rangeLeft);range.appendChild(rangeMiddle);range.appendChild(rangeRight);div.appendChild(range);options.maxLeft=this.offset;}
var labelWidth=parseInt(dfx.getStyle(label,'width'));var self=this;var date=new Date();date.setUTCFullYear(2007,0,0);date.setUTCHours(0,0,0,0);this.slider.date=date;this.slider.labelWidth=labelWidth;this.slider.label=label;this.slider.labelText=labelText;this.slider.elem=div;dfx.hideElement(this.slider.label);dfx.drag(div,options,function(){self.setSliderActive();dfx.showElement(self.slider.label);var containerX=dfx.getElementCoords(self.domElem).x;var containerWidth=dfx.getElementWidth(self.domElem);var sliderWidth=dfx.getElementWidth(div);options.maxRight=(containerX+containerWidth-sliderWidth+3);},function(windowWidth){self.selectMarkerBeforeTime((date.getTime()/1000));var width=dfx.getElementWidth(self.domElem);var pos=dfx.getElementCoords(div).x;var left=(((pos-self.offset)/width)*100);dfx.setStyle(div,'left',left+'%');self.fireRangeSliderDraggedEvents((pos-self.offset));dfx.hideElement(self.slider.label);},function(posX,windowWidth){self.setSliderPosition(posX,true);});},setSliderPosition:function(posX,dragging,callback)
{var label=this.slider.label;var labelText=this.slider.labelText;var labelWidth=this.slider.labelWidth;var windowWidth=0;if(dfx.isEmpty(dfx.getClass(this.className+'-nav'))===false){var navBar=dfx.getClass(this.className+'-nav')[0];windowWidth=dfx.getElementWidth(navBar);}else{windowWidth=dfx.getWindowDimensions().width;}
var self=this;if(dragging!==true){if(this.type==='point'){var percent=((posX/windowWidth)*100)+'%';var parentWidth=dfx.getStyle(this.slider.elem.parentNode,'width');if((parentWidth==='auto')||(parseFloat(parentWidth)===0)){dfx.setStyle(self.slider.elem,'left',percent);}else{dfx.move(this.slider.elem,percent,null,500);}}}
var dateStr='';if(this.type==='point'){var labelPos=posX;if((posX+labelWidth)>windowWidth){dfx.setStyle(labelText,'margin-left','5px');dfx.setStyle(label,'margin-left','-87px');}else{dfx.setStyle(labelText,'margin-left','23px');dfx.setStyle(label,'margin-left','-2px');}
dateStr=this.getPointDateStr(posX,windowWidth);}else if(this.type==='range'){dateStr=this.getRangeDateStr(posX);var width=dfx.getElementWidth(this.domElem);if(dragging!==true){dfx.move(this.slider.elem,(posX+'%'),null,500,function(){callback.call(self);});posX=(posX*width/100);dateStr=this.getRangeDateStr(posX);}
var sliderWidth=dfx.getElementWidth(this.sliderElem);var labelPos=posX;var add=(posX+labelWidth+(sliderWidth/2)+20);var leftMargin=0;if(add>width){leftMargin=(((sliderWidth/2)-8)-labelWidth-12);dfx.setStyle(label,'margin-left',(leftMargin+'px'));}else{leftMargin=(sliderWidth/2)+16;dfx.setStyle(label,'margin-left',(leftMargin+'px'));}}
dfx.setHtml(labelText,dateStr);},getPointDateStr:function(posX,windowWidth)
{var offset=(((((posX+9)/windowWidth)*100)/this.currentUnit)*3600);var time=(parseInt(this.currentOffset+offset)*1000);var date=this.slider.date;date.setTime(time);var day=this.getDayOfMonth(date.getDate(),null,true,true);var month=this.getMonth(date.getMonth(),true);var hours=date.getHours();if(hours<12){if(hours===0){hours=12;}
hours+='am';}else{if(hours!==12){hours-=12;}
hours+='pm';}
return day+' '+month+' '+hours;},getRangeDateStr:function(posX)
{var date=this.posToTime(posX);var sDay=this.getDayOfMonth(date.start.getDate(),null,true,false);var sMonth=this.getMonth(date.start.getMonth(),true);var eDay=this.getDayOfMonth(date.end.getDate(),null,true,false);var eMonth=this.getMonth(date.end.getMonth(),true);return sDay+' '+sMonth+' - '+eDay+' '+eMonth;},setSliderInactive:function()
{var label=dfx.getClass(this.className+'-slider-label',this.domElem);if(label.length>0){dfx.setStyle(label[0],'display','none');}},setSliderActive:function()
{var label=dfx.getClass(this.className+'-slider-label',this.domElem);if(label.length>0){dfx.setStyle(label[0],'display','block');}},createNavigation:function()
{var self=this;var c=this.className+'-nav';var nav=document.createElement('div');dfx.addClass(nav,c);var main=document.createElement('div');dfx.addClass(main,c+'-content');main.id=c+'-content';nav.appendChild(main);var prev=document.createElement('div');prev.id=this.id+'-nav-prev';this.prevButton=prev;dfx.addClass(prev,c+'-prev');main.appendChild(prev);dfx.addEvent(prev,'click',function(){var inf=self.getPrevDateInfo();if(self.canShowDate(null,null,inf.year)===true){if(self.switchStatus===true){return;}
self.switchStatus=true;self.previous();}});var day=document.createElement('div');day.id=this.id+'-nav-day';dfx.addClass(day,c+'-day');dfx.attr(day,'title','Click to view the hours in the day');main.appendChild(day);this.navButtons.day=day;var month=document.createElement('div');month.id=this.id+'-nav-month';dfx.addClass(month,c+'-month');dfx.attr(month,'title','Click to view the days in the month');main.appendChild(month);this.navButtons.month=month;var year=document.createElement('div');year.id=this.id+'-nav-year';dfx.addClass(year,c+'-year');dfx.attr(year,'title','Click to view the months in the year');main.appendChild(year);this.navButtons.year=year;for(var lvl in this.navButtons){this.addZoomOutClickEvent(this.navButtons[lvl],lvl);}
var next=document.createElement('div');next.id=this.id+'-nav-next';this.nextButton=next;dfx.addClass(next,c+'-next');main.appendChild(next);dfx.addEvent(next,'click',function(){var inf=self.getNextDateInfo();if(self.canShowDate(null,null,inf.year)===true){if(self.switchStatus===true){return;}
self.switchStatus=true;self.next();}});this.domElem.appendChild(nav);},addZoomOutClickEvent:function(el,level)
{var self=this;dfx.addEvent(el,'click',function(){self.zoomOut(level);});},setNavigationDate:function(day,month,year)
{var c=this.className+'-nav';var d='Day';if(day>=0){d=this.getDayOfMonth(day,year,true,true);dfx.addClass(this.navButtons.day,c+'-day-on');}else{dfx.removeClass(this.navButtons.day,c+'-day-on');}
dfx.setHtml(this.navButtons.day,d);var m='Month';if(month>=0){m=this.getMonth(month);dfx.addClass(this.navButtons.month,c+'-month-on');}else{dfx.removeClass(this.navButtons.month,c+'-month-on');}
dfx.setHtml(this.navButtons.month,m);var y='Year';if(year>=0){y=this.getYear(year);dfx.addClass(this.navButtons.year,c+'-year-on');}else{dfx.removeClass(this.navButtons.year,c+'-year-on');}
dfx.setHtml(this.navButtons.year,y);},updateNavigationButtons:function()
{var c=this.className+'-nav';var inf=this.getNextDateInfo();if(this.canShowDate(null,null,inf.year)===true){dfx.removeClass(this.nextButton,c+'-next-inactive');}else{dfx.addClass(this.nextButton,c+'-next-inactive');}
inf=this.getPrevDateInfo();if(this.canShowDate(null,null,inf.year)===true){dfx.removeClass(this.prevButton,c+'-prev-inactive');}else{dfx.addClass(this.prevButton,c+'-prev-inactive');}
dfx.attr(this.prevButton,'title','Click to view the previous '+this.currentLevel);dfx.attr(this.nextButton,'title','Click to view the next '+this.currentLevel);},getElement:function()
{return this.domElem;},createTimeLine:function(level,suffix)
{var timeLine=document.createElement('div');timeLine.id=this.id+'-'+level;if(dfx.isset(suffix)===true){timeLine.id+=suffix;}
this.timeLinesElem.appendChild(timeLine);dfx.addClass(timeLine,this.className);return timeLine;},getMonthRegionSize:function(month,year)
{var days=this.getDaysInMonth(year,month);var hours=(365*24);if(this.isLeapYear(year)===true){hours+=24;}
var yearHourUnit=(100/hours);var size=(days*yearHourUnit*24);return size;},addMarkers:function(hourUnit,startDate)
{startDate+=this.timeZoneDiff(startDate);this.dateObj.setTime(startDate*1000);var markersContainer=document.createElement('div');dfx.addClass(markersContainer,this.className+'-markersContainer');for(var version in this.markers){if(this.markers.hasOwnProperty(version)===false){continue;}
var utcDate=this.markers[version].date;var date=utcDate+this.timeZoneDiff(utcDate);if(date<startDate){continue;}
var timeDiff=(date-startDate);var offset=(hourUnit*(timeDiff/3600));if(offset>100){break;}
var markerDiv=document.createElement('div');markersContainer.appendChild(markerDiv);dfx.addClass(markerDiv,this.className+'-timeLine-marker');dfx.addClass(markerDiv,this.className+'-timeLine-marker-'+version);this.dateObj.setTime(utcDate*1000);this.markers[version].marker=markerDiv;this.addMarkerClickEvent(markerDiv,version);dfx.setStyle(markerDiv,'left',offset+'%');markerDiv.title=dfx.date('l F dS Y h:ia',this.dateObj.getTime());}
return markersContainer;},addMarkerClickEvent:function(el,markerIndex)
{var self=this;dfx.addEvent(el,'click',function(){self.selectMarker(markerIndex,true);});},_updateMarkers:function()
{var container=this.currentMarkers;for(var index in this.markers){var c='TimeLineWidgetType-timeLine-marker-'+index;this.markers[index]['marker']=dfx.getClass(c,container)[0];}},selectMarker:function(markerIndex,moveSlider)
{this._selectMarker(markerIndex);this.showDate(this.markers[markerIndex].date);this.selectedIndex=markerIndex;this.fireMarkerSelectedEvents(markerIndex,this.markers[markerIndex].date);if(moveSlider===true){var marker=this.markers[this.selectedIndex].marker;var x=dfx.getElementCoords(marker).x;if(x!==0){this.moveSlider(x);this.setSliderActive();}else{var lim=50;var self=this;var t=setInterval(function(){x=dfx.getElementCoords(marker).x;if(x!==0){clearInterval(t);self.moveSlider(x);self.setSliderActive();}else if(lim--<0){clearInterval(t);}},60);}}},_selectMarker:function(markerIndex)
{if(dfx.isset(this.markers[this.selectedIndex])===true){dfx.removeClass(dfx.getClass('TimeLineWidgetType-timeLine-marker-'+this.selectedIndex,this.domElem),'TimeLineWidgetType-timLine-marker-selected');}
dfx.addClass(dfx.getClass('TimeLineWidgetType-timeLine-marker-'+markerIndex,this.domElem),'TimeLineWidgetType-timLine-marker-selected');},moveSlider:function(position)
{if(position>=2){position-=2;}
this.setSliderPosition(position);},addMarkerSelectedEvent:function(fn)
{this.markerSelectedEvents.push(fn);},fireMarkerSelectedEvents:function(markerIndex)
{var ln=this.markerSelectedEvents.length;for(var i=0;i<ln;i++){this.markerSelectedEvents[i].call(this,markerIndex,this.markers[markerIndex].date);}},addRangeSliderDraggedEvent:function(fn)
{this.rangeSliderDraggedEvents.push(fn);},fireRangeSliderDraggedEvents:function(posX,start,end)
{var s=0;var e=0;if(posX===null){s=start;e=end;}else{var date=this.posToTime(posX);s=(date.start.getTime()/1000);e=(date.end.getTime()/1000);}
var ln=this.rangeSliderDraggedEvents.length;for(var i=0;i<ln;i++){this.rangeSliderDraggedEvents[i].call(this,s,e);}},addPreviousEvent:function(fn)
{this.prevEvents.push(fn);},addNextEvent:function(fn)
{this.nextEvents.push(fn);},createRegionElement:function(width,oddEven)
{var regionDiv=document.createElement('div');dfx.addClass(regionDiv,this.className+'-timeLine-region');dfx.addClass(regionDiv,this.className+'-timeLine-region-'+oddEven);dfx.setStyle(regionDiv,'width',width+'%');return regionDiv;},createRegionLabel:function(label,clickable)
{var div=document.createElement('div');var c=this.className+'-timeLine-region-label';dfx.setHtml(div,label);if(clickable===false){c+='-nc';}
dfx.addClass(div,c);return div;},createYearRegions:function(year)
{var regionContainer=document.createElement('div');dfx.addClass(regionContainer,this.className+'-timeLine-regionContainer');var oddEven='';var offset=0;var self=this;for(var i=0;i<12;i++){var size=this.getMonthRegionSize(i,year);var regionDiv=this.createRegionElement(size,this.oddEven(i));regionContainer.appendChild(regionDiv);var label=null;label=this.createRegionLabel(this.getMonth(i),true);this.addShowMonthEvent(label,year,i);regionDiv.appendChild(label);}
return regionContainer;},addShowMonthEvent:function(elem,year,month)
{var self=this;dfx.addEvent(elem,'click',function(){if(self.monthDisabled===false){self.showMonth(year,month);}else{self.displayMonth(year,month);}});},showYear:function(year)
{if(year<this.baseYear){return;}else if(this.canShowDate(0,0,year)===false){return;}
if(dfx.isset(this.timeLines[year])===false){this.timeLines[year]={};}
var timeLine=null;if(dfx.isset(this.timeLines[year]['year'])===false){timeLine=this.createTimeLine('year',':'+year);this.timeLines[year]['year']=timeLine;timeLine.appendChild(this.createYearRegions(year));}else{timeLine=this.timeLines[year]['year'];}
this.showTimeLine(timeLine);var hours=(365*24);if(this.isLeapYear(year)===true){hours+=24;}
var unit=(100/hours);var offset=this.getYearOffset(year);this.dateObj.setFullYear(year,0,1);this.dateObj.setHours(0,0,0,0);var startDate=(this.dateObj.getTime()/1000);var markerContainer=null;if(this.type==='point'){if(dfx.isset(this.markerContainers[year])===false){this.markerContainers[year]={};}
if(dfx.isset(this.markerContainers[year]['year'])===false){this.markerContainers[year]['year']=null;markerContainer=this.addMarkers(unit,startDate);this.markerContainers[year]['year']=markerContainer;timeLine.appendChild(markerContainer);}else{markerContainer=this.markerContainers[year]['year'];}
this.showMarkers(markerContainer);}
this.currentTimeLine=timeLine;this.currentLevel='year';this.currentMarkers=markerContainer;this.currentYear=year;this.currentUnit=unit;this.currentOffset=startDate;this.currentMonth=null;this.setNavigationDate(-1,-1,year);this.updateNavigationButtons();this._updateMarkers();},getYearOffset:function(year)
{var offset=0;for(var i=year;i>this.baseYear;i--){offset+=(24*365);if(this.isLeapYear(i)===true){offset+=24;}}
return offset;},showMonth:function(year,month)
{if(this.canShowDate(null,month,year)!==true){return;}
if(dfx.isset(this.timeLines[year])===false){this.timeLines[year]={};}
if(dfx.isset(this.timeLines[year]['month'])===false){this.timeLines[year]['month']=[];}
var timeLine=null;if(dfx.isset(this.timeLines[year]['month'][month])===false){timeLine=this.createTimeLine('month','-y:'+year+'-m:'+month);this.timeLines[year]['month'][month]=timeLine;timeLine.appendChild(this.createMonthRegions(year,month));}else{timeLine=this.timeLines[year]['month'][month];}
this.showTimeLine(timeLine);var markerContainer=null;if(dfx.isset(this.markerContainers[year])===false){this.markerContainers[year]={};}
if(dfx.isset(this.markerContainers[year]['month'])===false){this.markerContainers[year]['month']={};this.markerContainers[year]['month']=[];}
var days=this.getDaysInMonth(year,month);var pday=(100/(days*24));var offset=((this.getFirstDayOfMonth(year,month))*24);offset+=this.getYearOffset(year);this.dateObj.setFullYear(year,month,1);this.dateObj.setHours(0,0,0,0);var startDate=(this.dateObj.getTime()/1000);if(dfx.isset(this.markerContainers[year]['month'][month])===false){markerContainer=this.addMarkers(pday,startDate);this.markerContainers[year]['month'][month]=markerContainer;timeLine.appendChild(markerContainer);}else{markerContainer=this.markerContainers[year]['month'][month];}
this.showMarkers(markerContainer);this.currentTimeLine=timeLine;this.currentLevel='month';this.currentMarkers=markerContainer;this.currentMonth=month;this.currentYear=year;this.currentUnit=pday;this.currentOffset=startDate;this.currentDay=null;this.setNavigationDate(-1,month,year);this.updateNavigationButtons();this._updateMarkers();},createMonthRegions:function(year,month)
{var regionContainer=document.createElement('div');dfx.addClass(regionContainer,this.className+'-timeLine-regionContainer');var days=this.getDaysInMonth(year,month);var day=this.getFirstDayOfMonth(year,month);var pday=(100/days);for(var i=0;i<days;i++){var regionDiv=this.createRegionElement(pday,this.oddEven(i));regionContainer.appendChild(regionDiv);var label=null;if(this.dayDisabled===true){label=this.createRegionLabel(this.getDayOfMonth(i,year,true,true),false);}else{label=this.createRegionLabel(this.getDayOfMonth(i,year,true,true),true);this.addShowDayEvent(label,year,day);}
regionDiv.appendChild(label);day++;}
return regionContainer;},addShowDayEvent:function(elem,year,day)
{var self=this;if(this.dayDisabled===false){dfx.addEvent(elem,'click',function(){self.showDay(year,day);});}},showDay:function(year,day)
{if(this.canShowDate(day,null,year)!==true){return;}
if(dfx.isset(this.timeLines[year])===false){this.timeLines[year]={};}
if(dfx.isset(this.timeLines[year]['day'])===false){this.timeLines[year]['day']=[];}
var timeLine=null;if(dfx.isset(this.timeLines[year]['day'][day])===false){timeLine=this.createTimeLine('day');this.timeLines[year]['day'][day]=timeLine;timeLine.appendChild(this.createDayRegions());}else{timeLine=this.timeLines[year]['day'][day];}
this.showTimeLine(timeLine);var markerContainer=null;if(dfx.isset(this.markerContainers[year])===false){this.markerContainers[year]={};}
if(dfx.isset(this.markerContainers[year]['day'])===false){this.markerContainers[year]['day']={};this.markerContainers[year]['day']=[];}
var unit=(100/24);var offset=(24*day);offset+=this.getYearOffset(year);this.dateObj.setFullYear(year,this.getMonthOfDay(year,day),this.getDayOfMonth(day,year,true));this.dateObj.setHours(0,0,0,0);var startDate=(this.dateObj.getTime()/1000);if(dfx.isset(this.markerContainers[year]['day'][day])===false){markerContainer=this.addMarkers(unit,startDate);this.markerContainers[year]['day'][day]=markerContainer;timeLine.appendChild(markerContainer);}else{markerContainer=this.markerContainers[year]['day'][day];}
this.showMarkers(markerContainer);var month=this.getMonthOfDay(year,day);this.currentTimeLine=timeLine;this.currentLevel='day';this.currentMarkers=markerContainer;this.currentYear=year;this.currentDay=day;this.currentMonth=month;this.currentUnit=unit;this.currentOffset=startDate;this.setNavigationDate(day,month,year);this.updateNavigationButtons();this._updateMarkers();},createDayRegions:function()
{var regionContainer=document.createElement('div');dfx.addClass(regionContainer,this.className+'-timeLine-regionContainer');var hourSize=(100/24);for(var i=0;i<24;i++){var hour=i;var regionDiv=this.createRegionElement(hourSize,this.oddEven(i));regionContainer.appendChild(regionDiv);var suffix='am';if(i>=12){suffix='pm';if(i>12){hour=(i-12);}}else if(i===0){hour=12;}
hour=hour+suffix;var label=this.createRegionLabel(hour,false);regionDiv.appendChild(label);}
return regionContainer;},addOnSwitchCompleteEvent:function(callback)
{this.onSwitchCompleteEvents.push(callback);},fireOnSwitchCompleteEvents:function()
{var ln=this.onSwitchCompleteEvents.length;for(var i=0;i<ln;i++){this.onSwitchCompleteEvents[i].call(this);}},showTimeLine:function(timeLineElem)
{var self=this;if(dfx.isset(this.currentTimeLine)===true){dfx.fadeOut(this.currentTimeLine,300,function(){dfx.fadeIn(timeLineElem,300,function(){dfx.setStyle(timeLineElem,'display','block');self.fireOnSwitchCompleteEvents();});});}else{dfx.fadeIn(timeLineElem,300,function(){dfx.setStyle(timeLineElem,'display','block');self.fireOnSwitchCompleteEvents();});}},showMarkers:function(markerContainer)
{var self=this;if(this.currentMarkers){dfx.fadeOut(this.currentMarkers,300,function(){dfx.fadeIn(markerContainer,300,function(){self._showMarkers(markerContainer);});});}else{this._showMarkers(markerContainer);}},_showMarkers:function(markerContainer)
{this._selectMarker(this.selectedIndex);var marker=dfx.getClass(this.className+'-timeLine-marker-'+this.selectedIndex,markerContainer);if(marker.length>0){var elem=marker[0];this.setSliderActive(true);this.moveSlider(dfx.getElementCoords(elem).x);}else{this.moveSlider(0);this.setSliderInactive(true);}},showDate:function(date,callback)
{if(dfx.isFn(callback)===false){callback=function(){};}
var date=new Date(date*1000);var year=date.getFullYear();var month=date.getMonth();switch(this.currentLevel){case'day':var day=this.getFirstDayOfMonth(year,month)+(date.getDate()-1);if(this.currentYear!==year||this.currentDay!==day){this.showDay(year,day,callback);}else{callback.call(this);}
break;case'month':if(this.currentYear!==year||this.currentMonth!==month){this.showMonth(year,month,callback);}else{callback.call(this);}
break;case'year':if(this.currentYear!==year){this.showYear(year,callback);}else{callback.call(this);}
break;default:break;}},selectMarkerBeforeTime:function(time)
{var sIndex=null;for(var index in this.markers){if(this.markers[index].date<=time){sIndex=index;}else{break;}}
if(sIndex!==null){this.selectMarker(sIndex);}else{this.fireNoMarkerBeforeTimeEvents();}},fireNoMarkerBeforeTimeEvents:function()
{var ln=this.noMarkerBeforeTimeEvents.length;for(var i=0;i<ln;i++){this.noMarkerBeforeTimeEvents[i].call(this);}},addNoMarkerBeforeTimeEvent:function(fn)
{this.noMarkerBeforeTimeEvents.push(fn);},zoomOut:function(level)
{var idx=-1;if(dfx.isset(level)===true){idx=this.levels.find(level);if(idx<=this.levels.find(this.currentLevel)){this.currentLevel=this.levels[idx];this.showDate(this.markers[this.selectedIndex].date);return;}}else{idx=this.levels.find(this.currentLevel)+1;}
if(idx>=0&&idx<this.levels.length){switch(this.levels[idx]){case'year':this.showYear(this.currentYear);break;case'month':this.showMonth(this.currentYear,this.currentMonth);break;default:break;}}},canShowDate:function(day,month,year)
{if(year<this.baseYear){return false;}else{if(this.type!=='range'){if(this.markerCount===0&&year>this.baseYear){return false;}
if(dfx.isset(this.markers[(this.markerCount-1)])===false){return true;}
var date=(new Date(this.markers[(this.markerCount-1)].date*1000));if(year>date.getFullYear()){return false;}}else{var date=new Date();if(year>date.getFullYear()){return false;}}}
return true;},next:function()
{var date=new Date();date.setFullYear(this.currentYear+1,0,1);date.setHours(0,0,0,0);var info=this.getNextDateInfo();switch(this.currentLevel){case'year':this.showYear(info.year);break;case'month':this.showMonth(info.year,info.month);break;case'day':this.showDay(info.year,info.day);break;default:break;}
var ln=this.nextEvents.length;if(ln>0){for(var i=0;i<ln;i++){this.nextEvents[i].call(this,date.getFullYear());}}},getNextDateInfo:function()
{var info={};level=this.currentLevel;var year,month,day=0;switch(level){case'year':year=this.currentYear+1;day=0;month=0;break;case'month':year=this.currentYear;month=this.currentMonth+1;if(month>=12){month=0;year++;}
break;case'day':year=this.currentYear;day=this.currentDay+1;if(day>364){if((day===365&&this.isLeapYear(year)===true)===false){day=0;month=0;year++;}}
break;default:break;}
info.year=year;info.month=month;info.day=day;return info;},getPrevDateInfo:function()
{var info={};level=this.currentLevel;var year,month,day=0;switch(this.currentLevel){case'year':year=(this.currentYear-1);day=0;month=0;break;case'month':var year=this.currentYear;var month=(this.currentMonth-1);if(month<0){month=11;year--;}
break;case'day':var day=(this.currentDay-1);var year=this.currentYear;if(day<0){year--;day=364;if(this.isLeapYear(year)===true){day++;}}
break;default:break;}
info.year=year;info.month=month;info.day=day;return info;},previous:function()
{var date=new Date();date.setFullYear((this.currentYear-1),0,1);date.setHours(0,0,0,0);var info=this.getPrevDateInfo();switch(this.currentLevel){case'year':this.showYear(info.year);break;case'month':this.showMonth(info.year,info.month);break;case'day':this.showDay(info.year,info.day);break;default:break;}
if(date.getFullYear()<this.baseYear){return;}
var ln=this.prevEvents.length;if(ln>0){for(var i=0;i<ln;i++){this.nextEvents[i].call(this,date.getFullYear());}}},oddEven:function(i)
{if((i%2)===0){return'even';}else{return'odd';}},getDaysInMonth:function(year,month)
{var days=0;if(month===1){if(this.isLeapYear(year)===true){days=29;}else{days=28;}}else if((month%2)===0){if(month<8){days=31;}else{days=30;}}else{if(month>6){days=31;}else{days=30;}}
return days;},getFirstDayOfMonth:function(year,month)
{var firstDay=0;for(var i=0;i<=(month-1);i++){firstDay+=this.getDaysInMonth(year,i);}
return firstDay;},getMonthOfDay:function(year,day)
{var days=0;for(var i=0;i<12;i++){var daysInMonth=this.getDaysInMonth(year,i);if(day>=days&&day<(days+daysInMonth)){return i;}
days+=daysInMonth;}},isLeapYear:function(year)
{if((year%4===0)&&((year%100)!==0)||((year%400)===0)){return true;}
return false;},getDayOfMonth:function(day,year,shortT,incSuffix)
{if(dfx.isset(year)===true){var month=this.getMonthOfDay(year,day);var firstDay=this.getFirstDayOfMonth(year,month);day=(day-firstDay+1);}
var d=day;if(shortT!==true&&day<10){d='0'+d;}
if(incSuffix===true){var suffix=this.getOrdinalSuffix(day);d=d+suffix;}
return d;},getOrdinalSuffix:function(number)
{var suffix='th';if(number<4||number>20){switch((number%10)){case 1:suffix='st';break;case 2:suffix='nd';break;case 3:suffix='rd';break;default:suffix='th';break;}}
return suffix;},addNumberPadding:function(number)
{if(number<10){number='0'+number;}
return number;},getMonth:function(month,shortT)
{var months=[];if(shortT===true){months=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];}else{months=['January','February','March','April','May','June','July','August','September','October','November','December'];}
return months[month];},getYear:function(year,shortT)
{if(shortT===true){}
return year;},getHours:function(hours,suffixOnly)
{var suffix='am';if(hours>=12){suffix='pm';}
if(suffixOnly===true){return suffix;}
if(hours>12){hours-=12;}
if(hours===0){hours=12;}
return hours+suffix;},getDayString:function(dayOfWeek)
{var days=['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];return days[dayOfWeek];},timeZoneDiff:function(time)
{this.dateObj.setTime(time*1000);var diff=(this.dateObj.getTimezoneOffset()/60);return diff;},disableMonth:function()
{this.monthDisabled=true;dfx.setStyle(this.navButtons.month,'display','none');var c=this.className+'-nav-content';var content=dfx.getId(c);var width=parseInt(dfx.getStyle(content,'width'));var newWidth=(width-127);dfx.setStyle(content,'width',newWidth);},disableDay:function()
{this.dayDisabled=true;dfx.setStyle(this.navButtons.day,'display','none');var c=this.className+'-nav-content';var content=dfx.getId(c);var width=parseInt(dfx.getStyle(content,'width'));var newWidth=(width-71);dfx.setStyle(content,'width',newWidth);},timeToPos:function(timestamp)
{var unit=(((timestamp/1000)-this.currentOffset)/3600);var posX=(unit*this.currentUnit);return posX;},posToTime:function(posX)
{var result={};var width=dfx.getElementWidth(this.domElem);var offset=(((((posX+2)/width)*100)/this.currentUnit)*3600);var time=(parseInt((this.currentOffset+offset))*1000);var startDate=new Date();startDate.setTime(time);startDate.setUTCHours(0,0,0,0);var div=this.sliderElem;var sliderWidth=parseFloat(dfx.getStyle(div,'width'))/parseFloat(dfx.getStyle(div.parentNode,'width'))*100.0;var days=(Math.round(sliderWidth/(24*this.currentUnit))-1);var endDate=new Date();endDate.setTime(time);endDate.setDate((endDate.getDate()+days));endDate.setUTCHours(0,0,0,0);result.start=startDate;result.end=endDate;return result;},displayMonth:function(year,month)
{var date=new Date();date.setUTCFullYear(year,month,1);date.setUTCHours(0,0,0,0);var start=(date.getTime()/1000);var days=this.getDaysInMonth(year,month);date.setUTCFullYear(year,month,days);date.setUTCHours(0,0,0,0);var end=(date.getTime()/1000);var div=this.sliderElem;var width=(days*24*this.currentUnit);dfx.setStyle(div,'width',width+'%');date.setFullYear(year,month,1);date.setHours(0,0,0,0);var posX=this.timeToPos(date.getTime());var self=this;this.setSliderPosition(posX,false,function(){self.fireRangeSliderDraggedEvents(null,start,end);});}};dfx.inherits('TimeLine','Widget');function ToggleButtonWidgetType(id,readOnly,type,on,buttonOnName,buttonOffName,buttonSize,groupid,toggleDisabled,defaultValue)
{Widget.call(this,id);this.widgetType='ToggleButton';this.readOnly=readOnly||false;this.domElem=null;this.type=type||'image';this.buttonOnName=buttonOnName||'On';this.buttonOffName=buttonOffName||'Off';this.buttonSize=buttonSize||null;this.buttonWidget=null;this.toggleOnTitle='Click to toggle on';this.toggleOffTitle='Click to toggle off';this.groupid=groupid||null;this.single='';this.toggleDisabled=toggleDisabled;if(this.groupid!==null){this.single='-single';}
this.toggleEvents=[];this.toggleOnEvents=[];this.toggleOffEvents=[];if(this.type==='image'){if(dfx.isset(dfx.getId(this.id))===true){this.domElem=dfx.getId(this.id);this.addEvents();}}else if(this.type==='button'){var btnid=this.id+'-button';if(dfx.isset(dfx.getId(btnid))===true){this.domElem=dfx.getId(btnid);this.addEvents();}}else if(this.type==='slider'){var sliderid=this.id+'-slider';if(dfx.isset(dfx.getId(sliderid))===true){this.domElem=dfx.getId(sliderid);}
if(this.domElem){this._addEvents();}}
if(defaultValue===1){defaultValue=true;}else{defaultValue=false;}
if(on!==null){if(on===1||on===true){on=true;}else{on=false;}}
this.setDefaultValue(defaultValue);this.setLocalInstanceDefaultValue(null);this.setValue(on);}
ToggleButtonWidgetType.prototype={create:function(callback)
{var self=this;if(this.type==='image'){this._createImageToggle(callback);self._addEvents();}else if(this.type==='button'){this._createButtonToggle(function(el){self._addEvents();callback.call(self,el);});}else if(this.type==='slider'){this._createSliderToggele(function(el){self._addEvents();callback.call(self,el);});}},_createImageToggle:function(callback)
{var div=document.createElement('div');this.domElem=div;div.id=this.id;dfx.addClass(div,(this.getClass()+'-image'));if(this.isOn()===true){this.toggleOn();}else{this.toggleOff(true);}
callback.call(this,div);},setReadOnly:function(readOnly)
{AbstractWidgetWidgetType.prototype.setReadOnly.call(this,readOnly);if(this.domElem){if(this.type==='image'){}else if(this.type==='button'){}else if(this.type==='slider'){if(this.readOnly){dfx.addClass(dfx.getId(this.id+'-glow'),'disabled');dfx.addClass(dfx.getId(this.id+'-slider'),this.widgetType+'WidgetType-slider-disabled');}else{dfx.removeClass(dfx.getId(this.id+'-glow'),'disabled');dfx.removeClass(dfx.getId(this.id+'-slider'),this.widgetType+'WidgetType-slider-disabled');}}}},_createSliderToggele:function(callback)
{var c=(this.getClass()+'-slider');var main=document.createElement('div');main.id=(this.id+'-slider');dfx.addClass(main,c);var content='<div class="'+c+'-Padding">';var glowClass=(c+'-Glow');if(this.isOn()===false){glowClass+=' '+c+'-Glow-off';}
if(this.readOnly||this.disabled===true){glowClass+=' disabled';}
content+='<div id="'+this.id+'-glow" class="'+glowClass+'">&nbsp;</div>';content+='<div class="'+c+'-Left">&nbsp;</div>';content+='<div class="'+c+'-Middle">';var leftSelectClass=c+'-Left-Select';if(this.buttonOnName.length===3){leftSelectClass+=' '+c+'-Left-Select-Long';}
if(this.isOn()===true){leftSelectClass+=' selected';}
content+='<div class="'+leftSelectClass+'">'+this.buttonOnName+'</div>';var rightSelectClass=c+'-Right-Select';if(this.buttonOffName.length===3){rightSelectClass+=' '+c+'-Right-Select-Long';}
if(this.isOn()!==true){rightSelectClass+=' selected';}
content+='<div class="'+rightSelectClass+'">'+this.buttonOffName+'</div>';content+='</div>';content+='<div class="'+c+'-Right">&nbsp;</div>';content+='</div>';dfx.setHtml(main,content);var rod=document.createElement('div');rod.id=this.id+'-readOnly';dfx.addClass(rod,this.getClass()+'-slider-readOnly');if(this.isOn()!==true){dfx.setHtml(rod,this.buttonOffName);}else{dfx.setHtml(rod,this.buttonOnName);}
dfx.hideElement(rod);main.appendChild(rod);this.domElem=main;if(this.isOn()!==true){var glowMask=dfx.getClass((c+'-Glow'),main)[0];dfx.setStyle(glowMask,'left',50);}
callback.call(this,main);},_addEvents:function()
{var self=this;if(this.type==='image'){if(this.groupid!==null){dfx.addClass(this.domElem,('ToggleButton-group-'+this.groupid));}
dfx.addEvent(this.domElem,'click',function(){if(self.on===true){self.toggleOff();}else{self.toggleOn();}});}else if(this.type==='button'){var buttonWidget=WidgetStore.get((this.id+'-button'));this.buttonWidget=buttonWidget;buttonWidget.setClassPrefix((this.getClass()+'-button'+this.single));if(this.isOn()!==true){dfx.addClass(this.domElem,('ToggleButtonWidgetType-button'+this.single+'-off'));}else{dfx.addClass(this.domElem,('ToggleButtonWidgetType-button'+this.single+'-on'));}
if(this.groupid!==null){dfx.addClass(buttonWidget.domElem,('ToggleButton-group-'+this.groupid));}
if(dfx.isset(self.buttonSize)===true){buttonWidget.setMinWidth(self.buttonSize);}
if(this.isOn()===true){buttonWidget.setName(this.buttonOnName);this.toggleOn();}else{buttonWidget.setName(this.buttonOffName);this.toggleOff();}
if(dfx.isset(buttonWidget)===true){buttonWidget.addClickEvent(function(){self.toggle();});}}else if(this.type==='slider'){dfx.addEvent(this.domElem,'click',function(e){if(self.toggleDisabled===true||self.readOnly){return;}
var myself=self;if(self.on===false){self.toggleSlideOn(null);}else if(self.on===true){self.toggleSlideOff(null);}});}},toggleSlideOn:function(cb,force,fireEvents,noAnim)
{var sec=300;if(noAnim===true){sec=0;}
var self=this;var glowMask=dfx.getClass((this.getClass()+'-slider-Glow'),this.domElem)[0];dfx.animate(glowMask,{left:6},sec,function(){self.on=true;if(fireEvents!==false){self.fireToggleEvents(true);self.fireToggleOnEvents(true);}
var left=dfx.getClass((self.getClass()+'-slider-Left-Select'),self.domElem)[0];dfx.addClass(left,'selected');var right=dfx.getClass((self.getClass()+'-slider-Right-Select'),self.domElem)[0];dfx.removeClass(right,'selected');if(dfx.isset(cb)===true){cb.call(self);}});},toggleSlideOff:function(cb,force,fireEvents,noAnim)
{var sec=300;if(noAnim===true){sec=0;}
var self=this;var glowMask=dfx.getClass((this.getClass()+'-slider-Glow'),this.domElem)[0];dfx.animate(glowMask,{left:50},sec,function(){self.on=false;if(fireEvents!==false){self.fireToggleEvents(false);self.fireToggleOffEvents(false);}
var left=dfx.getClass((self.getClass()+'-slider-Left-Select'),self.domElem)[0];dfx.removeClass(left,'selected');var right=dfx.getClass((self.getClass()+'-slider-Right-Select'),self.domElem)[0];dfx.addClass(right,'selected');if(dfx.isset(cb)===true){cb.call(self);}});},_createButtonToggle:function(callback)
{var self=this;this.includeWidget('Button',function(){var button=self.createWidget((self.id+'-button'),'Button','ButtonWidgetType-white');self.buttonWidget=button;if(dfx.isset(self.buttonSize)===true){button.setMinWidth(self.buttonSize);}
if(self.on===true){button.setName(self.buttonOnName);}else{button.setName(self.buttonOffName);}
button.create(function(el){self.domElem=el;callback.call(self,el);});});},toggleOff:function(force)
{if(force!==true&&this.groupid!==null){return;}
if(force!==true&&this.isOn()===false){return;}
dfx.addClass(this.domElem,(this.getClass()+'-'+this.type+this.single+'-off'));dfx.removeClass(this.domElem,(this.getClass()+'-'+this.type+this.single+'-on'));this.domElem.setAttribute('title',this.toggleOnTitle);this.fireToggleEvents(false);this.fireToggleOffEvents(false);if(this.type==='button'){this.buttonWidget.setName(this.buttonOffName);}},toggleOn:function(force)
{if(force!==true&&this.isOn()===true){return;}
dfx.addClass(this.domElem,(this.getClass()+'-'+this.type+this.single+'-on'));dfx.removeClass(this.domElem,(this.getClass()+'-'+this.type+this.single+'-off'));this.domElem.setAttribute('title',this.toggleOffTitle);this.fireToggleEvents(true);this.fireToggleOnEvents(false);if(this.type==='button'){this.buttonWidget.setName(this.buttonOnName);}
if(this.groupid!==null){var elems=dfx.getClass('ToggleButton-group-'+this.groupid);var elen=elems.length;for(var i=0;i<elen;i++){var elemid=elems[i].id;var widget=null;if(elemid.lastIndexOf('-button')===(elemid.length-7)){elemid=elemid.substring(0,(elemid.length-7));}
widget=WidgetStore.get(elemid);if(this.id!==elemid){if(dfx.isset(widget)===true&&dfx.isFn(widget.toggleOff)===true){widget.toggleOff(true);}}}}},toggle:function()
{if(this.isOn()===true){this.toggleOff();}else{this.toggleOn();}},setToggleOffTitle:function(title)
{this.toggleOffTitle=title;if(this.isOn()===true&&dfx.isset(this.domElem)===true){this.domElem.setAttribute('title',title);}},setToggleOnTitle:function(title)
{this.toggleOnTitle=title;if(this.isOn()===false&&dfx.isset(this.domElem)===true){this.domElem.setAttribute('title',title);}},addToggleEvent:function(fn)
{this.toggleEvents.push(fn);},addToggleOnEvent:function(fn)
{this.toggleOnEvents.push(fn);},addToggleOffEvent:function(fn)
{this.toggleOffEvents.push(fn);},fireToggleEvents:function(t)
{var tlen=this.toggleEvents.length;for(var i=0;i<tlen;i++){this.toggleEvents[i].call(this,t);}},fireToggleOnEvents:function(t)
{var tlen=this.toggleOnEvents.length;for(var i=0;i<tlen;i++){this.toggleOnEvents[i].call(this,t);}},fireToggleOffEvents:function(t)
{var tlen=this.toggleOffEvents.length;for(var i=0;i<tlen;i++){this.toggleOffEvents[i].call(this,t);}},isOn:function()
{return(this.getValue()===true);},hide:function()
{dfx.setStyle(this.domElem,'display','none');},show:function()
{dfx.setStyle(this.domElem,'display','block');},setLocalInstanceDefaultValue:function(localInstanceDefaultValue)
{this.localInstanceDefaultValue=localInstanceDefaultValue;},getLocalInstanceDefaultValue:function()
{return this.localInstanceDefaultValue;},getLocalInstanceDefaultNotSetValue:function()
{return null;},setDefaultValue:function(defaultValue)
{this.defaultValue=defaultValue;},getDefaultValue:function()
{return this.defaultValue;},getDefaultNotSetValue:function()
{return null;},getValueNotSetValue:function()
{return null;},getValue:function()
{if(this.on===this.getValueNotSetValue()){var localInstanceDefaultValue=this.getLocalInstanceDefaultValue();if(localInstanceDefaultValue!==this.getLocalInstanceDefaultNotSetValue()){return localInstanceDefaultValue;}else{var defaultValue=this.getDefaultValue();if(defaultValue!==this.getDefaultNotSetValue()){return defaultValue;}else{return false;}}}else{return this.on;}},setValue:function(status,cb)
{if(typeof status==='string'){if(status.toLowerCase()==='true'){status=true;}else{status=false;}}
var valueNotSetValue=this.getValueNotSetValue()
if(status===valueNotSetValue){var value=valueNotSetValue;status=false;var localInstanceDefaultValue=this.getLocalInstanceDefaultValue();if(localInstanceDefaultValue!==this.getLocalInstanceDefaultNotSetValue()){status=localInstanceDefaultValue;}else{var defaultValue=this.getDefaultValue();if(defaultValue!==this.getDefaultNotSetValue()){status=defaultValue;}}}else{var value=status;}
if(this.domElem){var self=this;if(status===true){this.toggleOn();if(this.type==='slider'){this.toggleSlideOn(function(){if(cb){self.on=status;cb.call(self,status);}},true);}}else{this.toggleOff(true);if(this.type==='slider'){this.toggleSlideOff(function(){if(cb){self.on=status;cb.call(self,status);}},true);}}
this.on=status;}else{this.on=status;if(cb){cb.call(this,status);}}},disable:function()
{if(this.type==='image'){}else if(this.type==='button'){}else if(this.type==='slider'){dfx.addClass(dfx.getId(this.id+'-glow'),'disabled');}
this.toggleDisabled=true;},enable:function()
{if(this.type==='image'){}else if(this.type==='button'){}else if(this.type==='slider'){dfx.removeClass(dfx.getId(this.id+'-glow'),'disabled');}
this.toggleDisabled=false;}};dfx.inherits('ToggleButton','Widget');function ToggleDivWidgetType(id,parentid,openWhenTrue)
{Widget.call(this,id);this.parentid=parentid;this.domElem=dfx.getId(this.id);this.openWhenTrue=openWhenTrue;if(dfx.isset(this.openWhenTrue)===false){this.openWhenTrue=true;}
if(this.domElem){this.init();}}
ToggleDivWidgetType.prototype={init:function()
{var parentid=this.parentid;var max=50;var elem=this.domElem;var openWhenTrue=this.openWhenTrue;var t=setInterval(function(){var widget=WidgetStore.get(parentid);if(dfx.isset(widget)===true){clearInterval(t);if(dfx.isFn(widget.addToggleEvent)===false){return;}
widget.addToggleEvent(function(status){if(status===openWhenTrue){dfx.blindDown(elem,'fast');}else{dfx.blindUp(elem,'fast');}});}else if(max--<0){clearInterval(t);}},200);}};dfx.inherits('ToggleDiv','Widget');function TreeWidgetType(id)
{Widget.call(this,id);this.widgetType='Tree';this.rootNode=null;this.nodes={};this.treeElement=null;this.rootHidden=false;this.nodeDblclickEvents=[];this.nodeControlClickedEvents=[];this.itemHoverEvents=[];}
TreeWidgetType.prototype={getClass:function()
{return this.widgetType+'WidgetType';},create:function(callback)
{var ul=document.createElement('ul');ul.id=this.id;this.treeElement=ul;dfx.addClass(ul,this.getClass());dfx.addClass(ul,this.getClass()+'-node');if(this.rootNode!==null){this._addNodeElement(this.rootNode,null,ul,'last',true);}
if(dfx.isFn(callback)===true){callback.call(this,ul);}},clearTree:function(incEvents)
{dfx.remove(this.treeElement);this.rootNode=null;this.nodes={};this.treeElement=null;if(incEvents===true){this.nodeDblclickEvents=[];}},_addNodeElement:function(nodeid,parentid,parentElement,nodePos,expanded)
{var node=this.nodes[nodeid];if(dfx.isset(node)===false){return;}
var parent=this.nodes[parentid];var childCount=node.children.length;var hasKids=false;var parentLineStack=[];if(parentid!==null){parentLineStack=this.nodes[parentid].lineStack;}
if(childCount>0||node.hasKids===true){hasKids=true;}
var nodeElement=this._createNode(nodeid,node.content,nodePos,hasKids,expanded,parentLineStack,node.iconUrl);this.addNodeElement(nodeid,nodeElement);if(dfx.isset(parentElement.childNodes[1])===true){parentElement=parentElement.childNodes[1];}
parentElement.appendChild(nodeElement);var chLineStack=parentLineStack.concat([]);if(nodePos==='last'){chLineStack.push(0);}else{chLineStack.push(1);}
node.lineStack=chLineStack;this._addChildElements(nodeid,nodeElement);},_addChildElements:function(nodeid,nodeElement)
{var node=this.nodes[nodeid];var childCount=node.children.length;var nodePos='mid';if(nodeid===this.rootNode&&this.rootHidden===true){nodePos='first';}
for(var i=0;i<childCount;i++){if(i===(childCount-1)){nodePos='last';}
this._addNodeElement(node.children[i],nodeid,nodeElement,nodePos,false);nodePos='mid';}},addNodeElement:function(nodeid,nodeElement)
{this.nodes[nodeid].elements.push(nodeElement);},getParentElements:function(childNodeid,parentid)
{var paerntElements=[];var childNode=this.getNode(childNodeid);if(childNode){var parents=childNode.parents;var pCount=parents.length;for(var i=0;i<pCount;i++){if(parents[i]===parentid){paerntElements=paerntElements.concat(this.getNode(parents[i]).elements);break;}}}
return paerntElements;},getNode:function(nodeid)
{return this.nodes[nodeid];},addNode:function(nodeid,content,parentNodes,hasKids,iconUrl)
{if(nodeid in this.nodes){return;}
this.nodes[nodeid]={elements:[],children:[],parents:[],content:content,lineStack:[],hasKids:hasKids,iconUrl:iconUrl};if(this.rootNode===null){this.rootNode=nodeid;}else{if((parentNodes instanceof Array)===false){parentNodes=[parentNodes];}
var len=parentNodes.length;for(var i=0;i<len;i++){var parentNode=parentNodes[i];if(parentNode===null||typeof parentNode==='undefined'){parentNode=this.rootNode;}
if((parentNode in this.nodes)===false){return;}else{this.linkNodes(parentNode,nodeid);}}}},removeNode:function(nodeid)
{var parents=this.nodes[nodeid].parents;var plen=parents.length;for(var i=0;i<plen;i++){this.removeChild(parents[i],nodeid);}
dfx.remove(this.nodes[nodeid].elements);var children=this.nodes[nodeid].children;var clen=children.length;for(var i=0;i<clen;i++){if(this.nodes[children[i]].parents.length===1){this.removeNode(children[i]);}}},removeChild:function(parentid,childid)
{var children=this.getNode(parentid).children;var clen=children.length;for(var i=0;i<clen;i++){if(children[i]===childid){children.splice(i,1);break;}}},linkNodes:function(parentNodeid,childNodeid)
{var parentNode=this.getNode(parentNodeid);parentNode.children.push(childNodeid);this.getNode(childNodeid).parents.push(parentNodeid);},_createNode:function(nodeid,content,nodePos,hasKids,expanded,lineStack,iconUrl)
{var li=document.createElement('li');li.setAttribute('id',this.id+'-node:'+nodeid);dfx.addClass(li,this.getClass()+'-node');var div=document.createElement('div');dfx.addClass(div,this.getClass()+'-node-elem');var lvlSpacers=document.createElement('span');dfx.addClass(lvlSpacers,this.getClass()+'-lvl-spacers');div.appendChild(lvlSpacers);var stackLen=lineStack.length;for(var i=0;i<stackLen;i++){var lvlSpcrCont=document.createElement('img');lvlSpcrCont.src=Widget.WEB_URL+'Systems/TreeWidget/spacer.gif';if(lineStack[i]===0){dfx.addClass(lvlSpcrCont,this.getClass()+'-lvl-spacer');}else{dfx.addClass(lvlSpcrCont,this.getClass()+'-vline');}
lvlSpacers.appendChild(lvlSpcrCont);}
var imgClassName=this.getClass()+'-node-img-'+nodePos;var altImgClassName=imgClassName;if(hasKids===true){if(expanded===true){imgClassName+='-exp';altImgClassName+='-col';}else{imgClassName+='-col';altImgClassName+='-exp';}}
var nodeImgCont=document.createElement('img');nodeImgCont.src=Widget.WEB_URL+'Systems/TreeWidget/spacer.gif';dfx.addClass(nodeImgCont,this.getClass()+'-node-img');dfx.addClass(nodeImgCont,imgClassName);div.appendChild(nodeImgCont);var nodeIconContW=document.createElement('div');var nodeIconCont=document.createElement('img');nodeIconContW.appendChild(nodeIconCont);nodeIconCont.src=Widget.WEB_URL+'Systems/TreeWidget/spacer.gif';dfx.addClass(nodeIconCont,this.getClass()+'-icon');if(dfx.isset(iconUrl)===true){dfx.setStyle(nodeIconCont,'background-image','url('+iconUrl+')');}
if(hasKids===true&&expanded===true){dfx.addClass(nodeIconContW,this.getClass()+'-icon-wrapper');}else{dfx.addClass(nodeIconContW,this.getClass()+'-icon-wrapper-noKids');}
div.appendChild(nodeIconContW);var nodeContentCont=document.createElement('div');dfx.addClass(nodeContentCont,this.getClass()+'-node-content');div.appendChild(nodeContentCont);if(typeof content!=='string'){nodeContentCont.appendChild(content);}else{dfx.setHtml(nodeContentCont,content);}
li.appendChild(div);var ul=document.createElement('ul');dfx.addClass(ul,this.getClass()+'-node');li.appendChild(ul);var self=this;if(expanded!==true){dfx.setStyle(ul,'display','none');}
dfx.addEvent(nodeImgCont,'click',function(){if(hasKids===true){dfx.toggleClass(nodeImgCont,imgClassName);dfx.toggleClass(nodeImgCont,altImgClassName);var expanding=false;if(dfx.hasClass(nodeImgCont,altImgClassName)===true){expanding=true;}
if(expanding===true){dfx.addClass(nodeIconContW,self.getClass()+'-icon-wrapper');}else{dfx.removeClass(nodeIconContW,self.getClass()+'-icon-wrapper');}
dfx.blindToggle(ul,1,function(){self.fireNodeControlClicked(nodeid,li,expanding);});}});var hoverClass=this.getClass()+'-node-hover';dfx.hover(div,function(){self.fireItemHoverEvents(nodeid,li,true);dfx.addClass(div,hoverClass);},function(){self.fireItemHoverEvents(nodeid,li,false);dfx.removeClass(div,hoverClass);});dfx.addEvent(div,'dblclick',function(){self.fireNodeDblClickEvents(nodeid);});return li;},addNodeDblClickEvent:function(callback)
{this.nodeDblclickEvents.push(callback);},fireNodeControlClicked:function(nodeid,li,expanding)
{var ln=this.nodeControlClickedEvents.length;for(var i=0;i<ln;i++){this.nodeControlClickedEvents[i].call(this,nodeid,li,expanding);}},addNodeControlClickedEvent:function(callback)
{this.nodeControlClickedEvents.push(callback);},fireNodeDblClickEvents:function(nodeid)
{var ln=this.nodeDblclickEvents.length;for(var i=0;i<ln;i++){this.nodeDblclickEvents[i].call(this,nodeid);}},addItemHoverEvent:function(fn)
{this.itemHoverEvents.push(fn);},fireItemHoverEvents:function(nodeid,li,on)
{var ln=this.itemHoverEvents.length;for(var i=0;i<ln;i++){this.itemHoverEvents[i].call(this,nodeid,li,on);}}};dfx.inherits('Tree','Widget');function WYSIWYGWidgetType(id)
{Widget.call(this,id);this.viper=WidgetStore.get('viper');this.plugins=('ViperToolbarPlugin|ViperSubToolbarPlugin|ViperCopyPastePlugin|ViperCoreStylesPlugin|ViperFormatPlugin|ViperImagePlugin|ViperImageGalleryPlugin|ViperMoviePlugin|ViperKeyboardEditorPlugin|ViperLinkPlugin|ViperListPlugin|ViperRedoPlugin|ViperTableEditorPlugin|ViperKeywordPlugin|ViperContentSharingPlugin|ViperSourceViewPlugin').split('|');this.contentChangedCallback=function(){};}
WYSIWYGWidgetType.prototype={init:function(callback)
{var self=this;if(!this.viper){var scripts=['Viper'];this._loadScripts(dfx.clone(scripts),function(){var viperOpts={viperURL:Widget.prototype.getWidgetUrl('WYSIWYGEditorWidget')+'/viper'};var self=this;var viper=new Viper(viperOpts,function(viper){self.viper=viper;WidgetStore.add('viper',self.viper);self.load(callback);});});}else{ViperPluginManager.addPluginSet(this.id+'all',this.plugins);var timer=null;this.viper.registerCallback('nodesChanged','WYSIWYGEditor',function(){clearTimeout(timer);timer=setTimeout(function(){self.contentChangedCallback();self.setModified(true);},200);});this.setViperPlugins(function(){callback.call(self);});}},setContentChangedCallback:function(callback)
{this.contentChangedCallback=callback;},setPluginSettings:function(pluginName,settings)
{var idx=this.plugins.find(pluginName);if(idx!==-1){this.plugins[idx]={name:this.plugins[idx],settings:settings};}},setViperSetting:function(settingName,value)
{this.viper.setSetting(settingName,value);},load:function(callback)
{this.init(callback);},setViperPlugins:function(callback)
{ViperPluginManager.usePluginSet(this.id+'all',false,callback);},setElement:function(element,mode)
{if(this.viper){this.viper.setMode(mode);this.viper.setEditableElement(element);this.viper.setEnabled(true);try{element.focus();}catch(e){}
var self=this;dfx.addEvent(element,'click',function(){self.viper.setEnabled(true);});}},setContents:function(content)
{if(this.viper){this.viper.setContents(content);}},cleanDOM:function()
{if(this.viper){this.viper.cleanDOM();}},getContents:function()
{if(this.viper){return this.viper.getContents();}
return null;},enable:function()
{if(this.viper){this.viper.setEnabled(true);}},disable:function()
{if(this.viper){this.viper.setEnabled(false);}},_loadScripts:function(scripts,callback)
{if(scripts.length===0){callback.call(this);return;}
var script=scripts.shift();if(script!=='Selection'&&window[script]){this._loadScripts(scripts,callback);return;}
var url=Widget.prototype.getWidgetUrl('WYSIWYGEditorWidget');var self=this;dfx.includeScript(url+'viper/'+script+'.js',function(){self._loadScripts(scripts,callback);});},getHtml:function(elem)
{return this.viper.getHtml(elem);},setHtml:function(contents,callback)
{this.viper.setHtml(contents,callback);}};dfx.inherits('WYSIWYG','Widget');function WebPathsManagerWidgetType(id,aliases,type,urlsInfo,redirects)
{Widget.call(this,id);this.widgetType='WebPathsManager';this.assetType=type||'';this.remove=[];this.hasChanges={};this.currentHome=null;if(this.assetType==='site'){this.urlsInfo=urlsInfo||[];this.redirects=redirects||[];this.newDomains=0;this.newRedirects=0;this.readyCheck=false;}else{this.aliases=aliases;this.listWidget=WidgetStore.get(this.id+'-webPathsList');this.oldUrl=WidgetStore.get(this.id+'-url-change').getValue();}
this.init();}
WebPathsManagerWidgetType.prototype={screenModified:function()
{var self=this;var modified=false;if(this.assetType==='site'){if(this.newDomains>0||this.newRedirects>0){modified=true;}
if(modified===false){dfx.foreach(this.urlsInfo.urls,function(idx){var delId=self.id+'-urlsList-'+idx;var listItem=dfx.getId(delId);if(dfx.hasClass(listItem,'PlainListWidgetType-markedForDeletion')===true){modified=true;return false;}
var textfield=WidgetStore.get(self.id+'-urlField-'+idx);if('http://'+textfield.getValue()!==self.urlsInfo.urls[idx]){modified=true;return false;}
var homePagePicker=WidgetStore.get(self.id+'-homePage','AssetPicker');var notFoundPagePicker=WidgetStore.get(self.id+'-noFoundPage','AssetPicker');if(homePagePicker.getValue()!==self.urlsInfo.indexid||notFoundPagePicker.getValue()!==self.urlsInfo.notfoundid){modified=true;return false;}
return true;});if(modified===false){dfx.foreach(this.redirects,function(idx){var btn=dfx.getId(self.id+'-redirectDelete-'+idx);if(dfx.hasClass(btn,'recover')===true){modified=true;return false;}
var url=WidgetStore.get(self.id+'-redirectUrlField-'+idx);var mappedUrl=WidgetStore.get(self.id+'-bounceSelect-'+idx);if('http://'+url.getValue()!==self.redirects[idx].url||self.urlsInfo[parseInt(mappedUrl.getValue())]!==self.redirects[idx].mapped_url){modified=true;return false;}});}
dfx.foreach(this.urlsInfo.urls,function(idx){return true;});}
this.setModified(modified);return modified;}else{var noChange=true;for(var id in this.hasChanges){if(this.hasChanges[id]===true){this.setModified(true);noChange=false;break;}}
if(noChange===true){this.setModified(false);}}},init:function()
{var self=this;this.setSaveButton(function(){self.saveSettings();},function(){self.displayDisabledDiv(true);if(self.assetType==='site'){self.resetSite();}else{self.reload();}
setTimeout(function(){self.removeDisabledDiv();},300);});if(this.assetType==='site'){this.createDomainNamesSection();this.createRedirectsSection();}else{var len=this.aliases.length;for(var i=0;i<len;i++){this.addDeleteButtonEvent(this.aliases[i]);this.remove[i]=0;}
var url=WidgetStore.get(this.id+'-url-change');url.addOnChangeEvent(function(){var val=this.getValue();var err=dfx.getId(self.id+'-url-error');if(val.match(/^_|[^a-z0-9_\.\-$@!*~,]/g)!==null){dfx.showElement(err,true);dfx.setHtml(dfx.getId(self.id+'-url-error'),'URLs can only contain lower case characters, numbers, dashes and underscores but no leading underscores.');}else{dfx.hideElement(err,true);}
if(val!==self.oldUrl){self.hasChanges.url=true;}else{delete self.hasChanges.url;}
self.screenModified();});var alias=WidgetStore.get(this.id+'-alias-add');alias.addOnChangeEvent(function(){if(this.getValue()!==''){self.hasChanges.alias=true;}else{delete self.hasChanges.alias;}
self.screenModified();});this.changes={};this.screenModified();}},createDomainNamesSection:function()
{var self=this;var urlList=null;var _createDomainName=function(callback){var pagesSection=document.createElement('div');dfx.addClass(pagesSection,self.widgetType+'-pagesSection');var leftC=self.widgetType+'-pagesSection-left';var rightC=self.widgetType+'-pagesSection-right';content='<div class="'+leftC+'"></div>';content+='<div class="'+rightC+'"></div>';dfx.setHtml(pagesSection,content);var homePagePicker=self.createWidget(self.id+'-homePage','AssetPicker');var notFoundPagePicker=self.createWidget(self.id+'-noFoundPage','AssetPicker');homePagePicker.create(function(hp){notFoundPagePicker.create(function(np){var blackList=['Documents','Images','Movies','Designs','Roles','Users','Workflows'];homePagePicker.setProjectFolderBlackList(blackList);homePagePicker.setResetConfirmation('Are you sure you want to reset the Home Page?');notFoundPagePicker.setProjectFolderBlackList(blackList);var leftDiv=dfx.getClass(leftC,pagesSection)[0];var rightDiv=dfx.getClass(rightC,pagesSection)[0];var lLabel=document.createElement('div');var rLabel=document.createElement('div');dfx.addClass(lLabel,self.widgetType+'-pickerLabel');dfx.addClass(rLabel,self.widgetType+'-pickerLabel');dfx.setHtml(lLabel,'Home Page');dfx.setHtml(rLabel,'Page Not Found');leftDiv.appendChild(lLabel);leftDiv.appendChild(hp);rightDiv.appendChild(rLabel);rightDiv.appendChild(np);callback.call(self,pagesSection);});});};var createUrlField=function(index,listItem,value,sslEnabled){var _createUrlField=function(el,tel,sdel){urlField.setValue(value);dfx.addClass(el,self.widgetType+'-domainNameField');dfx.addEvent(urlField.input,'keyup',function(e){var val=this.value.toLowerCase();val=val.replace('__','_');val=val.replace(/^\s*\w+:\/\//,'');this.value=val;self.screenModified();});var sslWrap=document.createElement('div');var sslStatus=document.createElement('div');dfx.setHtml(sslStatus,'Secure with SSL');dfx.addClass(sslWrap,self.widgetType+'-sslHeaderWrap');dfx.addClass(sslStatus,self.widgetType+'-sslStatus');dfx.addClass(sdel,self.widgetType+'-sslShowHideDetailsButton');var toggleWrap=document.createElement('div');toggleWrap.appendChild(tel);dfx.addClass(toggleWrap,self.widgetType+'-sslToggleWrap');var inProgressDiv=document.createElement('div');dfx.addClass(inProgressDiv,self.widgetType+'-sslProgress');dfx.setHtml(inProgressDiv,'in progress ...');if(self.urlsInfo.ssl[value]===false||value===''){dfx.hideElement(inProgressDiv);dfx.hideElement(sdel);}else{dfx.addClass(sslStatus,self.widgetType+'-sslStatus-active');if(self.urlsInfo.ssl[value].ready===true){dfx.hideElement(inProgressDiv);}else if(self.urlsInfo.ssl[value].ready===false){dfx.hideElement(sdel);}}
sslWrap.appendChild(el);sslWrap.appendChild(sslStatus);sslWrap.appendChild(toggleWrap);sslWrap.appendChild(sdel);sslWrap.appendChild(inProgressDiv);listItem.appendChild(sslWrap);};var disableToggle=false;var toggleValue=sslEnabled;if(self.urlsInfo.ssl[value]&&(self.urlsInfo.ssl[value].ready===false||self.urlsInfo.ssl[value].remove===true)){disableToggle=true;if(self.urlsInfo.ssl[value].remove===true){toggleValue=false;}}
var urlField=self.createWidget(self.id+'-urlField-'+index,'TextField');var toggWidget=self.createWidget(self.id+'-sslToggle-'+index,'ToggleButton',false,'slider',toggleValue,'Yes','No');var showDetailsBtnWdgt=self.createWidget(self.id+'-sslDetailsBtn-'+index,'Button','ButtonWidgetType');var showButtonTitle='Show Details';var hideButtonTitle='Hide Details';showDetailsBtnWdgt.setName(showButtonTitle);if(disableToggle===true){toggWidget.setReadOnly(true);urlField.setReadOnly(true);self.readyCheck=true;}
showDetailsBtnWdgt.addClickEvent(function(){var btnTitle=showDetailsBtnWdgt.getName();if(btnTitle===showButtonTitle){urlList.showSubContent(index);showDetailsBtnWdgt.setName(hideButtonTitle);}else if(btnTitle===hideButtonTitle){urlList.hideSubContent(index);showDetailsBtnWdgt.setName(showButtonTitle);}});toggWidget.addToggleOnEvent(function(){urlList.showSubContent(index);dfx.addClass(dfx.getClass(self.widgetType+'-sslStatus',listItem)[0],self.widgetType+'-sslStatus-active');showDetailsBtnWdgt.setName(hideButtonTitle);self.setModified(true);});toggWidget.addToggleOffEvent(function(){urlList.hideSubContent(index);dfx.removeClass(dfx.getClass(self.widgetType+'-sslStatus',listItem)[0],self.widgetType+'-sslStatus-active');showDetailsBtnWdgt.setName(showButtonTitle);self.setModified(true);});urlField.setDisplayAsBlock(false);urlField.create(function(urlFieldEl){toggWidget.create(function(toggWidgetEl){showDetailsBtnWdgt.create(function(showDetailsBtnWdgtEl){_createUrlField(urlFieldEl,toggWidgetEl,showDetailsBtnWdgtEl);});});});};var createUrlFieldSubContent=function(index,subContent,value,sslEnabled){var ipTextFieldWdgt=self.createWidget(self.id+'-sslIpField-'+index,'TextField');var netTextFieldWdgt=self.createWidget(self.id+'-sslNetField-'+index,'TextField');var fileUploadWdgt=self.createWidget(self.id+'-sslCrtFile-'+index,'FileUpload',null,null,false);if(sslEnabled===true){ipTextFieldWdgt.setValue(self.urlsInfo.ssl[value].ip);netTextFieldWdgt.setValue(self.urlsInfo.ssl[value].mask);}
ipTextFieldWdgt.create(function(ipTextFieldWdgtEl){netTextFieldWdgt.create(function(netTextFieldWdgtEl){fileUploadWdgt.create(function(fileUpEl){var ipWrap=document.createElement('div');var netWrap=document.createElement('div');var crtWrap=document.createElement('div');dfx.addClass(ipWrap,self.widgetType+'-sslDetailWrap');dfx.addClass(netWrap,self.widgetType+'-sslDetailWrap');dfx.addClass(crtWrap,self.widgetType+'-sslDetailWrap');var ipLabel=document.createElement('label');var netLabel=document.createElement('label');var crtLabel=document.createElement('label');dfx.setHtml(ipLabel,'IP Address');dfx.setHtml(netLabel,'Netmask');dfx.setHtml(crtLabel,'Certificate Upload');dfx.addClass(ipTextFieldWdgtEl,self.widgetType+'-sslIPAddress');dfx.addClass(netTextFieldWdgtEl,self.widgetType+'-sslNetmask');dfx.addClass(fileUpEl.childNodes[0],self.widgetType+'-sslCertificate');ipWrap.appendChild(ipLabel);ipWrap.appendChild(ipTextFieldWdgtEl);netWrap.appendChild(netLabel);netWrap.appendChild(netTextFieldWdgtEl);crtWrap.appendChild(crtLabel);crtWrap.appendChild(fileUpEl);var uploadForm=document.createElement('form');uploadForm.id=self.id+'-sslCertFileForm-'+index;uploadForm.action='';uploadForm.method='post';uploadForm.enctype='multipart/form-data';var formid=document.createElement('input');formid.type='hidden';formid.name='formid';formid.value=self.id+'-sslCrtFile-'+index;uploadForm.appendChild(formid);var domainData=document.createElement('input');domainData.type='hidden';domainData.name='domainData';domainData.value='';uploadForm.appendChild(domainData);uploadForm.appendChild(fileUpEl);uploadForm.appendChild(fileUpEl);subContent.appendChild(ipWrap);subContent.appendChild(netWrap);subContent.appendChild(crtWrap);subContent.appendChild(uploadForm);dfx.setStyle(dfx.getClass('TextFieldWidgetType',ipTextFieldWdgtEl)[0],'width','150px');dfx.setStyle(dfx.getClass('TextFieldWidgetType',netTextFieldWdgtEl)[0],'width','150px');});});});};var addNewWdgt=WidgetStore.get(this.id+'-domainNames-Button-AddNew');addNewWdgt.addClickEvent(function(e){var index=self.urlsInfo.urls.length+self.newDomains;self.newDomains++;var listItem=document.createElement('div');var listItemSubContent=document.createElement('div');dfx.addClass(listItem,self.getClass()+'-urlWrapper');dfx.addClass(listItemSubContent,self.getClass()+'-subWrapper');var sslEnabled=false;createUrlField(index,listItem,'',sslEnabled);createUrlFieldSubContent(index,listItemSubContent,'',sslEnabled);urlList.addItem({id:index,left:listItem,subContent:listItemSubContent});self.screenModified();},true);this.includeWidgets(['TextField','AssetPicker','Intervention','PlainList','ToggleButton','FileUpload'],function(){var urlListItems=[];dfx.foreach(self.urlsInfo.urls,function(i){var listItem=document.createElement('div');var subContent=document.createElement('div');dfx.addClass(listItem,self.getClass()+'-urlWrapper');dfx.addClass(subContent,self.getClass()+'-subWrapper');urlListItems.push({id:i,left:listItem,subContent:subContent});var url=self.urlsInfo.urls[i];url=url.replace(/^\s*\w+:\/\//,'');var sslEnabled=true;if(self.urlsInfo.ssl[url]===false||url===''){sslEnabled=false;}
createUrlField(i,listItem,url,sslEnabled);createUrlFieldSubContent(i,subContent,url,sslEnabled);return true;});if(self.readyCheck===true){var readyCheck=setInterval(function(){var currScrn=WidgetStore.getData('activeScreen');if(currScrn===null||currScrn.id!=='lookup'){clearInterval(readyCheck);return;}
var url=Widget.CURRENT_URL+'/'+Widget.CURRENT_SUFFIX;var params={widget:'LookupEditScreenWidget',action:'readyCheck',domain:dfx.jsonEncode(self.urlsInfo)};dfx.post(url,params,function(data){data=dfx.jsonDecode(data);var allReady=true;dfx.foreach(self.urlsInfo.urls,function(idx){var url=self.urlsInfo.urls[idx].replace(/http:\/\//,'');if(self.urlsInfo.ssl[url]&&self.urlsInfo.ssl[url].ready===false){if(dfx.isset(data[url])===true){if(data[url]===true){self.urlsInfo.ssl[url].ready=true;var urlField=WidgetStore.get(self.id+'-urlField-'+idx);var toggWidget=WidgetStore.get(self.id+'-sslToggle-'+idx);urlField.setReadOnly(false);toggWidget.setReadOnly(false);var detailsBtnDiv=dfx.getId(self.id+'-sslDetailsBtn-'+idx);var sslStatusLabel=dfx.getClass('WebPathsManager-sslStatus',detailsBtnDiv.parentNode)[0];var progressDiv=dfx.getClass('WebPathsManager-sslProgress',detailsBtnDiv.parentNode)[0];if(self.urlsInfo.ssl[url].remove===true){dfx.removeClass(sslStatusLabel,'WebPathsManager-sslStatus-active');}else{dfx.showElement(detailsBtnDiv);}
dfx.showElement(dfx.getClass('PlainListWidgetType-deleteOption',dfx.getId('WebPathsManager-urlsList-'+idx))[0]);dfx.hideElement(progressDiv);}else if(data[url]===false){allReady=false;}}}
return true;});if(allReady===true){clearInterval(readyCheck);}});},(1000*5));}
urlList=self.createWidget(self.id+'-urlsList','PlainList',830,false,true,true,urlListItems);urlList.create(function(urlListEl){dfx.getId(self.id+'-domainNames-items').appendChild(urlListEl);});urlList.addRemoveItemCallback(function(idx,removed,deleteBtn){if(removed===true){var enabledItems=urlList.getListEnabledItems();if(enabledItems.length===1){var intervention=dfx.getId('lastDomainInter');if(!intervention){var iw=self.createWidget('lastDomainInter','Intervention');iw.setCancelText(null);iw.setConfirmText('Close');iw.create(function(){iw.setSize('200px','61px');iw.setMessage('You cannot delete the last domain name');iw.show(deleteBtn,'fixed');});}
return false;}}
self.setModified(true);});_createDomainName(function(el){dfx.getId(self.id+'-domainNames-items').appendChild(el);var _addHomePickerCallbacks=function(){homePagePicker.addSelectedCallback(function(hid){if(hid===parseInt(self.assetid,10)){if(self.currentHome!==null){homePagePicker.setValue(parseInt(self.currentHome,10));}}else{self.currentHome=hid;self.screenModified();}});homePagePicker.setResetConfirmation('Are you sure you want to reset the Home Page?');homePagePicker.addClearAssetidCallback(function(){self.screenModified();});};var homePagePicker=WidgetStore.get(self.id+'-homePage');if(self.urlsInfo.indexid){self.currentHome=self.urlsInfo.indexid;homePagePicker.setValue(parseInt(self.urlsInfo.indexid),_addHomePickerCallbacks);}else{_addHomePickerCallbacks();}
var _notFoundPageCallbacks=function(){notFoundPagePicker.addSelectedCallback(function(){self.screenModified();});notFoundPagePicker.addClearAssetidCallback(function(){self.screenModified();});};var notFoundPagePicker=WidgetStore.get(self.id+'-noFoundPage');if(self.urlsInfo.notfoundid){notFoundPagePicker.setValue(parseInt(self.urlsInfo.notfoundid),_notFoundPageCallbacks);}else{_notFoundPageCallbacks();}});});},createRedirectsSection:function()
{var self=this;var _createRedirect=function(idx,callback,newField){var newField=newField||false;var redirectWrap=document.createElement('div');dfx.addClass(redirectWrap,self.widgetType+'-redirectWrap');var content='<div class="'+self.widgetType+'-redirectWrap-protocol">http://</div>';content+='<div class="'+self.widgetType+'-redirectWrap-textFieldWrap"></div>';content+='<div class="'+self.widgetType+'-redirectWrap-bounceLabel">Bounce to:</div>';content+='<div class="'+self.widgetType+'-redirectWrap-bounceSelect"></div>';content+='<div id="'+self.id+'-redirectDelete-'+idx+'" class="'+self.widgetType+'-redirectWrap-deleteBtn">&nbsp</div>';dfx.setHtml(redirectWrap,content);var urlField=self.createWidget(self.id+'-redirectUrlField-'+idx,'TextField');if(newField===false){urlField.setValue(self.redirects[idx].url.substring(7));}
urlField.create(function(uF){dfx.addEvent(urlField.input,'keyup',function(e){self.screenModified();});var textWrap=dfx.getClass(self.widgetType+'-redirectWrap-textFieldWrap',redirectWrap)[0];textWrap.appendChild(uF);var items={};var bounceSelect=self.createWidget(self.id+'-bounceSelect-'+idx,'Select');var uLen=self.urlsInfo.urls.length;var value=0;for(var i=0;i<uLen;i++){items[i]=self.urlsInfo.urls[i];if(newField===false&&self.redirects[idx].mapped_url===self.urlsInfo.urls[i]){value=i;}}
bounceSelect.addItems(items);bounceSelect.create(function(sEl){var bSelect=dfx.getClass(self.widgetType+'-redirectWrap-bounceSelect',redirectWrap)[0];bSelect.appendChild(sEl);dfx.addEvent(bounceSelect.select,'change',function(e){self.screenModified();});var deleteBtn=dfx.getClass(self.widgetType+'-redirectWrap-deleteBtn',redirectWrap)[0];dfx.addEvent(deleteBtn,'click',function(e){if(dfx.hasClass(deleteBtn,'recover')===true){dfx.removeClass(deleteBtn,'recover');dfx.removeClass(redirectWrap,'deleted');urlField.enable();bounceSelect.enable();}else{dfx.addClass(deleteBtn,'recover');dfx.addClass(redirectWrap,'deleted');urlField.disable();bounceSelect.disable();}
self.screenModified();});bounceSelect.setValue(value);if(callback){callback.call(self,redirectWrap);}});});};this.includeWidgets(['TextField','Select','Button'],function(){var rLen=self.redirects.length;var wrap=document.createElement('div');dfx.addClass(wrap,self.widgetType+'-redirectsWrap');var labelWrap=document.createElement('div');dfx.addClass(labelWrap,self.widgetType+'-labelWrap');var content='<div class="'+self.widgetType+'-redirectsWrap-label">Redirect URL\'s will bounce users to the domain name of your choice.</div>';content+='<div class="'+self.widgetType+'-redirectsWrap-btnWrap"></div>';dfx.setHtml(labelWrap,content);var addBtn=self.createWidget(self.id+'-newRedirect','Button','ButtonWidgetType');addBtn.setName('Add New');addBtn.create(function(bEl){var btnWrap=dfx.getClass(self.widgetType+'-redirectsWrap-btnWrap',labelWrap)[0];btnWrap.appendChild(bEl);wrap.appendChild(labelWrap);dfx.getId(self.id+'-redirects-items').appendChild(wrap);addBtn.addClickEvent(function(e){var index=self.redirects.length+self.newRedirects;self.newRedirects++;_createRedirect(index,function(el){wrap.appendChild(el);dfx.getId(self.id+'-redirectUrlField-'+index).focus();self.screenModified();},true);},true);for(var i=0;i<rLen;i++){(function(idx){_createRedirect(idx,function(el){wrap.appendChild(el);});})(i);}});});},addDeleteButtonEvent:function(id)
{var self=this;var span=dfx.getId(id);dfx.addEvent(span,'click',function(){var count=dfx.attr(this,'count');if(this.className==='deleteAlias'){self.markForDeletion(this);self.hasChanges[count]=true;}else{self.recover(this);delete self.hasChanges[count];}
self.screenModified();});},markForDeletion:function(span)
{var count=dfx.attr(span,'count');var list=dfx.getId(this.id+'-aliasList_'+count);dfx.swapClass(span,'deleteAlias','deleteAlias-recover');dfx.addClass(list,'ListItemWidgetType-recover');this.remove[count]=1;},recover:function(span)
{var count=dfx.attr(span,'count');var list=dfx.getId(this.id+'-aliasList_'+count);dfx.swapClass(span,'deleteAlias-recover','deleteAlias');dfx.removeClass(list,'ListItemWidgetType-recover');this.remove[count]=0;},saveSettings:function()
{var self=this;if(this.assetType==='site'){var params={screen:'LookupEditScreenWidget',type:'save',assetid:this.assetid};var uLen=self.urlsInfo.urls.length;uLen+=self.newDomains;var indexPage=WidgetStore.get(self.id+'-homePage').getValue();var notFoundPage=WidgetStore.get(self.id+'-noFoundPage').getValue();var domainData=[];var certToUpload=[];for(var i=0;i<uLen;i++){var textfield=WidgetStore.get(self.id+'-urlField-'+i);var domainD={domain:'http://'+dfx.trim(textfield.getValue().replace(/^\s*\w+:\/\//,'')),deleted:false,ssl:false};domainD.ready=false;if(dfx.isset(self.urlsInfo.urls[i])===true){domainD.newDomain=false;domainD.oldDomain=self.urlsInfo.urls[i];domainD.ready=self.urlsInfo.ssl[self.urlsInfo.urls[i].replace(/http:\/\//,'')].ready;}else{domainD.newDomain=true;}
if(WidgetStore.get(self.id+'-urlsList').itemIsRemoved(i)===true){domainD.deleted=true;}
var sslToggWdgt=WidgetStore.get(self.id+'-sslToggle-'+i);domainD.ssl=sslToggWdgt.getValue();var ipTextWdgt=WidgetStore.get(self.id+'-sslIpField-'+i);var netTextWdgt=WidgetStore.get(self.id+'-sslNetField-'+i);var fileUpWdgt=WidgetStore.get(self.id+'-sslCrtFile-'+i);domainD.sslIpAddr=ipTextWdgt.getValue();domainD.sslNetAddr=netTextWdgt.getValue();domainD.sslCert=fileUpWdgt.getValue();if(domainD.domain.length>7){domainData.push(domainD);}}
var start=0;var rLen=self.redirects.length;rLen+=self.newRedirects;var redirectData=[];for(var i=start;i<rLen;i++){var url=WidgetStore.get(self.id+'-redirectUrlField-'+i);var mappedUrl=WidgetStore.get(self.id+'-bounceSelect-'+i);var index=parseInt(mappedUrl.getValue());var val=WidgetStore.get(self.id+'-urlField-'+index).getValue();var redirectD={url:'http://'+dfx.trim(url.getValue().replace(/^\s*\w+:\/\//,'')),mappedUrl:'http://'+dfx.trim(val),deleted:false};if(dfx.isset(self.redirects[i])===true){redirectD.newRedirect=false;redirectD.oldUrl=self.redirects[i].url;redirectD.oldMappedUrl=self.redirects[i].mapped_url;}else{redirectD.newRedirect=true;}
var btn=dfx.getId(self.id+'-redirectDelete-'+i);if(dfx.hasClass(btn,'recover')===true){redirectD.deleted=true;}
if(redirectD.url.length>7){redirectData.push(redirectD);}}
self.displayDisabledDiv(true);self._uploadCertFiles(domainData,function(success){if(success!==true){self.showError([success],function(){self.resetSite();self.removeDisabledDiv(null,true);});return;}
params.type='saveSite';params.domainData=dfx.jsonEncode(domainData);params.redirectData=dfx.jsonEncode(redirectData);params.indexPage=dfx.jsonEncode(indexPage);params.notFoundPage=dfx.jsonEncode(notFoundPage);this.displayDisabledDiv(true);var lookupEditScreen=WidgetStore.get('LookupEditScreen');lookupEditScreen.parent.processScreen(params,function(data){if(data.errors){self.setModified(true);return;}
if(dfx.isset(data.redirect)===true){self.displayDisabledDiv(true,null,null,null,'Currently re-directing...');var pos=(data.redirect.length-1);if(data.redirect[pos]==='/'){window.location.href=data.redirect.substring(0,pos);}else{window.location.href=data.redirect;}}else{self.resetSite();self.removeDisabledDiv(null,true);}},true)});}else{var url=WidgetStore.get(this.id+'-url-change').getValue();var alias=WidgetStore.get(this.id+'-alias-add').getValue();var len=this.remove.length;var rm=[];for(var i=0;i<len;i++){if(this.remove[i]===1){rm.push(this.aliases[i]);}}
var params={screen:'LookupEditScreenWidget',type:'save',assetid:this.assetid,oldUrl:this.oldUrl,newUrl:url,alias:alias,remove:dfx.jsonEncode(rm)};this.displayDisabledDiv(true);var lookupEditScreen=WidgetStore.get('LookupEditScreen');lookupEditScreen.parent.processScreen(params,function(data,respData){if(data.errors){if(dfx.isset(respData)===true&&dfx.isset(respData.redirect)===true){data.redirect=respData.redirect;}}
if(dfx.isset(data.redirect)===true){self.displayDisabledDiv(true,null,null,null,'Currently re-directing...');var pos=(data.redirect.length-1);if(data.redirect[pos]==='/'){window.location.href=data.redirect.substring(0,pos);}else{window.location.href=data.redirect;}}else{self.removeDisabledDiv(null,true);self.reload();}},true);}},_uploadCertFiles:function(domainData,callback)
{var self=this;var filesToUpload=[];dfx.foreach(domainData,function(idx){if(domainData[idx].sslCert&&domainData[idx].sslCert!==''){filesToUpload.push(idx);}
return true;});if(filesToUpload.length>0){var _uploadCertFilesRecursive=function(fileCountIndex){var idx=filesToUpload[fileCountIndex];var fileUploadWdgt=WidgetStore.get(self.id+'-sslCrtFile-'+idx);var fileUploadForm=dfx.getId(self.id+'-sslCertFileForm-'+idx);var qs='?widget=LookupEditScreenWidget&action=uploadCert';fileUploadForm.setAttribute('action',Widget.EDIT_URL+qs);fileUploadWdgt.setForm(fileUploadForm);fileUploadForm.domainData.value=dfx.jsonEncode(domainData[idx]);fileUploadForm.submit();var failsafeCount=0;var pt=setInterval(function(){var url=Widget.CURRENT_URL+'/'+Widget.CURRENT_SUFFIX;var params={widget:'LookupEditScreenWidget',action:'uploadCheck',domain:domainData[idx].domain};dfx.post(url,params,function(done){failsafeCount++;if(failsafeCount>45){clearInterval(pt);if(callback){callback.call(self,'Failed to upload PEM file(s)');}}
if(done==='completed'){clearInterval(pt);if(fileCountIndex<(filesToUpload.length-1)){_uploadCertFilesRecursive(fileCountIndex+1);}else{if(callback){callback.call(self,true);}}}});},1000);};_uploadCertFilesRecursive(0);}else{if(callback){callback.call(self,true);}}},resetSite:function(callback)
{var self=this;var params={mode:'EditScreenMode',screen:'LookupEditScreenWidget',type:'getScreenData',assetid:this.assetid};var lookupEditScreen=WidgetStore.get('LookupEditScreen');lookupEditScreen.parent.getScreenData(params,function(data){data=dfx.jsonDecode(data);self.urlsInfo=dfx.clone(data.urlInfo);self.redirects=dfx.clone(data.redirect);self.newDomains=0;self.newRedirects=0;dfx.getId(self.id+'-domainNames-items').innerHTML='';dfx.getId(self.id+'-redirects-items').innerHTML='';self.init();});},reload:function()
{var les=WidgetStore.get('LookupEditScreen');les.reload();},setReadOnly:function(readOnly)
{var self=this;if(this.assetType==='site'){this.readOnly=readOnly;var _setReadOnly=function(){var uLen=self.urlsInfo.length;uLen+=self.newDomains;for(var i=0;i<uLen;i++){var textfield=WidgetStore.get(self.id+'-urlField-'+i);textfield.setReadOnly(readOnly);if(readOnly){dfx.hideElement(dfx.getId(self.id+'-domainDelete-'+i));}else{dfx.showElement(dfx.getId(self.id+'-domainDelete-'+i));}}
var homePicker=WidgetStore.get(self.id+'-homePage','AssetPicker');var notfPicker=WidgetStore.get(self.id+'-noFoundPage','AssetPicker');if(homePicker){homePicker.setReadOnly(readOnly);}
if(notfPicker){notfPicker.setReadOnly(readOnly);}
var start=0;var rLen=self.redirects.length;for(var i=start;i<rLen;i++){var url=WidgetStore.get(self.id+'-redirectUrlField-'+i);var mappedUrl=WidgetStore.get(self.id+'-bounceSelect-'+i);url.setReadOnly(readOnly);mappedUrl.setReadOnly(readOnly);if(readOnly){dfx.hideElement(dfx.getId(self.id+'-redirectDelete-'+i));}else{dfx.showElement(dfx.getId(self.id+'-redirectDelete-'+i));}}
if(WidgetStore.get(self.id+'-domainNames-Button-AddNew')){WidgetStore.get(self.id+'-domainNames-Button-AddNew').setReadOnly(readOnly);}
if(WidgetStore.get(self.id+'-newRedirect')){WidgetStore.get(self.id+'-newRedirect').setReadOnly(readOnly);}};var waitDom=function(){var uLen=self.urlsInfo.length;uLen+=self.newDomains;var ready=true;for(var i=0;i<uLen;i++){var textfield=dfx.getId(self.id+'-urlField-'+i);var homePicker=dfx.getId(self.id+'-homePage');var notfPicker=dfx.getId(self.id+'-noFoundPage');if(dfx.isset(textfield)===false||dfx.isset(homePicker)===false||dfx.isset(notfPicker)===false){ready=false;break;}}
if(ready===true){var start=0;var rLen=self.redirects.length;for(var i=start;i<rLen;i++){var url=dfx.getId(self.id+'-redirectUrlField-'+i);var mappedUrl=dfx.getId(self.id+'-bounceSelect-'+i);if(dfx.isset(url)===false||dfx.isset(mappedUrl)===false){ready=false;}}}
if(ready===true){_setReadOnly();}else{setTimeout(function(){waitDom();},100);}};waitDom();}else{var list=dfx.getId(this.id+'-aliasList');if(readOnly){this.disableSaveButton();dfx.swapClass(list,'notReadOnly','readOnly');}else{dfx.swapClass(list,'readOnly','notReadOnly');}
if(this.assetType==='site'){}else{var url=WidgetStore.get(this.id+'-url-change');var alias=WidgetStore.get(this.id+'-alias-add');if(this.assetType==='projectFolder'){url.setReadOnly(true);alias.setReadOnly(true);}else{url.setReadOnly(readOnly);alias.setReadOnly(readOnly);}}}},forceEdit:function()
{if(this.assetType==='site'){var uLen=this.urlsInfo.urls.length;uLen+=this.newDomains;var indexPage=WidgetStore.get(this.id+'-homePage').setReadOnly(false);var notFoundPage=WidgetStore.get(this.id+'-noFoundPage').setReadOnly(false);for(var i=0;i<uLen;i++){var textfield=WidgetStore.get(this.id+'-urlField-'+i);if(textfield){textfield.setReadOnly(false);}}}else{var list=dfx.getId(this.id+'-aliasList');dfx.swapClass(list,'readOnly','notReadOnly');var url=WidgetStore.get(this.id+'-url-change');var alias=WidgetStore.get(this.id+'-alias-add');if(this.assetType==='projectFolder'){url.setReadOnly(true);alias.setReadOnly(true);}else{url.setReadOnly(false);alias.setReadOnly(false);}}}};dfx.inherits('WebPathsManager','Widget');function WizardAssetTypeWidgetType(id,assetTypes)
{Widget.call(this,id);this.widgetType='WizardAssetType';this.domElem=dfx.getId(this.id);this.assetTypes={};this.stepManager=null;this.disabled=false;if(this.domElem){this.init();}}
WizardAssetTypeWidgetType.prototype={init:function()
{var self=this;var c=this.getClass();var button=WidgetStore.get(this.id+'-button');var table=WidgetStore.get(this.id+'-table');var select=WidgetStore.get(this.id+'-select');var colClass=[c+'-table-icon',c+'-table-name',c+'-table-inherit',c+'-table-delete'];if(button&&table&&select){button.disable();select.addItemSelectedEvent(function(assetTypeId){if(self.stepManager===null){self.stepManager=WidgetStore.get('WizardRunner-wizardStepManager');self.stepManager.addIndexChangedAction(function(){self.verifyAddButtonStatus();});}
self.verifyAddButtonStatus(assetTypeId);});button.addClickEvent(function(){var assetTypeId=select.getValue();self._tableInterfaceAddRow(table,c,assetTypeId,false,false);});table.addClickEvent(this.id,function(rowid,colidx,elem){var type=rowid.split('-');assetTypeId=type[(type.length-1)];if(type){if(colidx===3||dfx.hasClass(elem,'delete')===true){self.toggleDeletion(assetTypeId);}else if(colidx===2||dfx.hasClass(elem,'RadioButtonWidgetType')===true){self.toggleInheritance(assetTypeId);}}});}},verifyAddButtonStatus:function(assetTypeId)
{if(this.disabled===false){if(assetTypeId!==null){var select=WidgetStore.get(this.id+'-select');var assetTypeId=parseInt(select.getValue());}
var button=WidgetStore.get(this.id+'-button');if(assetTypeId!==0){button.enable();}else{button.disable();}}},_tableInterfaceAddRow:function(table,c,assetTypeId,checkInherit,markDeleted,disabled)
{var self=this;var colClass=[c+'-table-icon',c+'-table-name',c+'-table-inherit',c+'-table-delete'];if(!dfx.getId(table.getRowElement(assetTypeId))){AssetManager.getAssetTypeInfos([assetTypeId],function(typeInfo){typeInfo=typeInfo[0];var typeIcon='<div style="background-image: url('+typeInfo.iconURL+');"></div>';var delId=self.id+'-'+assetTypeId+'-delete';if(disabled===true){delDisplay=' style="display: none"';}else{delDisplay='';}
var delIcon='<span id="'+delId+'"'+delDisplay+' class="delete"> &nbsp;</span>';self.includeWidget('RadioButton',function(){var iid=self.id+'-'+assetTypeId+'-inherit';var radio=self.createWidget(iid,'RadioButton');radio.setLabel('Inherit');radio.setLabelPos('left');radio.setShowLabel(true);radio.create(function(el){var row=table.createRowAsElement([typeIcon,typeInfo.name,el,delIcon],colClass,assetTypeId);table.addRow(row);if(markDeleted){self.toggleDeletion(assetTypeId);}
if(checkInherit===true){radio.check();}
if(disabled===true){radio.disable();}});});});}},_tableInterfaceRemoveRow:function(table,assetTypeId)
{var rowid=table.getRowElement(assetTypeId);var row=dfx.getId(rowid);if(row){table.deleteRow(row);}},_updateTableInterface:function(newValues)
{var self=this;var table=WidgetStore.get(this.id+'-table');var c=this.getClass();this._wipeSelectedAssetTypes();dfx.foreach(newValues,function(key){self._tableInterfaceAddRow(table,c,key,newValues[key]['inherit'],newValues[key]['markedDel'],self.disabled);});var select=WidgetStore.get(this.id+'-select');if(select){var val=select.setValue(0);}},_wipeSelectedAssetTypes:function()
{var self=this;var curVal=this.getValue();var table=WidgetStore.get(this.id+'-table');dfx.foreach(curVal,function(key){self._tableInterfaceRemoveRow(table,key);});},reset:function()
{this._wipeSelectedAssetTypes();this.disabled=false;},toggleDeletion:function(assetTypeId)
{var table=WidgetStore.get(this.id+'-table');var rowid=table.getRowElement(assetTypeId);var row=dfx.getId(rowid);var check=WidgetStore.get(this.id+'-'+assetTypeId+'-inherit');if(this._rowMarkedDeleted(assetTypeId)===true){check.enable();dfx.removeClass(row,'marked');}else{check.disable();dfx.addClass(row,'marked');}},toggleInheritance:function(assetTypeId)
{if(this._rowMarkedDeleted(assetTypeId)===true){return;}
var check=WidgetStore.get(this.id+'-'+assetTypeId+'-inherit');if(check.isChecked()===false){check.check();}else{check.uncheck();}},_rowMarkedDeleted:function(assetTypeId)
{var table=WidgetStore.get(this.id+'-table');var rowid=table.getRowElement(assetTypeId);var row=dfx.getId(rowid);return dfx.hasClass(row,'marked');},getValue:function()
{var self=this;this.assetTypes={};var table=WidgetStore.get(this.id+'-table');var rowIds=table.getRowids();dfx.foreach(rowIds,function(key){var check=WidgetStore.get(self.id+'-'+rowIds[key]+'-inherit');self.assetTypes[rowIds[key]]={};self.assetTypes[rowIds[key]]['inherit']=check.isChecked();self.assetTypes[rowIds[key]]['markedDel']=self._rowMarkedDeleted(rowIds[key]);});return this.assetTypes;},setValue:function(value)
{var newVal=value||{};this._updateTableInterface(newVal);},disable:function()
{this.disabled=true;var button=WidgetStore.get(this.id+'-button');var table=WidgetStore.get(this.id+'-table');var select=WidgetStore.get(this.id+'-select');if(button&&table&&select){button.disable();table.disable();select.disable();var self=this;var currentValue=this.getValue();dfx.foreach(currentValue,function(assetTypeId){var radioId=self.id+'-'+assetTypeId+'-inherit';var radio=WidgetStore.get(radioId);radio.disable();var delId=self.id+'-'+assetTypeId+'-delete';var delElem=document.getElementById(delId);dfx.setStyle(delElem,'display','none');});}},enable:function()
{this.disabled=false;var table=WidgetStore.get(this.id+'-table');var select=WidgetStore.get(this.id+'-select');if(table&&select){this.verifyAddButtonStatus();table.enable();select.enable();var self=this;var currentValue=this.getValue();dfx.foreach(currentValue,function(assetTypeId){var radioId=self.id+'-'+assetTypeId+'-inherit';var radio=WidgetStore.get(radioId);radio.enable();var delId=self.id+'-'+assetTypeId+'-delete';var delElem=document.getElementById(delId);dfx.setStyle(delElem,'display','block');});}}};dfx.inherits('WizardAssetType','Widget');function WizardDivWidgetType(id,wid,unique)
{Widget.call(this,id);this.widgetType='WizardDiv';this.lockActions=[];this.widgetId=wid;this.unique=unique;this.lockIcon=dfx.getClass(this.getClass()+'-lock',dfx.getId('wizardWidget-'+this.widgetId))[0];if(this.lockIcon){this.addEvent();}}
WizardDivWidgetType.prototype={addEvent:function()
{var self=this;dfx.addEvent(this.lockIcon,'click',function(e){dfx.toggleClass(self.lockIcon,'locked');self.fireLockActions(dfx.hasClass(self.lockIcon,'locked'));});},isUnique:function()
{return this.unique;},getWidgetId:function()
{return this.widgetId;},show:function()
{dfx.addClass(this.lockIcon,'active');},hide:function()
{dfx.removeClass(this.lockIcon,'active');},addLockAction:function(action)
{if(this.unique===false){this.lockActions.push(action);}},fireLockActions:function(checked)
{var lockActionLen=this.lockActions.length;for(var i=0;i<lockActionLen;i++){this.lockActions[i].call(this,checked);}},_addEvents:function()
{if(dfx.isset(this.lockIcon)===true){var self=this;dfx.addEvent(this.lockIcon,'click',function(e){self.fireLockActions(dfx.hasClass(self.lockIcon,'locked'));});}},setLockState:function(locked,changeOnly)
{if(this.lockIcon){if(locked===true){dfx.addClass(this.lockIcon,'locked');}else{dfx.removeClass(this.lockIcon,'locked');}
if(changeOnly===false){this.fireLockActions(locked);}}},showCheckbox:function()
{this.show();},hideCheckbox:function()
{this.hide();}};dfx.inherits('WizardDiv','Widget');function WizardRunnerWidgetType(id,wizardid,wizardidForLabel,wizardDivids,presetValues)
{Widget.call(this,id);this.widgetType='WizardRunner';this.wizardid=wizardid;this.wizardidForLabel=wizardidForLabel;this.wizardDivids=wizardDivids;this.presetValues=presetValues;this.info={};this.dialogWidget=null;this.wizardStepManager=null;this.wizardStepList=null;this.customProcessFn=null;if(wizardid){WidgetStore.setData('activeWizardAssetType',wizardid.replace(/_create_wizard/,''));}}
WizardRunnerWidgetType.prototype={init:function()
{var self=this;this.dialogWidget=WidgetStore.get('WizardModalDialog');this.wizardStepManager=WidgetStore.get('WizardRunner-wizardStepManager');this.wizardStepList=WidgetStore.get('WizardRunner-wizardSteps');this.initialized=true;this.customProcessFn=null;this.wizardStepManager.resetStepChangedActions();this.wizardStepManager.resetProcessActions();this.wizardStepManager.resetUpdateErrorsActions();this.loadWizardContents(function(){self.dialogWidget.setTitle(self.info.title+' Wizard',true);self.dialogWidget.setSubTitle(self.info.description,true);self.dialogWidget.setIcon(self.info.icon);self.dialogWidget.closeConfirm=true;self.dialogWidget.closeConfirmTitle='Confirm Close';self.dialogWidget.closeConfirmText='You are about to close wizard and the changes will be lost.<br />Are you sure you want to continue?';self.wizardStepManager.setRules(self.rules);self.wizardStepManager.setSteps(self.steps);self.wizardStepManager.setWizardIdForLabel(self.wizardidForLabel);self.wizardStepManager.setWizardDivIds(self.wizardDivids);self.wizardStepManager.addWizardButtons(self.dialogWidget);self.wizardStepManager.addStepChangedAction(function(stepIndex){self.wizardStepList.setCurrentStep(stepIndex);});self.wizardStepManager.addProcessAction(function(steps){self.processWizard(steps);});self.wizardStepManager.addUpdateErrorsAction(function(step){self.wizardStepList.setStepState((step+1),self.wizardStepManager.getStepState(step));});if(dfx.isset(self.info.createWidget)===true){self.includeWidget(self.info.createWidget,function(){self.createWidget(null,self.info.createWidget);});}
for(var wid in self.presetValues){if(self.presetValues.hasOwnProperty(wid)===true){var widget=WidgetStore.get(wid);if(widget.domEl.tagName.toLowerCase()==='select'){var opLen=widget.domEl.options.length;for(var i=0;i<opLen;i++){if(self.presetValues[wid]+''===widget.domEl.options[i].value){break;}}
widget.domEl.selectedIndex=i;}else{widget.setValue(self.presetValues[wid]);}}}});},loadWizardContents:function(callback)
{var self=this;var args={widget:'WizardRunnerWidget',action:'getWizardContents',wizardid:this.wizardid,stepid:this.stepid};dfx.getJSON(this.url,args,function(data){if(dfx.isset(data.info)===true){self.info=data.info;}
if(dfx.isset(data.steps)===true){self.steps=data.steps;}
if(dfx.isset(data.rules)===true){self.rules=data.rules;}
if(dfx.isFn(callback)===true){callback.call(self);}});},processWizard:function(steps)
{var values=this.wizardStepManager.getValues();if(dfx.isFn(this.customProcessFn)===true){this.customProcessFn.call(this,steps,values);return;}
var args=this.getProcessParams();args.steps=dfx.jsonEncode(values);var self=this;var message='';dfx.post(this.url,args,function(data){var result=dfx.jsonDecode(data);self.wizardStepManager._showCompleteMsg(result);},null,60);},getProcessParams:function()
{var args={widget:'WizardRunnerWidget',action:'processSave',wizardid:this.wizardid};return args;},setCustomProcessFn:function(fn)
{this.customProcessFn=fn;},setConfirmStepElem:function(elem)
{this.wizardStepManager.setConfirmStepElem(elem);}};dfx.inherits('WizardRunner','Widget');function WizardStepsWidgetType(id)
{Widget.call(this,id);this.widgetType='WizardSteps';this.domElem=dfx.getId(this.id);this.stepElems=[];this.wizardStepManager=WidgetStore.get('WizardRunner-wizardStepManager');this.init();}
WizardStepsWidgetType.prototype={init:function(callback)
{var self=this;this.stepElems=dfx.getClass(this.getClass()+'-item',this.domElem,'li');dfx.addEvent(this.stepElems,'click',function(e){var element=dfx.getMouseEventTarget(e);while(element&&element.tagName.toLowerCase()!=='li'){element=element.parentNode;}
var index=0;if(element){while(element.previousSibling){if(element.tagName&&element.tagName.toLowerCase()==='li'){index++;}
element=element.previousSibling;}}
if(index>0){index--;}
if(self.wizardStepManager.visitedStepCount>=index){if(self.wizardStepManager.getCurrentStep()!==index){self.wizardStepManager.setCurrentStep(index);}}});},setCurrentStep:function(step)
{step++;dfx.removeClass(this.stepElems,'selected');dfx.removeClass(this.stepElems,'aselected');dfx.addClass(this.stepElems[step],'selected');dfx.addClass(this.stepElems[(step-1)],'aselected');},setStepState:function(step,state)
{dfx.removeClass(this.stepElems[step],'error');dfx.removeClass(this.stepElems[step],'completed');if(state==='completed'||state==='error'){dfx.addClass(this.stepElems[step],state);}}};dfx.inherits('WizardSteps','Widget');function WizardSummaryWidgetType(id)
{Widget.call(this,id);this.widgetType='WizardSummary';}
WizardSummaryWidgetType.prototype={init:function()
{var self=this;var cats=dfx.getClass(this.getClass()+'-categories-name',dfx.getId('WizardSummary-cateogires'));dfx.addEvent(cats,'click',function(e){var target=dfx.getMouseEventTarget(e);self.showCategtory(target.getAttribute('category'));});var wizElems=dfx.getClass(this.getClass()+'-wizardsList-wizCont');var wln=wizElems.length;for(var i=0;i<wln;i++){this._addHoverEvent(wizElems[i]);this._addWizardClickEvent(wizElems[i]);}},_addWizardClickEvent:function(wizElem)
{var id=wizElem.id;var wizardid=id.replace(this.id+'-wizardsList-wiz-','');var self=this;dfx.addEvent(wizElem,'click',function(){self.createRunner(wizardid);});},_addHoverEvent:function(wizElem)
{dfx.hover(wizElem,function(e){dfx.addClass(wizElem,'hover');},function(e){dfx.removeClass(wizElem,'hover');});},showCategtory:function(cat)
{var elems=dfx.getClass(this.getClass()+'-wizardsList-catCont',dfx.getId('WizardSummary-wizardsList'));dfx.addClass(elems,'hidden');dfx.removeClass(dfx.getId(this.id+'-wizardsList-cat-'+cat),'hidden');var cats=dfx.getClass(this.getClass()+'-categories-name',dfx.getId('WizardSummary-cateogires'));dfx.removeClass(cats,'selected');dfx.addClass(dfx.getId(this.id+'-categories-'+cat),'selected');},createRunner:function(wizardId)
{var wizardModal=WidgetStore.get('WizardModalDialog');var contentParam={widgetType:'WizardRunner',widgetId:'WizardRunner',widgetArgs:dfx.jsonEncode([wizardId])};wizardModal.setDynamicParams(contentParam);wizardModal.update();}};dfx.inherits('WizardSummary','Widget');function WorkflowAdminScreenStreamWidgetType(id)
{Widget.call(this,id);this.widgetType='WorkflowAdminScreenStream';}
WorkflowAdminScreenStreamWidgetType.ptototype={create:function(callback)
{var self=this;if(dfx.isFn(callback)===true){callback.call(this);}}};dfx.inherits('WorkflowAdminScreenStream','Widget');function AssetPickerListViewWidgetType(id,picker)
{AbstractAssetPickerViewWidgetType.call(this,id,picker);this.widgetType='AssetPickerListView';this.columnBuilding=false;this.populated=false;this.preSelect=null;}
AssetPickerListViewWidgetType.prototype={create:function(callback)
{this.colWidth=222;var c=this.getClass();var main=document.createElement('div');dfx.addClass(main,c);this.domElem=main;var wrapper=document.createElement('div');dfx.addClass(wrapper,c+'-wrapper');main.appendChild(wrapper);this.wrapper=wrapper;callback.call(this,main);},update:function(clear,callback)
{if(clear===true){dfx.empty(this.wrapper);this.populated=false;var container=document.createElement('div');var c=this.getClass();dfx.attr(container,'id',c+'-projects');dfx.addClass(container,c+'-col');this.wrapper.appendChild(container);dfx.hideElement(container);}
if(callback){callback.call(this);}},showChildren:function(assetid,callback)
{var self=this;var limit=3;var pos=2;if(this.populated===true){limit=2;pos=1;}
if(parseInt(assetid,10)===parseInt(this.picker.projectid,10)){this._populateProjectColumn();this._createColumn(this.picker.projectFoldersFiltered,function(){if(this.lineage.length>=limit){if(self.active===true){dfxjQuery(this.domElem).scrollTo(((this.lineage.length-pos)*this.colWidth),{axis:'x',duration:500});}}
if(dfx.isFn(callback)===true){callback.call(this);}});}else{var loadingCol=self._createLoadingColumn();this.getChildrenInfo(assetid,function(assets){self._populateProjectColumn();self._createColumn(assets,function(){if(this.lineage.length>=limit){if(self.active===true){dfxjQuery(this.domElem).scrollTo(((this.lineage.length-pos)*this.colWidth),{axis:'x',duration:500});}}
if(dfx.isFn(callback)===true){callback.call(this);}},loadingCol);});}},getAssetElement:function(colIndex,assetid)
{var columns=this.getColumns();var safeId=this._getSafeAssetid(assetid);var assetElem=dfx.getClass('asset_'+safeId,columns[colIndex])[0];return assetElem;},getColumns:function()
{return dfx.getClass(this.getClass()+'-col',this.domElem);},getColumnIndex:function(col)
{var columns=this.getColumns();var ln=columns.length;for(var i=0;i<ln;i++){if(col===columns[i]){return i;}}
return-1;},_populateProjectColumn:function()
{var show=false;if(this.picker.hasOwnProperty('lineage')===true){if(this.picker.lineage!==null&&this.picker.lineage.hasOwnProperty('hideProject')===true){if(this.picker.lineage.hideProject===false){show=true;}}}
var c=this.getClass();var container=dfx.getId(c+'-projects');if(show===true&&container&&this.populated===false){dfx.showElement(container);this.populated=true;var assets=this.picker.projects.projects;var alen=assets.length;for(var i=0;i<alen;i++){var item=document.createElement('div');dfx.addClass(item,c+'-project');dfx.addClass(item,'asset_'+assets[i].id);var content='<div class="'+c+'-project-title">';content+='  <span>';content+='    <em>'+assets[i].type+'</em>';content+=assets[i].name;content+='  </span>';content+='</div>';dfx.setHtml(item,content);container.appendChild(item);if(parseInt(this.picker.projectid,10)===assets[i].id){dfx.addClass(item,'active');}
this._addProjectClickedEvent(item,assets[i]);}
this._updateWrapperWidth();}},_addProjectClickedEvent:function(elem,asset)
{var self=this;dfx.addEvent(elem,'click',function(e){var projects=dfx.getClass(self.getClass()+'-project');dfx.removeClass(projects,'active');dfx.addClass(elem,'active');self.picker.switchProject(asset.id,function(){self.initAutoScroll(false);});});},setPreselect:function(lineage)
{this.preSelect=lineage;},autoScroll:function(index)
{var self=this;if(this.preSelect===null||this.preSelect.length===0){this.preSelect=null;return;}
var assetid=this.preSelect.shift();var tilda=(assetid+'').indexOf('~');if(tilda===-1){assetid=parseInt(assetid,10);}
if(index===0){if(assetid===parseInt(this.picker.projectid,10)){this.setRoot(assetid,true,function(){self.autoScroll(index+1);});return;}else{this.picker.switchProject(assetid,function(){self.preSelect.unshift(assetid);self.initAutoScroll(false,self.preSelect);});return;}}
this.columnBuilding=true;self._selectAsset(index,assetid);this.colItemClicked(index,assetid,null,function(){self.fireLineageUpdatedActions();self.columnBuilding=false;self.autoScroll(index+1);})},initAutoScroll:function(noSelect,lineage,callback)
{if(dfx.isset(lineage)===false){lineage=[this.picker.projectid,this.picker.projectFoldersFiltered[0].id];if(noSelect===false&&this.picker.projectFolders.hasOwnProperty('currentAssetLineage')===true){var valid=false;var pid=parseInt(this.picker.projectFolders.currentAssetLineage[1],10);var fLen=this.picker.projectFoldersFiltered.length;for(var fdx=0;fdx<fLen;fdx++){var fid=parseInt(this.picker.projectFoldersFiltered[fdx].id,10);if(fid===pid){valid=true;break;}}
if(valid===true){lineage=this.picker.projectFolders.currentAssetLineage;}}}
var self=this;AssetManager.getAsset(lineage[(lineage.length-1)],function(asset){self.picker._updateCurrentSelection(asset);self.setPreselect(lineage);self.autoScroll(0);if(callback){callback.call(self);}});},_createLoadingColumn:function()
{var c=this.getClass()+'-col';var col=document.createElement('div');dfx.addClass(col,c);dfx.addClass(col,'loadingColumn');dfx.setHtml(col,'Loading...&nbsp;&nbsp;');this.wrapper.appendChild(col);this._updateWrapperWidth();return col;},_createColumn:function(assets,callback,loadingColumn)
{var col=null;if(!loadingColumn){var c=this.getClass()+'-col';col=document.createElement('div');dfx.addClass(col,c);}else{col=loadingColumn;dfx.empty(col);dfx.removeClass(col,'loadingColumn');}
var wrapper=document.createElement('div');dfx.addClass(wrapper,c+'-wrapper');col.appendChild(wrapper);var aln=assets.length;for(var i=0;i<aln;i++){wrapper.appendChild(this._createColItem(assets[i],col));}
if(!loadingColumn){this.wrapper.appendChild(col);}
this._updateWrapperWidth();callback.call(this);},_updateWrapperWidth:function()
{var cols=dfx.getClass(this.getClass()+'-col',this.wrapper);var len=cols.length;if(this.populated===false){len-=1;}
if(len>0){dfx.setStyle(this.wrapper,'width',(len*this.colWidth)+'px');}},_createColItem:function(asset,col)
{var c=this.getClass()+'-item';var main=document.createElement('div');var safeId=this._getSafeAssetid(asset.id);dfx.addClass(main,c+' asset_'+safeId);var content='<div class="'+c+'-icon" style="background-image:url('+asset.iconUrl+');"></div>';content+='<div class="'+c+'-title" title="'+asset.name+' [#'+asset.id+']">'+asset.name+'</div>';if(asset.children&&asset.children.length>0){content+='<div class="'+c+'-childCount"><span>'+asset.children.length;if((typeof asset.id==='string'&&(asset.id.search('~')!==-1||parseInt(asset.id,10)<0))&&asset.children.length>=300){content+='+';}
content+='</span></div>';}
dfx.setHtml(main,content);var self=this;dfx.addEvent(main,'click',function(e){if(self.columnBuilding===false){self.columnBuilding=true;var noReset=false;if(self.picker.uniqueSelect===false&&e.metaKey===true){noReset=true;}
self._selectAsset(self.getColumnIndex(col),asset.id,noReset);self.fireAssetSelected(asset);self.colItemClicked(self.getColumnIndex(col),asset.id,e,function(){self.fireLineageUpdatedActions();self.columnBuilding=false;});}});return main;},_selectLineage:function(lineage)
{if(!lineage){return;}
var ln=lineage.length;for(var i=0;i<ln;i++){this._selectAsset(i,lineage[i]);}},_selectAsset:function(colIndex,assetid,noReset)
{var columns=this.getColumns();var c=this.getClass()+'-item';var col=columns[colIndex];var lineage=dfx.clone(this.lineage);for(var i=0;i<colIndex;i++){dfx.removeClass(dfx.getClass(c,columns[i]),'last');dfx.removeClass(dfx.getClass(c,columns[i]),'selected');var safeId=this._getSafeAssetid(lineage[i]);dfx.addClass(dfx.getClass('asset_'+safeId,columns[i]),'selected');}
if(noReset!==true||colIndex!==this.prevSelectedColIdx){try{dfx.removeClass(dfx.getClass(c,col),'selected');dfx.removeClass(this.previousSelected,'last');}catch(e){}
this.selectedAssets=[assetid];}else{var index=this.selectedAssets.find(assetid);if(index===-1){this.selectedAssets.push(assetid);}else{this.selectedAssets.splice(index,1);var safeId=this._getSafeAssetid(assetid);dfx.removeClass(dfx.getClass('asset_'+safeId,columns[colIndex]),'last');dfx.removeClass(dfx.getClass('asset_'+safeId,columns[colIndex]),'selected');return false;}}
var elem=this.getAssetElement(colIndex,assetid);dfx.addClass(elem,'selected last');this.previousSelected=[elem];this.prevSelectedColIdx=colIndex;if(elem){return true;}
return false;},colItemClicked:function(colIndex,assetid,evt,callback)
{var columns=this.getColumns();var col=columns[colIndex];var c=this.getClass()+'-item';var safeId=this._getSafeAssetid(assetid);var main=dfx.getClass('asset_'+safeId,col)[0];while(col.nextSibling){dfx.remove(col.nextSibling);}
var self=this;this.picker.getAssetWithChildren(assetid,function(asset){self.currentAssetid=asset.id;if(asset.children&&asset.children.length>0){self.showChildren(asset.id,function(){colIndex++;self._updateLineage(colIndex,asset.id,(asset.children&&asset.children.length>0));if(callback){callback.call(self);}});}else{colIndex++;self._updateLineage(colIndex,asset.id,(asset.children&&asset.children.length>0));if(callback){callback.call(self);}}});},_updateLineage:function(colIndex,assetid,append)
{colIndex-=1;for(var i=(this.lineage.length-1);i>=colIndex;i--){this.lineage.pop();}
if(append===true){this.lineage.push(assetid);}},setRoot:function(assetid,setCurrent,callback)
{this.lineage=[assetid];this.rootAssetid=assetid;if(setCurrent===true){this.setCurrentAsset(assetid,true,callback);}else{this.update(true);}},setCurrentAsset:function(assetid,clear,callback)
{var index=this.lineage.find(assetid);if(index>0){this._selectAsset(index,assetid);this.colItemClicked(index,assetid);return;}else if(index===0){clear=true;}
this.currentAssetid=assetid;this.update(clear);this.showChildren(assetid,callback);},setLineage:function(lineage,selectedAssets)
{var self=this;this.setRoot(lineage[0],true,function(){self.lineage=[lineage[0]];self._setLineage(lineage,0,selectedAssets);});},_setLineage:function(lineage,index,selectedAssets)
{index=index||1;if(index>=lineage.length){return;}
var self=this;this.showChildren(lineage[index],function(){self._selectAsset((index-1),lineage[index]);self.lineage.push(lineage[index]);if((index+1)===lineage.length){self.setSelectedAssets(selectedAssets);}
self._setLineage(lineage,++index,selectedAssets);});},setSelectedAssets:function(assets)
{if(!assets){return;}
var columns=this.getColumns();var ln=columns.length;var colIdx=0;if((assets instanceof Array)===true){var aln=assets.length;if(aln>0){colIdx=(ln-1);for(var i=0;i<aln;i++){var noReset=true;if(i===0){noReset=false;}
if(this._selectAsset(colIdx,assets[i],noReset)===false){colIdx=(ln-2);if(colIdx<0){return;}}}}}else if((typeof assets)==='number'){colIdx=(ln-1);if(this._selectAsset(colIdx,assets)===false){colIdx=(ln-2);if(colIdx<0){return;}}}},getButtons:function()
{var button=document.createElement('div');button.title='List View';dfx.addClass(button,this.getClass()+'-listButton');return{list:button};},show:function(type)
{this.active=true;},hide:function(type)
{this.active=false;},getChildrenInfo:function(assetid,callback)
{var self=this;this.picker.getAsset(assetid,function(asset){if(asset&&asset.children&&asset.children.length>0){self.picker.getAssets(asset.children,function(assets){if(callback){callback.call(self,assets);}});}});},_getSafeAssetid:function(assetid)
{var cleanid=assetid.toString().replace(/[^a-zA-Z0-9_-]/gi,function(char){return char.charCodeAt(0);});return cleanid;}};dfx.inherits('AssetPickerListView','AbstractAssetPickerView');function AssetPickerSearchViewWidgetType(id,picker)
{AbstractAssetPickerViewWidgetType.call(this,id,picker);this.widgetType='AssetPickerSearchView';this.textFieldWidget=null;this._listContainer=null;this._infoPanel=null;}
AssetPickerSearchViewWidgetType.prototype={create:function(callback)
{var main=document.createElement('div');var c=this.getClass();dfx.addClass(main,c);this.domElem=main;var content='<div class="'+c+'-left">';content+='<div class="'+c+'-left-title"></div>';content+='<div class="'+c+'-left-desc"></div>';content+='<div class="'+c+'-left-thumb"></div>';content+='<div class="'+c+'-left-location-title">Location</div>';content+='<div class="'+c+'-left-location"></div>';content+='<div class="'+c+'-left-showLocButton"></div>';content+='<div class="'+c+'-left-noResults"></div>';content+='</div>';content+='<div class="'+c+'-right">';content+='<div class="'+c+'-right-results"></div>';content+='<div class="'+c+'-right-noResults">No results to display, please adjust your search terms.</div>';content+='</div>';dfx.setHtml(main,content);this._infoPanel={name:dfx.getClass(c+'-left-title',main)[0],desc:dfx.getClass(c+'-left-desc',main)[0],thumb:dfx.getClass(c+'-left-thumb',main)[0],loc:dfx.getClass(c+'-left-location',main)[0]}
this._leftNoResultsCont=dfx.getClass(c+'-left-noResults',main)[0];this._listContainer=dfx.getClass(c+'-right-results',main)[0];this._noResultsContainer=dfx.getClass(c+'-right-noResults',main)[0];var self=this;this.includeWidget('Button',function(){var showLoc=self.createWidget(null,'Button','ButtonWidgetType-liteGrey');showLoc.setName('Show Location');showLoc.create(function(el){var btncont=dfx.getClass(c+'-left-showLocButton',main)[0];btncont.appendChild(el);showLoc.addClickEvent(function(){self.fireLineageUpdatedActions();self.fireSwitchOffActions();});callback.call(self,main);return;});});},getButtons:function()
{var main=document.createElement('div');dfx.addClass(main,this.getClass()+'-Search');var cancel=document.createElement('div');dfx.addClass(cancel,this.getClass()+'-Search-cancel');main.appendChild(cancel);dfx.addEvent(cancel,'click',function(){self.textFieldWidget.setValue('');self.fireSwitchOffActions();});var label=document.createElement('span');dfx.setHtml(label,'Search');main.appendChild(label);var self=this;this.includeWidgets(['TextField','Button'],function(){self.textFieldWidget=self.createWidget(null,'TextField');self.textFieldWidget.setDisplayAsBlock(false);self.textFieldWidget.setWidth(150);var button=self.createWidget(null,'Button','ButtonWidgetType-liteGrey');button.setName('Go');self.textFieldWidget.create(function(tel){self.textFieldWidget.addOnChangeEvent(function(val,evt){if(evt.keyCode===13){if(dfx.trim(val).length===0){return;}
self.search();self.picker.showView('search','search');self.picker.hideViewButtons();}});main.appendChild(tel);button.create(function(bel){main.appendChild(bel);});button.addClickEvent(function(){if(dfx.trim(self.textFieldWidget.getValue()).length>0){self.search();self.picker.showView('search','search');self.picker.hideViewButtons();}});});});return{search:main,_noEvent:true};},search:function(value)
{var value=dfx.trim(this.textFieldWidget.getValue());var locations=this.picker.getLocationsIds();if(value.length>0){var self=this;AssetManager.searchAsset(value,function(assets){self.picker.showSearchResults(assets.length);self.updateList(assets);},locations);}},updateList:function(assets)
{if(assets.length<=0){dfx.empty(this._listContainer);dfx.addClass(this._noResultsContainer,'active');dfx.addClass(this._leftNoResultsCont,'active');return;}
dfx.removeClass(this._leftNoResultsCont,'active');dfx.removeClass(this._noResultsContainer,'active');var c=this.getClass()+'-list';var list=document.createElement('div');dfx.addClass(list,c);var self=this;this.picker.getAssets(assets,function(assetInfos){var ln=assetInfos.length;for(var i=0;i<ln;i++){var elem=self._createListItem(assetInfos[i]);list.appendChild(elem);if(i===0){dfx.trigger(elem,'click');}}
dfx.empty(self._listContainer);self._listContainer.appendChild(list);});},_createListItem:function(asset)
{var c=this.getClass()+'-list-item';var main=document.createElement('div');dfx.addClass(main,c)
main.setAttribute('assetid',asset.id);var content='<div class="'+c+'-icon" style="background-image:url('+asset.iconUrl+')"></div>';content+='<div class="'+c+'-title" title="'+asset.name+' [#'+asset.id+']">'+asset.name+'</div>';if(asset.children&&asset.children.length>0){content+='<div class="'+c+'-childCount">'+asset.children.length+'</div>';}
dfx.setHtml(main,content);var self=this;dfx.addEvent(main,'click',function(){dfx.removeClass(dfx.getClass('selected',self._listContainer),'selected');dfx.addClass(main,'selected');self.updateInfo(asset);});return main;},updateInfo:function(asset)
{dfx.setHtml(this._infoPanel.name,asset.name);var desc='';if(asset.getAttribute('width')&&asset.getAttribute('height')){desc=asset.getAttribute('width')+' x '+asset.getAttribute('height');if(asset.getAttribute('size')){desc+=' ('+dfx.readableSize(asset.getAttribute('size'))+')';}}
dfx.setHtml(this._infoPanel.desc,desc);var url=Widget.BASE_URL+'?a='+asset.id+'&tb=1';dfx.setStyle(this._infoPanel.thumb,'background-image','url('+url+')');var self=this;AssetManager.getAssetLineages(asset.id,null,function(lineages){self.picker.getAsset(asset.id,function(asset){if(lineages&&lineages.length>0){var lineage=lineages[0];if(lineage.length===0){lineage.push(asset.id);}
self._updateLineage(lineage);self.setSelectedAssets([asset.id]);self.picker._updateCurrentSelection(asset);}});});},_updateLineage:function(lineage,assetid)
{this.lineage=dfx.clone(lineage);this.lineage.unshift(this.picker.projectid);var self=this;this.picker.getAssets(lineage,function(assets){var aln=lineage.length;var names=[];for(var i=0;i<aln;i++){var asset=self._getAsset(lineage[i],assets);names.push('<span>'+asset.name+'</span>');}
dfx.setHtml(self._infoPanel.loc,names.join('<span class="sp"></span>'));});},_getAsset:function(id,assets)
{var ln=assets.length;for(var i=0;i<ln;i++){if(parseInt(assets[i].id)===parseInt(id)){return assets[i];}}
return null;}};dfx.inherits('AssetPickerSearchView','AbstractAssetPickerView');function TextAttributeEditorWidgetType(id)
{AbstractAttributeEditorWidgetType.call(this,id);this.viper=WidgetStore.get('viper');this.attrType='text';this.scripts=['Viper'];}
TextAttributeEditorWidgetType.prototype={load:function(callback)
{if(dfx.isset(window.Viper)===true){if(WidgetStore.get('viper')){this.addViperPlugins(callback);}else{var self=this;this._createViper(function(){self.addViperPlugins(callback);});}}else{var self=this;this.loadScripts(dfx.clone(this.scripts),function(){self.viper=WidgetStore.get('viper');if(dfx.isset(self.viper)===false){self._createViper(callback);}});}},_createViper:function(callback)
{var viperOpts={viperURL:Widget.prototype.getWidgetUrl('WYSIWYGEditorWidget')+'/viper'};var self=this;var viper=new Viper(viperOpts,function(viper){self.viper=viper;WidgetStore.add('viper',self.viper);self.load(callback);});},addViperPlugins:function(callback)
{ViperPluginManager.addPluginSet('simple',['ViperRedoPlugin',{name:'ViperCopyPastePlugin',settings:{pasteType:'raw'}}],true,callback);},setViperPlugins:function()
{ViperPluginManager.usePluginSet('simple');},loadScripts:function(scripts,callback)
{if(scripts.length===0){callback.call(this);return;}
var url=Widget.prototype.getWidgetUrl('WYSIWYGEditorWidget');var script=scripts.shift();var self=this;dfx.includeScript(url+'viper/'+script+'.js',function(){self.loadScripts(scripts,callback);});},init:function()
{AbstractAttributeEditorWidgetType.prototype.init.call(this);this.viper=WidgetStore.get('viper');var toolbar=ViperPluginManager.getPlugin('ViperToolbarPlugin');if(dfx.isset(toolbar)===true){toolbar.createToolbar();}},activate:function(data)
{AbstractAttributeEditorWidgetType.prototype.activate.call(this,data);dfx.setStyle(data.placeHolder,'display','none');this.setViperPlugins();this.viper.setEditableElement(data.target);this.viper.setEnabled(true);var self=this;this.viper.registerCallback('clickedOutside','textEditor',function(){EditingEditorManager.disableActiveEditor(data);self.viper.removeCallback(null,'textEditor');});this.viper.registerCallback('nodesChanged','textEditor',function(nodesInfo){var nodes=data.attribute.nodes;var ln=nodes.length;var value=self.viper.getContents(data.target);data.attribute.setValue(value);for(var i=0;i<ln;i++){if(nodes[i]!==data.target){dfx.setHtml(nodes[i],value);}}
EditingEditorManager.contentChanged(data,nodesInfo);});this.viper.registerCallback('caretPositioned','textEditor',function(){EditingEditorManager.caretPositioned();});},getCaretCoords:function()
{var coords=null;if(this.viper){coords=this.viper.getCaretCoords();}
return coords;},getAttributeValue:function(attr)
{return this.viper.getSaveContent(attr.nodes[0]);},deactivate:function()
{this.viper.setEnabled(false);},remove:function()
{this.attributes=null;if(this.viper){this.viper.removeCallback(null,'textEditor');this.viper.setEnabled(false);this.viper=null;}}};dfx.inherits('TextAttributeEditor','AbstractAttributeEditor');function AbstractEditingModeWidgetType(id)
{AbstractContainerWidgetType.call(this,id);var loc=window.location.href;this.contentDiv=dfx.getId('EditingAsset');var body=document.getElementsByTagName('body')[0];dfx.setStyle(body,'background-color','#fff');dfx.setStyle(body,'background-image','none');var modeSwitcher=WidgetStore.get('EditingModeSwitcher');var cm=modeSwitcher.getCurrentMode();if(cm!=='PreviewEditingMode'&&cm!=='EditEditingMode'){body.className='';}}
AbstractEditingModeWidgetType.prototype={setBackgroundColor:function(color)
{if(!color){color=dfx.getStyle(this.contentDiv,'background-color');}
var bgImg=dfx.getStyle(this.contentDiv,'background-image');var bgRep=dfx.getStyle(this.contentDiv,'background-repeat');dfx.setStyle(document.body,'background-color',color);dfx.setStyle(document.body,'background-image',bgImg);dfx.setStyle(document.body,'background-repeat',bgRep);dfx.setStyle(this.contentDiv,'background-color','transparent');dfx.setStyle(this.contentDiv,'background-image','none');dfx.setStyle(this.contentDiv,'background-repeat','repeat');dfx.setStyle(dfx.getId('EditingContents'),'position','absolute');dfx.setStyle(dfx.getId('EditingContents'),'width','100%');dfx.setStyle(dfx.getId('EditingAsset'),'position','relative');var bgPos=dfx.getStyle(this.contentDiv,'background-position');if(bgImg!=='none'){if(bgPos==='0% 0%'||typeof bgPos==='undefined'||bgPos==='0 0'){dfx.setStyle(document.body,'background-position','0% 38px');}else{var posRe=/(-?\d+)(%|in|cm|mm|em|ex|pt|pc|px)?\s+(-?\d+)(%|in|cm|mm|em|ex|pt|pc|px)?/;var res=posRe.exec(bgPos);if(res!==null){var verticalOffset=parseInt(res[3]);var measurement=res[4];if(verticalOffset===0||(verticalOffset!==0&&measurement==='px')){var hPos=res[1];if(res[2]){hPos=hPos+res[2];}
var vPos=(verticalOffset+38)+'px';var newPos=hPos+' '+vPos;dfx.setStyle(document.body,'background-position',newPos);}else{dfx.setStyle(document.body,'background-position',bgPos);}
dfx.setStyle(this.contentDiv,'background-position','0% 0%');}}}},switchMode:function()
{var modeSwitcher=WidgetStore.get('EditingModeSwitcher');var divs=dfxjQuery('div.mode-button');var divsLen=divs.length;for(var i=0;i<divsLen;i++){if(divs[i].id==='EditEditingModeWidgetType'){modeSwitcher.switchMode(divs[i]);break;}}},switchModeBegin:function()
{return true;},switchModeEnd:function(){},removeEditingAssetStyle:function()
{if(this.editingAssetCssUrl){var head=document.getElementsByTagName('head').item(0);var links=head.getElementsByTagName('link');var linksLen=links.length;for(var i=0;i<linksLen;i++){if(links[i].href===this.editingAssetCssUrl){dfx.remove(links[i]);}}}}};AbstractEditingModeWidgetType.prototype.setUrl=function(url)
{window.location=url;};dfx.inherits('AbstractEditingMode','AbstractContainer');function AbstractSettingsScreenWidgetType(id,screenid,system,title,parent,assetid,readOnly)
{AbstractContainerWidgetType.call(this,id);this.screenid=screenid;this.system=system;this.title=title;this.parent=parent;this.assetid=assetid;this.readOnly=readOnly||false;var autoSaveWidget=WidgetStore.get('EditingAutoSave');if(autoSaveWidget){autoSaveWidget.registerWidget(this);}}
AbstractSettingsScreenWidgetType.prototype={displayScreenReadOnlyWarning:function(callback,forceCb,rid)
{var self=this;var rid=rid||null;var setForceLock=function(resourceid){Locking.canForceLock(resourceid,function(canForceLock){var buttonTitle=null;if(canForceLock===true){buttonTitle='Force Edit';}
wrnOps={id:self.id+'-screenLockedMsg',leftTitle:'Read Only',mainMessage:'',colour:'yellow',buttonTitle:buttonTitle,buttonCb:function(){self.forceEdit(forceCb);}};var msg='This screen is <strong>Read Only</strong> because ';msg+='<strong>'+self.lockInfo.fullName+'</strong> is currently making changes.';wrnOps.mainMessage=msg;self.createScreenWarningMessage(wrnOps,function(el){callback.call(self,el);});});};if(rid===null){this.parent.getLockResourceid(function(rrid){setForceLock(rrid);});}else{setForceLock(rid);}},forceEdit:function(callback,rid)
{var self=this;var rid=rid||null;var forceAcquire=function(resourceid){Locking.acquire(resourceid,function(lock){if(lock===true){self.setReadOnly(false);dfx.remove(dfx.getId(self.id+'-screenLockedMsg'));if(dfx.isFn(callback)===true){callback.call(self);self.removeDisabledDiv();}
if(dfx.isFn(self.saveScreenSettings)===true&&dfx.isFn(self.revertScreenSettings)===true){self.setSaveButton(function(){self.saveScreenSettings();},function(){self.revertScreenSettings();});}}else{self.errorDialog('Failed to acquire the lock on the screen.','Error',function(){self.removeDisabledDiv();});}},true);};if(rid===null){this.parent.getLockResourceid(function(rrid){forceAcquire(rrid);});}else{forceAcquire(rid);}},getAutoSaveContents:function()
{var saveData={};return saveData;},loadAutoSaveContents:function(content,callBack)
{if(callback){callback.call(this);}},canSwitchOffScreen:function()
{return true;}};dfx.inherits('AbstractSettingsScreen','AbstractContainer');function AssetAssetEditContentsWidgetType(id,assetid,extraAttrs,hasPerm)
{AbstractContainerWidgetType.call(this,id);dfx.addClass(document.body,'AssetAssetEditContentsWidgetType-body');this.assetid=assetid;this.currentMode=WidgetStore.get('EditingModeSwitcher').currentMode;this.widgetType='AssetAssetEditContents';this.extraAttrs=extraAttrs||[];this.readOnly=!hasPerm||false;this.lockError={};this.contentDiv=dfx.getId('EditingAsset');this.setBackgroundColor();this.start();}
AssetAssetEditContentsWidgetType.prototype={start:function()
{if(this.currentMode==='EditEditingMode'){var self=this;this.acquireLock(function(){self.init();});}else{this.init();}},setBackgroundColor:function(color)
{if(!color){color=dfx.getStyle(this.contentDiv,'background-color');}
var bgImg=dfx.getStyle(this.contentDiv,'background-image');var bgRep=dfx.getStyle(this.contentDiv,'background-repeat');dfx.setStyle(document.body,'background-color',color);dfx.setStyle(document.body,'background-image',bgImg);dfx.setStyle(document.body,'background-repeat',bgRep);dfx.setStyle(this.contentDiv,'background-color','transparent');dfx.setStyle(this.contentDiv,'background-image','none');dfx.setStyle(this.contentDiv,'background-repeat','repeat');dfx.setStyle(dfx.getId('EditingContents'),'position','absolute');dfx.setStyle(dfx.getId('EditingContents'),'width','100%');dfx.setStyle(dfx.getId('EditingAsset'),'position','relative');var bgPos=dfx.getStyle(this.contentDiv,'background-position');if(bgImg!=='none'){if(bgPos==='0% 0%'||typeof bgPos==='undefined'||bgPos==='0 0'){dfx.setStyle(document.body,'background-position','0% 38px');}else{var posRe=/(-?\d+)(%|in|cm|mm|em|ex|pt|pc|px)?\s+(-?\d+)(%|in|cm|mm|em|ex|pt|pc|px)?/;var res=posRe.exec(bgPos);if(res!==null){var verticalOffset=parseInt(res[3]);var measurement=res[4];if(verticalOffset===0||(verticalOffset!==0&&measurement==='px')){var hPos=res[1];if(res[2]){hPos=hPos+res[2];}
var vPos=(verticalOffset+38)+'px';var newPos=hPos+' '+vPos;dfx.setStyle(document.body,'background-position',newPos);}else{dfx.setStyle(document.body,'background-position',bgPos);}
dfx.setStyle(this.contentDiv,'background-position','0% 0%');}}}},init:function()
{if(this.currentMode==='EditEditingMode'){var self=this;self.nameFieldid='assetEdit_'+self.assetid+'-name';self.nameField=WidgetStore.get(self.nameFieldid);self.oriName=self.nameField.getValue();dfx.addEvent(dfx.getId(self.nameFieldid),'keyup',function(e){if(self.oriName===self.nameField.getValue()){self.disableSaveButton();}else{self.enableSaveButton();}});this.setSaveButton(function(){self.save();},function(){self.displayDisabledDiv(true);var params={attributes:['name'],type:false,typeIcon:false,linking:[],urls:false};AssetManager.getAsset(self.assetid,function(asset){self.nameField.setValue(asset.name);self.disableSaveButton();self.removeDisabledDiv();},false,params);});this.ready();}},acquireLock:function(cb)
{if(dfx.isset(this.assetid)===false){return;}
var self=this;var resource='AssetEdit:'+this.assetid;Locking.acquire(resource,function(result){if(result!==true){self.setReadOnly(true);self.lockError=Locking.getError(result,true);self.setScreenLock();}
if(dfx.isFn(cb)===true){cb.call(self);}});WidgetStore.addDataChangeListener('AssetEditContents','activeMode',function(newVal,oldVal){if(oldVal.id==='EditEditingMode'&&newVal.id!==oldVal.id){Locking.release(resource);self.setReadOnly(false);WidgetStore.removeDataChangeListener('AssetEditContents','activeMode');}});},setScreenLock:function(){},displayAssetEditReadOnlyWarning:function(callback,forceCb)
{var self=this;var setForceLock=function(resourceid){Locking.canForceLock(resourceid,function(canForceLock){var buttonTitle=null;if(canForceLock===true){buttonTitle='Force Edit';}
wrnOps={id:self.id+'-ReadOnlyMsg',leftTitle:'Read Only',mainMessage:'',colour:'yellow',buttonTitle:buttonTitle,buttonCb:function(){self.displayDisabledDiv(true);self.forceEdit(forceCb);}};var msg='This screen is <strong>Read Only</strong> because ';msg+='<strong>'+self.lockError.fullName+'</strong> is currently making changes.';wrnOps.mainMessage=msg;self.createScreenWarningMessage(wrnOps,function(el){callback.call(self,el);});});};setForceLock('AssetEdit:'+this.assetid);},forceEdit:function(forceCb)
{var self=this;var forceAcquire=function(resourceid){Locking.acquire(resourceid,function(lock){if(lock===true){self.setReadOnly(false);dfx.remove(dfx.getId(self.id+'-ReadOnlyMsg'));if(dfx.isFn(forceCb)===true){forceCb.call(self);self.removeDisabledDiv();}}else{self.errorDialog('Failed to acquire the lock on the screen.','Error',function(){self.removeDisabledDiv();});}},true);};forceAcquire('AssetEdit:'+this.assetid);},save:function()
{var self=this;var params={widget:'AssetAssetEditContentsWidgetType',action:'processWidget',assetid:this.assetid,op:'saveAsset',assetName:dfx.jsonEncode(this.nameField.getValue())};this.displayDisabledDiv(true);dfx.post(window.location.href,params,function(data){data=dfx.jsonDecode(data);if(data.success){self.oriName=data.success;}
self.removeDisabledDiv();});}};dfx.inherits('AssetAssetEditContents','AbstractContainer');function AssetEditWidgetType(id,assetid)
{AbstractContainerWidgetType.call(this,id);this.assetid=assetid;}
AssetEditWidgetType.prototype={init:function(data,assetid,editables){},getRequestParams:function()
{var params={keys:['widget','__action','assetid'],vals:['EditingAssetWidget','performAction',this.assetid]};return params;}};dfx.inherits('AssetEdit','AbstractContainer');function AssetListWidgetType(id)
{AbstractContainerWidgetType.call(this,id);this.widgetType='AssetList';this.assets={};this.list=WidgetStore.get(this.id+'-list');if(this.list){this.children.push(this.list.id);}}
AssetListWidgetType.prototype={addAsset:function(assetid)
{var self=this;var params={attributes:['name'],type:false,typeIcon:true,linking:[],urls:false};AssetManager.getAsset(assetid,function(asset){self.assets[assetid]=1;var iconDiv=document.createElement('div');dfx.addClass(iconDiv,self.getClass()+'-icon');dfx.setStyle(iconDiv,'background-image','url('+asset.iconUrl+')');self.list.addItem(assetid,[iconDiv,asset.name]);},false,params);},getValue:function()
{var assetids=this.list.getValue();return assetids;},setValue:function(value)
{this.clear();var ln=value.length;for(var i=0;i<ln;i++){this.addAsset(value[i]);}},clear:function()
{this.list.clearItems();this.assets={};},disable:function()
{this.list.disable();},enable:function()
{this.list.enable();},addRemovedEvent:function(fn)
{this.list.addRemovedEvent(fn);},addItemDisabledEvent:function(fn)
{this.list.addItemDisabledEvent(fn);},addItemEnabledEvent:function(fn)
{this.list.addItemEnabledEvent(fn);}};dfx.inherits('AssetList','AbstractContainer');function AssociatedFileUploadWidgetType(id,designid,associatedFiles,missingFiles,unusedFiles)
{AbstractContainerWidgetType.call(this,id);this.widgetType='AssociatedFileUpload';this.designid=designid;this.associatedFiles=associatedFiles||null;this.missingFiles=missingFiles;this.missingFilesExists=false;this.missingFileResized=false;this.unusedFiles=unusedFiles;this.fileUploadKeyPrefix='';this.fileUploadHolder=null;this.fileUploadStatus=null;this.fileUploadAddBtn=null;this.associatedFilesHidden=false;this.fileUploadUploadBtnWrapper=null;this.fileUploadUploadBtn=null;this.fileUploadUploadBtnEnabled=true;this.fileUploadUploadPendingNum=0;this.missingFilesNoticeWrapper=null;this.uploadForms=[];this.progressBars={};this.currentFileName='';this.addFileCallbacks=[];this.removeFileCallbacks=[];this.replaceFileCallbacks=[];this.uploadingStartCallbacks=[];this.uploadingCompleteCallbacks=[];var self=this;Widget.registerWindowResize(function(e){self.resizeFileList();});}
AssociatedFileUploadWidgetType.prototype={setReadOnly:function(readOnly)
{AbstractContainerWidgetType.prototype.setReadOnly.call(this,readOnly);var result=[];var deletedBtns=dfx.getClass(this.widgetType+'-assocFileDelete',dfx.getId(this.id+'-assocFileListWrapper'));var dfLn=deletedBtns.length;var fln=this.uploadForms.length;var lastF=this.uploadForms[(fln-1)];if(readOnly){for(var i=0;i<dfLn;i++){dfx.setStyle(deletedBtns[i],'visibility','hidden');}
dfx.setStyle(lastF,'visibility','hidden');}else{for(var i=0;i<dfLn;i++){dfx.setStyle(deletedBtns[i],'visibility','visible');}
dfx.setStyle(lastF,'visibility','visible');}},resizeFileList:function()
{var dim=dfx.getWindowDimensions();var offsetH=375;var rod=dfx.getId('DesignAdminScreen-readOnlyMsg');if(rod){offsetH+=37;}
var missingLen=this.missingFiles.length;if(missingLen>0){offsetH+=208;}
var status=dfx.getId(this.id+'-associatedFileUploadStatus');if(status&&dfx.getStyle(status,'display')!=='none'){offsetH+=39;offsetH+=((this.uploadForms.length-1)*29);}
var designWdgt=WidgetStore.get('DesignAdminScreen');if(designWdgt.assocFilesHidden===false){var width=0;if(dim.width>1500){width=785;}else if(dim.width<=1120){width=400;}else{width=(dim.width-720);}
dfx.setStyle(dfx.getId('DesignAdminScreen-associatedFiles'),'left',width+'px');}
var assocFileListWrapOutter=dfx.getId(this.id+'-assocFileListWrapperOutter');dfx.setStyle(assocFileListWrapOutter,'height',(dim.height-offsetH)+'px');},create:function(callback)
{var self=this;var assocFileSelectBtn=self.createWidget(self.id+'-associatedFileAddBtn','Button');assocFileSelectBtn.setName('Add');assocFileSelectBtn.create(function(addBtnEl){var uploadStartBtn=self.createWidget(self.id+'-associatedFileUploadBtn','Button');uploadStartBtn.setName('Start Upload');uploadStartBtn.create(function(startBtnEl){dfx.addClass(startBtnEl,self.widgetType+'-StartUploadButton');var wrap=document.createElement('div');wrap.id=self.id;var header=document.createElement('div');var headerTitle=document.createElement('div');var headerHide=document.createElement('div');headerHide.id=self.id+'-AssociatedHeaderHide';headerHide.innerHTML='&nbsp;';dfx.addClass(header,self.widgetType+'-associatedHeader');dfx.addClass(headerTitle,self.widgetType+'-associatedHeaderTitle');dfx.addClass(headerHide,self.widgetType+'-associatedHeaderHide');dfx.addEvent(headerHide,'click',function(e){if(self.associatedFilesHidden===true){dfx.showElement(dfx.getId(self.id+'-associatedFiles'));}else{dfx.hideElement(dfx.getId(self.id+'-associatedFiles'));}});headerTitle.innerHTML='Associated Files';header.appendChild(headerTitle);header.appendChild(headerHide);var assocFileUpload=document.createElement('div');var assocFileSelectBtnWrap=document.createElement('div');var assocFileUploadIframes=document.createElement('div');assocFileUploadIframes.id=self.id+'-associatedFileUploadHolder';dfx.addClass(assocFileUpload,self.widgetType+'-associatedFileUpload');dfx.addClass(assocFileUploadIframes,self.widgetType+'-associatedFileUploadIframesHolder');dfx.addClass(assocFileSelectBtnWrap,self.widgetType+'-associatedFileUploadAddFileBtnWrap');assocFileSelectBtnWrap.appendChild(addBtnEl);assocFileUpload.appendChild(assocFileUploadIframes);assocFileUpload.appendChild(assocFileSelectBtnWrap);var assocFileUploadStatus=document.createElement('div');assocFileUploadStatus.id=self.id+'-associatedFileUploadStatus';dfx.addClass(assocFileUploadStatus,'associatedFileUploadStatus');var assocFileUploadBtnWrap=document.createElement('div');assocFileUploadBtnWrap.id=self.id+'-associatedFileUploadBtnWrapper';dfx.addClass(assocFileUploadBtnWrap,'associatedFileUploadBtnWrapper');assocFileUploadBtnWrap.appendChild(startBtnEl);var missingFileDivWrap=document.createElement('div');missingFileDivWrap.id=self.id+'-missingFilesNoticeWrapper';dfx.addClass(missingFileDivWrap,'missingFilesNoticeWrapper');dfx.addClass(missingFileDivWrap,'missingFilesNoticeWrapper-hidden');self.missingFilesNoticeWrapper=missingFileDivWrap;var assocFileListWrap=document.createElement('div');assocFileListWrap.id=self.id+'-assocFileListWrapper';dfx.addClass(assocFileListWrap,'associatedFileListWrapper');var assocFileListWrapOutter=document.createElement('div');assocFileListWrapOutter.id=self.id+'-assocFileListWrapperOutter';dfx.addClass(assocFileListWrapOutter,'associatedFileListWrapperOutter');assocFileListWrapOutter.appendChild(assocFileListWrap);wrap.appendChild(header);wrap.appendChild(assocFileUpload);wrap.appendChild(assocFileUploadStatus);wrap.appendChild(assocFileUploadBtnWrap);wrap.appendChild(missingFileDivWrap);self.addAddFileCallback(function(){var currHeight=parseInt(dfx.getStyle(assocFileListWrapOutter,'height'));var offsetH=29;if(self.uploadForms.length===1){offsetH+=39;}
dfx.setStyle(assocFileListWrapOutter,'height',(currHeight-offsetH)+'px');if(self.uploadForms.length===5){self.hideCurrentFileUploadInput();}});self.addUploadingCompleteCallback(function(numFiles){var currHeight=parseInt(dfx.getStyle(assocFileListWrapOutter,'height'));var offsetH=(29*numFiles)+39;dfx.setStyle(assocFileListWrapOutter,'height',(currHeight+offsetH)+'px');});var headerFileWrap=document.createElement('div');dfx.addClass(headerFileWrap,self.widgetType+'-assocHeaderFileWrap');var headerC='';headerC+='<div class="'+self.widgetType+'-assocHeaderFileIcon">&nbsp;</div>';headerC+='<div class="'+self.widgetType+'-assocHeaderFileName">File Name</div>';headerC+='<div class="'+self.widgetType+'-assocHeaderFileSize">Size / ID</div>';headerC+='<div class="'+self.widgetType+'-assocHeaderFileNowUse">!</div>';headerC+='<div class="'+self.widgetType+'-assocHeaderFileDelete">&nbsp;</div>';dfx.setHtml(headerFileWrap,headerC);assocFileListWrap.appendChild(headerFileWrap);var lastFileWrap=null;if(self.associatedFiles!==null){for(var fid in self.associatedFiles){if(self.associatedFiles.hasOwnProperty(fid)){(function(fileid){var fileName=self.associatedFiles[fileid].fileName;var iconUrl=self.associatedFiles[fileid].iconUrl;var fileType=self.associatedFiles[fileid].fileType;var fileSize=self.associatedFiles[fileid].fileSize;var fileWrap=document.createElement('div');fileWrap.id=self.id+'_'+fileid+'_wrap';dfx.addClass(fileWrap,self.widgetType+'-assocFileWrap');dfx.attr(fileWrap,'fileid',fileid);var content='';content+='<div class="'+self.widgetType+'-assocFileIcon">';content+='<img src="'+iconUrl+'" class="'+self.widgetType+'-assocFileIcon"/></div>';content+='<div class="'+self.widgetType+'-assocFileName">'+fileName+'</div>';content+='<div class="'+self.widgetType+'-assocFileSize">'+fileSize+'</div>';content+='<div class="'+self.widgetType+'-assocFileNowUse';if(self.unusedFiles[fileid]){content+=' warning';}
content+='">&nbsp;</div>';content+='<div class="'+self.widgetType+'-assocFileDelete">&nbsp;</div>';dfx.setHtml(fileWrap,content);assocFileListWrap.appendChild(fileWrap);lastFileWrap=fileWrap;var fileDeleteDiv=dfx.getClass(self.widgetType+'-assocFileDelete',fileWrap)[0];dfx.addEvent(fileDeleteDiv,'click',function(e){var changeid=self.designid+':associated_file:'+fileid;var deletedClass='delete';var row=dfx.getId(self.id+'_'+fileid+'_wrap');var designAdmin=WidgetStore.get('DesignAdminScreen');if(dfx.hasClass(row,deletedClass)===false){dfx.addClass(row,deletedClass);dfx.addClass(fileDeleteDiv,'recover');designAdmin.changes[changeid]=true;designAdmin.screenModified();}else{dfx.removeClass(row,deletedClass);dfx.removeClass(fileDeleteDiv,'recover');designAdmin.changes[changeid]=false;designAdmin.screenModified();}});})(fid);}}}
dfx.addClass(lastFileWrap,self.widgetType+'-assocFileWrapLast');wrap.appendChild(assocFileListWrapOutter);self.fileUploadHolder=assocFileUploadIframes;self.fileUploadStatus=assocFileUploadStatus;self.fileUploadAddBtn=assocFileSelectBtn;self.fileUploadUploadBtnWrapper=assocFileUploadBtnWrap;self.fileUploadUploadBtn=uploadStartBtn;dfx.hideElement(self.fileUploadUploadBtnWrapper);if(dfx.isFn(callback)){callback.call(self,wrap);return;}});});},showCurrentFileUploadInput:function()
{var uploadForm=dfx.getClass('AssociatedFileUpload-associatedFileUpload',dfx.getId('DesignAdminScreen-associatedFileUpload-'+this.designid))[0];dfx.showElement(uploadForm);},hideCurrentFileUploadInput:function()
{var uploadForm=dfx.getClass('AssociatedFileUpload-associatedFileUpload',dfx.getId('DesignAdminScreen-associatedFileUpload-'+this.designid))[0];dfx.hideElement(uploadForm);},getDeletedFiles:function()
{var result=[];var deletedFiles=dfx.getClass('delete',dfx.getId(this.id+'-assocFileListWrapper'));var dfLn=deletedFiles.length;for(var i=0;i<dfLn;i++){result.push(dfx.attr(deletedFiles[i],'fileid'));}
return result;},createAssocFileList:function(assocFileListWrap,callback)
{var self=this;var lastFileWrap=null;if(self.associatedFiles!==null){dfx.foreach(self.associatedFiles,function(fileid){var fileName=self.associatedFiles[fileid].fileName;var iconUrl=self.associatedFiles[fileid].iconUrl;var fileType=self.associatedFiles[fileid].fileType;var fileSize=self.associatedFiles[fileid].fileSize;var fileWrap=document.createElement('div');fileWrap.id=self.id+'_'+fileid+'_wrap';dfx.addClass(fileWrap,self.widgetType+'-assocFileWrap');dfx.attr(fileWrap,'fileid',fileid);var content='';content+='<div class="'+self.widgetType+'-assocFileIcon">';content+='<img src="'+iconUrl+'" class="'+self.widgetType+'-assocFileIcon"/></div>';content+='<div class="'+self.widgetType+'-assocFileName">'+fileName+'</div>';content+='<div class="'+self.widgetType+'-assocFileSize">'+fileSize+'</div>';content+='<div class="'+self.widgetType+'-assocFileNowUse';if(self.unusedFiles[fileid]){content+=' warning';}
content+='">&nbsp;</div>';content+='<div class="'+self.widgetType+'-assocFileDelete">&nbsp;</div>';dfx.setHtml(fileWrap,content);assocFileListWrap.appendChild(fileWrap);lastFileWrap=fileWrap;var fileDeleteDiv=dfx.getClass(self.widgetType+'-assocFileDelete',fileWrap)[0];dfx.addEvent(fileDeleteDiv,'click',function(e){var changeid=self.designid+':associated_file:'+fileid;var deletedClass='delete';var row=dfx.getId(self.id+'_'+fileid+'_wrap');var designAdmin=WidgetStore.get('DesignAdminScreen');if(dfx.hasClass(row,deletedClass)===false){dfx.addClass(row,deletedClass);dfx.addClass(fileDeleteDiv,'recover');designAdmin.changes[changeid]=true;designAdmin.screenModified();}else{dfx.removeClass(row,deletedClass);dfx.removeClass(fileDeleteDiv,'recover');designAdmin.changes[changeid]=false;designAdmin.screenModified();}});return true;});dfx.addClass(lastFileWrap,self.widgetType+'-assocFileWrapLast');}
if(callback){callback.call(self);}},createFileUploadIframe:function()
{var wrapper=dfx.getId(this.id+'-associatedFileUploadHolder');if(dfx.isset(wrapper)){var iframe=document.createElement('iframe');iframe.id=this.id+'_frame_'+this.uploadForms.length;iframe.setAttribute('frameBorder','no');iframe.setAttribute('scrolling','no');wrapper.appendChild(iframe);var self=this;iframe.onload=function(){var doc=dfx.getIframeDocument(iframe);var divReturnElem=doc.getElementById(iframe.id+'_return_div');if(divReturnElem){self.currentUploadWdgt.updateProgress(100);self._uploadComplete(doc);}};var doc=dfx.getIframeDocument(iframe);doc.open();doc.close();dfx.addClass(iframe,this.widgetType+'-associatedFileIFrame');var div=doc.createElement('div');var formid=this.id+'_form_'+this.uploadForms.length;var lockInfo=dfx.clone(WidgetStore.get('DesignAdminScreen').parent.lockInfo);var content='<form id="'+formid+'" name="'+this.id+'_form_'+this.uploadForms.length+'"';content+=' enctype="multipart/form-data" method="post" action="'+window.location.href+'" style="margin:0; padding:0;" class="fileForm">';content+='<input type="hidden" name="APC_UPLOAD_PROGRESS" value="'+this.fileUploadKeyPrefix+'_'+this.uploadForms.length+'" />';content+='<input type="file" id="'+this.id+'_file_'+this.uploadForms.length+'" name="associated_file" class="fileUpload" />';content+='<input type="hidden" name="mode"      value="AdminScreenMode" />';content+='<input type="hidden" name="screen"    value="DesignAdminScreenWidget" />';content+='<input type="hidden" name="action"    value="processScreen" />';content+='<input type="hidden" name="op"        value="uploadFile" />';content+='<input type="hidden" name="lockInfo"  value=\''+dfx.jsonEncode(lockInfo)+'\' />';content+='<input type="hidden" name="fileIndex" value="'+this.uploadForms.length+'" />';content+='<input type="hidden" name="returnDivId" value="'+iframe.id+'_return_div" />';content+='<input type="hidden" name="designId" value="'+this.designid+'" />';content+='</form>';dfx.setHtml(div,content);var file=dfx.getClass('fileUpload',div)[0];dfx.addEvent(file,'change',function(evt){self.currentFileName=dfx.getFileInputName(evt.target.value);for(var id in self.progressBars){if(self.currentFileName===self.progressBars[id].getLabel()){return;}}
self.fileUploadAddBtn.enable();});doc.body.appendChild(div);var form=dfx.getClass('fileForm',div)[0];this.uploadForms.push(form);}else{var iframe=null;}
return iframe;},init:function()
{this.fileUploadKeyPrefix=dfx.getUniqueId();this.createFileUploadIframe();var self=this;this.fileUploadAddBtn.disable();this.fileUploadAddBtn.addClickEvent(function(){var designAdmin=WidgetStore.get('DesignAdminScreen');var changeid=self.id+':new_file';designAdmin.changes[changeid]=true;self.fileUploadAddBtn.disable();var filename=self.currentFileName;var openStatusBar=function(){dfx.showElement(self.fileUploadUploadBtnWrapper);dfx.blindDown(self.fileUploadStatus,'slow',function(){self.runAddFileCallback();});};var addOneToStatusBar=function(div){var currHeight=parseInt(dfx.getStyle(self.fileUploadStatus,'height'));dfx.setStyle(div,'padding-top',29);dfx.setStyle(div,'border-bottom','1px dotted #d4d4d4');dfx.setStyle(div,'z-index',(200-self.uploadForms.length+1)+'');dfx.animate(self.fileUploadStatus,{height:(currHeight+29)},500,function(){self.runAddFileCallback();});};var addProgressBar=function(idx){if(self.fileUploadUploadPendingNum===0){self.fileUploadUploadBtn.enable();}
var index=null;if(dfx.isset(idx)===true){index=idx;}else{index=(self.uploadForms.length-1);}
var progress=self.createWidget((self.id+'_progress_'+index),'ProgressBar');self.progressBars[index]=progress;progress.addOnProgressCallback(function(){setTimeout(function(){self.trackProgress();},500);});progress.addOnDeleteCallback(function(id){var allDisabled=true;if(self.fileUploadUploadPendingNum>0){}else{for(var pid in self.progressBars){if(self.progressBars.hasOwnProperty(pid)===true){if(self.progressBars[pid].isEnabled()===true){allDisabled=false;}}}}
if(allDisabled===true){self.fileUploadUploadBtn.disable();}else{self.fileUploadUploadBtn.enable();}});progress.create(function(div){this.updateLabel(filename);if(dfx.isset(idx)===true){dfx.setStyle(div,'z-index',((200-idx)+''));if(idx===0){if(self.uploadForms.length>2){var before=dfx.getId((self.id+'_progress_1_progress'));if(dfx.isset(before)===false){before=dfx.getId((self.id+'_replace_wrapper_1'));}
dfx.insertBefore(before,div);}else{self.fileUploadStatus.appendChild(div);}
return;}else if(idx>0){dfx.setStyle(div,'padding-top',29);dfx.setStyle(div,'border-bottom','1px solid #d4d4d4');var after=dfx.getId((self.id+'_progress_'+(idx-1)+'_progress'));if(dfx.isset(after)===false){after=dfx.getId((self.id+'_replace_wrapper_'+(idx-1)));}
dfx.insertAfter(after,div);return;}}
self.fileUploadStatus.appendChild(div);if(self.uploadForms.length===1){dfx.setStyle(div,'z-index','200');openStatusBar();}else{addOneToStatusBar(div);}});};var addReplacementConfirmBar=function(fileid){var repWrapper=document.createElement('div');var deleteMask=document.createElement('div');var noticeImg=document.createElement('div');var fileName=document.createElement('div');var replaceBtn=document.createElement('div');var deleteBtn=document.createElement('div');var idx=(self.uploadForms.length-1);var id=(this.id+'_replace_confirm_btn_'+idx);var replace=self.createWidget(id,'Button');replace.setName('Replace');replace.create(function(btn){self.fileUploadUploadPendingNum++;if(self.fileUploadUploadPendingNum>0){self.fileUploadUploadBtn.disable();}
var wrapperid=(self.id+'_replace_wrapper_'+(self.uploadForms.length-1));repWrapper.id=wrapperid;repWrapper.className='duplicatedWrapper';deleteMask.className='duplicatedDeleteMask';deleteMask.innerHTML='&nbsp;';noticeImg.innerHTML='&nbsp;';noticeImg.className='duplicatedNoticeImg';fileName.innerHTML=filename;fileName.className='duplicatedFileName';replaceBtn.className='duplicatedReplace';replaceBtn.appendChild(btn);deleteBtn.innerHTML='&nbsp;';deleteBtn.className='ProgressBarWidgetType-delete';dfx.addEvent(deleteBtn,'click',function(){if(dfx.hasClass(deleteMask,'disabled')===true){self.fileUploadUploadPendingNum++;dfx.removeClass(deleteBtn,'recover');dfx.removeClass(deleteMask,'disabled');replace.enable();}else{self.fileUploadUploadPendingNum--;dfx.addClass(deleteBtn,'recover');dfx.addClass(deleteMask,'disabled');replace.disable();}
if(self.fileUploadUploadPendingNum>0){self.fileUploadUploadBtn.disable();}else{var allDisabled=true;for(var pid in self.progressBars){if(self.progressBars.hasOwnProperty(pid)===true){if(self.progressBars[pid].isEnabled()===true){allDisabled=false;}}}
if(allDisabled===true){self.fileUploadUploadBtn.disable();}else{self.fileUploadUploadBtn.enable();}}});replace.addClickEvent(function(){dfx.remove(dfx.getId(wrapperid));addProgressBar(idx);var iframe=dfx.getId((self.id+'_frame_'+idx));var doc=dfx.getIframeDocument(iframe);var replacement=doc.createElement('input');replacement.type='hidden';replacement.name='replacement';replacement.value='1';var fileidField=doc.createElement('input');fileidField.type='hidden';fileidField.name='fileid';fileidField.value=fileid;self.uploadForms[idx].appendChild(replacement);self.uploadForms[idx].appendChild(fileidField);self.fileUploadUploadPendingNum--;if(self.fileUploadUploadPendingNum===0){self.fileUploadUploadBtn.enable();}});repWrapper.appendChild(deleteMask);repWrapper.appendChild(noticeImg);repWrapper.appendChild(fileName);repWrapper.appendChild(deleteBtn);repWrapper.appendChild(replaceBtn);self.fileUploadStatus.appendChild(repWrapper);if(self.uploadForms.length===1){dfx.setStyle(repWrapper,'z-index','200');openStatusBar();}else{addOneToStatusBar(repWrapper);}});};var fileid=self.isDuplicated(filename);if(fileid===false){addProgressBar();}else{addReplacementConfirmBar(fileid);}});this.fileUploadUploadBtn.addClickEvent(function(){self.fileUploadUploadBtn.disable();self.currentUploadIdx=self._getNextUploadFileIndex();self.currentUploadWdgt=self.progressBars[self.currentUploadIdx];self.uploadForms[self.currentUploadIdx].submit();setTimeout(function(){self.trackProgress();},1000);});this.addAddFileCallback(function(){var iframe=dfx.getId((self.id+'_frame_'+(self.uploadForms.length-1)));dfx.hideElement(iframe);self.createFileUploadIframe();});this.addUploadingCompleteCallback(function(){self.refreshMissingFileNotice(function(){dfx.blindUp(self.fileUploadStatus,'slow',function(){dfx.setStyle(self.fileUploadUploadBtnWrapper,'display','none');dfx.setStyle(self.fileUploadUploadBtnWrapper,'visibility','hidden');self.reset();self.showCurrentFileUploadInput();});});});this.missingFilesExists=false;if(this.missingFiles!==null&&this.missingFiles.length>0){this.missingFilesExists=true;this.createMissingFileNotice();}
this.resizeFileList();},_getNextUploadFileIndex:function()
{var idx=null;for(var pid in this.progressBars){if(this.progressBars.hasOwnProperty(pid)===true){if(this.progressBars[pid].isEnabled()===true&&this.progressBars[pid].isFinished()===false){idx=parseInt(pid);break;}}}
return idx;},creatFileManager:function(callback)
{var self=this;this.fileManagerDynamicDiv.changeContent({action:'paintScreen',mode:'AdminScreenMode',screen:'DesignAdminScreenWidget',designid:this.designid,type:'fileManager'},function(data){self.resetAssociatedFiles();if(dfx.isset(callback)===true){callback.call(self);}});},resetAssociatedFiles:function()
{var fileManager=WidgetStore.get('AssociatedFileManager');this.associatedFiles={};var currFiles=fileManager.getFiles();var currFilesLen=currFiles.length;for(var i=0;i<currFilesLen;i++){this.associatedFiles[currFiles[i].fileid]=currFiles[i].filename;}},refreshFileManager:function(callback)
{this.creatFileManager(callback);},createMissingFileNotice:function()
{var header=document.createElement('div');header.id='';header.className='missingFilesNoticeWrapper-header';header.innerHTML='Missing Files!';var desc=document.createElement('div');desc.id='';desc.className='missingFilesNoticeWrapper-desc';desc.innerHTML='The following files are referenced in your HTML, CSS or Javascript but have not been uploaded yet.';this.missingFilesNoticeWrapper.appendChild(header);this.missingFilesNoticeWrapper.appendChild(desc);var fileListWrap=document.createElement('div');fileListWrap.className='missingFilesNotice-fileWrap';var missingLen=this.missingFiles.length;for(var j=0;j<missingLen;j++){var fileDiv=document.createElement('div');fileDiv.id='';fileDiv.className='missingFilesNoticeWrapper-list';var fileNameDiv=document.createElement('div');fileNameDiv.className='missingFilesNoticeWrapper-filename';fileNameDiv.innerHTML=this.missingFiles[j].filename;var categoryDiv=document.createElement('div');categoryDiv.className='missingFilesNoticeWrapper-category';categoryDiv.innerHTML='[';var categoryLen=this.missingFiles[j].types.length;for(var i=0;i<categoryLen;i++){categoryDiv.innerHTML+=this.missingFiles[j].types[i].toUpperCase();if(i<(categoryLen-1)){categoryDiv.innerHTML+=', ';}}
categoryDiv.innerHTML+=']';fileDiv.appendChild(fileNameDiv);fileDiv.appendChild(categoryDiv);fileListWrap.appendChild(fileDiv);}
this.missingFilesNoticeWrapper.appendChild(fileListWrap);dfx.removeClass(this.missingFilesNoticeWrapper,'missingFilesNoticeWrapper-hidden');},refreshMissingFileNotice:function(callback)
{var params={mode:'AdminScreenMode',screen:'DesignAdminScreenWidget',action:'getScreenData',op:'getMissingFiles',designId:this.designid};var self=this;dfx.addClass(this.missingFilesNoticeWrapper,'missingFilesNoticeWrapper-hidden');dfx.post(window.location.href,params,function(data){self.missingFiles=dfx.jsonDecode(data);self.missingFilesNoticeWrapper.innerHTML='';if(self.missingFiles.length>0){self.createMissingFileNotice();}
self.resizeFileList();if(dfx.isFn(callback)===true){callback.call(self);}});},trackProgress:function()
{if(this.currentUploadWdgt.isFinished()===false){var trackKey=(this.fileUploadKeyPrefix+'_'+this.currentUploadIdx);var params={screen:'DesignAdminScreenWidget',op:'trackUploading',progress_key:trackKey,designId:this.designid};var self=this;var AdminScreenMode=WidgetStore.get('AdminScreenModeWidgetType');AdminScreenMode.processSpecifiedScreen('DesignAdminScreen',params,function(percent,responseCode){if(self.currentUploadWdgt.isFinished()===false){self.currentUploadWdgt.updateProgress(percent);}});}},_uploadComplete:function(iframeDoc)
{if(iframeDoc){var self=this;var fileid=iframeDoc.body.firstChild.nodeValue;var filename=this.currentUploadWdgt.getLabel();if(this.associatedFiles&&dfx.isset(this.associatedFiles[fileid])===false){this.associatedFiles[fileid]=filename;}
var allUploaded=true;if(this.currentUploadIdx<(this.uploadForms.length-2)){this.currentUploadIdx=this._getNextUploadFileIndex();if(this.currentUploadIdx!==null){allUploaded=false;this.currentUploadWdgt=this.progressBars[this.currentUploadIdx];this.uploadForms[this.currentUploadIdx].submit();setTimeout(function(){self.trackProgress();},500);}}
if(allUploaded===true){var params={screen:'DesignAdminScreenWidget',op:'batchFileUploadComplete',designId:this.designid};var AdminScreenMode=WidgetStore.get('AdminScreenModeWidgetType');AdminScreenMode.processSpecifiedScreen('DesignAdminScreen',params);this.runUploadingCompleteCallback(this.uploadForms.length-1);}}},reset:function(callback)
{var self=this;var fln=this.uploadForms.length;for(var i=0;i<fln;i++){dfx.remove(dfx.getId(this.id+'_frame_'+i));dfx.remove(dfx.getId(this.id+'_progress_'+i+'_progress'));}
this.fileUploadAddBtn.disable();this.fileUploadUploadBtn.enable();this.fileUploadUploadBtnEnabled=true;this.fileUploadUploadPendingNum=0;this.uploading=false;this.uploadForms=[];this.progressBars={};this.currentFileName='';this.fileUploadKeyPrefix=dfx.getUniqueId();this.createFileUploadIframe();dfx.setStyle(this.fileUploadStatus,'height','29px');dfx.setStyle(this.fileUploadStatus,'display','none');dfx.setStyle(this.fileUploadUploadBtnWrapper,'display','none');dfx.setStyle(this.fileUploadUploadBtnWrapper,'visibility','hidden');this.resetAssocFileList(function(callback){if(dfx.isset(callback)===true){callback.call(this);}});},resetAssocFileList:function(callback)
{var self=this;var params={mode:'AdminScreenMode',screen:'DesignAdminScreenWidget',action:'getScreenData',op:'getAssocFileData',designId:self.designid};dfx.post(window.location.href,params,function(data){var associatedFiles=dfx.jsonDecode(data);self.associatedFiles=associatedFiles[self.designid].files;self.unusedFiles=associatedFiles[self.designid].unusedFiles;var assocFileListWrap=dfx.getId(self.id+'-assocFileListWrapper');var aln=assocFileListWrap.childNodes.length;for(var i=(aln-1);i>0;i--){dfx.remove(assocFileListWrap.childNodes[i]);}
self.createAssocFileList(assocFileListWrap,function(){if(callback){callback.call(self);}});});},setDesignId:function(designid)
{this.designid=designid;},addAddFileCallback:function(callback)
{if(dfx.isFn(callback)===true){this.addFileCallbacks.push(callback);}},addRemoveFileCallback:function(callback)
{if(dfx.isFn(callback)===true){this.removeFileCallbacks.push(callback);}},addReplaceFileCallback:function(callback)
{if(dfx.isFn(callback)===true){this.replaceFileCallbacks.push(callback);}},addUploadingStartCallback:function(callback)
{if(dfx.isFn(callback)===true){this.uploadingStartCallbacks.push(callback);}},addUploadingCompleteCallback:function(callback)
{if(dfx.isFn(callback)===true){this.uploadingCompleteCallbacks.push(callback);}},runAddFileCallback:function(callback)
{var length=this.addFileCallbacks.length;for(var i=0;i<length;i++){this.addFileCallbacks[i].call(this);}},runRemoveFileCallback:function(callback)
{var length=this.removeFileCallbacks.length;for(var i=0;i<length;i++){this.removeFileCallbacks[i].call(this);}},runReplaceFileCallback:function(callback)
{var length=this.replaceFileCallbacks.length;for(var i=0;i<length;i++){this.replaceFileCallbacks[i].call(this);}},runUploadingStartCallback:function(callback)
{var length=this.uploadingStartCallbacks.length;for(var i=0;i<length;i++){this.uploadingStartCallbacks[i].call(this);}},runUploadingCompleteCallback:function(uploadedFilesLen)
{var length=this.uploadingCompleteCallbacks.length;for(var i=0;i<length;i++){this.uploadingCompleteCallbacks[i].call(this,uploadedFilesLen);}},isDuplicated:function(filename)
{for(var id in this.associatedFiles){if(this.associatedFiles.hasOwnProperty(id)){if(filename===this.associatedFiles[id].fileName){return id;}}}
return false;}};dfx.inherits('AssociatedFileUpload','AbstractContainer');function CardLayoutWidgetType(id,hasScrolls)
{AbstractContainerWidgetType.call(this,id);this.widgetType='CardLayout';this.domElem=null;this.cards=[];this.classes=[];this.currentCardIndex=0;this.hasScrolls=false;if(hasScrolls===1){this.hasScrolls=true;}
this.init();}
CardLayoutWidgetType.prototype={init:function()
{if(dfx.getId(this.id)){this._addCards();}},create:function(callback)
{var div=document.createElement('div');div.id=this.id;this.domElem=div;dfx.addClass(div,this.getClass());this.addClasses();var c='-item';var len=this.children.length;for(var i=0;i<len;i++){var child=document.createElement('div');dfx.addClass(child,this.getClass()+c);if(i!==0){dfx.addClass(child,this.getClass()+c+'-hidden');}
div.appendChild(child);this.cards.push(child);}
var self=this;this.createChildren(null,function(){callback.call(self,div);return;});},addCard:function(elem)
{this.children.push(elem);},getCard:function(index)
{return this.cards[index];},_addCards:function()
{var children=dfx.getId(this.id).childNodes;var cLen=children.length;for(var i=0;i<cLen;i++){var child=children[i];if(child.nodeType===1){this.cards.push(child);}}},addChildElement:function(index,element)
{this.cards[index].appendChild(element);},createChildren:function(parent,callback,index)
{if(typeof index==='undefined'){index=0;}
var self=this;if(this.children[index]){this.createChild(this.children[index],index,function(){self.createChildren(null,callback,++index);});}else{if(dfx.isFn(callback)){callback.call(self);}}},createChild:function(child,cardIndex,callback)
{var self=this;if((child instanceof Widget)!==true){self.cards[cardIndex].appendChild(child);callback.call(this);}else{child.create(function(el){self.cards[cardIndex].appendChild(el);callback.call(self);});}},addClasses:function(el)
{if(!el){el=this.domElem;}
if(el){var len=this.classes.length;for(var i=0;i<len;i++){dfx.addClass(el,this.classes[i]);}}},addClass:function(className)
{this.classes.push(className);if(this.domElem){dfx.addClass(this.domElem,className);}},next:function()
{this.hide(this.currentCardIndex);this.currentCardIndex++;this.show(this.currentCardIndex);},prev:function()
{this.hide(this.currentCardIndex);this.currentCardIndex--;this.show(this.currentCardIndex);},show:function(index)
{this.hideAll();dfx.removeClass(this.cards[index],this.getClass()+'-item-hidden');dfx.addClass(this.cards[index],this.getClass()+'-item');this.currentCardIndex=index;if(this.hasScrolls===true){WidgetStore.get(this.id+'-scp:'+index).update();}},hideAll:function()
{dfx.addClass(this.cards,this.getClass()+'-item-hidden');},hide:function(index)
{dfx.removeClass(this.cards[index],this.getClass()+'-item');dfx.addClass(this.cards[index],this.getClass()+'-item-hidden');},getTotalCards:function()
{return this.cards.length;}};dfx.inherits('CardLayout','AbstractContainer');function CronScriptsWidgetType(id,cScripts)
{AbstractContainerWidgetType.call(this,id);this.widgetType='CronScripts';this.cronScripts=cScripts;this.hasChanges={};this.addEvents();var self=this;dfx.foreach(this.cronScripts,function(idx){var sysName=self.cronScripts[idx].system;var scriptName=self.cronScripts[idx].script;self.children.push(self.id+'-interval-'+sysName+'-'+scriptName);self.children.push(self.id+'-enabled-'+sysName+'-'+scriptName);return true;});}
CronScriptsWidgetType.prototype={addEvents:function()
{var len=this.cronScripts.length;for(var i=0;i<len;i++){var sysName=this.cronScripts[i].system;var scriptName=this.cronScripts[i].script;var selectId=this.id+'-interval-'+sysName+'-'+scriptName;var toggleId=this.id+'-enabled-'+sysName+'-'+scriptName;var select=WidgetStore.get(selectId);var toggle=WidgetStore.get(toggleId);this._addEvent(select,'interval',i);this._addEvent(toggle,'enabled',i);}},_addEvent:function(widget,type,i)
{var self=this;if(type==='interval'){widget.addItemSelectedEvent(function(){var val=this.getValue();var ori=self.cronScripts[i][type];if(val!==ori){self.hasChanges[this.id]=true;}else{delete self.hasChanges[this.id];}
self._checkChanges();});}else if(type==='enabled'){widget.addToggleEvent(function(){var val=this.getValue();var ori=self.cronScripts[i][type];if(val!==ori){self.hasChanges[this.id]=true;}else{delete self.hasChanges[this.id];}
self._checkChanges();});}},revert:function()
{this.hasChanges={};var len=this.cronScripts.length;for(var i=0;i<len;i++){var sysName=this.cronScripts[i].system;var scriptName=this.cronScripts[i].script;var selectId=this.id+'-interval-'+sysName+'-'+scriptName;var toggleId=this.id+'-enabled-'+sysName+'-'+scriptName;var select=WidgetStore.get(selectId);var toggle=WidgetStore.get(toggleId);select.setValue(this.cronScripts[i].interval,true);toggle.setValue(this.cronScripts[i].enabled);}},_checkChanges:function()
{var noChange=true;for(var id in this.hasChanges){if(this.hasChanges[id]===true){this.setModified(true);noChange=false;break;}}
if(noChange===true){this.setModified(false);}},getChanges:function(field)
{var changes=[];var len=this.cronScripts.length;for(var i=0;i<len;i++){var sysName=this.cronScripts[i].system;var scriptName=this.cronScripts[i].script;var oriValue=this.cronScripts[i][field];var intervalSelectId=this.id+'-'+field+'-'+sysName+'-'+scriptName;var wdgt=WidgetStore.get(intervalSelectId);var value=wdgt.getValue();switch(field){case'interval':if(oriValue!==value){changes.push({system:sysName,script:scriptName,value:value});}
break;case'enabled':if(oriValue!==value){changes.push({system:sysName,script:scriptName,value:value});}
break;default:break;}}
return changes;}};dfx.inherits('CronScripts','AbstractContainer');function DynamicDivWidgetType(id)
{AbstractContainerWidgetType.call(this,id);this.widgetType='DynamicDiv';this.url=document.location.href;this.domElem=null;if(dfx.getId(id)){this.domElem=dfx.getId(id);}
this.cssLinks=[];this.cssStyles=[];this.jsScripts=[];}
DynamicDivWidgetType.prototype={create:function(callback)
{var div=document.createElement('div');div.id=this.id+'_content';this.domElem=div;if(dfx.isFn(callback)===true){callback.call(this,div);}},setAlternateDiv:function(id)
{if(dfx.getId(id)){this.domElem=dfx.getId(id);}},getInterface:function(system,xmlFileName,endFunc,postStr)
{var params={system:'EditInterface',action:'getInterface',systemName:system,file:xmlFileName+'&'+postStr};this.changeContent(params,endFunc);},setElement:function(elem)
{this.domElem=elem;},changeContent:function(params,endFunc)
{var url=this.url;var domElem=this.domElem;var self=this;dfx.post(url,params,function(data){self.updateContent(data,endFunc);});},includeScriptFiles:function(data,callback)
{var urls=[];var tmp=[];var url='';var name=0;var jsIncludes=data.getElementsByTagName('jsinclude');var include=false;var jsLen=jsIncludes.length;for(var i=0;i<jsLen;i++){include=true;url=jsIncludes.item(i).firstChild.nodeValue;if(dfx.scriptsIncluded.inArray(url)===true){include=false;}else{name=url.match(/\/[A-Za-z]+WidgetType\.js/);if(name!==null){name=name[0].substr(1,(name[0].length-4));if(typeof(window[name])!=='undefined'){include=false;}}}
if(include){dfx.scriptsIncluded.push(url);tmp.push(url);}}
dfx.includeScripts(tmp,callback);},updateContent:function(xml,endFunc)
{this.cleanup();var domElem=this.domElem;if(domElem===null){this.domElem=dfx.getId(this.id);domElem=this.domElem;}
var data=null;if(typeof xml==='string'){var parser=new Util.Xml(xml);data=parser.parse();if(data.firstChild.tagName==='parsererror'){data=xml;dfx.setHtml(domElem,data);if(dfx.isFn(endFunc)){endFunc.call();}
return;}else if(data.firstChild.tagName==='div'){dfx.setHtml(domElem,xml);if(dfx.isFn(endFunc)){endFunc.call();}
return;}}else{data=xml;}
var cssIncludes=data.getElementsByTagName('cssinclude');var cssIncNum=cssIncludes.length;for(var i=0;i<cssIncNum;i++){this.cssLinks.push(dfx.includeCss(cssIncludes.item(i).firstChild.nodeValue));}
var cssContents=data.getElementsByTagName('csscontent');var cssNum=cssContents.length;for(i=0;i<cssNum;i++){dfx.addCssToStyle(dfx.getNodeTextContent(cssContents[i]));}
var divContent=dfx.getNodeTextContent(data.getElementsByTagName('content').item(0));dfx.setHtml(domElem,divContent.replace(/jsscript/g,'script'));var self=this;this.includeScriptFiles(data,function(){var src=dfx.getNodeTextContent(data.getElementsByTagName('javascript').item(0));eval(src);if(dfx.isFn(endFunc)){var callbackData=dfx.getNodeTextContent(data.getElementsByTagName('callbackdata').item(0));endFunc.call(self,callbackData);}});},cleanup:function()
{var cssNum=this.cssLinks.length;for(var i=0;i<cssNum;i++){dfx.remove(this.cssLinks[i]);}
this.cssLinks=[];var jsNum=this.jsScripts.length;for(i=0;i<jsNum;i++){dfx.remove(this.jsScripts[i]);}
this.jsScripts=[];}};dfx.inherits('DynamicDiv','AbstractContainer');function InfoBoxWidgetType(id,warnings)
{AbstractContainerWidgetType.call(this,id);this.widgetType='InfoBox';this.className='InfoBoxWidgetType';this.title='';this.subtitle='';this.infoBody=dfx.getId(this.id+'_body');this.sections={};this.preSelectCheckFn=null;this.leftButton=null;this.leftButtonContainer=dfx.getId(this.id+'_BtnContainerLeft');this.middleButton=null;this.middleButtonContainer=dfx.getId(this.id+'_BtnContainerMiddle');this.rightButton=null;this.rightButtonContainer=dfx.getId(this.id+'_BtnContainerRight');this.callbackList={};this.clickedId=null;this.prevClickedId=null;this.preSelect=null;this.selectedClassName='selected';this.customisedSelectedClassName={};this.ulClassPrefix='Grey';this.warnings=warnings||{};this.init();}
InfoBoxWidgetType.prototype={init:function()
{if(dfx.isset(this.warnings.length)===true&&this.warnings.length===0){return;}
for(var section in this.warnings){for(var id in this.warnings[section]){if(this.warnings[section][id].show===true){this.showWarning(id);}else{this.hideWarning(id);}}}},setUlClassPrefix:function(prefix)
{this.ulClassPrefix=prefix;},reset:function()
{this.resetTitles();this.resetContent();this.resetButtons();this.callbackList={};this.clickedId=null;this.prevClickedId=null;this.preSelect=null;this.selectedClassName='selected';this.customisedSelectedClassName={};},resetTitles:function()
{this.setTitle('');this.setSubtitle('');},resetContent:function()
{this.infoBody=dfx.getId(this.id+'_body');this.infoBody.innerHTML='';this.sections={};},resetButtons:function()
{if(this.leftButton!==null){WidgetStore.remove(this.leftButton.id);}
if(this.middleButton!==null){WidgetStore.remove(this.middleButton.id);}
if(this.rightButton!==null){WidgetStore.remove(this.rightButton.id);}
delete this.leftButton;delete this.middleButton;delete this.rightButton;this.leftButton=null;this.middleButton=null;this.rightButton=null;dfx.setHtml(this.leftButtonContainer,'');dfx.setHtml(this.middleButtonContainer,'');dfx.setHtml(this.rightButtonContainer,'');},addNewButton:function(callback,ops)
{var self=this;if(dfx.isset(ops)===false){ops={};}
var defaultLabel=ops.defaultLabel||'Add New';var actionLabel=ops.actionLabel||'Create';this.addButton('addBtn',defaultLabel,'right',function(){self.includeWidgets(['TextField'],function(){var textfield=self.createWidget(self.id+'-addNewName','TextField');textfield.create(function(el){var newNameWrapper=document.createElement('div');var cancelIcon=document.createElement('div');dfx.addClass(newNameWrapper,self.className+'-TextFieldWrapper');dfx.addClass(cancelIcon,self.className+'-TextFieldCancel');newNameWrapper.appendChild(cancelIcon);newNameWrapper.appendChild(el);dfx.hideElement(newNameWrapper);self.middleButtonContainer.appendChild(newNameWrapper);dfx.addEvent(cancelIcon,'click',function(e){var btn=WidgetStore.get(self.id+'_btn_addBtn');btn.setName(defaultLabel);textfield.setValue('');dfx.hideElement(newNameWrapper);});self.addButtonClickEvent('right',function(){var btn=WidgetStore.get(self.id+'_btn_addBtn');var btnVal=btn.getName();var value=textfield.getValue();if(btnVal===defaultLabel){dfx.showElement(dfx.getId(self.id+'-addNewName_container'));btn.setName(actionLabel);dfx.showElement(newNameWrapper);dfx.getId(self.id+'-addNewName').focus();}else if(btnVal==='Create'&&value.length>0){dfx.hideElement(newNameWrapper);textfield.setValue('');btn.setName('Add New');dfx.hideElement(dfx.getId(self.id+'-addNewName_container'));if(callback){callback.call(self,value);}}});});});});},hasAddNewButton:function()
{var el=dfx.getId(this.id+'_btn_addBtn');if(el){return true;}
return false;},addButton:function(id,title,orientation,callback,clickEvent)
{var self=this;this.includeWidget('Button',function(){var buttonWdgt=self.createWidget(self.id+'_btn_'+id,'Button');buttonWdgt.setName(title);buttonWdgt.create(function(div){var parent=null;switch(orientation){case'left':parent=dfx.getId(self.id+'_BtnContainerLeft');self.leftButton=buttonWdgt;break;case'middle':parent=dfx.getId(self.id+'_BtnContainerMiddle');self.middleButton=buttonWdgt;break;case'right':parent=dfx.getId(self.id+'_BtnContainerRight');self.rightButton=buttonWdgt;break;default:break;}
parent.appendChild(div);if(dfx.isFn(clickEvent)===true){self.addButtonClickEvent(orientation,clickEvent);}
if(dfx.isFn(callback)===true){callback.call(self);}});});},addButtonClickEvent:function(orientation,callback)
{switch(orientation){case'left':this.leftButton.addClickEvent(callback);break;case'middle':this.middleButton.addClickEvent(callback);break;case'right':this.rightButton.addClickEvent(callback);break;default:break;}},enableButton:function(orientation)
{switch(orientation){case'left':this.leftButton.enable();break;case'middle':this.middleButton.enable();break;case'right':this.rightButton.enable();break;default:break;}},disableButton:function(orientation)
{switch(orientation){case'left':this.leftButton.disable();break;case'middle':this.middleButton.disable();break;case'right':this.rightButton.disable();break;default:break;}},setTitle:function(title)
{var elem=dfx.getId(this.id+'_title');if(elem!==null){dfx.setHtml(elem,title);}},setSubtitle:function(subtitle)
{var elem=dfx.getId(this.id+'_subtitle');if(elem!==null){dfx.setHtml(elem,subtitle);}},addSection:function(id,title,noList)
{var wrapper=document.createElement('div');wrapper.id=this.id+'_section_'+id;noList=noList||false;if(title!==null){var divider=document.createElement('div');divider.id=this.id+'_section_title_'+id;dfx.addClass(divider,'divider');dfx.setHtml(divider,title);wrapper.appendChild(divider);}
if(!noList){var ul=document.createElement('ul');ul.id=this.id+'_section_list_'+id;dfx.addClass(ul,this.className+'-Ul-'+this.ulClassPrefix);wrapper.appendChild(ul);}
this.infoBody.appendChild(wrapper);this.sections[id]=[];},setPreSelectCheckFn:function(fn)
{this.preSelectCheckFn=fn||null;},addItem:function(sectionid,id,name,callback,noClickEvent,hidden,isChild)
{if(dfx.isset(this.sections[sectionid])===false){return;}
var item={'id':id,'name':name,'fn':callback};this.sections[sectionid].push(item);var sectionList=dfx.getId(this.id+'_section_list_'+sectionid);if(sectionList){var target=document.createElement('li');var sectionWrapper=sectionList;}else{var target=document.createElement('div');var sectionWrapper=dfx.getId(this.id+'_section_'+sectionid);}
hidden=hidden||false;if(hidden){dfx.hideElement(target);}
target.id=id;if(this.preSelect!==null&&this.preSelect===id){this.prevClickedId=id;this.applySelectedClassName(target);}
var self=this;if(typeof name==='string'){dfx.setHtml(target,name);}else{target.appendChild(name);}
var noClickEvt=noClickEvent||false;if(noClickEvt===false&&target.nodeName.toLowerCase()==='li'){dfx.addEvent(target,'click',function(e){var et=dfx.getMouseEventTarget(e);while(et.nodeName.toLowerCase()!=="li"){et=et.parentNode;}
if(self.preSelectCheckFn&&self.preSelectCheckFn.call(self,et,e)===false){return;}
self.setItem(et.id);if(dfx.isFn(callback)){callback.call(self,et.id,e);}});}
if(isChild!==true){sectionWrapper.appendChild(target);}
return target;},changeItemid:function(oldid,newid)
{var elem=dfx.getId(oldid);if(elem){if(this.prevClickedId===oldid){this.prevClickedId=newid;}else if(this.clickedId===oldid){this.clickedId=newid;}
elem.id=newid;return true;}
return false;},addChildItem:function(sectionid,parentid,childid,content,callback,noClickEvent,hidden)
{var parentElem=dfx.getId(parentid);var childEl=this.addItem(sectionid,childid,content,callback,noClickEvent,hidden,true);dfx.addClass(childEl,'child');var node=parentElem;while(node){if(!node.nextSibling||dfx.hasClass(node.nextSibling,'child')!==true){break;}
node=node.nextSibling;}
dfx.insertAfter(node,childEl);},setItem:function(id)
{var self=this;if(self.clickedId!==null){self.prevClickedId=self.clickedId;}
self.clickedId=id;var target=dfx.getId(id);self.applySelectedClassName(target);if(self.prevClickedId!==null){self.removeSelectedClassName(dfx.getId(self.prevClickedId));}
self.applySelectedClassName(dfx.getId(self.clickedId));if(dfx.hasClass(target,'child')===false){dfx.removeClass(dfx.getClass('child',target.parentNode),'active');dfx.removeClass(dfx.getClass('expanded',target.parentNode),'expanded');dfx.addClass(target,'expanded');var node=target.nextSibling;while(node){if(dfx.hasClass(node,'child')===true){dfx.addClass(node,'active');}else{break;}
node=node.nextSibling;}}else{dfx.addClass(target,'active');}},showItem:function(id)
{var item=dfx.getId(id);if(item){dfx.showElement(item);}},hideItem:function(id)
{var item=dfx.getId(id);if(item){dfx.hideElement(item);}},getClickedId:function()
{if(this.clickedId===null&&this.hasSelection()===true){return this.preSelect;}else{return this.clickedId;}},setSelected:function(id)
{this.preSelect=id;},setSelecedClassName:function(cn)
{this.selectedClassName=cn;},addCustomiseSelectedClassName:function(itemid,cn,sticky,applyNow)
{var itemEl=dfx.getId(itemid);if(applyNow){dfx.removeClass(itemEl,this.selectedClassName);}
sticky=sticky||false;this.customisedSelectedClassName[itemid]={classN:cn,sticky:sticky};if(applyNow){dfx.addClass(itemEl,cn);}},applySelectedClassName:function(itemEl)
{if(this.customisedSelectedClassName[itemEl.id]){dfx.addClass(itemEl,this.customisedSelectedClassName[itemEl.id].classN);}else{dfx.addClass(itemEl,this.selectedClassName);}},removeSelectedClassName:function(itemEl)
{if(!itemEl){return;}
if(this.customisedSelectedClassName[itemEl.id]){if(this.customisedSelectedClassName[itemEl.id].sticky===false){dfx.removeClass(itemEl,this.customisedSelectedClassName[itemEl.id].classN);}}else{dfx.removeClass(itemEl,this.selectedClassName);}},hasSelection:function()
{if(this.preSelect!==null){return true;}else{return false;}},getPrevClickedId:function()
{return this.prevClickedId;},setContent:function(elem)
{var body=dfx.getId(this.id+'_body');body.appendChild(elem);},showWarning:function(id)
{var warning=dfx.getId(this.id+'_warning_'+id);if(warning){dfx.showElement(warning);}},hideWarning:function(id)
{var warning=dfx.getId(this.id+'_warning_'+id);if(warning){dfx.hideElement(warning);}}};dfx.inherits('InfoBox','AbstractContainer');function InputWidgetType(id)
{AbstractContainerWidgetType.call(this,id);this.widgetType='Input';var self=this;this.error=false;this.errorElem=this.domElem;this.name='';this.label='';this.labelEl=null;this.domEl=null;this.hasWizardOpts=true;this.inline=false;this.setValueActions=[];if(dfx.getId(this.id)){this.addEvents();}}
InputWidgetType.prototype={blur:function(){},focus:function(){},createLabel:function(inline)
{var label=document.createElement('label');dfx.setHtml(label,this.label);label.setAttribute('for',this.id);this.labelEl=label;if(inline===true){dfx.setStyle(label,'float','left');dfx.setStyle(label,'margin-top','3px');}
return label;},setValue:function(val)
{this.value=val;var el=dfx.getId(this.id);if(el){el.value=val;}
this.fireSetValueActions(val);},getValue:function()
{return dfx.getId(this.id).value;},getName:function()
{return this.name;},getErrorElement:function()
{return this.errorElem;},getForm:function()
{return WidgetStore.get(this.domElem.form.id);},hasError:function(error)
{this.error=error;},setName:function(name)
{this.name=name;},setShowLabel:function(show)
{this.showLabel=show;},setLabel:function(label)
{this.label=label;if(this.labelEl!==null){dfx.setHtml(this.labelEl,label);}},getLabel:function()
{return this.label;},setInline:function(inline)
{this.inline=inline;},getWizardOptions:function(callback)
{var self=this;Widget.prototype.getWizardOptions.call(this,function(widgets){self.includeWidgets(['TextField'],function(){var widget=self.createWidget(self.id+'-options-label','TextField');widget.setLabel('Label');widget.setInline(true);widget.setValue(self.getLabel());widget.setEvent('keyup',function(){self.setLabel(widget.getValue());});widgets.push(widget);var nameWidget=self.createWidget(self.id+'-options-name','TextField');nameWidget.setLabel('Name');nameWidget.setInline(true);nameWidget.setValue(self.name);nameWidget.setEvent('keyup',function(){self.name=nameWidget.getValue();});widgets.push(nameWidget);callback.call(self,widgets);});});},getWizardOptionName:function()
{return this.label;},exportWidget:function()
{var o=Widget.prototype.exportWidget.call(this);o.name=this.name;o.label=this.label;return o;},clearValue:function()
{this.domElem.value='';},getWidgetSummary:function()
{var s='';var val=this.getValue();if(val!==''){s=this.label+':'+val;}
return s;},addSetValueAction:function(action)
{this.setValueActions.push(action);},fireSetValueActions:function(value)
{var len=this.setValueActions.length;for(var i=0;i<len;i++){this.setValueActions[i].call(this,value);}}};dfx.inherits('Input','AbstractContainer');function ListWidgetType(id,columnSizes,showRemoveButton,uniqueItemsOnly,alternateStyle,toggleOption)
{AbstractContainerWidgetType.call(this,id);this.widgetType='ListItem';this.className='ListWidgetType';this.itemClassName='ListItemWidgetType';this.itemCount=0;this.items=[];this.itemids=[];this.columnSizes=columnSizes;this.showRemoveButton=showRemoveButton||false;this.itemEnabledEvents=[];this.itemDisabledEvents=[];this.itemHoverEvents=[];this.removedEvents=[];this.highlighted=null;this.domElem=null;this.itemClickedEvents=[];this.columnItemClickedEvents=[];this.columnItemDblClickedEvents=[];this.uniqueItemsOnly=uniqueItemsOnly;if(typeof uniqueItemsOnly!=='boolean'){if(uniqueItemsOnly===1){this.uniqueItemsOnly=true;}else{this.uniqueItemsOnly=false;}}
this.alternateStyle=alternateStyle;if(typeof alternateStyle!=='boolean'){if(alternateStyle===1){this.alternateStyle=true;}else{this.alternateStyle=false;}}
this.toggleOption=toggleOption;if(typeof toggleOption!=='boolean'){if(toggleOption===1){this.toggleOption=true;}else{this.toggleOption=false;}}
var elem=dfx.getId(this.id);if(dfx.isset(elem)===true){this.init();this.domElem=elem;}
this.timeout=null;}
ListWidgetType.prototype={init:function()
{this.items=dfx.getClass(this.itemClassName,dfx.getId(this.id));var iLen=this.items.length;for(var i=0;i<iLen;i++){var itemid=this.items[i].getAttribute('itemid');this.itemids.push(itemid);}
this.addRemoveButtonEvent();this.addMouseOverEvent();this.addMouseClickEvent();},create:function(callback)
{var list=document.createElement('div');this.domElem=list;list.id=this.id;dfx.addClass(list,this.className);if(dfx.isFn(callback)===true){callback.call(this,list);return;}},addItem:function(itemid,rowData,index)
{var self=this;if(this.toggleOption===true){if(this.itemids.inArray(itemid)===true){var idx=this.getIndexByItemid(itemid);if(idx!==false){dfx.showElement(this.items[idx]);this.toggleItemState(idx);return;}}}
if(this.uniqueItemsOnly===true){if(this.itemids.inArray(itemid)===true){return;}}
var div=document.createElement('div');var itemClassName=this.itemClassName;if(this.alternateStyle===true){var count=0;if(dfx.isset(index)===true){count=index;}else{count=this.items.length;}
if((count%2)===1){itemClassName=this.itemClassName+'-even';}}
dfx.addClass(div,itemClassName);div.id=this.id+'_'+this.items.length;div.setAttribute('itemid',itemid);var lastClassName=this.itemClassName+'-last';dfx.addClass(div,lastClassName);var prevItem=dfx.getId(this.id+'_'+(this.items.length-1));dfx.removeClass(prevItem,lastClassName);var noItemsMessage=dfx.getClass('ListNoItemsMessage',dfx.getId(this.id));if(noItemsMessage.length>0){dfx.addClass(noItemsMessage[0],'ListNoItemsMessage-hidden');}
var rowLen=rowData.length;for(var i=0;i<rowLen;i++){div.appendChild(this.createColumn(i,rowData[i],false,itemid));}
if(this.showRemoveButton==='1'){var col=this.createColumn(rowData.length,'',true);div.appendChild(col);this._addRemoveButtonEvent(col,this.items.length);}
this.addMouseOverEvent(div);dfx.addEvent(div,'click',function(){self.fireItemClickedEvents(itemid);});dfx.hover(div,function(){self.fireItemHoverEvents(itemid,true);},function(){self.fireItemHoverEvents(itemid,false);});if(dfx.isset(index)===true){dfx.insertAfter(this.domElem.childNodes[(index-1)],div);this.items.splice(index,0,div);this.itemids.splice(index,0,itemid);}else{this.domElem.appendChild(div);this.items.push(div);this.itemids.push(itemid);}
return div;},getItemIndex:function(itemid)
{return this.itemids.find(itemid);},getItemElement:function(itemid)
{var index=this.getItemIndex(itemid);if(index>-1){return this.items[index];}},createColumn:function(index,content,removeCol,itemid)
{var size=this.columnSizes[index];var div=document.createElement('div');var c=this.itemClassName+'-col';if(removeCol===true){c=this.itemClassName+'-remove-col';if(this.readOnly===true){dfx.setStyle(div,'display','none');}}
dfx.addClass(div,c);div.id=this.id+'_'+this.items.length+'-col:'+index;if((content instanceof Object)===true){div.appendChild(content);}else{dfx.setHtml(div,content);}
if(dfx.isset(size)===true&&content!==null){dfx.setStyle(div,'width',size);}
var self=this;if(dfx.isset(content)===true){dfx.safedblclick(div,function(e){self.fireColumnItemClickedEvents(index,itemid,e);},function(e){self.fireColumnItemDblClickedEvents(index,itemid,e);});}
return div;},addMouseOverEvent:function(elems)
{if(dfx.isset(elems)===false){elems=this.items;}
var self=this;dfx.hover(elems,function(e){self.mouseOver(e.currentTarget);},function(e){self.mouseOut(e.currentTarget);});},mouseOver:function(el)
{this.mouseOut();if(dfx.hasClass(el,this.itemClassName+'-even')===true){dfx.addClass(el,this.itemClassName+'-even-hover');}else{dfx.addClass(el,this.itemClassName+'-hover');}},mouseOut:function(el)
{if(dfx.hasClass(el,this.itemClassName+'-even')===true){dfx.removeClass(el,this.itemClassName+'-even-hover');}else{dfx.removeClass(el,this.itemClassName+'-hover');}},addMouseClickEvent:function(elems)
{if(dfx.isset(elems)===false){elems=this.items;}
var self=this;dfx.addEvent(elems,'click',function(e){self.fireItemClickedEvents(e.currentTarget.getAttribute('itemid'));});},addRemoveButtonEvent:function()
{var self=this;var removeCols=dfx.getClass(this.itemClassName+'-remove-col',dfx.getId(this.id));var len=removeCols.length;for(var i=0;i<len;i++){this._addRemoveButtonEvent(removeCols[i],i);}},_addRemoveButtonEvent:function(elem,index)
{var self=this;dfx.addEvent(elem,'click',function(){if(self.toggleOption===true){dfx.hideElement(self.items[index]);}
self.toggleItemState(index);self.fireRemovedEvents();});},addRemovedEvent:function(fn)
{this.removedEvents.push(fn);},fireRemovedEvents:function()
{var ln=this.removedEvents.length;for(var i=0;i<ln;i++){this.removedEvents[i].call(this);}},toggleItemState:function(index)
{dfx.toggleClass(this.items[index],this.itemClassName+'-removed');var columns=dfx.getClass(this.itemClassName+'-col',this.items[index]);dfx.toggleClass(columns,this.itemClassName+'-col-removed');if(dfx.hasClass(this.items[index],this.itemClassName+'-removed')===true){this.fireItemDisabledEvents(this.items[index].getAttribute('itemid'));}else{this.fireItemEnabledEvents(this.items[index].getAttribute('itemid'));}},getListItems:function()
{var items=[];var length=this.items.length;for(var i=0;i<length;i++){items.push(this.items[i].getAttribute('itemid'));}
return items;},getListEnabledItems:function(idOnly)
{var enabledItems=[];var length=this.items.length;for(var i=0;i<length;i++){if(dfx.hasClass(this.items[i],'ListItemWidgetType-removed')===false){enabledItems.push(this.items[i].getAttribute('itemid'));}}
return enabledItems;},getListDisabledItems:function()
{var disabledItems=[];var length=this.items.length;for(var i=0;i<length;i++){if(dfx.hasClass(this.items[i],'ListItemWidgetType-removed')===true){disabledItems.push(this.items[i].getAttribute('itemid'));}}
return disabledItems;},disable:function()
{var removeCols=dfx.getClass(this.itemClassName+'-remove-col',dfx.getId(this.id));var len=removeCols.length;for(var i=0;i<len;i++){dfx.hideElement(removeCols[i]);}},enable:function()
{var removeCols=dfx.getClass(this.itemClassName+'-remove-col',dfx.getId(this.id));var len=removeCols.length;for(var i=0;i<len;i++){dfx.showElement(removeCols[i]);}},getItemCount:function()
{return this.items.length;},getValue:function(all)
{var itemids=[];var length=this.items.length;for(var i=0;i<length;i++){var itemid=this.items[i].getAttribute('itemid');if(dfx.isset(itemid)===true){if(all===true||dfx.hasClass(this.items[i],this.itemClassName+'-removed')===false){itemids.push(itemid);}}}
return itemids;},removeItem:function(itemid)
{var index=this.itemids.find(itemid);if(index>=0){this.itemids.splice(index,1);}
var iLen=this.items.length;for(var i=0;i<iLen;i++){if(i===itemid){dfx.remove(this.items[i]);this.items.splice(i,1);return;}}},clearItems:function()
{this.highlighted=null;this.itemids=[];dfx.remove(this.items);this.items=[];},addItemDisabledEvent:function(fn)
{this.itemDisabledEvents.push(fn);},fireItemDisabledEvents:function(itemid)
{var ln=this.itemDisabledEvents.length;for(var i=0;i<ln;i++){this.itemDisabledEvents[i].call(this,itemid);}},addItemEnabledEvent:function(fn)
{this.itemEnabledEvents.push(fn);},fireItemEnabledEvents:function(itemid)
{var ln=this.itemEnabledEvents.length;for(var i=0;i<ln;i++){this.itemEnabledEvents[i].call(this,itemid);}},addItemClickedEvent:function(fn)
{this.itemClickedEvents.push(fn);},fireItemClickedEvents:function(itemid)
{var ln=this.itemClickedEvents.length;for(var i=0;i<ln;i++){this.itemClickedEvents[i].call(this,itemid);}},addColumnItemClickedEvent:function(col,fn)
{if(dfx.isset(this.columnItemClickedEvents[col])===false){this.columnItemClickedEvents[col]=[];}
this.columnItemClickedEvents[col].push(fn);},fireColumnItemClickedEvents:function(col,itemid,e)
{if(dfx.isset(this.columnItemClickedEvents[col])===true){var ln=this.columnItemClickedEvents[col].length;for(var i=0;i<ln;i++){this.columnItemClickedEvents[col][i].call(this,itemid,e);}}},addColumnItemDblClickedEvent:function(col,fn)
{if(dfx.isset(this.columnItemDblClickedEvents[col])===false){this.columnItemDblClickedEvents[col]=[];}
this.columnItemDblClickedEvents[col].push(fn);},fireColumnItemDblClickedEvents:function(col,itemid,e)
{if(dfx.isset(this.columnItemDblClickedEvents[col])===true){var ln=this.columnItemDblClickedEvents[col].length;for(var i=0;i<ln;i++){this.columnItemDblClickedEvents[col][i].call(this,itemid,e);}}},addItemHoverEvent:function(fn)
{this.itemHoverEvents.push(fn);},fireItemHoverEvents:function(itemid,on)
{var ln=this.itemHoverEvents.length;for(var i=0;i<ln;i++){this.itemHoverEvents[i].call(this,itemid,on);}},highlight:function(itemid,dir)
{if(itemid===null){this.mouseOut(this.items[this.highlighted]);this.fireItemHoverEvents(this.getHighlightedItemid(),false);if(this.highlighted===null){this.highlighted=0;}else if(dir===1&&this.highlighted<(this.items.length-1)){this.highlighted++;}else if(dir===-1&&this.highlighted>0){this.highlighted--;}
this.mouseOver(this.items[this.highlighted]);this.fireItemHoverEvents(this.getHighlightedItemid(),true);}},getHighlightedItemid:function()
{var itemid=null;var el=this.items[this.highlighted];if(dfx.isset(el)===true){itemid=el.getAttribute('itemid');}
return itemid;},getIndexByItemid:function(itemid)
{var len=this.items.length;for(var i=0;i<len;i++){var id=this.items[i].getAttribute('itemid');if(Number(id)===Number(itemid)){return i;}}
return false;},setReadOnly:function(readOnly)
{AbstractContainerWidgetType.prototype.setReadOnly.call(this,readOnly);var state='';if(readOnly===true){state='none';}
var delIcons=dfx.getClass('ListItemWidgetType-remove-col',this.domElem);dfx.setStyle(delIcons,'display',state);}};dfx.inherits('List','AbstractContainer');function MenuDesignAreaParentSelectorWidgetType(id)
{AbstractContainerWidgetType.call(this,id);this.widgetType='MenuDesignAreaParentSelector';this.value='site';this.options={'site':'Current Site','current':'Current Asset','assetid':'Specific Asset'};this.selectWdgt=null;this.pickerWdgt=null;}
MenuDesignAreaParentSelectorWidgetType.prototype={create:function(callback)
{var self=this;this.includeWidgets(['Select','AssetPicker'],function(){var div=document.createElement('div');div.id=self.id;dfx.addClass(div,self.widgetType);var wrap=document.createElement('div');wrap.id=self.id+'-wrap';dfx.addClass(wrap,self.widgetType+'-wrap');dfx.setStyle(wrap,'margin-bottom','5px');var rod=document.createElement('div');rod.id=self.id+'-readOnly';dfx.addClass(rod,self.widgetType+'-readOnly');if(self.readOnly){dfx.hideElement(wrap);}else{dfx.hideElement(rod);}
self.selectWdgt=self.createWidget(self.id+'-select','Select');self.pickerWdgt=self.createWidget(self.id+'-asset-picker','AssetPicker');self.selectWdgt.addItemSelectedEvent(function(idx){if(idx===0||idx===1){dfx.hideElement(dfx.getId(self.id+'-asset-picker'));if(idx===0){self.value='site';}else if(idx===1){self.value='current';}}else if(idx===2){dfx.showElement(dfx.getId(self.id+'-asset-picker'));self.value='assetid';}});self.selectWdgt.addItems(self.options);self.selectWdgt.create(function(sEl){self.pickerWdgt.create(function(aEl){if(self.value==='site'){self.selectWdgt.setValue(self.value,true);dfx.hideElement(aEl);}else if(self.value==='current'){self.selectWdgt.setValue(self.value,true);dfx.hideElement(aEl);}else{self.selectWdgt.setValue('assetid',true);self.pickerWdgt.setValue(parseInt(self.value));}
wrap.appendChild(sEl);wrap.appendChild(aEl);div.appendChild(wrap);div.appendChild(rod);callback.call(self,div);return;});});});},getValue:function()
{if(this.value==='site'||this.value==='current'){return this.value;}
return this.pickerWdgt.getValue();},setValue:function(value)
{if(dfx.getId(this.id)){if(value==='site'||value==='current'){dfx.hideElement(dfx.getId(this.id+'-asset-picker'));this.selectWdgt.setValue(value,true);}else{dfx.showElement(dfx.getId(this.id+'-asset-picker'));this.pickerWdgt.setValue(parseInt(value));this.selectWdgt.setValue('assetid',true);}}
this.value=value;},disable:function()
{this.selectWdgt.disable();this.pickerWdgt.disable();},enable:function()
{this.selectWdgt.enable();this.pickerWdgt.enable();},reset:function(){}};dfx.inherits('MenuDesignAreaParentSelector','AbstractContainer');function MetadataEditTextWidgetType(id,defaultValue)
{AbstractContainerWidgetType.call(this,id);this.defaultValue=defaultValue||'';this.field=WidgetStore.get(this.id+'-field');this.elem=dfx.getId(this.id+'-field');this.container=dfx.getParents(this.elem,'.MetadataEditScreenWidgetType-field')[0];this.value='';if(this.field){this.value=this.field.getValue();this.init();}}
MetadataEditTextWidgetType.prototype={init:function()
{var self=this;if(this.defaultValue&&this.defaultValue!==''){dfx.showElement(dfx.getId(this.id+'-def'));if(this.isUsingDefault()===true){this.field.setValue(this.defaultValue);dfx.addClass(this.container,'useDefault');}
dfx.addEvent(this.elem,'focus',function(){dfx.removeClass(self.container,'useDefault');if(self.isUsingDefault()===true){self.field.clearValue();}});dfx.addEvent(this.elem,'blur',function(){self.toggleDefaultValue();});}
if(this.field){this.field.addOnChangeEvent(function(){self.setModified(true);});}},toggleDefaultValue:function()
{var text=this.field;if(text){var val=text.getValue();if(val===''){text.setValue(this.defaultValue);dfx.addClass(this.container,'useDefault');}
this.value=val;this.setModified(true);}},setValue:function(value)
{if(this.field){this.value=value;}},getValue:function()
{return WidgetStore.get(this.id+'-field').getValue();},isUsingDefault:function()
{if(this.defaultValue===this.getValue()||this.getValue()===''){return true;}else{return false;}},check:function()
{return true;}};dfx.inherits('MetadataEditText','AbstractContainer');function MovieWizardThumbPickerWidgetType(id)
{AbstractContainerWidgetType.call(this,id);this.widgetType='MovieWizardThumbPicker';this.value=null;this.thumbs={};}
MovieWizardThumbPickerWidgetType.prototype={getValue:function()
{return this.value;},setValue:function(value)
{if(!value||!value.fileid){return;}else if(!value.thumbid){this.selectDefaultThumb(value.fileid);}else{this.value=value;this.showThumbs(value.fileid);}},showThumbs:function(fileid)
{if(!fileid||!this.thumbs[fileid]){return;}
var c=this.getClass();dfx.removeClass(dfx.getClass(c+'-thumbsWrapper'),'active');var thumbsWrapper=dfx.getId(fileid);dfx.addClass(thumbsWrapper,'active');},setThumbs:function(fileid,thumbids)
{this.thumbs[fileid]={thumbids:thumbids,content:''};var elem=dfx.getId(this.id);var c=this.getClass();var html='';var imgUrl=this.url+'?widget=MovieCreateWizardWidget&action=getThumb&fileid='+fileid+'&thumbid=';dfx.foreach(thumbids,function(i){html+='<div class="'+c+'-thumbWrapper">';html+='<img class="'+c+'-thumb" src="'+imgUrl+thumbids[i]+'"';html+=' id="'+thumbids[i]+'" fileid="'+fileid+'" />';html+='<div class="'+c+'-thumbTick"></div></div>';});var wrapper=document.createElement('div');wrapper.id=fileid;dfx.addClass(wrapper,c+'-thumbsWrapper');dfx.setHtml(wrapper,html);elem.appendChild(wrapper);this.thumbs[fileid].content=html;var imgs=dfx.getClass(c+'-thumb',wrapper);var iln=imgs.length;for(var i=0;i<iln;i++){this._addImgClickEvent(imgs[i],wrapper);}},_addImgClickEvent:function(elem,wrapper)
{var self=this;dfx.addEvent(elem,'click',function(){var value={fileid:elem.getAttribute('fileid'),thumbid:elem.getAttribute('id')};self.setValue(value);dfx.removeClass(dfx.getClass(self.getClass()+'-thumbWrapper',wrapper),'picked');dfx.addClass(elem.parentNode,'picked');});},selectDefaultThumb:function(fileid)
{var wrapper=dfx.getId(fileid);if(wrapper){var imgs=dfx.getClass(this.getClass()+'-thumb',wrapper);if(imgs.length>0){dfx.trigger(imgs[0],'click');}else{var value={fileid:fileid,thumbid:null};this.value=value;this.showThumbs(fileid);}}},reset:function()
{this.value=null;this.thumbs={};var elem=dfx.getId(this.id);if(elem){dfx.empty(elem);}},setError:function(msg)
{var elem=dfx.getId(this.id);if(elem){dfx.setHtml(elem,'<div class="'+this.getClass()+'-error">'+msg+'</div>');}}};dfx.inherits('MovieWizardThumbPicker','AbstractContainer');function OverlayWidgetType(id,el,title,width,closeAction)
{AbstractContainerWidgetType.call(this,id);this.widgetType='OverlayWidget';if(el){this.el=this.create(title,el);}else{this.el=dfx.getId(id);}}
OverlayWidgetType.prototype={create:function(callback)
{var div=document.createElement('div');div.setAttribute('id',this.id);var content=dfx.getHtml(this.el);dfx.setHtml(content);var self=this;dfx.addEvent(document,'keydown',function(e){if(e.keyCode===27){self.close();}});document.body.appendChild(div);if(callback){callback.call(this,div);}},setOrientation:function(orientation)
{this.orientation=orientation;},show:function()
{this.open();},open:function()
{this.adjustOrientation();var div=this.el;dfx.setStyle(div,'visibility','visible');dfx.setStyle(div,'display','block');},adjustOrientation:function()
{var div=this.el;dfx.setStyle(div,'visibility','hidden');var oldDisp=dfx.getStyle(div,'display');dfx.setStyle(div,'display','block');var h=dfx.getElementHeight(div);var w=dfx.getElementWidth(div);if(!this.orientation){this.orientation=Widget.CENTER;}
switch(this.orientation){case Widget.CENTER:dfx.setStyle(div,'margin-top',((h/2)*(-1))+'px');dfx.setStyle(div,'top','50%');dfx.setStyle(div,'margin-left',((w/2)*(-1))+'px');dfx.setStyle(div,'left','50%');break;case Widget.TOP:dfx.setStyle(div,'margin-top',((h)*(-1))+'px');dfx.setStyle(div,'top','0px');dfx.setStyle(div,'margin-left',((w/2)*(-1))+'px');dfx.setStyle(div,'left','50%');break;case Widget.BOTTOM:dfx.setStyle(div,'margin-top',((h)*(-1))+'px');dfx.setStyle(div,'top','100%');dfx.setStyle(div,'margin-left',((w/2)*(-1))+'px');dfx.setStyle(div,'left','50%');break;case Widget.LEFT:dfx.setStyle(div,'margin-top',((h/2)*(-1))+'px');dfx.setStyle(div,'top','50%');dfx.setStyle(div,'left','0px');break;case Widget.RIGHT:dfx.setStyle(div,'margin-top',((h/2)*(-1))+'px');dfx.setStyle(div,'top','50%');dfx.setStyle(div,'margin-left',((w)*(-1))+'px');dfx.setStyle(div,'left','100%');break;default:break;}
dfx.setStyle(div,'display',oldDisp);dfx.setStyle(div,'visibility','visible');},close:function()
{dfx.remove(this.el);},hide:function()
{dfx.setStyle(this.el,'display','none');},_disable:function()
{Widget.prototype.disable.call(this);this.displayDisabledDiv('100%','100%',true);},_enable:function()
{Widget.prototype.enable.call(this);this.removeDisabledDiv();}};dfx.inherits('Overlay','AbstractContainer');function PlainListWidgetType(id,width,showSortable,showRemoveButton,withSidesShadow,items,itemClass)
{AbstractContainerWidgetType.call(this,id);this.widgetType='PlainListWidgetType';this.deleteButtonClassName=this.widgetType+'-deleteOption';this.deleteButtonRevertClassName=this.widgetType+'-deleteOption-revert';this.markForDeletionClassName=this.widgetType+'-markedForDeletion';this.dragIconClassName=this.widgetType+'-dragIcon';this.alignLeftClassName=this.widgetType+'-alignLeft';this.alignRightClassName=this.widgetType+'-alignRight';this.subContentClassName=this.widgetType+'-subContent';this.width=width;this.showSortable=showSortable||false;this.showRemoveButton=showRemoveButton||false;this.withSidesShadow=withSidesShadow||false;this.items=items;this.listUL=null;this.itemClassName=itemClass||'';this.itemDeleteButtonClickedEvents=[];this.itemDeletedEvents=[];}
PlainListWidgetType.prototype={init:function()
{var self=this;var delIcons=dfx.getClass(this.deleteButtonClassName,this.domElem);dfx.foreach(delIcons,function(idx){dfx.addEvent(delIcons[idx],'click',function(e){if(dfx.hasClass(delIcons[idx].parentNode,self.markForDeletionClassName)===true){dfx.removeClass(delIcons[idx].parentNode,self.markForDeletionClassName);dfx.removeClass(delIcons[idx],self.deleteButtonRevertClassName);self.fireItemDeleteButtonClickedEvent(delIcons[idx].parentNode.id,false);}else{dfx.addClass(delIcons[idx].parentNode,self.markForDeletionClassName);dfx.addClass(delIcons[idx],self.deleteButtonRevertClassName);self.fireItemDeleteButtonClickedEvent(delIcons[idx].parentNode.id,true);}
e.preventDefault();});return true;});},create:function(callback)
{var self=this;var ul=document.createElement('ul');this.listUL=ul;dfx.addClass(ul,this.widgetType);dfx.foreach(this.items,function(idx){self.addItem(self.items[idx]);return true;});if(this.withSidesShadow===true){var leftWrap=document.createElement('div');var rightWrap=document.createElement('div');dfx.addClass(leftWrap,this.widgetType+'-listWrapLeft');dfx.addClass(rightWrap,this.widgetType+'-listWrapRight');rightWrap.appendChild(ul);leftWrap.appendChild(rightWrap);dfx.setStyle(leftWrap,'width',self.width+'px');if(callback){callback.call(this,leftWrap);return;}}else{dfx.setStyle(ul,'width',self.width+'px');if(callback){callback.call(this,ul);return;}}},addItem:function(item)
{var self=this;var li=document.createElement('li');dfx.attr(li,'itemid',item.id);li.id=self.id+'-'+item.id;dfx.addClass(li,self.widgetType);dfx.addClass(li,self.widgetType+'-li');if(self.showSortable===true){var handle=document.createElement('span');handle.title='Drag to re-arrange';dfx.addClass(handle,self.dragIconClassName);dfx.addClass(handle,self.alignLeftClassName);if(this.itemClassName!==''){dfx.addClass(handle,this.itemClassName+'-dragIcon');}
li.appendChild(handle);}
if(item.left){var leftElem=null;if(typeof item.left==='string'){leftElem=document.createElement('span');dfx.setHtml(leftElem,item.left);}else{leftElem=item.left;}
dfx.addClass(leftElem,self.alignLeftClassName);li.appendChild(leftElem);}
if(item.right){var rightElem=null;if(typeof item.right==='string'){rightElem=document.createElement('span');dfx.setHtml(rightElem,item.right);}else{rightElem=item.right;}
dfx.addClass(rightElem,self.alignRightClassName);li.appendChild(rightElem);}
var noDeleteItem=false;if(dfx.isset(item.showRemoveButton)&&item.showRemoveButton===false){noDeleteItem=true;}
if(self.showRemoveButton===true&&noDeleteItem===false){var delBtn=document.createElement('a');delBtn.title='Mark this item for deletion';delBtn.href='javascript: void(0);';dfx.addClass(delBtn,self.deleteButtonClassName);dfx.addClass(delBtn,self.alignRightClassName);if(this.itemClassName!==''){dfx.addClass(delBtn,this.itemClassName+'-deleteOption');}
li.appendChild(delBtn);dfx.addEvent(delBtn,'click',function(){if(self.fireItemRemoveCallbacks(item,!dfx.hasClass(li,self.markForDeletionClassName),delBtn)!==false){dfx.toggleClass(li,self.markForDeletionClassName);self.fireItemRemovedCallbacks(item.id,dfx.hasClass(li,self.markForDeletionClassName));}});}
if(item.subContent){var subContent=document.createElement('div');subContent.id=self.id+'-'+item.id+'-subContent';dfx.addClass(subContent,self.subContentClassName);if(typeof item.subContent==='string'){dfx.setHtml(subContent,item.subContent);}else{subContent.appendChild(item.subContent);}
li.appendChild(subContent);}
this.listUL.appendChild(li);},setItemClass:function(className)
{this.itemClassName=className;},showSubContent:function(id)
{var subCont=dfx.getId(this.id+'-'+id+'-subContent');dfx.showElement(subCont);dfx.setStyle(subCont.parentNode,'height','100%');},hideSubContent:function(id)
{var subCont=dfx.getId(this.id+'-'+id+'-subContent');dfx.hideElement(subCont);dfx.setStyle(subCont.parentNode,'height','null');},getListItems:function()
{var items=[];var listItems=dfx.getTag('li',this.listUL);var length=listItems.length;for(var i=0;i<length;i++){items.push(listItems[i].getAttribute('itemid'));}
return items;},getListEnabledItems:function(idOnly)
{var enabledItems=[];var listItems=dfx.getTag('li',this.listUL);var length=listItems.length;for(var i=0;i<length;i++){if(dfx.hasClass(listItems[i],this.markForDeletionClassName)===false){enabledItems.push(listItems[i].getAttribute('itemid'));}}
return enabledItems;},getListDisabledItems:function()
{var disabledItems=[];var length=this.items.length;for(var i=0;i<length;i++){if(dfx.hasClass(dfx.getId(this.id+'-'+this.items[i].id),this.markForDeletionClassName)===true){disabledItems.push(this.items[i].id);}}
return disabledItems;},disable:function(){},enable:function(){},setReadOnly:function(readOnly)
{AbstractContainerWidgetType.prototype.setReadOnly.call(this,readOnly);var self=this;var delIcons=dfx.getClass(this.className+'-deleteOption',this.domElem);dfx.foreach(delIcons,function(idx){if(readOnly===true){dfx.addClass(delIcons[idx],self.className+'-deleteOption-readOnly');}else{dfx.removeClass(delIcons[idx],self.className+'-deleteOption-readOnly');}
return true;});},addRemoveItemCallback:function(callback)
{this.itemDeleteButtonClickedEvents.push(callback);},fireItemRemoveCallbacks:function(item,removed,deleteBtn)
{var ln=this.itemDeleteButtonClickedEvents.length;for(var i=0;i<ln;i++){if(this.itemDeleteButtonClickedEvents[i].call(this,item.id,removed,deleteBtn)===false){return false;}}
return true;},addItemRemovedCallback:function(callback)
{this.itemDeletedEvents.push(callback);},fireItemRemovedCallbacks:function(item,removed,deleteBtn)
{var ln=this.itemDeletedEvents.length;for(var i=0;i<ln;i++){this.itemDeletedEvents[i].call(this,item.id,removed,deleteBtn);}
return true;},itemIsRemoved:function(itemid)
{var item=dfx.getId(this.id+'-'+itemid);if(item){return dfx.hasClass(item,this.markForDeletionClassName);}
return true;}};dfx.inherits('PlainList','AbstractContainer');function ProfileScreenWidgetType(id,userInfo,recentChanges,dates,tasks,readOnly,cid)
{this.modeType='Profile';AbstractContainerWidgetType.call(this,id);this.widgetType='ProfileScreen';this.dates=dates;this.tasks=tasks||[];this.userInfo=userInfo;this.userInfoOri=dfx.clone(userInfo);this.profileDiv=dfx.getId(this.id+'-profileScreen');this.leftDiv=dfx.getId(this.id+'-profileScreen-left');this.middleDiv=dfx.getId(this.id+'-profileScreen-mid');this.rightDiv=dfx.getId(this.id+'-profileScreen-right');this.taskProgress={};this.lockInfo=null;this.readOnly=readOnly||false;this.cid=cid||0;this.recentChanges=recentChanges||'';this.currentScreenMode='ProfileScreenWidget';this.thumbDisplayed=false;var self=this;this.resourceid='ProfileScreen:'+this.userInfo.userid;if(this.readOnly===true){self.init(readOnly);self.initSaveButton();}else{Locking.acquire(this.resourceid,function(lock){var readOnly=false;if(lock===true){var token=Locking.getToken(self.resourceid);self.lockInfo={resource:self.resourceid,token:token};}else{var errors=Locking.getError(lock);self.readOnly=true;self.lockInfo=errors;}
if(self.readOnly===true){self.includeWidgets(['AbstractSettingsScreen'],function(){AbstractSettingsScreenWidgetType.prototype.displayScreenReadOnlyWarning.call(self,function(el){dfx.insertBefore(self.leftDiv,el);self.init(readOnly);self.initSaveButton();},function(){self.disableSaveButton();self.initSaveButton();},self.resourceid);});}else{self.init(readOnly);self.initSaveButton();}});}}
ProfileScreenWidgetType.prototype={forceEdit:function(callback)
{var self=this;self.includeWidgets(['AbstractSettingsScreen'],function(){AbstractSettingsScreenWidgetType.prototype.forceEdit.call(this,function(){if(callback){callback.call(self);}},this.resourceid);});},setReadOnly:function(readOnly)
{var self=this;if(readOnly===true){this.includeWidgets(['AbstractSettingsScreen'],function(){AbstractSettingsScreenWidgetType.prototype.displayScreenReadOnlyWarning.call(this,function(el){dfx.insertBefore(self.leftDiv,el);self.initSaveButton();},function(){self.disableSaveButton();},self.resourceid);AbstractContainerWidgetType.prototype.setReadOnly.call(this,readOnly);});}else{AbstractContainerWidgetType.prototype.setReadOnly.call(this,readOnly);}},initSaveButton:function()
{var self=this;if(this.readOnly===true){this.disableSaveButton();}else{this.setSaveButton(function(){self.saveUserProfile();},function(){self.displayDisabledDiv();self.reset();});}},screenModified:function(modified)
{var self=this;var modified=false;if(this.fnameWdgt.getValue()!==this.userInfoOri.fname||this.lnameWdgt.getValue()!==this.userInfoOri.lname){modified=true;}
if(modified===false&&(this.emailWdgt.getValue()!==this.userInfoOri.email||this.unameWdgt.getValue()!==this.userInfoOri.uname)){modified=true;}
if(this.userInfoOri.active!==this.activeToggle.getValue()){modified=true;}
if(this.passWdgt.getValue()!==''||this.passWdgt.getConfirmValue()!==''){modified=true;}
this.setModified(modified);},init:function()
{var self=this;this.includeWidgets(['AbstractEditingScreenMode'],function(){self.includeWidgets(['TextField','Password','ToggleButton','Button'],function(){self.createDetailsSection();self.createTasksSection();self.createRecentActivitySection();self.ready();});});},createDetailsSection:function()
{var self=this;var userLabel=document.createElement('div');dfx.addClass(userLabel,this.widgetType+'WidgetType-SectionLabel');dfx.addClass(userLabel,'userName');dfx.setHtml(userLabel,this.userInfo.fname+' '+this.userInfo.lname);this.leftDiv.appendChild(userLabel);this.fnameWdgt=this.createWidget(this.id+'-firstName','TextField','TextFieldWidgetType',false,1,31,true);this.lnameWdgt=this.createWidget(this.id+'-lastName','TextField','TextFieldWidgetType',false,1,31,true);this.emailWdgt=this.createWidget(this.id+'-email','TextField','TextFieldWidgetType',false,1,31,true);this.unameWdgt=this.createWidget(this.id+'-userName','TextField','TextFieldWidgetType',false,1,31,true);this.passWdgt=this.createWidget(this.id+'-password','Password');var pLabel=document.createElement('label');if(this.readOnly===false){dfx.setHtml(pLabel,'Password');}
this.fnameWdgt.setLabel('First Name');this.lnameWdgt.setLabel('Last Name');this.emailWdgt.setLabel('Email');this.unameWdgt.setLabel('Username');this.fnameWdgt.setShowLabel(true);this.lnameWdgt.setShowLabel(true);this.emailWdgt.setShowLabel(true);this.unameWdgt.setShowLabel(true);this.fnameWdgt.setValue(this.userInfo.fname);this.lnameWdgt.setValue(this.userInfo.lname);this.emailWdgt.setValue(this.userInfo.email);this.unameWdgt.setValue(this.userInfo.uname);var loginDetailsDiv=document.createElement('div');dfx.setHtml(loginDetailsDiv,'Login Details');dfx.addClass(loginDetailsDiv,this.widgetType+'WidgetType-SectionLabel');this.activeLabel=document.createElement('div');this.activeLabelInner=document.createElement('div');var activeWrap=document.createElement('div');var activeText=document.createElement('div');var isReadOnly=false;if(this.readOnly===true||this.userInfo.userid&&this.cid===Number(this.userInfo.userid)){isReadOnly=true;}
this.activeToggle=this.createWidget(this.id+'-activeToggle','ToggleButton',isReadOnly,'slider',this.userInfo.active,'Yes','No');this.activeToggle.addToggleOnEvent(function(){dfx.removeClass(self.activeLabel,'inactive');dfx.removeClass(self.activeLabelInner,'inactive');dfx.setHtml(self.activeLabelInner,'Active');});this.activeToggle.addToggleOffEvent(function(){dfx.addClass(self.activeLabel,'inactive');dfx.addClass(self.activeLabelInner,'inactive');dfx.setHtml(self.activeLabelInner,'Inactive');});this.activeToggle.setReadOnly(isReadOnly);dfx.setHtml(activeText,'Active Account');if(this.userInfo.active===true){dfx.setHtml(this.activeLabelInner,'Active');dfx.addClass(this.activeLabel,this.widgetType+'WidgetType-activeLabel');dfx.addClass(this.activeLabelInner,this.widgetType+'WidgetType-activeLabelInner');}else{dfx.setHtml(this.activeLabelInner,'Inactive');dfx.addClass(this.activeLabel,this.widgetType+'WidgetType-activeLabel inactive');dfx.addClass(this.activeLabelInner,this.widgetType+'WidgetType-activeLabelInner inactive');}
dfx.addClass(activeWrap,this.widgetType+'WidgetType-activeWrap');dfx.addClass(activeText,this.widgetType+'WidgetType-activeText');this.fnameWdgt.create(function(fel){self.lnameWdgt.create(function(lel){self.emailWdgt.create(function(eel){self.unameWdgt.create(function(uel){self.passWdgt.create(function(pel){self.activeToggle.create(function(tg){self.leftDiv.appendChild(fel);self.leftDiv.appendChild(lel);self.leftDiv.appendChild(eel);self.activeLabel.appendChild(self.activeLabelInner);self.leftDiv.appendChild(self.activeLabel);activeWrap.appendChild(activeText);activeWrap.appendChild(tg);self.leftDiv.appendChild(self.activeLabel);self.leftDiv.appendChild(activeWrap);self.leftDiv.appendChild(loginDetailsDiv);self.leftDiv.appendChild(uel);self.leftDiv.appendChild(pLabel);self.leftDiv.appendChild(pel);self.passWdgt.addEvents();if(self.cid===self.userInfo.userid){self.activeToggle.disable();}});});});});});});dfx.addEvent(this.fnameWdgt.input,'keyup',function(e){self.screenModified();});dfx.addEvent(this.lnameWdgt.input,'keyup',function(e){self.screenModified();});dfx.addEvent(this.emailWdgt.input,'keyup',function(e){self.screenModified();});dfx.addEvent(this.unameWdgt.input,'keyup',function(e){self.screenModified();});self.activeToggle.addToggleOnEvent(function(){self.screenModified();});self.activeToggle.addToggleOffEvent(function(){self.screenModified();});this.passWdgt.addPasswordTypedEvents(function(){self.screenModified();});},createTasksSection:function()
{var self=this;var tasksLabel=document.createElement('div');dfx.addClass(tasksLabel,this.widgetType+'WidgetType-SectionLabel');dfx.addClass(tasksLabel,'tasks');dfx.setHtml(tasksLabel,'Tasks');this.middleDiv.appendChild(tasksLabel);var taskLen=this.tasks.length;if(taskLen===0){var noTasks=document.createElement('div');dfx.addClass(noTasks,this.widgetType+'WidgetType-noTasks');dfx.setHtml(noTasks,'No tasks are currently assigned.');this.middleDiv.appendChild(noTasks);}else{for(var i=0;i<taskLen;i++){(function(idx){var task=self.tasks[i];var taskElemC=self.widgetType+'WidgetType-taskColumn';var taskDivWrap=document.createElement('div');taskDivWrap.id=self.id+'-taskRow-'+idx;dfx.addClass(taskDivWrap,self.widgetType+'WidgetType-taskRow');var content='<div class="'+taskElemC+' taskExpander">&nbsp;</div>';content+='<div class="'+taskElemC+' taskType">'+dfx.ucWords(task.type)+'&nbsp;:&nbsp;</div>';content+='<div class="'+taskElemC+' taskTitle">'+task.title+'</div>';content+='<div class="'+taskElemC+' createDT">'+task.created_date_formatted+'</div>';dfx.setHtml(taskDivWrap,content);self.middleDiv.appendChild(taskDivWrap);var taskDivDescWrap=document.createElement('div');taskDivDescWrap.id=self.id+'-taskDescWrap-'+idx;dfx.addClass(taskDivDescWrap,self.widgetType+'WidgetType-taskDescWrap');dfx.addClass(taskDivDescWrap,'hidden');if(task.description.length===0){content='<div class="'+self.widgetType+'WidgetType-taskDesc">No task description.</div>';}else{content='<div class="'+self.widgetType+'WidgetType-taskDesc">'+task.description+'</div>';}
content+='<div class="'+self.widgetType+'WidgetType-taskProgress"> </div>';content+='<div class="'+self.widgetType+'WidgetType-gotoAsset"> </div>';dfx.setHtml(taskDivDescWrap,content);self.middleDiv.appendChild(taskDivDescWrap);dfx.addEvent(taskDivWrap,'click',function(e){var expander=dfx.getClass('taskExpander',taskDivWrap)[0];var progress=dfx.getClass(self.widgetType+'WidgetType-taskProgress',taskDivDescWrap)[0];if(dfx.hasClass(taskDivDescWrap,'hidden')===true){var expandProgress=function(){dfx.removeClass(taskDivDescWrap,'hidden');dfx.addClass(expander,'expanded');if(idx===(taskLen-1)){dfx.addClass(taskDivDescWrap,'last');dfx.removeClass(taskDivWrap,'last');}};if(dfx.isset(self.taskProgress[self.tasks[idx].taskid])===false){progress.innerHTML='Loading ...';expandProgress();var params={widget:'ProfileScreenModeWidget',taskid:self.tasks[idx].taskid};self.id='ProfileScreenModeWidgetType';AbstractEditingScreenModeWidgetType.prototype.getScreenData.call(self,params,function(progressD){self.id='ProfileScreenWidgetType';var progressD=dfx.jsonDecode(progressD);self.taskProgress[self.tasks[idx].taskid]=dfx.clone(progressD);var content='    <div class="'+self.widgetType+'WidgetType-taskProgressWrap">';content+='        <div class="'+self.widgetType+'WidgetType-taskProgressHeader">'+progressD[0].assetName+' (#'+progressD[0].data.assetid+')</div>';content+='        <div class="'+self.widgetType+'WidgetType-taskProgressNumber">('+progressD[0].data.approvedBy.length+' of '+progressD[0].data.numRequired+' approvals)</div>';content+='    </div>';var progLen=progressD.length;for(var k=0;k<progLen;k++){var commLen=progressD[k].comment.length;if(commLen===0){var progWrap=document.createElement('div');content+='<div class="'+self.widgetType+'WidgetType-taskProgressMsg">No actions have been taken.</div>';dfx.setHtml(progWrap,content);progress.innerHTML='';progress.appendChild(progWrap);}else{for(var j=0;j<commLen;j++){var progWrap=document.createElement('div');if(progressD[k].comment[j].type==='rejected'){content+='<div class="'+self.widgetType+'WidgetType-taskProgressLog rejected">'+progressD[k].comment[j].logMsg+'</div>';}else{content+='<div class="'+self.widgetType+'WidgetType-taskProgressLog">'+progressD[k].comment[j].logMsg+'</div>';}
if(progressD[k].comment[j].comment.length>0){content+='<div class="'+self.widgetType+'WidgetType-taskProgressMsg">"'+progressD[k].comment[j].comment+'"</div>';}else{content+='<div class="'+self.widgetType+'WidgetType-taskProgressMsg">No comment</div>';}
dfx.setHtml(progWrap,content);progress.innerHTML='';progress.appendChild(progWrap);}}}
var gotoBtn=self.createWidget(self.id+'-'+self.tasks[idx].taskid+'-gotoBtn','Button','ButtonWidgetType',false,'Go to Workflow Step');gotoBtn.create(function(el){var btnWrap=dfx.getClass(self.widgetType+'WidgetType-gotoAsset',taskDivDescWrap)[0];btnWrap.appendChild(el);});gotoBtn.addClickEvent(function(e){var params={attributes:['name'],type:false,typeIcon:false,linking:[],urls:true};self.displayDisabledDiv(true);AssetManager.getAsset(progressD[0].data.assetid,function(asset){var url=asset.getUrl()+'/_edit?initialMode=EditScreenMode&initialScreen=PublishingEditScreenWidget';var loaderMsg=dfx.getId('_disabledDiv_loaderMsg');if(loaderMsg){dfx.setHtml(loaderMsg,'Currently re-directing...');}
window.location=url;return false;},false,params);});});}else{expandProgress();}}else{dfx.addClass(taskDivDescWrap,'hidden');dfx.removeClass(expander,'expanded');if(idx===(taskLen-1)){dfx.removeClass(taskDivDescWrap,'last');dfx.addClass(taskDivWrap,'last');}}});})(i);var lastRow=dfx.getId(self.id+'-taskRow-'+(taskLen-1));dfx.addClass(lastRow,'last');}}},createRecentActivitySection:function()
{var self=this;var userLabel=document.createElement('div');dfx.addClass(userLabel,this.widgetType+'WidgetType-SectionLabel');dfx.addClass(userLabel,'recent');dfx.setHtml(userLabel,'Recent Activity');this.rightDiv.appendChild(userLabel);var lastLogin=document.createElement('div');dfx.addClass(lastLogin,this.widgetType+'WidgetType-lastLogin');dfx.setHtml(lastLogin,'Last logged in: '+this.userInfo.lastLogin);this.rightDiv.appendChild(lastLogin);var div=document.createElement('div');dfx.setHtml(div,this.recentChanges);this.rightDiv.appendChild(div);AbstractSplashScreenWidgetType.prototype.addDateClickEvent.call(this);AbstractSplashScreenWidgetType.prototype.addImageThumbMouseEvent.call(this);},saveUserProfile:function(callback)
{var self=this;var userInfo={};userInfo.firstName=this.fnameWdgt.getValue();userInfo.lastName=this.lnameWdgt.getValue();userInfo.email=this.emailWdgt.getValue();userInfo.active=this.activeToggle.getValue();userInfo.username=this.unameWdgt.getValue();userInfo.password=this.passWdgt.getValue();userInfo.userid=this.userInfo.userid;for(var attrid in userInfo){if(userInfo.hasOwnProperty(attrid)===true){if(attrid==='active'||attrid==='userid'){continue;}
if(attrid==='password'&&userInfo.password.length>0&&this.passWdgt.isValueMatched()===false){this.showError(['Entered password is not matched.']);this.initSaveButton();return;}
if(dfx.trim(userInfo[attrid]).length===0){var displayName='';switch(attrid){case'firstName':displayName='First Name';break;case'lastName':displayName='Last Name';break;case'email':displayName='Email';continue;break;case'username':displayName='Username';break;case'password':continue;break;default:break;}
this.showError([displayName+' can not be empty.']);this.initSaveButton();return;}}}
var params={widget:'ProfileScreenWidget',action:'saveUserProfile',userInfo:dfx.jsonEncode(userInfo)};this.displayDisabledDiv();this.id='ProfileScreenModeWidgetType';AbstractEditingScreenModeWidgetType.prototype.processScreen.call(self,params,function(data){self.id='ProfileScreenWidgetType';var unameFailed=false;if(data.errors){self.unameWdgt.setValue(self.userInfo.uname);unameFailed=true;}
var nameDiv=dfx.getClass(self.widgetType+'WidgetType-SectionLabel',self.profileDiv)[0];dfx.setHtml(nameDiv,userInfo.firstName+' '+userInfo.lastName);self.userInfo.fname=userInfo.firstName;self.userInfo.lname=userInfo.lastName;self.userInfo.email=userInfo.email;self.userInfo.active=userInfo.active;if(unameFailed===false){self.userInfo.uname=userInfo.username;}
if(self.cid===self.userInfo.userid){var prflIcnW=WidgetStore.get('ProfileEditingToolbarIcon');prflIcnW.setUsername(self.userInfo.uname);}
self.passWdgt.clearValue();self.userInfoOri=dfx.clone(self.userInfo);setTimeout(function(){self.reset(function(){setTimeout(function(){self.initSaveButton();self.removeDisabledDiv();},1000);});},500);},true);},reset:function(callback)
{this.fnameWdgt.setValue(this.userInfo.fname);this.lnameWdgt.setValue(this.userInfo.lname);this.emailWdgt.setValue(this.userInfo.email);this.activeToggle.setValue(this.userInfo.active);this.unameWdgt.setValue(this.userInfo.uname);this.passWdgt.clearValue();this.removeDisabledDiv();if(dfx.isFn(callback)===true){callback.call(this);}},updateScreen:function(callback)
{this.setReadOnly(true);this.reset(callback);},switchedOff:function()
{var icon=WidgetStore.get('ProfileEditingToolbarIcon');if(icon){icon.toggleState('inactive');}
Locking.release(this.resourceid);}};dfx.inherits('ProfileScreen','AbstractContainer');function WizardWidgetType(id,wizardid,stepid)
{AbstractContainerWidgetType.call(this,id);this.widgetType='Wizard';if(!wizardid){throw'No wizardid specified (WizardWidgetType)';}
this.wizardid=wizardid;this.stepid=stepid||null;this.info=null;this.steps={};this.wizardStepManager=null;this.wizardStepList=null;this.dialogButtons=[];}
WizardWidgetType.prototype={create:function(callback)
{var self=this;this.loadContents(function(){self.includeWidgets(['Div','WizardStepManager','WizardSteps'],function(){var main=self.createWidget(self.id,'Div');main.setClass(self.getClass());var wizardStepsPane=self.createWidget(self.id+'-leftPane','WizardSteps');self.wizardStepList=wizardStepsPane;var wizManager=self.createWidget(self.id+'-wizardStepManager','WizardStepManager');self.wizardStepManager=wizManager;wizManager.addStepChangedAction(function(stepIndex){self.stepChanged(stepIndex);});wizManager.addProcessAction(function(steps){self.processWizard(steps);});wizManager.addSteps(self.steps,function(){wizardStepsPane.setSteps(wizManager.getStepTitles());main.add(wizardStepsPane);main.add(wizManager);main.create(function(el){callback.call(self,el);return;});});});});},appendNewStep:function(title)
{this.steps[title]={attributes:[],contents:'',elements:[],tag:'widgets'};},getStepManager:function()
{return this.wizardStepManager;},getStepList:function()
{return this.wizardStepList;},loadContents:function(callback)
{var self=this;this.getWizardContents(function(data){if(data.info){self.info=data.info;}
if(data.steps){for(var step in self.steps){data.steps[step]=self.steps[step];}
self.steps=data.steps;callback.call(self);}});},getWizardContents:function(callback)
{var args={widget:'WizardWidget',action:'getWizardContents',wizardid:this.wizardid,stepid:this.stepid};var self=this;dfx.getJSON(this.url,args,callback);},addEvents:function()
{Widget.prototype.addEvents.call(this);this.wizardStepManager.addEvents();},getDialogButtons:function(callback)
{var self=this;this.includeWidgets(['Div','Button'],function(){var divWidget=self.createWidget(null,'Div');self.wizardStepManager.getDialogButtons(function(widgets){var len=widgets.length;for(var i=0;i<len;i++){divWidget.add(widgets[i]);}
callback.call(self,divWidget);});});},setDialog:function(w,callback)
{w.setTitle(this.info.title);this.dialogWidget=w;var self=this;this.getDialogButtons(function(widget){self.dialogWidget.setBottomWidget(widget,function(){widget.addEvents();if(dfx.isFn(callback)){callback.call(self);}});});},stepChanged:function(stepIndex)
{this.wizardStepList.setCurrentStep(stepIndex);},processWizard:function(steps)
{var values=this.wizardStepManager.getValues();var args={widget:'WizardWidget',action:'processSave',wizardid:this.wizardid,steps:dfx.jsonEncode(values)};var self=this;dfx.post(this.url,args,function(data){var success=data.getElementsByTagName('success');var message='';if(success.length>0){message=dfx.getNodeTextContent(success.item(0));self.wizardStepManager._showSuccess(message);}else{var failure=data.getElementsByTagName('failure');if(failure.length>0){var errors=data.getElementsByTagName('error');message=dfx.getNodeTextContent(errors.item(0));self.wizardStepManager._showFailed(message);}}});}};dfx.inherits('Wizard','AbstractContainer');function WorkflowAdminScreenStepUsersWidgetType(id,userid,count,removed)
{AbstractContainerWidgetType.call(this,id);this.widgetType='WorkflowAdminScreenStepUsers';this.userid=userid;this.count=count||1;this.domEl=null;this.removed=removed||false;}
WorkflowAdminScreenStepUsersWidgetType.prototype={create:function(callback)
{var c=this.getClass()+'-userList-item';var main=document.createElement('div');this.domEl=main;main.setAttribute('userid',this.userid);dfx.addClass(main,c);var count=this.count;if(this.readOnly===true){dfx.addClass(main,'readOnly');}
var self=this;AssetManager.getAsset(this.userid,function(user){var iconUrl=user.iconUrl;var content='<div class="'+c+'-typeIcon" style="background-image:url('+iconUrl+');"></div>';content+='<div class="'+c+'-name">'+user.getAttribute('name')+'</div>';content+='<div class="'+c+'-numUsers"></div>';content+='<div class="'+c+'-remove"></div>';dfx.setHtml(main,content);var removeButton=dfx.getClass(c+'-remove',main)[0];dfx.addEvent(removeButton,'click',function(){self.setModified(true);if(dfx.hasClass(main,'removed')===true){dfx.removeClass(main,'removed');self._removeDeletedLayer(main);}else{dfx.addClass(main,'removed');self._addDeletedLayer(main);}});if(self.removed===true){dfx.trigger(removeButton,'click');}
if(user.type==='userGroup'){var spinButton=self.createWidget(null,'SpinButton');spinButton.create(function(el){spinButton.setMinValue(1);spinButton.setValue(count);dfx.getClass(c+'-numUsers',main)[0].appendChild(el);var span=document.createElement('span');dfx.setHtml(span,'User(s)');dfx.getClass(c+'-numUsers',main)[0].appendChild(span);spinButton.addOnChangeEvent(function(){self.setModified(true);});});}
callback.call(self,main);return;});},_addDeletedLayer:function(parent,custClass)
{var c=this.getClass()+'-removedLayer';var el=document.createElement('div');dfx.addClass(el,c);if(custClass){dfx.addClass(el,custClass);}
parent.appendChild(el);return el;},_removeDeletedLayer:function(parent)
{dfx.remove(dfx.getClass(this.getClass()+'-removedLayer',parent));},setReadOnly:function(readOnly)
{AbstractContainerWidgetType.prototype.setReadOnly.call(this,readOnly);if(this.domEl){if(readOnly===true){dfx.addClass(this.domEl,'readOnly');}else{dfx.removeClass(this.domEl,'readOnly');}}}};dfx.inherits('WorkflowAdminScreenStepUsers','AbstractContainer');function WorkflowAdminScreenStepWidgetType(id,streamEl,schemaid,streamid,stepid,stepName,stepDesc,stepUsers)
{AbstractContainerWidgetType.call(this,id);this.widgetType='WorkflowAdminScreenStep';this.streamEl=streamEl;this.schemaid=schemaid;this.streamid=streamid;this.stepid=stepid;this.stepName=stepName;this.stepDesc=stepDesc;this.stepUsers=stepUsers;this.assetPicker=WidgetStore.get('EditingAssetPicker');this.assetPicker.setScreen('WorkflowAdminScreenStep');this.assetPicker.addProjectFolderWhiteList('WorkflowAdminScreenStep','Users');this.assetPicker.setHideSite('WorkflowAdminScreenStep');this.assetPicker.setUniqueSelect(false);this._removeButton=null;this._dragHandle=null;}
WorkflowAdminScreenStepWidgetType.prototype={create:function(callback)
{var schemaid=this.schemaid;var streamid=this.streamid;var stepid=this.stepid;var stepName=this.stepName;var stepDesc=this.stepDesc;var stepUsers=this.stepUsers;var streamEl=this.streamEl;stepid=stepid||null;stepName=stepName||'';stepDesc=stepDesc||'';stepUsers=stepUsers||{};var main=document.createElement('div');var id=stepid;if(!id){var nid=dfx.getUniqueId();id=streamid+'-'+nid;stepid=nid;}else{id=streamid+'-'+id;}
var c=this.getClass()+'-step';main.setAttribute('stepid',stepid);dfx.addClass(main,c);if(this.readOnly===true){dfx.addClass(main,'readOnly');}
var content='<div class="'+c+'-top">';content+='<div class="'+c+'-orderNum">'+(streamEl.childNodes.length+1)+'.</div>';content+='<div class="'+c+'-dragHandle"></div>';content+='<div class="'+c+'-name"></div>';content+='<div class="'+c+'-remove"></div>';content+='</div>';content+='<div class="'+c+'-bottom">';var style='';if(dfx.isEmpty(stepUsers)===false){style=' style="display:none;visibility:hidden"';}
var noUser='<div id="noUserMsg-'+stepid+'" class="noUserMsg"';noUser+=style+'>';noUser+='No users or user groups are assigned</div>';content+='<div class="'+c+'-bottom-left">';content+='<div class="'+c+'-bottom-left-top">';content+='<div class="'+c+'-bottom-left-title">Current Users</div>';content+='<div class="'+c+'-bottom-left-addUsers"></div></div>';content+='<div class="'+c+'-bottom-left-usersList">'+noUser+'</div>';content+='</div>';content+='<div class="'+c+'-bottom-right">';content+='<div class="'+c+'-bottom-right-label">Description</div>';content+='<div class="'+c+'-bottom-right-desc"></div>';content+='</div></div>';dfx.setHtml(main,content);var self=this;this._removeButton=dfx.getClass(c+'-remove',main)[0];dfx.addEvent(this._removeButton,'click',function(){self.setModified(true);if(dfx.hasClass(main,'removed')===true){dfx.removeClass(main,'removed');self._removeDeletedLayer(main);}else{dfx.addClass(main,'removed');self._addDeletedLayer(main);}});this._dragHandle=dfx.getClass(c+'-dragHandle',main)[0];this.includeWidgets(['TextField','TextArea','SpinButton','Button'],function(){var nameField=self.createWidget(id+'-name','TextField');nameField.setValue(stepName);nameField.create(function(el){dfx.getClass(c+'-name',main)[0].appendChild(el);nameField.addOnChangeEvent(function(){self.setModified(true);});});var addUsers=self.createWidget(id+'_','Button','ButtonWidgetType-liteGrey');addUsers.setName('Add Users');addUsers.create(function(el){dfx.getClass(c+'-bottom-left-addUsers',main)[0].appendChild(el);});var listCont=dfx.getClass(c+'-bottom-left-usersList',main)[0];addUsers.addClickEvent(function(){self._toggleAllAddNewButtons(false);self._addUsersToStep(listCont,id);});self._addUsersToStep(listCont,id,stepUsers);var descField=self.createWidget(id+'-desc','TextArea');descField.setValue(stepDesc);descField.create(function(el){dfx.getClass(c+'-bottom-right-desc',main)[0].appendChild(el);descField.addOnChangeEvent(function(){self.setModified(true);});});});callback.call(this,main);},_toggleAllAddNewButtons:function(enable)
{var c='ButtonWidgetType-liteGrey';if(enable===true){c='ButtonWidgetType-liteGrey-disabled';}
var container=dfx.getId('WorkflowAdminScreen-streamsWrapper');var buttons=dfx.getClass(c,container);var len=buttons.length;for(var i=0;i<len;i++){this._toggleAddNewButton(buttons[i].id,enable);}},_toggleAddNewButton:function(buttonid,enable)
{var button=WidgetStore.get(buttonid);if(button){if(enable===true){button.enable();}else{button.disable();}}},_addUsersToStep:function(listCont,id,users)
{if(users){for(var userid in users.assignees){if(users.assignees.hasOwnProperty(userid)===false){continue;}
var childNodes=dfx.getClass('WorkflowAdminScreenStepUsersWidgetType-userList-item',listCont);var exists=false;dfx.foreach(childNodes,function(nodeid){var childNode=childNodes[nodeid];if(dfx.attr(childNode,'userid')&&dfx.attr(childNode,'userid')===userid){exists=true;}
return true;});if(exists===true){continue;}
this._createUserListItem(id,userid,function(el){listCont.appendChild(el);},users.assignees[userid],(users.removedUsers&&users.removedUsers.inArray(userid)));}}else{var self=this;this.assetPicker.init('WorkflowAdminScreenStep',function(){self.assetPicker.dialog.open();self.assetPicker.dialog.addOnCloseCallback(function(){WidgetStore.get(id+'_').setEnabled(true);});});this.assetPicker.addAssetsSelectedAction(function(selectedAssets){var selectedUsers={};var sln=selectedAssets.length;if(sln>0){dfx.hideElement(dfx.getClass('noUserMsg',listCont)[0]);self.setModified(true);for(var i=0;i<sln;i++){selectedUsers[selectedAssets[i]]=1;}
self._addUsersToStep(listCont,id,{assignees:selectedUsers});}},true);this.assetPicker.addCloseAction(function(){self._toggleAllAddNewButtons(true);});}},_createUserListItem:function(id,userid,callback,count,removed)
{var self=this;this.includeWidget('WorkflowAdminScreenStepUsers',function(){var step=self.createWidget(null,'WorkflowAdminScreenStepUsers',userid,count,removed);step.create(function(el){callback.call(self,el);});});},_addDeletedLayer:function(parent,custClass)
{var c=this.getClass()+'-removedLayer';var el=document.createElement('div');dfx.addClass(el,c);if(custClass){dfx.addClass(el,custClass);}
parent.appendChild(el);return el;},_removeDeletedLayer:function(parent)
{dfx.remove(dfx.getClass(this.getClass()+'-removedLayer',parent));},setReadOnly:function(readOnly)
{AbstractContainerWidgetType.prototype.setReadOnly.call(this,readOnly);if(this._removeButton&&this._dragHandle){if(readOnly===true){dfx.setStyle([this._removeButton,this._dragHandle],'display','none');}else{dfx.setStyle([this._removeButton,this._dragHandle],'display','block');}}}};dfx.inherits('WorkflowAdminScreenStep','AbstractContainer');function WorkflowManagerStepWidgetType(id,step,index,assetid)
{AbstractContainerWidgetType.call(this,id);this.widgetType='WorkflowManagerStep';this.step=step;this.index=index;this.assetid=assetid;this.stepSubmitParam={};this.noteWidget=null;this.taskActionedCallbacks=[];this.beforeTaskActionedCallbacks=[];}
WorkflowManagerStepWidgetType.prototype={create:function(callback)
{var c=this.getClass();var main=document.createElement('div');dfx.addClass(main,c);var title='Step '+this.index+'.&nbsp;&nbsp;<span>'+this.step.title+'</span>';var contents='<div class="'+c+'-top">';contents+='<div class="'+c+'-expander"></div>';contents+='<div class="'+c+'-title">'+title+'</div>';contents+='<div class="'+c+'-right"></div>';contents+='</div>';var desc=this.step.description||'<span style="color:#666;">There is no description for this step</span>';contents+='<div class="'+c+'-details">';contents+='<div class="'+c+'-desc">'+desc+'</div>';contents+='<div class="'+c+'-assignees"></div>';contents+='<div class="'+c+'-notes"></div>';contents+='</div>';dfx.setHtml(main,contents);var top=dfx.getClass(c+'-top',main)[0];dfx.addEvent(top,'click',function(e){if(dfx.isChildOf(dfx.getMouseEventTarget(e),dfx.getClass(c+'-right',main)[0])===true){return;}
dfx.toggleClass(main,'expanded');});var usersCont=dfx.getClass(c+'-assignees',main)[0];this._addUsers(function(el){usersCont.appendChild(el);callback.call(this,main);return;});this._initRight(dfx.getClass(c+'-right',main)[0]);this._initNotes(dfx.getClass(c+'-notes',main)[0]);},_initNotes:function(parent)
{dfx.empty(parent);if(this.step.comments){var comEl=document.createElement('div');parent.appendChild(comEl);dfx.addClass(comEl,this.getClass()+'-comments');if(this.step.status===3){dfx.setHtml(comEl,'<div><strong>Last Run</strong></div>');}else{dfx.setHtml(comEl,'<div><strong>Notes</strong></div>');}
if(this.step.comments&&this.step.comments.length>0){this._createComments(this.step.comments.concat([]),comEl);}else{var text=document.createElement('div');dfx.setHtml(text,'There are no notes for this step.');comEl.appendChild(text);}}
if(this.step.canApprove===true&&this.step.status===1){var self=this;this.includeWidget('TextArea',function(){self.noteWidget=self.createWidget(null,'TextArea');self.noteWidget.create(function(el){dfx.addClass(el,'notes-textarea');parent.appendChild(el);});});}},_createComments:function(comments,parentEl)
{if(!comments||comments.length===0){return;}
var comment=comments.shift();var c=this.getClass()+'-comment';var comEl=document.createElement('div');dfx.addClass(comEl,c);var prefix='Approved';if(this.step.approvedUsers.inArray(comment.userid)!==true){prefix='Rejected';}
AssetManager.getAsset(comment.userid,function(user){var title=document.createElement('div');dfx.addClass(title,c+'-title');dfx.addClass(title,prefix);dfx.setHtml(title,prefix+' by '+user.getAttribute('name')+' ('+dfx.date('d M Y',(comment.date*1000))+')');var text=document.createElement('div');if(comment.comment&&dfx.trim(comment.comment).length>0){dfx.setHtml(text,'"'+comment.comment+'"');}
dfx.addClass(text,c+'-text');comEl.appendChild(title);comEl.appendChild(text);});parentEl.appendChild(comEl);this._createComments(comments,parentEl);},_initRight:function(parent)
{dfx.empty(parent);if(this.step.canApprove===true&&this.step.status===1){var self=this;this.includeWidget('Button',function(){var reject=self.createWidget(null,'Button','ButtonWidgetType-liteGrey');var approve=self.createWidget(null,'Button','ButtonWidgetType');reject.setName('Reject');approve.setName('Approve');reject.addClickEvent(function(){self.actionTask(false);});approve.addClickEvent(function(){self.actionTask(true);});reject.create(function(rejectEl){dfx.addClass(rejectEl,'reject-button');approve.create(function(approveEl){dfx.addClass(approveEl,'approve-button');parent.appendChild(rejectEl);parent.appendChild(approveEl);});});});}else{switch(this.step.status){case 0:dfx.setHtml(parent,'<span>(Step currently unavailable)</span>');break;case 3:dfx.setHtml(parent,'<div class="completed">Completed</div>');break;case 2:dfx.setHtml(parent,'<div class="rejected">Rejected</div>');break;default:dfx.setHtml(parent,'');break;}}},actionTask:function(approve)
{if(approve===true){approve='approve';}else{approve='reject';}
this.fireBeforeTaskActionedCallbacks(this.step,approve,{step:this.step,index:this.index,assetid:this.assetid,id:this.id});var params={widget:'WorkflowManager',action:'actionTask',approve:approve,taskid:this.step.taskid,notes:this.noteWidget.getValue(),assetid:this.assetid};var self=this;dfx.foreach(this.stepSubmitParam,function(key){params[key]=self.stepSubmitParam[key];return true;});var self=this;this.displayDisabledDiv(true);dfx.post(this.url,params,function(data){self.processSaveResponse(data,params,function(data){if(data&&!data.errors){self.fireTaskActionedCallbacks(self.step,approve,data);self.removeDisabledDiv();}});});},addStepSubmitParam:function(key,value)
{this.stepSubmitParam[key]=value;},_addUsers:function(callback)
{var c=this.getClass()+'-approvers';var main=document.createElement('div');dfx.addClass(main,c);var numRequired=this.step.numRequired||1;var contents='<div class="'+c+'-title">Approvers ('+numRequired+' required)</div>';contents+='<div class="'+c+'-list"></div>';dfx.setHtml(main,contents);var listElem=dfx.getClass(c+'-list',main)[0];AssetManager.getAssets(this.step.assignees,function(assets){var aln=assets.length;for(var i=0;i<aln;i++){var asset=assets[i];var elem=document.createElement('div');dfx.addClass(elem,c+'-approver');dfx.setHtml(elem,asset.getAttribute('name'));dfx.setStyle(elem,'background-image','url('+asset.iconUrl+')');listElem.appendChild(elem);}
callback.call(this,main);});},addBeforeTaskActionedCallback:function(callback)
{this.beforeTaskActionedCallbacks.push(callback);},fireBeforeTaskActionedCallbacks:function(step,approve,data)
{var ln=this.beforeTaskActionedCallbacks.length;for(var i=0;i<ln;i++){this.beforeTaskActionedCallbacks[i].call(this,step,approve,data);}},addTaskActionedCallback:function(callback)
{this.taskActionedCallbacks.push(callback);},fireTaskActionedCallbacks:function(step,approve,data)
{var ln=this.taskActionedCallbacks.length;for(var i=0;i<ln;i++){this.taskActionedCallbacks[i].call(this,step,approve,data);}}};dfx.inherits('WorkflowManagerStep','AbstractContainer');function WorkflowManagerStepsWidgetType(id,assetid,schemaid,schemaData)
{AbstractContainerWidgetType.call(this,id);this.widgetType='WorkflowManagerSteps';this.assetid=assetid;this.schemaid=schemaid;this.schemaData=schemaData||null;this.taskActionedCallbacks=[];this.beforeTaskActionedCallbacks=[];}
WorkflowManagerStepsWidgetType.prototype={create:function(callback)
{var c=this.getClass();var main=document.createElement('div');dfx.addClass(main,c);if(dfx.isset(this.schemaData.isRunning)===false){callback.call(this,main);return;}
var runningText='';var runInfoText='';if(this.schemaData.isRunning===true){runningText='<span class="running">(Currently Running)</span>';}else{if(this.schemaData.startedBy){runInfoText+='<span class="lastRunBy">Last Run by <strong class="lastRunByName"></strong></span>';}
if(this.schemaData.completedDate){runInfoText+='<span class="completed"><span>Completed:</span>'+this.schemaData.completedDate+'</span>';}else if(this.schemaData.rejectedDate){runInfoText+='<span class="rejected"><span>Rejected:</span>'+dfx.date('d M Y',(this.schemaData.rejectedDate*1000))+'</span>';}}
var contents='<div class="'+c+'-top">';contents+='<div class="'+c+'-top-icon"></div>';contents+='<div class="'+c+'-top-title">'+this.schemaData.name+runningText+'</div>';contents+='<div class="'+c+'-top-runInfo">'+runInfoText+'</div>';contents+='</div>';contents+='<div class="'+c+'-steps"></div>';dfx.setHtml(main,contents);if(this.schemaData.startedBy){var lastRunByNameEl=dfx.getClass('lastRunByName',main)[0];AssetManager.getAsset(this.schemaData.startedBy,function(asset){if(lastRunByNameEl){dfx.setHtml(lastRunByNameEl,asset.name);}});}
var bottom=dfx.getClass(c+'-steps',main)[0];AssetManager.getAssetTypeInfos(['workflowSchema'],function(typeInfos){var icon=dfx.getClass(c+'-top-icon',main)[0];dfx.setStyle(icon,'background-image','url('+typeInfos[0].iconURL+')');});var self=this;this.includeWidget('WorkflowManagerStep',function(){self._createStepWidgets(self.schemaData.tasks,bottom,function(){callback.call(self,main);return;});});},_createStepWidgets:function(steps,parentElem,callback,index)
{if(!steps||steps.length===0){callback.call(this);return;}
index=index||0;var step=steps.shift();var stepWidget=this.createWidget(null,'WorkflowManagerStep',step,++index,this.assetid);stepWidget.addTaskActionedCallback(function(step,approve,data){self.fireTaskActionedCallbacks(step,approve,data);});stepWidget.addBeforeTaskActionedCallback(function(step,approve,data){self.fireBeforeTaskActionedCallbacks(step,approve,data);});var self=this;stepWidget.create(function(el){parentElem.appendChild(el);self._createStepWidgets(steps,parentElem,callback,index);});},addTaskActionedCallback:function(callback)
{this.taskActionedCallbacks.push(callback);},fireTaskActionedCallbacks:function(step,approve,data)
{var ln=this.taskActionedCallbacks.length;for(var i=0;i<ln;i++){this.taskActionedCallbacks[i].call(this,step,approve,data);}},addBeforeTaskActionedCallback:function(callback)
{this.beforeTaskActionedCallbacks.push(callback);},fireBeforeTaskActionedCallbacks:function(step,approve,data)
{var ln=this.beforeTaskActionedCallbacks.length;for(var i=0;i<ln;i++){this.beforeTaskActionedCallbacks[i].call(this,step,approve,data);}}};dfx.inherits('WorkflowManagerSteps','AbstractContainer');function WorkflowManagerWidgetType(id,assetid,parentElement,isPublished,isInSafeEdit,isScheduled,approveRejectCallback,beforeApproveRejectCallback)
{AbstractContainerWidgetType.call(this,id);this.widgetType='WorkflowManager';this.assetid=assetid;this.schemas=null;this.parentElement=parentElement;this.streams={};this.ipopup=null;this.isPublished=isPublished||false;this.isInSafeEdit=isInSafeEdit||false;this.isScheduled=isScheduled||false;this.selectList={};this.topSection=null;this.completed={};this.allCompleted=true;this.resetCallbacks=[];this.beforeResetCallbacks=[];this.approveRejectCallback=approveRejectCallback||null;this.beforeApproveRejectCallback=beforeApproveRejectCallback||null;this.skipSubmitParam={};}
WorkflowManagerWidgetType.prototype={setReadOnly:function(readOnly)
{AbstractSettingsScreenWidgetType.prototype.setReadOnly.call(this,readOnly);if(readOnly===false){if(this.topSection!==null){dfx.showElement(this.topSection);}
for(var schemaid in this.selectList){dfx.setStyle(this.selectList[schemaid].select,'display','inline');}}},init:function()
{dfx.empty(this.parentElement);this.create(function(){});},create:function(callback)
{var self=this;this.includeWidgets(['Intervention','Button','Select','WorkflowManagerSteps'],function(){var c=self.getClass();var main=document.createElement('div');dfx.addClass(main,c);var content='<div class="'+c+'-secTitle">Workflow</div>';dfx.setHtml(main,content);this.domElem=main;var params={widget:self.widgetType,action:'getInfo',assetid:self.assetid};this.ipopup=self.createWidget(null,'Intervention',null,null);this.ipopup.create(function(){self._processWorkflowManagerScreen(params,function(data){self.schemas=data.schemas;self.inWorkflow=data.inWorkflow;self.permissions=data.permissions;dfx.foreach(self.schemas,function(schemaid){self.completed[schemaid]=true;if(!self.schemas[schemaid].tasks){self.allCompleted=false;self.completed[schemaid]=false;return false;}else{dfx.foreach(self.schemas[schemaid].tasks,function(idx){if(self.schemas[schemaid].tasks[idx].status!==3){self.allCompleted=false;self.completed[schemaid]=false;return false;}
return true;});}
return true;});var showOverrides=false;if(self.isInSafeEdit!==true){if(self.isPublished!==true){showOverrides=true;}}else{showOverrides=true;}
if(showOverrides===true&&self.isScheduled===true&&self.allCompleted===true&&self.inWorkflow!==true){if((self.isInSafeEdit===true&&self.isPublished===true)||(self.isInSafeEdit!==true&&self.isPublished!==true)){showOverrides=false;}}
if(showOverrides===true){var overrides=self._createOverrideSection();if(overrides){main.appendChild(overrides);}}
if(showOverrides&&self.inWorkflow!==true){self._createTopSection(function(elem){main.appendChild(elem);self.topSection=elem;if(self.readOnly===true){dfx.hideElement(elem);}
self._createWorkflows();});}else{self._createWorkflows();}});if(self.parentElement){self.parentElement.appendChild(main);}
callback.call(self,main);return;});});},_createOverrideSection:function()
{if((this.permissions['workflow.cancel']!==true||this.inWorkflow!==true)&&this.permissions['workflow.skip']!==true){return;}
var c=this.getClass()+'-overrides';var main=document.createElement('div');dfx.addClass(main,c);var title=document.createElement('div');main.appendChild(title);dfx.addClass(title,c+'-title');dfx.setHtml(title,'Workflow Overrides');var self=this;if(this.permissions['workflow.skip']===true){var skipCont=document.createElement('div');dfx.addClass(skipCont,c+'-skip');main.appendChild(skipCont);var skip=this.createWidget(null,'Button','ButtonWidgetType-black');skip.setName('Skip Workflow');skip.create(function(el){skipCont.appendChild(el);});skip.addClickEvent(function(){self.ipopup.setSize('250px','61px');self.ipopup.setMessage('Are you sure you want to skip workflow?');self.ipopup.setConfirmCallback(function(){var params={widget:self.widgetType,action:'skipWorkflow',assetid:self.assetid,id:self.id};self.fireBeforeResetCallbacks(params);dfx.foreach(self.skipSubmitParam,function(key){params[key]=self.skipSubmitParam[key];return true;});self._processWorkflowManagerScreen(params,function(data){self.fireResetCallbacks(params);});});self.ipopup.show(skipCont);},true);}
if(this.permissions['workflow.cancel']===true&&this.inWorkflow===true){var cancelCont=document.createElement('div');dfx.addClass(cancelCont,c+'-cancel');main.appendChild(cancelCont);var cancel=this.createWidget(null,'Button','ButtonWidgetType-black');cancel.setName('Cancel Workflow');cancel.create(function(el){cancelCont.appendChild(el);});cancel.addClickEvent(function(){self.ipopup.setSize('250px','61px');self.ipopup.setMessage('Are you sure you want to cancel workflow?');self.ipopup.setConfirmCallback(function(){var params={widget:self.widgetType,action:'cancelWorkflow',assetid:self.assetid};self.fireBeforeResetCallbacks(params);self._processWorkflowManagerScreen(params,function(data){self.fireResetCallbacks(params);});});self.ipopup.show(cancelCont);},true);}
return main;},_processWorkflowManagerScreen:function(params,callback)
{var self=this;if(params&&params.action!=='getInfo'){this.displayDisabledDiv(true);}
dfx.post(this.url,params,function(data){if(params&&params.action==='getInfo'){data=dfx.jsonDecode(data);if(callback){callback.call(this,data);}}else{self.processSaveResponse(data,params,function(data){if(data&&!data.errors){callback.call(this,data);self.removeDisabledDiv();}});}});},isCompleted:function(schemaid)
{return this.completed[schemaid];},allWorkflowCompleted:function()
{return this.allCompleted;},_createTopSection:function(callback)
{if(!this.permissions['workflow.start.default']&&!this.permissions['workflow.start.stream']){var elem=document.createElement('div');dfx.addClass(elem,this.getClass()+'-top-noPerm');dfx.setHtml(elem,'You do not have permission to start the workflow');callback.call(this,elem);return;}
if(!this.schemas){return;}
var c=this.getClass()+'-top';var main=document.createElement('div');dfx.addClass(main,c);var contents='<div class="'+c+'-left"></div>';contents+='<div class="'+c+'-right"></div>';dfx.setHtml(main,contents);var left=dfx.getClass(c+'-left',main)[0];var right=dfx.getClass(c+'-right',main)[0];var self=this;var applyButton=self.createWidget(null,'Button','ButtonWidgetType');applyButton.setName('Apply for Approval');applyButton.addClickEvent(function(){self.applyForApproval();});applyButton.create(function(el){dfx.addClass(el,'apply-button');left.appendChild(el);});for(var schemaid in this.schemas){if(!this.schemas[schemaid].streams){continue;}
(function(schemaid){var div=document.createElement('div');dfx.addClass(div,c+'-schemaInfo');right.appendChild(div);var schemaName=document.createElement('div');dfx.addClass(schemaName,c+'-schemaName');var selectCont=document.createElement('div');dfx.addClass(selectCont,c+'-select');var taskCountCont=document.createElement('div');dfx.addClass(taskCountCont,c+'-taskCount');div.appendChild(schemaName);div.appendChild(selectCont);div.appendChild(taskCountCont);dfx.setHtml(schemaName,self.schemas[schemaid].name+'&nbsp;-&nbsp;');var streams=self.schemas[schemaid].streams;var items={};var taskCount=null;for(var streamid in streams){items[streamid]=streams[streamid].name;if(taskCount===null){taskCount=self.schemas[schemaid].streams[streamid].tasks;var taskHtml='('+taskCount+' Step';if(taskCount>1){taskHtml+='s'}
taskHtml+=')';dfx.setHtml(taskCountCont,taskHtml);}}
if(!self.permissions['workflow.start.stream']){var defaultStream=self.schemas[schemaid].defaultStream;var name=self.schemas[schemaid].streams[defaultStream].name;dfx.setHtml(selectCont,name);}else{var select=self.createWidget(null,'Select');self.selectList[schemaid]=select;select.setSelectedEventValueType('value');select.addItemSelectedEvent(function(selected){var taskCount=self.schemas[schemaid].streams[selected].tasks;var taskHtml='('+taskCount+' Step';if(taskCount>1){taskHtml+='s'}
taskHtml+=')';dfx.setHtml(taskCountCont,taskHtml);self.streams[schemaid]=selected;});select.addItems(items);select.create(function(el){self.streams[schemaid]=self.schemas[schemaid].defaultStream.toString();select.setValue(self.streams[schemaid],true);selectCont.appendChild(el);});}})(schemaid);}
callback.call(this,main);},applyForApproval:function()
{var params={widget:this.widgetType,action:'applyForApproval',assetid:this.assetid,streams:dfx.jsonEncode(this.streams)};var self=this;self.fireBeforeResetCallbacks(params);this._processWorkflowManagerScreen(params,function(data){self.fireResetCallbacks(params);});},_createWorkflows:function()
{var self=this;for(var schemaid in this.schemas){var stepsWidget=this.createWidget(null,'WorkflowManagerSteps',this.assetid,schemaid,self.schemas[schemaid]);if(this.approveRejectCallback!==null){stepsWidget.addTaskActionedCallback(this.approveRejectCallback);}
if(this.beforeApproveRejectCallback!==null){stepsWidget.addBeforeTaskActionedCallback(this.beforeApproveRejectCallback);}
stepsWidget.create(function(el){self.domElem.appendChild(el);});stepsWidget.addTaskActionedCallback(function(){self.fireResetCallbacks();});}},fireResetCallbacks:function(params)
{var ln=this.resetCallbacks.length;for(var i=0;i<ln;i++){this.resetCallbacks[i].call(this,params);}},addResetCallback:function(callback)
{this.resetCallbacks.push(callback);},fireBeforeResetCallbacks:function(params)
{var ln=this.beforeResetCallbacks.length;for(var i=0;i<ln;i++){this.beforeResetCallbacks[i].call(this,params);}},addBeforeResetCallback:function(callback)
{this.beforeResetCallbacks.push(callback);},addSkipSubmitParam:function(key,value)
{this.skipSubmitParam[key]=value;}};dfx.inherits('WorkflowManager','AbstractContainer');function AuthenticationEditingToolbarIconWidgetType(id)
{AbstractEditingToolbarIconWidgetType.call(this,id);this.widgetType='AuthenticationEditingToolbarIcon';this.init();this.setTitle('Click to logout');}
AuthenticationEditingToolbarIconWidgetType.prototype={init:function()
{var button=dfx.getId('AuthenticationEditingToolbarIcon-icon');var self=this;var iw=null;dfx.addEvent(button,'click',function(){var icon=WidgetStore.get('AuthenticationEditingToolbarIcon');if(icon){icon.toggleState('active');}
if(iw){iw.show(button,'fixed');return;}
self.includeWidget('Intervention',function(){iw=self.createWidget(null,'Intervention');iw.setCancelCallback(function(){icon.toggleState('inactive');});iw.setConfirmCallback(function(){var ans=false;if(WidgetStore.get('EditingSaveButton').enabled===true){ans=confirm(WidgetStore.getUnsavedChangesStr());}
if(ans===true||WidgetStore.get('EditingSaveButton').enabled===false){window.onbeforeunload=null;Locking.release(null,function(){var url=(new String(document.location)).valueOf();var noAnchorUrl=dfx.noAnchorPartUrl(url);var authQryStr={};authQryStr.auth_action='logout';var logoutUrl=dfx.addToQueryString(noAnchorUrl,authQryStr);dfx.get(logoutUrl,null,function(data){if(data==='success'){window.location.href=noAnchorUrl;}});});}else{icon.toggleState('inactive');}});iw.create(function(){iw.setMessage('Are you sure you want to logout?');iw.setSize('250px','47px');iw.show(button,'fixed');});});});}};dfx.inherits('AuthenticationEditingToolbarIcon','AbstractEditingToolbarIcon');function ContextSwitcherEditingToolbarIconWidgetType(id,noInit)
{AbstractEditingToolbarIconWidgetType.call(this,id);this.widgetType='ContextSwitcherEditingToolbarIcon';if(noInit!==true){this.init();}}
ContextSwitcherEditingToolbarIconWidgetType.prototype={init:function()
{this.setTitle('Click to change the context');this.setIconClickEvent();this.setupSwitchButton();this.addHoverEvent();this.addOnSelectEvent();},createButton:function()
{var param={widget:this.widgetType,action:'getBtnContent'};var self=this;dfx.post(this.getCurrentUrl(true),param,function(data){if(!data){return}
var oldIcon=dfx.getId(self.id);if(oldIcon){dfx.remove(oldIcon);}
var icons=dfx.getClass('ToolbarIcon-wrapper',dfx.getId('Toolbar-iconsWrapper'));if(data==='remove'){dfx.addClass(icons[0],'ToolbarIcon-first');return;}
var elem=document.createElement('div');elem.id=self.id;dfx.setHtml(elem,data);dfx.removeClass(icons[0],'ToolbarIcon-first');dfx.addClass(elem,'ContextSwitcherEditingToolbarIconWidgetType ToolbarIcon-wrapper ToolbarIcon-first');dfx.insertBefore(icons[0],elem);self.init();});},setIconClickEvent:function()
{var button=dfx.getId(this.id+'-wrapper');dfx.addEvent(button,'click',function(){dfx.toggleClass(button.parentNode,'active');});},setupSwitchButton:function()
{var btnCont=dfx.getId(this.id+'-switchBtnCont');if(btnCont){var self=this;this.includeWidget('Button',function(){var btn=self.createWidget(this.id+'-switchButton','Button','ButtonWidgetType-black');btn.setName('Switch');btn.create(function(btnEl){btn.addClickEvent(function(){var context=self._getContextFromOpts();self.switchToContext(context);},true);btnCont.appendChild(btnEl);});});}},_getContextFromOpts:function()
{var context='00';for(var i=3;i>=1;i--){var sel=dfx.getId(this.id+'-sel-'+i);if(!sel){context+='00';continue;}
context+=sel.value;}
return context;},switchToContext:function(context)
{var iconEl=dfx.getId(this.id+'-icon');if(iconEl){dfx.removeClass(iconEl,'active');}
this.displayDisabledDiv(true,null,null,null,'Currently re-directing...');var param={widget:this.widgetType,action:'switchContext',context:context};var mode=WidgetStore.getData('activeMode');if(mode&&mode.id){mode=mode.id;}
var screen=WidgetStore.getData('activeScreen');if(screen&&screen.system){screen=screen.system;}
dfx.post(this.getCurrentUrl(true),param,function(data){var url=data;var modeScreen='initialMode='+mode;if(screen!=='EditSplash'&&screen!=='AdminSplash'&&screen!=='SystemConfigSplash'){modeScreen+='&initialScreen='+screen;}
if(url.indexOf('?')===-1){url+='?';}else{url+='&';}
window.location.href=url+modeScreen;});},updateContexts:function(contexts)
{for(var lvl=1;lvl<=3;lvl++){var select=dfx.getId(this.id+'-sel-'+lvl);if(!select){continue;}
if(!contexts[lvl]||contexts[lvl].length===0){if(select){dfx.remove(select);}}else{var selectedVal=select.value;if(!selectedVal){selectedVal='00';}
dfx.empty(select);var opt=document.createElement('option');opt.value='00';if(selectedVal==='00'){opt.selected='selected';}
dfx.setHtml(opt,'Master');select.appendChild(opt);var ln=contexts[lvl].length;var added=false;for(var i=0;i<ln;i++){var context=contexts[lvl][i];if(context.removed===true){continue;}
var opt=document.createElement('option');opt.value=context.id;dfx.setHtml(opt,context.name);if(selectedVal===context.id){opt.selected='selected';}
select.appendChild(opt);added=true;}
if(added===false){dfx.remove(select);}}}},addOnSelectEvent:function()
{var c=this.getClass()+'-contextActive';for(var lvl=1;lvl<=3;lvl++){var select=dfx.getId(this.id+'-sel-'+lvl);if(!select){continue;}
if(select.selectedIndex===0){dfx.removeClass(select,c);}else{dfx.addClass(select,c);}
(function(selectEl){dfx.addEvent(selectEl,'change',function(){if(selectEl.selectedIndex===0){dfx.removeClass(selectEl,c);}else{dfx.addClass(selectEl,c);}});})(select);}}};dfx.inherits('ContextSwitcherEditingToolbarIcon','AbstractEditingToolbarIcon');function HelpEditingToolbarIconWidgetType(id)
{AbstractEditingToolbarIconWidgetType.call(this,id);this.widgetType='HelpEditingToolbarIcon';this.setTitle('Click to view the help articles or report a problem with the system');}
HelpEditingToolbarIconWidgetType.prototype={};dfx.inherits('HelpEditingToolbarIcon','AbstractEditingToolbarIcon');function JumperEditingToolbarIconWidgetType(id)
{AbstractEditingToolbarIconWidgetType.call(this,id);this.widgetType='JumperEditingToolbarIcon';this.assetPicker=WidgetStore.get('JumperAssetPicker');this.assetPicker.setScreen('Jumper');this.assetPicker.setUniqueSelect(true);this.assetPicker.addProjectFolderWhiteList('Jumper','Documents');this.assetPicker.addProjectFolderWhiteList('Jumper','Images');this.assetPicker.addProjectFolderWhiteList('Jumper','Movies');this.assetPicker.addProjectFolderWhiteList('Jumper','Users');this.assetPicker.setSaveButtonCheck(true);this.showLoader=false;var self=this;var icon=dfx.getId('JumperEditingToolbarIcon-icon');if(icon){dfx.addEvent(icon,'click',function(){if(self.state!=='active'){self.toggleState('active');self.loadPicker();}else{self.assetPicker.dialog.close();}});}
this.setTitle('Click to find an asset in the system');}
JumperEditingToolbarIconWidgetType.prototype={loadPicker:function()
{this.showLoader=false;var self=this;self.displayDisabledDiv(true);this.assetPicker.init('Jumper',function(){self.assetPicker.dialog.open();});this.assetPicker.addAssetsSelectedAction(function(selectedAssets){self.toggleState('inactive');var len=selectedAssets.length;if(len===0){return;}
var lin=this.getSelectLineage();lin.shift();var last=lin[(lin.length-1)];if(last!==selectedAssets[0]){lin.push(selectedAssets[0]);}
lin=lin.join(':');self.jumpToAsset(selectedAssets,lin);},true);this.assetPicker.addCloseAction(function(){self.toggleState('inactive');if(self.showLoader===true){self.displayDisabledDiv(true);}},true,'Jumper');},jumpToAsset:function(id,lineage)
{this.showLoader=true;var id=id[0];var self=this;var params={attributes:[],type:false,typeIcon:false,linking:[],urls:true};self.displayDisabledDiv(true);AssetManager.getAsset(id,function(asset){var dest='';var url=asset.getUrl(lineage);var tilda=(asset.id+'').indexOf('~');var assetid=parseInt(asset.id,10);if(tilda!==-1||assetid<0){strip=url.replace(/\?a=.*/gi,'');if(strip===url){dest=url+'/'+Widget.CURRENT_SUFFIX;}else{if(asset.hasOwnProperty('encodedId')===true){dest=strip+'/'+Widget.CURRENT_SUFFIX+'?a='+asset.encodedId;}else{dest=strip+'/'+Widget.CURRENT_SUFFIX+'?a='+asset.id;}}}else if(url===''){dest=Widget.EDIT_URL+'?a='+asset.id;}else{dest=url+'/'+Widget.CURRENT_SUFFIX;}
window.location.href=dest;},true,params);}};dfx.inherits('JumperEditingToolbarIcon','AbstractEditingToolbarIcon');function ProfileEditingToolbarIconWidgetType(id)
{AbstractEditingToolbarIconWidgetType.call(this,id);this.widgetType='ProfileEditingToolbarIcon';this.setTitle('Click to view and edit your account details');}
ProfileEditingToolbarIconWidgetType.prototype={toggleState:function(state)
{this.displayDisabledDiv(true);AbstractEditingToolbarIconWidgetType.prototype.toggleState.call(this,state);},setUsername:function(uname)
{var titleDiv=dfx.getId(this.id+'-title');var length=uname.length;var newWidth=((length*7)+25)+'px';dfx.setStyle(titleDiv,'width',newWidth);dfx.setHtml(titleDiv,uname);}};dfx.inherits('ProfileEditingToolbarIcon','AbstractEditingToolbarIcon');function TrashEditingToolbarIconWidgetType(id)
{AbstractEditingToolbarIconWidgetType.call(this,id);this.widgetType='TrashEditingToolbarIcon';this.setTitle('Click to view the assets in the trash');}
TrashEditingToolbarIconWidgetType.prototype={toggleState:function(state)
{this.displayDisabledDiv(true);AbstractEditingToolbarIconWidgetType.prototype.toggleState.call(this,state);}};dfx.inherits('TrashEditingToolbarIcon','AbstractEditingToolbarIcon');function AdminSplashScreenWidgetType(id,dates)
{AbstractSplashScreenWidgetType.call(this,id,dates);}
AdminSplashScreenWidgetType.prototype={};dfx.inherits('AdminSplashScreen','AbstractSplashScreen');function EditSplashScreenWidgetType(id,dates,editingAssetid,assetName)
{AbstractSplashScreenWidgetType.call(this,id,dates);this.editingAssetid=editingAssetid;this.assetName=assetName;}
EditSplashScreenWidgetType.prototype={};dfx.inherits('EditSplashScreen','AbstractSplashScreen');function SystemConfigSplashScreenWidgetType(id,dates)
{AbstractSplashScreenWidgetType.call(this,id,dates);}
SystemConfigSplashScreenWidgetType.prototype={};dfx.inherits('SystemConfigSplashScreen','AbstractSplashScreen');function FileVersioningWidgetType(id,assetid,version)
{AssetVersioningWidgetType.call(this,id,assetid,version);this.widgetType='FileVersioning';}
FileVersioningWidgetType.prototype={init:function()
{AssetVersioningWidgetType.prototype.init.call(this);var button=WidgetStore.get(this.id+'_dl');this.addDownloadButtonClickEvent(button);},addDownloadButtonClickEvent:function(button)
{var self=this;button.addClickEvent(function(){self.downloadFileVersion();});},downloadFileVersion:function()
{window.location.href=this.url+'?widget='+this.widgetType+'WidgetType&action=dlf&assetid='+this.assetid+'&version='+this.version;}};dfx.inherits('FileVersioning','AssetVersioning');function InterventionWidgetType(id,cancelCallback,confirmCallback)
{BalloonPopupWidgetType.call(this,id);this.mainPositions=['n','s','e','w'];this.order=['mid','low','high'];this.cancelCallback=function(){};this.confirmCallback=function(){};this.width='250px';this.height='50px';this.cancelText='No';this.confirmText='Yes';this.confirmButtonSize=78;this.cancelButtonSize=78;this.positionType=null;if(cancelCallback){this.setCancelCallback(cancelCallback);}
if(confirmCallback){this.setConfirmCallback(confirmCallback);}
this.includeWidget('Button',function(){});}
InterventionWidgetType.prototype={create:function(callback)
{var self=this;this.includeWidget('BalloonPopup',function(){BalloonPopupWidgetType.prototype.create.call(self,function(el){self.dialog.setSize(self.width,self.height);callback.call(self,el);return;});});},setCancelText:function(text)
{this.cancelText=text;},setConfirmText:function(text)
{this.confirmText=text;},setSize:function(w,h)
{this.width=w;this.height=h;if(this.dialog){this.dialog.setSize(w,h);}},show:function(element,positionType)
{if(this.popupActive===true){return;}
var el=this.domElem;dfx.setStyle(el,'visibility','hidden');dfx.setStyle(el,'display','block');this.positionType=positionType||null;this.popupActive=true;var self=this;var lim=100;var c=0;this.setCancelCallback(this.cancelCallback);this.setConfirmCallback(this.confirmCallback);if(!el.parentNode||el.parentNode!==document.body){document.body.appendChild(el);}
var i=setInterval(function(){var popupDims=dfx.getElementDimensions(el);if(popupDims.height!==0&&popupDims.width!==0){clearInterval(i);self.setPopupPosition(element);dfx.setStyle(el,'visibility','visible');self.dialog.show();}else if(c++>lim){clearInterval(i);}},100);},close:function()
{this.popupActive=false;dfx.remove(this.domElem);dfx.setStyle(this.domElem,'display','none');dfx.setStyle(this.dialog.el,'display','block');dfx.setStyle(this.dialog.el,'visibility','hidden');},setCancelButtonSize:function(size)
{this.cancelButtonSize=size;},setConfirmButtonSize:function(size)
{this.confirmButtonSize=size;},setMessage:function(msg)
{var buttonsClass='';if(this.confirmText===null){buttonsClass+=' noConfrimBtn';}
if(this.cancelText===null){buttonsClass+=' noCancelBtn';}
var c='InterventionWidgetType';var main=document.createElement('div');var content='<div class="'+c+'-message">'+msg+'</div><div class="'+c+'-buttons '+buttonsClass+'">';content+='<div class="'+c+'-leftButton"></div>';content+='<div class="'+c+'-rightButton"></div></div>';dfx.setHtml(main,content);var lCont=dfx.getClass(c+'-leftButton',main)[0];var rCont=dfx.getClass(c+'-rightButton',main)[0];this.replaceContent(main);var self=this;this.includeWidget('Button',function(){if(self.cancelText!==null){self.cancel=self.createWidget(this.id+'-cancelButton','Button','ButtonWidgetType-black');self.cancel.setName(self.cancelText);self.cancel.create(function(el){self.cancel.setMinWidth(self.cancelButtonSize+'px');lCont.appendChild(el);});self.cancel.addClickEvent(function(){self.close();self.cancelCallback.call(self);},true);}else{dfx.setStyle(rCont,'position','absolute');dfx.setStyle(rCont,'margin-left',(((parseInt(self.confirmButtonSize)+15)/2)*-1));dfx.setStyle(rCont,'left','50%');}
if(self.confirmText!==null){self.confirm=self.createWidget(this.id+'-confirmButton','Button','ButtonWidgetType-black');self.confirm.setName(self.confirmText);self.confirm.create(function(el){self.confirm.setMinWidth(self.confirmButtonSize+'px');rCont.appendChild(el);});self.confirm.addClickEvent(function(){self.close();self.confirmCallback.call(self);},true);}else{dfx.setStyle(lCont,'position','absolute');dfx.setStyle(lCont,'margin-left',(((parseInt(self.cancelButtonSize)+15)/2)*-1));dfx.setStyle(lCont,'left','50%');}});},setCancelCallback:function(callback)
{this.cancelCallback=callback;if(this.cancel){var self=this;this.cancel.addClickEvent(function(){self.close();self.cancelCallback.call(self);},true);}},setConfirmCallback:function(callback)
{this.confirmCallback=callback;if(this.confirm){var self=this;this.confirm.addClickEvent(function(){self.close();self.confirmCallback.call(self);},true);}},setPopupPosition:function(element)
{var popupEl=this.domElem;if(!element||!popupEl){return;}
var elementRect=dfx.getBoundingRectangle(element);var windowDims=dfx.getWindowDimensions();var popupDims=dfx.getElementDimensions(popupEl);var scrollCoords=dfx.getScrollCoords();var margin=10;var posInfo={element:element,elementRect:elementRect,windowDims:windowDims,scrollCoords:scrollCoords,popupDims:popupDims,margin:margin,point:{x:elementRect.x1+((elementRect.x2-elementRect.x1)/2),y:elementRect.y1+((elementRect.y2-elementRect.y1)/2)}};if(this.positionType==='fixed'){posInfo.point.x-=scrollCoords.x;posInfo.point.y-=scrollCoords.y;posInfo.scrollCoords.x=0;posInfo.scrollCoords.y=0;dfx.setStyle(popupEl,'position',this.positionType);}
this._setPopupPosition(posInfo);},_setPopupPosition:function(info)
{var vln=this.mainPositions.length;var pos=null;for(var i=0;i<vln;i++){pos=this.mainPositions[i];if(this.isValidPosition(pos,info)===true){break;}else{pos=null;}}
if(pos===null){return false;}
var order=null;var oln=this.order.length;for(var i=0;i<oln;i++){order=this.order[i];if(this.isValidPosition((pos+order),info)===true){break;}else{order=null;}}
this.setPosition(pos,order,info);},setPosition:function(pos,order,info)
{var o='';var n=0;switch(pos){case's':o='top';n=(info.point.y+info.margin);break;case'n':o='top';n=(info.point.y-info.margin-info.popupDims.height);break;case'e':o='left';n=(info.point.x+info.margin);break;case'w':o='left';n=(info.point.x-info.margin-info.popupDims.width);break;default:break;}
if(o){dfx.setStyle(this.domElem,o,n+'px');}
n=0;switch(pos){case's':case'n':if(order==='low'){n=info.point.x;}else if(order==='high'){n=(info.point.x-info.popupDims.width);}else{n=(info.point.x-(info.popupDims.width/2));}
dfx.setStyle(this.domElem,'left',n+'px');break;default:break;}
var c='InterventionWidgetType-arrow';var arrow=dfx.getClass(c,this.wrapper)[0];if(!arrow){arrow=document.createElement('div');this.wrapper.appendChild(arrow);}
dfx.removeClass(arrow);var ac=' arrow-'+pos+'-'+order;dfx.addClass(arrow,c+ac);dfx.removeClass(this.domElem);dfx.addClass(this.domElem,this.getClass()+ac);},isValidPosition:function(pos,info)
{switch(pos){case'':case'n':case'whigh':case'ehigh':if((info.point.y-info.margin-info.popupDims.height-info.scrollCoords.y)>0){return true;}
break;case'wlow':case'elow':case's':if((info.point.y+info.margin+info.popupDims.height+info.scrollCoords.y)<info.windowDims.height){return true;}
break;case'e':case'nlow':case'slow':if((info.point.x+info.margin+info.popupDims.width+info.scrollCoords.x)<info.windowDims.width){return true;}
break;case'w':case'nhigh':case'shigh':if((info.point.x-info.margin-info.popupDims.width+info.scrollCoords.x)>0){return true;}
break;case'nmid':case'smid':if((info.point.x-info.margin-(info.popupDims.width/2)+info.scrollCoords.x)>0){if((info.point.x-info.margin+(info.popupDims.width/2)+info.scrollCoords.x)<info.windowDims.width){return true;}}
break;default:break;}
return false;},getClass:function()
{var c=BalloonPopupWidgetType.prototype.getClass.call(this);return'InterventionWidgetType '+c;}};dfx.inherits('Intervention','BalloonPopup');function ArrowButtonWidgetType(id,classPrefix,textOnly,value,direction)
{ButtonWidgetType.call(this,id,classPrefix,textOnly,value);this.classPrefix='ArrowButtonWidgetType';this.direction=direction;}
ArrowButtonWidgetType.prototype={setEnabled:function(enabled,force)
{if(force!==true&&this.enabled===enabled){return;}
this.enabled=enabled;var suffix='';if(this.toggleMode!==true&&enabled!==true){dfx.removeEvent(this.domElem,'mouseover',this.overFn);dfx.removeEvent(this.domElem,'mouseout',this.outFn);}else{dfx.addEvent(this.domElem,'mouseover',this.overFn);dfx.addEvent(this.domElem,'mouseout',this.outFn);}
if(enabled!==true){dfx.addClass(this.domElem,this.classPrefix+'-point-'+this.direction+'-disabled');}else{dfx.removeClass(this.domElem,this.classPrefix+'-point-'+this.direction+'-disabled');}}};dfx.inherits('ArrowButton','Button');function AdhocTaskContainerWidgetType(id,collapsed,ani,taskid,userName)
{ExpandableMenuWidgetType.call(this,id);this.widgetType='AdhocTaskContainer';this.domElem=dfx.getId(this.id);this.taskid=taskid;this.userName=userName||'';if(dfx.isset(this.domElem)===true){this.init();}}
AdhocTaskContainerWidgetType.prototype={init:function()
{this.completedButtonEvent();this.reassignButtonEvent();this.addCommentEvents();},addCommentEvents:function()
{var elem=dfx.getId(this.id+'-addComment');if(dfx.isset(elem)===true){var self=this;dfx.addEvent(elem,'click',function(){self.addNewComment();});}},addNewComment:function()
{var self=this;var parent=dfx.getId(this.id+'-commentsList');this.includeWidget('TextArea',function(){var textArea=self.createWidget(null,'TextArea');textArea.create(function(el){parent.appendChild(self._createCommentEl(el,textArea));textArea.focus();});});},addComment:function(comment,callback)
{var self=this;this.sendAction('comment',{comment:comment},function(data){if(data==='1'){callback.call(self);}else{alert('Failed to add comment to task');}});},_createCommentEl:function(comment,textArea,user)
{var c=this.getClass();var main=document.createElement('div');dfx.addClass(main,c+'-task-body '+c+'-task-comments-comment');var body=document.createElement('div');dfx.addClass(body,c+'-task-body '+c+'-task-comments-comment-msg');if(dfx.isset(comment)===true){body.appendChild(comment);}
main.appendChild(body);if(dfx.isset(textArea)===true){var buttons=document.createElement('div');dfx.addClass(buttons,c+'-task-body '+c+'-task-comments-comment-buttons');main.appendChild(buttons);var ok=document.createElement('div');buttons.appendChild(ok);dfx.addClass(ok,c+'-task-body '+c+'-task-comments-comment-ok');dfx.setHtml(ok,'OK');var cancel=document.createElement('div');buttons.appendChild(cancel);dfx.addClass(cancel,c+'-task-body '+c+'-task-comments-comment-cancel');dfx.setHtml(cancel,'Cancel');dfx.addEvent(cancel,'click',function(){dfx.remove(main);});var self=this;dfx.addEvent(ok,'click',function(){self.addComment(textArea.getValue(),function(){dfx.remove(comment);dfx.remove(buttons);dfx.setHtml(body,textArea.getValue());var poster=document.createElement('div');dfx.addClass(poster,c+'-task-body '+c+'-task-comments-comment-user');dfx.setHtml(poster,'- '+self.userName);main.appendChild(poster);});});}
return main;},completedButtonEvent:function()
{var button=WidgetStore.get(this.id+'-action:completed');if(dfx.isset(button)===true){var self=this;button.addClickEvent(function(){self.completeTask();});}},completeTask:function()
{var self=this;this.sendAction('complete',null,function(data){if(data==='1'){dfx.remove(self.domElem);}else{alert('Failed to complete task');}});},reassignButtonEvent:function()
{var button=WidgetStore.get(this.id+'-action:reassign');if(dfx.isset(button)===true){var self=this;button.addClickEvent(function(){AssetManager.showAssetPicker('users',function(assets){self.reAssignTask(assets);});});}},reAssignTask:function(assets)
{if(assets.length!==1){return;}
var self=this;this.sendAction('reassign',{newuserid:assets[0]},function(data){if(data==='1'){dfx.remove(self.domElem);}else{alert('Failed to re-assign task');}});},sendAction:function(type,params,callback)
{if(dfx.isset(params)===false){params={};}
params.widget=this.widgetType;params.action=type;params.taskid=this.taskid;dfx.post(this.url,params,callback);}};dfx.inherits('AdhocTaskContainer','ExpandableMenu');function MovieCreateWizardWidgetType(id)
{FileCreateWizardWidgetType.call(this,id);this._movieProcessStepIndex=1;this._fileids=[];this._fileid=null;this.stepManager=WidgetStore.get('WizardRunner-wizardStepManager');if(this.stepManager){var self=this;this.stepManager.addStepChangedAction(function(stepIndex){self.stepChanged(stepIndex);});var wiz=WidgetStore.get('WizardRunner');wiz.setCustomProcessFn(function(steps,values){self.processWizard(steps,values);});}}
MovieCreateWizardWidgetType.prototype={processWizard:function(steps,values)
{var params={widget:'MovieCreateWizardWidget',action:'completeWizard',steps:dfx.jsonEncode(steps),values:dfx.jsonEncode(values)};var self=this;dfx.post(this.url,params,function(result){result=dfx.jsonDecode(result);self.stepManager._showCompleteMsg(result);self.reset();});},reset:function()
{var widget=WidgetStore.get('movieThumb');if(widget){widget.reset();}
this._fileids=[];this._fileid=null;FileCreateWizardWidgetType.prototype.reset.call(this);},stepChanged:function(stepIndex)
{if(stepIndex===0){this.reset();return;}else if(stepIndex!==this._movieProcessStepIndex){return;}
this.stepManager.disableButtons();this._processStep(this.stepManager.getSteps(),this.stepManager.getValues(),0);},_processStep:function(steps,values,index)
{if(dfx.isset(values[index])===true){this.displayDisabledDiv(true,dfx.getId('WizardRunner-wrapper'),'white','absolute','Uploading File ('+(index+1)+' of '+values.length+')');var fileid=dfx.getUniqueId();this._fileid=fileid;this._fileids.push(fileid);var fileWidget=null;var thumbsWidget=null;for(var step in values[index]){for(var widgetid in values[index][step]){var widget=WidgetStore.get(widgetid);if(widget.widgetType==='FileUpload'){fileWidget=widget;}else if(widget.widgetType==='MovieWizardThumbPicker'){this.stepManager.setStepFieldData(index,widgetid,{fileid:fileid,thumbid:null});}}}
var self=this;this.processSingleUpload(fileWidget,index,values[index],function(status){if(status===false){self.removeDisabledDiv(dfx.getId('WizardRunner-wrapper'),true);self.stepManager.enableButtons();}else{self._checkConvertProgress(fileid,function(){self._processStep(steps,values,(index+1));},index,values.length);}});}else{var self=this;this.displayDisabledDiv(true,dfx.getId('WizardRunner-wrapper'),'white','absolute','Creating thumbnails...');this.loadThumbs(0,function(){self.displayDisabledDiv(true,dfx.getId('WizardRunner-wrapper'),'white','absolute','Done!');self.removeDisabledDiv(dfx.getId('WizardRunner-wrapper'),true);});}},loadThumbs:function(i,callback)
{var self=this;if(this._fileids[i]){self._loadThumbs(i,this._fileids[i],function(){self.loadThumbs((i+1),callback);});}else if(i>0){callback.call(this);}},_loadThumbs:function(dataIndex,fileid,callback)
{var params={widget:'MovieCreateWizardWidget',action:'getThumbs',fileid:fileid};var self=this;dfx.post(this.url,params,function(data){var error=null;try{data=dfx.jsonDecode(data);}catch(e){error=data;}
var widget=WidgetStore.get('movieThumb');if(widget){if(error!==null){widget.setError(error);widget.setThumbs(fileid,[]);}else{widget.setThumbs(fileid,data);}
if(self.stepManager.getCurrentStepDataIndex()===dataIndex){widget.setValue({fileid:fileid});}}
self.stepManager.enableButtons();callback.call(this);});},_checkConvertProgress:function(fileid,callback,index,total)
{this.displayDisabledDiv(true,dfx.getId('WizardRunner-wrapper'),'white','absolute','Converting File ('+(index+1)+' of '+total+')');var params={widget:'MovieCreateWizardWidget',action:'checkProgress',fileid:fileid};var self=this;var i=setInterval(function(){dfx.post(self.url,params,function(data){if(data==='completed'){clearInterval(i);callback.call(this);}else if(data!=='processing'){clearInterval(i);callback.call(this);}});},3000);},_getUploadParams:function()
{return{widget:'MovieCreateWizardWidget',action:'uploadFile',fileid:this._fileid};},_fileUploadCompleted:function(idx,status,form,callback)
{status=dfx.getHtml(status);if(status.length>0){var widget=WidgetStore.get('movieThumb');if(widget){widget.setError(status);callback.call(this,false);}}else{callback.call(this,true);}},appendFields:function(formEl)
{var input=document.createElement('input');input.type='hidden';input.name='moviefileUpload';input.value=true;formEl.appendChild(input);}};dfx.inherits('MovieCreateWizard','FileCreateWizard');function MySourceMatrixIFrameWidgetType(id,source)
{IFrameWidgetType.call(this,id,unescape(source));this.widgetType='MySourceMatrixIFrame';this.init();}
MySourceMatrixIFrameWidgetType.prototype={init:function()
{var source=this.source;var self=this;setTimeout(function(){var div=dfx.getId('_disabledDiv');if(div){self.removeDisabledDiv();}},10000);this._adjustStyles();var self=this;WidgetStore.addDataChangeListener('MySourceMatrixIFrameModeListener','activeMode',function(newMode,prevMode){self.modeChanged(newMode,prevMode);});},modeChanged:function(newMode,prevMode)
{if(!newMode||newMode.id!=='EditEditingMode'){var c=this.getClass();dfx.removeClass(document.body,c+'-bodyOverride');dfx.removeClass(document.body.parentNode,c+'-bodyOverride');var toolbar=dfx.getClass('ToolbarWidgetType')[0];toolbar.style.width='100%';dfx.removeEvent(window,'resize.'+this.getClass());}},_adjustStyles:function()
{var c=this.getClass();dfx.addClass(document.body,c+'-bodyOverride');dfx.addClass(document.body.parentNode,c+'-bodyOverride');var scrollWidth=dfx.getScrollbarWidth();var toolbar=dfx.getClass('ToolbarWidgetType')[0];var win=dfx.getWindowDimensions();var newWidth=(win.width-scrollWidth);dfx.setStyle(toolbar,'width',newWidth+'px');dfx.addEvent(window,'resize.'+this.getClass(),function(){var win=dfx.getWindowDimensions();var newWidth=(win.width-scrollWidth);dfx.setStyle(toolbar,'width',newWidth+'px');});var source=this.source;var self=this;var saveBtn=dfx.getId('EditingSaveButton');var cmd=escape('window.parent.frames[0].EasyEditScreens.saveCurrentScreen(function(){});');this.setSaveButton(function(){self.sendEESCommand(source,cmd);},function(){self.ready();});},sendEESCommand:function(url,cmd)
{url=url.replace('&mode=embedded','');url+='&mode=script&script='+cmd;var iframe=document.createElement('iframe');dfx.addClass(iframe,this.getClass()+'-commandIframe');document.body.appendChild(iframe);iframe.src=url;iframe.onload=function(){setTimeout(function(){dfx.remove(iframe);},100);};}};dfx.inherits('MySourceMatrixIFrame','IFrame');function MetadataAdminNumberSettingWidgetType(id)
{MetadataAdminSettingWidgetType.call(this,id);this.widgetType='MetadataAdminNumberSetting';}
MetadataAdminNumberSettingWidgetType.prototype={create:function(callback)
{var c=this.getClass();var main=document.createElement('div');var content='<div class="'+c+'-bottom">';content+='<div class="'+c+'-defValLabel">Default Value</div>';content+='<div class="'+c+'-defVal"></div>';content+='</div>';dfx.setHtml(main,content);var defValCont=dfx.getClass(c+'-defVal',main)[0];var self=this;this.includeWidgets(['ToggleButton','TextField'],function(){var defVal=self.createWidget(null,'TextField');if(dfx.isset(self.settingValues.defaultValue)===true){defVal.setValue(self.settingValues.defaultValue);}
self.settings.defaultValue=defVal;defVal.create(function(el){defVal.addOnChangeEvent(function(){self.setModified(true);});defValCont.appendChild(el);self.checkEvents(defVal);});self.createMain(function(parentElem){callback.call(self,parentElem);return;},main);});},check:function()
{var result=true;var value=self.settingValues.defaultValue.getValue();if(dfx.isNumeric(value)===false){result='Invalid number';}
return result;},checkEvents:function(element)
{var validValue=element.getValue();dfx.addEvent(element.input,'keydown',function(e){var isModified=(e.metaKey===true||e.ctrlKey===true||e.shiftKey===true);var isSpecialKey=[8,9,37,39,46].inArray(e.keyCode);var isStdNumber=(e.keyCode>=48&&e.keyCode<=57);var isPadNumber=(e.keyCode>=96&&e.keyCode<=105);if((isModified===true)||(isSpecialKey===true)||(isStdNumber===true)||(isPadNumber===true)){return;}
dfx.preventDefault(e);return;});dfx.addEvent(element.input,'focus',function(e){validValue=element.getValue();});dfx.addEvent(element.input,'blur',function(e){var value=element.getValue();if(value!==''&&dfx.isNumeric(value)===false){element.setValue(validValue);}});dfx.addEvent(element.input,'keyup',function(e){var value=element.getValue();if(value!==''&&dfx.isNumeric(value)===false){element.setValue(validValue);}else{validValue=value;}});}};dfx.inherits('MetadataAdminNumberSetting','MetadataAdminSetting');function MetadataAdminSelectionSettingWidgetType(id)
{MetadataAdminSettingWidgetType.call(this,id);this.widgetType='MetadataAdminSelectionSetting';}
MetadataAdminSelectionSettingWidgetType.prototype={create:function(callback)
{var c=this.getClass();var main=document.createElement('div');var content='<div class="'+c+'-top"><div style="overflow:hidden;">';content+='<div class="'+c+'-left">Allow Multiple Selection</div>';content+='<div class="'+c+'-multiple"></div></div>';content+='<div style="overflow:hidden;"><div class="'+c+'-left">Size</div>';content+='<div class="'+c+'-size"></div></div>';content+='</div>';content+='<div class="'+c+'-bottom">';content+='<div class="'+c+'-options"></div>';content+='</div>';dfx.setHtml(main,content);var multipleCont=dfx.getClass(c+'-multiple',main)[0];var optionsCont=dfx.getClass(c+'-options',main)[0];var sizeCont=dfx.getClass(c+'-size',main)[0];var self=this;this.includeWidgets(['Options','ToggleButton','SpinButton'],function(){var multi=self.createWidget(null,'ToggleButton',false,'slider',(self.settingValues.multiple||false),'Yes','No');var options=self.createWidget(null,'Options');var size=self.createWidget(null,'SpinButton',0);var req=self.settingValues.reqElem;multi.addToggleEvent(function(val){options.setMulti(val);self.setModified(true);self.toggleAllowEmpty(multi);});dfx.addEvent(self.reqElem,'click',function(){setTimeout(function(){self.toggleAllowEmpty(multi);},300);});options.setAddNewOptionBoxValue('Add new value ...');if(self.settingValues.options){var op=self.settingValues.options;options.setOptions(op.options);options.setAllowEmpty(op.allowEmpty,op.allowEmptyText);}else{options.setDefaultOptions();}
options.addOnChangeEvent(function(){self.setModified(true);});size.create(function(sizeEl){sizeCont.appendChild(sizeEl);if(self.settingValues.size){size.setValue(self.settingValues.size);}});size.addOnChangeEvent(function(){self.setModified(true);});multi.create(function(multiEl){options.create(function(optionsEl){multipleCont.appendChild(multiEl);optionsCont.appendChild(optionsEl);options.setMulti((self.settingValues.multiple||false));self.settings.multiple=multi;self.settings.options=options;self.settings.size=size;self.createMain(function(parentElem){self.toggleAllowEmpty(multi);callback.call(this,parentElem);return;},main,c);});});});},toggleAllowEmpty:function(multi)
{if(multi.getValue()===false&&dfx.hasClass(this.reqElem,'required')===false){this.settings.options.setAllowEmpty(true);}else{this.settings.options.setAllowEmpty(false);}}};dfx.inherits('MetadataAdminSelectionSetting','MetadataAdminSetting');function MetadataAdminTextSettingWidgetType(id)
{MetadataAdminSettingWidgetType.call(this,id);this.widgetType='MetadataAdminTextSetting';this.reqElem=null;}
MetadataAdminTextSettingWidgetType.prototype={create:function(callback)
{var c=this.getClass();var main=document.createElement('div');var content='<div class="'+c+'-top">';content+='<div class="'+c+'-left">Use Multiple Lines</div>';content+='<div class="'+c+'-multiLine"></div>';content+='</div>';content+='<div class="'+c+'-bottom">';content+='<div class="'+c+'-defValLabel">Default Value</div>';content+='<div class="'+c+'-defVal"></div>';content+='</div>';dfx.setHtml(main,content);var multipleCont=dfx.getClass(c+'-multiLine',main)[0];var defValCont=dfx.getClass(c+'-defVal',main)[0];var self=this;this.includeWidgets(['ToggleButton','TextField'],function(){var multi=self.createWidget(null,'ToggleButton',false,'slider',(self.settingValues.multiple||false),'Yes','No');var defVal=self.createWidget(null,'TextField');if(dfx.isset(self.settingValues.defaultValue)===true){defVal.setValue(self.settingValues.defaultValue);}
multi.addToggleEvent(function(){self.setModified(true);});self.settings.defaultValue=defVal;self.settings.multiple=multi;multi.create(function(el){multipleCont.appendChild(el);});defVal.create(function(el){defVal.addOnChangeEvent(function(){self.setModified(true);});defValCont.appendChild(el);});self.createMain(function(parentElem){callback.call(self,parentElem);return;},main);});}};dfx.inherits('MetadataAdminTextSetting','MetadataAdminSetting');function RuleTypeAssetTypeLevelSelectorWidgetType(id)
{RuleTypeWidgetType.call(this,id);this.widgetType='RuleTypeAssetTypeLevelSelectorWidgetType';}
RuleTypeAssetTypeLevelSelectorWidgetType.prototype={setValue:function(arg)
{this.value=arg;},validate:function()
{var valid=true;if(this.value.value===''){valid=false;}else if(this.value.alternateFolder===''){valid=false;}
return valid;}};dfx.inherits('RuleTypeAssetTypeLevelSelector','RuleType');function RuleTypeChannelWidgetType(id,system,action,args)
{this.widgetType='RuleTypeChannelWidgetType';this.system=null;this.action=null;this.args=null;this.widgetid='';if(dfx.isset(system)===true){this.setSystem(system);}
if(dfx.isset(action)===true){this.setAction(action);}
if(dfx.isset(args)===true){this.setArgs(args);}}
RuleTypeChannelWidgetType.prototype={setSystem:function(sys)
{this.system=sys;},setAction:function(act)
{this.act=act;},setWidgetid:function(wid)
{this.widgetid=wid;},setArgs:function(args)
{this.args=args;},validateRule:function()
{return true;}};dfx.inherits('RuleTypeChannel','RuleType');function RuleTypeDateWidgetType(id)
{RuleType.call(this,id);this.widgetType='RuleTypeDateWidgetType';}
RuleTypeDateWidgetType.prototype={};dfx.inherits('RuleTypeDate','RuleType');function RuleTypeFileUploadWidgetType(id)
{RuleTypeWidgetType.call(this,id);this.widgetType='RuleTypeFileUploadWidgetType';}
RuleTypeFileUploadWidgetType.prototype={validate:function()
{var widget=WidgetStore.get(this.widgetid);var allowedTypes=widget.getAllowedExtensions();var ext=dfx.getFileExtension(this.value);if(allowedTypes.length>0&&dfx.inArray(ext,allowedTypes)===false){return false;}
return true;}};dfx.inherits('RuleTypeFileUpload','RuleType');function RuleTypeFileWidgetType(id)
{RuleType.call(this,id);this.widgetType='RuleTypeFileWidgetType';}
RuleTypeFileWidgetType.prototype={};dfx.inherits('RuleTypeFile','RuleType');function RuleTypeRootNodeListWidgetType(id)
{RuleTypeWidgetType.call(this,id);this.widgetType='RuleTypeRootNodeListWidgetType';}
RuleTypeRootNodeListWidgetType.prototype={validate:function()
{if(dfx.isArray(this.value)===false){return false;}
var len=this.value.length;if(len===0){return false;}
var valid=false;for(var i=0;i<len;i++){if(this.value[i].deleted===false){valid=true;break;}}
return valid;}};dfx.inherits('RuleTypeRootNodeList','RuleType');function RuleTypeStringWidgetType(id)
{RuleTypeWidgetType.call(this,id);this.widgetType='RuleTypeStringWidgetType';}
RuleTypeStringWidgetType.prototype={};dfx.inherits('RuleTypeString','RuleType');function RuleTypeUserGroupSelectWidgetType(id)
{RuleTypeWidgetType.call(this,id);this.widgetType='RuleTypeUserGroupSelectWidgetType';}
RuleTypeUserGroupSelectWidgetType.prototype={validate:function()
{if(String(this.value)==='0'){return false;}
return true;}};dfx.inherits('RuleTypeUserGroupSelect','RuleType');function DynamicTabPaneWidgetType(id,orientation,tabChangeInfo)
{TabPaneWidgetType.call(this,id,orientation);this.loadedTabs={};this.requestParams={};this.blockedTabs={};this.currentScreen=null;this.currentScreenWidget=null;this.currentScreenMode=null;this.tabChangeInfo=tabChangeInfo||null;this.initHandlers={};this.tabLoader=null;}
DynamicTabPaneWidgetType.prototype={blockTabClick:function(idx)
{this.blockedTabs[idx]=true;},unblockTabClick:function(idx)
{this.blockedTabs[idx]=false;},setRequestParamData:function(key,val)
{this.requestParams[key]=val;},getRequestParamData:function()
{return this.requestParams;},addOnInitHandler:function(idx,callback)
{this.initHandlers[idx]=callback;},displayTabLoader:function()
{var id=this.id+'_tabLoader';this.tabLoader=dfx.getId(id);if(dfx.isset(this.tabLoader)===false){var d=document.createElement('div');d.id=id;dfx.setStyle(d,'height','100%');dfx.setStyle(d,'width','100%');dfx.setStyle(d,'backgroundColor','#eee');dfx.setStyle(d,'zIndex','800');dfx.setStyle(d,'visibility','visible');dfx.setOpacity(d,'0.8');var cId=this.id+'-containers';var c=dfx.getId(cId);c.appendChild(d);this.tabLoader=d;}
var loader=document.createElement('div');this.tabLoader.appendChild(loader);dfx.addClass(loader,'ajax-loader');return this.tabLoader;},removeTabLoader:function()
{dfx.setStyle(this.tabLoader,'display','none');dfx.setStyle(this.tabLoader,'z-index','1000');},switchToScreen:function(id,callback,forceReload,reqData)
{if(forceReload===true){this.loadedTabs[id]=false;}
if(this.loadedTabs[id]===true){if(dfx.isset(callback)===true){callback.call(this);}}else{this.disable(id);this.currentScreen=id;var screenDivWidgetId=this.id+'-'+id;var screenDivWidget=WidgetStore.get(screenDivWidgetId);screenDivWidget.url=window.location.href;var self=this;if(reqData){dfx.foreach(reqData,function(index){self.setRequestParamData(index,reqData[index]);return true;});}
var params=this.getRequestParamData();params.screen=this.tabChangeInfo[id]['widget'];params.assetid=WidgetStore.getData('editingAssetid');screenDivWidget.changeContent(params,function(data){if(data===''){return;}
data=dfx.jsonDecode(data);self.loadedTabs[id]=true;self.initHandlers[id](data,function(){self.enable(id);});if(dfx.isFn(callback)===true){callback.call(self);}
if(reqData){dfx.foreach(self.requestParams,function(index){if(reqData.hasOwnProperty(index)===true){delete self.requestParams[index];}});}});}},updateScreen:function(index,elem)
{var screenDivWidgetId=this.id+'-'+index;if(elem){var tabPaneDiv=dfx.getId(screenDivWidgetId);dfx.setHtml(tabPaneDiv,'');tabPaneDiv.appendChild(elem);dfx.showElement(tabPaneDiv);}else{var screenDivWidget=WidgetStore.get(screenDivWidgetId);screenDivWidget.url=window.location.href;var params=this.getRequestParamData();screenDivWidget.changeContent(params);}},disable:function(id)
{var dnmDiv=dfx.getId(this.id+'-'+id);dfx.setStyle(dnmDiv,'display','none');dfx.setStyle(dnmDiv,'visibility','hidden');},enable:function(id)
{var dnmDiv=dfx.getId(this.id+'-'+id);dfx.setStyle(dnmDiv,'display','block');dfx.setStyle(dnmDiv,'visibility','visible');},_addTabClickEvent:function(tab,index)
{var self=this;dfx.addEvent(tab,'click',function(){self.showTab(index);});},showTab:function(index,data,force)
{if(dfx.isset(this.blockedTabs[index])&&this.blockedTabs[index]===true){return;}
var self=this;var cardLayout=WidgetStore.get(this.id+'-cardLayout');if(force!==true&&index===self.selectedIndex){}
if(self.fireTabSelectedEvent(index,self.selectedIndex)===false){return;}
var tabSelClass=self.getClass()+'-tab-selected';dfx.removeClass(self.tabElements[self.selectedIndex],tabSelClass);var prevIndex=self.selectedIndex;self.selectedIndex=index;cardLayout.hide(prevIndex);cardLayout.show(index);dfx.addClass(self.tabElements[index],tabSelClass);self.switchToScreen(index,function(){self.fireTabChangedEvent(index,prevIndex);},true,data);},setSelected:function(index,selected)
{var tabSelClass=this.getClass()+'-tab-selected';if(selected===false){dfx.removeClass(this.tabElements[index],tabSelClass);}else{dfx.addClass(this.tabElements[index],tabSelClass);}}};dfx.inherits('DynamicTabPane','TabPane');function SettingsTabPaneWidgetType(id)
{TabPaneWidgetType.call(this,id);this.widgetType='SettingsTabPane';this.bugState=1;this.settingsPane=null;var self=this;WidgetStore.addDataChangeListener(id+'-bugStatelst','bugState',function(info){self.bugState=info.state;self.settingsPane=info.widget;});}
SettingsTabPaneWidgetType.prototype={selectTab:function(index)
{if(this.settingsPane!==null){this.settingsPane.open();}else{var settingsPane=WidgetStore.get('EditEditingModeWidgetType-assetSettings');if(settingsPane){settingsPane.open();}}
if(index===this.selectedIndex){return;}
if(this.selectedIndex===-1){this.selectedIndex=0;}
WidgetStore.setData('activeTabid',this.tabElements[index].id);this.fireTabSelectedEvent(index,this.selectedIndex);if(this.stopSelection===true){this.stopSelection=false;return;}
var prevIndex=this.selectedIndex;this.selectedIndex=index;dfx.removeClass(this.tabElements[prevIndex],'active');dfx.addClass(this.tabElements[index],'active');dfx.removeClass(dfx.getId(this.id+'-tabcont:'+prevIndex),'active');dfx.addClass(dfx.getId(this.id+'-tabcont:'+index),'active');this.fireTabChangedEvent(index,prevIndex);}};dfx.inherits('SettingsTabPane','TabPane');function AssetTreeWidgetType(id)
{TreeWidgetType.call(this,id);this.assets={};this.assetChildrenExpandedEvents=[];this.assetChildrenCollapsedEvents=[];this.selectedAssets=[];this.assetHoverEvents=[];var self=this;this.addNodeControlClickedEvent(function(nodeid,li,expanding){self.expandChildren(nodeid,li,expanding);if(expanding===false){this.fireAssetChildrenCollapsedEvents(nodeid,li);}});}
AssetTreeWidgetType.prototype={setRootAsset:function(assetid,hidden,callback)
{if(hidden===true){this.rootHidden=true;}
this.rootNode=null;this.nodes={};this.assets={};dfx.empty(this.treeElement);this.addNode(assetid,'',null);var self=this;this.includeWidget('ToggleButton',function(){this.getChildAssets(assetid,function(children){if(dfx.isset(children)===true){var cLen=children.length;for(var i=0;i<cLen;i++){self.addAsset(children[i]);self.addAssetLineage(children[i],assetid+':'+children[i]);AssetManager.getAsset(children[i],function(info){var hasKids=false;if(info.children.length>0){hasKids=true;}
self._createAssetElement(info,children[i],function(assetEl){self.addNode(children[i],assetEl,assetid,hasKids,info.iconUrl);});});}}
self._addNodeElement(assetid,null,self.treeElement,'last',false,[]);if(hidden===true){if(dfx.isset(self.nodes[assetid])===true){var divEl=self.nodes[assetid].elements[0].firstChild;dfx.setStyle(divEl,'display','none');dfx.setStyle(self.nodes[assetid].elements[0].childNodes[1],'display','block');}}
if(dfx.isFn(callback)===true){callback.call(this);}});});},_getAssetToggleButton:function(assetid)
{var widgetId=this.id+'-button:'+assetid;var toggleButton=WidgetStore.get(widgetId);return toggleButton;},_createAssetElement:function(assetInfo,itemid,callback)
{var self=this;this.includeWidget('ToggleButton',function(){var widgetId=self.id+'-button:'+itemid;var toggleButton=self.createWidget(widgetId,'ToggleButton');var div=document.createElement('div');var title=document.createElement('div');dfx.setStyle(title,'float','left');dfx.setHtml(title,assetInfo.name);div.appendChild(title);toggleButton.create(function(el){div.appendChild(el);if(dfx.isFn(callback)===true){callback.call(self,div);}});self.addToggleButtonEvent(toggleButton,assetInfo);});},addToggleButtonEvent:function(toggleButton,assetInfo)
{var self=this;toggleButton.addToggleEvent(function(selected){if(selected===true){if(self.selectedAssets.inArray(assetInfo.id)===false){self.selectedAssets.push(assetInfo.id);}}else{var index=self.selectedAssets.find(assetInfo.id);if(index!==1){self.selectedAssets.splice(index,1);}}});},getChildAssets:function(assetid,callback)
{AssetManager.getAsset(assetid,function(asset){var children=asset.children;AssetManager.getAssets(children,function(){callback.call(this,children);});});},getAssetidFromLineage:function(lineage)
{lineage=lineage.toString().split(':');var assetid=parseInt(lineage[(lineage.length-1)]);return assetid;},expandChildren:function(lineage,li)
{var assetid=this.getAssetidFromLineage(lineage);if(dfx.isset(this.assets[assetid])===false){return;}
if(this.assets[assetid].linChildrenAdded[lineage]!==true){var self=this;this.includeWidget('ToggleButton',function(){this.getChildAssets(assetid,function(children){if(dfx.isset(children)===true){var cLen=children.length;for(var i=0;i<cLen;i++){self.addAsset(children[i]);self.addAssetLineage(children[i],lineage+':'+children[i]);AssetManager.getAsset(children[i],function(info){var hasKids=false;if(info.children.length>0){hasKids=true;}
self._createAssetElement(info,lineage+':'+children[i],function(assetEl){self.addNode(lineage+':'+children[i],assetEl,lineage,hasKids,info.iconUrl);});});}
self._addChildElements(lineage,li);self.assets[assetid].linChildrenAdded[lineage]=true;self.setSelectedAssets(self.selectedAssets);self.fireAssetChildrenExpandedEvents(assetid,li);}});});}},addAsset:function(assetid)
{if(assetid in this.assets){return;}
this.assets[assetid]={lineages:[],linChildrenAdded:{}};},addAssetLineage:function(assetid,lineage)
{this.assets[assetid].lineages.push(lineage);},removeAsset:function(assetid)
{var lineages=this.assets[assetid].lineages;var len=lineages.length;for(var i=0;i<len;i++){this.removeNode(lineages[i]);}
delete this.assets[assetid];},getAssetParents:function(assetid)
{var parentids=[];var lineages=this.assets[assetid].lineages;var len=lineages.length;for(var i=0;i<len;i++){var lineage=lineages[i].toString().split(':');parentids.push(parseInt(lineage[(lineage.length-2)]));}},fireNodeDblClickEvents:function(assetid)
{this.setRootAsset(assetid,true);TreeWidgetType.prototype.fireNodeDblClickEvents.call(this,assetid);},addAssetChildrenExpandedEvent:function(fn)
{this.assetChildrenExpandedEvents.push(fn);},fireAssetChildrenExpandedEvents:function(assetid,el)
{var ln=this.assetChildrenExpandedEvents.length;for(var i=0;i<ln;i++){this.assetChildrenExpandedEvents[i].call(this,assetid,el);}},addAssetChildrenCollapsedEvent:function(fn)
{this.addNodeControlClickedEvent(fn);},fireAssetChildrenCollapsedEvents:function(nodeid,li)
{var ln=this.assetChildrenCollapsedEvents.length;for(var i=0;i<ln;i++){this.assetChildrenCollapsedEvents[i].call(this,nodeid,li);}},getSelectedAssetids:function()
{return this.selectedAssets;},setSelectedAssets:function(assetids)
{var ln=this.selectedAssets.length;var len=assetids.length;var self=this;for(var i=0;i<ln;i++){if(len===0||assetids.inArray(this.selectedAssets[i])===false){var widget=this._getAssetToggleButton(this.selectedAssets[i]);if(dfx.isset(widget)===true){widget.toggleOff();}}}
this.selectedAssets=assetids;for(var i=0;i<len;i++){var widget=this._getAssetToggleButton(assetids[i]);if(dfx.isset(widget)===true){widget.toggleOn();}}}};dfx.inherits('AssetTree','Tree');function AssetPickerThumbViewWidgetType(id,picker)
{AssetPickerListViewWidgetType.call(this,id,picker);this.widgetType='AssetPickerThumbView';this.domElem=null;this.wrapper=null;this.currentThumbSize='small';this.createid=null;this.thumbSizes={small:80,large:260};}
AssetPickerThumbViewWidgetType.prototype={create:function(callback)
{var c=this.getClass()+'-main';var main=document.createElement('div');dfx.addClass(main,c);this.domElem=main;var wrapper=document.createElement('div');dfx.addClass(wrapper,c+'-wrapper');main.appendChild(wrapper);this.wrapper=wrapper;callback.call(this,main);},update:function(callback)
{if(this.active===true){this.startLoading();}
this.createid=dfx.getUniqueId();var self=this;if(this.currentAssetid===this.picker.projectid){dfx.empty(this.wrapper);this._createProjectAssetElements(this.picker.projectFoldersFiltered,function(){if(self.active===true){self.endLoading();}
if(callback){callback.call(self);}});}else{this.getChildrenInfo(this.currentAssetid,function(assets){dfx.empty(self.wrapper);self._createAssetElements(assets,function(){if(self.active===true){self.endLoading();}
if(callback){callback.call(self);}});});}},_createProjectAssetElements:function(assets,callback,index)
{var self=this;dfx.foreach(assets,function(idx){var url='';var size='medium';switch(assets[idx].name){case'Designs':url=AssetManager.getAssetTypeIconUrl('design',size);break;case'Documents':url=AssetManager.getAssetTypeIconUrl('file',size);break;case'Images':url=AssetManager.getAssetTypeIconUrl('image',size);break;case'Movies':url=AssetManager.getAssetTypeIconUrl('movie',size);break;case'Roles':url=AssetManager.getAssetTypeIconUrl('role',size);break;case'Users':url=AssetManager.getAssetTypeIconUrl('user',size);break;case'Workflows':url=AssetManager.getAssetTypeIconUrl('workflowSchema',size);break;default:url=AssetManager.getAssetTypeIconUrl('site',size);break;}
assets[idx].iconMediumUrl=url;return true;});self._createAssetElements(assets,callback,index);},_createAssetElements:function(assets,callback,index,createid)
{index=index||0;if(index===0){createid=this.createid;dfx.empty(this.wrapper);}
if(index>=assets.length){callback.call(this);return;}
var self=this;this._createAssetElement(assets[index],function(el){if(self.createid!==createid){return;}
self.wrapper.appendChild(el);self._createAssetElements(assets,callback,++index,createid);});},_createAssetElement:function(asset,callback)
{if(asset.iconMediumUrl){var url=asset.iconMediumUrl;}else{var url=Widget.BASE_URL+'/?a='+asset.id;}
var width=asset.width;var height=asset.height;var main=document.createElement('div');var c=this.getClass();dfx.addClass(main,c+'-item');main.setAttribute('title',asset.name+' [#'+asset.id+']');main.setAttribute('assetid',asset.id);if(this.selectedAssets.find(asset.id)!==-1){dfx.addClass(main,'selected');}
var hasKids=(asset.children&&(asset.children.length>0));if(hasKids>0){var childCount=document.createElement('div');dfx.addClass(childCount,this.getClass()+'-item-childCount');dfx.setHtml(childCount,asset.children.length);main.appendChild(childCount);}
var isImg=dfx.isset(width);var self=this;var addDetails=function(imageEl){main.appendChild(imageEl);var name=document.createElement('div');dfx.addClass(name,'title');dfx.setHtml(name,asset.name);main.appendChild(name);if(isImg===true){var sizeInf=document.createElement('div');dfx.addClass(sizeInf,c+'-sizeInf');main.appendChild(sizeInf);dfx.setHtml(sizeInf,width+' x '+height);}
if(hasKids!==true){dfx.addEvent(main,'click',function(e){if(self.picker.uniqueSelect===false&&e.ctrlKey===true||e.metaKey===true){var index=self.selectedAssets.find(asset.id);if(index===-1){self.selectedAssets.push(asset.id);}else{self.selectedAssets.splice(index,1);}}else{dfx.removeClass(dfx.getClass('selected',self.wrapper),'selected');self.selectedAssets=[asset.id];}
dfx.toggleClass(main,'selected');self.fireAssetSelected(asset);});}else{dfx.safedblclick(main,function(e){if(self.picker.uniqueSelect===false&&e.ctrlKey===true||e.metaKey===true){var index=self.selectedAssets.find(asset.id);if(index===-1){self.selectedAssets.push(asset.id);}else{self.selectedAssets.splice(index,1);}}else{dfx.removeClass(dfx.getClass('selected',self.wrapper),'selected');self.selectedAssets=[asset.id];}
dfx.toggleClass(main,'selected');self.fireAssetSelected(asset);},function(){dfx.removeClass(dfx.getClass('selected',self.wrapper),'selected');if(hasKids===true){self.fireAssetDoubleClicked(asset);self.setRoot(asset.id,true);if(self.lineage.inArray(asset.id)===true){var lLn=self.lineage.length;while(lLn>0){if(self.lineage[(self.lineage.length-1)]===asset.id){break;}
self.lineage.pop();}}else{self.lineage.push(asset.id);}
self.selectedAssets=[asset.id];self.fireAssetSelected(asset);self.fireLineageUpdatedActions();}});}
callback.call(self,main);};var size=this.thumbSizes[this.currentThumbSize];if(asset.iconMediumUrl){dfx.getImage(url,function(imgEl){if(imgEl!==false){dfx.setStyle(imgEl,'border','none');imgEl=dfx.resizeImage(imgEl,size);addDetails(imgEl);}});}else if(isImg===false){url+='&astPicker='+asset.id;dfx.getImage(url,function(imgEl){if(imgEl!==false){dfx.setStyle(imgEl,'border','none');imgEl=dfx.resizeImage(imgEl,size);addDetails(imgEl);}});}else{url+='&tb=1';dfx.getImage(url,function(imgEl){if(imgEl!==false){imgEl=dfx.resizeImage(imgEl,size);addDetails(imgEl);}});}
return main;},setRoot:function(assetid,setCurrent,callback)
{if(this.lineage.length===0){this.lineage.push(assetid);}
this.rootAssetid=assetid;if(setCurrent===true){this.setCurrentAsset(assetid,callback);}else{this.update(true,callback);}},getButtons:function()
{var small=document.createElement('div');small.title='Small Thumbs View';dfx.addClass(small,this.getClass()+'-listButtonSmall');var large=document.createElement('div');large.title='Large Thumbs View';dfx.addClass(large,this.getClass()+'-listButtonLarge');return{small:small,large:large};},show:function(size)
{this.changeThumbSize(size);},changeThumbSize:function(size)
{this.currentThumbSize=size;var wrapper=this.wrapper;var thumbSizes=this.thumbSizes;dfx.foreach(thumbSizes,function(i){dfx.removeClass(wrapper,'imgSize-'+i);});dfx.addClass(wrapper,'imgSize-'+size);var imgElems=dfx.getTag('img',this.domElem);var imgLen=imgElems.length;for(var i=0;i<imgLen;i++){var s=dfx.resizeImage(imgElems[i],this.thumbSizes[size],true);imgElems[i].setAttribute('width',s.width);imgElems[i].setAttribute('height',s.height);}},setCurrentAsset:function(assetid,callback)
{this.currentAssetid=assetid;var ln=this.lineage.length;var idx=null;for(var i=0;i<ln;i++){if(this.lineage[i]===this.currentAssetid){idx=i;break;}}
if(idx===null){this.lineage.push(assetid);}else{for(var i=(ln-1);i>idx;i--){this.lineage.pop();}}
var self=this;var lin=this.lineage.concat([]);this.update(function(){self.lineage=lin;});if(callback){callback.call(self);}},setSelectedAssets:function(assets)
{if(!assets){return;}
this.selectedAssets=[];if((assets instanceof Array)===true){var aln=assets.length;for(var i=0;i<aln;i++){this.selectedAssets.push(assets[i]);}}else if(typeof assets==='number'){this.selectedAssets=[assets];}
this._selectAssets(this.selectedAssets);},_selectAssets:function(assetids)
{var items=dfx.getClass(this.getClass()+'-item',this.wrapper);var len=items.length;var id=0;for(var i=0;i<len;i++){id=items[i].getAttribute('assetid');if(assetids.find(id)!==-1){dfx.addClass(items[i],'selected');}else{dfx.removeClass(items[i],'selected');}}},setLineage:function(lineage)
{this.lineage=lineage;this.setCurrentAsset(this.lineage[(this.lineage.length-1)]);}};dfx.inherits('AssetPickerThumbView','AssetPickerListView');function FileAttributeEditorWidgetType(id)
{this.id=id;this.editContentsWidget=WidgetStore.get('CMSEditor');this.editContentsWidget.setAttributeTypeEditor('file',this);this.modified=false;this.addCloseEditorAction();}
FileAttributeEditorWidgetType.prototype={createEditor:function()
{var id=this.id+'_fileUpload';var fileUpload=dfx.getId(id);if(fileUpload){dom.remove(fileUpload);fileUpload=null;}
if(!fileUpload){var fileUpload=document.createElement('input');fileUpload.setAttribute('id',id);fileUpload.setAttribute('type','file');fileUpload.setAttribute('name',id);this.applyStyles(fileUpload);dfx.setStyle(fileUpload,'display','none');document.body.appendChild(fileUpload);fileUploadJS=new FileUploadWidget(id);}
return fileUpload;},addMouseClickAction:function(ph,target,attr)
{var self=this;var clickAction=function(e){self.editContentsWidget.showOptionsMenu();self.modified=true;self.show(ph,target,attr);if(self.activeAttribute){self.toggleAttrModified(self.activeAttribute,true);}
event.preventDefault(e);};event.addEvent(ph,'click',clickAction);},revertAllChanges:function()
{this.modified=false;if(this.activeAttribute){this.toggleAttrModified(this.activeAttribute,false);}},isModified:function()
{return this.modified;},setText:function(text){}};dfx.inherits('FileAttributeEditor','TextAttributeEditor');function WYSIWYGEditorWidgetType(id)
{TextAttributeEditorWidgetType.call(this,id);this.attrType='long_text';}
WYSIWYGEditorWidgetType.prototype={addViperPlugins:function(callback)
{var plugins=['ViperToolbarPlugin','ViperSubToolbarPlugin','ViperCopyPastePlugin','ViperCoreStylesPlugin','ViperFormatPlugin','ViperImagePlugin','ViperImageGalleryPlugin','ViperMoviePlugin','ViperKeyboardEditorPlugin','ViperLinkPlugin','ViperListPlugin','ViperRedoPlugin','ViperTableEditorPlugin','ViperKeywordPlugin','ViperContentSharingPlugin','ViperTrackChangesPlugin','ViperSourceViewPlugin'];ViperPluginManager.addPluginSet('all',plugins,true,callback);},setViperPlugins:function()
{ViperPluginManager.usePluginSet('all');this.viper.removeCallback('viperDisabled','WYSIWYGEditorWidgetType');this.viper.registerCallback('viperDisabled','WYSIWYGEditorWidgetType',function(){if(ViperPluginManager.activePluginSet==='all'){ViperPluginManager.usePluginSet('none');}});}};dfx.inherits('WYSIWYGEditor','TextAttributeEditor');function AbstractEditingScreenModeWidgetType(id,screens,assetid,editableAssets,initialScreen)
{AbstractEditingModeWidgetType.call(this,id);this.screens=screens;this.tabPaneWidget=WidgetStore.get(this.id+'-tab_pane');this.activeScreen='';this.currentScreenIndex=0;this.screenid='';this.noPermission=false;this.lockToken=null;this.assetid=null;if(dfx.isset(assetid)===true){this.assetid=assetid;}
var systemName='';if(this.mode==='AdminScreenMode'||this.mode==='EditScreenMode'||this.mode==='SystemConfigScreenMode'){systemName=this.mode+'Widget';}
this.splashScreenInfo={baseSystem:'Editing',id:'editingSplash',system:this.id.replace(/ScreenModeWidgetType/,'Splash'),title:'Splash Screen',obj:this};this.mode=this.id.substr(0,(this.id.length-10));this.tabPaneWidget.setRequestParamData('mode',this.mode);this.tabPaneWidget.setRequestParamData('action','paintScreen');this.showSplash=false;switch(this.mode){case'AdminScreenMode':case'EditScreenMode':case'SystemConfigScreenMode':if(dfx.isset(initialScreen)===false||initialScreen===''){this.showSplash=true;}
break;default:break;}
this.initialScreen=initialScreen;var cssUrl=Widget.WEB_URL+'Skins/'+Widget.ACTIVE_SKIN+'/';cssUrl+='AbstractSettingsScreenWidget/AbstractSettingsScreenWidgetType.css';dfx.includeCss(cssUrl);var screenPerms=[];var scrnLen=this.screens.length;for(var i=0;i<scrnLen;i++){screenPerms.push('asset.edit.'+this.screens[i].id);}
var self=this;this.permissions={};var widgets=['MenuTabPane','AbstractSplashScreen','AdminSplashScreen','EditSplashScreen','SystemConfigSplashScreen'];this.includeWidgets(widgets,function(){AssetManager.getPermissions(self.assetid,screenPerms,null,function(perms){if(Widget.IS_REMOTE_ASSET===true){perms['asset.edit.design']=false;perms['asset.edit.lookup']=false;perms['asset.edit.metadata']=false;perms['asset.edit.permission']=false;perms['asset.edit.publishing']=false;perms['asset.edit.usage']=false;perms['asset.edit.workflow']=false;}
self.initializePermScreens(perms);});});WidgetStore.addDataChangeListener('AbsEditingModeScr','activeMode',function(){WidgetStore.setData('activeScreen',null);});if(dfx.isset(WidgetStore.get('EditingAutoSave'))===true){WidgetStore.get('EditingAutoSave').registerWidget(this);}}
AbstractEditingScreenModeWidgetType.prototype={_ready:function(){},initializePermScreens:function(perms)
{var self=this;if(self.mode==='EditScreenMode'){self.setNoPermissionMask(perms);}
self.permissions[self.assetid]=perms;if(this.showSplash===true){WidgetStore.setData('activeScreen',self.splashScreenInfo);}
var scrnLen=self.screens.length;for(var i=0;i<scrnLen;i++){self.tabPaneWidget.addOnInitHandler(i,function(data,callback){var widgetid=data.widgetid.replace('EditScreen','');self.screenid=widgetid.toLowerCase();if(self.mode==='EditScreenMode'){var pid='asset.edit.'+self.screenid;if(self.permissions[self.assetid][pid]===true){self.initializeScreen(data,callback);}}else{self.initializeScreen(data,callback);}});}
self.tabPaneWidget.addOnChangeHandler(function(index,prevIndex){self.swapScreens(index,prevIndex);});self.tabPaneWidget.addOnSelectHandler(function(index,prevIndex){if(prevIndex!==-1){var screenid=self.screens[prevIndex]['id'];var prevTabWdgId=self.id+'-tab_widget-'+dfx.ucFirst(screenid);var prevWidget=WidgetStore.get(prevTabWdgId);if(prevWidget){if(prevWidget.canSwitchOffScreen&&prevWidget.canSwitchOffScreen()===false){return false;}}}
return true;});switch(self.mode){case'AdminScreenMode':case'EditScreenMode':case'SystemConfigScreenMode':if(this.showSplash===true){self.displaySplashScreen();}else{self.displayScreen(self.initialScreen);}
break;default:self.tabPaneWidget.switchToScreen(0);break;}
self._ready();},initializeScreen:function(data,callback)
{var widgetid=data.widgetid;var screenWidgetName=widgetid;var screenid=widgetid.replace((this.modeType+'Screen'),'').toLowerCase();var title=dfx.ucWords(screenid);var system=widgetid;var assetid=WidgetStore.getData('editingAssetid');if(dfx.isset(assetid)===false){assetid=this.assetid;}
var self=this;var resourceid='';var _init=function(){self.lockInfo={resource:resourceid,token:null};Locking.acquire(resourceid,function(lock){var readOnly=false;if(lock===true){var token=Locking.getToken(resourceid);self.lockInfo.token=token;}else{var errors=Locking.getError(lock);readOnly=true;}
self.readOnly=readOnly;var widget=self.createWidget(widgetid,screenWidgetName,screenid,widgetid,title,self,assetid,readOnly);widget.lockInfo=errors;widget.init(data);var tabWdgId=self.id+'-tab_widget-'+dfx.ucFirst(screenid);WidgetStore.add(tabWdgId,widget);self._switchOnScreen(widget,screenid);if(dfx.isFn(callback)===true){callback();}},false);};if(this.mode==='AdminScreenMode'||this.mode==='SystemConfigScreenMode'){AssetManager.getProject(function(projectInfo){resourceid=self.mode+':'+screenid+':'+projectInfo.id;_init();});}else{resourceid=this.mode+':'+screenid+':'+assetid;_init();}},getLockResourceid:function(callback)
{var self=this;var screenid=WidgetStore.getData('activeScreen');if(this.mode==='AdminScreenMode'||this.mode==='SystemConfigScreenMode'){AssetManager.getProject(function(projectInfo){var resourceid=self.mode+':'+screenid.id+':'+projectInfo.id;callback.call(self,resourceid);});}else{var resourceid=this.mode+':'+screenid.id+':'+this.assetid;callback.call(this,resourceid);}},swapScreens:function(index,prevIndex)
{this.disableSaveButton();if(prevIndex!==-1){var screenid=this.screens[prevIndex]['id'];var prevTabWdgId=this.id+'-tab_widget-'+dfx.ucFirst(screenid);var prevWidget=WidgetStore.get(prevTabWdgId);if(dfx.isset(prevWidget)===true){this._switchOffScreen(prevWidget);}
if(index!==prevIndex){dfx.empty(dfx.getId(this.id+'-tab_pane-'+prevIndex));}}
var switchOn=true;var screen=this.screens[index];screenid=this.screens[index]['id'];selectedScrnWdgId=this.id+'-tab_widget-'+dfx.ucFirst(screenid);screen.screenWdgtid=selectedScrnWdgId;var self=this;screen.obj=self;WidgetStore.setData('activeScreen',screen);this.currentScreenIndex=index;if(this.mode==='EditScreenMode'){if(this.permissions[this.assetid]['asset.edit.'+this.screenid]===false){this.tabPaneWidget.setRequestParamData('mode',this.mode);this.tabPaneWidget.setRequestParamData('action','paintScreen');if(this.mode==='AdminScreenMode'||this.mode==='EditScreenMode'){var self=this;this.createScreenWarningMessage({id:index,leftTitle:'No Access',mainMessage:'You do not have access to edit the screen.',colour:'red',buttonTitle:null},function(elem){self.tabPaneWidget.updateScreen(index,elem);});switchOn=false;}}}
if(switchOn===true){var currTabWdgId=this.id+'-tab_widget-'+dfx.ucFirst(this.screenid);if(WidgetStore.exists(currTabWdgId)===true){var title=this.screens[index]['title'];var currWidget=WidgetStore.get(currTabWdgId);this._switchOnScreen(currWidget,this.screenid);}}},displaySplashScreen:function()
{this.tabPaneWidget.setSelected(0,false);this.tabPaneWidget.setRequestParamData('screen','splashScreen');this.tabPaneWidget.setRequestParamData('assetid',this.assetid);this.tabPaneWidget.updateScreen(0);this.screenid='editingSplash';},displayScreen:function(screen)
{var num=this.screens.length;for(var i=0;i<num;i++){if(this.screens[i].system===screen){var info=this.screens[i];this.tabPaneWidget.showTab(i);this.swapScreens(i,-1);break;}}},displayNoAccessScreen:function(index)
{this.tabPaneWidget.setSelected(index,false);this.tabPaneWidget.setRequestParamData('screen','noAccessScreen');this.tabPaneWidget.updateScreen(index);this.tabPaneWidget.enable(index);},updateScreen:function(callback,forceReload)
{var idx=0;var scrnLen=this.screens.length;for(var i=0;i<scrnLen;i++){if(this.screens[i].system===this.processingScreen){idx=i;break;}}
this.tabPaneWidget.switchToScreen(idx,callback,forceReload);},refreshScreen:function(screenid,callback)
{screenid=screenid||this.screenid;var screenIdx=this._getScreenIndex(screenid);if(screenIdx===null){screenIdx=0;}
this.tabPaneWidget.switchToScreen(screenIdx,callback,true);},_getScreenIndex:function(screenid)
{var num=this.screens.length;for(var i=0;i<num;i++){if(this.screens[i].id===screenid){return i;}}
return null;},processScreen:function(params,callback,isSaveProcess,timeout,errorCallback)
{params.action='processScreen';params.mode=this.id.replace(/WidgetType/,'');if(this.lockInfo&&this.lockInfo.resource){this.lockInfo.token=Locking.getToken(this.lockInfo.resource);}
var nameLockToken=Locking.getToken('attr-name:'+params.assetid);if(nameLockToken){var id=this.id+'-input-assetName';var input=dfx.getId(id);if(input){params._nameLockToken=nameLockToken;params._assetName=input.value;}}
params.lockInfo=dfx.jsonEncode(this.lockInfo);this.processingScreen=params.screen;var self=this;dfx.post(window.location.href,params,function(data){if(isSaveProcess===true){self.processSaveResponse(data,params,callback);return;}
if(dfx.isFn(callback)===true){callback.call(self,data);}},function(xhr,status){var ret=true;if(dfx.isFn(errorCallback)===true){var ret=errorCallback.call(self,xhr,status);}
if(ret===true){var errorMsg=null;if(status==='timeout'){errorMsg='Connection Failed';}
self._showSaveError(params,callback,errorMsg);}},timeout);},getScreenData:function(params,callback)
{params.action='getScreenData';params.mode=this.id.replace(/WidgetType/,'');this.processingScreen=params.screen;var self=this;dfx.post(window.location.href,params,function(data){if(dfx.isFn(callback)===true){callback.call(self,data);}});},switchedOff:function()
{var widget=null;var widgetId=null;var scrnLen=this.screens.length;for(var i=0;i<scrnLen;i++){widgetId=this.id+'-tab_widget-'+dfx.ucFirst(this.screens[i]['id']);widget=WidgetStore.get(widgetId);if(dfx.isset(widget)===true){this._switchOffScreen(widget);}}},_switchOffScreen:function(widget)
{widget.switchOffScreen();this.activeScreen=null;},_switchOnScreen:function(widget,screenid)
{widget.switchOnScreen();this.activeScreen=screenid;},getActiveScreenid:function()
{return this.activeScreen;},disable:function()
{Widget.prototype.disable.call(this);this.displayDisabledDiv(true);},enable:function()
{Widget.prototype.enable.call(this);this.removeDisabledDiv();},getAutoSaveContents:function()
{return{tabIndex:this.tabPaneWidget.getCurrentTabIndex(),assetid:WidgetStore.getData('editingAssetid')};},loadAutoSaveContents:function(content,callback)
{var infoBoxElem=dfx.getId('content_'+content.assetid);if(infoBoxElem){dfx.trigger(infoBoxElem,'click');var self=this;WidgetStore.addDataChangeListener('AbsEditingScrAutoLoad','editingAssetid',function(){WidgetStore.removeDataChangeListener('AbsEditingScrAutoLoad','editingAssetid');self._loadAutoSaveContents(content.tabIndex);});}else if(content.tabIndex){this._loadAutoSaveContents(content.tabIndex);}},_loadAutoSaveContents:function(tabIndex)
{var self=this;tabIndex=parseInt(tabIndex);self.tabPaneWidget.switchToScreen(tabIndex,function(){self.tabPaneWidget.selectTab(tabIndex);});},getTabid:function(screenid)
{return this.id+'-tab_pane-tab-'+screenid;},hasPermission:function(screenid)
{var hasPerm=false;if(this.permissions[this.assetid]['asset.edit.'+screenid]===true){hasPerm=true;}
return hasPerm;}};dfx.inherits('AbstractEditingScreenMode','AbstractEditingMode');function EditEditingModeWidgetType(id,showLayer,paintingWidget)
{if(paintingWidget&&paintingWidget==='MySourceMatrixIFrameWidgetType'){return;}
AbstractEditingModeWidgetType.call(this,id);this.widgetType='EditEditingMode';this.url=Widget.CURRENT_URL+'/'+Widget.CURRENT_SUFFIX;this.inEditMode=false;this.attributes={};this.editableAssets=null;this.inAssetView=false;this.placeHoldersCont=null;this.setCurrentAsset(null);this.lockingHelper=null;this.setBackgroundColor();this.attrPlaceHolders=new Util.ObjectHash();this.assetPlaceHolders=new Util.ObjectHash();var self=this;var idleSec=150;WidgetStore.add("contentSharing",new EditingContentSharingWidgetType('contentSharing'));EditingEditorManager.clearCallbacks();this.includeWidgets(['WYSIWYGEditor','TextAttributeEditor'],function(){var text=self.createWidget('textAttributeEditor','TextAttributeEditor');var longText=self.createWidget('longTextAttributeEditor','WYSIWYGEditor');EditingEditorManager.setAttributeEditor('text',text,function(){EditingEditorManager.setAttributeEditor('long_text',longText,function(){self.editables=self.findEditables();self.ready();self.updatePlaceHolderPositions();});});});var autoSaveWidget=WidgetStore.get('EditingAutoSave');if(autoSaveWidget){autoSaveWidget.registerWidget(this);}
if(!showLayer){this.setSaveButton(function(){self.displayDisabledDiv(true);self.saveModifiedAttributeValues();},function(){var modeSwitcher=WidgetStore.get('EditingModeSwitcher');modeSwitcher.switchMode(dfx.getId('EditingModeSwitcher-EditEditingMode'),null,null,null,true);});}else if(showLayer==='assetView'){this.inAssetView=true;this.showAssetLayer();}
this.includeWidget(this.widgetType+'Locking',function(){self.lockingHelper=self.createWidget(null,self.widgetType+'Locking');});var links=dfx.getId('EditingContents').getElementsByTagName('a');dfx.addEvent(links,'click',function(e){var tar=dfx.getMouseEventTarget(e);if(tar.href&&tar.href.indexOf('javascript:')===0){setTimeout(function(){self.updatePlaceHolderPositions();},150);return;}
return false;});this.addLayerButtons();clearTimeout(EditEditingModeWidgetType.locatorTimer);var updateCaretLocator=function(){if(self.inAssetView===true){return;}
self.hideCaretLocator();if(EditEditingModeWidgetType.locatorTimer){clearTimeout(EditEditingModeWidgetType.locatorTimer);}
EditEditingModeWidgetType.locatorTimer=setTimeout(function(){EditEditingModeWidgetType.locatorTimer=null;self.showCaretLocator();},(idleSec*1000));};EditingEditorManager.registerCallback('editorDisabled',function(data){self.updatePlaceHolderPositions();self.showPlaceHolders();updateCaretLocator();});EditingEditorManager.registerCallback('editorEnabled',function(){updateCaretLocator();});var updatePlaceHolders=true;EditingEditorManager.registerCallback('contentChanged',function(data,changeInfo){self.setModified(true);self.toggleAttrModified(data.attribute,data.attribute.isModified());if(updatePlaceHolders===true){updatePlaceHolders=false;dfx.addEvent(document,'mousemove.EditEditingMode',function(){updatePlaceHolders=true;self.updatePlaceHolderPositions();dfx.removeEvent(document,'mousemove.EditEditingMode');});}
updateCaretLocator();});EditingEditorManager.registerCallback('caretPositioned',function(){updateCaretLocator();});}
EditEditingModeWidgetType.locatorTimer=null;EditEditingModeWidgetType.prototype={hideCaretLocator:function()
{var locatorid=this.id+'-caretLocator';var caretLoc=dfx.getId(locatorid);if(caretLoc){dfx.remove(caretLoc);}},showCaretLocator:function()
{var locatorid=this.id+'-caretLocator';var caretLoc=dfx.getId(locatorid);if(!caretLoc){var caretLoc=document.createElement('div');caretLoc.id=locatorid;dfx.addClass(caretLoc,'EditEditingModeWidgetType-caretLocator');document.body.appendChild(caretLoc);}
var coords=EditingEditorManager.getCaretCoords();if(!coords||coords.x===0||coords.y===0){return;}
dfx.setStyle(caretLoc,'left',(coords.x-24)+'px');dfx.setStyle(caretLoc,'top',(coords.y-61)+'px');dfx.setStyle(caretLoc,'display','block');if(/MSIE/.test(navigator.userAgent)!==true){var bounce=function(){if(!caretLoc.parentNode){return;}
dfx.bounce(caretLoc,4,20,function(){setTimeout(function(){bounce();},50);});};bounce();}},addLayerButtons:function()
{var self=this;if(dfx.isset(dfx.getId(this.id+'-layerBtnWrapper'))===true){var attrViewBtn=dfx.getId(this.id+'-attributeViewBtn');var astViewBtn=dfx.getId(this.id+'-assetViewBtn');if(this.inAssetView===true){dfx.swapClass(astViewBtn,'unselected','selected');dfx.swapClass(attrViewBtn,'selected','unselected');}else{dfx.swapClass(attrViewBtn,'unselected','selected');dfx.swapClass(astViewBtn,'selected','unselected');}
return;}
var layerBtnWrapper=document.createElement('div');var assetViewBtn=document.createElement('div');var attributeViewBtn=document.createElement('div');var coords=dfx.getElementCoords(dfx.getId('expander'));dfx.setStyle(layerBtnWrapper,'position','fixed');dfx.setStyle(layerBtnWrapper,'left',coords.x+26);layerBtnWrapper.setAttribute('id',this.id+'-layerBtnWrapper');assetViewBtn.setAttribute('id',this.id+'-assetViewBtn');dfx.attr(assetViewBtn,'title','Click to configure complex page types');attributeViewBtn.setAttribute('id',this.id+'-attributeViewBtn');dfx.attr(attributeViewBtn,'title','Click to edit page names and content');if(this.inAssetView===true){dfx.swapClass(assetViewBtn,'EditEditingModeLayerButton unselected','EditEditingModeLayerButton selected');dfx.swapClass(attributeViewBtn,'EditEditingModeLayerButton selected','EditEditingModeLayerButton unselected');}else{dfx.swapClass(assetViewBtn,'EditEditingModeLayerButton selected','EditEditingModeLayerButton unselected');dfx.swapClass(attributeViewBtn,'EditEditingModeLayerButton unselected','EditEditingModeLayerButton selected');}
layerBtnWrapper.appendChild(attributeViewBtn);layerBtnWrapper.appendChild(assetViewBtn);var toolbar=WidgetStore.get('Toolbar');toolbar.addScreenTool(layerBtnWrapper);dfx.addEvent(attributeViewBtn,'click',function(evt){var attrViewBtn=dfx.getId(self.id+'-attributeViewBtn');if(dfx.hasClass(attrViewBtn,'unselected')===true){var astViewBtn=dfx.getId(self.id+'-assetViewBtn');var modeSwitcher=WidgetStore.get('EditingModeSwitcher');modeSwitcher.switchMode(dfx.getId('EditingModeSwitcher-EditEditingMode'));dfx.removeClass(attrViewBtn,'hover');dfx.swapClass(attrViewBtn,'unselected','selected');dfx.swapClass(astViewBtn,'selected','unselected');}});dfx.addEvent(assetViewBtn,'click',function(evt){var astViewBtn=dfx.getId(self.id+'-assetViewBtn');self.switchToAssetView();var attrViewBtn=dfx.getId(self.id+'-attributeViewBtn');dfx.removeClass(astViewBtn,'hover');dfx.swapClass(astViewBtn,'unselected','selected');dfx.swapClass(attrViewBtn,'selected','unselected');});dfx.hover(assetViewBtn,function(){if(dfx.hasClass(assetViewBtn,'unselected')===true){dfx.addClass(assetViewBtn,'hover');}},function(){if(dfx.hasClass(assetViewBtn,'hover')===true){dfx.removeClass(assetViewBtn,'hover');}});dfx.hover(attributeViewBtn,function(){if(dfx.hasClass(attributeViewBtn,'unselected')===true){dfx.addClass(attributeViewBtn,'hover');}},function(){if(dfx.hasClass(attributeViewBtn,'hover')===true){dfx.removeClass(attributeViewBtn,'hover');}});},modeSwitchedOn:function(data)
{if(dfx.isset(data)===true&&data.hasAutosave===true){var contents=null;var autoSaveWidget=WidgetStore.get('EditingAutoSave');if(dfx.isset(autoSaveWidget)===true){contents=autoSaveWidget.getSavedContents(this.id);}
if(dfx.isset(contents.inAssetView)===true){if(contents.inAssetView===true){if(dfx.isset(contents.showAssetEditor)===true){var self=this;this.showAssetEditor(contents.showAssetEditor,function(){autoSaveWidget.continueLoadContents(self.id);});}}}}},switchToAssetView:function(extraData)
{var self=this;var modeSwitcher=WidgetStore.get('EditingModeSwitcher');var mode=dfx.getId('EditingModeSwitcher-EditEditingMode');modeSwitcher.switchMode(mode,{show:'assetView'},function(data){if(dfx.isset(extraData)===true&&extraData.hasAutosave===true){WidgetStore.get(self.id).modeSwitchedOn(extraData);}},extraData);},showAssetLayer:function()
{this.editableAssets=this.findEditableAssets();},switchedOff:function()
{var locatorid=this.id+'-caretLocator';var caretLoc=dfx.getId(locatorid);if(caretLoc){dfx.remove(caretLoc);}
this.removePlaceHolders();EditingEditorManager.removeEditors();dfx.remove(dfx.getId('ViperToolbarPlugin'));var settingsPane=WidgetStore.get(this.id+'-assetSettings');if(dfx.isset(settingsPane)===true){settingsPane.remove();}
dfx.remove(dfx.getId(this.id+'-assetSettings'));this.removeToolbarButton('save_button');this.removeEditingAssetStyle();var autoSaveWidget=WidgetStore.get('EditingAutoSave');if(autoSaveWidget){autoSaveWidget.unregisterWidget(this);}},modeSwitchedOff:function()
{if(this.lockingHelper&&this.lockingHelper.popup!==null){this.lockingHelper.close();}},findEditables:function()
{var editableCont=dfx.getClass('editable_attribute');var len=editableCont.length;var placeHolder=document.createElement('div');var phContent='<div class="left"><div class="top">';phContent+='<div class="right"><div class="bottom"></div></div></div><div>';phContent+='<div class="state" title="You do not have access to edit this content"></div>';dfx.setHtml(placeHolder,phContent);var editables=[];for(var i=0;i<len;i++){var ed=editableCont[i];dfx.setStyle(ed,'position','relative');if(ed.parentNode){var styles=getStyles(ed.parentNode);dfx.setStyle(ed,'color',styles.color);}
for(var child=ed.firstChild;child;child=child.nextSibling){if(dfx.isBlockElement(child)===true){dfx.setStyle(ed,'display','block');}}
editables.push(ed);var attrType=ed.getAttribute('attr_type');var editor=EditingEditorManager.getEditor(attrType);if(editor){var attrid=ed.getAttribute('attrid');var assetid=ed.getAttribute('assetid');var attr=editor.addAttribute(attrid,assetid,ed);this.attributes[assetid+':'+attrid]=attrType;this.createAttributePlaceHolder(ed,attr,placeHolder.cloneNode(true));}}
return editables;},findEditableAssets:function()
{var editableAssets=dfx.getClass('editable_asset');var len=editableAssets.length;var editables=[];for(var i=0;i<len;i++){var ed=editableAssets[i];var editableParents=dfx.getParents(ed,'.editable_asset')
if(editableParents.length===0){editables.push(ed);this.createAssetPlaceHolder(ed);}}
return editables;},saveModifiedAttributeValues:function()
{this.saveAttributeValues();},escapeAttributeValues:function(val)
{if(val){val=val.replace(/\+/g,'%2B');}
return val;},saveAttributeValues:function()
{var self=this;var attributes=EditingEditorManager.getModifiedValues();var param={widget:'EditEditingModeWidget',action:'updateAttributeValues',attributes:dfx.jsonEncode(attributes)};dfx.post(this.url,param,function(data){if(data){data=dfx.jsonDecode(data);var errorMsgs=[];dfx.foreach(data.success,function(i){var s=data.success[i];var attribute=self.getAttribute(s.assetid,s.attrid);if(attribute){self.toggleAttrModified(attribute,false);}});dfx.foreach(data.errors,function(i){errorMsgs.push(data.errors[i].msg);});self.showError(errorMsgs,function(){});if(errorMsgs.length===0){self._showSaveSuccess();var modeSwitcher=WidgetStore.get('EditingModeSwitcher');setTimeout(function(){modeSwitcher.switchMode(dfx.getId('EditingModeSwitcher-EditEditingMode'),null,null,null,true);},1000);}else{self.setModified(true);}}});},createAttributePlaceHolder:function(el,attribute,ph)
{if(dfx.hasClass(el,'disabled')===true){dfx.addClass(dfx.getClass('state',ph),'disabled');}else if(dfx.hasClass(el,'locked')===true){dfx.addClass(dfx.getClass('state',ph),'locked');}
var phInner=document.createElement('div');dfx.addClass(ph,'EditEditingModeWidgetType-ph');dfx.addClass(phInner,'EditEditingModeWidgetType-ph-inner');ph.appendChild(phInner);this.setPlaceHolderPosition(ph,el);this.attrPlaceHolders.put(ph,el);if(dfx.hasClass(el,'disabled')===false){this.addPlaceHolderMouseAction(ph,el,attribute);}
if(this.placeHoldersCont===null){this.placeHoldersCont=document.createElement('div');document.body.appendChild(this.placeHoldersCont);}
this.placeHoldersCont.appendChild(ph);},createAssetPlaceHolder:function(el)
{var ph=document.createElement('div');var phContent='<div class="left"><div class="top">';phContent+='<div class="right"><div class="bottom"></div></div></div><div>';phContent+='<div class="state" title="You do not have access to edit this content"></div>';ph.setAttribute('loading','false');dfx.setHtml(ph,phContent);if(dfx.hasClass(el,'disabled')===true){dfx.addClass(dfx.getClass('state',ph),'disabled');}else if(dfx.hasClass(el,'locked')===true){dfx.addClass(dfx.getClass('state',ph),'locked');}
var phInner=document.createElement('div');dfx.addClass(ph,'EditEditingModeWidgetType-ph');dfx.addClass(phInner,'EditEditingModeWidgetType-ph-inner');ph.appendChild(phInner);this.setPlaceHolderPosition(ph,el);if(dfx.hasClass(el,'disabled')===false){this.addPlaceHolderMouseOverAction(ph,el);this.addPlaceHolderMouseOutAction(ph,el);}
this.assetPlaceHolders.put(ph,el);if(this.placeHoldersCont===null){this.placeHoldersCont=document.createElement('div');document.body.appendChild(this.placeHoldersCont);}
this.placeHoldersCont.appendChild(ph);var self=this;var assetid=el.getAttribute('assetid');var resource='asset:'+assetid;if(dfx.hasClass(el,'disabled')===false){dfx.addEvent(ph,'click',function(e){if(ph.getAttribute('loading')==='true'){return;}
ph.setAttribute('loading','true');Locking.acquire(resource,function(result){var readOnly=false;if(result!==true){var errInfo=Locking.getError(result);errInfo.element=el;errInfo.modified=true;readOnly=true;self.lockingHelper.showMessage(errInfo);}
self.showAssetEditor(assetid,function(){ph.setAttribute('loading','false');},readOnly);});});}},showAssetEditor:function(assetid,callback,readOnly,settingsPaneCallback)
{this.setCurrentAsset(assetid);dfx.remove(dfx.getId(this.id+'-assetEditor'));var self=this;this.includeWidgets(['SettingsPane','DynamicDiv'],function(){var settingsPane=self.createWidget(self.id+'-assetSettings','SettingsPane');settingsPane.create(function(el){if(settingsPaneCallback){settingsPaneCallback.call(self,settingsPane);}
if(readOnly===true){settingsPane.close();}
self.removeAssetPlaceHolders();self._loadAssetEditContent(assetid,callback,readOnly);});});},setCurrentAsset:function(assetid)
{this.currentAsset=assetid;},_loadAssetEditContent:function(assetid,callback,readOnly)
{var settingsPane=WidgetStore.get(this.id+'-assetSettings');var self=this;settingsPane.changeContent({widget:'EditingAssetWidget',__action:'getSettings',assetid:assetid,widgetid:this.id+'-assetEditor'},function(data){if(dfx.isset(data)===false){return;}
data=dfx.jsonDecode(data);setTimeout(function(){if(dfx.isset(self.editableAssets)===false||self.editableAssets.length===0){self.showAssetLayer();}
var widget=WidgetStore.get(data.widgetid);if(dfx.isset(widget)===true){widget.setReadOnly(readOnly);if(dfx.isFn(widget.init)===true){widget.init(data,assetid,self.editableAssets);}
if(dfx.isFn(callback)===true){callback.call(self,widget);}}},1000);});},updatePlaceHolderPositions:function(posOnly)
{var phs=this.attrPlaceHolders.objects;var values=this.attrPlaceHolders.values;var ln=phs.length;for(var i=0;i<ln;i++){this.setPlaceHolderPosition(phs[i],values[i],posOnly);}},setPlaceHolderPosition:function(ph,el,posOnly)
{var loc=dfx.getElementCoords(el);if(!loc.x&&!loc.y){loc.x=-9999;loc.y=-9999;}
dfx.setStyle(ph,'left',(loc.x-8)+'px');dfx.setStyle(ph,'top',(loc.y-1)+'px');if(!posOnly){var height=0;if(dfx.isTag(el,'span')===true&&dfx.getStyle(el,'display')==='block'){var heightDiv=document.createElement('div');dfx.setStyle(heightDiv,'clear','both');dfx.setStyle(heightDiv,'border','1px solid');el.appendChild(heightDiv);height=dfx.getElementHeight(el);dfx.remove(heightDiv);heightDiv=null;}else{height=dfx.getElementHeight(el);}
if(!height){var clone=el.cloneNode(true);dfx.setStyle(clone,'overflow','hidden');dfx.setStyle(clone,'position','fixed');dfx.setStyle(clone,'top','-9999px');dfx.setStyle(clone,'left','-9999px');document.body.appendChild(clone);height=dfx.getElementHeight(clone);dfx.remove(clone);}
dfx.setStyle(ph,'height',height+2+'px');dfx.setStyle(ph,'width',dfx.getElementWidth(el)+15+'px');}},addPlaceHolderMouseClickAction:function(ph,target,attr)
{var editor=this.getAttributeEditorFromPlaceHolder(ph);if(editor){var self=this;var resource='attr-'+attr.attrid+':'+attr.assetid;var clickAction=function(e){if(self.lockingHelper.isActive()===true){return;}
Locking.acquire(resource,function(result){if(result!==true){self.setAttributeState(attr,'locked');var errInfo=Locking.getError(result);errInfo.element=target;errInfo.modified=false;var attributes=EditingEditorManager.getModifiedValues();var attrLen=attributes.length;for(var i=0;i<attrLen;i++){if(attributes[i].assetid===attr.assetid&&attributes[i].attrid===attr.attrid){errInfo.modified=true;}}
errInfo.callback=function(btype){if(btype==='revert'){EditingEditorManager.revertAttributeValue(attr);self.toggleAttrModified(attr,false);}else if(btype===true){var el=dfx.getClass('state',ph)[0];dfx.removeClass(el,'locked');}};if(errInfo.modified===true||EditingEditorManager.activeEditorData.placeHolder===ph){self.lockingHelper.showMessage(errInfo);if(EditingEditorManager.isEditorActive()){EditingEditorManager.disableActiveEditor();}}}else{self.setAttributeState(attr,'');}});var data={placeHolder:ph,target:target,attribute:attr,e:e};EditingEditorManager.setActiveEditor(attr.type,data);self.hidePlaceHolders();dfx.preventDefault(e);};dfx.addEvent(ph,'click',clickAction);}},addPlaceHolderMouseOverAction:function(ph,target,attr)
{var self=this;dfx.addEvent(ph,'mouseover',function(e){self.updatePlaceHolderPositions();dfx.addClass(ph,'mouseover');});},addPlaceHolderMouseOutAction:function(ph,target,attr)
{dfx.addEvent(ph,'mouseout',function(e){dfx.removeClass(ph,'mouseover');});},addPlaceHolderMouseAction:function(ph,el,attribute)
{var editor=this.getAttributeEditorFromPlaceHolder(ph);if(editor){if(editor.placeHolderMouseClickAction){editor.placeHolderMouseClickAction.call(this,ph,el,attribute);}else{this.addPlaceHolderMouseClickAction(ph,el,attribute);}
if(editor.placeHolderMouseOverAction){editor.placeHolderMouseOverAction.call(this,ph,el,attribute);}else{this.addPlaceHolderMouseOverAction(ph,el,attribute);}
if(editor.placeHolderMouseOutAction){editor.placeHolderMouseOutAction.call(this,ph,el,attribute);}else{this.addPlaceHolderMouseOutAction(ph,el,attribute);}}},hidePlaceHolders:function()
{var phs=this.attrPlaceHolders.objects;dfx.addClass(phs,'hidden');},showPlaceHolders:function(ph,attr_type)
{var phs=this.attrPlaceHolders.objects;var phsln=phs.length;for(var i=0;i<phsln;i++){if(ph&&ph!==phs[i]){continue;}else if(attr_type&&this.attrPlaceHolders.values[i].getAttribute('attr_type')!==attr_type){continue;}
dfx.removeClass(phs,'hidden');dfx.setStyle(phs[i],'visibility','visible');dfx.setStyle(phs[i],'display','block');}
this.updatePlaceHolderPositions();},removePlaceHolders:function()
{dfx.remove(this.placeHoldersCont);this.placeHoldersCont=null;this.attrPlaceHolders=new Util.ObjectHash();},removeAssetPlaceHolders:function()
{var phs=this.assetPlaceHolders.objects;var pln=phs.length;for(var i=0;i<pln;i++){dfx.remove(this.assetPlaceHolders.objects[i]);}
this.assetPlaceHolders=new Util.ObjectHash();},getAttributeTypeFromPlaceHolder:function(ph)
{var attrType=null;var el=this.attrPlaceHolders.get(ph);if(el){attrType=el.getAttribute('attr_type');}
return attrType;},getAttributeEditorFromPlaceHolder:function(ph)
{var attrType=this.getAttributeTypeFromPlaceHolder(ph);var editor=null;if(attrType){var editor=EditingEditorManager.getEditor(attrType);}
return editor;},getAttributeElement:function(attr)
{var phs=this.attrPlaceHolders.values;var len=phs.length;for(var i=0;i<len;i++){var p=phs[i];if(attr.attrid===p.getAttribute('attrid')&&attr.assetid===p.getAttribute('assetid')){return p;}}
return null;},getPlaceHolderForAttribute:function(attr)
{var phs=this.attrPlaceHolders.values;var len=phs.length;for(var i=0;i<len;i++){var p=phs[i];if(attr.attrid===p.getAttribute('attrid')&&attr.assetid===p.getAttribute('assetid')){return this.attrPlaceHolders.objects[i];}}
return null;},getAttribute:function(assetid,attrid)
{var editor=this.getAttributeEditor(assetid,attrid);if(editor){return editor.getAttribute(attrid,assetid);}
return null;},getAttributeEditor:function(assetid,attrid)
{if(this.attributes[assetid+':'+attrid]){return EditingEditorManager.getEditor(this.attributes[assetid+':'+attrid]);}
return null;},getAutoSaveContents:function()
{var contents={};if(this.inAssetView===true&&this.currentAsset!==null){contents.inAssetView=this.inAssetView;contents.showAssetEditor=this.currentAsset;}else{var attributes=EditingEditorManager.getModifiedAttributes();var values=[];dfx.foreach(attributes,function(i){values.push({assetid:attributes[i].assetid,attrid:attributes[i].attrid,value:dfx.getHtml(attributes[i].nodes[0])});});contents.attributeVals=dfx.jsonEncode(values);}
return contents;},loadAutoSaveContents:function(contents,callback)
{if(dfx.isset(contents.inAssetView)===true){if(contents.inAssetView===true){this.switchToAssetView({hasAutosave:true});return;}}else{var self=this;autoSaveCont=dfx.jsonDecode(contents.attributeVals);dfx.foreach(autoSaveCont,function(i){var attribute=self.getAttribute(autoSaveCont[i].assetid,autoSaveCont[i].attrid);EditingEditorManager.setAttributeValue(attribute,autoSaveCont[i].value);self.toggleAttrModified(attribute,true);});}},toggleAttrModified:function(attr,modified)
{if(attr){var aln=attr.nodes.length;for(var i=0;i<aln;i++){var oln=this.attrPlaceHolders.objects.length;for(var j=0;j<oln;j++){if(attr.nodes[i]===this.attrPlaceHolders.values[j]){if(modified){dfx.addClass(this.attrPlaceHolders.objects[j],'EditEditingModeWidgetType-ph-modified');}else{dfx.removeClass(this.attrPlaceHolders.objects[j],'EditEditingModeWidgetType-ph-modified');}
break;}}}
if(modified===true){this.enableSaveButton();}}},setAttributeState:function(attr,state)
{var states='locked disabled';var nodesLen=attr.nodes.length;for(var i=0;i<nodesLen;i++){var objLen=this.attrPlaceHolders.objects.length;for(var j=0;j<objLen;j++){if(attr.nodes[i]===this.attrPlaceHolders.values[j]){var el=dfx.getClass('state',this.attrPlaceHolders.objects[j])[0];dfx.removeClass(el,states);dfx.addClass(el,state);break;}}}},contentModified:function()
{return EditingEditorManager.hasModifiedAttributes();}};dfx.inherits('EditEditingMode','AbstractEditingMode');var EditingEditorManager=new function()
{this.activeEditor=null;this.editors={};this.callbacks={};this.activeEditorData=null;this.setActiveEditor=function(type,data){if(this.activeEditor){this.editors[type].deactivate();}
this.activeEditor=type;this.editors[type].activate(data);this.activeEditorData=data;if(this.callbacks.editorEnabled){var ln=this.callbacks.editorEnabled.length;for(var i=0;i<ln;i++){this.callbacks.editorEnabled[i].call(this);}}};this.setAttributeEditor=function(attrType,editor,callback){if(!this.editors[attrType]){this.editors[attrType]=editor;editor.load(function(){editor.init();if(dfx.isFn(callback)===true){callback.call(this);}});}else{throw'setAttributeEditor: Editor for '+attrType+' exists!';}};this.getEditor=function(type){return this.editors[type];};this.getCaretCoords=function(){var coords=null;if(this.editors[this.activeEditor]){coords=this.editors[this.activeEditor].getCaretCoords();}
return coords;};this.removeEditors=function(){for(var type in this.editors){this.editors[type].remove();}
this.editors={};};this.isEditorActive=function(){if(this.activeEditor!==null){return true;}
return false;};this.disableActiveEditor=function(){if(this.editors[this.activeEditor]){this.editors[this.activeEditor].deactivate();}
this.activeEditor=null;if(this.callbacks.editorDisabled){var ln=this.callbacks.editorDisabled.length;for(var i=0;i<ln;i++){this.callbacks.editorDisabled[i].call(this);}}};this.registerCallback=function(type,callback){if(dfx.isFn(callback)===false){return;}
if(!this.callbacks[type]){this.callbacks[type]=[];}
this.callbacks[type].push(callback);};this.contentChanged=function(data,info){if(this.callbacks.contentChanged){var ln=this.callbacks.contentChanged.length;for(var i=0;i<ln;i++){this.callbacks.contentChanged[i].call(this,data,info);}}};this.caretPositioned=function(){if(this.callbacks.caretPositioned){var ln=this.callbacks.caretPositioned.length;for(var i=0;i<ln;i++){this.callbacks.caretPositioned[i].call(this);}}};this.hasModifiedAttributes=function(type){if(type){if(this.editors[type]){return this.editors[type].isModified();}}else{for(var type in this.editors){if(this.editors[type].isModified()===true){return true;}}}};this.getModifiedValues=function(){var values=[];for(var type in this.editors){values=values.concat(this.editors[type].getModifiedValues());}
return values;};this.getModifiedAttributes=function(){var attrs=[];for(var type in this.editors){attrs=attrs.concat(this.editors[type].getModifiedAttributes());}
return attrs;};this.revertAttributeValue=function(attr){this.editors[attr.type].revertAttributeValue(attr.attrid,attr.assetid);};this.setAttributeValue=function(attr,value){this.editors[attr.type].setAttributeValue(attr.attrid,attr.assetid,value);};this.clearCallbacks=function(){this.callbacks={};};};function getStyles(el)
{var strValue="";if(document.defaultView&&document.defaultView.getComputedStyle){return document.defaultView.getComputedStyle(el,'');}else if(el.currentStyle){return el.currentStyle;}}
function PreviewEditingModeWidgetType(id)
{AbstractEditingModeWidgetType.call(this,id);this.widgetType='PreviewEditingMode';this.setBackgroundColor();this.addLinkEvents();this.ready();}
PreviewEditingModeWidgetType.prototype={addLinkEvents:function()
{var self=this;var onClick=function(evt){var target=dfx.getMouseEventTarget(evt);var href=null;if(target.nodeName.toLowerCase()!=='a'){var parents=dfx.getParents(target,'a');if(parents.length>0){var a=parents[0];href=a.getAttribute('href');href=href+'/';}}else{href=target.getAttribute('href');href=href+'/';}
if(href!==null){href=dfx.baseUrl(href);if(href.indexOf('javascript:')===0){return;}
href=href.replace(/\/$/,'');var re=new RegExp(Widget.CURRENT_SUFFIX);var dest=href;target.removeAttribute('href');if(!href.match(re)){var assetid=href.match(/\?a=.*/gi,'');if(assetid!==null){dest=href.replace(assetid[0],'');dest=dfx.addToQueryString(dest,{'a':assetid[0]});}
dest=dfx.addToPath(dest,Widget.CURRENT_SUFFIX);}
var urlParams={widget:'PreviewEditingModeWidget',action:'loadurl'};dest=dfx.addToQueryString(dest,urlParams);window.location.href=dest;return false;}};var links=document.body.getElementsByTagName('a');dfx.removeEvent(links,'click');dfx.addEvent(links,'click',onClick);},switchedOff:function()
{this.removeEditingAssetStyle();}};dfx.inherits('PreviewEditingMode','AbstractEditingMode');function ProfileScreenModeWidgetType(id)
{this.modeType='Profile';AbstractEditingModeWidgetType.call(this,id);this.widgetType='ProfileScreenMode';}
ProfileScreenModeWidgetType.prototype={switchedOff:function()
{var icon=WidgetStore.get('ProfileEditingToolbarIcon');if(icon){icon.toggleState('inactive');}
Locking.release(WidgetStore.get('ProfileScreenWidgetType').resourceid);},reset:function(callback)
{WidgetStore.get('ProfileScreenWidgetType').reset(callback);},setReadOnly:function(readOnly)
{WidgetStore.get('ProfileScreenWidgetType').setReadOnly(readOnly);}};dfx.inherits('ProfileScreenMode','AbstractEditingMode');function TrashEditingModeWidgetType(id,assets)
{AbstractEditingModeWidgetType.call(this,id);this.widgetType='TrashEditingMode';var self=this;this.projects=assets.projects;this.parentsLin=assets.parents;this.assets=assets.assets;this.selectedid=null;this.activeProject=0;this.leftDiv=dfx.getId(this.id+'-left');this.middleDiv=dfx.getId(this.id+'-middle');this.rightDiv=dfx.getId(this.id+'-right');this.lockInfo=null;this.readOnly=false;this.resourceid='TrashScreenMode:0';this.blockToggleOff=false;this.parents={};this.buttonStatus=[];this.alternateParents=[];Locking.acquire(this.resourceid,function(lock){if(lock===true){var token=Locking.getToken(self.resourceid);self.lockInfo={resource:self.resourceid,token:token};}else{var errors=Locking.getError(lock);self.readOnly=true;self.lockInfo=errors;}
if(self.readOnly===true){self.includeWidgets(['AbstractSettingsScreen','AbstractEditingScreenMode'],function(){AbstractSettingsScreenWidgetType.prototype.displayScreenReadOnlyWarning.call(self,function(el){dfx.insertBefore(self.leftDiv,el);self.init();self.initSaveButton();},function(){self.disableSaveButton();},self.resourceid);});}else{self.includeWidgets(['AbstractEditingScreenMode'],function(){self.init();if(self.assets!==null){self.initSaveButton();}});}});}
TrashEditingModeWidgetType.prototype={forceEdit:function(callback)
{var self=this;dfx.removeClass(this.middleDiv,'readOnly');self.includeWidgets(['AbstractSettingsScreen'],function(){AbstractSettingsScreenWidgetType.prototype.forceEdit.call(this,function(){if(callback){callback.call(self);}},this.resourceid);});},screenModified:function(modified)
{var self=this;var modified=false;dfx.foreach(this.assets,function(aid){var row=dfx.getId(self.id+'-asset-'+aid);if(dfx.hasClass(row,'deleted')===true){modified=true;return false;}
return true;});this.setModified(modified);},initSaveButton:function()
{var self=this;if(this.readOnly===true){this.disableSaveButton();}else{this.setSaveButton(function(){self.saveTrash();},function(){self.displayDisabledDiv();self.reset(function(){self.removeDisabledDiv();});});}},init:function(callback)
{var self=this;var trashHeader=document.createElement('div');dfx.addClass(trashHeader,this.widgetType+'-trashHeader');this.leftDiv.appendChild(trashHeader);dfx.setHtml(trashHeader,'Trash');var iconWrap=document.createElement('div');var purgeWrap=document.createElement('div');purgeWrap.id=this.widgetType+'-purgeWrap-0';dfx.addClass(iconWrap,this.widgetType+'-iconWrap');dfx.addClass(purgeWrap,this.widgetType+'-purgeWrap');this.leftDiv.appendChild(iconWrap);dfx.setHtml(iconWrap,'&nbsp;');dfx.setHtml(purgeWrap,'&nbsp;');var infoWrap=document.createElement('div');this.rightDiv.appendChild(infoWrap);if(this.readOnly===true){dfx.addClass(this.middleDiv,'readOnly');}
if(this.assets===null){dfx.addClass(iconWrap,'empty');var noneDiv=document.createElement('div');dfx.addClass(noneDiv,self.widgetType+'-emptyTrash');dfx.setHtml(noneDiv,'The Trash is currently empty.');this.middleDiv.appendChild(noneDiv);if(callback){callback.call(self);}}else{this.middleDiv.appendChild(purgeWrap);var assetInfoBox=document.createElement('div');assetInfoBox.id=this.id+'-assetInfoBox';dfx.hideElement(assetInfoBox);dfx.addClass(assetInfoBox,self.widgetType+'-assetInfoBox');var c='<div class="'+self.widgetType+'-assetInfoBox-label asset-info">Asset Information:</div>';c+='<div id="'+this.id+'-assetInfoBox-name" class="'+self.widgetType+'-assetInfoBox-name">Asset Name</div>';c+='<div id="'+this.id+'-assetInfoBox-typeid" class="'+self.widgetType+'-assetInfoBox-typeid">Page 23</div>';c+='<div id="'+this.id+'-assetInfoBox-date" class="'+self.widgetType+'-assetInfoBox-date">Deleted: 12 Dec 2008</div>';c+='<div id="'+this.id+'-assetInfoBox-by" class="'+self.widgetType+'-assetInfoBox-by">By:</div>';c+='<div class="'+self.widgetType+'-assetInfoBox-ss"><img id="'+this.id+'-assetInfoBox-ss" src="" width="220" height="150" /></div>';c+='<div id="'+this.id+'-assetInfoBox-restoreWrap" class="'+self.widgetType+'-assetInfoBox-restoreWrap">&nbsp;</div>';dfx.setHtml(assetInfoBox,c);this.rightDiv.appendChild(assetInfoBox);dfx.addClass(iconWrap,'full');this.includeWidgets(['Button','ToggleButton'],function(){var restoreBtn=self.createWidget(self.id+'-newRedirect','Button','ButtonWidgetType');restoreBtn.setButtonColour('black');restoreBtn.setMinWidth(80);restoreBtn.setName('Restore');restoreBtn.addClickEvent(function(){self.recoverAsset();});restoreBtn.create(function(rel){var btnWrap=dfx.getClass(self.widgetType+'-assetInfoBox-restoreWrap',assetInfoBox)[0];btnWrap.appendChild(rel);var purgeToggle=self.createWidget(self.id+'-activeToggle','ToggleButton',false,'slider',false,'Yes','No');var purgeLabel=document.createElement('div');dfx.setHtml(purgeLabel,'Purge all assets in the trash?');dfx.addClass(purgeLabel,self.widgetType+'-purgeLabel');purgeWrap.appendChild(purgeLabel);dfx.swapClass(purgeWrap,'purgeToggle-project','purgeToggle-all');purgeToggle.create(function(tel){purgeWrap.appendChild(tel);purgeToggle.addToggleOnEvent(function(){for(var assetid in self.assets){if(self.assets.hasOwnProperty(assetid)===true){var row=dfx.getId(self.id+'-asset-'+assetid);dfx.removeClass(row,'selected');dfx.addClass(row,'deleted');var delBtn=dfx.getClass(self.widgetType+'-assetPurge',row)[0];dfx.addClass(delBtn,'recover');}}
WidgetStore.get(self.id+'-newRedirect').disable();self.screenModified();});purgeToggle.addToggleOffEvent(function(){if(self.blockToggleOff===false){for(var assetid in self.assets){if(self.assets.hasOwnProperty(assetid)===true){var row=dfx.getId(self.id+'-asset-'+assetid);dfx.removeClass(row,'deleted');dfx.removeClass(row,'selected');if(parseInt(assetid)===self.selectedid){dfx.addClass(row,'selected');}
var delBtn=dfx.getClass(self.widgetType+'-assetPurge',row)[0];dfx.removeClass(delBtn,'recover');}}
dfx.addClass(dfx.getId(self.id+'-asset-'+self.selectedid),'selected');WidgetStore.get(self.id+'-newRedirect').enable();self.screenModified();}});var firstAsset=null;for(var assetid in self.assets){if(self.assets.hasOwnProperty(assetid)===true){if(firstAsset===null){firstAsset=assetid;}
self.addRow(assetid);}}
self.selectedid=firstAsset;self.showLineage(firstAsset,dfx.getId(self.id+'-asset-'+firstAsset));self.loadAssetInfo(self.selectedid);dfx.addClass(dfx.getId(self.id+'-asset-'+self.selectedid),'selected');if(callback){callback.call(self);}});});});var tabs=WidgetStore.get(this.id+'-tabs');if(tabs){tabs.addOnSelectHandler(function(index,prevIndex){self.switchProjectTab(index);});}}
this.ready();},addRow:function(aid)
{var self=this;var assetName=self.assets[aid].name;var iconUrl=self.assets[aid].icon;var row=document.createElement('div');row.id=self.id+'-asset-'+aid;dfx.addClass(row,self.widgetType+'-assetRow');var content='<div class="'+self.widgetType+'-assetIcon"><img src="'+iconUrl+'" /></div>';content+='<div class="'+self.widgetType+'-assetName">'+assetName+'</div>';content+='<div class="'+self.widgetType+'-assetPurge">&nbsp;</div>';dfx.setHtml(row,content);self.middleDiv.appendChild(row);var lineage=document.createElement('div');dfx.addClass(lineage,this.widgetType+'-assetLineageWrap');dfx.attr(lineage,'id','assetLineageWrap-'+aid);dfx.insertAfter(row,lineage);dfx.hideElement(lineage);var restoreBtn=WidgetStore.get(self.id+'-newRedirect');var purgeToggle=WidgetStore.get(self.id+'-activeToggle');dfx.addEvent(row,'click',function(e){var target=dfx.getMouseEventTarget(e);var assetid=null;var row=null;var deleted=false;var loadAssetInfo=false;if(dfx.hasClass(target,self.widgetType+'-assetName')===true||dfx.hasClass(target,self.widgetType+'-assetIcon')===true){row=target.parentNode;}else if(dfx.hasClass(target,self.widgetType+'-assetRow')===true){row=target;}else if(dfx.hasClass(target,self.widgetType+'-assetPurge')===true){deleted=true;row=target.parentNode;}else{var targetParent=dfx.getParents(target)[0];if(dfx.isset(targetParent)===true){if(dfx.hasClass(targetParent,'ButtonWidgetType-black')===true){return;}else if(dfx.hasClass(targetParent,'ButtonWidgetType-black-middle')===true){return;}}}
var assetid=parseInt(row.id.substring((self.widgetType+'WidgetType-asset-').length));var prevRow=null;if(self.selectedid!==assetid){prevRow=dfx.getId(self.id+'-asset-'+self.selectedid);}
if(deleted===true){var tabToggle=WidgetStore.get(self.id+'-activeToggle-'+self.activeProject);var deletedDiv=dfx.getClass(self.widgetType+'-assetPurge',row)[0];if(self.selectedid===assetid){if(dfx.hasClass(row,'deleted')===true){dfx.removeClass(row,'deleted');dfx.removeClass(deletedDiv,'recover');self.enableRestoreButton(restoreBtn,assetid);dfx.addClass(row,'selected');if(purgeToggle.isOn()===true){self.blockToggleOff=true;purgeToggle.toggleSlideOff(null,true,false,false);self.blockToggleOff=false;if(dfx.isset(tabToggle)===true){tabToggle.setValue(false);}}}else{dfx.removeClass(row,'selected');dfx.addClass(deletedDiv,'recover');dfx.addClass(row,'deleted');restoreBtn.disable();if(self.isAllPurge()===true&&self.activeProject===0){purgeToggle.setValue(true);}}}else{if(dfx.hasClass(prevRow,'selected')===true){dfx.removeClass(prevRow,'selected');}
if(dfx.hasClass(row,'deleted')===true){dfx.removeClass(row,'deleted');dfx.removeClass(deletedDiv,'recover');self.enableRestoreButton(restoreBtn,assetid);dfx.addClass(row,'selected');if(purgeToggle.isOn()===true){self.blockToggleOff=true;purgeToggle.toggleSlideOff(null,true,false,false);self.blockToggleOff=false;if(dfx.isset(tabToggle)===true){tabToggle.setValue(false);}}}else{dfx.removeClass(row,'selected');dfx.addClass(row,'deleted');dfx.addClass(deletedDiv,'recover');restoreBtn.disable();if(self.isAllPurge()===true&&self.activeProject===0){purgeToggle.setValue(true);}}
loadAssetInfo=true;}}else{if(dfx.hasClass(prevRow,'selected')===true){dfx.removeClass(prevRow,'selected');}
if(dfx.hasClass(row,'deleted')===true){}else{dfx.addClass(row,'selected');self.enableRestoreButton(restoreBtn,assetid);}
loadAssetInfo=true;}
if(loadAssetInfo===true){self.selectedid=assetid;self.showLineage(assetid,dfx.getId(self.id+'-asset-'+assetid));self.loadAssetInfo(self.selectedid);}
self.screenModified();});},showLineage:function(assetid,row)
{var old=dfx.getClass(this.widgetType+'-assetLineageWrap');var restore=dfx.getClass(this.widgetType+'-assetInfoBox-restoreWrap')[0];dfx.hideElement(old);dfx.setStyle(restore,'display','none');if(dfx.isset(assetid)===true){var delBtn=dfx.getClass(this.widgetType+'-assetPurge',row)[0];dfx.insertAfter(delBtn,restore);dfx.setStyle(restore,'display','inline');dfx.setStyle(restore,'visibility','visible');if(dfx.hasClass(row,'deleted')===true){WidgetStore.get(this.id+'-newRedirect').disable();}else{WidgetStore.get(this.id+'-newRedirect').enable();}
var current=dfx.getId('assetLineageWrap-'+assetid);dfx.setHtml(current,'');dfx.showElement(current);}},createLineageHtml:function(lineage,container)
{var parts=lineage;var len=parts.length;var items=[];for(var i=0;i<len;i++){if(i===0){if(parts[i]==='(trash)'){items.push('<span class="lineagePart top">'+parts[i]+'</span>');}else{items.push('<span class="lineagePart project">'+parts[i]+'</span>');}}else if(parts[i]==='(top level)'){items.push('<span class="lineagePart top">'+parts[i]+'</span>');}else{items.push('<span class="lineagePart">'+parts[i]+'</span>');}}
var separator='  <span class="lineageSeparator"> </span>';var content=items.join(separator);var locDiv=document.createElement('div');dfx.addClass(locDiv,'lineageLookup');dfx.addClass(locDiv,'valid');dfx.setHtml(locDiv,content);container.appendChild(locDiv);},loadAssetInfo:function(assetid)
{var self=this;var assetInfoBox=dfx.getId(this.id+'-assetInfoBox');var name=dfx.getId(this.id+'-assetInfoBox-name');var typeid=dfx.getId(this.id+'-assetInfoBox-typeid');var date=dfx.getId(this.id+'-assetInfoBox-date');var by=dfx.getId(this.id+'-assetInfoBox-by');var ss=dfx.getId(this.id+'-assetInfoBox-ss');var container=dfx.getId('assetLineageWrap-'+assetid);this.buttonStatus[assetid]='restore';var restoreBtn=WidgetStore.get(self.id+'-newRedirect');if(dfx.hasClass(dfx.getId(this.id+'-asset-'+assetid),'deleted')===true){restoreBtn.disable();}else{this.enableRestoreButton(restoreBtn,assetid);}
dfx.setHtml(name,this.assets[assetid].name);dfx.setHtml(typeid,dfx.ucWords(this.assets[assetid].type)+' #'+assetid);dfx.setHtml(date,'Deleted: '+this.assets[assetid].date);dfx.setHtml(by,'By: '+this.assets[assetid].username);ss.src=Widget.CURRENT_URL+'?tb=1&a='+assetid;var pids=this.assets[assetid].parents;var pLen=pids.length;var noParent=true;for(var i=0;i<pLen;i++){var lineage=this.parentsLin[pids[i]];if(dfx.isset(lineage)===true){var lLen=lineage.length;for(var j=0;j<lLen;j++){this.createLineageHtml(lineage[j],container);noParent=false;}}}
if(noParent===true){this.showRestoreWarning(assetid);}
dfx.showElement(assetInfoBox);},showRestoreWarning:function(assetid)
{this.buttonStatus[assetid]='alternate';var self=this;var container=dfx.getId('assetLineageWrap-'+this.selectedid);var warning=document.createElement('div');var restoreBtn=WidgetStore.get(this.id+'-newRedirect');restoreBtn.disable();var msg='The assets previous location no longer exists. ';msg+='Select an alternative location to restore the asset to.';dfx.addClass(warning,this.id+'-restore-warning');dfx.setHtml(warning,'<div class="msg">'+msg+'</div>');container.appendChild(warning);this.includeWidgets(['AssetPicker'],function(){var pickerid=self.id+'-altParent-'+self.selectedid;var altParentPicker=self.createWidget(pickerid,'AssetPicker');altParentPicker.create(function(altP){var pickerFolder=self.assets[assetid].pickerFolder;var blackList=['Documents','Images','Movies','Designs','Roles','Users','Workflows'];if(pickerFolder==='Documents'||pickerFolder==='Images'||pickerFolder==='Movies'||pickerFolder==='Users'){altParentPicker.setProjectFolderWhiteList([pickerFolder]);altParentPicker.setHideSite(true);}
altParentPicker.setProjectFolderBlackList(blackList);warning.appendChild(altP);if(dfx.isset(self.alternateParents[self.selectedid])===true){altParentPicker.setSelectedAsset(self.alternateParents[self.selectedid]);}
altParentPicker.addSelectedCallback(function(altId){self.alternateParents[self.selectedid]=parseInt(altId,10);self.buttonStatus[assetid]='restore';self.enableRestoreButton(restoreBtn,assetid);});altParentPicker.addClearAssetidCallback(function(){restoreBtn.disable();});});});},enableRestoreButton:function(restoreBtn,assetid)
{if(this.buttonStatus[assetid]==='restore'){restoreBtn.enable();}else{restoreBtn.disable();}},recoverAsset:function()
{var self=this;var params={widget:'TrashEditingModeWidget',mode:'TrashEditingMode',op:'recoverAsset',assetid:parseInt(this.selectedid),alternateParent:null};if(dfx.isset(this.alternateParents[this.selectedid])===true){params.alternateParent=this.alternateParents[this.selectedid];}
this.displayDisabledDiv();AbstractEditingScreenModeWidgetType.prototype.processScreen.call(self,params,function(data){self.reset(function(){self.removeDisabledDiv();});},true);},isAllPurge:function()
{var allPurge=true;if(this.activeProject===0){for(var assetid in this.assets){if(this.assets.hasOwnProperty(assetid)===true){var row=dfx.getId(this.id+'-asset-'+assetid);if(dfx.hasClass(row,'deleted')===false){allPurge=false;break;}}}}else{var assets=this.projects[this.activeProject];var aLen=assets.length;for(var x=0;x<aLen;x++){var row=dfx.getId(this.id+'-asset-'+assets[x]);if(dfx.hasClass(row,'deleted')===false){allPurge=false;break;}}
var tabToggle=WidgetStore.get(this.id+'-activeToggle-'+this.activeProject);if(dfx.isset(tabToggle)===true){if(allPurge===true){tabToggle.toggleSlideOn(null,true,false,false);}else{tabToggle.toggleSlideOff(null,true,false,false);}}}
return allPurge;},saveTrash:function(callback)
{var self=this;var params={widget:'TrashEditingModeWidget',mode:'TrashEditingMode'};var purgeToggle=WidgetStore.get(this.id+'-activeToggle');var isPurge=purgeToggle.isOn();if(isPurge===true){params.op='purgeTrash';params.pid=this.activeProject;self.displayDisabledDiv();AbstractEditingScreenModeWidgetType.prototype.processScreen.call(self,params,function(data){self.reset(function(){self.removeDisabledDiv();});},true,200);}else{var assetsToPurge=[];for(var assetid in this.assets){if(this.assets.hasOwnProperty(assetid)===true){var row=dfx.getId(this.id+'-asset-'+assetid);if(dfx.hasClass(row,'deleted')===true){assetsToPurge.push(assetid);}}}
params.op='purgeAssets';params.assetsToPurge=dfx.jsonEncode(assetsToPurge);self.displayDisabledDiv();AbstractEditingScreenModeWidgetType.prototype.processScreen.call(self,params,function(data){self.reset(function(){self.removeDisabledDiv();});},true,200);}},switchProjectTab:function(index)
{var i=0;var projectid=0;for(var pid in this.projects){i++;if(i===index){projectid=pid;}}
var container=dfx.getId(this.id+'-tabWrap');var middle=dfx.getId(this.id+'-middle');var right=dfx.getId(this.id+'-right');var rows=dfx.getClass(this.widgetType+'-assetRow');var lins=dfx.getClass(this.widgetType+'-assetLineageWrap');var selected=0;dfx.hideElement(rows);dfx.hideElement(lins);dfx.hideElement(dfx.getClass(this.widgetType+'-purgeWrap'));if(projectid!==0){container=dfx.getId(this.id+'-tabWrap-'+projectid);var assets=this.projects[projectid];var aLen=assets.length;selected=this.selectedid;if(dfx.inArray(this.selectedid,assets)===false){selected=assets[0];}
for(var x=0;x<aLen;x++){dfx.showElement(dfx.getId(this.id+'-asset-'+assets[x]));}
this.activeProject=projectid;var tabToggle=WidgetStore.get(this.id+'-activeToggle-'+projectid);if(dfx.isset(tabToggle)===false){var tabs=WidgetStore.get(this.id+'-tabs').getTabs();var id=tabs[index].id.split(':');var pName=id[1];this._initTabToggle(projectid,pName);}else{this.isAllPurge();}}else{dfx.showElement(rows);selected=this.selectedid;this.activeProject=0;var purgeToggle=WidgetStore.get(this.id+'-activeToggle');if(this.isAllPurge()===true){purgeToggle.toggleSlideOn(null,true,false,false);}else{purgeToggle.toggleSlideOff(null,true,false,false);}}
container.appendChild(middle);container.appendChild(right);var toggleWrap=dfx.getId(this.widgetType+'-purgeWrap-'+this.activeProject);dfx.showElement(toggleWrap);if(selected!==0){dfx.trigger(dfx.getId(this.id+'-asset-'+selected),'click');}},_initTabToggle:function(pid,pName)
{var self=this;var purgeWrap=document.createElement('div');purgeWrap.id=this.widgetType+'-purgeWrap-'+pid;dfx.addClass(purgeWrap,this.widgetType+'-purgeWrap');dfx.setHtml(purgeWrap,'&nbsp;');dfx.insertAfter(dfx.getId(this.widgetType+'-purgeWrap-0'),purgeWrap);dfx.swapClass(purgeWrap,'purgeToggle-all','purgeToggle-project');var purgeToggle=self.createWidget(self.id+'-activeToggle-'+pid,'ToggleButton',false,'slider',false,'Yes','No');var purgeLabel=document.createElement('div');dfx.setHtml(purgeLabel,'Purge the trash for the <strong>'+pName+'</strong> project?');dfx.addClass(purgeLabel,self.widgetType+'-purgeLabel');purgeWrap.appendChild(purgeLabel);purgeToggle.create(function(tel){purgeWrap.appendChild(tel);purgeToggle.addToggleOnEvent(function(){var assets=self.projects[self.activeProject];if(assets){var aLen=assets.length;for(var x=0;x<aLen;x++){var row=dfx.getId(self.id+'-asset-'+assets[x]);dfx.removeClass(row,'selected');dfx.addClass(row,'deleted');var delBtn=dfx.getClass(self.widgetType+'-assetPurge',row)[0];dfx.addClass(delBtn,'recover');}}
WidgetStore.get(self.id+'-newRedirect').disable();self.screenModified();});purgeToggle.addToggleOffEvent(function(){var assets=self.projects[self.activeProject];if(assets){var aLen=assets.length;for(var x=0;x<aLen;x++){var row=dfx.getId(self.id+'-asset-'+assets[x]);dfx.removeClass(row,'deleted');dfx.removeClass(row,'selected');if(parseInt(assets[x])===self.selectedid){dfx.addClass(row,'selected');}
var delBtn=dfx.getClass(self.widgetType+'-assetPurge',row)[0];dfx.removeClass(delBtn,'recover');}}
dfx.addClass(dfx.getId(self.id+'-asset-'+self.selectedid),'selected');WidgetStore.get(self.id+'-newRedirect').enable();self.screenModified();});self.isAllPurge();});},reset:function(callback)
{var self=this;var params={widget:'TrashEditingModeWidget',mode:'TrashEditingMode',op:'getScreenData'};var header=dfx.getClass(this.widgetType+'-trashHeader')[0];var restore=dfx.getClass(this.widgetType+'-assetInfoBox-restoreWrap')[0];dfx.setStyle(restore,'display','none');dfx.insertAfter(header,restore);self.parents={};self.alternateParents=[];AbstractEditingScreenModeWidgetType.prototype.getScreenData.call(self,params,function(data){var data=dfx.jsonDecode(data);if(data.hasOwnProperty('projects')===true){if(data.projects!==null){if(self.activeProject!==0&&data.projects.hasOwnProperty(self.activeProject)===false){var modeSwitcher=WidgetStore.get('EditingModeSwitcher');modeSwitcher._switchMode('TrashEditingMode');return;}}else{var modeSwitcher=WidgetStore.get('EditingModeSwitcher');modeSwitcher._switchMode('TrashEditingMode');return;}}
var newAssets=data.assets;if(newAssets!==null){var purgeWrap=dfx.getClass(self.widgetType+'-purgeWrap',self.leftDiv)[0];var assetInfo=dfx.getId(self.id+'-assetInfoBox');dfx.showElement(purgeWrap);dfx.showElement(assetInfo);var icon=dfx.getClass(self.widgetType+'-iconWrap',self.leftDiv)[0];dfx.addClass(icon,'full');dfx.removeClass(icon,'empty');var rows=dfx.getClass(self.widgetType+'-assetRow',self.middleDiv);dfx.foreach(rows,function(i){dfx.removeClass(rows[i],'selected');dfx.removeClass(rows[i],'deleted');return true;});dfx.foreach(self.assets,function(aid){if(dfx.isset(newAssets[aid])===false){dfx.remove(dfx.getId(self.id+'-asset-'+aid));}
return true;});var firstAsset=null;dfx.foreach(newAssets,function(aid){if(firstAsset===null){firstAsset=aid;}
if(dfx.isset(self.assets[aid])===false){self.addRow(aid);}
return true;});WidgetStore.get(self.id+'-activeToggle').setValue(false);WidgetStore.get(self.id+'-newRedirect').enable();self.selectedid=firstAsset;self.showLineage(firstAsset,dfx.getId(self.id+'-asset-'+firstAsset));self.loadAssetInfo(firstAsset);self.projects=dfx.clone(data.projects);self.parentsLin=dfx.clone(data.parents);self.assets=dfx.clone(data.assets);}
if(self.assets!==null){self.initSaveButton();}
if(callback){callback.call(self);}});},switchedOff:function()
{var icon=WidgetStore.get('TrashEditingToolbarIcon');if(icon){icon.toggleState('inactive');}}};dfx.inherits('TrashEditingMode','AbstractEditingMode');function VersioningEditingModeWidgetType(id,markers,baseYear,baseTime,versionCount,assetid,isFileAsset,assetType,versionOffset)
{AbstractEditingModeWidgetType.call(this,id);this.widgetType='VersioningEditingMode';var self=this;this.settingsPane=WidgetStore.get((this.id+'-sp'));this.markers=markers||[];this.baseTime=baseTime;this.baseYear=baseYear;this.versionCount=parseInt(versionCount);this.editContents=dfx.getId('EditingScreenModes');this.versionImages=[];this.container=null;this.currentVersion=null;this.timeLine=null;this.navigation=null;this.navButtons={};this.elemHeight=58;this.versionOffset=versionOffset||0;this.dynamicDiv=null;this.versionContents=[];this.assetid=assetid;this.isFileAsset=isFileAsset;this.assetType=assetType;this.msgOverlay=null;this.msgDialog=null;dfx.addClass(document.body,'VersioningEditingModeWidgetType-body');this.init();}
VersioningEditingModeWidgetType.prototype={init:function()
{this.container=document.createElement('div');dfx.getId('EditingScreenModes').appendChild(this.container);if(this.versionCount===0){this.removeDisabledDiv();return;}
var year=null;var month=null;if(dfx.isset(this.markers[(this.versionCount-1)])===true){var date=new Date((this.markers[(this.versionCount-1)].date*1000));var year=date.getFullYear();var month=date.getMonth();}
var self=this;this.includeWidgets(['TimeLine','DynamicDiv'],function(){self.dynamicDiv=self.createWidget((self.id+'-dynamicDiv'),'DynamicDiv');self.timeLine=self.createWidget((self.id+'-timeLine'),'TimeLine',self.markers,self.baseYear,self.baseTime,year,month,'point');self.timeLine.showMonth(year,month);self.timeLine.addNoMarkerBeforeTimeEvent(function(){self.showVersion(-1);});self.timeLine.addMarkerSelectedEvent(function(markerIndex,timestamp){self.showVersion((parseInt(markerIndex)+1),false);});var elem=self.timeLine.getElement();dfx.addClass(elem,(self.getClass()+'-timeLine'));dfx.getId((self.id+'-sp')).appendChild(elem);self.settingsPane.setHeight(self.elemHeight,true);self.createVersionNav();self.showVersion(self.versionCount,true);self.ready();});},createImageHolder:function()
{var imgHolder=dfx.getId((this.id+'-versionImage'));dfx.addClass(imgHolder,(this.getClass()+'-imgHolder'));var x=document.createElement('div');dfx.addClass(x,(this.getClass()+'-imgHolder-x'));imgHolder.appendChild(x);var holder=document.createElement('div');dfx.addClass(holder,(this.getClass()+'-imgHolder-holder'));x.appendChild(holder);this.container=holder;dfx.setStyle(this.editContents,'background-color','#3F3F3F');},createVersionNav:function()
{var self=this;var c=this.getClass()+'-version-nav';var wrapper=document.createElement('div');wrapper.id=(this.id+'-versionNav');dfx.addClass(wrapper,c);var left=document.createElement('div');dfx.addClass(left,c+'-left');var mid=document.createElement('div');dfx.addClass(mid,c+'-mid');var right=document.createElement('div');dfx.addClass(right,c+'-right');wrapper.appendChild(left);wrapper.appendChild(mid);wrapper.appendChild(right);var midWrap=document.createElement('div');var firstWrap=document.createElement('div');var midNavWrap=document.createElement('div');var todayWrap=document.createElement('div');dfx.addClass(midWrap,c+'-mid-wrapper');dfx.addClass(firstWrap,c+'-mid-wrapper-first');dfx.addClass(midNavWrap,c+'-mid-wrapper-midNav');dfx.addClass(todayWrap,c+'-mid-wrapper-today');midWrap.appendChild(firstWrap);midWrap.appendChild(midNavWrap);midWrap.appendChild(todayWrap);var firstBtnWdget=self.createWidget(this.id+'-versionNav-first','Button','ButtonWidgetType-black');firstBtnWdget.setName('First Version');firstBtnWdget.addClickEvent(function(){self.showVersion(1,true);},true);var todayBtnWdget=self.createWidget(this.id+'-versionNav-today','Button','ButtonWidgetType-black');todayBtnWdget.setName('Latest Version');todayBtnWdget.addClickEvent(function(){self.showVersion(self.versionCount,true);},true);firstBtnWdget.create(function(fel){todayBtnWdget.create(function(tel){firstWrap.appendChild(fel);todayWrap.appendChild(tel);var prev=document.createElement('div');dfx.addClass(prev,c+'-mid-wrapper-prev');var prevLeft=document.createElement('div');var prevMid=document.createElement('div');var prevRight=document.createElement('div');dfx.addClass(prevLeft,c+'-mid-wrapper-prev-left');dfx.addClass(prevMid,c+'-mid-wrapper-prev-mid');dfx.addClass(prevRight,c+'-mid-wrapper-prev-right');var prevMidInner=document.createElement('div');dfx.addClass(prevMidInner,c+'-mid-wrapper-prev-mid-inner')
dfx.setHtml(prevMidInner,'Prev');prevMid.appendChild(prevMidInner);prev.appendChild(prevLeft);prev.appendChild(prevMid);prev.appendChild(prevRight);dfx.addEvent(prevMid,'click',function(e){if(self.currentVersion>1){var ver=(self.currentVersion-1);self.showVersion(ver,true);}});var datetime=document.createElement('div');dfx.addClass(datetime,c+'-mid-wrapper-datetime');datetime.id=(wrapper.id+'-content');dfx.attr(datetime,'title','Date and time of the version you are currently viewing');var next=document.createElement('div');dfx.addClass(next,c+'-mid-wrapper-next');var nextLeft=document.createElement('div');var nextMid=document.createElement('div');var nextRight=document.createElement('div');dfx.addClass(nextLeft,c+'-mid-wrapper-next-left');dfx.addClass(nextMid,c+'-mid-wrapper-next-mid');dfx.addClass(nextRight,c+'-mid-wrapper-next-right');var nextMidInner=document.createElement('div');dfx.addClass(nextMidInner,c+'-mid-wrapper-next-mid-inner')
dfx.setHtml(nextMidInner,'Next');nextMid.appendChild(nextMidInner);next.appendChild(nextLeft);next.appendChild(nextMid);next.appendChild(nextRight);dfx.addEvent(nextMid,'click',function(e){self.showVersion((self.currentVersion+1),true);});self.navButtons.prev=prevMidInner;self.navButtons.next=nextMidInner;self.navButtons.oldest=firstBtnWdget;self.navButtons.newest=todayBtnWdget;midNavWrap.appendChild(prev);midNavWrap.appendChild(datetime);midNavWrap.appendChild(next);mid.appendChild(midWrap);self.navigation=wrapper;wrapper.id=(this.id+'-versionNav');self.editContents.appendChild(wrapper);});});},updateNavButtons:function()
{if(this.versionCount===1){dfx.addClass(this.navButtons.prev,'dark');dfx.addClass(this.navButtons.next,'dark');this.navButtons.oldest.disable();this.navButtons.newest.disable();}else if(this.currentVersion===1){dfx.addClass(this.navButtons.prev,'dark');dfx.removeClass(this.navButtons.next,'dark');this.navButtons.oldest.disable();this.navButtons.newest.enable();}else if(this.currentVersion===this.versionCount){dfx.removeClass(this.navButtons.prev,'dark');dfx.addClass(this.navButtons.next,'dark');this.navButtons.oldest.enable();this.navButtons.newest.disable();}else{dfx.removeClass(this.navButtons.prev,'dark');dfx.removeClass(this.navButtons.next,'dark');this.navButtons.oldest.enable();this.navButtons.newest.enable();}},loadVersionContent:function(version,callback)
{if(dfx.isset(this.versionContents[version])===true){dfx.setStyle(this.versionContents[this.currentVersion],'display','none');dfx.setStyle(this.versionContents[version],'display','block');callback.call(this,this.versionContents[version]);}else{var content=document.createElement('div');this.versionContents[version]=content;var prevVersion=this.currentVersion;dfx.setStyle(this.versionContents[prevVersion],'visibility','hidden');this.container.appendChild(content);var params={widget:'VersioningEditingModeWidget',action:'getVersionContent',version:version,versionOffset:this.versionOffset,assetid:this.assetid,isFileAsset:this.isFileAsset,wid:this.id,assetType:this.assetType};this.dynamicDiv.setElement(content);var self=this;this.dynamicDiv.changeContent(params,function(){dfx.setStyle(self.versionContents[prevVersion],'display','none');dfx.setStyle(self.versionContents[prevVersion],'visibility','visible');callback.call(this,content);});}},showVersion:function(version,moveSlider,force)
{if(force!==true&&version===this.currentVersion){return;}
var overlay=null;if(dfx.isset(this.markers[(version-1)])===true){var time=dfx.date('l F dS Y h:ia',(this.markers[(version-1)].date*1000));this.setVersionNavContent(time);var self=this;this.loadVersionContent(version,function(content){});this.currentVersion=version;this.updateNavButtons();if(moveSlider===true){this.timeLine.selectMarker((version-1),true);}}else if(version<1){if(this.versionCount===0){this.showMessageOverlay('no_versions','Asset does not have any versions','notice');}else{var slider=dfx.getId('VersioningEditingModeWidgetType-timeLine-slider');if(this.msgDialog){this.msgDialog.show(slider);return;}
var self=this;self.includeWidget('Intervention',function(){var msg='Asset did not exist at this point in time. Click OK to view the first version';var iw=self.createWidget(null,'Intervention',null,function(){if(self.versionCount>0){self.showVersion(1,true,true);}});self.msgDialog=iw;iw.cancelText=null;iw.confirmText='OK';iw.create(function(){iw.setMessage(msg);iw.setSize('255px','61px');iw.show(slider);});});}}},showMessageOverlay:function(id,msg,type)
{MessageDialog.prepare(id,msg,type,function(){MessageDialog.show();});},closeMessageOverlay:function()
{dfx.setStyle(this.msgOverlay,'display','none');dfx.setStyle(this.navigation,'display','block');},setVersionNavContent:function(content)
{dfx.setHtml(dfx.getId((this.id+'-versionNav-content')),content);},switchedOff:function()
{if(this.settingsPane){this.settingsPane.remove();}
dfx.removeClass(document.body,'VersioningEditingModeWidgetType-body');}};dfx.inherits('VersioningEditingMode','AbstractEditingMode');function AssetTypeAdminScreenWidgetType(id,screenid,system,title,parent,assetid,readOnly)
{AbstractSettingsScreenWidgetType.call(this,id,screenid,system,title,parent,assetid,readOnly);this.widgetType='AssetTypeAdminScreen';}
AssetTypeAdminScreenWidgetType.prototype={init:function(data)
{var self=this;},getAutoSaveContents:function()
{var saveData={};return saveData;},loadAutoSaveContents:function(content,callBack)
{if(callback){callback.call(this);}},switchOnScreen:function(){},switchOffScreen:function()
{this.removeToolbarButton('save_assetType');}};dfx.inherits('AssetTypeAdminScreen','AbstractSettingsScreen');function AuthenticationSystemConfigScreenWidgetType(id,screenid,system,title,parent,assetid,readOnly)
{AbstractSettingsScreenWidgetType.call(this,id,screenid,system,title,parent,assetid,readOnly);this.widgetType='AuthenticationSystemConfigScreen';this.id=id;this.parent=parent;this.screenid=screenid;this.system=system;this.title=title;this.parent=parent;this.hashing=true;this.auths=[];}
AuthenticationSystemConfigScreenWidgetType.prototype={screenModified:function()
{var self=this;var saveOn=false;var hashingToggle=WidgetStore.get(this.id+'-encryptButton');if(this.hashing!==hashingToggle.getValue()){saveOn=true;}
var authList=WidgetStore.get(this.id+'-authList');var currList=authList.getListItems();if(saveOn===false){if(this.auths.length!==currList.length){saveOn=true;}else{var len=this.auths.length;for(var i=0;i<len;i++){if(this.auths[i].type==='_default_'){if(this.auths[i].type!==currList[i]){saveOn=true;break;}}else{if(this.auths[i].type+'-'+this.auths[i].id!==currList[i]){saveOn=true;break;}}}}}
if(saveOn===false){dfx.foreach(currList,function(idx){if(authList.itemIsRemoved(currList[idx])===true){saveOn=true;return false;}
return true;});}
this.setModified(saveOn);return saveOn;},init:function(data)
{var self=this;this.hashing=data.hashing;this.auths=data.auths;this.authNames=data.authNames;var passSecDiv=dfx.getId(this.widgetType+'-passwordSecurity-items');var authSecDiv=dfx.getId(this.widgetType+'-authSystems-items');var childLen=passSecDiv.childNodes.length;for(var i=(childLen-1);i>=0;i--){dfx.remove(passSecDiv.childNodes[i]);}
childLen=authSecDiv.childNodes.length;for(var i=(childLen-1);i>=0;i--){dfx.remove(authSecDiv.childNodes[i]);}
this.create(function(){self.setReadOnly(this.readOnly);if(self.readOnly===true){self.displayScreenReadOnlyWarning(function(el){dfx.insertBefore(dfx.getId('AuthenticationSystemConfigScreen-passwordSecurity'),el);},function(){});}
self.ready();});},create:function(callback)
{var self=this;var passSecDiv=dfx.getId(this.widgetType+'-passwordSecurity-items');var authSecDiv=dfx.getId(this.widgetType+'-authSystems-items');var desc=document.createElement('div');var descC='Note: It is highly recommended that Password Encryption be active at all times. ';descC+='There are, however, some circumstances where it must be disabled, ';descC+='such as when SSL is used in conjunction with an LDAP authentication method.';dfx.setHtml(desc,descC);dfx.addClass(desc,this.widgetType+'-passwordDesc');passSecDiv.appendChild(desc);this.includeWidgets(['Intervention','PlainList','Button','ToggleButton'],function(){var toggWidget=self.createWidget(self.id+'-encryptButton','ToggleButton',false,'slider',self.hashing,'Yes','No');toggWidget.create(function(el){var hashingClass='granted';var hashingColor='Green';var hashingLeftText='Password Encryption Active';if(self.hashing===false){hashingClass='denied';hashingColor='Red';hashingLeftText='Password Encryption Inactive';}
var hashingSwitchDiv=document.createElement('div');var hashingSwitchContent='<div class="AuthenticationSystemConfigScreen-publicSection">';hashingSwitchContent+='    <div class="AuthenticationSystemConfigScreen-publicPermissionLeftCorner '+hashingClass+'"></div>';hashingSwitchContent+='    <div class="AuthenticationSystemConfigScreen-PublicState-'+hashingColor+'-Left">';hashingSwitchContent+='        <div class="AuthenticationSystemConfigScreen-publicPermissionText">';hashingSwitchContent+='            <span class="AuthenticationSystemConfigScreen-publicCurrentPermission">'+hashingLeftText+'</span>';hashingSwitchContent+='        </div>';hashingSwitchContent+='    </div>';hashingSwitchContent+='    <div class="AuthenticationSystemConfigScreen-publicPermissionSwitch">';hashingSwitchContent+='        <div class="AuthenticationSystemConfigScreen-publicPermissionSelect">';hashingSwitchContent+='            <div class="AuthenticationSystemConfigScreen-publicGrantedPublicAccessText">';hashingSwitchContent+='                <label class="AuthenticationSystemConfigScreen-publicPermissionSwitchLabel">Encrypt passwords</label>';hashingSwitchContent+='            </div>';hashingSwitchContent+='            <div class="AuthenticationSystemConfigScreen-publicPermissionSwitchButtonWrapper">';hashingSwitchContent+='            </div>';hashingSwitchContent+='        </div>';hashingSwitchContent+='    </div>';hashingSwitchContent+='    <div class="AuthenticationSystemConfigScreen-publicPermissionRightCorner override"></div>';hashingSwitchContent+='</div>';dfx.setHtml(hashingSwitchDiv,hashingSwitchContent);var btnWrapper=dfx.getClass('AuthenticationSystemConfigScreen-publicPermissionSwitchButtonWrapper',hashingSwitchDiv)[0];var leftCornerDiv=dfx.getClass('AuthenticationSystemConfigScreen-publicPermissionLeftCorner',hashingSwitchDiv)[0];var stateDiv=dfx.getClass('AuthenticationSystemConfigScreen-PublicState-'+hashingColor+'-Left',hashingSwitchDiv)[0];var hashingTexDiv=dfx.getClass('AuthenticationSystemConfigScreen-publicCurrentPermission',hashingSwitchDiv)[0];btnWrapper.appendChild(el);passSecDiv.appendChild(hashingSwitchDiv);toggWidget.addToggleOnEvent(function(){dfx.removeClass(leftCornerDiv,'denied');dfx.addClass(leftCornerDiv,'granted');dfx.removeClass(stateDiv,'AuthenticationSystemConfigScreen-PublicState-Red-Left');dfx.addClass(stateDiv,'AuthenticationSystemConfigScreen-PublicState-Green-Left');dfx.setHtml(hashingTexDiv,'Password Encryption Active');self.screenModified();});toggWidget.addToggleOffEvent(function(){dfx.removeClass(leftCornerDiv,'granted');dfx.addClass(leftCornerDiv,'denied');dfx.removeClass(stateDiv,'AuthenticationSystemConfigScreen-PublicState-Green-Left');dfx.addClass(stateDiv,'AuthenticationSystemConfigScreen-PublicState-Red-Left');dfx.setHtml(hashingTexDiv,'Password Encryption Inactive');self.screenModified();});var authDescWrap=document.createElement('div');authDescWrapC='<div class="AuthenticationSystemConfigScreen-desc-content">Systems are evaluated from top to bottom and can be re-ordered as required</div>';authDescWrapC+='<div class="AuthenticationSystemConfigScreen-addAuthBtn-wrap"></div>';dfx.addClass(authDescWrap,'AuthenticationSystemConfigScreen-descWrap');dfx.setHtml(authDescWrap,authDescWrapC);var authAddBtnWrap=dfx.getClass('AuthenticationSystemConfigScreen-addAuthBtn-wrap',authDescWrap)[0];var addAuthBtn=self.createWidget(self.id+'-authAddBtn','Button','ButtonWidgetType');addAuthBtn.create(function(btnEl){authAddBtnWrap.appendChild(btnEl);addAuthBtn.setName('Add Authentication System');var items=[];dfx.foreach(self.auths,function(idx){var authItemId=null;var authItemLeftDiv=document.createElement('div');var authRemoveBtn=true;dfx.addClass(authItemLeftDiv,self.widgetType+'-'+self.auths[idx].type);if(self.auths[idx].type==='_default_'){authItemId='_default_';authRemoveBtn=false;dfx.setHtml(authItemLeftDiv,'<strong>Squiz CMS</strong> (system default)');}else{var authname=self.authNames[self.auths[idx].id];if(self.auths[idx].inTrash===true){authname+=' <strong><i>(authentication in Trash)</i></strong>';}
if(self.auths[idx].purged===true){authname+=' <strong><i>(authentication deleted)</i></strong>';}
authItemId=self.auths[idx].type+'-'+self.auths[idx].id;dfx.setHtml(authItemLeftDiv,authname);}
items.push({id:authItemId,left:authItemLeftDiv,right:null,showRemoveButton:authRemoveBtn});return true;});var list=self.createWidget(self.id+'-authList','PlainList','761',true,true,true,items,self.getClass()+'-listItem');list.create(function(listEl){authSecDiv.appendChild(authDescWrap);authSecDiv.appendChild(listEl);dfxjQuery(dfx.getClass('PlainListWidgetType',listEl)[0]).sortable({axis:'y',handle:'span.PlainListWidgetType-dragIcon',stop:function(event,ui){self.screenModified();},tolerance:'pointer'});list.addItemRemovedCallback(function(){self.screenModified();});var newAuthPickerid=self.id+'-newAuthPicker';var newAuthPicker=WidgetStore.get('EditingAssetPicker');newAuthPicker.setScreen(newAuthPickerid);newAuthPicker.setUniqueSelect(true);newAuthPicker.resetProjectFolderList(newAuthPickerid);newAuthPicker.setForceShowRoots(newAuthPickerid,true);newAuthPicker.setHideSite(newAuthPickerid,true);var folders=['Users'];var fLen=folders.length;for(var i=0;i<fLen;i++){newAuthPicker.addProjectFolderWhiteList(newAuthPickerid,folders[i]);}
newAuthPicker.addAssetsSelectedAction(function(assets){var selectedid=(new String(assets[0])).valueOf();var params={attributes:['name'],type:true,typeIcon:true,linking:[],urls:false};AssetManager.getAsset(selectedid,function(ast){if(ast.type!=='ldapConnection'){var ipopup=self.createWidget('AuthIntervention','Intervention',function(){},function(){});ipopup.confirmText='Ok';ipopup.cancelText=null;ipopup.create(function(){ipopup.setSize('200px','80px');ipopup.setMessage('The selected asset can not be added to the authentication list.');ipopup.show(dfx.getId(addAuthBtn.id));});}else{var authItemId=null;var newItemLeftDiv=document.createElement('div');var authRemoveBtn=true;dfx.addClass(newItemLeftDiv,self.widgetType+'-'+ast.type);dfx.setHtml(newItemLeftDiv,ast.name);list.addItem({id:ast.type+'-'+ast.id,left:newItemLeftDiv,right:null,showRemoveButton:true});self.screenModified();}},false,params);},true,newAuthPickerid);addAuthBtn.addClickEvent(function(){addAuthBtn.disable();self.displayDisabledDiv(true);var pickerid=self.id+'-newAuthPicker';newAuthPicker.init(pickerid,function(){newAuthPicker.dialog.open();});},true);newAuthPicker.addCloseAction(function(){addAuthBtn.enable();});if(callback){callback.call(self);}
return;});});});});},forceEdit:function()
{var self=this;AbstractSettingsScreenWidgetType.prototype.forceEdit.call(this,function(){self.setModified(false);self.reload();});},reload:function()
{var title=dfx.getId('SystemConfigScreenModeWidgetType-tab_pane-tab-authentication-title');dfx.trigger(title,'click');},switchOnScreen:function()
{var self=this;this.setSaveButton(function(){self._processEdit(function(){self.reload();});},function(){self.reload();});},switchOffScreen:function(){},_processEdit:function(callback)
{var self=this;self.displayDisabledDiv(true);var hashingToggle=WidgetStore.get(this.id+'-encryptButton');var authList=WidgetStore.get(this.id+'-authList');self.parent.processScreen({screen:self.id+'Widget',hashing:hashingToggle.getValue(),auths:dfx.jsonEncode(authList.getListItems()),deletedAuths:dfx.jsonEncode(authList.getListDisabledItems()),op:'updateAuth'},function(){if(dfx.isFn(callback)===true){callback.call(self);}});}};dfx.inherits('AuthenticationSystemConfigScreen','AbstractSettingsScreen');function BackupSystemConfigScreenWidgetType(id,screenid,system,title,parent)
{AbstractSettingsScreenWidgetType.call(this,id);this.widgetType='BackupSystemConfigScreen';this.screenid=screenid;this.system=system;this.title=title;this.parent=parent;}
BackupSystemConfigScreenWidgetType.prototype={init:function(data)
{this.setModified(false);var restores=dfx.getClass('Restore');var len=restores.length;for(var i=0;i<len;i++){this.addRestoreButtonEvent(restores[i].id);this.children.push(restores[i].id);}
var downloads=dfx.getClass('Download');var dlen=downloads.length;for(var j=0;j<dlen;j++){this.addDownloadButtonEvent(downloads[j].id);this.children.push(downloads[j].id);}
if(this.readOnly===true){this.displayScreenReadOnlyWarning(function(el){dfx.insertBefore(dfx.getId('BackupSystemConfigScreen-backupSectionsectionHeader').parentNode,el);},function(){});}
this.getOffsiteInfo();if(data.hasOwnProperty('notify')===true){var params={screen:this.id+'Widget',op:'notifyRestore'};this.parent.processScreen(params,function(){},false,200);}
this.ready();},addRestoreButtonEvent:function(id)
{var self=this;var button=WidgetStore.get(id);var elem=dfx.getId(id);var date=elem.getAttribute('date');var time=elem.getAttribute('time');button.setReadOnly(this.readOnly);button.addClickEvent(function(){self.showPop(id,date,time);});},addDownloadButtonEvent:function(id)
{var self=this;var button=WidgetStore.get(id);var params={name:id,screen:this.id+'Widget',op:'downloadBackup'};button.setReadOnly(this.readOnly);button.addClickEvent(function(){var url=self.url+'?widget='+self.widgetType+'WidgetType';url+='&action=processScreen&op=downloadBackup';url+='&name='+id;window.location.href=url;});},showPop:function(name,date,time)
{var saveButton=WidgetStore.get('EditingAutoSave');saveButton.stop();var self=this;var wrapper=document.createElement('div');var top=document.createElement('div');var middle=document.createElement('div');var bottom=document.createElement('div');this.prefix=this.id+'-pop';wrapper.id=this.prefix;bottom.id=this.prefix+'-bottom';dfx.addClass(wrapper,this.prefix);dfx.addClass(top,this.prefix+'-top');dfx.addClass(middle,this.prefix+'-middle');dfx.addClass(bottom,this.prefix+'-bottom');var headerText=document.createElement('div');headerText.id=this.prefix+'-top-headerText';dfx.setHtml(headerText,'Restore Backup');dfx.addClass(headerText,this.prefix+'-top-headerText');top.appendChild(headerText);var headerSubText=document.createElement('div');dfx.setHtml(headerSubText,'('+date+' - '+time+')');dfx.addClass(headerSubText,this.prefix+'-top-headerSubText');top.appendChild(headerSubText);var middleText=document.createElement('div');middleText.id=this.prefix+'-middle-text';var desc='You have chosen to restore a system backup from<br />';desc+='<strong>'+date+'</strong>. If you continue with';desc+=' this action, all your content and settings will be';desc+=' restored to the way they were at this particular';desc+=' point in time. However, all existing backups';desc+=' will still be available.';dfx.setHtml(middleText,desc);dfx.addClass(middleText,this.prefix+'-middle-text');middle.appendChild(middleText);var middleLoader=document.createElement('div');middleLoader.id=this.prefix+'-middle-loader';dfx.setHtml(middleLoader,'&nbsp;');dfx.addClass(middleLoader,this.prefix+'-middle-loader');middle.appendChild(middleLoader);wrapper.appendChild(top);wrapper.appendChild(middle);wrapper.appendChild(bottom);this.includeWidgets('Button',function(){var cancel=self.createWidget(self.prefix+'-cancel-button','Button','ButtonWidgetType-black',false,'Cancel');var ok=self.createWidget(self.prefix+'-ok-button','Button','ButtonWidgetType-black',false,'Restore Backup');cancel.create(function(cancelBtn){ok.create(function(okBtn){bottom.appendChild(cancelBtn);bottom.appendChild(okBtn);cancel.addClickEvent(function(){var middleText=dfx.getId(self.prefix+'-middle-text');var middleLoader=dfx.getId(self.prefix+'-middle-loader');var bottom=dfx.getId(self.prefix+'-bottom');dfx.hideElement(middleText);dfx.showElement(middleLoader);dfx.setHtml(bottom,'<span class="bottom-text">Cancelling ...</span>');var url=document.location;url+='/?initialMode=SystemConfigScreenMode&initialScreen=BackupSystemConfigScreenWidget';window.location=url;});ok.addClickEvent(function(){self.showStep2(name,date,time);});dfx.setStyle(wrapper,'visibility','hidden');dfx.setHtml(document.body,'');dfx.setStyle(document.body,'backgroundColor','#404040');document.body.appendChild(wrapper);var posStyles=dfx.getElemPositionStyles(wrapper);for(var property in posStyles){dfx.setStyle(wrapper,property,posStyles[property]);}
dfx.setStyle(wrapper,'visibility','visible');});});});},showStep2:function(name,date,time)
{var headerText=dfx.getId(this.prefix+'-top-headerText');var middleText=dfx.getId(this.prefix+'-middle-text');var middleLoader=dfx.getId(this.prefix+'-middle-loader');var bottom=dfx.getId(this.prefix+'-bottom');dfx.setHtml(headerText,'Restoration in Progress');dfx.hideElement(middleText);dfx.showElement(middleLoader);dfx.setHtml(bottom,'<span class="bottom-text">This procedure may take a few minutes</span>');this.restoreBackup(name);},restoreBackup:function(name)
{var params={name:name,screen:this.id+'Widget',op:'restoreBackup'};var self=this;this.parent.processScreen(params,function(){});this.checkProgress(name);},getOffsiteInfo:function()
{var params={screen:this.id+'Widget',op:'getOffsiteInfo'};var self=this;this.parent.processScreen(params,function(backups){var backups=dfx.jsonDecode(backups);var bLen=backups.length;for(var i=0;i<bLen;i++){self.markOffsiteBackup(backups[i]);}},false,200);},markOffsiteBackup:function(name)
{var restoreButton=dfx.getId('BackupSystemConfigScreen-restore-'+name);if(restoreButton){var tr=dfx.getParents(restoreButton)[1];if(tr){dfx.addClass(tr,'offsite');}}},checkProgress:function(name)
{var params={name:name,screen:this.id+'Widget',op:'checkProgress'};var self=this;var checkAgain=true;var intervalInSec=10;var bottom=dfx.getId(this.prefix+'-bottom');var middleLoader=dfx.getId(this.prefix+'-middle-loader');var headerText=dfx.getId(this.prefix+'-top-headerText');this.interval=setInterval(function(){if(checkAgain===true){checkAgain=false;var timeoutInSec=8;self.parent.processScreen(params,function(data){if(data.search('http')===0){clearInterval(self.interval);dfx.removeClass(middleLoader,self.prefix+'-middle-loader');dfx.addClass(middleLoader,self.prefix+'-middle-complete');dfx.setHtml(headerText,'Restore Complete');dfx.setHtml(bottom,'<span class="bottom-text">Returning you to the Backup screen...</span>');setTimeout(function(){location.href=data;},1000);}else if(data.search('FAIL:')===0){clearInterval(self.interval);dfx.removeClass(middleLoader,self.prefix+'-middle-loader');dfx.addClass(middleLoader,self.prefix+'-middle-fail');dfx.setHtml(headerText,'Restore Failed');dfx.setHtml(bottom,'<span class="bottom-text">'+dfx.trim(data.substr(5))+'</span>');}else{checkAgain=true;if(data!==''){dfx.setHtml(bottom,'<span class="bottom-text">'+data+'...</span>');}}},null,timeoutInSec,function(xhr,status){checkAgain=true;return false;});}},(intervalInSec*1000));},switchOnScreen:function(){},switchOffScreen:function(){}};dfx.inherits('BackupSystemConfigScreen','AbstractSettingsScreen');function CacheAdminScreenWidgetType(id,screenid,system,title,parent,assetid,readOnly)
{AbstractSettingsScreenWidgetType.call(this,id,screenid,system,title,parent,assetid,readOnly);this.widgetType='CacheAdminScreen';this.paths=[];this.mode='';this.settings=[];this.timeLine=null;this.config={};this.hasChanges={};this.expiryValue=0;this.expiryUnit=0;this.assetPicker=WidgetStore.get('EditingAssetPicker');this.assetPicker.setScreen('cache');this.assetPicker.addProjectFolderWhiteList('cache','Documents');this.assetPicker.addProjectFolderWhiteList('cache','Images');this.assetPicker.addProjectFolderWhiteList('cache','Movies');this.assetPicker.setUniqueSelect(false);}
CacheAdminScreenWidgetType.prototype={init:function(data)
{var self=this;this.config=data.config;this.setupClearCacheAction();this.setupTimeLine(this.config.firstDate);if(this.config.collect&&!this.config.status){this.toggleWarning('collect',false);this.toggleWarning('nodata',false);this.toggleWarning('cacheMustBeOn',true);}else{this.toggleWarning('collect',!this.config.collect);this.toggleWarning('nodata',this.config.collect);}
if(this.config.status===false){dfx.hideElement(dfx.getId('CacheAdminScreen-infobox_section_clear'));}
var statusToggle=WidgetStore.get('cacheConfig-status');var expiryValue=WidgetStore.get('cacheConfig-expiryValue');var expiryUnit=WidgetStore.get('cacheConfig-expiryUnit');var collectToggle=WidgetStore.get('cacheConfig-collect');this.expiryValue=expiryValue.getValue();this.expiryUnit=expiryUnit.getValue();statusToggle.addToggleEvent(function(t){if(t!==self.config.status){self.hasChanges.status=true;}else{delete self.hasChanges.status;}
self._checkChanges();if(t===true){dfx.showElement(dfx.getId('CacheAdminScreen-infobox_section_clear'));}else{dfx.hideElement(dfx.getId('CacheAdminScreen-infobox_section_clear'));}
if(collectToggle.isOn()===true&&t===false){self.toggleWarning('collect',false);self.toggleWarning('nodata',false);self.toggleWarning('cacheMustBeOn',true);self.updateReport('Caching must be enabled for statistics to be recorded.');}else if(t===true){self.toggleWarning('cacheMustBeOn',false);self.toggleWarning('collect',!collectToggle.isOn());self.toggleWarning('nodata',collectToggle.isOn());if(collectToggle.isOn()===false){self.updateReport('Cache statistics collection is currently turned off.');}else{self.updateReport('Statistics are still being recorded, please check back tomorrow.');}}});expiryValue.addOnChangeEvent(function(){var value=parseInt(this.getValue(),10);var unit=parseInt(expiryUnit.getValue(),10);var expiry=(value*unit);if(expiry!==self.config.expiry){self.hasChanges.expiry=true;}else{delete self.hasChanges.expiry;}
self._checkChanges();});expiryUnit.addItemSelectedEvent(function(){var value=parseInt(expiryValue.getValue(),10);var unit=parseInt(this.getValue(),10);var expiry=(value*unit);if(expiry!==self.config.expiry){self.hasChanges.expiry=true;}else{delete self.hasChanges.expiry;}
self._checkChanges();});collectToggle.addToggleEvent(function(t){if(t!==self.config.collect){self.hasChanges.collect=true;}else{delete self.hasChanges.collect;}
self._checkChanges();if(statusToggle.isOn()===false&&t===true){self.toggleWarning('collect',false);self.toggleWarning('nodata',false);self.toggleWarning('cacheMustBeOn',true);self.updateReport('Caching must be enabled for statistics to be recorded.');}else{self.toggleWarning('cacheMustBeOn',false);self.toggleWarning('collect',!t);self.toggleWarning('nodata',t);if(t===false){self.updateReport('Cache statistics collection is currently turned off.');}else{self.updateReport('Statistics are still being recorded, please check back tomorrow.');}}});if(this.readOnly===true){this.displayScreenReadOnlyWarning(function(el){dfx.insertBefore(dfx.getId(self.id+'-container'),el);var clearCache=dfx.getId(this.id+'-infobox_section_clear');dfx.hideElement(clearCache);},function(){self.forceEdit();});}
this.ready();},forceEdit:function(callback)
{var self=this;AbstractSettingsScreenWidgetType.prototype.forceEdit.call(this,function(){self._forceEdit();if(callback){callback.call(self);}});},_forceEdit:function()
{var statusToggle=WidgetStore.get('cacheConfig-status');var expiryValue=WidgetStore.get('cacheConfig-expiryValue');var expiryUnit=WidgetStore.get('cacheConfig-expiryUnit');var collectToggle=WidgetStore.get('cacheConfig-collect');var clearCache=dfx.getId(this.id+'-infobox_section_clear');statusToggle.setReadOnly(false);expiryValue.setReadOnly(false);expiryUnit.setReadOnly(false);collectToggle.setReadOnly(false);dfx.showElement(clearCache);this._checkChanges();this.removeDisabledDiv();},_checkChanges:function()
{var noChange=true;for(var id in this.hasChanges){if(this.hasChanges[id]===true){this.setModified(true);noChange=false;break;}}
if(noChange===true){this.setModified(false);}},getAutoSaveContents:function()
{var saveData={};return saveData;},loadAutoSaveContents:function(content,callBack)
{if(callback){callback.call(this);}},revert:function()
{WidgetStore.get('cacheConfig-status').setValue(this.config.status);WidgetStore.get('cacheConfig-expiryValue').setValue(this.expiryValue,true);WidgetStore.get('cacheConfig-expiryUnit').setValue(this.expiryUnit,true);WidgetStore.get('cacheConfig-collect').setValue(this.config.collect);WidgetStore.get('clearCache-settings:rootNodes').clear();WidgetStore.get('clearCache-option').uncheckAll();var rootNodeDiv=dfx.getId('clearCache-rootnode');var buttonDiv=dfx.getId('clearCache-button');dfx.hideElement(rootNodeDiv);dfx.hideElement(buttonDiv);this.hasChanges={};this.setModified(false);this.removeDisabledDiv();},saveCacheConfig:function()
{var expiryValue=WidgetStore.get('cacheConfig-expiryValue');var expiryUnit=WidgetStore.get('cacheConfig-expiryUnit');var params={status:WidgetStore.get('cacheConfig-status').getValue(),collect:WidgetStore.get('cacheConfig-collect').getValue(),expiryValue:expiryValue.getValue(),expiryUnit:expiryUnit.getValue(),screen:this.id+'Widget'};var self=this;this.displayDisabledDiv(true);this.parent.processScreen(params,function(data){self.config=data;self.expiryValue=expiryValue.getValue();self.expiryUnit=expiryUnit.getValue();self.hasChanges={};self.setModified(false);self.removeDisabledDiv(null,true);var help=WidgetStore.get('Help');help.refresh();},true);},switchOnScreen:function()
{var self=this;this.setSaveButton(function(){self.saveCacheConfig();},function(){self.revert();});if(dfx.isset(this.timeLine)===true){var date=new Date();var year=date.getFullYear();var month=date.getMonth();self.timeLine.displayMonth(year,month);}},switchOffScreen:function(){},switchClearCacheStatus:function(status)
{var buttonDiv=dfx.getId('clearCache-button');var rootNodeDiv=dfx.getId('clearCache-rootnode');var addButton=WidgetStore.get('clearCache-add');var confirmButton=WidgetStore.get('clearCache-confirm');dfx.showElement(buttonDiv);if(status==='specific'){dfx.setStyle(buttonDiv,'margin-left','25px');dfx.showElement(rootNodeDiv);addButton.show();confirmButton.show();var rootNodeWidget=WidgetStore.get('clearCache-settings:rootNodes');var selectedAssets=rootNodeWidget.getValue();var count=selectedAssets.length;var warning=dfx.getId('clearCache-rootnode_warning');if(count===0){dfx.showElement(warning);rootNodeWidget.hide();confirmButton.disable();}else{dfx.hideElement(warning);rootNodeWidget.show();}}else if(status==='all'){dfx.setStyle(buttonDiv,'margin-left','30%');dfx.hideElement(rootNodeDiv);addButton.hide();confirmButton.show();confirmButton.enable();}},toggleWarning:function(id,show)
{var infobox=WidgetStore.get('CacheAdminScreen-infobox');if(show===false){infobox.hideWarning(id);}else{infobox.showWarning(id);}},updateReport:function(msg)
{var reportTab=dfx.getId('cacheReport-report');if(reportTab){var underneath=dfx.getTag('div',reportTab);if(underneath.length===0){dfx.setHtml(reportTab,msg);}}},setupClearCacheAction:function()
{var self=this;var warning=dfx.getId('clearCache-rootnode_warning');var rootNodeWidget=WidgetStore.get('clearCache-settings:rootNodes');var addButton=WidgetStore.get('clearCache-add');var confirmButton=WidgetStore.get('clearCache-confirm');if(dfx.isset(addButton)===true){addButton.hide();addButton.addClickEvent(function(){addButton.disable();self.displayDisabledDiv(true);self.assetPicker.init('cache',function(){self.assetPicker.dialog.open();});});}
self.assetPicker.addAssetsSelectedAction(function(selectedAssets){var sLen=selectedAssets.length;if(sLen>0){for(var i=0;i<sLen;i++){rootNodeWidget.addAsset(selectedAssets[i]);}
dfx.hideElement(warning);if(dfx.isset(confirmButton)===true){confirmButton.enable();}}});self.assetPicker.addCloseAction(function(){addButton.enable();});if(dfx.isset(confirmButton)===true){confirmButton.addClickEvent(function(){self.displayDisabledDiv(true,'CacheAdminScreen-infobox_clear_item0','black','absolute');var disabledDiv=dfx.getId('CacheAdminScreen-infobox_clear_item0_disabledDiv');dfx.setStyle(disabledDiv,'opacity','0.15');var params={option:WidgetStore.get('clearCache-option').getValue(),clear:'clear',rootNode:rootNodeWidget.getValue().join(','),screen:self.id+'Widget'};self.parent.processScreen(params,function(data){confirmButton.disable();rootNodeWidget.clear();var clearCacheOption=WidgetStore.get('clearCache-option');var buttonDiv=dfx.getId('clearCache-button');var rootNodeDiv=dfx.getId('clearCache-rootnode');clearCacheOption.uncheckAll();dfx.hideElement(buttonDiv);dfx.hideElement(rootNodeDiv);self.removeDisabledDiv('CacheAdminScreen-infobox_clear_item0');});});}
var clearCacheOption=WidgetStore.get('clearCache-option');if(dfx.isset(clearCacheOption)===true){clearCacheOption.addOnChangeEvent(function(status){self.switchClearCacheStatus(status);});}},setupTimeLine:function(firstDate)
{var date=new Date();var year=date.getFullYear();var month=date.getMonth();var self=this;this.includeWidget('TimeLine',function(){var pane=dfx.getId('timelinePane');if(dfx.isset(pane)===true){var baseDate=new Date(firstDate*1000);var baseTime=baseDate.getTime();var baseYear=baseDate.getFullYear();self.timeLine=this.createWidget(self.id+'-timeLine','TimeLine',[],baseYear,baseTime,year,month,'range',339);var elem=self.timeLine.getElement();dfx.addClass(elem,self.getClass()+'-timeLine');pane.appendChild(elem);var spark=dfx.getId('sparklineContainer');dfx.insertBefore(elem,spark);self.timeLine.disableMonth();self.timeLine.disableDay();self.timeLine.showYear(year);self.timeLine.setSliderActive();self.timeLine.displayMonth(year,month);var content=dfx.getId('TimeLineWidgetType-nav-content');dfx.setStyle(content,'width','136px');self.timeLine.addRangeSliderDraggedEvent(function(start,end){self.refreshChart(start,end,year);});self.timeLine.addPreviousEvent(function(yr){self.refreshSparkline(yr);});self.timeLine.addNextEvent(function(yr){self.refreshSparkline(yr);});}});},refreshChart:function(start,end,year)
{var self=this;var params={start:start,end:end,refresh:'refreshChart',screen:this.id+'Widget'};this.parent.getScreenData(params,function(data){var chart=dfx.getId('cacheReport-barChart');if(dfx.isset(chart)===true){dfx.setHtml(chart,data);}
self.refreshTable(start,end);});},refreshTable:function(start,end)
{var self=this;var params={start:start,end:end,refresh:'refreshTable',screen:this.id+'Widget'};this.parent.getScreenData(params,function(data){var wrapper=dfx.getId('cacheReport-tableContainer');if(dfx.isset(wrapper)===true){dfx.setHtml(wrapper,data);}});},refreshSparkline:function(year,displayMonth)
{var self=this;var params={year:year,refresh:'refreshSparkline',screen:this.id+'Widget'};var display=true;if(dfx.isset(displayMonth)===true&&displayMonth===false){display=false;}
this.parent.getScreenData(params,function(data){var spark=dfx.getId('sparklineContainer');if(dfx.isset(spark)===true){dfx.setHtml(spark,data);}
if(display===true){var date=new Date();var yr=date.getFullYear();if(yr===year){self.timeLine.displayMonth(year,date.getMonth());}else{self.timeLine.displayMonth(year,0);}}});}};dfx.inherits('CacheAdminScreen','AbstractSettingsScreen');function ContentSharingAdminScreenWidgetType(id,screenid,system,title,parent,assetid,readOnly)
{AbstractSettingsScreenWidgetType.call(this,id,screenid,system,title,parent,assetid,readOnly);this.widgetType='ContentSharingAdminScreen';this.paths=[];this.mode='';this.settings=[];this.keywords={};this.titleField=null;this.valueCont=null;this.selected=null;this.editableElem=null;this.editor=null;this.domElem=dfx.getId(this.id);this.modified={};this.removed={};this.reloadInfo=null;this.readOnlyMsg=null;}
ContentSharingAdminScreenWidgetType.prototype={init:function(data)
{var infobox=WidgetStore.get(this.id+'-infobox');infobox.setUlClassPrefix('Blue');infobox.addSection('contents',null);var self=this;var keywords=data.keywords;this.keywords=keywords;this.reloadInfo=keywords;var firstKey=null;for(var key in keywords){if(keywords.hasOwnProperty(key)===true){self._addInfoboxItem(key,keywords[key]);if(firstKey===null){firstKey=key;}}}
this._createContents(function(){if(self.readOnly===true){var wrapper=self.wrapperElem;self.displayScreenReadOnlyWarning(function(el){dfx.insertBefore(wrapper,el);},function(){var widget=WidgetStore.get('AdminScreenModeWidgetType-tab_pane');if(widget){self.clean();self.setModified(false);widget.showScreen('contentsharing',null,true);}});}
if(firstKey!==null){self.showContent(firstKey);}
self.ready();});},showReadOnlyMessage:function()
{if(!this.readOnlyMsg){var wrapper=this.wrapperElem;var self=this;this.createScreenWarningMessage({id:this.id+'-readOnlyMsg',leftTitle:'Read Only',mainMessage:'This screen is <strong>Read only</strong> because snippet is <strong>marked for deletion</strong>',colour:'red',buttonTitle:null},function(el){dfx.insertBefore(wrapper.firstChild,el);self.readOnlyMsg=el;});}else{dfx.setStyle(this.readOnlyMsg,'display','block');}},removeReadOnlyMessage:function()
{if(this.readOnlyMsg){dfx.setStyle(this.readOnlyMsg,'display','none');}},_addInfoboxItem:function(key,keyword)
{var c=this.getClass()+'-infobox';var main=document.createElement('div');dfx.addClass(main,c+'-wrapper');var content='<span class="'+c+'-title">';content+=keyword.display_name+'</span>';content+='<div class="'+c+'-error"></div>';var readOnlyClass='';if(this.readOnly===true){readOnlyClass='readOnly';}
content+='<div class="'+c+'-delete '+readOnlyClass+'"></div>';content+='<div class="'+c+'-removedLayer"></div>';dfx.setHtml(main,content);var self=this;var infobox=WidgetStore.get(this.id+'-infobox');infobox.addItem('contents',this._getInfoboxItemid(key),main,function(id){return self.showContent(self._getKeyFromInfoboxid(id));});if(this.readOnly!==true){var deleteElem=dfx.getClass(c+'-delete',main)[0];this._addDeleteIconEvent(deleteElem);}},_getInfoboxItemid:function(key)
{return this.id+'_item-'+key;},_getKeyFromInfoboxid:function(id)
{if(id){var s=id.split(this.id+'_item-');if(s.length>0){return s[(s.length-1)];}}
return null;},_addDeleteIconEvent:function(el)
{var self=this;dfx.addEvent(el,'click',function(e){var et=dfx.getMouseEventTarget(e);while(et.nodeName.toLowerCase()!=="li"){et=et.parentNode;}
keyword=self._getKeyFromInfoboxid(et.id);if(!self.removed[keyword]){dfx.addClass(el.parentNode,'removed');self.removed[keyword]=true;self.showReadOnlyMessage();}else{self.removeReadOnlyMessage();dfx.removeClass(el.parentNode,'removed');delete self.removed[keyword];}
self._activateSave();});},_getInfoboxItemElem:function(key)
{var item=dfx.getId(this._getInfoboxItemid(key));var title=dfx.getClass(this.getClass()+'-infobox-title',item)[0];return title;},_createContents:function(callback)
{var container=dfx.getId(this.id+'-container');if(this.hasKeywords()===false){dfx.addClass(container,'noContent');}
var c=this.getClass();var content='<div class="'+c+'-wrapper">';content+='<div class="'+c+'-title">Name</div>';content+='<div class="'+c+'-title-value"></div>';content+='<div class="'+c+'-content">Content<div class="'+c+'-editBtn"></div></div>';content+='<div class="'+c+'-content-value"></div>';content+='<div class="'+c+'-editor">';content+='<div class="'+c+'-editor-toolbar"></div>';content+='<div class="'+c+'-editor-content"></div></div>';content+='</div>';content+='<div class="'+c+'-noContentMsg">There are no snippets.</div>';dfx.setHtml(container,content);var textFieldCont=dfx.getClass(c+'-title-value',container)[0];var valueCont=dfx.getClass(c+'-content-value',container)[0];this.valueCont=valueCont;var toolbarCont=dfx.getClass(c+'-editor-toolbar',container)[0];var editableElem=dfx.getClass(c+'-editor-content',container)[0];this.editableElem=editableElem;this.wrapperElem=dfx.getClass(c+'-wrapper',container)[0];var self=this;this.includeWidgets(['WYSIWYG','TextField'],function(){var editor=self.createWidget(null,'WYSIWYG');self.editor=editor;self._setupEditor(editor,toolbarCont,function(){var title=self.createWidget(null,'TextField');self.titleField=title;title.create(function(el){textFieldCont.appendChild(el);var prevSelected=null;var elem=null;dfx.addEvent(title.inputBox,'keyup',function(){if(prevSelected!==self.selected){elem=self._getInfoboxItemElem(self.selected);prevSelected=self.selected;}
dfx.setHtml(elem,title.getValue());self.updateValues(self.selected);});callback.call(self);});});});},keywordExists:function(index,displayName)
{for(var idx in this.keywords){if(this.keywords.hasOwnProperty(idx)===true){if(parseInt(index)!==parseInt(idx)&&this.keywords[idx].display_name===displayName){return true;}}}
return false;},hasKeywords:function()
{for(var i in this.keywords){if(this.keywords.hasOwnProperty(i)===true){return true;}}
return false;},_setupEditor:function(editor,toolbarCont,callback)
{var self=this;editor.setPluginSettings('ViperToolbarPlugin',{parent:toolbarCont});editor.setContentChangedCallback(function(){self._setKeywordModified(self.selected);});editor.load(callback);},addNew:function(newGroupName,value,dispVal)
{var container=dfx.getId(this.id+'-container');dfx.removeClass(container,'noContent');var id=dfx.getUniqueId();var keyword={value:value||'New snippet',display_name:(newGroupName||this._getNewKeywordName()),dispVal:dispVal||'New snippet'};this.keywords[id]=keyword;this._addInfoboxItem(id,keyword);this._setKeywordModified(id);this.showContent(id);},_getNewKeywordName:function(index)
{index=index||1;var keyword='New Keyword '+index;if(this.keywordExists(-1,keyword)===true){return this._getNewKeywordName(index+1);}
return keyword;},removeSnippet:function(key)
{var elem=dfx.getId(this.id+'_item-'+key);if(elem){var removeButton=dfx.getClass(this.getClass()+'-infobox-delete',elem)[0];if(removeButton){dfx.trigger(removeButton,'click');}}},showContent:function(key,noUpdate)
{if(!this.keywords[key]){return false;}
this.displayDisabledDiv(true);if(this.selected!==null&&noUpdate!==false){var self=this;this.updateValues(this.selected,function(){self.showContent(key,false);});return;}
var keyword=this.keywords[key];this.titleField.setValue(keyword.display_name);this.selected=key;if(this.readOnly===true||this.removed[key]===true){dfx.setHtml(this.valueCont,keyword.dispVal);this.setChildrenReadOnly(true);this.removeDisabledDiv(null,true);if(this.removed[key]===true){this.showReadOnlyMessage();}}else{this.showEditContents();this.setChildrenReadOnly(false);this.removeReadOnlyMessage();}
var infobox=WidgetStore.get(this.id+'-infobox');infobox.setSelected(key);infobox.setItem(this._getInfoboxItemid(key));},updateValues:function(key,callback)
{if(!this.keywords[key]){if(callback){callback.call(this);}
return;}
var requestid=dfx.getUniqueId();this.requestid=requestid;var value=this.titleField.getValue();if(this.keywords[key].display_name!==value){this.keywords[key].display_name=value;this._setKeywordModified(key);}
if(dfx.hasClass(dfx.getClass(this.getClass()+'-wrapper',this.domElem),'editing')===true){var html=this.editor.getHtml();var contents=this.editor.getContents();if(this.keywords[key].value!==contents){this.keywords[key].value=contents;}
if(this.keywords[key].dispVal!==html){this.keywords[key].dispVal=html;}}
if(callback){callback.call(self);}},_setKeywordModified:function(key)
{if(key){this._activateSave();this.modified[key]=true;}},_activateSave:function()
{this.setModified(true);},showEditContents:function()
{var self=this;dfx.addClass(dfx.getClass(self.getClass()+'-wrapper',self.domElem),'editing');try{self.editor.setElement(self.editableElem,'inline');}catch(e){}
try{self.editor.setHtml(self.keywords[self.selected].value,function(){self.editor.enable();self.removeDisabledDiv(null,true);});}catch(e){}},hideEditContents:function()
{dfx.removeClass(dfx.getClass(this.getClass()+'-wrapper',this.domElem),'editing');},saveSettings:function()
{this.updateValues(this.selected);var mln=this.modified.length;var keywords={};var self=this;var tmpElem=document.createElement('div');dfx.foreach(this.modified,function(key){keywords[key]=self.keywords[key];dfx.setHtml(tmpElem,keywords[key].value);var html=self.editor.getHtml(tmpElem);html=html.replace(/(viper_src|viper_href)+="(\S+)"/gi,function(fullStr,attrName,val){return attrName.replace('viper_','')+'="'+val+'"'});keywords[key].value=html;});dfx.foreach(this.removed,function(key){keywords[key]=self.keywords[key];});var params={screen:this.id+'Widget',keywords:dfx.jsonEncode(keywords),removed:dfx.jsonEncode(this.removed)};this.displayDisabledDiv(true);this.parent.processScreen(params,function(data){self._processSaveResult(data);},true);},_processSaveResult:function(result)
{if(!result){return;}
var changes=null;if(!result.errors){changes=result;}else if(result.changes){changes=result.changes;}
if(changes){var self=this;if(changes.removed){dfx.foreach(changes.removed,function(key){self._removeKeyword(changes.removed[key]);delete self.removed[changes.removed[key]];});}
if(changes.added){dfx.foreach(changes.added,function(key){var newKey=changes.added[key];self.keywords[newKey]=self.keywords[key];delete self.keywords[key];delete self.modified[key];var infobox=WidgetStore.get(self.id+'-infobox');infobox.changeItemid(self._getInfoboxItemid(key),self._getInfoboxItemid(newKey));if(self.selected===key){self.selected=newKey;}});}
if(this.hasKeywords()===false){var container=dfx.getId(this.id+'-container');dfx.addClass(container,'noContent');}else{if(this.keywords.hasOwnProperty(this.selected)===false){var self=this;for(var k in this.keywords){setTimeout(function(){self.showContent(k);},1000);break;}}else if(!result.errors){this.removeDisabledDiv(null,true);this.setModified(false);return;}}}
if(!result.errors){this.removeDisabledDiv(null,true);this.setModified(false);}else{this._activateSave();}},_removeKeyword:function(key)
{if(this.keywords[key]){var elem=dfx.getId(this._getInfoboxItemid(key));if(elem){dfx.remove(elem);delete this.keywords[key];}}},setChildrenReadOnly:function(readOnly)
{this.titleField.setReadOnly(readOnly);if(readOnly===true){this.hideEditContents();}},setReadOnly:function(readOnly)
{AbstractSettingsScreenWidgetType.prototype.setReadOnly.call(this,readOnly);var infobox=WidgetStore.get(this.id+'-infobox');infobox.setReadOnly(readOnly);if(readOnly!==true){var self=this;infobox.addNewButton(function(newGroupName){self.addNew(newGroupName);});if(this.readOnly!==true){var elem=dfx.getId(this.id+'-infobox');if(elem){dfx.removeClass(dfx.getClass(this.getClass()+'-infobox-delete',elem),'readOnly');}}}},switchOnScreen:function()
{var self=this;this.setSaveButton(function(){self.saveSettings();},function(){var widget=WidgetStore.get('AdminScreenModeWidgetType-tab_pane');if(widget){self.clean();widget.showScreen('contentsharing',null,true);}});},switchOffScreen:function()
{this.disableSaveButton();},getAutoSaveContents:function()
{this.updateValues(this.selected);var mln=this.modified.length;var keywords={};var self=this;dfx.foreach(this.modified,function(key){keywords[key]=self.keywords[key];});var saveData={keywords:keywords,removed:this.removed};return saveData;},loadAutoSaveContents:function(content,callBack)
{if(!content){return;}
var self=this;if(content.keywords){dfx.foreach(content.keywords,function(i){var keyword=content.keywords[i];self._removeKeyword(i);self.addNew(keyword.display_name,keyword.value,keyword.dispVal);});}
if(content.removed){dfx.foreach(content.removed,function(i){self.removeSnippet(i);});}},clean:function()
{this.keywords=null;this.titleField=null;this.valueCont=null;this.selected=null;this.editableElem=null;this.editor=null;this.domElem=null;this.modified=null;this.removed=null;this.reloadInfo=null;this.readOnlyMsg=null;dfx.empty(dfx.getId(this.id+'-container'));dfx.empty(dfx.getId(this.id+'-infobox'));}};dfx.inherits('ContentSharingAdminScreen','AbstractSettingsScreen');function ContextSystemConfigScreenWidgetType(id,screenid,system,title,parent)
{AbstractSettingsScreenWidgetType.call(this,id);this.widgetType='ContextSystemConfigScreen';this.screenid=screenid;this.system=system;this.title=title;this.parent=parent;this._removedContexts={};this._updatedContexts={};this._restoredContexts={};}
ContextSystemConfigScreenWidgetType.prototype={setReadOnly:function(readOnly)
{AbstractSettingsScreenWidgetType.prototype.setReadOnly.call(this,readOnly);if(readOnly===true){var contEl=dfx.getId('ContextSystemConfigScreen');if(!contEl){return;}
dfx.addClass(contEl,'readOnly');this.displayScreenReadOnlyWarning(function(el){dfx.insertBefore(dfx.getId('ContextSystemConfigScreen-info'),el);},function(){dfx.removeClass(contEl,'readOnly');});}},init:function(data)
{var self=this;this.includeWidgets(['TextField','Button'],function(){self._initContexts(dfx.jsonDecode(data.contexts));self.ready();});},_initContexts:function(contexts,update)
{this._removedContexts={};this._updatedContexts={};this._restoredContexts={};var self=this;var c=this.getClass();for(var lvl in contexts){if(contexts.hasOwnProperty(lvl)===false){continue;}
var container=dfx.getId(this.id+'-lvl'+lvl);var removedCont=dfx.getId(this.id+'-lvl'+lvl+'-removed');var ln=contexts[lvl].length;dfx.empty(container);dfx.empty(removedCont);if(ln===0){var emptyContents='<p class="'+c+'-noContext" style="padding: 10px;">';emptyContents+='No Contexts have been defined for this level</p>';dfx.setHtml(container,emptyContents);}
for(var i=0;i<ln;i++){if(contexts[lvl][i].removed===true){this._createRecoverItem(lvl+'-'+contexts[lvl][i].id,contexts[lvl][i].name,removedCont);}else{this._createContextItem(lvl+'-'+contexts[lvl][i].id,contexts[lvl][i].name,contexts[lvl][i].abbr,container,contexts[lvl][i]);}}
if(update!==true){dfxjQuery(container).sortable({axis:'y',containment:'parent',handle:'div.'+c+'-handle',tolerance:'pointer',stop:function(){self.setModified(true);}});var buttonCont=dfx.getClass(c+'-contextList-button',dfx.getId(this.id+'-level'+lvl))[0];var button=this.createWidget(null,'Button');button.setName('Add New');(function(level){button.addClickEvent(function(){self.addNew(level);})}).call(this,lvl);button.create(function(el){buttonCont.appendChild(el);});}}},addNew:function(lvl)
{var id='new-'+dfx.getUniqueId();var container=dfx.getId(this.id+'-lvl'+lvl);var obj={id:id,name:'',abbr:'',level:lvl};if(dfx.getTag('p',container).length!==0){dfx.empty(container);}
this._createContextItem(id,'','',container,obj);this.setModified(true);},_createContextItem:function(id,name,abbr,parentCont,context)
{var c=this.getClass();var main=document.createElement('div');main.id=id;dfx.addClass(main,c+'-itemWrapper');var content='<div class="'+c+'-handle" ></div>';content+='<div class="'+c+'-nameCont" ></div>';content+='<div class="'+c+'-abbrCont" ></div>';content+='<div class="'+c+'-deleteOverlay" ></div>';content+='<div class="'+c+'-delete" ></div>';dfx.setHtml(main,content);var nameWidget=this.createWidget(id+'-name','TextField');var abbrWidget=this.createWidget(id+'-abbr','TextField');nameWidget.setDefaultValue('Name');abbrWidget.setDefaultValue('Abbr.');var abbrSet=false;if(abbr!==''){abbrSet=true;}
nameWidget.create(function(el){nameWidget.setValue(name);nameWidget.setWidth(162);dfx.getClass(c+'-nameCont',main)[0].appendChild(el);});var self=this;nameWidget.addOnChangeEvent(function(val){if(context.name!==val&&val!=='Name'){self.setModified(true);context.name=val;self._updatedContexts[id]=context;if(abbrSet!==true){abbrWidget.setValue(val.substr(0,6));context.abbr=val.substr(0,6);}}});abbrWidget.create(function(el){abbrWidget.setValue(abbr);abbrWidget.setWidth(50);abbrWidget.input.setAttribute('maxlength',6);dfx.getClass(c+'-abbrCont',main)[0].appendChild(el);});abbrWidget.addOnChangeEvent(function(val){if(context.abbr!==val){self.setModified(true);context.abbr=val;self._updatedContexts[id]=context;abbrSet=true;if(val===''||val==='Abbr.'){abbrSet=false;}}});dfx.addEvent(dfx.getClass(c+'-delete',main),'click',function(){if(dfx.hasClass(main,'removed')===true){self.recoverDeleted(id);}else{self.markForDeletion(id);}});if(parentCont){parentCont.appendChild(main);}},recoverDeleted:function(id)
{if(this._removedContexts[id]){delete this._removedContexts[id];this.setModified(true);var elem=dfx.getId(id);if(elem){dfx.removeClass(elem,'removed');}}},markForDeletion:function(id)
{this._removedContexts[id]=true;this.setModified(true);var elem=dfx.getId(id);if(elem){dfx.addClass(elem,'removed');}},_createRecoverItem:function(id,name,parentCont)
{var c=this.getClass();var main=document.createElement('div');main.id=id;dfx.addClass(main,c+'-itemWrapper recover');var content='<div class="'+c+'-name">'+name+'</div>';content+='<div class="'+c+'-restoreBtnCont"></div>';content+='<div class="'+c+'-recover">Press Save...</div>';dfx.setHtml(main,content);var cont=dfx.getClass(c+'-restoreBtnCont',main)[0];var button=this.createWidget(null,'Button','ButtonWidgetType-black');button.setName('Restore');var self=this;button.addClickEvent(function(){dfx.removeClass(main,'recover');dfx.addClass(main,'restore');dfx.remove(cont);self._restoredContexts[id]=true;self.setModified(true);},true);button.create(function(el){if(cont){cont.appendChild(el);}});parentCont.appendChild(main);},saveConfig:function()
{var sortOrders={};var c=this.getClass();for(var lvl=1;lvl<4;lvl++){var items=dfx.getClass(c+'-itemWrapper',dfx.getId(this.id+'-lvl'+lvl));var ln=items.length;var order=1;for(var i=0;i<ln;i++){if(dfx.hasClass(items[i],'removed')===true){continue;}
sortOrders[items[i].id]=order++;}}
var self=this;var params={screen:this.id+'Widget',op:'save',sortOrders:dfx.jsonEncode(sortOrders),updated:dfx.jsonEncode(this._updatedContexts),removed:dfx.jsonEncode(this._removedContexts),restored:dfx.jsonEncode(this._restoredContexts)};this.displayDisabledDiv(true);this.parent.processScreen(params,function(data){self._initContexts(data,true);self.setModified(false);var toolbarContextWidget=WidgetStore.get('ContextSwitcherEditingToolbarIcon');if(toolbarContextWidget){toolbarContextWidget.createButton();}else{self.includeWidget('ContextSwitcherEditingToolbarIcon',function(){var toolbarContextWidget=self.createWidget('ContextSwitcherEditingToolbarIcon','ContextSwitcherEditingToolbarIcon',true);toolbarContextWidget.createButton();});}
self.removeDisabledDiv(null,true);},true);},switchOnScreen:function()
{var self=this;this.setSaveButton(function(){self.saveConfig();},function(){self.revert();});},switchOffScreen:function(){}};dfx.inherits('ContextSystemConfigScreen','AbstractSettingsScreen');function CronSystemConfigScreenWidgetType(id,screenid,system,title,parent)
{AbstractSettingsScreenWidgetType.call(this,id);this.widgetType='CronSystemConfigScreen';this.screenid=screenid;this.system=system;this.title=title;this.parent=parent;this.scriptsWdgt=null;this.intervals={};this.hasChanges={};this.scriptsDynamicDiv=WidgetStore.get(this.id+'-scripts-dynamicDiv');this.children.push(this.id+'-freq-frequent');this.children.push(this.id+'-freq-hourly');this.children.push(this.id+'-freq-daily-hour');this.children.push(this.id+'-freq-daily');}
CronSystemConfigScreenWidgetType.prototype={setReadOnly:function(readOnly)
{AbstractSettingsScreenWidgetType.prototype.setReadOnly.call(this,readOnly);var scriptsWdgt=WidgetStore.get('CronScripts');if(scriptsWdgt){scriptsWdgt.setReadOnly(readOnly);}},init:function(data)
{var self=this;this.scriptsDynamicDiv.changeContent({action:'paintScreen',mode:'SystemConfigScreenMode',screen:'CronSystemConfigScreenWidget',type:'scriptsDynamicDiv'},function(data){self.scriptsWdgt=WidgetStore.get('CronScripts');self.scriptsWdgt.hasChanges=self.hasChanges;self.scriptsWdgt.setReadOnly(self.readOnly);});if(this.readOnly===true){this.displayScreenReadOnlyWarning(function(el){dfx.insertBefore(dfx.getId('CronScripts-cronScripts').parentNode,el);},function(){});}
this.intervals=data.intervals;this.addEvents();this.ready();},addEvents:function()
{var self=this;var f=WidgetStore.get(this.id+'-freq-frequent');var h=WidgetStore.get(this.id+'-freq-hourly');var dh=WidgetStore.get(this.id+'-freq-daily-hour');var d=WidgetStore.get(this.id+'-freq-daily');f.addOnChangeEvent(function(){var val=parseInt(this.getValue(),10);if(val!==self.intervals.frequent){self.hasChanges.frequent=true;}else{delete self.hasChanges.frequent;}
self._checkChanges();});h.addOnChangeEvent(function(){var val=parseInt(this.getValue(),10);if(val!==self.intervals.hourly){self.hasChanges.hourly=true;}else{delete self.hasChanges.hourly;}
self._checkChanges();});dh.addOnChangeEvent(function(){var val=parseInt(this.getValue(),10);if(val!==self.intervals.dailyh){self.hasChanges.dailyh=true;}else{delete self.hasChanges.dailyh;}
self._checkChanges();});d.addOnChangeEvent(function(){var val=parseInt(this.getValue(),10);if(val!==self.intervals.dailym){self.hasChanges.dailym=true;}else{delete self.hasChanges.dailym;}
self._checkChanges();});},_checkChanges:function()
{var noChange=true;for(var id in this.hasChanges){if(this.hasChanges[id]===true){this.setModified(true);noChange=false;break;}}
if(noChange===true){this.setModified(false);}},saveCronConfig:function()
{this.removeToolbarButton('save_cron');var changes=this.getStatusChanges();var params={frequency:dfx.jsonEncode(changes),interval:dfx.jsonEncode(WidgetStore.get('CronScripts').getChanges('interval')),enabled:dfx.jsonEncode(WidgetStore.get('CronScripts').getChanges('enabled')),screen:this.id+'Widget',op:'saveCron'};var self=this;this.displayDisabledDiv(true);this.parent.processScreen(params,function(data){WidgetStore.remove('CronScripts');self.scriptsDynamicDiv.changeContent({action:'paintScreen',mode:'SystemConfigScreenMode',screen:'CronSystemConfigScreenWidget',type:'scriptsDynamicDiv'},function(data){delete self.scriptsWdgt;self.scriptsWdgt=WidgetStore.get('CronScripts');self.switchOnScreen();self.removeDisabledDiv();});self.hasChanges={};self.setModified(false);self.intervals={frequent:parseInt(changes[0].min,10),hourly:parseInt(changes[1].min,10),dailyh:parseInt(changes[2].hour,10),dailym:parseInt(changes[2].min,10)};},true);},getStatusChanges:function()
{var changes=[];changes.push({type:'frequent',min:WidgetStore.get(this.id+'-freq-frequent').getValue()});changes.push({type:'hourly',min:WidgetStore.get(this.id+'-freq-hourly').getValue()});changes.push({type:'daily',hour:WidgetStore.get(this.id+'-freq-daily-hour').getValue(),min:WidgetStore.get(this.id+'-freq-daily').getValue()});return changes;},switchOnScreen:function()
{var self=this;this.setSaveButton(function(){self.saveCronConfig();},function(){self.revert();self.scriptsWdgt.revert();});},revert:function()
{this.hasChanges={};this.setModified(false);var f=WidgetStore.get(this.id+'-freq-frequent');var h=WidgetStore.get(this.id+'-freq-hourly');var dh=WidgetStore.get(this.id+'-freq-daily-hour');var d=WidgetStore.get(this.id+'-freq-daily');f.setValue(this.intervals.frequent);h.setValue(this.intervals.hourly);dh.setValue(this.intervals.dailyh);d.setValue(this.intervals.dailym);this.removeDisabledDiv();},switchOffScreen:function(){}};dfx.inherits('CronSystemConfigScreen','AbstractSettingsScreen');function DesignAdminScreenWidgetType(id,screenid,system,title,parent,assetid,readOnly)
{AbstractSettingsScreenWidgetType.call(this,id,screenid,system,title,parent,assetid,readOnly);this.widgetType='DesignAdminScreen';this.designid=null;this.lastDesignid=null;this.isDesign=true;this.designsInUse=null;this.newDesignCount=0;this.currentTabIndex=0;this.tabsWidget=WidgetStore.get((this.id+'-designTabs'));this.parseTextAreaWidget=WidgetStore.get((this.id+'-parseFile'));this.cssTextAreaWidget=WidgetStore.get((this.id+'-cssFile'));this.jsTextAreaWidget=WidgetStore.get((this.id+'-jsFile'));this.parseTextUpdated=false;this.cssTextUpdated=false;this.jsTextUpdated=false;this.assocFilesHidden=false;this.designInfo=WidgetStore.get(this.id+'-infobox');this.assetPicker=WidgetStore.get('EditingAssetPicker');this.assetPicker.setScreen('designAdmin');this.assetPicker.addProjectFolderWhiteList('designAdmin','Documents');this.assetPicker.addProjectFolderWhiteList('designAdmin','Images');this.assetPicker.addProjectFolderWhiteList('designAdmin','Movies');var self=this;Widget.registerWindowResize(function(e){self.resizeTextAreas();});this.designTabsWdgt=WidgetStore.get(this.id+'-designTabs');this.interventionOpened={};}
DesignAdminScreenWidgetType.prototype={setReadOnly:function(readOnly)
{AbstractSettingsScreenWidgetType.prototype.setReadOnly.call(this,readOnly);this.designInfo.setReadOnly(readOnly);var designRmBtns=dfx.getClass(this.id+'-InfoBoxDesignRemove',dfx.getId(this.designInfo.id+'_body'));var btnLn=designRmBtns.length;for(var i=0;i<btnLn;i++){if(readOnly){dfx.hideElement(designRmBtns[i]);}else{dfx.showElement(designRmBtns[i]);}}
var nameTextField=WidgetStore.get(this.id+'-detailsNameField');nameTextField.setReadOnly(readOnly);this.parseTextAreaWidget.setReadOnly(readOnly);this.cssTextAreaWidget.setReadOnly(readOnly);this.jsTextAreaWidget.setReadOnly(readOnly);},screenModified:function()
{var self=this;var modified=false;dfx.foreach(this.changes,function(id){if(self.changes[id]===true){modified=true;return false;}
return true;});this.setModified(modified);},init:function(data)
{var self=this;this.includeWidgets(['Intervention','TextField','AssetPicker','AssociatedFileUpload','TextField','Select','ToggleButton','AssetPicker','MenuDesignAreaParentSelector','Button','ProgressBar'],function(){var _gatherDesignList=function(customisations,lvl,pid){var level=lvl||0;var pid=pid||null;for(var id in customisations){if(customisations.hasOwnProperty(id)){self.designs.push({id:id,name:customisations[id].name,lvl:level,pid:pid});if(customisations[id].customs){_gatherDesignList(customisations[id].customs,(level+1),id);}}}};this.customisations=dfx.jsonDecode(data.customisations);this.usageInfo=dfx.jsonDecode(data.usageInfo);this.analyticsInfo=dfx.jsonDecode(data.analyticsInfo);this.designs=[];_gatherDesignList(this.customisations);this.changes={};this.designData={};this.designDataOri={};this.designAreas=dfx.jsonDecode(data.designAreas);this.assocFiles=dfx.jsonDecode(data.assocFiles);var dLen=this.designs.length;for(var i=0;i<dLen;i++){var did=this.designs[i].id;this.designData[did]={details:{},html:null,css:null,javascript:null,designAreas:{},deletion:false,lastTab:null};if(this.designs[i].lvl===0){this.designData[did].type='design';}else{this.designData[did].type='customisation';}
this.designData[did].pid=this.designs[i].pid;this.designData[did].details.name=this.designs[i].name;this.designData[did].details.analytics=this.analyticsInfo[did];this.designData[did].details.customisations=[];if(this.customisations[did]&&this.customisations[did].customs){for(var custid in this.customisations[did].customs){if(this.customisations[did].customs.hasOwnProperty(custid)){this.designData[did].details.customisations.push({id:custid,name:this.customisations[did].customs[custid].name,markForDeletion:false});}}}
this.designData[did].details.usages=[];this.designData[did].details.remap=0;this.designData[did].parseFileLoaded=false;this.designData[did].html=null;this.designData[did].css=null;this.designData[did].javascript=null;this.designData[did].designAreas={};if(this.designAreas[did]&&this.designAreas[did]!==null){this.designData[did].designAreas=dfx.clone(this.designAreas[did]);}
this.designData[did].associatedFileUpload=WidgetStore.get(this.id+'-associatedFileUpload-'+did)||null;this.designData[did].associatedFiles=dfx.clone(this.assocFiles[did]);this.designDataOri[did]={};this.designDataOri[did].details=dfx.clone(this.designData[did].details);this.designDataOri[did].html=dfx.clone(this.designData[did].html);this.designDataOri[did].css=dfx.clone(this.designData[did].css);this.designDataOri[did].javascript=dfx.clone(this.designData[did].javascript);this.designDataOri[did].designAreas=dfx.clone(this.designData[did].designAreas);}
this.designsInUse=data.designsInUse;if((this.lastDesignid!==null)&&(this.designData[this.lastDesignid])){this.setVisibleDesignid(this.lastDesignid);}else{this.designid=data.designid;this.customisationid=data.customisationid;}
var assetid=this.getVisibleDesignid();if(!this.designData[assetid]){this.setVisibleDesignid(this.designs[0].id);assetid=this.designs[0].id;}
this.designInfo.reset();this.designInfo.setTitle('Design Manager');this.designInfo.setUlClassPrefix('Blue');this.designInfo.addSection('designs',null);this.designInfo.setSelected(assetid);this.createDesignInfoBox(data.designs,data.designsInUse);if(this.readOnly===true){this.displayScreenReadOnlyWarning(function(el){dfx.insertBefore(dfx.getId('DesignAdminScreen-designTabs'),el);},function(){self.resizeTextAreas();});}
this.showDesign(assetid,function(){dfx.addClass(self.parseTextAreaWidget.getTextAreaElement(),'whiteOnBlack');dfx.addClass(self.cssTextAreaWidget.getTextAreaElement(),'whiteOnBlack');dfx.addClass(self.jsTextAreaWidget.getTextAreaElement(),'whiteOnBlack');self.resizeTextAreas(self.readOnly);var nameTextField=WidgetStore.get(self.id+'-detailsNameField');dfx.addEvent(nameTextField.input,'keyup',function(e){var assetid=self.getVisibleDesignid();var infoLabel=dfx.getClass(self.id+'-InfoBoxDesignTitle',dfx.getId(assetid))[0];var newVal=dfx.ellipsize(nameTextField.input.value,24);if(infoLabel){infoLabel.innerHTML=newVal;}else{var infoCustomLabel=dfx.getClass(self.id+'-InfoBoxCustomTitle',dfx.getId(assetid))[0];infoCustomLabel.innerHTML=newVal;self.designData[assetid].details.name=newVal;self.designData[assetid].pid
dfx.foreach(self.designData[self.designData[assetid].pid].details.customisations,function(idx){if(self.designData[self.designData[assetid].pid].details.customisations[idx].id===assetid){self.designData[self.designData[assetid].pid].details.customisations[idx].name=newVal;}});}
if(newVal!==self.designDataOri[assetid].details.name){self.changes[assetid+':name']=true;}else{self.changes[assetid+':name']=false;}
self.screenModified();});var analyticsidField=WidgetStore.get(self.id+'-analyticsId');dfx.addEvent(analyticsidField.input,'keyup',function(e){var assetid=self.getVisibleDesignid();var newVal=analyticsidField.input.value;if(newVal!==self.designDataOri[assetid].details.analytics.analyticsId){self.changes[assetid+':analyticsid']=true;}else{self.changes[assetid+':analyticsid']=false;}
self.screenModified();});var analyticsEnableTrackingToggle=WidgetStore.get(self.id+'-enableTrackingCode');analyticsEnableTrackingToggle.addToggleEvent(function(e){var assetid=self.getVisibleDesignid();var newVal=analyticsEnableTrackingToggle.getValue();if(newVal!==self.designDataOri[assetid].details.analytics.enableTrackingCode){self.changes[assetid+':enableTrackingCode']=true;}else{self.changes[assetid+':enableTrackingCode']=false;}
self.screenModified();});dfx.addEvent(dfx.getId(self.id+'-parseFile'),'keyup',function(e){var assetid=self.getVisibleDesignid();if(dfx.isset(self.designDataOri[assetid].html)&&self.designDataOri[assetid].html!==self.parseTextAreaWidget.getValue()){self.changes[assetid+':parseFile']=true;}else{self.changes[assetid+':parseFile']=false;}
self.screenModified();});dfx.addEvent(dfx.getId(self.id+'-cssFile'),'keyup',function(e){var assetid=self.getVisibleDesignid();if(dfx.isset(self.designDataOri[assetid].css)&&self.designDataOri[assetid].css!==self.cssTextAreaWidget.getValue()){self.changes[assetid+':css']=true;}else{self.changes[assetid+':css']=false;}
self.screenModified();});dfx.addEvent(dfx.getId(self.id+'-jsFile'),'keyup',function(e){var assetid=self.getVisibleDesignid();if(dfx.isset(self.designDataOri[assetid].javascript)&&self.designDataOri[assetid].javascript!==self.jsTextAreaWidget.getValue()){self.changes[assetid+':javascript']=true;}else{self.changes[assetid+':javascript']=false;}
self.screenModified();});});});this.ready();},resizeTextAreas:function()
{var dim=dfx.getWindowDimensions();var offset=337;var rod=dfx.getId(this.id+'-readOnlyMsg');if(rod){offset+=37;}
if(dim.height<514){var newHeight=200;}else if(dim.height>=514){var newHeight=(dim.height-offset);}
var width=0;if(dim.width>1500){if(this.assocFilesHidden===true){width=1099;}else{width=757;}}else if(dim.width<=1120){if(this.assocFilesHidden===true){width=710;}else{width=368;}}else{if(this.assocFilesHidden===true){width=(dim.width-400);}else{width=(dim.width-752);}}
dfx.setStyle(dfx.getId('DesignAdminScreen-associatedFiles'),'left',(width+10)+'px');var ids=['-parseFile','-cssFile','-jsFile','-parseFile-readOnly','-cssFile-readOnly','-jsFile-readOnly'];idsLen=ids.length;for(var j=0;j<idsLen;j++){dfx.setStyle(dfx.getId(this.id+ids[j]),'height',newHeight+'px');dfx.setStyle(dfx.getId(this.id+ids[j]),'width',width+'px');}},displayIntervention:function(elem,text,type)
{this.removeDisabledDiv(true);if(dfx.isset(this.interventionOpened[type])===false||(dfx.isset(this.interventionOpened[type])===true&&this.interventionOpened[type]===false)){var self=this;var iw=self.createWidget('inter','Intervention',null,function(){self.interventionOpened[type]=false;});iw.setCancelText(null);iw.setConfirmText('Close');iw.create(function(){iw.setSize('250px','85px');iw.setMessage(text);iw.show(elem,'fixed');self.interventionOpened[type]=true;});}},createDesignInfoBox:function(designs)
{var self=this;this.designInfo.setPreSelectCheckFn(function(itemElement,e){var target=dfx.getMouseEventTarget(e);var designRemove=dfx.hasClass(target,self.widgetType+'-InfoBoxDesignRemove');var customRemove=dfx.hasClass(target,self.widgetType+'-InfoBoxCustomRemove');var currentAssetid=parseInt(self.getVisibleDesignid());var assetid=parseInt(itemElement.getAttribute('id'));var assetPickerId=self.id+'-remap-assetPicker';var isRemoveIcon=false;var isSameAsset=false;if((designRemove===true)||(customRemove===true)){isRemoveIcon=true;}
if(currentAssetid===assetid){isSameAsset=true;}
var result=self.designRemovable(assetid);if(((isRemoveIcon===true)||(isSameAsset===false))&&(dfx.getId(assetPickerId))){var remapWdgt=WidgetStore.get(assetPickerId);if(parseInt(remapWdgt.getValue())===parseInt(currentAssetid)){var errorTarget=dfx.getId(assetPickerId);var errorMsg='Design is remapped to itself. Please clear or select another design.';self.displayIntervention(errorTarget,errorMsg,2);return false;}else if(self.isSelectedRemapDeleted()===true){var errorTarget=dfx.getId(assetPickerId);var errorMsg='This design is marked for deletion. Please select another design.';self.displayIntervention(errorTarget,errorMsg,2);return false;}}
if((isRemoveIcon===true)&&(result.deletable===false)){var errorTarget=result.target||target;self.displayIntervention(errorTarget,result.error,1);return false;}else if((isSameAsset===true)&&(isRemoveIcon===false)){return false;}else{return true;}});var _createNewDesignCustomisationItem=function(isCustom,did,title){var content=[];var infoBoxCustomWrap=document.createElement('div');var infoBoxCustomTitle=document.createElement('div');var infoBoxCustomNotInUse=document.createElement('div');var classType='Design';if(isCustom){classType='Custom';}
dfx.addClass(infoBoxCustomWrap,self.widgetType+'-InfoBox'+classType+'Wrapper');dfx.addClass(infoBoxCustomTitle,self.widgetType+'-InfoBox'+classType+'Title');if(typeof title==='string'){dfx.setHtml(infoBoxCustomTitle,dfx.ellipsize(title,24));}else{infoBoxCustomTitle.appendChild(title);}
infoBoxCustomTitle.setAttribute('title',dfx.ellipsize(title,24)+' [#'+did+']');infoBoxCustomWrap.appendChild(infoBoxCustomTitle);if(dfx.inArray(parseInt(did),self.designsInUse)===false){if(isCustom){dfx.addClass(infoBoxCustomNotInUse,self.widgetType+'-InfoBoxCustomNotInUse');}else{dfx.addClass(infoBoxCustomNotInUse,self.widgetType+'-InfoBoxDesignNotInUse');}
dfx.setHtml(infoBoxCustomNotInUse,'&nbsp;');infoBoxCustomWrap.appendChild(infoBoxCustomNotInUse);}
var infoBoxCustomRemove=document.createElement('div');if(isCustom){dfx.addClass(infoBoxCustomRemove,self.widgetType+'-InfoBoxCustomRemove');}else{dfx.addClass(infoBoxCustomRemove,self.widgetType+'-InfoBoxDesignRemove');}
dfx.setHtml(infoBoxCustomRemove,'&nbsp;');if(self.readOnly===true){dfx.hideElement(infoBoxCustomRemove);}
infoBoxCustomWrap.appendChild(infoBoxCustomRemove);return infoBoxCustomWrap;};var _designCustomisationOnclickCallback=function(id,e){self.displayDisabledDiv(true);var readOnly=false;var et=dfx.getMouseEventTarget(e);var remove=dfx.hasClass(et,self.widgetType+'-InfoBoxDesignRemove');var customRemove=dfx.hasClass(et,self.widgetType+'-InfoBoxCustomRemove');self.isDesign=true;if(self.designData[id].pid!==null){self.isDesign=false;}
if((remove===true)||(customRemove===true)){self.toggleRemoveDesign.call(self,id,!self.designData[id].deletion);}
var oldAssetid=self.getVisibleDesignid();self.gatherScreenData(oldAssetid);self.showDesign(id);};var dlen=this.designs.length;var content=[];for(var i=0;i<dlen;i++){var did=this.designs[i].id;var title=this.designs[i].name;var isCustomisation=false;if(this.designs[i].lvl>0){isCustomisation=true;}
content=_createNewDesignCustomisationItem(isCustomisation,did,title);this.designInfo.addItem('designs',parseInt(did),content,function(id,e){_designCustomisationOnclickCallback(id,e);},false,isCustomisation);}
this.designInfo.addNewButton(function(nDesignN){var params={mode:'AdminScreenMode',screen:'DesignAdminScreenWidget',action:'processScreen',op:'createNewDesign',name:nDesignN};self.displayDisabledDiv(true);self.parent.processScreen(params,function(result){var newDesignid=result.designid;var content=_createNewDesignCustomisationItem(false,newDesignid,nDesignN);self.newDesignCount++;self.designData[newDesignid]={details:{customisations:[],name:nDesignN,remap:0,usages:[]},lastTab:null,designAreas:{},html:null,css:null,javascript:null,parseFileLoaded:false,pid:null,type:'design',deletion:false,associatedFileUpload:null,associatedFiles:{files:[],missingFiles:[],unusedFiles:{}}};self.designDataOri[newDesignid]={};self.designDataOri[newDesignid].html='';self.designDataOri[newDesignid].css='';self.designDataOri[newDesignid].javascript='';self.designDataOri[newDesignid].details={};self.designDataOri[newDesignid].details.analytics={};var reserved='name';self.designDataOri[newDesignid].details[reserved]=nDesignN;self.customisations[newDesignid]={};self.designInfo.addItem('designs',newDesignid,content,function(id,e){_designCustomisationOnclickCallback(id,e);},false,false);var assetid=self.getVisibleDesignid();self.gatherScreenData(assetid);self.isDesign=true;self.showDesign(newDesignid);for(var did in self.designData){if(self.designData.hasOwnProperty(did)===true){if(self.designData[did].pid!==null){dfx.hideElement(dfx.getId(did));}}}
self.designInfo.setItem(parseInt(newDesignid));},true);});var assetid=self.getVisibleDesignid();this.designInfo.setItem(assetid);},initScreenData:function(assetid,readOnly,callback){var self=this;self.setDetailsData(assetid,readOnly);self.setParseFilesData(assetid,readOnly,function(){self.setAssociatedFilesData(assetid,readOnly,function(){self.setDesignAreasData(assetid,readOnly,function(){if(callback){callback.call(self,assetid,readOnly);}});});});},setDetailsData:function(designid,readOnly)
{var self=this;var designName=this.designData[designid].details.name;var nameTextField=WidgetStore.get(this.id+'-detailsNameField');nameTextField.setValue(designName);nameTextField.setReadOnly(readOnly);var analyticsid='';if(this.designData[designid].details.analytics&&dfx.isset(this.designData[designid].details.analytics.analyticsId)===true){analyticsid=this.designData[designid].details.analytics.analyticsId;}
var analyticsIdField=WidgetStore.get(this.id+'-analyticsId');analyticsIdField.setValue(analyticsid);analyticsIdField.setReadOnly(readOnly);var enableTrackingCode=true;if(this.designData[designid].details.analytics&&dfx.isset(this.designData[designid].details.analytics.enableTrackingCode)===true){enableTrackingCode=this.designData[designid].details.analytics.enableTrackingCode;}
var analyticsTrackingCodeToggle=WidgetStore.get(this.id+'-enableTrackingCode');analyticsTrackingCodeToggle.setValue(enableTrackingCode);analyticsTrackingCodeToggle.setReadOnly(readOnly);var img=dfx.getId(this.id+'-detailsPreviewImg');img.src=Widget.BASE_URL+'/?tb=1&a='+designid;var custSection=dfx.getId(this.id+'-detailsCustomSection');if(!this.isDesign){dfx.setStyle(custSection,'visibility','hidden');}else{dfx.setStyle(custSection,'visibility','visible');}
var items=dfx.getId(this.id+'-detailsCustomSection-items');var childLen=items.childNodes.length;for(var i=(childLen-1);i>=0;i--){dfx.remove(items.childNodes[i]);}
var _addCustomisation=function(idx){var cid=self.designData[designid].details.customisations[idx].id;var cname=self.designData[designid].details.customisations[idx].name;var markForDeletion=self.designData[designid].details.customisations[idx].markForDeletion;var custWrap=document.createElement('div');custWrap.id=self.id+'-detailsCustom-'+cid;dfx.addClass(custWrap,self.id+'-detailsCustomWrap');if(markForDeletion){dfx.addClass(custWrap,self.id+'-detailsCustomWrap-delete');}
var custNameWrap=document.createElement('div');custNameWrap.id=self.id+'-detailsCustomNameWrap-'+cid;dfx.addClass(custNameWrap,self.id+'-detailsCustomNameWrap');var custDelete=document.createElement('div');custDelete.id=self.id+'-detailsCustom-delete-'+cid;custDelete.innerHTML='&nbsp;';dfx.addClass(custDelete,self.id+'-detailsCustomRemove');if(markForDeletion){dfx.addClass(custDelete,'recover');}
if(readOnly){dfx.hideElement(custDelete);}
var textfield=self.createWidget(self.id+'-detailsCustom-input-'+cid,'TextField');textfield.setReadOnly(readOnly);textfield.setWidgetAttribute('id',cid);textfield.setWidgetAttribute('name',cname);textfield.setValue(cname);textfield.create(function(el){custNameWrap.appendChild(el);custWrap.appendChild(custNameWrap);custWrap.appendChild(custDelete);items.appendChild(custWrap);if(markForDeletion){textfield.disable();}
dfx.addEvent(custDelete,'click',function(e){var result=self.designRemovable(cid);if(result.deletable===true){self.toggleRemoveDesign.call(self,cid,!self.designData[cid].deletion);}else{self.displayIntervention(custDelete,result.error,5);}});dfx.addEvent(textfield.input,'keyup',function(e){var assetid=cid;var newVal=dfx.ellipsize(dfx.getId(self.id+'-detailsCustom-input-'+cid).value,24);var infoCustomLabel=dfx.getClass(self.id+'-InfoBoxCustomTitle',dfx.getId(assetid))[0];if(infoCustomLabel){infoCustomLabel.innerHTML=newVal;}
if(self.designDataOri[assetid]){if(newVal!==self.designDataOri[assetid].details.name){self.changes[assetid+':name']=true;}else{self.changes[assetid+':name']=false;}
self.designData[assetid].details.name=newVal;}
self.screenModified();});});};var custNum=this.designData[designid].details.customisations.length;if(custNum===0){var custMsgDiv=document.createElement('div');custMsgDiv.id=this.id+'-detailsCustomMsg';custMsgDiv.innerHTML='This design has no customisations.';dfx.addClass(custMsgDiv,this.id+'-text');items.appendChild(custMsgDiv);}else{for(var i=0;i<custNum;i++){(function(idx){_addCustomisation(idx);})(i);}
var lastCid=self.designData[designid].details.customisations[(custNum-1)].id;dfx.addClass(dfx.getId(self.id+'-detailsCustom-'+lastCid),self.id+'-detailsCustomWrapLast');}
var custAddNew=WidgetStore.get(this.id+'-detailsCustomSection-Button-AddNew');custAddNew.enable();if(self.designData[designid].pid!==null){dfx.hideElement(dfx.getId(this.id+'-detailsCustomSection-Button-AddNew'));}else{custAddNew.setReadOnly(readOnly);custAddNew.addClickEvent(function(e){if(self.isDesign){var numCust=self.designData[self.designid].details.customisations.length;self.designData[self.designid].details.customisations.push({id:'newCust_'+numCust,markForDeletion:false,name:''});if(numCust===0){var items=dfx.getId(self.id+'-detailsCustomSection-items');var childLen=items.childNodes.length;for(var i=(childLen-1);i>=0;i--){dfx.remove(items.childNodes[i]);}}else{var lastCid=self.designData[self.designid].details.customisations[(numCust-1)].id;dfx.removeClass(dfx.getId(self.id+'-detailsCustom-'+lastCid),self.id+'-detailsCustomWrapLast');}
_addCustomisation(numCust);lastCid=self.designData[self.designid].details.customisations[numCust].id;dfx.addClass(dfx.getId(self.id+'-detailsCustom-'+lastCid),self.id+'-detailsCustomWrapLast');dfx.getId(self.id+'-detailsCustom-input-'+lastCid).focus();if(numCust===4){custAddNew.disable();}
self.changes[self.designid+':cust:new'+numCust]=true;self.screenModified();}},true);}
var usageDiv=dfx.getId(this.id+'-detailsUsageSection-items');var childLen=usageDiv.childNodes.length;for(var i=(childLen-1);i>=0;i--){dfx.remove(usageDiv.childNodes[i]);}
var usageMsgDiv=document.createElement('div');usageMsgDiv.id=this.id+'-detailsUsageMsg';dfx.addClass(usageMsgDiv,this.id+'-text');if(this.usageInfo[designid]){usageMsgDiv.innerHTML='This design is directly applied to the following assets:';usageDiv.appendChild(usageMsgDiv);var usageLen=this.usageInfo[designid].length;for(i=0;i<usageLen;i++){var wrap=document.createElement('div');dfx.addClass(wrap,this.widgetType+'-usageInfo-wrap');var content='<div class="'+this.widgetType+'-usageInfo-icon"><img src="'+this.usageInfo[designid][i].iconUrl+'"/></div>';content+='<div class="'+this.widgetType+'-usageInfo-assetid">#'+this.usageInfo[designid][i].assetid+'</div>';content+='<div class="'+this.widgetType+'-usageInfo-name">'+this.usageInfo[designid][i].name+'</div>';wrap.innerHTML=content;usageDiv.appendChild(wrap);}}else{usageMsgDiv.innerHTML='This design is not applied to any assets.';usageDiv.appendChild(usageMsgDiv);}
var remapDiv=dfx.getId(this.id+'-detailsRemapSection-items');childLen=remapDiv.childNodes.length;for(var i=(childLen-1);i>=0;i--){dfx.remove(remapDiv.childNodes[i]);}
var remapMsgDiv=document.createElement('div');remapMsgDiv.id=this.id+'-detailsRemapMsg';dfx.addClass(remapMsgDiv,this.id+'-text');if(this.usageInfo[designid]){remapMsgDiv.innerHTML='Remapping will remove this design from the assets currently using it and apply another design of your choice.';remapDiv.appendChild(remapMsgDiv);var picker=self.createWidget(self.id+'-remap-assetPicker','Select');var options={};var dlen=self.designs.length;options[0]='-- Not selected --';for(var i=0;i<dlen;i++){var did=self.designs[i].id;var title=self.designs[i].name;var isCustomisation=false;if(self.designs[i].lvl>0){isCustomisation=true;}
if(isCustomisation===true){options[did]='--  '+dfx.ucWords(title);}else{options[did]=dfx.ucWords(title);}}
picker.addItems(options);picker.addItemSelectedEvent(function(aid){self.designData[designid].details.remap=aid;if(aid===0){self.changes[designid+':remap']=false;}else{self.changes[designid+':remap']=true;}
self.screenModified();});picker.setReadOnly(readOnly);picker.create(function(el){remapDiv.appendChild(el);picker.setValue(self.designData[designid].details.remap,true);});}else{remapMsgDiv.innerHTML='This design is not applied to any assets.';remapDiv.appendChild(remapMsgDiv);}
this._createGoogleAnalyticsSection(designid);},_createGoogleAnalyticsSection:function(designid)
{if(dfx.getId(this.id+'-detailsAnalyticsMsg')){return;}
var analyticsDiv=dfx.getId(this.id+'-detailsAnalyticsSection-items');var div=document.createElement('div');div.id=this.id+'-detailsAnalyticsMsg';dfx.addClass(div,this.id+'-text');var content='Enter the web property ID of your Google Analytics account.';dfx.setHtml(div,content);dfx.insertBefore(analyticsDiv,div);var slider=dfx.getId('DesignAdminScreen-enableTrackingCode-slider');div=document.createElement('div');div.id=this.id+'-detailsAnalyticsOnOffMsg';dfx.addClass(div,this.id+'-text');var content='Insert page tracking code';dfx.setHtml(div,content);dfx.insertBefore(slider,div);},setParseFilesData:function(designid,readOnly,callback)
{var self=this;if(this.designData[parseInt(designid)]){var _setParseFilesData=function(){if(self.designData[designid].html!==null){self.parseTextAreaWidget.setReadOnly(readOnly);self.parseTextAreaWidget.setValue(self.designData[designid].html);}
if(self.designData[designid].css!==null){self.cssTextAreaWidget.setReadOnly(readOnly);self.cssTextAreaWidget.setValue(self.designData[designid].css);}
if(self.designData[designid].javascript!==null){self.jsTextAreaWidget.setReadOnly(readOnly);self.jsTextAreaWidget.setValue(self.designData[designid].javascript);}};if(this.designData[designid].parseFileLoaded===false){var params={mode:'AdminScreenMode',screen:'DesignAdminScreenWidget',op:'getParseFiles',designId:designid};this.parent.getScreenData(params,function(parseFilesData){var decoded=dfx.jsonDecode(parseFilesData);self.designData[designid].html=decoded[designid].parseFile;self.designData[designid].css=decoded[designid].cssFile;self.designData[designid].javascript=decoded[designid].jsFile;self.designDataOri[designid].html=decoded[designid].parseFile;self.designDataOri[designid].css=decoded[designid].cssFile;self.designDataOri[designid].javascript=decoded[designid].jsFile;_setParseFilesData();self.designData[designid].parseFileLoaded=true;if(callback){callback.call(self,designid,readOnly);}});}else{_setParseFilesData();if(callback){callback.call(self,designid,readOnly);}}}else{if(callback){callback.call(self,designid,readOnly);}}},setDesignAreasData:function(designid,readOnly,callback)
{var self=this;var content='';var daTabDiv=dfx.getId(self.id+'-designAreaTab');var childLen=daTabDiv.childNodes.length;for(var i=(childLen-1);i>=0;i--){dfx.remove(daTabDiv.childNodes[i]);}
for(var id in this.designData[designid].designAreas){if(this.designData[designid].designAreas.hasOwnProperty(id)){content+='<div class="'+this.id+'-designAreaWrap '+this.id+'-'+this.designData[designid].designAreas[id].type+'">';content+='  <div id="'+this.id+'-designAreaHeader-'+id+'" class="'+this.id+'-designAreaHeader">';content+='    <div id="'+this.id+'-designAreaHeader-title-'+id+'" class="'+this.id+'-designArea-title"><span class="'+this.id+'-designArea-id">'+id+'</span>';content+='      <span class="'+this.id+'-designArea-type">[&nbsp;'+dfx.ucWords(this.designData[designid].designAreas[id].type.replace(/_/,' '))+'&nbsp;]</span>';content+='    </div>';content+='  </div>';content+='  <div id="'+this.id+'-designAreaBody-'+id+'" class="'+this.id+'-designAreaBody">';content+='    <div class="'+this.id+'-designAreaWrap-left">';if(readOnly){content+='<div id="'+this.id+'-'+id+'-designArea-use-parent" class="'+this.id+'-designArea-use-parent" style="visibility: hidden;">Use Parent Settings</div>';}else{content+='<div id="'+this.id+'-'+id+'-designArea-use-parent" class="'+this.id+'-designArea-use-parent">Use Parent Settings</div>';}
content+='    </div>';content+='    <div id="'+this.id+'-'+id+'-designArea-right" class="'+this.id+'-designAreaWrap-right">';content+='    </div>';content+='  </div>';content+='</div>';}}
if(content.length===0){content='<div class="'+this.id+'-designArea-none">This design has no design areas</div>';daTabDiv.innerHTML=content;if(callback){callback.call(self,designid,readOnly);}
return;}
daTabDiv.innerHTML=content;dfx.foreach(this.designData[designid].designAreas,function(daid){var headerDiv=dfx.getId(self.id+'-designAreaHeader-'+daid);dfx.addEvent(headerDiv,'click',function(e){var titleDiv=dfx.getId(self.id+'-designAreaHeader-title-'+daid);var bodyDiv=dfx.getId(self.id+'-designAreaBody-'+daid);if(dfx.hasClass(titleDiv,'collapsed')){dfx.removeClass(titleDiv,'collapsed');dfx.showElement(bodyDiv);}else{dfx.addClass(titleDiv,'collapsed');dfx.hideElement(bodyDiv);}});var useParentDiv=dfx.getId(self.id+'-'+daid+'-designArea-use-parent');if(self.designData[designid].type==='design'){dfx.setStyles(useParentDiv,'visibility','hidden');}else{dfx.addEvent(useParentDiv,'click',function(e){if(dfx.hasClass(useParentDiv,'active')){dfx.removeClass(useParentDiv,'active');dfx.foreach(self.designData[designid].designAreas[daid].attrInfo,function(attrid){var attrWidgetid=self.id+'-'+daid+'-'+attrid;WidgetStore.get(attrWidgetid).enable();return true;});var newValue=false;}else{dfx.addClass(useParentDiv,'active');var pid=self.designData[designid].pid;dfx.foreach(self.designData[designid].designAreas[daid].attrInfo,function(attrid){var attrWidgetid=self.id+'-'+daid+'-'+attrid;var widget=WidgetStore.get(attrWidgetid);var pValue=self.designData[pid].designAreas[daid][attrid];self.designData[designid].designAreas[daid][attrid]=pValue;widget.setValue(pValue);widget.disable();return true;});var newValue=true;}
if(dfx.isset(self.designDataOri[designid].designAreas[daid].use_parent)===false){var oriValue=true;}else{var oriValue=self.designDataOri[designid].designAreas[daid].use_parent;}
if(oriValue!==newValue){self.changes[designid+':'+daid+':useParent']=true;}else{self.changes[designid+':'+daid+':useParent']=false;}
self.designData[designid].designAreas[daid].use_parent=newValue;self.screenModified();});}
return true;});dfx.foreach(this.designData[designid].designAreas,function(daid){var rightDiv=dfx.getId(self.id+'-'+daid+'-designArea-right');var attrs=[];dfx.foreach(self.designData[designid].designAreas[daid].attrInfo,function(attrid){attrs.push(attrid);return true;});var _createDaAttr=function(attrid,index,cb){var isCustom=(self.designData[designid].type==='customisation');if(isCustom===true){var pid=self.designData[designid].pid;var pValue=self.designData[pid].designAreas[daid][attrid];if(dfx.isset(self.designData[designid].designAreas[daid].use_parent)===false){var useParent=true;self.designData[designid].designAreas[daid].use_parent=true;}else{var useParent=self.designData[designid].designAreas[daid].use_parent;}}
var attrInfo=self.designData[designid].designAreas[daid].attrInfo[attrid];var widgetType='';var attrWidgetid=self.id+'-'+daid+'-'+attrid;var attrWidget=null;switch(attrInfo.type){case'text':attrWidget=self.createWidget(attrWidgetid,'TextField');if(isCustom&&useParent===true){if(pValue){attrWidget.setValue(pValue);}else{attrWidget.setValue(attrInfo.defaultVal);}}else{if(self.designData[designid].designAreas[daid][attrid]){attrWidget.setValue(self.designData[designid].designAreas[daid][attrid]);}else{attrWidget.setValue(attrInfo.defaultVal);}}
break;case'select':attrWidget=self.createWidget(attrWidgetid,'Select');var opLen=attrInfo.options.length;var opts={};for(var i=0;i<opLen;i++){opts[attrInfo.options[i]]=dfx.ucWords(attrInfo.options[i]);}
attrWidget.addItems(opts);break;case'boolean':var val=false;attrWidget=self.createWidget(attrWidgetid,'ToggleButton',false,'slider',val,'Yes','No');break;case'assetid':attrWidget=self.createWidget(attrWidgetid,'AssetPicker');break;case'parentAsset':attrWidget=self.createWidget(attrWidgetid,'MenuDesignAreaParentSelector');if(isCustom&&useParent===true){if(pValue){attrWidget.setValue(pValue);}else{attrWidget.setValue(attrInfo.defaultVal);}}else{if(self.designData[designid].designAreas[daid][attrid]){attrWidget.setValue(self.designData[designid].designAreas[daid][attrid]);}else{attrWidget.setValue(attrInfo.defaultVal);}}
break;default:break;}
attrWidget.setReadOnly(readOnly);attrWidget.create(function(el){var attrWrap=document.createElement('div');dfx.addClass(attrWrap,self.id+'-designArea-attributeWrap');dfx.addClass(attrWrap,self.id+'-designArea-attribute-'+attrid);if(index===(attrs.length-1)){dfx.addClass(attrWrap,'last');}
var attrName=document.createElement('div');dfx.addClass(attrName,self.id+'-designArea-attributeName');attrName.innerHTML=dfx.ucWords(attrid.replace(/_/,' '));var attrForm=document.createElement('div');dfx.addClass(attrForm,self.id+'-designArea-attributeForm');attrForm.appendChild(el);attrWrap.appendChild(attrName);attrWrap.appendChild(attrForm);rightDiv.appendChild(attrWrap);var widgetUpdatedid=self.designid+':da:'+daid+':'+attrid;var _valueUpdated=function(){if(!self.designDataOri[designid].designAreas[daid]){return;}
if(attrWidget.getValue()!==self.designDataOri[designid].designAreas[daid][attrid]){self.changes[widgetUpdatedid]=true;}else{self.changes[widgetUpdatedid]=false;}
self.screenModified();};switch(attrInfo.type){case'text':dfx.addEvent(dfx.getId(attrWidgetid),'keyup',function(e){var oriVal='';if(dfx.isset(self.designDataOri[self.designid].designAreas[daid][attrid])===true){oriVal=self.designDataOri[self.designid].designAreas[daid][attrid];}
if(dfx.getId(attrWidgetid).value!==oriVal){self.changes[widgetUpdatedid]=true;}else{self.changes[widgetUpdatedid]=false;}
self.screenModified();});break;case'select':if(isCustom&&useParent===true){if(pValue){attrWidget.setValue(pValue,true);}else{attrWidget.setValue(attrInfo.defaultVal,true);}}else{if(self.designData[designid].designAreas[daid][attrid]){attrWidget.setValue(self.designData[designid].designAreas[daid][attrid],true);}else{attrWidget.setValue(attrInfo.defaultVal,true);}}
dfx.addEvent(dfx.getId(attrWidgetid),'change',function(e){_valueUpdated();});break;case'boolean':if(isCustom&&useParent===true){var booleanVal=pValue;}else{var booleanVal=self.designData[designid].designAreas[daid][attrid];}
if(typeof booleanVal==='string'){if(booleanVal.toLowerCase()==='true'){val=true;}}else if(booleanVal===true){val=true;}else{val=false;}
attrWidget.setValue(val);attrWidget.addToggleOnEvent(function(){_valueUpdated();});attrWidget.addToggleOffEvent(function(){_valueUpdated();});break;case'assetid':if(isCustom&&useParent===true){if(pValue){attrWidget.setValue(pValue,true);}else{attrWidget.setValue(attrInfo.defaultVal,true);}}else{if(self.designData[designid].designAreas[daid][attrid]){attrWidget.setValue(self.designData[designid].designAreas[daid][attrid],true);}else{attrWidget.setValue(attrInfo.defaultVal,true);}}
attrWidget.setProjectFolderBlackList(['Documents','Images','Movies','Designs','Roles','Users','Workflows']);attrWidget.addSelectedCallback(function(){_valueUpdated();});attrWidget.addClearAssetidCallback(function(){_valueUpdated();});break;case'parentAsset':dfx.addEvent(dfx.getId(attrWidgetid+'-select'),'change',function(e){_valueUpdated();});var pWdgt=WidgetStore.get(attrWidgetid+'-asset-picker');pWdgt.addSelectedCallback(function(){_valueUpdated();});pWdgt.addClearAssetidCallback(function(){_valueUpdated();});break;default:break;}
if(dfx.isFn(cb)){cb.call(self);}});};var _createDaAttrs=function(index){index=index||0;if(index>=attrs.length){if(self.designData[designid].type==='customisation'){if(self.designData[designid].designAreas[daid].use_parent===true){var useParentDiv=dfx.getId(self.id+'-'+daid+'-designArea-use-parent');dfx.addClass(useParentDiv,'active');dfx.foreach(self.designData[designid].designAreas[daid].attrInfo,function(attrid){var attrWidgetid=self.id+'-'+daid+'-'+attrid;WidgetStore.get(attrWidgetid).disable();return true;});}}
return;}
_createDaAttr(attrs[index],index,function(){_createDaAttrs(++index);});};_createDaAttrs();return true;});if(callback){callback.call(self,designid,readOnly);}},setAssociatedFilesData:function(designid,readOnly,callback)
{var self=this;var assocDiv=dfx.getId(this.id+'-associatedFiles');if(assocDiv===null){this.assocDiv=document.createElement('div');this.assocDiv.id=this.id+'-associatedFiles';dfx.addClass(this.assocDiv,this.id+'-associatedFiles');this.showAssocBtn=document.createElement('div');this.showAssocBtn.id=this.id+'-assocShowBtn';dfx.addClass(this.showAssocBtn,'AssociatedFileUpload-associatedHeaderHide collapsed');dfx.setHtml(this.showAssocBtn,'&nbsp;');dfx.hideElement(this.showAssocBtn);dfx.addEvent(this.showAssocBtn,'click',function(){if(self.assocFilesHidden===true){var showBtn=dfx.getId(self.id+'-assocShowBtn');dfx.hideElement(showBtn);dfx.showElement(dfx.getId(self.id+'-associatedFileUpload-'+self.designid));self.assocFilesHidden=false;self.resizeTextAreas();}});this.assocDiv.appendChild(this.showAssocBtn);dfx.getId(this.id+'-designTabs-cardLayout').appendChild(this.assocDiv);dfx.hideElement(self.assocDiv);this.tabsWidget.addOnChangeHandler(function(index,prev){var hideAssocIndexes=[0,4];var indexHide=dfx.inArray(index,hideAssocIndexes);var prevHide=dfx.inArray(prev,hideAssocIndexes);if(prev===-1){prevHide=true;}
if(indexHide&&!prevHide){dfx.hideElement(self.assocDiv);}else if(!indexHide&&!prevHide){var tab=dfx.getId(self.id+'-designTabs-cardLayout').childNodes[index];}else if(!indexHide&&prevHide){dfx.showElement(self.assocDiv);var tab=dfx.getId(self.id+'-designTabs-cardLayout').childNodes[index];}
self.currentTabIndex=index;});}
if(this.isDesign===false){designid=this.designData[designid].pid;}
for(var did in this.designData){if(this.designData.hasOwnProperty(did)){if(this.designData[did].associatedFileUpload!==null&&did!==designid){dfx.hideElement(dfx.getId(this.id+'-associatedFileUpload-'+did));}}}
if(this.designData[designid]&&this.designData[designid].associatedFileUpload===null){var params={mode:'AdminScreenMode',screen:'DesignAdminScreenWidget',op:'getAssocFileData',designId:designid};self.parent.getScreenData(params,function(assocFilesData){var decoded=dfx.jsonDecode(assocFilesData);self.designData[designid].associatedFiles=dfx.clone(decoded[designid]);self.displayDisabledDiv(true,assocDiv);var missingFiles=[];if(self.designData[designid].associatedFiles.missingFiles!==null){missingFiles=self.designData[designid].associatedFiles.missingFiles;}
var associd=self.id+'-associatedFileUpload-'+designid;self.designData[designid].associatedFileUpload=self.createWidget(associd,'AssociatedFileUpload',designid,self.designData[designid].associatedFiles.files,missingFiles,self.designData[designid].associatedFiles.unusedFiles);self.designData[designid].associatedFileUpload.create(function(el){if(self.assocFilesHidden===true){dfx.hideElement(el);}
self.assocDiv.appendChild(el);self.designData[designid].associatedFileUpload.init();if(self.isDesign===false){self.designData[designid].associatedFileUpload.setReadOnly(true);}else{self.designData[designid].associatedFileUpload.setReadOnly(readOnly);}
var hideBtn=dfx.getId(associd+'-AssociatedHeaderHide');dfx.addEvent(hideBtn,'click',function(e){if(self.assocFilesHidden===false){var showBtn=dfx.getId(self.id+'-assocShowBtn');dfx.showElement(showBtn);dfx.hideElement(dfx.getId(self.id+'-associatedFileUpload-'+self.designid));self.assocFilesHidden=true;self.resizeTextAreas();}});self.removeDisabledDiv(assocDiv);if(callback){callback.call(self,designid,readOnly);}});});}else{if(this.designData[designid]&&this.designData[designid].associatedFileUpload!==null){if(self.isDesign===false){this.designData[designid].associatedFileUpload.setReadOnly(true);}else{this.designData[designid].associatedFileUpload.setReadOnly(readOnly);}
this.designData[designid].associatedFileUpload.refreshMissingFileNotice(function(){if(self.assocFilesHidden===false){dfx.setStyle(dfx.getId(self.id+'-associatedFileUpload-'+designid),'display','block');dfx.setStyle(dfx.getId(self.id+'-associatedFileUpload-'+designid),'visibility','visible');}
if(callback){callback.call(self,designid,readOnly);}});}else{if(this.assocFilesHidden===false){dfx.setStyle(dfx.getId(this.id+'-associatedFileUpload-'+designid),'display','block');dfx.setStyle(dfx.getId(this.id+'-associatedFileUpload-'+designid),'visibility','visible');}
if(callback){callback.call(self,designid,readOnly);}}}},gatherScreenData:function(assetid,callback){var self=this;this.getDetailsData(assetid);this.getParseFilesData(assetid);this.getDesignAreasData(assetid);this.getAssociatedFilesData(assetid);if(callback){callback.call(self,assetid);}},getDetailsData:function(designid)
{var details=this.designData[designid].details;details.name=WidgetStore.get(this.id+'-detailsNameField').getValue();var custItems=dfx.getId(this.id+'-detailsCustomSection-items');var custLen=custItems.childNodes.length;if(custLen===1&&custItems.childNodes[0].id===(this.id+'-detailsCustomMsg')){this.designData[designid].details.customisations=[];}else{this.designData[designid].details.customisations=[];for(var i=0;i<custLen;i++){var cid=custItems.childNodes[i].id.replace(/DesignAdminScreen-detailsCustom-/,'');var textField=WidgetStore.get(this.id+'-detailsCustom-input-'+cid);var cname=textField.getValue();this.designData[designid].details.customisations.push({id:cid,name:cname,markForDeletion:dfx.hasClass(dfx.getId(this.id+'-detailsCustom-'+cid),this.id+'-detailsCustomWrap-delete')});}}
if(this.usageInfo[designid]&&this.usageInfo[designid].length>0){details.remap=WidgetStore.get(this.id+'-remap-assetPicker').getValue();}
this.designData[designid].details.analytics={};this.designData[designid].details.analytics.analyticsId=WidgetStore.get(this.id+'-analyticsId').getValue();this.designData[designid].details.analytics.enableTrackingCode=WidgetStore.get(this.id+'-enableTrackingCode').getValue();},getParseFilesData:function(designid)
{if(this.designData[designid].html!==null){this.designData[designid].html=this.parseTextAreaWidget.getValue();}
if(this.designData[designid].css!==null){this.designData[designid].css=this.cssTextAreaWidget.getValue();}
if(this.designData[designid].javascript!==null){this.designData[designid].javascript=this.jsTextAreaWidget.getValue();}},getDesignAreasData:function(designid)
{var self=this;if(this.designData[designid].designAreas!==null){dfx.foreach(self.designData[designid].designAreas,function(daid){dfx.foreach(self.designData[designid].designAreas[daid].attrInfo,function(attrid){var attrWidgetid=self.id+'-'+daid+'-'+attrid;var val=WidgetStore.get(attrWidgetid).getValue();self.designData[designid].designAreas[daid][attrid]=val;return;});return;});}},getAssociatedFilesData:function(designid)
{if(this.designData[designid].associatedFileUpload){this.designData[designid].deletedFiles=dfx.clone(this.designData[designid].associatedFileUpload.getDeletedFiles());}else{this.designData[designid].deletedFiles=[];}},getAutoSaveContents:function()
{return this.designid;},loadAutoSaveContents:function(content,callBack)
{this.designid=parseInt(content);},save:function()
{var self=this;this.settings={designId:this.designid,parseFile:this.parseTextAreaWidget.getValue(),cssFile:this.cssTextAreaWidget.getValue(),jsFile:this.jsTextAreaWidget.getValue()};this.request({action:'processScreen'},function(data){self.switchOffScreen();self.parent.refreshScreen('design');});},getRequestParams:function()
{var params={keys:['mode','ooop','screen'],vals:['AdminScreenMode','saveDesign','DesignAdminScreenWidget']};return params;},saveDesignConfig:function()
{var self=this;var assetid=this.getVisibleDesignid();var assetPickerId=self.id+'-remap-assetPicker';if(dfx.getId(assetPickerId)){var remapWdgt=WidgetStore.get(assetPickerId);if(parseInt(remapWdgt.getValue())===parseInt(assetid)){var errorTarget=dfx.getId(assetPickerId);var errorMsg='Design is remapped to itself. Please clear or select another design.';self.displayIntervention(errorTarget,errorMsg,2);self.screenModified();return false;}else if(self.isSelectedRemapDeleted()===true){var errorTarget=dfx.getId(assetPickerId);var errorMsg='This design is marked for deletion. Please select another design.';self.displayIntervention(errorTarget,errorMsg,2);self.screenModified();return false;}}
this.gatherScreenData(assetid);var assocFilesResetList=[];for(var did in this.designData){if(this.designData.hasOwnProperty(did)){if(this.designData[did].deletedFiles&&this.designData[did].deletedFiles.length>0){assocFilesResetList.push(this.designData[did].associatedFileUpload);}}}
for(var did in this.designData){if(this.designData.hasOwnProperty(did)){this.designData[did].associatedFileUpload=null;this.designData[did].parseFileLoaded=false;}}
var params={screen:this.id+'Widget',op:'saveDesign',designData:dfx.jsonEncode(this.designData)};this.displayDisabledDiv(true);this.parent.processScreen(params,function(data){var afrln=assocFilesResetList.length;if(afrln>0){var resetAssocFiles=function(idx){if(idx===afrln){self.lastDesignid=assetid;self.reset(function(){self.switchOnScreen();self.removeDisabledDiv();});}else{assocFilesResetList[idx].resetAssocFileList(function(){resetAssocFiles(idx+1);});}};resetAssocFiles(0);}else{self.lastDesignid=assetid;self.reset(function(){self.switchOnScreen();self.removeDisabledDiv();});}},true);},reset:function(callback)
{var self=this;var params={action:'paintScreen',mode:'AdminScreenMode',screen:'DesignAdminScreenWidget',type:'getDesignData'};dfx.post(window.location.href,params,function(designData){designData=dfx.jsonDecode(designData);self.init(designData);callback.call(self);});},switchOnScreen:function()
{var self=this;if(this.readOnly===true){this.disableSaveButton();}else{this.setSaveButton(function(){self.saveDesignConfig();},function(){self.displayDisabledDiv();self.reset(function(){self.removeDisabledDiv();});});}},switchOffScreen:function()
{var dLen=this.designs.length;for(var i=0;i<dLen;i++){var did=this.designs[i].id;this.designData[did].associatedFileUpload=null;WidgetStore.remove(this.id+'-associatedFileUpload-'+did);}},getVisibleDesignid:function(){if(this.customisationid){return this.customisationid;}else{return this.designid;}},setVisibleDesignid:function(assetid){if(this.designData[assetid].pid){this.designid=this.designData[assetid].pid;this.customisationid=assetid;}else{this.designid=assetid;this.customisationid=null;}},showDesign:function(assetid,callback){var self=this;var oldAssetid=this.getVisibleDesignid();var parentDesignid=this.designData[assetid].pid;var oldParentid=this.designData[oldAssetid].pid;var readOnly=self.readOnly;if(this.designData[assetid].deletion===true){readOnly=true;}
self.setVisibleDesignid(assetid);if(parentDesignid===null){this.designTabsWdgt.showTab(1);this.designTabsWdgt.showTab(3);if(oldParentid!==null){if(oldParentid===assetid){if(this.designData[assetid].lastTab!==null){this.designTabsWdgt.selectTab(this.designData[assetid].lastTab);}}
this.designData[oldParentid].lastTab=null;}}else{if(this.designData[parentDesignid].deletion===true){readOnly=true;}else{var cln=this.designData[parentDesignid].details.customisations.length;for(var i=0;i<cln;i++){if(assetid===this.designData[parentDesignid].details.customisations[i].id&&this.designData[parentDesignid].details.customisations[i].markForDeletion===true){readOnly=true;break;}}}
var tabIndex=this.designTabsWdgt.getCurrentTabIndex();if([1,3].inArray(tabIndex)===true){this.designTabsWdgt.selectTab(0);this.designData[parentDesignid].lastTab=tabIndex;}
this.designTabsWdgt.hideTab(1);this.designTabsWdgt.hideTab(3);}
var readOnlyMsg=dfx.getId(this.id+'-readOnlyMsg');if(readOnlyMsg){dfx.remove(readOnlyMsg);}
if((readOnly===true)&&(self.readOnly===false)){wrnOps={id:this.id+'-readOnlyMsg',leftTitle:'Read Only',mainMessage:'This screen is <strong>Read Only</strong> because the design is <strong>Marked for Deletion</strong>.',colour:'red',buttonTitle:null};if(parentDesignid!==null){wrnOps.mainMessage='This screen is <strong>Read Only</strong> because the customisation is <strong>Marked for Deletion</strong>.';}
this.createScreenWarningMessage(wrnOps,function(el){dfx.insertBefore(dfx.getId('DesignAdminScreen-designTabs'),el);this.initScreenData(assetid,readOnly,function(){this.resizeTextAreas();this.removeDisabledDiv();});});}else{this.initScreenData(assetid,readOnly,function(){this.resizeTextAreas();this.removeDisabledDiv();});}
if(parentDesignid===null){if(oldParentid){this.cleanCustomisationStyles(oldParentid);this.hideCustomisations(oldParentid);}
this.showCustomisations(assetid);this.styleCustomisations(assetid);}else{this.showCustomisations(parentDesignid);this.cleanCustomisationStyles(parentDesignid);this.styleCustomisations(assetid);}
this.designInfo.setItem(assetid);if(dfx.isFn(callback)===true){callback.call(self,assetid);}},batchCustomisations:function(designid,callback){var self=this;if(self.customisations[designid].customs){for(var id in self.customisations[designid].customs){if(self.customisations[designid].customs.hasOwnProperty(id)){callback.call(self,id);}}}},styleCustomisations:function(assetid){var parentDesignid=this.designData[assetid].pid;var colourSuffix='';if(parentDesignid===null){parentDesignid=assetid;}else{colourSuffix='Grey';}
var ids=[parentDesignid];if(this.customisations[parentDesignid].customs){for(var custid in this.customisations[parentDesignid].customs){if(this.customisations[parentDesignid].customs.hasOwnProperty(custid)===true){ids.push(custid);}}}
while(ids.length>0){var custid=ids.shift();if(custid!==assetid){var className=this.widgetType+'-InfoBoxDesignCustomGrouped'+colourSuffix;var li=dfx.getId(custid);if(dfx.hasClass(li,'deleted')===false){dfx.addClass(li,className);if(ids.length===0){dfx.addClass(li,className+'-last');}}}}},cleanCustomisationStyles:function(designid){var self=this;dfx.removeClass(dfx.getId(designid),self.widgetType+'-InfoBoxDesignCustomGroupedGrey');this.batchCustomisations(designid,function(custid){var li=dfx.getId(custid);dfx.removeClass(li,self.widgetType+'-InfoBoxDesignCustomGroupedGrey');dfx.removeClass(li,self.widgetType+'-InfoBoxDesignCustomGroupedGrey-last');dfx.removeClass(li,self.widgetType+'-InfoBoxDesignCustomGrouped');dfx.removeClass(li,self.widgetType+'-InfoBoxDesignCustomGrouped-last');});},showCustomisations:function(designid){var self=this;this.batchCustomisations(designid,function(custid){self.designInfo.showItem(custid);});},hideCustomisations:function(designid){var self=this;this.batchCustomisations(designid,function(custid){self.designInfo.hideItem(custid);});},toggleRemoveDesign:function(assetid,removed)
{var self=this;var parentDesignid=this.designData[assetid].pid;var element=dfx.getId(assetid);var visibleAssetid=this.getVisibleDesignid();if(parentDesignid===null){var deleteIcon=dfx.getClass(this.id+'-InfoBoxDesignRemove',element)[0];if(removed!==this.designData[assetid].deletion){this.designData[assetid].deletion=removed;this.changes[assetid+':delete']=removed;if(removed===true){dfx.addClass(deleteIcon,'recover');this.designInfo.addCustomiseSelectedClassName(assetid,'deleted',true,true);}else{dfx.removeClass(deleteIcon,'recover');dfx.removeClass(element,'deleted');this.designInfo.addCustomiseSelectedClassName(assetid,'selected',false,true);}
var cln=this.designData[assetid].details.customisations.length;for(var i=0;i<cln;i++){var custid=this.designData[assetid].details.customisations[i].id;this.toggleRemoveDesign(custid,removed);}}}else{var parentDeleted=this.designData[parentDesignid].deletion;if(removed!==this.designData[assetid].deletion){this.designData[assetid].deletion=removed;this.changes[assetid+':delete']=removed;var custInfoDel=dfx.getClass(this.id+'-InfoBoxCustomRemove',element)[0];if(removed===true){if(parentDeleted===true){dfx.setStyle(custInfoDel,'display','none');}
dfx.addClass(custInfoDel,'recover');this.designInfo.addCustomiseSelectedClassName(assetid,'deleted',true,true);}else{dfx.removeClass(element,'deleted');dfx.removeClass(custInfoDel,'recover');dfx.setStyle(custInfoDel,'display','block');this.designInfo.addCustomiseSelectedClassName(assetid,'selected',false,false);}
var cln=this.designData[parentDesignid].details.customisations.length;var last=false;for(var i=0;i<cln;i++){if(assetid===this.designData[parentDesignid].details.customisations[i].id){if(i===(cln-1)){last=true;}
this.designData[parentDesignid].details.customisations[i].markForDeletion=removed;break;}}
if(parentDesignid===visibleAssetid){var deleteClass=this.id+'-detailsCustomWrap-delete';var custWrap=dfx.getId(this.id+'-detailsCustom-'+assetid);var textfield=WidgetStore.get(this.id+'-detailsCustom-input-'+assetid);var custDelete=dfx.getId(this.id+'-detailsCustom-delete-'+assetid);if(removed===true){dfx.addClass(custWrap,deleteClass);dfx.addClass(custDelete,'recover');dfx.removeClass(dfx.getId(assetid),'DesignAdminScreen-InfoBoxDesignCustomGrouped');if(last===true){dfx.removeClass(dfx.getId(assetid),'DesignAdminScreen-InfoBoxDesignCustomGrouped-last');}
if(textfield){textfield.disable();}}else{dfx.removeClass(custWrap,deleteClass);dfx.removeClass(custDelete,'recover');dfx.addClass(dfx.getId(assetid),'DesignAdminScreen-InfoBoxDesignCustomGrouped');if(last===true){dfx.addClass(dfx.getId(assetid),'DesignAdminScreen-InfoBoxDesignCustomGrouped-last');}
if(textfield){textfield.enable();}}}}}
this.screenModified();},designRemovable:function(assetid){var self=this;var ret={deletable:false};var isCustomisation=false;if(this.designData[assetid].pid!==null){isCustomisation=true;}
var aliveDesign=false;for(var did in this.designData){if((did!==assetid)&&(this.designData.hasOwnProperty(did)===true)){if((self.designData[did].pid===null)&&(self.designData[did].deletion===false)){aliveDesign=true;break;}}}
if(aliveDesign===false){ret.error='You cannot delete the last design.';}else{var visibleAssetid=this.getVisibleDesignid();if(this.usageInfo[visibleAssetid]&&this.usageInfo[visibleAssetid].length>0){this.designData[visibleAssetid].details.remap=WidgetStore.get(self.id+'-remap-assetPicker').getValue();}
var remapped=null;for(var did in this.designData){if(this.designData.hasOwnProperty(did)===true){if(this.designData[did].details.remap.toString()===assetid.toString()){remapped=did;break;}}}
if(remapped!==null){if(isCustomisation===true){ret.error='You cannot delete this customisation as it is being remapped to by another design or customisation.';}else{ret.error='You cannot delete this design as it is being remapped to by another design or customisation.';}}else{if(dfx.inArray(parseInt(assetid),this.designsInUse)===true){var remapDesign=this.designData[assetid].details.remap;if(parseInt(remapDesign)===0){if(isCustomisation===true){ret.error='Please remap this customisation before deleting it.';}else{ret.error='Please remap this design before deleting it.';}}else if(this.designData[remapDesign].deletion===true){ret.error='Remap design is scheduled for deletion. Please select another design.';}}else{if(this.customisations[assetid]){var thisCustoms=this.customisations[assetid].customs;for(var custid in thisCustoms){if(thisCustoms.hasOwnProperty(custid)===true){var custDeletable=this.designRemovable(custid);if(custDeletable.deletable===false){ret.error='You cannot delete this design as its customisations are being used.';break;}}}}}}}
if(ret.error===undefined){ret.deletable=true;}
return ret;},isSelectedRemapDeleted:function(){var assetPickerId=this.id+'-remap-assetPicker';if(WidgetStore.get(assetPickerId)){var currentRemap=parseInt(WidgetStore.get(assetPickerId).getValue());if(currentRemap!==0){if(this.designData[currentRemap].deletion===true){return true;}}}
return false;},};dfx.inherits('DesignAdminScreen','AbstractSettingsScreen');function DesignEditScreenWidgetType(id,screenid,system,title,parent,assetid,readOnly)
{AbstractSettingsScreenWidgetType.call(this,id,screenid,system,title,parent,assetid,readOnly);this.widgetType='DesignEditScreen';this.rowC=this.widgetType+'-row';this.parentSSWrapC=this.widgetType+'-parentSSWrap';this.childSSWrapC=this.widgetType+'-childSSWrap';this.ssC=this.widgetType+'-screenShot';this.settingsWrap=this.widgetType+'-settingsWrap';this.settingsWrapHeader=this.widgetType+'-settingsWrap-header';this.settingsWrapBody=this.widgetType+'-settingsWrap-body';this.settingsWrapBodyCell=this.widgetType+'-settingsWrap-body-cell';this.settingsWrapPageDesignCell=this.widgetType+'-settingsWrap-body-pageDesignCell';this.settingsWrapCascadeCell=this.widgetType+'-settingsWrap-body-cascadeCell';this.settingsWrapChildDesignCell=this.widgetType+'-settingsWrap-body-childDesignCell';this.labelC=this.widgetType;this.selectC=this.widgetType+'-select';this.helpClassDefaultPageDesignSS=this.widgetType+'-defaultPageDesignSS';this.helpClassDefaultPageSelect=this.widgetType+'-defaultPageSelect';this.helpClassDefaultCascade=this.widgetType+'-defaultCascade';this.helpClassDefaultChildSelect=this.widgetType+'-defaultChildSelect';this.helpClassDefaultChildDesignSS=this.widgetType+'-defaultChildDesignSS'
this.helpClassURLPageDesignSS=this.widgetType+'-URLPageDesignSS';this.helpClassURLPageSelect=this.widgetType+'-URLPageSelect';this.helpClassURLCascade=this.widgetType+'-URLCascade';this.helpClassURLChildSelect=this.widgetType+'-URLChildSelect';this.helpClassURLChildDesignSS=this.widgetType+'-URLChildDesignSS';this.helpClassURLAliasDesignSS=this.widgetType+'-URLAliasDesignSS';this.helpClassURLAliasSelect=this.widgetType+'-URLAliasSelect';this.urlPage={};this.urlCascade={};this.urlChild={};this.urlPageWrap={};this.urlSettingsWrap={};this.urlChildWrap={};this.urlPageSS={};this.urlChildSS={};this.alias={};this.aliasPage={};this.aliasPageWrap={};this.aliasSettingsWrap={};this.aliasChildWrap={};this.aliasPageSS={};this.aliasChildSS={};this.aliasWrap={};this.aliasSS={};this.changes={};}
DesignEditScreenWidgetType.prototype={screenModified:function()
{var self=this;var modified=false;dfx.foreach(this.changes,function(id){if(self.changes[id]===true){modified=true;return false;}
return true;});this.setModified(modified);},setReadOnly:function(readOnly)
{AbstractSettingsScreenWidgetType.prototype.setReadOnly.call(this,readOnly);var self=this;if(readOnly===false){if(this.defaultCascade){if(this.defaultCascade.getValue()===true){dfx.hideElement(this.defaultChild.select);}else{dfx.showElement(this.defaultChild.select);}}
dfx.foreach(this.urlPage,function(idx){if(self.urlCascade[idx].getValue()===true){var childCell=dfx.getClass(self.settingsWrapChildDesignCell,self.urlSettingsWrap[idx])[0];dfx.addClass(self.urlSettingsWrap[idx],'stretch');dfx.addClass(self.urlChildWrap[idx],'hidden');dfx.addClass(childCell,'hidden');dfx.hideElement(self.urlChild[idx].select);}else{var childCell=dfx.getClass(self.settingsWrapChildDesignCell,self.urlSettingsWrap[idx])[0];dfx.removeClass(self.urlSettingsWrap[idx],'stretch');dfx.removeClass(self.urlChildWrap[idx],'hidden');dfx.removeClass(childCell,'hidden');dfx.showElement(self.urlChild[idx].select);}
return true;});}},init:function(data)
{var self=this;this.designSettings=dfx.clone(data);this.changes={};if(dfx.isArray(this.designSettings.lookups)&&dfx.isset(this.designSettings.lookups[0])&&dfx.isset(this.designSettings.lookups[0]['parentDesign'])){this.inheritDesignName=this.designSettings.lookups[0]['parentDesign'].name;}else{this.inheritDesignName='';}
this.isSite=data.isSite;this.defaultDesignid=this.designSettings.defaultSetting.designid;this.defaultCascadeVal=this.designSettings.defaultSetting.cascade;this.defaultChildid=this.designSettings.defaultSetting.childid;this.defaultSettingsExist=true;if(this.defaultDesignid===null&&this.defaultCascadeVal===true&&this.defaultChildid===null){this.defaultSettingsExist=false;}
dfx.foreach(this.designSettings.lookups,function(idx){if(self.defaultSettingsExist===true){if(self.designSettings.lookups[idx].designSettings.pageid!==self.defaultDesignid||self.designSettings.lookups[idx].designSettings.cascade!==self.defaultCascadeVal||self.designSettings.lookups[idx].designSettings.childid!==self.defaultChildid){self.designSettings.lookups[idx].customised=true;}else{self.designSettings.lookups[idx].customised=false;}}else{if(self.designSettings.lookups[idx].designSettings.pageid!==null||self.designSettings.lookups[idx].designSettings.cascade!==true||self.designSettings.lookups[idx].designSettings.childid!==null){self.designSettings.lookups[idx].customised=true;}else{self.designSettings.lookups[idx].customised=false;}}
return true;});this.designSettingsOri=dfx.clone(this.designSettings);if(this.defaultDesignid===null){this.defaultDesignid=0;this.designSettingsOri.designid=0;}
if(this.defaultChildid===null){this.defaultChildid=0;this.designSettingsOri.childid=0;}
this.defaultSettingsWrap=null;this.defaultChildWrap=null;if(this.readOnly===true){this.linksRemoved=false;this.displayScreenReadOnlyWarning(function(el){dfx.insertBefore(dfx.getId('DesignEditScreen-defaultDesign'),el);},function(){});}
var wrapper=dfx.getId(this.id+'-defaultDesign-items');var childLen=wrapper.childNodes.length;for(var i=(childLen-1);i>=0;i--){dfx.remove(wrapper.childNodes[i]);}
wrapper=dfx.getId(this.id+'-override-items');childLen=wrapper.childNodes.length;for(var i=(childLen-1);i>=0;i--){dfx.remove(wrapper.childNodes[i]);}
wrapper=dfx.getId(this.id+'-aliases-items');childLen=wrapper.childNodes.length;for(var i=(childLen-1);i>=0;i--){dfx.remove(wrapper.childNodes[i]);}
this.projectDesignSelectList={};this.customisationNames={};this.designSelectList={};dfx.foreach(this.designSettings.designs,function(designid){self.designSelectList[designid]=self.designSettings.designs[designid].name;if(self.designSettings.designs[designid].customisations!==[]){dfx.foreach(self.designSettings.designs[designid].customisations,function(custid){self.designSelectList[custid]='&nbsp;--&nbsp;'+self.designSettings.designs[designid].customisations[custid].name;self.customisationNames[custid]=self.designSettings.designs[designid].customisations[custid].name;return true;});}
return true;});if(this.isSite===true){this.defaultPageSelectItemList=this.designSelectList;this.urlPageSelectItemList=this.designSelectList;this.childSelectItemList=this.createDesignSelectItemsList('child');}else{this.defaultPageSelectItemList=this.createDesignSelectItemsList('defaultPage');this.urlPageSelectItemList=this.createDesignSelectItemsList('urlPage');this.childSelectItemList=this.createDesignSelectItemsList('child');}
if(this.designSettings.showURLOverrides===false){wrapper=dfx.getId(this.id+'-override');dfx.hideElement(wrapper);}
this.defaultDesignDiv=dfx.getId(this.id+'-defaultDesign-items');this.overridesDiv=dfx.getId(this.id+'-override-items');this.aliasesDiv=dfx.getId(this.id+'-aliases-items');this.includeWidgets(['Select','ToggleButton'],function(){self.createDefaultDesignSettings(function(){self.createURLOverrides(function(){self.createAliases(function(){self.ready();});});});});},createDesignSelectItemsList:function(type,baseDesigns,aliasIdx)
{var result={};switch(type){case'defaultPage':result[0]='Inheriting';break;case'child':if(this.isSite===false){result[0]='Inheriting from Parent Child Design';}
break;case'urlPage':result[0]='Use Default Page Design - ';break;case'aliases':result[0]='Inheriting from Parent Webpath';break;default:break;}
if(this.isSite===false&&(type==='defaultPage'||type==='child'||type==='aliases')&&this.inheritDesignName.length>0){if(type==='aliases'){result[0]+=' - '+this.designSettings.aliases[aliasIdx].parentDesignName;}else{result[0]+=' - '+this.inheritDesignName;}}
var designs=null;if(baseDesigns){designs=baseDesigns;}else{designs=this.designSelectList;}
var self=this;dfx.foreach(designs,function(designid){result[designid]=designs[designid];return true;});return result;},createDefaultDesignSettings:function(callback)
{var self=this;this.defaultDesignDiv.appendChild(this._createDesignRow('defaultSetting'));this.defaultPage=this.createWidget(this.id+'-defaultPage','Select');this.defaultCascade=this.createWidget(this.id+'-cascade','ToggleButton',false,'slider',this.defaultCascadeVal,'Yes','No');this.defaultChild=this.createWidget(this.id+'-childPage','Select');this.defaultSettingsWrap=dfx.getClass(this.settingsWrap,this.defaultDesignDiv)[0];this.defaultChildWrap=dfx.getClass(this.childSSWrapC,this.defaultDesignDiv)[0];this.defaultPageSS=dfx.getClass(this.ssC,this.defaultPageWrap)[0];this.defaultChildSS=dfx.getClass(this.ssC,this.defaultChildWrap)[0];dfx.addClass(this.defaultPageSS,this.helpClassDefaultPageDesignSS);dfx.addClass(this.defaultChildSS,this.helpClassDefaultChildDesignSS);this.defaultPage.addItems(this.defaultPageSelectItemList);this.defaultChild.addItems(this.childSelectItemList);var rowHeader=dfx.getClass(this.settingsWrapHeader,this.defaultDesignDiv)[0];dfx.setHtml(rowHeader,'Default for all URL\'s');var pageCell=dfx.getClass(this.settingsWrapPageDesignCell,this.defaultDesignDiv)[0];var cascadeCell=dfx.getClass(this.settingsWrapCascadeCell,this.defaultDesignDiv)[0];var childCell=dfx.getClass(this.settingsWrapChildDesignCell,this.defaultDesignDiv)[0];if(this.defaultCascadeVal===true){dfx.addClass(this.defaultSettingsWrap,'stretch');dfx.addClass(this.defaultChildWrap,'hidden');dfx.addClass(childCell,'hidden');}
this.defaultPage.create(function(dsEl){self.defaultCascade.create(function(dcEl){self.defaultChild.create(function(dcdEl){var pageDeisgnLabel=document.createElement('label');var cascadeLabel=document.createElement('label');var chidlDesignLabel=document.createElement('label');dfx.addClass(pageDeisgnLabel,self.labelC);dfx.addClass(cascadeLabel,self.labelC);dfx.addClass(chidlDesignLabel,self.labelC);dfx.addClass(pageDeisgnLabel,self.helpClassDefaultPageSelect);dfx.addClass(cascadeLabel,self.helpClassDefaultCascade);dfx.addClass(chidlDesignLabel,self.helpClassDefaultChildSelect);dfx.addClass(self.defaultPage.select,self.selectC);dfx.addClass(self.defaultChild.select,self.selectC);dfx.setHtml(pageDeisgnLabel,'Page Design');dfx.setHtml(cascadeLabel,'Use For Children');dfx.setHtml(chidlDesignLabel,'Child Design');pageCell.appendChild(pageDeisgnLabel);cascadeCell.appendChild(cascadeLabel);childCell.appendChild(chidlDesignLabel);pageCell.appendChild(dsEl);cascadeCell.appendChild(dcEl);childCell.appendChild(dcdEl);self._setDefaultPageDesign(self.defaultDesignid);self._filterChildDesignSelection(self.defaultChild,self.defaultDesignid);if(self.defaultDesignid===0&&self.defaultCascadeVal){dfx.foreach(self.childSelectItemList,function(designid){designid=parseInt(designid,10);if((designid!==0)&&(designid!==null)){self.defaultChildid=designid;return false;}
return true;});}
self._setDefaultChildDesign(self.defaultChildid);self.defaultPage.addItemSelectedEvent(function(){var val=parseInt(self.defaultPage.getValue(),10);self._setDefaultPageDesign(val);var currChildVal=parseInt(self.defaultChild.getValue(false,false),10);self._filterChildDesignSelection(self.defaultChild,val);if(val===currChildVal){if(val===0){var childItems=self.defaultChild.getItems();self._setDefaultChildDesign(childItems[0]);}else{self._setDefaultChildDesign(0);}
self.defaultCascade.setValue(true);}else{self._setDefaultChildDesign(currChildVal);}
var oriVal=self.designSettingsOri.defaultSetting.designid;if(oriVal===null){oriVal=0;}else{oriVal=parseInt(oriVal,10);}
if(parseInt(val,10)!==oriVal){self.changes.DefaultPageDesignUpdated=true;}else{self.changes.DefaultPageDesignUpdated=false;}
self.screenModified();});self.defaultChild.addItemSelectedEvent(function(){var val=parseInt(self.defaultChild.getValue(),10);self._setDefaultChildDesign(val);if(val!==self.designSettingsOri.defaultSetting.childid){self.changes.DefaultChildDesignUpdated=true;}else{self.changes.DefaultChildDesignUpdated=false;}
self.screenModified();});self.defaultCascade.addToggleOnEvent(function(isOn){dfx.addClass(self.defaultSettingsWrap,'stretch');dfx.addClass(self.defaultChildWrap,'hidden');dfx.addClass(childCell,'hidden');dfx.hideElement(self.defaultChild.select);if(self.defaultCascadeVal===isOn){self.changes.DefaultCascade=false;if(isOn===true){self.changes.DefaultChildDesignUpdated=false;}}else{self.changes.DefaultCascade=true;}
self.screenModified();});self.defaultCascade.addToggleOffEvent(function(isOn){dfx.removeClass(self.defaultSettingsWrap,'stretch');dfx.removeClass(self.defaultChildWrap,'hidden');dfx.removeClass(childCell,'hidden');dfx.showElement(self.defaultChild.select);if(self.defaultCascadeVal===isOn){self.changes.DefaultCascade=false;}else{self.changes.DefaultCascade=true;}
self.screenModified();});if(callback){callback.call(self);}});});});},_setDefaultPageDesign:function(designid)
{var self=this;this.defaultPage.setValue(designid+'',true);var inheriting=false;if(designid===0||designid==='0'){inheriting=true;dfx.foreach(this.designSettings.lookups,function(idx){if(window.location.href.search(self.designSettings.lookups[idx].domain)===0){designid=self.designSettings.lookups[idx].parentDesign.id;return false;}
return true;});}
self._setDefaultPageDesignSS(designid);var designName='';if(dfx.isset(this.designSettings.designs[designid])===true){designName=this.designSettings.designs[designid].name;}else{designName=this.customisationNames[designid];}
dfx.foreach(this.urlPage,function(idx){var urlPageid=parseInt(self.urlPage[idx].getValue(false,false),10);if(urlPageid!==0&&urlPageid===parseInt(designid,10)){self._setUrlPageDesign(idx,0);}else{if(self.urlPage[idx].getValue(false,false)==='0'){if(self.defaultPage.getValue(false,false)==='0'){self._setUrlPageDesignSS(idx,self.designSettings.lookups[idx].parentDesign.id);}else{self._setUrlPageDesignSS(idx,designid);}}}
if(self.isSite===true){self._filterChildDesignSelection(self.urlPage[idx],designid,self.createDesignSelectItemsList('defaultPage'));}else{self._filterChildDesignSelection(self.urlPage[idx],designid);}
if(urlPageid!==0){self._setUrlPageDesign(idx,urlPageid);}
if(self.defaultPage.getValue(false,false)==='0'){self.urlPage[idx].setTextContent(0,'Use Default Page Design');}else{self.urlPage[idx].setTextContent(0,'Use Default Page Design - '+designName);}
return true;});},_setDefaultChildDesign:function(designid)
{var self=this;this.defaultChild.setValue(designid+'',true);self._setDefaultChildDesignSS(designid);},_setDefaultPageDesignSS:function(designid)
{var self=this;this.defaultPageSS.src=Widget.BASE_URL+'/?tb=1&a='+designid;},_setDefaultChildDesignSS:function(designid)
{var self=this;if(designid===0||designid==='0'){dfx.foreach(this.designSettings.lookups,function(idx){if(window.location.href.search(self.designSettings.lookups[idx].domain)===0){designid=self.designSettings.lookups[idx].parentDesign.id;return false;}
return true;});}
this.defaultChildSS.src=Widget.BASE_URL+'/?tb=1&a='+designid;},_filterChildDesignSelection:function(childSelect,pageValue,altSelect,itemList)
{var self=this;pageValue=parseInt(pageValue,10);childSelect.removeAllOptions();var selectList=null;if(itemList){selectList=itemList;}else{selectList=this.childSelectItemList;}
if(altSelect){selectList=altSelect;}
dfx.foreach(selectList,function(designid){designid=parseInt(designid,10);if(designid===0||designid!==pageValue){if(pageValue===0&&designid===0){return true;}
childSelect.addOption(selectList[designid].replace(/&nbsp;/,' ').replace(/&nbsp;/,' '),parseInt(designid,10));}
return true;});},createURLOverrides:function(callback)
{var self=this;dfx.foreach(this.designSettings.lookups,function(idx){var urlRow=self._createDesignRow(idx);self.overridesDiv.appendChild(urlRow);var customised=self.designSettings.lookups[idx].customised;var cascade=null;if(customised===true){cascade=self.designSettings.lookups[idx].designSettings.cascade;}else{cascade=true;}
self.designSettingsOri.lookups[idx].designSettings.cascade=cascade;self.urlPage[idx]=self.createWidget(self.id+'-defaultPage-'+idx,'Select');self.urlCascade[idx]=self.createWidget(self.id+'-cascade-'+idx,'ToggleButton',false,'slider',cascade,'Yes','No');self.urlChild[idx]=self.createWidget(self.id+'-childPage-'+idx,'Select');self.urlPageWrap[idx]=dfx.getClass(self.parentSSWrapC,urlRow)[0];self.urlSettingsWrap[idx]=dfx.getClass(self.settingsWrap,urlRow)[0];self.urlChildWrap[idx]=dfx.getClass(self.childSSWrapC,urlRow)[0];self.urlPageSS[idx]=dfx.getClass(self.ssC,self.urlPageWrap[idx])[0];self.urlChildSS[idx]=dfx.getClass(self.ssC,self.urlChildWrap[idx])[0];dfx.addClass(self.urlPageSS[idx],self.helpClassURLPageDesignSS);dfx.addClass(self.urlChildSS[idx],self.helpClassURLChildDesignSS);if(self.designSettings.lookups[idx].designs){var projectid=self.designSettings.lookups[idx].projectid;if(dfx.isset(self.projectDesignSelectList[projectid])===false){self.projectDesignSelectList[projectid]={};dfx.foreach(self.designSettings.lookups[idx].designs,function(designid){self.projectDesignSelectList[projectid][designid]=self.designSettings.lookups[idx].designs[designid].name;if(self.designSettings.lookups[idx].designs[designid].customisations!==[]){dfx.foreach(self.designSettings.lookups[idx].designs[designid].customisations,function(custid){self.projectDesignSelectList[projectid][custid]='&nbsp;--&nbsp;'+self.designSettings.lookups[idx].designs[designid].customisations[custid].name;self.customisationNames[custid]=self.designSettings.lookups[idx].designs[designid].customisations[custid].name;return true;});}
return true;});}
self.urlPage[idx].addItems(self.createDesignSelectItemsList('urlPage',self.projectDesignSelectList[projectid]));self.urlChild[idx].addItems(self.createDesignSelectItemsList('child',self.projectDesignSelectList[projectid]));}else{if(self.isSite===true){self.urlPage[idx].addItems(self.createDesignSelectItemsList('defaultPage'));}else{self.urlPage[idx].addItems(self.defaultPageSelectItemList);}
self.urlChild[idx].addItems(self.childSelectItemList);}
var rowHeader=dfx.getClass(self.settingsWrapHeader,urlRow)[0];dfx.setHtml(rowHeader,self.designSettings.lookups[idx].url);var pageCell=dfx.getClass(self.settingsWrapPageDesignCell,urlRow)[0];var cascadeCell=dfx.getClass(self.settingsWrapCascadeCell,urlRow)[0];var childCell=dfx.getClass(self.settingsWrapChildDesignCell,urlRow)[0];if(cascade===true){dfx.addClass(self.urlSettingsWrap[idx],'stretch');dfx.addClass(self.urlChildWrap[idx],'hidden');dfx.addClass(childCell,'hidden');}
self.urlPage[idx].create(function(dsEl){self.urlCascade[idx].create(function(dcEl){self.urlChild[idx].create(function(dcdEl){if(self.designSettings.lookups[idx].designs){self.urlPage[idx].disable();self.urlCascade[idx].disable();self.urlChild[idx].disable();}
var pageDeisgnLabel=document.createElement('label');var cascadeLabel=document.createElement('label');var chidlDesignLabel=document.createElement('label');dfx.addClass(pageDeisgnLabel,self.labelC);dfx.addClass(cascadeLabel,self.labelC);dfx.addClass(chidlDesignLabel,self.labelC);dfx.addClass(pageDeisgnLabel,self.helpClassURLPageSelect);dfx.addClass(cascadeLabel,self.helpClassURLCascade);dfx.addClass(chidlDesignLabel,self.helpClassURLChildSelect);dfx.addClass(self.urlPage[idx].select,self.selectC);dfx.addClass(self.urlChild[idx].select,self.selectC);dfx.setHtml(pageDeisgnLabel,'Page Design');dfx.setHtml(cascadeLabel,'Use For Children');dfx.setHtml(chidlDesignLabel,'Child Design');pageCell.appendChild(pageDeisgnLabel);cascadeCell.appendChild(cascadeLabel);childCell.appendChild(chidlDesignLabel);pageCell.appendChild(dsEl);cascadeCell.appendChild(dcEl);childCell.appendChild(dcdEl);var itemList=null;if(dfx.isset(self.designSettings.lookups[idx].projectid)===true){var projectid=self.designSettings.lookups[idx].projectid;itemList=self.projectDesignSelectList[projectid];}
if(customised===false){if(self.isSite===true){self._setUrlPageDesign(idx,self.designSettings.lookups[idx].designSettings.pageid);self._filterChildDesignSelection(self.urlChild[idx],self.designSettings.lookups[idx].designSettings.pageid,null,itemList);}else{self._setUrlPageDesign(idx,0);self._filterChildDesignSelection(self.urlChild[idx],0,null,itemList);}}else{self._setUrlPageDesign(idx,self.designSettings.lookups[idx].designSettings.pageid);if(self.designSettings.lookups[idx].designSettings.pageid===null){self._filterChildDesignSelection(self.urlChild[idx],0,null,itemList);}else{self._filterChildDesignSelection(self.urlChild[idx],self.designSettings.lookups[idx].designSettings.pageid,null,itemList);}}
self._setUrlChildDesign(idx,self.designSettings.lookups[idx].designSettings.childid);if(self.defaultDesignid===null&&self.defaultCascadeVal){dfx.foreach(self.childSelectItemList,function(designid){designid=parseInt(designid,10);if(designid!==0){self.defaultChildid=designid;return false;}
return true;});}
self.urlPage[idx].addItemSelectedEvent(function(){var val=parseInt(self.urlPage[idx].getValue(),10);self._setUrlPageDesign(idx,val);var currChildVal=parseInt(self.urlChild[idx].getValue(false,false),10);self._filterChildDesignSelection(self.urlChild[idx],val);if(val===currChildVal){if(val===0){var childItems=self.urlChild[idx].getItems();self._setUrlChildDesign(idx,childItems[0]);}else{self._setUrlChildDesign(idx,0);}
self.urlCascade[idx].setValue(true);}else{self._setUrlChildDesign(idx,currChildVal);}
var oriVal=self.designSettingsOri.lookups[idx].designSettings.pageid;if(oriVal===null){oriVal=0;}
if(parseInt(val,10)!==oriVal){self.changes['URLPageDesign'+idx]=true;}else{self.changes['URLPageDesign'+idx]=false;}
self.screenModified();});self.urlChild[idx].addItemSelectedEvent(function(){var val=parseInt(self.urlChild[idx].getValue(),10);self._setUrlChildDesign(idx,val);var oriVal=self.designSettingsOri.lookups[idx].designSettings.childid;if(oriVal===null){oriVal=0;}
if(parseInt(val,10)!==oriVal){self.changes['URLChildDesign'+idx]=true;}else{self.changes['URLChildDesign'+idx]=false;}
self.screenModified();});self.urlCascade[idx].addToggleOnEvent(function(isOn){dfx.addClass(self.urlSettingsWrap[idx],'stretch');dfx.addClass(self.urlChildWrap[idx],'hidden');dfx.addClass(childCell,'hidden');dfx.hideElement(self.urlChild[idx].select);if(self.designSettingsOri.lookups[idx].designSettings.cascade===isOn){self.changes['URLCascade'+idx]=false;if(isOn===true){self.changes['URLChildDesign'+idx]=false;}}else{self.changes['URLCascade'+idx]=true;}
self.screenModified();});self.urlCascade[idx].addToggleOffEvent(function(isOn){dfx.removeClass(self.urlSettingsWrap[idx],'stretch');dfx.removeClass(self.urlChildWrap[idx],'hidden');dfx.removeClass(childCell,'hidden');dfx.showElement(self.urlChild[idx].select);if(self.designSettingsOri.lookups[idx].designSettings.cascade===isOn){self.changes['URLCascade'+idx]=false;}else{self.changes['URLCascade'+idx]=true;}
self.screenModified();self._setUrlChildDesignSS(idx,self.urlChild[idx].getValue(false,false));});});});});return true;});if(callback){callback.call(self);}},createAliases:function(callback)
{var self=this;var exists=false;dfx.foreach(this.designSettings.aliases,function(idx){exists=true;var aliasURL=self.designSettings.aliases[idx].aliasURL;var aliasRow=self._createDesignRow('alias-row-'+idx);self.aliasesDiv.appendChild(aliasRow);self.aliasPage[idx]=self.createWidget(self.id+'-alias-'+idx,'Select');self.aliasPage[idx].addItems(self.createDesignSelectItemsList('aliases',null,idx));self.aliasPageWrap[idx]=dfx.getClass(self.parentSSWrapC,aliasRow)[0];self.aliasSettingsWrap[idx]=dfx.getClass(self.settingsWrap,aliasRow)[0];self.aliasChildWrap[idx]=dfx.getClass(self.childSSWrapC,aliasRow)[0];self.aliasPageSS[idx]=dfx.getClass(self.ssC,self.aliasPageWrap[idx])[0];self.aliasChildSS[idx]=dfx.getClass(self.ssC,self.aliasChildWrap[idx])[0];dfx.addClass(self.aliasPageSS[idx],self.helpClassURLAliasDesignSS);var rowHeader=dfx.getClass(self.settingsWrapHeader,aliasRow)[0];dfx.setHtml(rowHeader,'http://'+aliasURL);var pageCell=dfx.getClass(self.settingsWrapPageDesignCell,aliasRow)[0];var cascadeCell=dfx.getClass(self.settingsWrapCascadeCell,aliasRow)[0];var childCell=dfx.getClass(self.settingsWrapChildDesignCell,aliasRow)[0];dfx.addClass(self.aliasSettingsWrap[idx],'stretch');dfx.addClass(self.aliasChildWrap[idx],'hidden');dfx.addClass(childCell,'hidden');self.aliasPage[idx].create(function(dsEl){var pageDeisgnLabel=document.createElement('label');dfx.addClass(pageDeisgnLabel,self.labelC);dfx.addClass(pageDeisgnLabel,self.helpClassURLAliasSelect);dfx.addClass(self.aliasPage[idx].select,self.selectC);dfx.setHtml(pageDeisgnLabel,'Page Design');pageCell.appendChild(pageDeisgnLabel);pageCell.appendChild(dsEl);if(self.designSettings.aliases[idx].designid!==null){self.aliasPage[idx].setValue(self.designSettings.aliases[idx].designid,true);self.aliasPageSS[idx].src=Widget.BASE_URL+'/?tb=1&a='+self.designSettings.aliases[idx].designid;}else{self.aliasPageSS[idx].src=Widget.BASE_URL+'/?tb=1&a='+self.designSettings.aliases[idx].parentDesignid;}
self.aliasPage[idx].addItemSelectedEvent(function(){var val=parseInt(self.aliasPage[idx].getValue(),10);if(val===0){self.aliasPageSS[idx].src=Widget.BASE_URL+'/?tb=1&a='+self.designSettings.aliases[idx].parentDesignid;}else{self.aliasPageSS[idx].src=Widget.BASE_URL+'/?tb=1&a='+val;}
var oriVal=self.designSettingsOri.aliases[idx].designid;if(oriVal===null){oriVal=0;}else{oriVal=parseInt(oriVal,10);}
if(parseInt(val,10)!==oriVal){self.changes['Alias'+idx]=true;}else{self.changes['Alias'+idx]=false;}
self.screenModified();});});return true;});if(exists===false){var noAliasPara=document.createElement('div');dfx.addClass(noAliasPara,'DesignEditScreen-noAliasDesc');dfx.setHtml(noAliasPara,'No aliases exist for this asset.');self.aliasesDiv.appendChild(noAliasPara);}
if(callback){callback.call(self);}},_setUrlPageDesign:function(idx,designid)
{var self=this;if(designid===null){designid=0;}
var defaultPageid=parseInt(this.defaultPage.getValue(false,false),10);if(defaultPageid===0){this.urlPage[idx].setTextContent(0,'Use Default Page Design');this.urlPage[idx].setValue(designid+'',true);}else{var designName='';if(dfx.isset(this.designSettings.designs[defaultPageid])===true){designName=this.designSettings.designs[defaultPageid].name;}else{designName=this.customisationNames[defaultPageid];}
var itemList=null;if(dfx.isset(this.designSettings.lookups[idx].projectid)===true){var projectid=this.designSettings.lookups[idx].projectid;itemList=this.projectDesignSelectList[projectid];}
this.urlPage[idx].setTextContent(0,'Use Default Page Design - '+designName);if(defaultPageid.toString()===designid.toString()){if(this.isSite===true){this._filterChildDesignSelection(this.urlPage[idx],designid,this.createDesignSelectItemsList('defaultPage'),itemList);}else{this._filterChildDesignSelection(this.urlPage[idx],designid,null,itemList);}
this.urlPage[idx].setTextContent(0,'Use Default Page Design - '+designName);this.urlPage[idx].setValue(0+'',true);}else{this.urlPage[idx].setValue(designid+'',true);}}
self._setUrlPageDesignSS(idx,designid);},_setUrlChildDesign:function(idx,designid)
{var self=this;if(designid===null){designid=0;}
this.urlChild[idx].setValue(designid+'',true);self._setUrlChildDesignSS(idx,designid);},_setUrlPageDesignSS:function(idx,designid)
{var self=this;if(designid===0||designid==='0'){var defaultDesignid=this.defaultPage.getValue(false,false);if(defaultDesignid==='0'){designid=this.designSettings.lookups[idx].parentDesign.id;}else{designid=defaultDesignid;}}
this.urlPageSS[idx].src=Widget.BASE_URL+'/?tb=1&a='+designid;},_setUrlChildDesignSS:function(idx,designid)
{var self=this;if(designid===0||designid==='0'){designid=this.designSettings.lookups[idx].parentDesign.id;}
this.urlChildSS[idx].src=Widget.BASE_URL+'/?tb=1&a='+designid;},_createDesignRow:function(id)
{var self=this;var rowid=this.id+'-'+id;var rowdiv=document.createElement('div');rowdiv.id=rowid;dfx.addClass(rowdiv,this.rowC);var c='<div class="'+this.parentSSWrapC+'"><img class="'+this.ssC+'" width="146" height="100" src="" /></div>';c+='<div class="'+this.settingsWrap+'">';c+='  <div class="'+this.settingsWrapHeader+'">&nbsp;</div>';c+='  <div class="'+this.settingsWrapBody+'">';c+='    <div class="'+this.settingsWrapBodyCell+' '+this.settingsWrapPageDesignCell+'">&nbsp;</div>';c+='    <div class="'+this.settingsWrapBodyCell+' '+this.settingsWrapCascadeCell+'">&nbsp;</div>';c+='    <div class="'+this.settingsWrapBodyCell+' '+this.settingsWrapChildDesignCell+'">&nbsp;</div>';c+='  </div>';c+='</div>';c+='<div class="'+this.childSSWrapC+'"><img class="'+this.ssC+'" width="146" height="100" src="" /></div>';dfx.setHtml(rowdiv,c);return rowdiv;},getAutoSaveContents:function()
{var saveData={};return saveData;},loadAutoSaveContents:function(content,callBack)
{if(callback){callback.call(this);}},saveScreenSettings:function()
{var self=this;var params={screen:this.id+'Widget',assetid:this.assetid,defaultPageDesign:this.defaultPage.getValue(false,false),defaultCascade:this.defaultCascade.getValue(),defaultChildDesign:this.defaultChild.getValue(false,false),urlLookups:[],aliases:[]};dfx.foreach(this.designSettings.lookups,function(idx){var projectid=null;if(dfx.isset(self.designSettings.lookups[idx].projectid)===true){projectid=self.designSettings.lookups[idx].projectid;}
if(dfx.isset(self.designSettings.lookups[idx].designs)===true){params.urlLookups.push({url:self.designSettings.lookups[idx].url,projectid:projectid});}else{params.urlLookups.push({url:self.designSettings.lookups[idx].url,pageid:self.urlPage[idx].getValue(false,false),cascade:self.urlCascade[idx].getValue(),childid:self.urlChild[idx].getValue(false,false),projectid:projectid});}
return true;});params.urlLookups=dfx.jsonEncode(params.urlLookups);dfx.foreach(this.designSettings.aliases,function(idx){var changeid='Alias'+idx;if(dfx.isset(self.changes[changeid])&&self.changes[changeid]===true){params.aliases.push({designid:self.aliasPage[idx].getValue(),aliasURL:self.designSettings.aliases[idx].aliasURL});}
return true;});params.aliases=dfx.jsonEncode(params.aliases);this.displayDisabledDiv(true);this.parent.processScreen(params,function(data){self.reset(function(){self.switchOnScreen();self.removeDisabledDiv();});},true);},revertScreenSettings:function()
{var self=this;this.displayDisabledDiv(true);this.reset(function(){self.removeDisabledDiv();});},reset:function(callback)
{var self=this;var params={mode:'EditScreenMode',screen:'DesignEditScreenWidget',type:'getDesignData',assetid:this.assetid};this.parent.getScreenData(params,function(data){var designData=dfx.jsonDecode(data);self.init(designData);callback.call(self);});},switchOnScreen:function()
{var self=this;if(this.readOnly===true){this.disableSaveButton();}else{this.setSaveButton(function(){self.saveScreenSettings();},function(){self.revertScreenSettings();});}},switchOffScreen:function(){}};dfx.inherits('DesignEditScreen','AbstractSettingsScreen');function KeywordAdminScreenWidgetType(id,screenid,system,title,parent,assetid,readOnly)
{AbstractSettingsScreenWidgetType.call(this,id,screenid,system,title,parent,assetid,readOnly);this.widgetType='KeywordAdminScreen';this.formats=[];this.infobox=WidgetStore.get('KeywordAdminScreen-infobox');this.oldId='';this.predef=0;this.custom=0;}
KeywordAdminScreenWidgetType.prototype={init:function(data)
{var self=this;var className='KeywordFormatScreen-preview';var outputArea=dfx.getId(className+'-output');var previewButton=WidgetStore.get(className+'-button');if(dfx.isset(previewButton)===true){previewButton.addClickEvent(function(e){self.refreshOutput();},true);}
this.formats=dfx.jsonDecode(data.formats);this.initInfobox();this.displayItem(false);var deleteB=WidgetStore.get('KeywordFormatScreen-properties-delete');if(dfx.isset(deleteB)===true){deleteB.addClickEvent(function(){self.confirmDialog('Are you sure you want to delete this keyword format?','Delete Keyword Format',function(){self.deleteItem();});});}},getAutoSaveContents:function()
{var saveData={};return saveData;},loadAutoSaveContents:function(content,callBack)
{if(callback){callback.call(this);}},refreshOutput:function()
{var className='KeywordFormatScreen-preview';var syntax=dfx.getId(className+'-syntax').value;var sample=dfx.getId(className+'-sample').value;var outputArea=dfx.getId(className+'-output');this.request({action:'processScreen',syntax:syntax,sample:sample,option:'preview',mode:'AdminScreenMode',screen:'KeywordAdminScreenWidget'},function(data){if(dfx.isset(outputArea)===true){dfx.setHtml(outputArea,data);}});},initInfobox:function()
{var self=this;var callback=function(){self.displayItem();};if(dfx.isset(this.infobox)===true){this.infobox.addSection('predefined','Pre-defined Formats');this.infobox.addSection('custom','Custom Formats');this.custom=0;this.predef=0;var formatSection='';var firstItem=false;for(var formatid in this.formats){var formatName=this.formats[formatid][0]['format_name'];if(firstItem===false){firstItem=true;if(this.infobox.hasSelection()===false){this.infobox.setSelected(formatName);}}
var format=this.formats[formatid][0];var formatTitle=format.friendly_name;if(format.custom===false){formatSection='Pre-defined Formats';self.predef++;this.infobox.addItem('predefined',formatName,formatTitle,callback);}else{formatSection='Custom Formats';self.custom++;this.infobox.addItem('custom',formatName,formatTitle,callback);}}
this.infobox.setTitle('Keyword Formats');var subtitle='Pre-defined ('+this.predef+'), Custom ('+this.custom+')';this.infobox.setSubtitle(subtitle);this.infobox.addButton('add','Add New','right');this.infobox.addButtonClickEvent('right',function(){self.displayItem(true);});}},displayItem:function(addNew)
{this.switchOffScreen();if(addNew===true){var self=this;this.infobox.reset();this.infobox.setSelected('untitled');this.initInfobox();this.infobox.addItem('custom','untitled','Untitled',function(){self.displayItem(false);});this.disablePreview();}else{var name=this.infobox.getClickedId();var formatid=this.getFormatidByName(name);if(name==='untitled'){this.infobox.reset();this.initInfobox();this.displayItem(true);return;}else{this.enablePreview();if(dfx.isset(this.formats[formatid])===true){var format=this.formats[formatid][0];}else{this.infobox.reset();this.infobox.setSelected('toupper');this.initInfobox();this.displayItem(false);return;}}}
var fText=dfx.getId('KeywordFormatScreen-properties-friendlyText');var uText=dfx.getId('KeywordFormatScreen-properties-usageText');var dText=dfx.getId('KeywordFormatScreen-properties-descText');var dButton=WidgetStore.get('KeywordFormatScreen-properties-delete');var fid=WidgetStore.get('KeywordFormatScreen-properties-fid');var fInput=WidgetStore.get('KeywordFormatScreen-properties-friendlyInput');var uInput=WidgetStore.get('KeywordFormatScreen-properties-usageInput');var dInput=WidgetStore.get('KeywordFormatScreen-properties-descInput');var cWrap=dfx.getId('KeywordFormatScreen-properties-code');var cInput=WidgetStore.get('KeywordFormatScreen-properties-codeInput');if(addNew===true){fid.setValue('');fInput.setValue('');uInput.setValue('');dInput.setValue('');cInput.setValue('');fInput.show();uInput.show();dInput.show();dfx.swapClass(cWrap,'hiding','showing');dfx.swapClass(fText,'showing','hiding');dfx.swapClass(uText,'showing','hiding');dfx.swapClass(dText,'showing','hiding');dButton.disable();this.switchOnScreen();}else{if(format.custom===true){fid.setValue(formatid);uInput.setValue(format.format_name);fInput.setValue(format.friendly_name);dInput.setValue(format.description);cInput.setValue(format.php_code);fInput.show();uInput.show();dInput.show();dfx.swapClass(cWrap,'hiding','showing');dfx.swapClass(fText,'showing','hiding');dfx.swapClass(uText,'showing','hiding');dfx.swapClass(dText,'showing','hiding');dButton.enable();this.switchOnScreen();}else if(format.custom===false){fid.setValue(formatid);dfx.setHtml(fText,format.friendly_name);dfx.setHtml(uText,format.format_name);dfx.setHtml(dText,format.description);dfx.swapClass(fText,'hiding','showing');dfx.swapClass(uText,'hiding','showing');dfx.swapClass(dText,'hiding','showing');fInput.hide();uInput.hide();dInput.hide();dfx.swapClass(cWrap,'showing','hiding');dButton.disable();}}
var syntax=WidgetStore.get('KeywordFormatScreen-preview-syntax');if(dfx.isset(syntax)===true){syntax.setValue('string~'+name);}
this.refreshOutput();},getFormatidByName:function(name)
{for(var formatid in this.formats){var formatName=this.formats[formatid][0]['format_name'];if(formatName===name){return formatid;}}
return-1;},deleteItem:function()
{var pid=this.infobox.getPrevClickedId();var id=this.infobox.getClickedId();var self=this;this.request({action:'processScreen',uid:id,option:'delete',mode:'AdminScreenMode',screen:'KeywordAdminScreenWidget'},function(data){self.formats=dfx.jsonDecode(data);self.infobox.reset();self.infobox.setSelected(pid);self.initInfobox();self.displayItem(false);});},saveKeywordFormat:function()
{var fid=WidgetStore.get('KeywordFormatScreen-properties-fid').getValue();var fInput=WidgetStore.get('KeywordFormatScreen-properties-friendlyInput');var uText=dfx.getId('KeywordFormatScreen-properties-usageText');var uInput=WidgetStore.get('KeywordFormatScreen-properties-usageInput');var dInput=WidgetStore.get('KeywordFormatScreen-properties-descInput');var cInput=WidgetStore.get('KeywordFormatScreen-properties-codeInput');var uid=uInput.getValue();if(uid===''){return;}
var params={fid:fid,uid:uid,friendly:fInput.getValue(),desc:dInput.getValue(),code:cInput.getValue(),option:'save',action:'processScreen',mode:'AdminScreenMode',screen:'KeywordAdminScreenWidget'};if(dfx.isset(this.formats[fid])===true){var self=this;var currentUsageName=this.formats[fid][0]['format_name'];var newUsageName=uInput.getValue();if(newUsageName!==currentUsageName){this.confirmDialog('Are you sure you want to rename this keyword format?<br /> All existing keyword replacements that are using this keyword format will no longer work.','Rename Keyword Format',function(){self.save(params);});}else{this.save(params);}
return;}else{this.save(params);}},save:function(params)
{for(var formatid in this.formats){var formatName=this.formats[formatid][0]['format_name'];if(formatName===params.uid&&formatid!==params.fid){var friendly=this.formats[formatid][0]['friendly_name'];var msg='The usage name "'+formatName+'"  is being used by the "'+friendly+'" keyword format. Please enter a different usage name';this.confirmDialog(msg,'Invalid Usage Name');return;}}
var self=this;this.request(params,function(data){if(data==='Invalid code'){self.confirmDialog('There is a parse error in the PHP code that you have entered into the code field. Please fix this error before saving your changes.','Invalid Code');}else{self.formats=dfx.jsonDecode(data);self.infobox.reset();self.infobox.setSelected(params.uid);self.enablePreview();self.initInfobox();self.displayItem(false);}});},disablePreview:function()
{var preview=dfx.getId('KeywordFormatScreen-preview-container');dfx.hideElement(preview);},enablePreview:function()
{var preview=dfx.getId('KeywordFormatScreen-preview-container');dfx.showElement(preview);},switchOnScreen:function()
{var self=this;if(this.readOnly===true){this.disableSaveButton();}else{this.setSaveButton(function(){self.saveKeywordFormat();},function(){});}},switchOffScreen:function(){}};dfx.inherits('KeywordAdminScreen','AbstractSettingsScreen');function LinkingEditScreenWidgetType(id,screenid,system,title,parent,assetid,readOnly)
{AbstractSettingsScreenWidgetType.call(this,id,screenid,system,title,parent,assetid,readOnly);this.widgetType='LinkingEditScreen';this.parents=null;this.webPath='';this.changeStack=[];this.purging=false;this.contextClassname='dependency-usageContext';this.contextDescClassname='dependency-usageContextDesc';this.contextTagClassname='dependency-usageContextTag';this.contextCurvesClassname='dependency-usageContextCurves';this.contextTypeClassname='dependency-usageContextType';this.referenceExists=false;}
LinkingEditScreenWidgetType.prototype={screenModified:function()
{var self=this;var saveOn=false;dfx.foreach(this.parentInfo,function(pid){if(self.parentInfo[pid].newLink===true){saveOn=true;return false;}
if(self.parentInfo[pid].newLink===false){if(self.parentInfo[pid].showMenu!==self.parentInfoOri[pid].showMenu){saveOn=true;return false;}}
if(self.parentInfo[pid].deleted===true&&self.parentInfo[pid].newLink===false){saveOn=true;return false;}
if(self.parentInfo[pid].deleted===false&&self.parentInfo[pid].newLink===true){saveOn=true;return false;}
return true;});if(self.changeStack.length>1){saveOn=true;}
this.setModified(saveOn);return saveOn;},setReadOnly:function(readOnly)
{AbstractSettingsScreenWidgetType.prototype.setReadOnly.call(this,readOnly);if(readOnly===false){for(var pid in this.parentInfo){if(this.parentInfo.hasOwnProperty(pid)===true){var deleteBtn=dfx.getId(this.id+'-row-delete-'+pid);dfx.removeClass(deleteBtn,'hide');}}}
for(var pid in this.parentInfo){if(this.parentInfo.hasOwnProperty(pid)===true){var toggleSlider=WidgetStore.get(this.id+'-showMenu-'+pid);toggleSlider.setReadOnly(this.readOnly);}}
var holder=dfx.getId(this.id+'-currentLinksSectionsectionHeader-buttonHolder');if(readOnly===true){dfx.hideElement(holder);}else{dfx.showElement(holder);}
var newLinkWdgt=WidgetStore.get(this.id+'-currentLinksSection-Button-NewLink');newLinkWdgt.setReadOnly(readOnly);if(readOnly===true){var readOnlyMask=document.createElement('div');dfx.addClass(readOnlyMask,this.widgetType+'-directChildren-readOnlyMask');dfx.showElement(readOnlyMask);dfx.setHtml(readOnlyMask,'&nbsp;');var wrapper=dfx.getId(this.id+'-directChildren-wrap');if(wrapper!==null){wrapper.appendChild(readOnlyMask);dfx.showElement(childrenMask);}}else{var childrenMask=dfx.getClass(this.widgetType+'-directChildren-readOnlyMask',dfx.getId(this.id+'-directChildren-wrap'))[0];if(childrenMask){dfx.remove(childrenMask);}}},init:function(data)
{var self=this;this.createLastLinkWarning();if(data.inTrash===true){this.showLastLinkWarning(data.inTrash);}
if(dfx.isset(data.parentInfo)===false){this.parentInfo={};this.parentInfoOri={};}else{this.parentInfo=dfx.clone(data.parentInfo);this.parentInfoOri=dfx.clone(data.parentInfo);}
this.isSite=data.isSite;this.isProjectFolder=data.isProjectFolder||false;this.webPath=data.webPath;this.linksRemoved=data.linksRemoved;this.directChildren=data.children;this.deps=data.references;this.tagLineData=data.tagLineData;this.withSortOrder=data.withSortOrder;if(this.readOnly===true){this.linksRemoved=false;this.displayScreenReadOnlyWarning(function(el){dfx.insertBefore(dfx.getId('LinkingEditScreen-currentLinksSection'),el);},function(){});}
var wrapper=dfx.getId(this.id+'-linksWrapper');var childLen=wrapper.childNodes.length;for(var i=(childLen-1);i>=0;i--){dfx.remove(wrapper.childNodes[i]);}
if(this.isSite===true||this.isProjectFolder===true){dfx.hideElement(dfx.getId(this.id+'-currentLinksSection'));}
if(this.isSite===false){var header=dfx.getId(this.id+'-currentLinksSectionsectionHeader');dfx.showElement(header);this.createLinksTable();}
this.createReferences(function(){self.createDirectChildren();if(self.isSite===false){var newLinkBtn=WidgetStore.get(self.id+'-currentLinksSection-Button-NewLink');var newLinkPickerid=self.id+'-newLinkPicker';var newLinkPicker=WidgetStore.get('EditingAssetPicker');newLinkPicker.setScreen(newLinkPickerid);newLinkPicker.setUniqueSelect(true);newLinkPicker.resetProjectFolderList(newLinkPickerid);newLinkPicker.setForceShowRoots(newLinkPickerid,true);if(data.type!==''){if(data.type==='*'){var folders=['Documents','Images','Movies','Users'];var fLen=folders.length;for(var i=0;i<fLen;i++){newLinkPicker.addProjectFolderWhiteList(newLinkPickerid,folders[i]);}}else if(data.type==='folder'){var folders=['Documents','Images','Movies'];var fLen=folders.length;for(var i=0;i<fLen;i++){if(dfx.inArray(folders[i],data.parentProjectFolders,true)===true){newLinkPicker.addProjectFolderWhiteList(newLinkPickerid,folders[i]);}}
newLinkPicker.setHideSite(newLinkPickerid);}else if(data.type!=='*'){newLinkPicker.addProjectFolderWhiteList(newLinkPickerid,data.type);newLinkPicker.setHideSite(newLinkPickerid);}}else{var folders=['Documents','Images','Movies','Designs','Roles','Users','Workflows'];var fLen=folders.length;for(var i=0;i<fLen;i++){newLinkPicker.addProjectFolderBlackList(newLinkPickerid,folders[i]);}}
newLinkPicker.addAssetsSelectedAction(function(assets){var selectedid=(new String(assets[0])).valueOf();var target=dfx.getId(self.id+'-currentLinksSection-Button-NewLink');if(dfx.isset(self.parentInfo[selectedid])===true&&Widget.IS_REMOTE_ASSET===false){var msg='This link already exists';self.showInterventionPopup(msg,null,'OK',target);return;}else if(selectedid===self.assetid){var msg='You cannot link an asset to itself';self.showInterventionPopup(msg,null,'OK',target);return;}else{var params={mode:'EditScreenMode',screen:'LinkingEditScreenWidget',type:'getParentUrlInfo',parentid:selectedid,assetid:self.assetid};self.parent.getScreenData(params,function(parentUrlInfo){parentUrlInfo=dfx.jsonDecode(parentUrlInfo);if(dfx.isset(parentUrlInfo.typeError)===true){var type=parentUrlInfo.typeError;var msg='You cannot link an asset under '+type+' asset';self.showInterventionPopup(msg,null,'OK',target);return;}else if(dfx.isset(parentUrlInfo.childLoop)===true){var msg='You cannot link an asset to it\'s children';self.showInterventionPopup(msg,null,'OK',target);return;}else if(dfx.isset(parentUrlInfo.parentSubGroup)===true){var msg='You cannot link a user group to sub user group';self.showInterventionPopup(msg,null,'OK',target);return;}else{self.parentInfo[selectedid]={deleted:false,showMenu:true,lookups:dfx.clone(parentUrlInfo),newLink:true};self.linksRemoved=false;self.createLinkRow(selectedid);self.setLastRowClassName();self.hideLastLinkWarning();}});}},true,newLinkPickerid);newLinkBtn.addClickEvent(function(){newLinkBtn.disable();self.displayDisabledDiv(true);var pickerid=self.id+'-newLinkPicker';newLinkPicker.init(pickerid,function(){newLinkPicker.dialog.open();});},true);newLinkPicker.addCloseAction(function(){newLinkBtn.enable();});}
if(self.linksRemoved===true){self.showLastLinkWarning();}
self.ready();});},markAllForDeletion:function()
{var self=this;var changed=false;var lastLink=true;dfx.foreach(this.parentInfo,function(pid){if(self.parentInfo[pid].deleted===false){var status=self.markLinkDeleted(pid);if(status===true){changed=true;}else{lastLink=false;}}
return true;});if(changed===true){self.screenModified();}
if(lastLink===true){self.showLastLinkWarning();}},markLinkDeleted:function(pid)
{var row=dfx.getId(this.id+'-row-'+pid);var delCell=dfx.getClass('delete',row)[0];var showMenuSlider=WidgetStore.get(this.id+'-showMenu-'+pid);if(this.parentInfo[pid].isExt===true){var msg='External connection link cannot be deleted';this.showInterventionPopup(msg,null,'OK',delCell);return false;}
dfx.addClass(row,'deleted');this.parentInfo[pid].deleted=true;showMenuSlider.disable();dfx.addClass(delCell,'recover');this.screenModified();return true;},showInterventionPopup:function(msg,confirm,cancel,target)
{var self=this;this.includeWidget('Intervention',function(){var ok=dfx.getId('LinkingIntervention-cancelButton');if(ok){dfx.trigger(ok,'click');}
var ipopup=self.createWidget('LinkingIntervention','Intervention',function(){},function(){});ipopup.confirmText=confirm;ipopup.cancelText=cancel;ipopup.create(function(){ipopup.setSize('200px','60px');ipopup.setMessage(msg);ipopup.show(target);});});},createLinksTable:function()
{var self=this;var wrapper=dfx.getId(this.id+'-linksWrapper');var header=document.createElement('div');var content='<div class="'+this.widgetType+'-headerCell locations websiteloc">Website Locations</div>';content+='<div class="'+this.widgetType+'-headerCell show">Show in Menu</div>';content+='<div class="'+this.widgetType+'-headerCell delete">&nbsp;</div>';dfx.addClass(header,this.widgetType+'-headerRow');dfx.setHtml(header,content);wrapper.appendChild(header);self.includeWidgets(['ToggleButton'],function(){for(var parentid in this.parentInfo){if(this.parentInfo.hasOwnProperty(parentid)===true){(function(pid){self.createLinkRow(pid);})(parentid);}}
var childLen=wrapper.childNodes.length;dfx.addClass(wrapper.childNodes[(childLen-1)],'last');});},createLinkRow:function(pid)
{var self=this;var wrapper=dfx.getId(this.id+'-linksWrapper');var row=document.createElement('div');row.id=self.id+'-row-'+pid;var lookupParts=[];var lookupLen=self.parentInfo[pid].lookups.length;if(lookupLen===0){var lineage='<div class="LinkingEditScreen-lookup last"><span class="warning">Lookup information is missing. Please contact administrator for fix.</span></div>';}else{for(var i=0;i<lookupLen;i++){var lookup='';var urlPartsLen=self.parentInfo[pid].lookups[i].urlParts.length;var project=self.parentInfo[pid].lookups[i].project;var pStr='';if(project!==''){pStr='<span class="lineagePart project">'+project+'</span>';pStr+='<span class="lineageSeparator"> </span>';}
if(urlPartsLen===0){lookupStr='<span class="top">(top level)</span>';}else if(urlPartsLen>0){var parts=[];var separator='<span class="lineageSeparator"> </span>';for(var j=0;j<urlPartsLen;j++){var c='lineagePart';if(j===(urlPartsLen-1)){c+=' last';}
parts.push('<span class="'+c+'">'+self.parentInfo[pid].lookups[i].urlParts[j]+'</span>');}
lookupStr=parts.join(separator);}
var lc=self.widgetType+'-lookup';if(i===(lookupLen-1)){lc+=' last';}
if(pStr!==''){lookupStr=pStr+lookupStr;}
lookupStr='<div class="'+lc+'">'+lookupStr+'</div>';lookupParts.push(lookupStr);}
var lineage=lookupParts.join('');}
var smC=' showMenu';if(self.parentInfo[pid].showMenu===false){smC=' hideMenu';}
var content='<div class="showMenuBorder">&nbsp;</div>';content+='<div class="'+self.widgetType+'-rowCell locations'+smC+' menuIcon">'+lineage+'</div>';content+='<div class="'+self.widgetType+'-rowCell show"> </div>';if(this.readOnly===true){content+='<div class="'+self.widgetType+'-rowCell delete hide">&nbsp;</div>';}else{content+='<div class="'+self.widgetType+'-rowCell delete" title="Delete this link">&nbsp;</div>';}
dfx.addClass(row,self.widgetType+'-row');dfx.setHtml(row,content);var toggleCell=dfx.getClass('show',row)[0];var showMenuSlider=self.createWidget(self.id+'-showMenu-'+pid,'ToggleButton',false,'slider',self.parentInfo[pid].showMenu,'Yes','No');var locCell=dfx.getClass('locations',row)[0];if(self.parentInfo[pid].isExt===true){showMenuSlider.setReadOnly(true);}else{showMenuSlider.addToggleOnEvent(function(){dfx.swapClass(locCell,'hideMenu','showMenu');self.parentInfo[pid].showMenu=true;self.screenModified();});showMenuSlider.addToggleOffEvent(function(){dfx.swapClass(locCell,'showMenu','hideMenu');self.parentInfo[pid].showMenu=false;self.screenModified();});}
var delCell=dfx.getClass('delete',row)[0];delCell.id=self.id+'-row-delete-'+pid;dfx.addEvent(delCell,'click',function(e){if(self.parentInfo[pid].deleted===true){dfx.removeClass(row,'deleted');self.parentInfo[pid].deleted=false;showMenuSlider.enable();dfx.removeClass(delCell,'recover');self.hideLastLinkWarning();self.screenModified();}else if(self.parentInfo[pid].deleted===false){if(self.isLastLink(pid)===true){if(self.referenceExists===true){self.includeWidget('Intervention',function(){var ok=dfx.getId('LinkingIntervention-cancelButton');if(ok){dfx.trigger(ok,'click');}
var ipopup=self.createWidget('LinkingIntervention','Intervention',function(){},function(){});ipopup.confirmText=null;ipopup.cancelText='Ok';ipopup.create(function(){ipopup.setSize('200px','85px');ipopup.setMessage('This asset cannot be deleted as it is used by other assets');ipopup.show(delCell);});});}else{var block=false;var aid=parseInt(self.assetid);if(Widget.CURRENT_USERID===aid){block=true;}else{dfx.foreach(Widget.CURRENT_USER_GROUPS,function(idx){if(aid===Widget.CURRENT_USER_GROUPS[idx]){block=true;return false;}
return true;});}
if(block===true){var msg='You can not delete yourself or your group.';self.showInterventionPopup(msg,null,'OK',delCell);}else{var status=self.markLinkDeleted(pid);if(status===true){self.showLastLinkWarning();}}}}else{var status=self.markLinkDeleted(pid);}}});showMenuSlider.create(function(el){showMenuSlider.setValue(self.parentInfo[pid].showMenu);toggleCell.appendChild(el);wrapper.appendChild(row);if(self.linksRemoved===true){self.markLinkDeleted(pid);}});},createReferences:function(callback)
{var self=this;var wrapper=dfx.getId(this.widgetType+'-referencesSection-items');dfx.empty(wrapper);var desc='This section lists the parts of the system that are using the current asset. ';desc+='This may be in the content of the page, in the settings of a design or as a keyword. ';desc+='Deleting this asset may result in missing content or broken hyperlinks for these assets.';var descDiv=document.createElement('div');dfx.setHtml(descDiv,desc);dfx.addClass(descDiv,this.widgetType+'-deps-description');wrapper.appendChild(descDiv);this.includeWidgets(['PlainList','AssetTagLine','ToggleButton'],function(){if(self.deps.length===0){var rows=[];var noref=document.createElement('span');dfx.setHtml(noref,'There are no references to this asset.');rows.push({id:self.id+'-noref-row',left:noref,right:null});var list=self.createWidget(self.id+'-ref-list','PlainList','710',false,false,false,rows);list.create(function(el){wrapper.appendChild(el);if(callback){callback.call(self);}});}else{var sectionsTitles={'embedded_media':'Embedded Media','content_references':'Content References','general_references':'General References','design_related':'Design Related'};var tagLines=[];var tagLinesElem={};var lists=[];var warnings={};var warningElems={};var depPubExists=false;dfx.foreach(self.deps,function(sectionid){var listWrapper=document.createElement('div');dfx.addClass(listWrapper,self.widgetType+'-pubDepsListWrap');var subHeader=document.createElement('h2');dfx.setHtml(subHeader,sectionsTitles[sectionid]);dfx.addClass(subHeader,'dependency');listWrapper.appendChild(subHeader);var listW=document.createElement('div');listWrapper.appendChild(listW);dfx.addClass(listW,self.widgetType+'-pubDepsList');wrapper.appendChild(listWrapper);dfx.foreach(self.deps[sectionid],function(idx){self.referenceExists=true;var consumerid=self.deps[sectionid][idx].consumerId;var widgetid=self.id+'-'+sectionid+'-'+consumerid+'-'+idx;var astTagLine=self.createWidget(widgetid,'AssetTagLine');var data={id:consumerid,name:self.tagLineData[consumerid].name,iconUrl:self.tagLineData[consumerid].typeIconUrl,assetType:self.tagLineData[consumerid].type,url:self.tagLineData[consumerid].url}
astTagLine.setCustomData(data);tagLines.push({wdgt:astTagLine,sectionid:sectionid,idx:idx});return true;});lists.push({id:sectionid,elem:listW});return true;});var _createDependencyLists=function(idx){var sectionid=lists[idx].id;var rows=[];dfx.foreach(self.deps[sectionid],function(idx){var consumerid=self.deps[sectionid][idx].consumerId;var widgetid=self.id+'-'+sectionid+'-'+consumerid+'-'+idx;var context=document.createElement('div');var contextDesc=document.createElement('div');var contextTag=document.createElement('div');var contextCurves=document.createElement('span');var contextType=document.createElement('span');dfx.addClass(context,self.contextClassname);dfx.addClass(contextDesc,self.contextDescClassname);dfx.addClass(contextTag,self.contextTagClassname);dfx.addClass(contextCurves,self.contextCurvesClassname);dfx.addClass(contextType,self.contextTypeClassname);dfx.setHtml(contextDesc,self.deps[sectionid][idx].resourceUsedAs);dfx.setHtml(contextType,self.deps[sectionid][idx].resourceString);contextCurves.appendChild(contextType);contextTag.appendChild(contextCurves);context.appendChild(contextDesc);;context.appendChild(contextTag);rows.push({id:widgetid+'-row',left:tagLinesElem[widgetid],right:context});return true;});var list=self.createWidget(self.id+'-'+sectionid+'-list','PlainList','710',false,false,false,rows);list.create(function(el){lists[idx].elem.appendChild(el);if(idx<(lists.length-1)){_createDependencyLists(idx+1);}else{if(callback){callback.call(self);}}});};var tagLinesLen=tagLines.length;var _createAstTagLines=function(idx){tagLines[idx].wdgt.create(function(elem){tagLinesElem[tagLines[idx].wdgt.id]=elem;if(idx<(tagLinesLen-1)){_createAstTagLines(idx+1);}else{if(lists.length>0){_createDependencyLists(0);}}});};if(tagLinesLen>0){_createAstTagLines(0);}else{if(callback){callback.call(self);}}}});},createDirectChildren:function()
{var self=this;var sectionBody=dfx.getId(this.id+'-directChildrenSection-items');dfx.empty(sectionBody);var sectionDesc=document.createElement('div');if(this.directChildren===null){var desc='There are no direct children.';}else{var desc='The following list of assets are direct children of this page. Use this list to change the order in which they appear in menus and listings.';}
sectionDesc.id=this.id+'-directChildren-desc';dfx.addClass(sectionDesc,this.widgetType+'-directChildren-desc');dfx.setHtml(sectionDesc,desc);sectionBody.appendChild(sectionDesc);if(this.directChildren!==null){var childrenWrap=document.createElement('div');childrenWrap.id=this.id+'-directChildren-wrap';dfx.addClass(childrenWrap,this.widgetType+'-directChildren-wrap');sectionBody.appendChild(childrenWrap);var count=0;self.positionMap=[];self.includeWidgets(['Button'],function(){var initialStackid='';dfx.foreach(this.directChildren,function(sortOrder){var assetid=self.directChildren[sortOrder].id;var name=self.directChildren[sortOrder].name;var typeIcon=self.directChildren[sortOrder].typeIcon;var childRow=document.createElement('div');childRow.id=self.id+'-directChildren-child-'+assetid;childRow.setAttribute('assetid',assetid);dfx.addClass(childRow,self.widgetType+'-directChildren-child');if(self.withSortOrder===true){var content='<div id="handle_'+assetid+'" class="'+self.widgetType+'-directChildren-dragHandle" title="Click and drag to change order">&nbsp;</div>';}else{var content='';}
content+='<div class="'+self.widgetType+'-directChildren-typeIcon"><img src="'+typeIcon+'" /></div>';content+='<div class="'+self.widgetType+'-directChildren-assetName">'+name;content+=' <span class="'+self.widgetType+'-directChildren-assetid" title="#'+assetid+'">[#'+dfx.ellipsize(assetid,30)+']</span></div>';content+='<div class="'+self.widgetType+'-directChildren-btnWrap"> </div>';dfx.setHtml(childRow,content);var gotoBtn=self.createWidget(self.id+'-directChildren-goto-'+assetid,'Button');gotoBtn.setName('Go to Linking Screen');gotoBtn.create(function(el){var btnWrap=dfx.getClass(self.widgetType+'-directChildren-btnWrap',childRow)[0];btnWrap.appendChild(el);childrenWrap.appendChild(childRow);initialStackid+=assetid+':';self.positionMap.push({assetid:assetid,rowid:self.id+'-directChildren-child-'+assetid,sortOrder:sortOrder});count++;return true;});gotoBtn.addClickEvent(function(e){var _redirect=function(){self.displayDisabledDiv(true);AssetManager.getAsset(assetid,function(assets){var url=assets.getUrl();var qs=dfx.queryString(url);var questionIdx=url.search(/\?/);if(questionIdx===-1){url+='/_edit?initialMode=EditScreenMode&initialScreen=LinkingEditScreenWidget';}else{url.substr(0,questionIdx);url=url.replace('?','/_edit?')+'&initialMode=EditScreenMode&initialScreen=LinkingEditScreenWidget';}
var loaderMsg=dfx.getId('_disabledDiv_loaderMsg');if(loaderMsg){dfx.setHtml(loaderMsg,'Currently re-directing...');}
window.location=url;return false;});};var saveBtn=WidgetStore.get('EditingSaveButton');if(saveBtn.isEnabled()===true){var answer=confirm(WidgetStore.getUnsavedChangesStr());if(!answer){return;}}
_redirect();});});if(self.readOnly===true){var readOnlyMask=document.createElement('div');dfx.addClass(readOnlyMask,this.widgetType+'-directChildren-readOnlyMask');dfx.showElement(readOnlyMask);dfx.setHtml(readOnlyMask,'&nbsp;');childrenWrap.appendChild(readOnlyMask);}
self.changeStack.push({stackid:initialStackid,move:null});var recordMovement=function(event,ui){var rowid=ui.item[0].id;var aid=ui.item[0].getAttribute('assetid');var prevIdx=0;var prevLen=self.positionMap.length;for(var i=0;i<prevLen;i++){if(self.positionMap[i].rowid===rowid){var fromSortOrder=self.positionMap[i].sortOrder;}}
var currIdx=0;var currChildren=dfxjQuery(childrenWrap).sortable('toArray');var currLen=currChildren.length;for(var i=0;i<currLen;i++){if(currChildren[i]===rowid){var toSortOrder=self.positionMap[i].sortOrder;break;}}
var stackid='';for(var i=0;i<currLen;i++){self.positionMap[i].rowid=currChildren[i];stackid+=self.positionMap[i].rowid.substring((self.id+'-directChildren-child-').length)+':';}
var stackSize=self.changeStack.length;if(self.changeStack[(stackSize-1)].stackid!==stackid){var redundant=false;for(var i=0;i<stackSize;i++){if(self.changeStack[i].stackid===stackid){if(i===0){self.changeStack=self.changeStack.slice(0,1);}else{self.changeStack=self.changeStack.slice(0,i+1);}
redundant=true;break;}}
if(redundant===false){self.changeStack.push({stackid:stackid,move:{assetid:aid,from:fromSortOrder,to:toSortOrder}});}}};if(self.withSortOrder===true){dfxjQuery(childrenWrap).sortable({axis:'y',handle:'div.'+self.widgetType+'-directChildren-dragHandle',stop:function(event,ui){recordMovement(event,ui);self.screenModified();},tolerance:'pointer'});}});}},showLastLinkWarning:function(inTrash)
{var warning=dfx.getId('LinkingEditScreen-lastLinkWarning');var content='<span class="warningTitle">Warning</span>';if(inTrash&&inTrash===true){content+='This asset is currently in the trash. Any hyperlinks or';content+=' references to this asset will not work when the';content+=' asset is in the trash.';}else{content+='This asset will be moved to the trash when you click the save button as all links';content+=' have been marked for deletion. Any hyperlinks or';content+=' references to this asset will not work when the';content+=' asset is in the trash.';}
dfx.setHtml(warning,content);dfx.showElement(warning);this.purging=true;},hideLastLinkWarning:function()
{dfx.hideElement(dfx.getId('LinkingEditScreen-lastLinkWarning'));this.purging=false;},createLastLinkWarning:function()
{var warning=dfx.getId('LinkingEditScreen-lastLinkWarning');if(dfx.isset(warning)===false){warning=document.createElement('div');warning.id='LinkingEditScreen-lastLinkWarning';var section=dfx.getId(this.id+'-currentLinksSection');dfx.addClass(warning,this.widgetType+'-lastLinkWarning');section.insertBefore(warning,section.childNodes[0]);}
dfx.hideElement(warning);},isLastLink:function(parentid)
{var self=this;var isLast=true;var notDeletedC=0;var lastid=null;var count=0;dfx.foreach(this.parentInfo,function(pid){count++;if(self.parentInfo[pid].deleted===false){notDeletedC++;lastid=pid;}
if(notDeletedC>1){isLast=false;return false;}
return true;});if(isLast===false){return false;}
if(lastid===parentid||notDeletedC===0){return true;}
return false;},getAutoSaveContents:function()
{var saveData={};return saveData;},loadAutoSaveContents:function(content,callBack)
{if(callback){callback.call(this);}},setLastRowClassName:function()
{var wrap=dfx.getId(this.id+'-linksWrapper');var childLen=wrap.childNodes.length;for(var i=1;i<childLen;i++){dfx.removeClass(wrap.childNodes[i],'last');}
dfx.addClass(wrap.childNodes[(wrap.childNodes.length-1)],'last');},saveScreenSettings:function()
{var self=this;this.removeToolbarButton('save_linkEdit');var params={screen:this.id+'Widget',assetid:this.assetid,purging:this.purging,sortOrder:dfx.jsonEncode(this.changeStack),withSortOrder:this.withSortOrder,op:'saveLinkEdit'};if(this.isSite===false){params.parentInfo=dfx.jsonEncode(this.parentInfo);}
this.displayDisabledDiv(true);this.parent.processScreen(params,function(data){if(self.isSite===false){var deletedLen=data.deleted.length;var redirect=false;var skip=false;for(var pid in self.parentInfo){if(self.parentInfo[pid].isExt===true){var strip=window.location.href.replace(/\?a=.*/gi,'');if(strip!==window.location.href){skip=true;}}}
for(var i=0;i<deletedLen;i++){var deletedid=data.deleted[i];dfx.remove(dfx.getId(self.id+'-row-'+deletedid));dfx.remove(self.parentInfoOri[deletedid]);var lookupLen=self.parentInfo[deletedid].lookups.length;if(skip===false){for(var j=0;j<lookupLen;j++){if(self.parentInfo[deletedid].newLink===false){if(window.location.href.search(self.parentInfo[deletedid].lookups[j].url)===0){self.deletedParentUrl=self.parentInfo[deletedid].lookups[j].url;redirect=true;}}}}
delete self.parentInfo[deletedid];}
if(data.added.length>0){var options={attributes:[],type:false,typeIcon:false,linking:[],urls:true};if(Widget.IS_REMOTE_ASSET===true){AssetManager.getShadowidFromRemoteid(self.assetid,function(shadowid){AssetManager.getAsset(shadowid,function(ast){window.location.href=ast.getUrl()+'/_edit';},true,options);});return;}else if(Widget.IS_SHADOW_ASSET===true){AssetManager.getAsset(self.assetid,function(ast){window.location.href=ast.getUrl()+'/_edit';},true,options);return;}}
if(redirect===true){var saveDiv=dfx.getClass('saveCompleted-msg',document.body)[0];dfx.setHtml(saveDiv,'Currently re-directing...');self.redirectUrl();}else{dfx.foreach(data.showMenu,function(pid){self.parentInfoOri[pid].showMenu=data.showMenu[pid];});self.setLastRowClassName();var addedLen=data.added.length;for(var i=0;i<addedLen;i++){var addedid=data.added[i];self.parentInfo[addedid].newLink=false;self.parentInfoOri[addedid]=dfx.clone(self.parentInfo[addedid]);}}}
self.changeStack=[];self.positionMap=[];self.directChildren=dfx.clone(data.children);var initialStackid='';dfx.foreach(self.directChildren,function(sortOrder){var assetid=self.directChildren[sortOrder].id;initialStackid+=assetid+':';self.positionMap.push({assetid:assetid,rowid:self.id+'-directChildren-child-'+assetid,sortOrder:sortOrder});return true;});self.changeStack.push({stackid:initialStackid,move:null});self.switchOnScreen();self.removeDisabledDiv(null,true);},true);},revertScreenSettings:function()
{var self=this;this.changeStack=[];this.positionMap=[];this.displayDisabledDiv();this.hideLastLinkWarning();this.reset(function(){self.removeDisabledDiv();});},redirectUrl:function()
{var prjFldUrl=false;var prjFldWebPathsLen=Widget.PROJECT_FOLDER_WEBPATHS.length;for(var i=0;i<prjFldWebPathsLen;i++){if(window.location.href.search('/'+Widget.PROJECT_FOLDER_WEBPATHS[i]+'/_edit')!==-1){prjFldUrl=true;break;}}
var destUrl='';if(prjFldUrl===false){for(var pid in this.parentInfo){if(this.parentInfo.hasOwnProperty(pid)===true){var lookupLen=this.parentInfo[pid].lookups.length;for(var i=0;i<lookupLen;i++){if(this.parentInfo[pid].lookups[i].url&&(this.parentInfo[pid].lookups[i].url.search(Widget.BASE_URL)===0||destUrl==='')){destUrl=this.parentInfo[pid].lookups[i].url;}}
window.location.href=destUrl+'/'+this.webPath+'/_edit';return;}}
if(destUrl.length===0){destUrl=this.deletedParentUrl;}
window.location.href=destUrl+'/_edit';}else{destUrl=Widget.EDIT_URL;for(var pid in this.parentInfo){if(this.parentInfo[pid].isExt===true){var lookupLen=this.parentInfo[pid].lookups.length;for(var i=0;i<lookupLen;i++){if(this.parentInfo[pid].lookups[i].url&&this.parentInfo[pid].lookups[i].url.search(Widget.BASE_URL)===0){destUrl=this.parentInfo[pid].lookups[i].url+'/_edit?a='+this.assetid;break;}}
break;}}
window.location.href=destUrl;}},reset:function(callback)
{var self=this;var params={mode:'EditScreenMode',screen:'LinkingEditScreenWidget',type:'getLinkingData',assetid:this.assetid};this.parent.getScreenData(params,function(data){var linkingData=dfx.jsonDecode(data);self.init(linkingData);callback.call(self);});},switchOnScreen:function()
{var self=this;if(this.readOnly===true){this.disableSaveButton();}else{this.setSaveButton(function(){self.saveScreenSettings();},function(){self.revertScreenSettings();},true);}},switchOffScreen:function(){}};dfx.inherits('LinkingEditScreen','AbstractSettingsScreen');function LogEditScreenWidgetType(id,screenid,system,title,parent,assetid)
{AbstractSettingsScreenWidgetType.call(this,id,screenid,system,title,parent,assetid);this.widgetType='LogEditScreen';this.selectWidgetid=this.id+'-select';this.tableDivid=this.id+'-tableDiv';}
LogEditScreenWidgetType.prototype={init:function(data)
{var selectWidget=WidgetStore.get(this.selectWidgetid);if(selectWidget){var self=this;selectWidget.addItemSelectedEvent(function(){self.loadLogType(selectWidget.getValue());});}},loadLogType:function(type)
{if(type){var params={logType:dfx.jsonEncode(type),screen:this.id+'Widget'};var self=this;this.parent.processScreen(params,function(data){var elem=dfx.getId(self.tableDivid);if(elem){dfx.setHtml(elem,data);}});}},switchOnScreen:function(){},switchOffScreen:function(){}};dfx.inherits('LogEditScreen','AbstractSettingsScreen');function LookupEditScreenWidgetType(id,screenid,system,title,parent,assetid,readOnly)
{AbstractSettingsScreenWidgetType.call(this,id,screenid,system,title,parent,assetid,readOnly);this.widgetType='LookupEditScreen';this.paths=[];this.webPathsManager=null;this.webPathsManagerDynamicDiv=WidgetStore.get(this.id+'-webPathsManager');}
LookupEditScreenWidgetType.prototype={setReadOnly:function(readOnly)
{AbstractSettingsScreenWidgetType.prototype.setReadOnly.call(this,readOnly);if(this.webPathsManager){this.webPathsManager.setReadOnly(readOnly);}},init:function(data)
{var self=this;if(this.readOnly){self.displayScreenReadOnlyWarning(function(el){dfx.insertBefore(dfx.getId('LookupEditScreen-webPathsManager-wrapper'),el);},function(){self.webPathsManager.forceEdit();});}
this.webPathsManagerDynamicDiv.changeContent({action:'paintScreen',mode:'EditScreenMode',screen:'LookupEditScreenWidget',type:'webPathsDynamicDiv',assetid:this.assetid},function(data){self.webPathsManager=WidgetStore.get('WebPathsManager');self.webPathsManager.assetid=self.assetid;self.webPathsManager.setReadOnly(self.readOnly);self.ready();});},reload:function()
{var self=this;delete this.webPathsManager;this.webPathsManagerDynamicDiv.changeContent({action:'paintScreen',mode:'EditScreenMode',screen:'LookupEditScreenWidget',type:'webPathsDynamicDiv',assetid:this.assetid},function(data){self.webPathsManager=WidgetStore.get('WebPathsManager');self.webPathsManager.assetid=self.assetid;self.webPathsManager.setReadOnly(self.readOnly);});},getAutoSaveContents:function()
{var saveData={};return saveData;},loadAutoSaveContents:function(content,callBack)
{if(callback){callback.call(this);}},switchOnScreen:function(){},switchOffScreen:function(){}};dfx.inherits('LookupEditScreen','AbstractSettingsScreen');function MetadataAdminScreenWidgetType(id,screenid,system,title,parent,assetid,readOnly)
{AbstractSettingsScreenWidgetType.call(this,id,screenid,system,title,parent,assetid,readOnly);this.widgetType='MetadataAdminScreen';this.fields={};this.fieldsElem=null;this.fieldStates=[];this.originalData=null;this._isAutoSave=false;this.interventionOpened=[];}
MetadataAdminScreenWidgetType.prototype={init:function(data)
{var self=this;var fields={};if(data&&data.fields){fields=dfx.jsonDecode(data.fields);this.originalData=dfx.clone(fields);}
if(this.readOnly===true){this.displayScreenReadOnlyWarning(function(el){var containerEl=dfx.getId(this.id+'-fieldList-wrapper');dfx.insertBefore(containerEl,el);},function(){self.reload(self.originalData);});}
this._createFields(dfx.clone(fields),function(){self._addScreenAddButtonEvent();var fieldsElem=dfx.getId(self.id+'-fields');if(fieldsElem){self.fieldsElem=fieldsElem;dfxjQuery(self.fieldsElem).sortable({axis:'y',handle:'div.'+self.getClass()+'-field-move',stop:function(){self.updateFieldNumbers();self.setModified(true);}});}
self.ready();});},_createFields:function(fields,callback)
{var self=this;if(dfx.isEmpty(fields)===true){callback.call(self);return;}
for(var fieldid in fields){break;}
var field=fields[fieldid];delete fields[fieldid];if(dfx.isEmpty(fields)===true){if(callback){var recursiveCallback=function(){callback.call(self);return;};}else{var recursiveCallback=null;}}else{var recursiveCallback=function(){self._createFields(fields,callback);};}
this.createField(field.type,field,true,recursiveCallback);},_addScreenAddButtonEvent:function()
{var addButton=WidgetStore.get(this.id+'-screenAdd');if(addButton){var self=this;addButton.addClickEvent(function(){var type='text';var typeWidget=WidgetStore.get(self.id+'-screenFieldType');if(typeWidget){type=typeWidget.getValue();}
var collapsed=false;var cNum=parseInt(WidgetStore.get(self.id+'-numFields').getValue(),10);while(cNum-->0){self.createField(type,null,false);}
self.setModified(true);});}},getAutoSaveContents:function()
{this._isAutoSave=true;var settings=this.getSettings(true);this._isAutoSave=false;return settings;},loadAutoSaveContents:function(content,callBack)
{this.reload(content);},createField:function(type,fieldSettings,collapsed,callback)
{type=type||'text';fieldSettings=fieldSettings||{};if(dfx.isset(collapsed)===true){collapsed=collapsed;}else{collapsed=true;}
var id=dfx.getUniqueId();var c=this.getClass()+'-field';var main=document.createElement('div');main.id=id;dfx.addClass(main,c);var content='';content+='<div class="'+c+'-top">';if(collapsed===true){content+='<div class="'+c+'-exp closed" title="Expand"></div>';}else{content+='<div class="'+c+'-exp" title="Collapse"></div>';}
content+='<div class="'+c+'-num">1.</div>';if(this.readOnly!==true){content+='<div class="'+c+'-move"></div>';}
content+='<div class="'+c+'-name">';content+='<div class="'+c+'-name-txt"></div>';content+='<div class="'+c+'-name-input"></div>';content+='</div>';var isRequiredTitles={on:'Click to make this an optional metadata field',off:'Click to make this a required metadata field'};if(fieldSettings.isRequired===true){content+='<div class="'+c+'-req required" title="'+isRequiredTitles.on+'"></div>';}else{content+='<div class="'+c+'-req" title="'+isRequiredTitles.off+'"></div>';}
var isLockedTitltes={on:'Click to unlock this metadata field and allow the value to be changed',off:'Click to lock this metadata field and ensure the default value is always used'};if(fieldSettings.isEditable!==false){content+='<div class="'+c+'-edit editable" title="'+isLockedTitltes.off+'"></div>';}else{content+='<div class="'+c+'-edit" title="'+isLockedTitltes.on+'"></div>';}
content+='<div class="'+c+'-type">';content+='<div class="'+c+'-type-txt"></div>';content+='<div class="'+c+'-type-input"></div>';content+='</div>';content+='<div class="'+c+'-remove"></div>';content+='</div>';if(collapsed!==true){content+='<div class="'+c+'-bot">';}else{content+='<div class="'+c+'-bot closed">';}
content+='</div>';content+='<div class="'+c+'-disabled"></div>';dfx.setHtml(main,content);var fieldNameCont=dfx.getClass(c+'-name-input',main)[0];var fieldNameText=dfx.getClass(c+'-name-txt',main)[0];var typeSelectCont=dfx.getClass(c+'-type-input',main)[0];var typeSelectText=dfx.getClass(c+'-type-txt',main)[0];var settingsCont=dfx.getClass(c+'-bot',main)[0];var selectItmes={text:'Text Field',number:'Numeric Field',selection:'Select Field'};var top=dfx.getClass(c+'-top',main)[0];var expander=dfx.getClass(c+'-exp',main)[0];var requiredControl=dfx.getClass(c+'-req',main)[0];var settingWidgetName='MetadataAdmin'+dfx.ucFirst(type)+'Setting';var self=this;this.includeWidgets(['TextField','TextArea','Select','MetadataAdminSetting',settingWidgetName],function(){var fieldName=self.createWidget(id+'-name','TextField');if(dfx.isset(fieldSettings.name)===true){fieldName.setValue(fieldSettings.name);}else{fieldName.setValue('');}
var typeSelect=self.createWidget(id+'-type','Select');typeSelect.addItems(selectItmes);var fieldOrigName=self.createWidget(id+'-origName','TextField');fieldOrigName.setValue(fieldSettings.origName);fieldName.create(function(fieldNameEl){fieldName.addOnChangeEvent(function(){var val=this.getValue();this.setValue(val.replace(/~/g,''));self.setModified(true);});fieldNameCont.appendChild(fieldNameEl);dfx.addEvent(fieldName.input,'blur',function(){var dupeErrEl=dfx.getId(self.id+'_dupeError');if(dupeErrEl){dfx.remove(dupeErrEl);}
var settings=self.getSettings(false);var sln=settings.length;var fcount=0;for(var i=0;i<sln;i++){if(dfx.trim(settings[i].name)!==''&&settings[i].name===fieldName.getValue()){fcount++;}
if(fcount>=2){self.createScreenWarningMessage({id:self.id+'_dupeError',leftTitle:'Duplicate Field Name',mainMessage:'You must enter a unique value for each metadata field name',colour:'red',buttonTitle:null},function(dupeErrEl){dfx.insertBefore(dfx.getId(self.id+'-fieldList-wrapper'),dupeErrEl);});break;}}});typeSelect.create(function(typeSelectEl){typeSelect.addItemSelectedEvent(function(){self.setModified(true);});typeSelect.setValue(type,true);typeSelectCont.appendChild(typeSelectEl);});var settingWidget=self.createWidget(null,settingWidgetName);if(settingWidget){settingWidget.reqElem=requiredControl;settingWidget.setSttings(fieldSettings.settings);self.fields[id]=settingWidget;settingWidget.create(function(settingsElem){if(settingsElem){settingsCont.appendChild(settingsElem);}
if(collapsed===true){self.collapseField(main);}
var el=dfx.getId(self.id+'-fields');if(el){el.appendChild(main);self.updateFieldNumbers();dfxjQuery(self.fieldsElem).sortable('refresh');}
if(callback){callback.call(this);}});}});});dfx.addEvent(top,'click',function(e){if(dfx.getMouseEventTarget(e)===top){if(dfx.hasClass(expander,'closed')===true){self.expandField(main);}else{self.collapseField(main);}}});dfx.addEvent(expander,'safedblclick',function(e){if(dfx.hasClass(expander,'closed')===true){self.expandField(main);}else{self.collapseField(main);}},function(e){if(dfx.hasClass(expander,'closed')===true){self.expandAllFields();}else{self.collapseAllFields();}
dfx.stopPropagation(e);});dfx.addEvent(requiredControl,'click',function(e){if(self.readOnly===true){return;}
dfx.toggleClass(requiredControl,'required');if(dfx.hasClass(requiredControl,'required')===true){requiredControl.title=isRequiredTitles.on;}else{requiredControl.title=isRequiredTitles.off;}
self.setModified(true);dfx.stopPropagation(e);});var editableControl=dfx.getClass(c+'-edit',main)[0];dfx.addEvent(editableControl,'click',function(e){if(self.readOnly===true){return;}
dfx.toggleClass(editableControl,'editable');if(dfx.hasClass(editableControl,'editable')===true){editableControl.title=isLockedTitltes.off;}else{editableControl.title=isLockedTitltes.on;}
self.setModified(true);dfx.stopPropagation(e);});var deleteControl=dfx.getClass(c+'-remove',main)[0];if(this.readOnly===true){dfx.setStyle(deleteControl,'display','none');}
dfx.addEvent(deleteControl,'click',function(e){if(self.readOnly===true){return;}
dfx.toggleClass(main,'removed');self.collapseField(main);self.setModified(true);dfx.stopPropagation(e);});if(fieldSettings.isRemoved===true){dfx.trigger(deleteControl,'click');}},expandField:function(field)
{var c=this.getClass()+'-field';var expander=dfx.getClass(c+'-exp',field)[0];var settingsCont=dfx.getClass(c+'-bot',field)[0];var fieldNameCont=dfx.getClass(c+'-name-input',field)[0];var fieldNameText=dfx.getClass(c+'-name-txt',field)[0];var typeSelectCont=dfx.getClass(c+'-type-input',field)[0];var typeSelectText=dfx.getClass(c+'-type-txt',field)[0];dfx.removeClass(expander,'closed');expander.title='Collapse';dfx.removeClass(settingsCont,'closed');dfx.setStyle(fieldNameCont,'display','block');dfx.setStyle(fieldNameText,'display','none');dfx.setStyle(typeSelectCont,'display','block');dfx.setStyle(typeSelectText,'display','none');},collapseField:function(field)
{var c=this.getClass()+'-field';var expander=dfx.getClass(c+'-exp',field)[0];var settingsCont=dfx.getClass(c+'-bot',field)[0];var fieldNameCont=dfx.getClass(c+'-name-input',field)[0];var fieldNameText=dfx.getClass(c+'-name-txt',field)[0];var typeSelectCont=dfx.getClass(c+'-type-input',field)[0];var typeSelectText=dfx.getClass(c+'-type-txt',field)[0];dfx.addClass(expander,'closed');expander.title='Expand';dfx.addClass(settingsCont,'closed');dfx.setStyle(fieldNameCont,'display','none');dfx.setHtml(fieldNameText,WidgetStore.get(field.id+'-name').getValue());dfx.setStyle(fieldNameText,'display','block');dfx.setHtml(typeSelectText,WidgetStore.get(field.id+'-type').getValue(false,true));dfx.setStyle(typeSelectCont,'display','none');dfx.setStyle(typeSelectText,'display','block');},expandAllFields:function()
{var c=this.getClass()+'-field';var elems=dfx.getClass(c,dfx.getId(this.id+'-fields'));var elemln=elems.length;for(var i=0;i<elemln;i++){this.expandField(elems[i]);}},collapseAllFields:function()
{var c=this.getClass()+'-field';var elems=dfx.getClass(c,dfx.getId(this.id+'-fields'));var elemln=elems.length;for(var i=0;i<elemln;i++){this.collapseField(elems[i]);}},getSettings:function(forSave)
{var settings=[];this.fieldStates=[];var fieldElems=dfx.getId(this.getClass()+'-fields');var fields=dfx.getClass(this.getClass()+'-field',fields);var ln=fields.length;for(var i=0;i<ln;i++){var isRemoved=false;var id=fields[i].id;if(this.fields.hasOwnProperty(id)!==true){continue;}
if(dfx.hasClass(fields[i],'removed')===true){isRemoved=true;}
var bottomDiv=dfx.getClass(this.getClass()+'-field-bot',fields[i])[0];this.fieldStates.push(dfx.hasClass(bottomDiv,'closed'));var fieldSettings={};fieldSettings.fieldid=id;fieldSettings.settings=this.fields[id].getSettings();fieldSettings.isRemoved=isRemoved;fieldSettings.isEditable=this.fieldIsEditable(id);fieldSettings.isRequired=this.fieldIsRequired(id);fieldSettings.name=WidgetStore.get(id+'-name').getValue();fieldSettings.origName=WidgetStore.get(id+'-origName').getValue();fieldSettings.type=WidgetStore.get(id+'-type').getValue();if(fieldSettings.type==='selection'&&forSave===true){if(this.fields[id].settings.options){this.fields[id].settings.options.prune();fieldSettings.settings.defaultValue=this.fields[id].settings.options.getDefaultValue(true);}}
if(dfx.isset(fieldSettings.settings.defaultValue)===true){fieldSettings.defaultValue=fieldSettings.settings.defaultValue;}
settings.push(fieldSettings);}
return settings;},fieldIsRequired:function(fieldid)
{return dfx.hasClass(dfx.getClass(this.getClass()+'-field-req',dfx.getId(fieldid))[0],'required');},fieldIsEditable:function(fieldid)
{return dfx.hasClass(dfx.getClass(this.getClass()+'-field-edit',dfx.getId(fieldid))[0],'editable');},save:function()
{var settings=this.getSettings(true);this.displayDisabledDiv(true);var params={screen:this.id+'Widget',settings:dfx.jsonEncode(settings)};var self=this;var ok=true;var regex=/^[A-Za-z0-9_ .-]+$/;for(var fld in settings){if(settings.hasOwnProperty(fld)===true){var target=dfx.getClass(this.getClass()+'-field-name',dfx.getId(settings[fld].fieldid))[0];if(dfx.trim(settings[fld].name)===''){this.displayIntervention(target,'Please enter a name for this metadata field.',1);ok=false;break;}else if(regex.test(settings[fld].name)===false){this.displayIntervention(target,'Field names can contain only letters, numbers, spaces, full stops, hyphens, or underscores.',1);ok=false;break;}else if(settings[fld].type==='number'){if(settings[fld].defaultValue!==''&&dfx.isNumeric(settings[fld].defaultValue)===false){var defaultValues=dfx.getClass('MetadataAdminNumberSettingWidgetType-defVal',dfx.getId(settings[fld].fieldid));if(defaultValues.length===0){defaultValues=dfx.getClass('MetadataAdminTextSettingWidgetType-defVal',dfx.getId(settings[fld].fieldid));if(defaultValues.length===0){continue;}}
var defaultValueTarget=defaultValues[0];this.displayIntervention(defaultValueTarget,'The default value for a numeric field can only contain numbers.',1);ok=false;break;}}}}
if(ok===true){this.parent.processScreen(params,function(data){if(data&&!data.errors&&data.fields){self.reload(data.fields);self.removeDisabledDiv(null,true);self.originalData=dfx.clone(data.fields);}
self.switchOnScreen();},true);}else{self.setModified(true);}},reload:function(fields)
{dfx.empty(dfx.getId(this.id+'-fields'));var self=this;var count=0;for(var fieldid in fields){if(fields.hasOwnProperty(fieldid)===true){var field=fields[fieldid];self.createField(field.type,field,this.fieldStates[count]);count++;}}},updateFieldNumbers:function()
{var fields=dfx.getClass(this.getClass()+'-field-num',dfx.getId(this.id+'-fields'));var ln=fields.length;for(var i=0;i<ln;i++){dfx.setHtml(fields[i],(i+1)+'.');}},switchOnScreen:function()
{var self=this;this.setSaveButton(function(){self.save();},function(){self.reload(self.originalData);self.removeDisabledDiv(null,true);});},switchOffScreen:function()
{this.fields=null;this.fieldsElem=null;this.fieldStates=null;this.originalData=null;dfx.empty(dfx.getId(this.id+'-fields'));},setReadOnly:function(readOnly)
{AbstractSettingsScreenWidgetType.prototype.setReadOnly.call(this,readOnly);var numFieldsText=dfx.getId(this.id+'-screenText');if(numFieldsText){if(readOnly===true){dfx.setStyle(numFieldsText,'display','none');}}
var numFieldsWidget=WidgetStore.get('MetadataAdminScreen-numFields');if(numFieldsWidget){numFieldsWidget.setReadOnly(readOnly);var numFieldsCont=dfx.getId(this.id+'-numFields-container');if(readOnly===true){dfx.setStyle(numFieldsCont,'display','none');}else{dfx.setStyle(numFieldsCont,'display','block');}}
var addButton=WidgetStore.get(this.id+'-screenAdd');if(addButton){addButton.setReadOnly(readOnly);}
var fieldTypeWidget=WidgetStore.get(this.id+'-screenFieldType');if(fieldTypeWidget){fieldTypeWidget.setReadOnly(readOnly);}
var mainCont=dfx.getId(this.id+'-container');var itemRemoveIcons=dfx.getClass(this.getClass()+'-field-remove',mainCont);if(readOnly===true){dfx.setStyle(itemRemoveIcons,'display','none');}else{dfx.setStyle(itemRemoveIcons,'display','block');}},displayIntervention:function(elem,text,type)
{this.removeDisabledDiv(true);if(dfx.isset(this.interventionOpened[type])===false||(dfx.isset(this.interventionOpened[type])===true&&this.interventionOpened[type]===false)){var self=this;var iw=self.createWidget('inter','Intervention',null,function(){self.interventionOpened[type]=false;});iw.setCancelText(null);iw.setConfirmText('Close');iw.create(function(){iw.setSize('200px','92px');iw.setMessage(text);iw.show(elem,'fixed');self.interventionOpened[type]=true;});}}};dfx.inherits('MetadataAdminScreen','AbstractSettingsScreen');function MetadataEditScreenWidgetType(id,screenid,system,title,parent,assetid,readOnly)
{AbstractSettingsScreenWidgetType.call(this,id,screenid,system,title,parent,assetid,readOnly);this.widgetType='MetadataEditScreen';this.fields={};}
MetadataEditScreenWidgetType.prototype={init:function(data)
{if(dfx.isset(data.isSite)===true&&data.isSite===true){this.ready();}else{this.fields=data.fields||{};if(this.readOnly){this.setReadOnly(this.readOnly);var self=this;this.displayScreenReadOnlyWarning(function(warnEl){var elem=dfx.getId('MetadataEditScreen-container');if(elem){elem=elem.firstChild;dfx.insertBefore(elem,warnEl);}},function(){self.setModified(false);var widget=WidgetStore.get('EditScreenModeWidgetType-tab_pane');if(widget){self.clean();widget.showScreen('metadata',null,true);}});}
this.ready();}},setReadOnly:function(readOnly)
{AbstractSettingsScreenWidgetType.prototype.setReadOnly.call(this,readOnly);for(var fieldName in this.fields){if(this.fields.hasOwnProperty(fieldName)===false){continue;}
var field=this.getFieldWidget(fieldName);if(field){field.setReadOnly(readOnly);}}},getAutoSaveContents:function()
{var saveData=this._getSaveData(true);return saveData;},loadAutoSaveContents:function(content,callBack)
{var self=this;dfx.foreach(content,function(fieldName){if(content[fieldName].value&&self.fields[fieldName]){var field=self.getFieldWidget(fieldName);if(field){field.setValue(content[fieldName].value);}}});},getFieldWidget:function(fieldName)
{var widget=WidgetStore.get(this.id+'-field-'+fieldName);return widget;},_getSaveData:function(autoSave)
{var saveObj={};var valid=true;for(var fieldName in this.fields){if(this.fields.hasOwnProperty(fieldName)===false){continue;}
var field=this.getFieldWidget(fieldName);if(field){var obj={};if(this.fields[fieldName].isEditable===true){var value=field.getValue();if(autoSave!==true){var warning=dfx.getId(this.id+'-field-'+fieldName+'-warning');if(warning){dfx.hideElement(warning);}
var errorMsg=dfx.getId(this.id+'-field-'+fieldName+'-errorMsg');if(errorMsg){dfx.hideElement(errorMsg);}}
if(autoSave!==true&&this.fields[fieldName].isRequired&&((value.length&&value.length===0)||value==='')){valid=false;if(warning){dfx.showElement(warning);}
this.setModified(true);}else if(field.isUsingDefault()===false){var check=field.check();if(check===true){obj.value=value;}else if(autoSave!==true){valid=false;if(errorMsg){dfx.setHtml(errorMsg,check);dfx.showElement(errorMsg);}
this.setModified(true);}}}}
saveObj[fieldName]=obj;}
if(valid===false){return false;}
return saveObj;},saveScreenSettings:function()
{var saveObj=this._getSaveData();if(saveObj===false){this.switchOnScreen();return;}
var params={assetid:this.assetid,screen:this.id+'Widget',metadata:dfx.jsonEncode(saveObj)};var self=this;this.displayDisabledDiv(true);this.parent.processScreen(params,function(data){var esmw=WidgetStore.get('EditScreenModeWidgetType');esmw.updateSubInfoBox(self.assetid,function(){self.removeDisabledDiv(null,true);self.switchOnScreen();});},true);},revertScreenSettings:function()
{var self=this;var widget=WidgetStore.get('EditScreenModeWidgetType-tab_pane');if(widget){self.clean();widget.showScreen('metadata',null,true);}},switchOnScreen:function()
{var self=this;if(this.readOnly===true){this.disableSaveButton();}else{this.setSaveButton(function(){self.saveScreenSettings();},function(){self.revertScreenSettings();});}},switchOffScreen:function(){},clean:function()
{this.fields=null;var elem=dfx.getId(this.id+'-container');if(elem){dfx.empty(elem);}}};dfx.inherits('MetadataEditScreen','AbstractSettingsScreen');function PatchingSystemConfigScreenWidgetType(id,screenid,system,title,parent,assetid,readOnly)
{AbstractSettingsScreenWidgetType.call(this,id,screenid,system,title,parent,assetid,readOnly);this.widgetType='PatchingSystemConfigScreen';this.id=id;this.parent=parent;this.config={};this.patches={};this.unscheduled=0;this.unpatched=0;this.installed=0;this.hasChanges={};this.isDemo=false;this.assetPicker=WidgetStore.get('EditingAssetPicker');this.assetPicker.setHideSite('patching');this.assetPicker.setScreen('patching');this.assetPicker.addProjectFolderWhiteList('patching','Users');this.assetPicker.setUniqueSelect(false);this.children.push(this.id+'-enableToggle');this.children.push(this.id+'-idButton');this.children.push(this.id+'-notify');this.children.push(this.id+'-userList');this.children.push(this.id+'-addUser');this.children.push(this.id+'-enableToggle');this.children.push(this.id+'-date');this.children.push(this.id+'-timeHour');this.children.push(this.id+'-timeMin');this.children.push(this.id+'-asap');}
PatchingSystemConfigScreenWidgetType.prototype={setReadOnly:function(readOnly)
{AbstractSettingsScreenWidgetType.prototype.setReadOnly.call(this,readOnly);var items=dfx.getClass('ListItemWidgetType-remove-col',dfx.getId(this.id+'-userList-list'));dfx.foreach(items,function(idx){if(readOnly===true){dfx.hideElement(items[idx]);}else{dfx.showElement(items[idx]);}
return true;});},init:function(data)
{this.config=data.config;if(this.config.systemid==='sales_demo'||this.config.systemid==='cms_demo'){this.isDemo=true;}
var self=this;var toggle=WidgetStore.get(this.id+'-enableToggle');var date=dfx.getId(this.id+'-date');var time=dfx.getId(this.id+'-time');toggle.addToggleEvent(function(t){if(t===false){dfx.hideElement(date);dfx.hideElement(time);}else{dfx.showElement(date);dfx.showElement(time);}
if(t!==self.config.schedule){self.hasChanges.schedule=true;}else{delete self.hasChanges.schedule;}
self._checkChanges();});var change=WidgetStore.get(this.id+'-idButton');change.addClickEvent(function(){var item0=dfx.getId(self.id+'-infobox_systemid_item0');var item1=dfx.getId(self.id+'-infobox_systemid_item1');dfx.hideElement(item0);dfx.showElement(item1);self.includeWidgets(['TextField'],function(){var systemidElem=dfx.getId(self.id+'-systemid');if(dfx.isset(systemidElem)===false){systemid=self.createWidget(self.id+'-systemid','TextField');systemid.setWidth(120);systemid.create(function(elem){var title1=dfx.getId(self.id+'-infobox_systemid_item_title1');title1.appendChild(elem);systemid.addOnChangeEvent(function(){self.setModified(true);});});}
var val=self.config.systemid;if(self.isDemo===true){val='';}
systemid.setValue(val);});});var cancel=WidgetStore.get(this.id+'-cancelIdButton');cancel.addClickEvent(function(){var item0=dfx.getId(self.id+'-infobox_systemid_item0');var item1=dfx.getId(self.id+'-infobox_systemid_item1');dfx.hideElement(item1);dfx.showElement(item0);var systemid=WidgetStore.get(self.id+'-systemid');systemid.setValue('');});if(this.isDemo===false){this._initNonDemo();}
this.setModified(false);if(this.readOnly===true){this.displayScreenReadOnlyWarning(function(el){dfx.insertBefore(dfx.getId(self.id+'-tabs'),el);},function(){});}
this.ready();},_initNonDemo:function()
{var self=this;var notify=WidgetStore.get(this.id+'-notify');var noUser=dfx.getId(this.id+'-infobox_notification_item1');var userList=dfx.getId(this.id+'-infobox_notification_item2');var addUser=dfx.getId(this.id+'-infobox_notification_item3');dfx.hideElement(noUser);dfx.hideElement(userList);dfx.hideElement(addUser);notify.addToggleEvent(function(t){if(t===false){dfx.hideElement(noUser);dfx.hideElement(userList);dfx.hideElement(addUser);}else{var len=self.config.recipient.length;if(len===0){dfx.showElement(noUser);}
dfx.showElement(userList);dfx.showElement(addUser);}
if(t!==self.config.notify){self.hasChanges.notify=true;}else{delete self.hasChanges.notify;}
self._checkChanges();});var addUserButton=WidgetStore.get(this.id+'-addUser');if(dfx.isset(addUserButton)===true){addUserButton.addClickEvent(function(){addUserButton.disable();self.displayDisabledDiv(true);self.assetPicker.init('patching',function(){self.assetPicker.dialog.open();});});}
this.assetPicker.addAssetsSelectedAction(function(selectedAssets){dfx.hideElement(noUser);self._addUsersToList(selectedAssets);});this.assetPicker.addCloseAction(function(){addUserButton.enable();});var list=WidgetStore.get(this.id+'-userList');list.addRemovedEvent(function(){self.hasChanges.recipient=true;self._checkChanges();});var dateWidget=WidgetStore.get(this.id+'-date');dateWidget.addOnchangeEvent(function(){self.hasChanges.time=true;self._checkChanges();});var hourWidget=WidgetStore.get(this.id+'-timeHour');if(dfx.isset(hourWidget)===true){hourWidget.addItemSelectedEvent(function(){self.hasChanges.time=true;self._checkChanges();});}
var minWidget=WidgetStore.get(this.id+'-timeMin');if(dfx.isset(minWidget)===true){minWidget.addItemSelectedEvent(function(){self.hasChanges.time=true;self._checkChanges();});}
this.addExpandCollapseEvent();this.addCheckAsapEvent();this.updateSubscriptionInfo();},_checkChanges:function()
{var noChange=true;for(var id in this.hasChanges){if(this.hasChanges[id]===true){this.setModified(true);noChange=false;break;}}
if(noChange===true){this.setModified(false);}},_addUsersToList:function(uids)
{var len=uids.length;var list=WidgetStore.get(this.id+'-userList');for(var i=0;i<len;i++){list.addAsset(uids[i]);}
this.hasChanges.recipient=true;this._checkChanges();},saveRecipient:function(callback)
{var list=WidgetStore.get(this.id+'-userList');var uids=list.getValue();var params={notify:WidgetStore.get(this.id+'-notify').getValue(),uids:dfx.jsonEncode(uids),screen:this.id+'Widget',op:'saveRecipient'};var self=this;this.parent.processScreen(params,function(res){self.config=dfx.jsonDecode(res);list.clear();var len=uids.length;for(var i=0;i<len;i++){list.addAsset(uids[i]);}
if(len===0&&self.config.notify===true){var noUser=dfx.getId(self.id+'-infobox_notification_item1');dfx.showElement(noUser);}
if(dfx.isFn(callback)===true){callback.call();}});},saveTime:function(callback)
{var enabled=WidgetStore.get(this.id+'-enableToggle').getValue();var hour='';var hourWidget=WidgetStore.get(this.id+'-timeHour');if(dfx.isset(hourWidget)===true){hour=hourWidget.getValue(false,true);}
var min='';var minWidget=WidgetStore.get(this.id+'-timeMin');if(dfx.isset(minWidget)===true){min=minWidget.getValue(false,true);}
var params={enabled:enabled,date:WidgetStore.get(this.id+'-date').getTime(),hour:hour,min:min,screen:this.id+'Widget',op:'saveTime'};var self=this;this.displayDisabledDiv(true);this.parent.processScreen(params,function(data){var len=data.names.length;for(var i=0;i<len;i++){self.updateIconTime(enabled,data.names[i],data.time,data.username,data.icon);}
self.unscheduled=data.unscheduled;self.config.schedule=enabled;var warning=dfx.getId(self.id+'-infobox_warning_unscheduled');if(warning){if(enabled===true){dfx.hideElement(warning);}else{if(self.unscheduled>self.config.threshold){dfx.showElement(warning);}}}
self.removeDisabledDiv(null,true);if(dfx.isFn(callback)===true){callback.call();}},true);},changeId:function(systemid)
{var params={screen:this.id+'Widget',op:'changeId',systemid:systemid};var self=this;this.displayDisabledDiv(true);this.parent.processScreen(params,function(){self.reload();var systemid=WidgetStore.get(self.id+'-systemid');if(systemid){systemid.setValue('');}},true,200);},reload:function()
{var title=dfx.getId('SystemConfigScreenModeWidgetType-tab_pane-tab-patching-title');dfx.trigger(title,'click');},updateIconTime:function(enabled,name,time,username,usericon)
{var icon=dfx.getId('icon-'+name);var user=dfx.getId('user-'+name);if(enabled===true){dfx.swapClass(icon,'redCross','greenTick');dfx.showElement(user);dfx.setHtml(user,username);dfx.setStyle(user,'background-image','url('+usericon+')');}else{dfx.swapClass(icon,'greenTick','redCross');dfx.hideElement(user);}
var msg=dfx.getId('time-'+name);dfx.setHtml(msg,time);},refreshScreen:function()
{var warning=dfx.getId(this.id+'-infobox_warning_unscheduled');if(warning){if(this.unscheduled>this.config.threshold){dfx.showElement(warning);}else{dfx.hideElement(warning);}}
if(this.isDemo===false){var notify=WidgetStore.get(this.id+'-notify');if(this.config.notify===true){notify.toggleOn(true);}else{notify.toggleOff(true);}}
var dateDiv=dfx.getId(this.id+'-dateDiv');var noUpdate=dfx.getId(this.id+'-noPending');if(this.unpatched!==0||this.unscheduled!==0){dfx.hideElement(noUpdate);dfx.showElement(dateDiv);var toggle=WidgetStore.get(this.id+'-enableToggle');if(this.config.schedule===true){toggle.toggleOn();}else{toggle.toggleOff();}
var date=dfx.getId(this.id+'-date');var time=dfx.getId(this.id+'-time');if(toggle.getValue()===false){dfx.hideElement(date);dfx.hideElement(time);}else{dfx.showElement(date);dfx.showElement(time);}}else{dfx.showElement(noUpdate);dfx.hideElement(dateDiv);}
var noInstalled=dfx.getId(this.id+'-noInstalled');if(this.installed===0){dfx.showElement(noInstalled);}else{dfx.hideElement(noInstalled);}},getPatchesInfo:function(callback)
{var params={screen:this.id+'Widget',op:'getPatchesInfo'};var self=this;this.parent.processScreen(params,function(data){var patches=dfx.jsonDecode(data);var len=patches.length;var unscheduled=0;var unpatched=0;var installed=0;for(var i=0;i<len;i++){if(patches[i].scheduled===null){unscheduled++;}else if(patches[i].patched===null){unpatched++;}else{installed++;}}
self.patches=patches;self.unscheduled=unscheduled;self.unpatched=unpatched;self.installed=installed;if(dfx.isFn(callback)===true){callback.call(self);}});},addExpandCollapseEvent:function()
{var notes=dfx.getClass('archive-summary');var len=notes.length;for(var i=0;i<len;i++){this._addExpandCollapseEvent(notes[i]);}},_addExpandCollapseEvent:function(note)
{var expand=dfx.getClass('summary-expand',note);var collapse=dfx.getClass('summary-collapse',note);var shortNote=dfx.getClass('note-short',note);var longNote=dfx.getClass('note-long',note);dfx.addEvent(expand,'click',function(){dfx.hideElement(shortNote);dfx.showElement(longNote);});dfx.addEvent(collapse,'click',function(){dfx.hideElement(longNote);dfx.showElement(shortNote);});},addCheckAsapEvent:function()
{var self=this;var checkAsap=WidgetStore.get(this.id+'-asap');var text=dfx.getId('check-asap-time');if(dfx.isset(checkAsap)===true){if(this.config.hasOwnProperty('asap_enabled')===true){if(this.config.asap_enabled===false){checkAsap.disable();}}else if(checkAsap){checkAsap.disable();}
checkAsap.addClickEvent(function(){checkAsap.disable();dfx.setHtml(text,'');dfx.addClass(text,'loader');var params={screen:self.id+'Widget',op:'checkAsap'};self.parent.processScreen(params,function(time){dfx.removeClass(text,'loader');dfx.setHtml(text,time);});});}},updateSubscriptionInfo:function()
{var params={screen:this.id+'Widget',op:'getSubInfo'};var self=this;this.parent.processScreen(params,function(remain){if(remain==='EXPIRED'){var infobox=WidgetStore.get(self.id+'-infobox');if(infobox){infobox.showWarning('expired');}}
var subremain=dfx.getId('sub-remain');if(subremain){dfx.setHtml(subremain,remain);}},false,200);},getAutoSaveContents:function()
{var saveData={};return saveData;},loadAutoSaveContents:function(content,callback)
{if(callback){callback.call(this);}},switchOnScreen:function()
{var self=this;this.getPatchesInfo(function(){self.refreshScreen();});this.setSaveButton(function(){var systemid=WidgetStore.get(self.id+'-systemid');if(dfx.isset(systemid)===true){var val=systemid.getValue();if(val!==''){self.changeId(val);return;}}
self.saveRecipient(function(){self.saveTime(function(){self.hasChanges={};self.setModified(false);});});},function(){self.reload();});},switchOffScreen:function(){}};dfx.inherits('PatchingSystemConfigScreen','AbstractSettingsScreen');function PermissionEditScreenWidgetType(id,screenid,system,title,parent,assetid,readOnly)
{AbstractSettingsScreenWidgetType.call(this,id,screenid,system,title,parent,assetid,readOnly);this.assetPicker=WidgetStore.get('EditingAssetPicker');this.assetPicker.setScreen('permissionRole');this.assetPicker.addProjectFolderWhiteList('permissionRole','Users');this.assetPicker.setHideSite('permissionRole');this.widgetType='PermissionEditScreen';this.originalPermission=null;this.permissions=null;this.newStartingPerm={};this.changes={};this.mainWrapper=dfx.getId(this.id+'-mainWrapper-items');this.publicAccessWrapper=null;this.roleAccessWrapper=null;this.roleSections={};this.overrideButtons={};this.addNewButtons={};this.roleRightPaneList={};this.removeButtons={};this.cascadeBoxes={};this.roleRows={};this.permSelectBoxes={};this.effectiveIndic={};this.inheritanceIndic={};this.publicWrapperClass=this.id+'-publicSection';this.publicCurrentPermissionClass=this.id+'-publicCurrentPermission';this.publicLeftCornerClass=this.id+'-publicPermissionLeftCorner';this.publicPermissionTypeGrantedClass=this.id+'-PublicState-Green';this.publicPermissionTypeDeniedClass=this.id+'-PublicState-Red';this.publicPermissionSwitchClass=this.id+'-publicPermissionSwitch';this.publicPermissionSelectClass=this.id+'-publicPermissionSelect';this.publicRightCornerClass=this.id+'-publicPermissionRightCorner';this.publicPermissionTextClass=this.id+'-publicPermissionText';this.publicGrantedPublicAccessTextClass=this.id+'-publicGrantedPublicAccessText';this.publicPermissionSwitchLabelClass=this.id+'-publicPermissionSwitchLabel';this.publicPermissionSwitchButtonWrapperClass=this.id+'-publicPermissionSwitchButtonWrapper';this.publicOverrideButtonWrapperClass=this.id+'-publicOverrideButtonWrapper';this.mainWrapperClass=this.id+'-mainWrapper';this.overrideInUseClass=this.id+'-overrideInUse';this.overrideCascadeLabelClass=this.id+'-overrideCascadeLabel';this.rightLayer2Class=this.id+'-rightLayer2';this.rightLayer3Class=this.id+'-rightLayer3';this.appliesToChildrenOptionClass=this.id+'-appliesToChildrenOption';this.appliesToChildrenTextClass=this.id+'-appliesToChildrenText';this.appliesToChildrenCheckBoxWrapperClass=this.id+'-appliesToChildrenCheckBoxWrapper';this.appliesToChildrenCheckBoxClass=this.id+'-applyToChildren';this.overrideRemoveClass=this.id+'-overrideRemove';this.newPermissionRemoveClass=this.id+'-newPermissionRemove';this.currentUserAndGroupClass=this.id+'-currentUserAndGroup';this.currentUserAndGroupWrapperClass=this.id+'-currentUserAndGroupWrapper';this.roleWrapperClass=this.id+'-roleAccessWrapper';this.roleSectionClass=this.id+'-roleSection';this.roleSectionTitleClass=this.id+'-roleSectionTitle';this.roleEntryClass=this.id+'-roleEntry';this.leftLayerOneClass=this.id+'-leftLayerOne';this.leftLayerTwoClass=this.id+'-leftLayerTwo';this.leftLayerThreeClass=this.id+'-leftLayerThree';this.effectiveIndicatorClass=this.id+'-effectiveIndicator';this.inheritanceIndicatorClass=this.id+'-inheritanceIndicator';this.userTypeClass=this.id+'-userType';this.userNameClass=this.id+'-userName';this.overrideButtonWrapperClass=this.id+'-overrideButtonWrapper';this.permOptionListClass=this.id+'-permOptionList';this.addNewButtonWrapperClass=this.id+'-addNewButtonWrapper';this.roleLeftPaneClass=this.id+'-roleLeftPane';this.roleRightPaneClass=this.id+'-roleRightPane';this.publicAccessManager=null;this.publicAccessManagerid='PublicAccess-'+this.assetid;this.publicAccessManagerDynamicDiv=WidgetStore.get(this.id+'-publicAccessManager');this.roleManager=null;this.roleManagerid='RoleManager-'+this.assetid;this.roleManagerDynamicDiv=WidgetStore.get(this.id+'-roleManager');}
PermissionEditScreenWidgetType.prototype={init:function(data)
{this.originalPermission=data.permissions;this.permissions=dfx.clone(this.originalPermission);this.userInfo=data.userInfo;this.roleNames=data.roleNames;var self=this;var wrapper=dfx.getId(this.id+'-mainWrapper-items');this.mainWrapper=wrapper;dfx.empty(wrapper);dfx.addClass(wrapper,this.mainWrapperClass);this.includeWidgets(['Select','ToggleButton','Button'],function(){self.createPublicSection(function(){self.createRoleSection();self.ready();});});if(self.readOnly){self.displayScreenReadOnlyWarning(function(el){dfx.insertBefore(wrapper,el);},function(){self.forceEdit();});}},setReadOnly:function(readOnly)
{AbstractSettingsScreenWidgetType.prototype.setReadOnly.call(this,readOnly);var self=this;if(readOnly===true){dfx.foreach(this.permissions,function(roleid){dfx.foreach(self.permissions[roleid],function(userid){if(dfx.isset(self.overrideButtons[roleid])===true){if(dfx.isset(self.overrideButtons[roleid][userid])===true){self.overrideButtons[roleid][userid].setReadOnly(true);}}
if(dfx.isset(self.permSelectBoxes[roleid])===true){if(dfx.isset(self.permSelectBoxes[roleid][userid])===true){self.permSelectBoxes[roleid][userid].setReadOnly(true);}}
if(dfx.isset(self.addNewButtons[roleid])===true){self.addNewButtons[roleid].setReadOnly(true);}
if(dfx.isset(self.removeButtons[roleid])===true){if(dfx.isset(self.removeButtons[roleid][userid])===true){dfx.hideElement(self.removeButtons[roleid][userid]);}}});});}else{dfx.foreach(self.permissions,function(roleid){dfx.foreach(self.permissions[roleid],function(userid){if(dfx.isset(self.overrideButtons[roleid])===true){if(dfx.isset(self.overrideButtons[roleid][userid])===true){self.overrideButtons[roleid][userid].setReadOnly(false);}}
if(dfx.isset(self.permSelectBoxes[roleid])===true){if(dfx.isset(self.permSelectBoxes[roleid][userid])===true){self.permSelectBoxes[roleid][userid].setReadOnly(false);dfx.setStyle(self.permSelectBoxes[roleid][userid].select,'display','inline');}}
if(dfx.isset(self.addNewButtons[roleid])===true){self.addNewButtons[roleid].setReadOnly(false);}
if(dfx.isset(self.removeButtons[roleid])===true){if(dfx.isset(self.removeButtons[roleid][userid])===true){dfx.showElement(self.removeButtons[roleid][userid]);}}
if(dfx.isset(self.cascadeBoxes[roleid])===true){if(dfx.isset(self.cascadeBoxes[roleid][userid])===true){dfx.showElement(self.cascadeBoxes[roleid][userid]);}}});});if(self.publicAccessGrantDeny){self.publicAccessGrantDeny.setReadOnly(false);}
if(self.publicOverrideButton){self.publicOverrideButton.setReadOnly(false);}}},permissionInheritanceState:function(permEntry)
{var state=0;if(permEntry.effective===true){if(permEntry.cascade===true){state=1;}else{state=3;}}else{if(permEntry.cascade===true){state=2;}else{state=4;}}
return state;},createPublicSection:function(callback)
{var self=this;if(dfx.isset(this.permissions[0])===false){var publicAccessWrapper=document.createElement('div');this.publicAccessWrapper=publicAccessWrapper;dfx.addClass(publicAccessWrapper,this.publicWrapperClass);this.mainWrapper.appendChild(publicAccessWrapper);dfx.setHtml(publicAccessWrapper,'Public permission is not available for this asset');if(callback){callback.call(self);}
return;}
var publicPerm=this.permissions[0][0];var publicAccessWrapper=document.createElement('div');this.publicAccessWrapper=publicAccessWrapper;dfx.addClass(publicAccessWrapper,this.publicWrapperClass);this.mainWrapper.appendChild(publicAccessWrapper);inheritanceState=this.permissionInheritanceState(publicPerm);var accessType='Granted';var publicClass=this.publicPermissionTypeGrantedClass;var publicLeftCornerState='granted';var publicRightCornerState='granted';var publicSwitchDefault=true;if(inheritanceState===2){accessType='Denied';publicClass=this.publicPermissionTypeDeniedClass;publicSwitchDefault=false;publicLeftCornerState='denied';publicRightCornerState='denied';}else if(inheritanceState===4){accessType='Denied';publicClass=this.publicPermissionTypeDeniedClass;publicLeftCornerState='denied';}
this.inheritanceState=inheritanceState;this.publicClass=publicClass;this.publicAccessGrantDeny=this.createWidget(this.id+'-publicPermissionSwitchPublic','ToggleButton',false,'slider',publicSwitchDefault,'Yes','No');this.publicOverrideButton=this.createWidget(this.id+'-publicPermissionOverridePublic','Button','ButtonWidgetType-black',false,'Override');this.publicAccessGrantDeny.create(function(publicToggleElement){self.publicOverrideButton.create(function(publicOverrideElem){self.publicOverrideElem=publicOverrideElem;var publicLeftCorner=document.createElement('div');dfx.addClass(publicLeftCorner,self.publicLeftCornerClass);dfx.addClass(publicLeftCorner,publicLeftCornerState);self.publicLeftCorner=publicLeftCorner;var publicPermissionType=document.createElement('div');self.publicPermissionType=publicPermissionType;dfx.addClass(publicPermissionType,publicClass+'-Left');var publicPermissionText=document.createElement('div');dfx.addClass(publicPermissionText,self.publicPermissionTextClass);var currentPublicPermission=document.createElement('span');dfx.addClass(currentPublicPermission,self.publicCurrentPermissionClass);self.currentPublicPermission=currentPublicPermission;dfx.setHtml(currentPublicPermission,'Public Access '+accessType);publicPermissionText.appendChild(currentPublicPermission);publicPermissionType.appendChild(publicPermissionText);var publicPermissionSwitch=document.createElement('div');self.publicPermissionSwitch=publicPermissionSwitch;dfx.addClass(publicPermissionSwitch,self.publicPermissionSwitchClass);if(publicPerm.override===null){if(publicPerm.effective===true){publicRightCornerState='granted';}else{publicRightCornerState='denied';}
if(publicPerm.blockerdenied===0){self._showInheritCascadePublicPermissison(publicPermissionSwitch,publicOverrideElem);dfx.addClass(publicPermissionSwitch,publicClass+'-Right');}else{dfx.addClass(publicPermissionSwitch,publicClass+'-Right');}}else{publicRightCornerState='override';if(self._isOwnerOfPerm(publicPerm)===true){self._showStartGrantPublicPermission(publicPermissionSwitch,publicToggleElement);}else{if(publicPerm.cascade===true){self._showInheritOverrideContinuePermission(publicPermissionSwitch);}else{self._showInheritOverrideReversePublicPermission(publicPermissionSwitch);}}}
var publicRightCorner=document.createElement('div');dfx.addClass(publicRightCorner,self.publicRightCornerClass);dfx.addClass(publicRightCorner,publicRightCornerState);self.publicRightCorner=publicRightCorner;dfx.addClass(self.publicAccessWrapper,self.publicWrapperClass);self.publicAccessWrapper.appendChild(publicLeftCorner);self.publicAccessWrapper.appendChild(publicPermissionType);self.publicAccessWrapper.appendChild(publicPermissionSwitch);self.publicAccessWrapper.appendChild(publicRightCorner);self._addPublicPermissionToggleEvent();if(callback){callback.call(self);}});});},_isOwnerOfPerm:function(perm)
{if(perm.override!==null&&(perm.override==='granted'||perm.override==='denied')){var colTypes=['granted','denied','blockergranted','blockerdenied'];var ln=colTypes.length;if(perm[perm.override]!==1){return false;}
for(var i=0;i<colTypes.length;i++){if(perm[colTypes[i]]>0&&colTypes[i]!==perm.override){return false;}}
return true;}
return false;},_showInheritOverrideReversePublicPermission:function(publicPermissionSwitch)
{this._showPublicOverrideInUseRightPane(publicPermissionSwitch);dfx.addClass(publicPermissionSwitch,'cascade');},_showInheritOverrideContinuePermission:function(publicPermissionSwitch)
{this._showPublicOverrideInUseRightPane(publicPermissionSwitch);dfx.addClass(publicPermissionSwitch,'cascade');},_showStartGrantPublicPermission:function(publicPermissionSwitch,publicToggleElement)
{var publicPermissionSelect=document.createElement('div');dfx.addClass(publicPermissionSelect,this.publicPermissionSelectClass);var publicGrantedPublicAccessText=document.createElement('div');dfx.addClass(publicGrantedPublicAccessText,this.publicGrantedPublicAccessTextClass);var publicPermissionSwitchLabel=document.createElement('label');dfx.addClass(publicPermissionSwitchLabel,this.publicPermissionSwitchLabelClass);dfx.setHtml(publicPermissionSwitchLabel,'Grant Public Access');publicGrantedPublicAccessText.appendChild(publicPermissionSwitchLabel);publicPermissionSelect.appendChild(publicGrantedPublicAccessText);var publicPermissionSwitchWrapper=document.createElement('div');dfx.addClass(publicPermissionSwitchWrapper,this.publicPermissionSwitchButtonWrapperClass);publicPermissionSwitchWrapper.appendChild(publicToggleElement);publicPermissionSelect.appendChild(publicPermissionSwitchWrapper);publicPermissionSwitch.appendChild(publicPermissionSelect);},_showInheritCascadePublicPermissison:function(publicPermissionSwitch,publicOverrideElem)
{var publicOverrideButtonWrapper=document.createElement('div');dfx.addClass(publicOverrideButtonWrapper,this.publicOverrideButtonWrapperClass);publicPermissionSwitch.appendChild(publicOverrideButtonWrapper);publicOverrideButtonWrapper.appendChild(publicOverrideElem);this._addPublicOverrideButtonEvent();},_showPublicOverrideInUseRightPane:function(parentElem)
{this._showOverrideInUseRightPane(parentElem,'0','0');dfx.setStyles(this.cascadeBoxes[0][0],'top','23px');this._addPublicOverrideRemoveEvent(this.removeButtons[0][0]);this._addPublicOverrideAppliesToChildrenEvent(this.cascadeBoxes[0][0]);},_showExistingRoleOverrideInUseRightPane:function(parentElem,roleid,userid)
{this._showOverrideInUseRightPane(parentElem,roleid,userid);this._addEventRoleList(roleid,userid);},_addEventRoleList:function(roleid,userid)
{var self=this;dfx.addEvent(this.removeButtons[roleid][userid],'click',function(){dfx.empty(self.roleRightPaneList[roleid][userid]);dfx.removeClass(self.inheritanceIndic[roleid][userid],'stop checked');dfx.removeClass(self.inheritanceIndic[roleid][userid],'skip');dfx.addClass(self.inheritanceIndic[roleid][userid],'inherit');dfx.removeClass(self.roleRightPaneList[roleid][userid],'override');self.permissions[roleid][userid].override=null;self._showOverrideRoleRightPane(self.roleRightPaneList[roleid][userid],roleid,userid);if(dfx.isset(self.permissions[roleid][userid])===true){if(self.permissions[roleid][userid].effective===false){dfx.removeClass(self.effectiveIndic[roleid][userid],'denied');dfx.addClass(self.effectiveIndic[roleid][userid],'granted');self.permissions[roleid][userid].effective=true;self.screenModified();}else{dfx.removeClass(self.effectiveIndic[roleid][userid],'granted');dfx.addClass(self.effectiveIndic[roleid][userid],'denied');self.permissions[roleid][userid].effective=false;self.screenModified();}}});var checkBox=this.cascadeBoxes[roleid][userid];dfx.addEvent(checkBox,'click',function(){dfx.toggleClass(checkBox,'checked');if(dfx.hasClass(checkBox,'checked')===true){dfx.removeClass(self.inheritanceIndic[roleid][userid],'skip');dfx.addClass(self.inheritanceIndic[roleid][userid],'stop checked');self.permissions[roleid][userid].cascade=true;}else{dfx.removeClass(self.inheritanceIndic[roleid][userid],'checked');self.permissions[roleid][userid].cascade=false;}
self.screenModified();});},_showOverrideInUseRightPane:function(parentElem,roleid,userid)
{var overrideInUse=document.createElement('div');dfx.addClass(overrideInUse,this.overrideInUseClass);dfx.setHtml(overrideInUse,'Override in use');dfx.addClass(parentElem,'override');var rightLayer2=document.createElement('div');dfx.addClass(rightLayer2,this.rightLayer2Class);var appliesToChildrenOption=document.createElement('div');dfx.addClass(appliesToChildrenOption,this.appliesToChildrenOptionClass);var appliesToChildrenText=document.createElement('div');dfx.addClass(appliesToChildrenText,this.appliesToChildrenTextClass);appliesToChildrenOption.appendChild(appliesToChildrenText);var publicOverrideCascadeLabel=document.createElement('label');dfx.addClass(publicOverrideCascadeLabel,this.overrideCascadeLabelClass);dfx.setHtml(publicOverrideCascadeLabel,'Applies to children');appliesToChildrenText.appendChild(publicOverrideCascadeLabel);var appliesToChildrenCheckBoxWrapper=document.createElement('div');dfx.addClass(appliesToChildrenCheckBoxWrapper,this.appliesToChildrenCheckBoxWrapperClass);var cascadeTickBox=document.createElement('div');this.publicOverrideCascadeTickBox=cascadeTickBox;dfx.addClass(cascadeTickBox,this.appliesToChildrenCheckBoxClass);if(dfx.isset(this.cascadeBoxes[roleid])===false){this.cascadeBoxes[roleid]={};}
this.cascadeBoxes[roleid][userid]=cascadeTickBox;appliesToChildrenCheckBoxWrapper.appendChild(cascadeTickBox);if(dfx.isset(this.permissions[roleid])===true){if(dfx.isset(this.permissions[roleid][userid])===true){if(this.permissions[roleid][userid]['cascade']===true){dfx.addClass(cascadeTickBox,'checked');}}}
if(this.readOnly===true){dfx.hideElement(cascadeTickBox);}
appliesToChildrenOption.appendChild(appliesToChildrenCheckBoxWrapper);rightLayer2.appendChild(appliesToChildrenOption);var rightLayer3=document.createElement('div');dfx.addClass(rightLayer3,this.rightLayer3Class);var overrideRemoveButton=document.createElement('div');dfx.attr(overrideRemoveButton,"title","Click to revert to parents' settings");dfx.addClass(overrideRemoveButton,this.overrideRemoveClass);if(userid==='0'){dfx.addClass(overrideRemoveButton,'public');}else{dfx.addClass(overrideRemoveButton,'standard');}
rightLayer3.appendChild(overrideRemoveButton);if(dfx.isset(this.removeButtons[roleid])===false){this.removeButtons[roleid]={};}
this.removeButtons[roleid][userid]=overrideRemoveButton;if(this.readOnly===true){dfx.hideElement(overrideRemoveButton);}
rightLayer2.appendChild(rightLayer3);parentElem.appendChild(overrideInUse);parentElem.appendChild(rightLayer2);},_showPublicOverrideRoleRightPane:function(parentElem)
{var overrideButtonWrapper=document.createElement('div');dfx.addClass(overrideButtonWrapper,this.overrideButtonWrapperClass);overrideButtonWrapper.appendChild(newOverrideButton);parentElem.appendChild(overrideButtonWrapper);},_showOverrideRoleRightPane:function(parentElem,roleid,userid)
{var self=this;var overrideButtonWrapper=document.createElement('div');dfx.addClass(overrideButtonWrapper,this.overrideButtonWrapperClass);if(dfx.isset(this.overrideButtons[roleid])===false){this.overrideButtons[roleid]={};}
this.overrideButtons[roleid][userid]=this.createWidget(this.id+'-publicPermissionOverride-'+roleid+'-'+userid,'Button','ButtonWidgetType-black',false,'Override');this.overrideButtons[roleid][userid].create(function(publicOverrideElem){overrideButtonWrapper.appendChild(publicOverrideElem);parentElem.appendChild(overrideButtonWrapper);});this.overrideButtons[roleid][userid].addClickEvent(function(){self.permissions[roleid][userid].override=true;self.permissions[roleid][userid].cascade=true;dfx.addClass(self.inheritanceIndic[roleid][userid],'stop');if(self.permissions[roleid][userid].cascade===true){dfx.addClass(self.inheritanceIndic[roleid][userid],'checked');}
dfx.removeClass(self.inheritanceIndic[roleid][userid],'inherit');if(dfx.isset(self.permissions[roleid][userid])===true){if(self.permissions[roleid][userid].effective===true){dfx.removeClass(self.effectiveIndic[roleid][userid],'granted');dfx.addClass(self.effectiveIndic[roleid][userid],'denied');self.permissions[roleid][userid].effective=false;self.screenModified();}else{dfx.removeClass(self.effectiveIndic[roleid][userid],'denied');dfx.addClass(self.effectiveIndic[roleid][userid],'granted');self.permissions[roleid][userid].effective=true;self.screenModified();}}
if(dfx.isset(self.roleRightPaneList[roleid][userid])===true){dfx.empty(self.roleRightPaneList[roleid][userid]);dfx.addClass(self.roleRightPaneList[roleid][userid],'override');self._showExistingRoleOverrideInUseRightPane(self.roleRightPaneList[roleid][userid],roleid,userid);}});},_addPublicOverrideRemoveEvent:function(removeButton)
{var self=this;dfx.addEvent(removeButton,'click',function(){if(dfx.isset(self.permissions[0][0])===true){self.permissions[0][0].override=null;if(self.permissions[0][0].effective===false){dfx.removeClass(self.publicPermissionSwitch,'cascade');dfx.removeClass(self.publicPermissionType,self.publicPermissionTypeDeniedClass+'-Left');dfx.removeClass(self.publicPermissionSwitch,self.publicPermissionTypeDeniedClass+'-Right');dfx.addClass(self.publicPermissionType,self.publicPermissionTypeGrantedClass+'-Left')
dfx.addClass(self.publicPermissionSwitch,self.publicPermissionTypeGrantedClass+'-Right');dfx.removeClass(self.publicLeftCorner,'denied');dfx.removeClass(self.publicRightCorner,'override');dfx.addClass(self.publicLeftCorner,'granted');dfx.addClass(self.publicRightCorner,'granted');dfx.setHtml(self.currentPublicPermission,'Public Access Granted');dfx.empty(self.publicPermissionSwitch);self._showInheritCascadePublicPermissison(self.publicPermissionSwitch,self.publicOverrideElem);self.permissions[0][0].effective=true;self.changes[0]={};self.changes[0][0]=self.permissions[0][0];self.screenModified();}else{dfx.removeClass(self.publicPermissionSwitch,'cascade');dfx.removeClass(self.publicPermissionType,self.publicPermissionTypeGrantedClass+'-Left');dfx.removeClass(self.publicPermissionSwitch,self.publicPermissionTypeGrantedClass+'-Right');dfx.addClass(self.publicPermissionType,self.publicPermissionTypeDeniedClass+'-Left')
dfx.addClass(self.publicPermissionSwitch,self.publicPermissionTypeDeniedClass+'-Right');dfx.removeClass(self.publicLeftCorner,'granted');dfx.removeClass(self.publicRightCorner,'override');dfx.addClass(self.publicLeftCorner,'denied');dfx.addClass(self.publicRightCorner,'denied');dfx.setHtml(self.currentPublicPermission,'Public Access Denied');dfx.empty(self.publicPermissionSwitch);self._showInheritCascadePublicPermissison(self.publicPermissionSwitch,self.publicOverrideElem);self.permissions[0][0].effective=false;self.changes[0]={};self.changes[0][0]=self.permissions[0][0];self.screenModified();}}});},_addPublicOverrideAppliesToChildrenEvent:function(check)
{var self=this;dfx.addEvent(check,'click',function(){dfx.toggleClass(check,'checked');if(dfx.hasClass(check,'checked')===true){self.permissions[0][0].cascade=true;}else{self.permissions[0][0].cascade=false;}
self.changes[0]={};self.changes[0][0]=self.permissions[0][0];self.isModified=true;self.screenModified();});},_addPublicOverrideButtonEvent:function()
{var self=this;this.publicOverrideButton.addClickEvent(function(){if(dfx.isset(self.permissions[0][0])===true){self.permissions[0][0].override=true;if(self.permissions[0][0].effective===true){dfx.addClass(self.publicPermissionSwitch,'cascade');dfx.removeClass(self.publicPermissionSwitch,self.publicPermissionTypeGrantedClass+'-Right');dfx.removeClass(self.publicPermissionType,self.publicPermissionTypeGrantedClass+'-Left');dfx.addClass(self.publicPermissionType,self.publicPermissionTypeDeniedClass+'-Left');dfx.removeClass(self.publicLeftCorner,'granted');dfx.removeClass(self.publicRightCorner,'granted');dfx.addClass(self.publicLeftCorner,'denied');dfx.addClass(self.publicRightCorner,'override');dfx.setHtml(self.currentPublicPermission,'Public Access Denied');dfx.empty(self.publicPermissionSwitch);self.permissions[0][0].effective=false;self._showPublicOverrideInUseRightPane(self.publicPermissionSwitch);self.screenModified();}else{dfx.addClass(self.publicPermissionSwitch,'cascade');dfx.removeClass(self.publicPermissionSwitch,self.publicPermissionTypeDeniedClass+'-Right');dfx.removeClass(self.publicPermissionType,self.publicPermissionTypeDeniedClass+'-Left');dfx.addClass(self.publicPermissionType,self.publicPermissionTypeGrantedClass+'-Left');dfx.removeClass(self.publicLeftCorner,'denied');dfx.removeClass(self.publicRightCorner,'denied');dfx.addClass(self.publicLeftCorner,'granted');dfx.addClass(self.publicRightCorner,'override');dfx.setHtml(self.currentPublicPermission,'Public Access Granted');dfx.empty(self.publicPermissionSwitch);self.permissions[0][0].effective=true;self._showPublicOverrideInUseRightPane(self.publicPermissionSwitch);self.screenModified();}}});},_addPublicPermissionToggleEvent:function()
{var self=this;this.publicAccessGrantDeny.addToggleOnEvent(function(isOn){dfx.removeClass(self.publicPermissionType,self.publicPermissionTypeDeniedClass+'-Left');dfx.removeClass(self.publicLeftCorner,'denied');dfx.addClass(self.publicPermissionType,self.publicPermissionTypeGrantedClass+'-Left');dfx.addClass(self.publicLeftCorner,'granted');dfx.setHtml(self.currentPublicPermission,'Public Access Granted');if(dfx.isset(self.permissions[0][0])===true){self.permissions[0][0].effective=true;}
self.screenModified();});this.publicAccessGrantDeny.addToggleOffEvent(function(isOn){dfx.removeClass(self.publicPermissionType,self.publicPermissionTypeGrantedClass+'-Left');dfx.removeClass(self.publicLeftCorner,'granted');dfx.addClass(self.publicPermissionType,self.publicPermissionTypeDeniedClass+'-Left');dfx.addClass(self.publicLeftCorner,'denied');dfx.setHtml(self.currentPublicPermission,'Public Access Denied');if(dfx.isset(self.permissions[0][0])===true){self.permissions[0][0].effective=false;}
self.screenModified();});},createRoleSection:function(callback)
{var self=this;var roleAccessWrapper=document.createElement('div');this.roleAccessWrapper=roleAccessWrapper;dfx.addClass(roleAccessWrapper,this.roleWrapperClass);this.mainWrapper.appendChild(roleAccessWrapper);dfx.foreach(this.permissions,function(roleid){if(roleid!=='0'){self.addNewButtons[roleid]=self.createWidget(this.id+'-publicPermissionAddNew-'+roleid,'Button','ButtonWidgetType',false,'Add New');self.addNewButtons[roleid].create(function(newPublicAddNewButton){var newRoleSection=document.createElement('div');dfx.addClass(newRoleSection,self.roleSectionClass);self.roleSections[roleid]=newRoleSection;var roleName=self.roleNames[roleid];var roleSectionTitle=document.createElement('div');dfx.addClass(roleSectionTitle,self.roleSectionTitleClass);dfx.setHtml(roleSectionTitle,roleName);newRoleSection.appendChild(roleSectionTitle);var currentUserAndGroupWrapper=document.createElement('div');dfx.addClass(currentUserAndGroupWrapper,self.currentUserAndGroupWrapperClass);newRoleSection.appendChild(currentUserAndGroupWrapper);var currentUserAndGroup=document.createElement('div');dfx.addClass(currentUserAndGroup,self.currentUserAndGroupClass);dfx.setHtml(currentUserAndGroup,'Current Users & User Groups');currentUserAndGroupWrapper.appendChild(currentUserAndGroup);var addNewButtonWrapper=document.createElement('div');dfx.addClass(addNewButtonWrapper,self.addNewButtonWrapperClass);addNewButtonWrapper.appendChild(newPublicAddNewButton);self.addNewButtons[roleid].addClickEvent(function(){dfx.foreach(self.addNewButtons,function(buttonIdx){var button=self.addNewButtons[buttonIdx];self._toggleAddNewButtons(button,false);return true;});self._addNewRoleUserEntry(roleid);});currentUserAndGroupWrapper.appendChild(addNewButtonWrapper);dfx.foreach(self.permissions[roleid],function(userid){var userName=self.userInfo[userid]['name'];var roleRowHtml=self._getRoleRowHtml(roleid,userid);if(dfx.isset(self.roleRows[roleid])===false){self.roleRows[roleid]={};}
self.roleRows[roleid][userid]=roleRowHtml;dfx.addClass(roleRowHtml,self.roleEntryClass);newRoleSection.appendChild(roleRowHtml);return true;});roleAccessWrapper.appendChild(newRoleSection);});}});return true;},_toggleAddNewButtons:function(button,enable)
{if(button){if(enable===true){button.enable();}else{button.disable();}}},_addNewRoleUserEntry:function(roleid)
{var self=this;this.assetPicker.addAssetsSelectedAction(function(uids){self.reorder=true;dfx.foreach(uids,function(i){if(uids[i].search('~')!==-1){AssetManager.getShadowidFromRemoteid(uids[i],function(shadowid){if(shadowid!==false){var uid=parseInt(shadowid,10);var add=true;if(self.permissions.hasOwnProperty(roleid)===true){if(self.permissions[roleid].hasOwnProperty(uid)===true){add=false;}}}else{var uid=uids[i];var add=true;}
if(add===true){self._getUserData(roleid,uid,function(data){if(data!==''){var newRoleHtml=self._getNewRowHtml(roleid,dfx.jsonDecode(data));dfx.addClass(newRoleHtml,self.roleEntryClass);self.roleSections[roleid].appendChild(newRoleHtml);if(dfx.isset(self.roleRows[roleid])===false){self.roleRows[roleid]={};}
self.roleRows[roleid][uid]=newRoleHtml;}});self._addNewRolePermData(roleid,uid);self.screenModified();}});}else{var uid=parseInt(uids[i],10);var add=true;if(self.permissions.hasOwnProperty(roleid)===true){if(self.permissions[roleid].hasOwnProperty(uid)===true){add=false;}}
if(add===true){self._getUserData(roleid,uid,function(data){if(data!==''){var newRoleHtml=self._getNewRowHtml(roleid,dfx.jsonDecode(data));dfx.addClass(newRoleHtml,self.roleEntryClass);self.roleSections[roleid].appendChild(newRoleHtml);if(dfx.isset(self.roleRows[roleid])===false){self.roleRows[roleid]={};}
self.roleRows[roleid][uid]=newRoleHtml;}});self._addNewRolePermData(roleid,uid);self.screenModified();}}
return true;});self.screenModified();},true);this.assetPicker.init('permissionRole',function(){self.assetPicker.dialog.open();});this.assetPicker.addCloseAction(function(){dfx.foreach(self.addNewButtons,function(buttonIdx){var button=self.addNewButtons[buttonIdx];self._toggleAddNewButtons(button,true);return true;});});},_calcEffectiveness:function(permEntry)
{if(permEntry.blockerdenied<=0&&(permEntry.blockergranted>0||(permEntry.denied<=0&&permEntry.granted>0))){return true;}
return false;},_getUserData:function(roleid,uid,callback)
{var params={screen:'PermissionEditScreenWidget',type:'getGroupInfo',groupid:dfx.jsonEncode([uid])};var self=this;var permissionEditScreen=WidgetStore.get('PermissionEditScreen');permissionEditScreen.parent.getScreenData(params,function(data){if(dfx.isFn(callback)===true){callback.call(self,data);}});},_addNewRolePermData:function(roleid,userid)
{if(dfx.isset(this.permissions[roleid])===false){this.permissions[roleid]={};}
this.permissions[roleid][userid]={effective:true,cascade:true};if(dfx.isset(this.newStartingPerm[roleid])===false){this.newStartingPerm[roleid]={};}
this.newStartingPerm[roleid][userid]=this.permissions[roleid][userid];},_getRoleRowHtml:function(roleid,userid)
{var self=this;var roleRowDiv=document.createElement('div');var roleLeftPane=this._getExistingRoleLeftPane(roleid,userid);dfx.addClass(roleLeftPane,this.roleLeftPaneClass);roleRowDiv.appendChild(roleLeftPane);var roleRightPane=document.createElement('div');dfx.addClass(roleRightPane,this.roleRightPaneClass);if(dfx.isset(this.roleRightPaneList[roleid])===false){this.roleRightPaneList[roleid]={};}
this.roleRightPaneList[roleid][userid]=roleRightPane;var rolePermEntry=this.permissions[roleid][userid];var rightPaneInner=null;if(rolePermEntry.override===null){if(rolePermEntry.blockerdenied===0){rightPaneInner=this._showOverrideRoleRightPane(roleRightPane,roleid,userid);}}else{if(self._isOwnerOfPerm(rolePermEntry)===true){rightPaneInner=this._getNewRoleRightPane(roleRightPane,roleid,userid);;}else{rightPaneInner=this._showExistingRoleOverrideInUseRightPane(roleRightPane,roleid,userid);}}
if(rightPaneInner!==null){roleRowDiv.appendChild(roleRightPane);}
return roleRowDiv;},_getNewRowHtml:function(roleid,userdata)
{var userid=userdata.id;var usertype=userdata.typeid;var username=userdata.name;var roleRowDiv=document.createElement('div');var roleLeftPane=this._getNewRoleLeftPane(roleid,userid,username,usertype);dfx.addClass(roleLeftPane,this.roleLeftPaneClass);roleRowDiv.appendChild(roleLeftPane);var roleRightPane=document.createElement('div');dfx.addClass(roleRightPane,this.roleRightPaneClass);if(dfx.isset(this.roleRightPaneList[roleid])===false){this.roleRightPaneList[roleid]={};}
this.roleRightPaneList[roleid][userid]=roleRightPane;var rightPaneInner=this._getNewRoleRightPane(roleRightPane,roleid,userid);if(dfx.isset(this.roleRightPaneList[roleid])===false){this.roleRightPaneList[roleid]={};}
this.roleRightPaneList[roleid][userid]=roleRightPane;roleRowDiv.appendChild(roleRightPane);return roleRowDiv;},_getInheritCascadeClass:function(roleid,userid)
{var info=this.permissions[roleid][userid];var className='';if(info.override!==null){if(info.cascade===true){className='stop checked';}else{className='stop';}}else{className='inherit';}
return className;},_getExistingRoleLeftPane:function(roleid,userid)
{var permissionEntry=this.permissions[roleid][userid];var roleName=this.roleNames[roleid];var userName=this.userInfo[userid]['name'];var userType=this.userInfo[userid]['type'];var permEffectiveIndicatorClass='granted';if(permissionEntry.effective===true){permEffectiveIndicatorClass='granted';}else{permEffectiveIndicatorClass='denied';}
var permInheritanceIndicatorClass=this._getInheritCascadeClass(roleid,userid);var roleLeftPane=this._getRoleLeftPane(roleid,userid,permEffectiveIndicatorClass,permInheritanceIndicatorClass,userName,userType);return roleLeftPane;},_getRoleLeftPane:function(roleid,userid,permEffIndicatorClass,permInhIndicatorClass,userName,userType)
{var roleLeftPane=document.createElement('div');var leftLayerOne=document.createElement('div');dfx.addClass(leftLayerOne,this.leftLayerOneClass);roleLeftPane.appendChild(leftLayerOne);var permEffectivenessIndicator=document.createElement('div');if(dfx.isset(this.effectiveIndic[roleid])===false){this.effectiveIndic[roleid]={};}
this.effectiveIndic[roleid][userid]=permEffectivenessIndicator;dfx.addClass(permEffectivenessIndicator,this.effectiveIndicatorClass);dfx.addClass(permEffectivenessIndicator,permEffIndicatorClass);leftLayerOne.appendChild(permEffectivenessIndicator);var leftLayerTwo=document.createElement('div');dfx.addClass(leftLayerTwo,this.leftLayerTwoClass);leftLayerOne.appendChild(leftLayerTwo);var permInheritanceIndicator=document.createElement('div');if(dfx.isset(this.inheritanceIndic[roleid])===false){this.inheritanceIndic[roleid]={};}
this.inheritanceIndic[roleid][userid]=permInheritanceIndicator;var inheritanceClass=this.inheritanceIndicatorClass;dfx.addClass(permInheritanceIndicator,inheritanceClass);dfx.addClass(permInheritanceIndicator,permInhIndicatorClass);leftLayerTwo.appendChild(permInheritanceIndicator);var leftLayerThree=document.createElement('div');dfx.addClass(leftLayerThree,this.leftLayerThreeClass);leftLayerTwo.appendChild(leftLayerThree);var userTypeIndicator=document.createElement('div');dfx.addClass(userTypeIndicator,this.userTypeClass);if(userType==='userGroup'){dfx.addClass(userTypeIndicator,'user');}else{dfx.addClass(userTypeIndicator,'usergroup');}
leftLayerThree.appendChild(userTypeIndicator);var userNameDiv=document.createElement('div');dfx.addClass(userNameDiv,this.userNameClass);dfx.setHtml(userNameDiv,userName);leftLayerThree.appendChild(userNameDiv);return roleLeftPane;},_getNewRoleLeftPane:function(roleid,userid,userName,usertype)
{return this._getRoleLeftPane(roleid,userid,'granted','stop checked',userName,usertype);},_getNewRoleRightPane:function(parentElem,roleid,userid)
{var self=this;var overrideInUse=document.createElement('div');dfx.addClass(overrideInUse,self.overrideInUseClass);if(dfx.isset(this.permSelectBoxes[roleid])===false){this.permSelectBoxes[roleid]={};}
this.permSelectBoxes[roleid][userid]=this.createWidget(this.id+'-permStartSelect-'+roleid+'-'+userid,'Select');var permsChoices={0:'Grant Permission',1:'Deny Permission'};this.permSelectBoxes[roleid][userid].addItems(permsChoices);this.permSelectBoxes[roleid][userid].create(function(permOptionList){if(dfx.isset(self.permissions[roleid])===true){if(dfx.isset(self.permissions[roleid][userid])===true){if(self.permissions[roleid][userid].effective===true){self.permSelectBoxes[roleid][userid].setValue(0,false);}else{self.permSelectBoxes[roleid][userid].setValue(1,false);}}}
dfx.addClass(permOptionList,self.permOptionListClass);var rightLayer2=document.createElement('div');dfx.addClass(rightLayer2,self.rightLayer2Class);var appliesToChildrenOption=document.createElement('div');dfx.addClass(appliesToChildrenOption,self.appliesToChildrenOptionClass);var appliesToChildrenText=document.createElement('div');dfx.addClass(appliesToChildrenText,self.appliesToChildrenTextClass);appliesToChildrenOption.appendChild(appliesToChildrenText);var publicOverrideCascadeLabel=document.createElement('label');dfx.addClass(publicOverrideCascadeLabel,self.overrideCascadeLabelClass);dfx.attr(publicOverrideCascadeLabel,"style","color: #6C8DB2");dfx.setHtml(publicOverrideCascadeLabel,'Applies to children');appliesToChildrenText.appendChild(publicOverrideCascadeLabel);var appliesToChildrenCheckBoxWrapper=document.createElement('div');dfx.addClass(appliesToChildrenCheckBoxWrapper,self.appliesToChildrenCheckBoxWrapperClass);var cascadeTickBox=document.createElement('div');if(dfx.isset(self.cascadeBoxes[roleid])===false){self.cascadeBoxes[roleid]={};}
self.cascadeBoxes[roleid][userid]=cascadeTickBox;if(dfx.isset(self.permissions[roleid])===true){if(dfx.isset(self.permissions[roleid][userid])===true){if(self.permissions[roleid][userid].cascade===true){dfx.addClass(cascadeTickBox,'checked');}}}
if(self.readOnly===true){dfx.hideElement(cascadeTickBox);}
self._addCascadeTickboxEvents(cascadeTickBox,roleid,userid);self.permSelectBoxes[roleid][userid].addItemSelectedEvent(function(){var val=parseInt(self.permSelectBoxes[roleid][userid].getValue(),10);if(val===1){dfx.removeClass(self.effectiveIndic[roleid][userid],'granted');dfx.addClass(self.effectiveIndic[roleid][userid],'denied');self.permissions[roleid][userid].effective=false;if(dfx.hasClass(cascadeTickBox,'checked')===true){self.permissions[roleid][userid].cascade=true;}else{self.permissions[roleid][userid].cascade=false;}}else if(val===0){dfx.removeClass(self.effectiveIndic[roleid][userid],'denied');dfx.addClass(self.effectiveIndic[roleid][userid],'granted');self.permissions[roleid][userid].effective=true;if(dfx.hasClass(cascadeTickBox,'checked')===true){self.permissions[roleid][userid].cascade=true;}else{self.permissions[roleid][userid].cascade=false;}}
self.screenModified();});dfx.addClass(cascadeTickBox,self.appliesToChildrenCheckBoxClass);appliesToChildrenCheckBoxWrapper.appendChild(cascadeTickBox);appliesToChildrenOption.appendChild(appliesToChildrenCheckBoxWrapper);var overrideRemoveButton=document.createElement('div');dfx.addClass(overrideRemoveButton,self.newPermissionRemoveClass);if(dfx.isset(self.removeButtons[roleid])===false){self.removeButtons[roleid]={};}
self.removeButtons[roleid][userid]=overrideRemoveButton;appliesToChildrenOption.appendChild(overrideRemoveButton);if(self.readOnly===true){dfx.hideElement(overrideRemoveButton);}
dfx.addEvent(overrideRemoveButton,'click',function(){dfx.toggleClass(overrideRemoveButton,'removed');dfx.toggleClass(self.roleRows[roleid][userid],'deleted');if(dfx.hasClass(self.roleRows[roleid][userid],'deleted')===true){self.permSelectBoxes[roleid][userid].select.disabled=true;dfx.removeEvent(self.cascadeBoxes[roleid][userid],'click');if(dfx.isset(self.permissions[roleid][userid])===true){if(dfx.isset(self.newStartingPerm[roleid])===false){self.newStartingPerm[roleid]={};}
self.newStartingPerm[roleid][userid]=self.permissions[roleid][userid];self.permissions[roleid][userid].deleted=true;}}else{if(dfx.isset(self.permissions[roleid])===false){self.permissions[roleid]={};}
self.permSelectBoxes[roleid][userid].select.disabled=false;self._addCascadeTickboxEvents(self.cascadeBoxes[roleid][userid],roleid,userid);self.permissions[roleid][userid].deleted=false;}
self.screenModified();});rightLayer2.appendChild(appliesToChildrenOption);overrideInUse.appendChild(permOptionList);parentElem.appendChild(overrideInUse);parentElem.appendChild(rightLayer2);});},_addCascadeTickboxEvents:function(cascadeTickBox,roleid,userid)
{var self=this;dfx.addEvent(cascadeTickBox,'click',function(){dfx.toggleClass(cascadeTickBox,'checked');if(dfx.isset(self.permissions[roleid][userid])===true){if(dfx.hasClass(cascadeTickBox,'checked')===true){dfx.addClass(self.inheritanceIndic[roleid][userid],'checked');self.permissions[roleid][userid]['cascade']=true;}else{dfx.removeClass(self.inheritanceIndic[roleid][userid],'checked');self.permissions[roleid][userid]['cascade']=false;}}
self.screenModified();});},getAutoSaveContents:function()
{var saveData={};return saveData;},loadAutoSaveContents:function(content,callBack)
{if(callback){callback.call(this);}},saveScreenSettings:function()
{var self=this;dfx.foreach(this.permissions,function(roleid){dfx.foreach(self.permissions[roleid],function(userid){dfx.foreach(self.permissions[roleid][userid],function(index){if(dfx.isset(self.originalPermission[roleid][userid])===false){if(dfx.isset(self.changes[roleid])===false){self.changes[roleid]={};}
self.changes[roleid][userid]=self.permissions[roleid][userid];}else{if(self.permissions[roleid][userid][index]!==self.originalPermission[roleid][userid][index]){if(dfx.isset(self.changes[roleid])===false){self.changes[roleid]={};}
self.changes[roleid][userid]=self.permissions[roleid][userid];}}});});});var params={assetid:this.assetid,permissionInfo:dfx.jsonEncode(self.changes),screen:this.id+'Widget'};var self=this;this.displayDisabledDiv(true);this.parent.processScreen(params,function(data){self.reload(function(){self.removeDisabledDiv(null,true);self.setModified(false);});self.switchOnScreen();},true);},revertScreenSettings:function()
{var self=this;this.displayDisabledDiv(true);this.reload(function(){self.removeDisabledDiv();});},reload:function(callback)
{var self=this;var params={mode:'EditScreenMode',screen:'PermissionEditScreenWidget',type:'getPermissionData',assetid:this.assetid};this.parent.getScreenData(params,function(data){var permissionData=dfx.jsonDecode(data);self.init(permissionData);callback.call(self);});if(dfx.isset(callback)===true){callback.call(self);}},switchOnScreen:function()
{var self=this;if(this.readOnly===true){this.disableSaveButton();}else{this.setSaveButton(function(){self.saveScreenSettings();},function(){self.revertScreenSettings();});}},switchOffScreen:function(){},screenModified:function()
{var self=this;var modified=false;self.changes={};dfx.foreach(this.permissions,function(roleid){dfx.foreach(self.permissions[roleid],function(userid){dfx.foreach(self.permissions[roleid][userid],function(index){if(dfx.isset(self.originalPermission[roleid][userid])===false){if(dfx.isset(self.changes[roleid])===false){self.changes[roleid]={};}
self.changes[roleid][userid]=self.permissions[roleid][userid];}else{if(self.permissions[roleid][userid][index]!==self.originalPermission[roleid][userid][index]){if(dfx.isset(self.changes[roleid])===false){self.changes[roleid]={};}
self.changes[roleid][userid]=self.permissions[roleid][userid];}}});});});if(dfx.isEmpty(self.changes)===false||dfx.isEmpty(self.newStartingPerm)===false){modified=true;}
this.setModified(modified);}};dfx.inherits('PermissionEditScreen','AbstractSettingsScreen');function ProjectSystemConfigScreenWidgetType(id,screenid,system,title,parent,assetid,readOnly)
{AbstractSettingsScreenWidgetType.call(this,id,screenid,system,title,parent,assetid,readOnly);this.widgetType='ProjectSystemConfigScreen';this.id=id;this.parent=parent;this.screenid=screenid;this.system=system;this.title=title;this.parent=parent;this.projects={};this.usedUrls=[];this.sorted=false;this.modified={};this.restore={};this.activate={};this.noDelete=false;}
ProjectSystemConfigScreenWidgetType.prototype={init:function(data)
{var self=this;var wLen=data.widgets.length;for(var w=0;w<wLen;w++){this.children.push(data.widgets[w]);}
this.projects=data.projects;dfx.foreach(this.projects,function(idx){dfx.foreach(self.projects[idx].url,function(urlIdx){self.usedUrls.push(self._normaliseUrl(self.projects[idx].url[urlIdx]));return true;});return true;});var self=this;this.setReadOnly(this.readOnly);if(this.readOnly===true){this.displayScreenReadOnlyWarning(function(el){dfx.insertBefore(dfx.getId(self.id+'-restore'),el);self.makeReadOnly();},function(){self.forceEdit();});}else{dfx.showElement(dfx.getId(this.id+'-inactive'));}
this.addRestoreSectionEvent();this.addActiveSectionEvent();this.addInactiveSectionEvent();var urls=dfx.getClass(this.id+'-projectLink');var uLen=urls.length;var mode='/_edit?initialMode=SystemConfigScreenMode&initialScreen=ProjectSystemConfigScreenWidget';dfx.foreach(urls,function(idx){dfx.addEvent(urls[idx],'click',function(){WidgetStore.get('EditingSaveButton');var saveButton=WidgetStore.get('EditingSaveButton');if(saveButton.isEnabled()===true){var answer=confirm(WidgetStore.getUnsavedChangesStr());if(answer===true){window.location.href=dfx.getHtml(this)+mode;}}else{window.location.href=dfx.getHtml(this)+mode;}});return true;});this.ready();},makeReadOnly:function()
{dfx.addClass(dfx.getId(this.id+'-wrapper'),'readOnly');var elem=dfx.getClass(this.id+'-projectSort');var len=elem.length;for(var i=0;i<len;i++){dfx.swapClass(elem,this.id+'-projectSort',this.id+'-projectSort-inactive');}},forceEdit:function()
{var self=this;AbstractSettingsScreenWidgetType.prototype.forceEdit.call(this,function(){self.setModified(false);self.reload();});},reload:function()
{var title=dfx.getId('SystemConfigScreenModeWidgetType-tab_pane-tab-project-title');dfx.trigger(title,'click');},addRestoreSectionEvent:function()
{var table=WidgetStore.get(this.id+'-restoreTable');if(table){var rowids=table.getRowids();var rLen=rowids.length;for(var i=0;i<rLen;i++){this._addRestoreEvent(rowids[i]);}}},addActiveSectionEvent:function()
{var table=WidgetStore.get(this.id+'-activeTable');if(table){var self=this;table.makeSortable(0,'div.'+this.id+'-projectSort',null,function(){self.sorted=true;self.setModified(true);});var rowids=table.getRowids();var rLen=rowids.length;for(var i=0;i<rLen;i++){this._addEditEvent(rowids[i]);}
this._addDeleteEvent();this._addCheckProgress();}},addInactiveSectionEvent:function()
{var table=WidgetStore.get(this.id+'-inactiveTable');if(table){var rowids=table.getRowids();var rLen=rowids.length;for(var i=0;i<rLen;i++){this.activate[rowids[i]]={};this._addActivateButtonEvent(rowids[i]);this._addCancelButtonEvent(rowids[i]);}}},_addRestoreEvent:function(id)
{var self=this;var restore=WidgetStore.get(this.id+'-restoreButton-'+id);if(restore){restore.addClickEvent(function(){self.restore[id]=true;self.setModified(true);var button=dfx.getId(self.id+'-restoreButton-'+id);var msg=dfx.getId(self.id+'-restoreMsg-'+id);var row=dfx.getId(self.id+'-restoreTable-row-'+id);dfx.hideElement(button);dfx.showElement(msg);dfx.addClass(row,'restore');});}},_addEditEvent:function(id)
{var self=this;var nameInput=WidgetStore.get(this.id+'-nameInput-'+id);if(nameInput){nameInput.addOnChangeEvent(function(){self._hideIntervention(id);self.modified[id]=this.getValue();self.setModified(true);});}},_addDeleteEvent:function()
{var self=this;var deleteButtons=dfx.getClass(this.id+'-projectDelete');dfx.addEvent(deleteButtons,'click',function(){var buttons=dfx.getClass(self.id+'-projectDelete');var bLen=buttons.length;if(bLen===1){var warning='Last project cannot be marked for deletion';self._showIntervention(pid,this,warning,null,'OK','275px','70px');}else{if(self.noDelete===true){return;}
self.noDelete=true;var pid=dfx.attr(this,'pid');var msg='The deletion of a project is not an instant action. ';msg+='Marking the project for removal means it will be ';msg+='deleted after the next system backup is run ';msg+='(usually late at night). A project is recoverable up ';msg+='until this backup takes place. After this point in ';msg+='time the project is completely removed.<br /><br />';msg+='Do you wish to continue?';self._showIntervention(pid,this,msg,'Yes','No','250px','200px',function(){self.displayDisabledDiv(true);self.parent.processScreen({marked:pid,screen:self.id+'Widget',op:'markProject'},function(){self.reload();});},function(){self.noDelete=false;});}});},_addCheckProgress:function()
{var self=this;this.interval=setInterval(function(){var loader=dfx.getClass(self.id+'-projectLoader');if(loader){var len=loader.length;if(len===0){clearInterval(self.interval);}}
self.parent.processScreen({screen:self.id+'Widget',op:'getProjectInfo'},function(data){if(data){data=dfx.jsonDecode(data);var pLen=data.length;for(var x=0;x<pLen;x++){if(data[x].created!==null){var loader=dfx.getId('projectLoader-'+data[x].name);if(loader){dfx.swapClass(loader,self.id+'-projectLoader',self.id+'-projectCreated');var msg=dfx.getId('projectMsg-'+data[x].name);if(msg){dfx.setHtml(msg,'Project created, reload to edit settings');}}}}}},false,200);},60000);},_addActivateButtonEvent:function(id)
{var self=this;var button=WidgetStore.get(this.id+'-activateButton-'+id);if(button){button.addClickEvent(function(e){var nameText=dfx.getId(self.id+'-nameText-'+id);var nameInput=dfx.getId(self.id+'-nameInput-'+id+'_container');if(nameText&&nameInput){dfx.hideElement(nameText);dfx.showElement(nameInput);WidgetStore.get(self.id+'-nameInput-'+id).focus();}
var urlText=dfx.getId(self.id+'-urlText-'+id);var urlInput=dfx.getId(self.id+'-urlInput-'+id+'_container');if(urlText&&urlInput){dfx.hideElement(urlText);dfx.showElement(urlInput);}
var aButton=dfx.getId(self.id+'-activateButton-'+id);var cButton=dfx.getId(self.id+'-cancelButton-'+id);if(aButton&&cButton){dfx.hideElement(aButton);dfx.showElement(cButton);}});}
var nameInput=WidgetStore.get(this.id+'-nameInput-'+id);if(nameInput){nameInput.addOnChangeEvent(function(){self._hideIntervention(id);self.activate[id].name=this.getValue();self.setModified(true);});}
var urlInput=WidgetStore.get(this.id+'-urlInput-'+id);if(urlInput){urlInput.addOnChangeEvent(function(){self._hideIntervention(id);self.activate[id].url=this.getValue();self.setModified(true);});}},_addCancelButtonEvent:function(id)
{var self=this;var button=WidgetStore.get(this.id+'-cancelButton-'+id);if(button){button.addClickEvent(function(e){var nameText=dfx.getId(self.id+'-nameText-'+id);var nameInput=dfx.getId(self.id+'-nameInput-'+id+'_container');if(nameText&&nameInput){dfx.hideElement(nameInput);dfx.showElement(nameText);}
var urlText=dfx.getId(self.id+'-urlText-'+id);var urlInput=dfx.getId(self.id+'-urlInput-'+id+'_container');if(urlText&&urlInput){dfx.hideElement(urlInput);dfx.showElement(urlText);}
var aButton=dfx.getId(self.id+'-activateButton-'+id);var cButton=dfx.getId(self.id+'-cancelButton-'+id);if(aButton&&cButton){dfx.hideElement(cButton);dfx.showElement(aButton);}
self.activate[id]={};WidgetStore.get(self.id+'-nameInput-'+id).setValue('');WidgetStore.get(self.id+'-urlInput-'+id).setValue('http://');self._hideIntervention(id);});}},switchOffScreen:function(){},switchOnScreen:function()
{var self=this;this.setSaveButton(function(){var v1=self._validateName();var v2=self._validateActivation();if(v1===false||v2===false){return;}
self.processRestoreSection(function(){self.processActiveSection(function(){self.processInactiveSection(function(){self.reload();});});});},function(){self.reload();});},processRestoreSection:function(callback)
{var self=this;var todo=[];for(var x in this.restore){if(this.restore[x]===true){todo.push(x);}}
var tLen=todo.length;if(tLen>0){this.displayDisabledDiv(true);this.parent.processScreen({restore:dfx.jsonEncode(todo),screen:self.id+'Widget',op:'restoreProject'},function(){if(dfx.isFn(callback)===true){callback.call(self);}});}else{if(dfx.isFn(callback)===true){callback.call(self);}}},processActiveSection:function(callback)
{var self=this;var order=[];if(this.sorted===true){var elem=dfx.getClass(this.id+'-projectSort');var len=elem.length;for(var i=0;i<len;i++){var elemid=elem[i].id.replace('sort-','');order.push(elemid);}}
this.displayDisabledDiv(true);this.parent.processScreen({order:dfx.jsonEncode(order),todo:dfx.jsonEncode(self.modified),screen:self.id+'Widget',op:'updateProject'},function(){if(dfx.isFn(callback)===true){callback.call(self);}});},processInactiveSection:function(callback)
{var todo=this._validateActivation();if(dfx.isEmpty(todo)===false){var params={todo:dfx.jsonEncode(todo),screen:this.id+'Widget',op:'activateProject'};var self=this;this.displayDisabledDiv(true);this.parent.processScreen(params,function(data){if(data.hasOwnProperty('errors')===false){if(dfx.isFn(callback)===true){callback.call(self);}}else{self.setModified(true);}},true);}else{if(dfx.isFn(callback)===true){callback.call(self);}}},_validateName:function()
{for(var i in this.modified){if(dfx.isBlank(this.modified[i])===true){var target=dfx.getId(this.id+'-nameInput-'+i+'_container');var msg='Name cannot be empty';this._showIntervention(i,target,msg,null,'OK','175px','70px');return false;}else{var unique=this._checkUniqueName(this.modified[i]);if(unique===false){var target=dfx.getId(this.id+'-nameInput-'+i+'_container');var msg='Project name must be unique';this._showIntervention(i,target,msg,null,'OK','210px','70px');return false;}}}
return true;},_checkUniqueName:function(name)
{var pLen=this.projects.length;for(var x=0;x<pLen;x++){if(this.projects[x].hasOwnProperty('name')===true){var pName=this.projects[x].name;if(pName.toLowerCase()===name.toLowerCase()){return false;}}}
return true;},_normaliseUrl:function(url)
{var normUrl=dfx.trim(url).replace(new RegExp('^[a-z]+:\/\/(.*)$'),'$1');if(normUrl.charAt(normUrl.length-1)==='/'){normUrl=normUrl.substr(0,normUrl.length-1);}
normUrl=dfx.trim(normUrl);return normUrl;},_validateActivation:function()
{var todo=[];var error=null;var popName=false;var popUrl=false;var popDupeUrl=false;var popInvalUrl=false;var newUrls=[];for(var i in this.activate){var hasName=this.activate[i].hasOwnProperty('name');var hasUrl=this.activate[i].hasOwnProperty('url');var name='';var url='';var normUrl='';if(hasName===true){name=this.activate[i].name;}
if(hasUrl===true){url=this.activate[i].url;if(url==='http://'){url='';}}
if(hasName===true&&hasUrl===true){var normUrl=this._normaliseUrl(url);if(dfx.isBlank(name)===true){popName=true;error=i;break;}else if(dfx.isBlank(url)===true){popUrl=true;error=i;break;}else{var testUrl=url.replace('/_edit','');if((testUrl+'/_edit')===url){popInvalUrl=true;error=i;break;}else{todo.push({id:i,name:name,url:url,type:'site'});}}
if(this.usedUrls.inArray(normUrl)===true||newUrls.inArray(normUrl)===true){popDupeUrl=true;error=i;break;}else if(dfx.validateUrl(normUrl,false)===false){popInvalUrl=true;error=i;break;}else{newUrls.push(normUrl);}}else{if(hasName===false&&hasUrl===true){popName=true;error=i;break;}else if(hasUrl===false&&hasName===true){popUrl=true;error=i;break;}}}
if(error!==null){var msg='';if(popName===true){var nameElem=dfx.getId(this.id+'-nameInput-'+error+'_container');msg='Name cannot be empty';this._showIntervention(error,nameElem,msg,null,'OK','175px','70px');}else if(popUrl===true){var urlElem=dfx.getId(this.id+'-urlInput-'+error+'_container');msg='URL cannot be empty';this._showIntervention(error,urlElem,msg,null,'OK','170px','70px');}else if(popInvalUrl===true){var urlElem=dfx.getId(this.id+'-urlInput-'+error+'_container');msg='URL is invalid';this._showIntervention(error,urlElem,msg,null,'OK','150px','70px');}else if(popDupeUrl===true){var urlElem=dfx.getId(this.id+'-urlInput-'+error+'_container');msg='URL is already used by another project being activated';this._showIntervention(error,urlElem,msg,null,'OK','220px','70px');}
return false;}else{return todo;}},_showIntervention:function(id,target,msg,ok,cancel,width,height,okCb,cancelCb)
{var self=this;this._hideIntervention(id);this.includeWidget('Intervention',function(){if(dfx.isset(okCb)===false){okCb=function(){};}
if(dfx.isset(cancelCb)===false){cancelCb=function(){};}
var pop=self.createWidget('projectIntervention-'+id,'Intervention',cancelCb,okCb);pop.confirmText=ok;pop.cancelText=cancel;pop.create(function(){pop.setSize(width,height);pop.setMessage(msg);pop.show(target);});});},_hideIntervention:function(id)
{var ok=dfx.getId('projectIntervention-'+id+'-cancelButton');if(ok){dfx.trigger(ok,'click');}}};dfx.inherits('ProjectSystemConfigScreen','AbstractSettingsScreen');function PublishingEditScreenWidgetType(id,screenid,system,title,parent,assetid,readOnly)
{AbstractSettingsScreenWidgetType.call(this,id,screenid,system,title,parent,assetid,readOnly);this.widgetType='PublishingEditScreen';this._workflowSchemas=[];this._isPublished=false;this._hasWorkflow=false;this._noRequired=true;this._statusContainer=null;this._origStatus=this._isPublished;this.statusToggle=null;this.changesToggle=null;this._isSite=false;this._dependencies={};this._dependenciesNotAllowed={};this._wfCompletedScheduled=false;this.depWrap=null;this.pubDepsWrap=null;this._safeToPublished=false;this.contextClassname='dependency-usageContext';this.contextDescClassname='dependency-usageContextDesc';this.contextTagClassname='dependency-usageContextTag';this.contextCurvesClassname='dependency-usageContextCurves';this.contextTypeClassname='dependency-usageContextType';this._isSysAdmin=false;}
PublishingEditScreenWidgetType.prototype={screenModified:function()
{var saveon=false;var pubDepsToggle=WidgetStore.get(this.id+'-pubDeps');if(this._dependenciesInitiated===true){if(pubDepsToggle&&pubDepsToggle.getValue()===true){saveon=true;}}
var scheduleRadio=WidgetStore.get(this.id+'-scheduleRadio');var immediateRadio=WidgetStore.get(this.id+'-immediatelyRadio');if(saveon===false&&this._scheduleRowShown===true){if(this._schedule.ts!==null&&immediateRadio.isChecked()===true){saveon=true;}
if(saveon===false&&this._schedule.ts===null&&scheduleRadio.isChecked()===true){saveon=true;}
if(saveon===false&&scheduleRadio.isChecked()===true){if(this._scheduleOri.date!==WidgetStore.get(this.id+'-scheduleDate').getValue()||this._scheduleOri.month!==WidgetStore.get(this.id+'-scheduleMonth').getValue()||this._scheduleOri.year!==WidgetStore.get(this.id+'-scheduleYear').getValue()||this._scheduleOri.hour!==WidgetStore.get(this.id+'-scheduleHour').getValue()||this._scheduleOri.minute!==WidgetStore.get(this.id+'-scheduleMinute').getValue()){saveon=true;}}}
if(saveon===false){if(this._inSafeEdit===true){var cancelSafeEditToggle=WidgetStore.get(this.id+'-changesToggle');if(cancelSafeEditToggle&&cancelSafeEditToggle.getValue()===true){saveon=true;}
if(saveon===false&&this._schedule.ts!==null){var publishToggle=WidgetStore.get(this.id+'-publishToggle');if(this._origStatus===true&&publishToggle&&publishToggle.getValue()===false){saveon=true;}}else if(saveon===false&&this._schedule.ts===null){var publishToggle=WidgetStore.get(this.id+'-publishToggle');if(publishToggle&&publishToggle.getValue()===true){saveon=true;}}}else{var publishToggle=WidgetStore.get(this.id+'-publishToggle');if(publishToggle){if(this._schedule.ts!==null&&this._origStatus===publishToggle.getValue()){saveon=true;}else if(this._schedule.ts===null&&this._origStatus!==publishToggle.getValue()){saveon=true;}}}}
this.setModified(saveon);},init:function(data)
{var main=dfx.getId(this.id+'-WorkflowManager');if(main){dfx.empty(main);}
this._isPublished=data.status;this._origStatus=this._isPublished;this._inSafeEdit=data.inSafeEdit;this._hasWorkflow=data.hasWorkflows;this._inWorkflow=data.inWorkflow;this._noRequired=data.noRequired;this._workflowCompleted=false;this._isSite=data.isSite;this._schedule=data.scheduled;this._scheduleOri={};this._scheduleRowShown=false;this.changesToggle=null;this._safeToPublished=false;this._nonPublishedAssetsExists=data.nonPublishedAssetsExist;this._dependencies=data.dependencies;this._dependenciesNotAllowed=data.dependenciesNotAllowed;this._dependenciesInitiated=false;if(this._nonPublishedAssetsExists===true){this._taglineData=data.tagLineData;}
this._isSysAdmin=data.isSysAdmin;var self=this;var widgets=['RadioButton','Select','PlainList','AssetTagLine','ToggleButton','WorkflowManager'];this.includeWidgets(widgets,function(){if(self._hasWorkflow===true){self._initWorkflow(function(){self._wfCompletedScheduled=false;if(self._hasWorkflow===true&&self._inWorkflow===false&&self._workflowCompleted===true&&self._schedule.ts!==null){self._wfCompletedScheduled=true;}
self._initStatus();self.screenModified();});}else{self._initStatus();self.screenModified();}});},_initStatus:function()
{var self=this;var statusWrapper=dfx.getId(this.id+'-status');var c=this.getClass()+'-status-main';var elems=dfx.getClass(c,statusWrapper);if(elems.length>0){dfx.remove(elems);}
var main=document.createElement('div');this.domElem=main;dfx.addClass(main,c);this._statusContainer=main;var content='<div class="'+c+'-titleWrapper">';content+='<div class="'+c+'-title"></div></div>';content+='<div class="'+c+'-bottom"></div>';content+='<div class="'+c+'-schedule"></div>';content+='<div class="'+c+'-dependencies"></div>';dfx.setHtml(main,content);dfx.hideElement(dfx.getClass(c+'-dependencies',main)[0]);var _appendWrapper=function(){statusWrapper.appendChild(main);dfx.showElement(dfx.getId('PublishingEditScreen-main').parentNode);var nameElems=dfx.getClass('AssetTagLine-assetName',main);dfx.foreach(nameElems,function(idx){dfx.ellipsizeDom(nameElems[idx],250);return true;});var descDiv=dfx.getClass(self.getClass()+'-status-main-bottom',self._statusContainer)[0];dfx.empty(descDiv);var c=self.getClass()+'-statusChane';var msg='';var divid='';if(self._inSafeEdit===true&&self._hasWorkflow!==true&&self._noRequired!==false){msg='Publish changes';divid=self.id+'-publishChangesBtn';}else if((self._isPublished===true&&self._inSafeEdit!==true)||(self._hasWorkflow!==true&&self._noRequired!==false)){msg='Publish this asset';divid=self.id+'-publishAssetBtn';}else{if(self._noRequired===false){if(self._isSite===true){msg='You cannot publish until required metadata for the index page has been completed';}else{msg='You cannot publish this asset until required metadata has been completed';}
divid=self.id+'-cannotPublishMsg';}else if(self._inWorkflow===true){msg='After workflow is complete this asset will be published';divid=self.id+'-cannotPublishMsg';}else{if(self._wfCompletedScheduled===true){msg='Publish this asset';}else{msg='You cannot publish this asset until workflow has been completed';}
divid=self.id+'-cannotPublishMsg';}}
var content='<div id="'+divid+'"  class="'+c+'-left"><div class="'+c+'-desc">'+msg+'</div>';content+='<div class="'+c+'-opt"></div></div>';if(self._inSafeEdit===true&&self._inWorkflow!==true){content+='<div id="'+self.id+'-cancelSafeEditBtn" class="'+c+'-right"><div class="'+c+'-cancelSE">Cancel Safe Edit and Revert Changes</div>';content+='<div class="'+c+'-SEopt"></div></div>';}
dfx.setHtml(descDiv,content);self._initMainToggleButton(function(){self.showStatus();if(self.readOnly===true){self.displayScreenReadOnlyWarning(function(el){dfx.insertBefore(statusWrapper,el);},function(){});}});};if(this._nonPublishedAssetsExists===true&&(this._hasWorkflow===false||this._noRequired===true||(this._hasWorkflow===true&&this._isPublished===true))){var settingsWidget=WidgetStore.get('EditScreenModeWidgetType');if(this._isPublished===true){settingsWidget.showSubInfoPublishingWarning();}else{settingsWidget.hideSubInfoPublishingWarning();}
self._dependenciesInitiated=true;self._initScheduledPublishing(main,function(){self._initDependencies(main,_appendWrapper);});}else{if(this._nonPublishedAssetsExists===false||this._isPublished!==true){var settingsWidget=WidgetStore.get('EditScreenModeWidgetType');settingsWidget.hideSubInfoPublishingWarning();}
self._initScheduledPublishing(main,function(){_appendWrapper();});}},_initMainToggleButton:function(callback)
{var descDiv=dfx.getClass(this.getClass()+'-status-main-bottom',this._statusContainer)[0];if((this._isPublished===true&&this._inWorkflow!==true)||this._hasWorkflow!==true||this._wfCompletedScheduled===true){var self=this;var c=this.getClass()+'-statusChane';var optCont=dfx.getClass(c+'-opt',descDiv)[0];var toggleState=this._isPublished;if(this._inSafeEdit===true){toggleState=false;}
if((this._isPublished===true&&this._inSafeEdit!==true)||this._hasWorkflow!==true||this._wfCompletedScheduled===true){if(this._schedule.ts!==null){if(this._isPublished===true){if(this._inSafeEdit===true){toggleState=true;}else{toggleState=false;}}else{toggleState=true;}}
var toggle=this.createWidget(this.id+'-publishToggle','ToggleButton',false,'slider',toggleState,'Yes','No');this.statusToggle=toggle;toggle.create(function(el){optCont.appendChild(el);});toggle.addToggleEvent(function(on){if(on===true){self._isPublished=true;self._safeToPublished=true;if(self.changesToggle){self.changesToggle.disable();}
dfx.showElement(dfx.getId(self.id+'-status-main-dependencies'));}else{self._safeToPublished=false;if(self.changesToggle){self.changesToggle.enable();}
if(self._inSafeEdit!==true){self._isPublished=false;dfx.hideElement(dfx.getId(self.id+'-status-main-dependencies'));}}
if(self.depWrap!==null){if(on===true){dfx.showElement(self.depWrap);}else if(self._inSafeEdit!==true){dfx.hideElement(self.depWrap);}}
if(self._schedule.ts===null){if(self._inSafeEdit===false){if(on!==self._origStatus){self._showScheduleRow();}else{self._hideScheduleRow();WidgetStore.get(self.id+'-scheduleRadio').uncheck();}}else{if(on===true){self._showScheduleRow();}else{self._hideScheduleRow();WidgetStore.get(self.id+'-scheduleRadio').uncheck();}}}else if(self._schedule.ts!==null){if(self._inSafeEdit===false){if(on===self._origStatus){self._hideScheduleRow();WidgetStore.get(self.id+'-scheduleRadio').uncheck();}else{self._showScheduleRow();}}else{if(on===true){self._showScheduleRow();}else{self._hideScheduleRow();WidgetStore.get(self.id+'-scheduleRadio').uncheck();}}}
self.screenModified();self.showStatus();});}
if(self._inSafeEdit===true&&self._inWorkflow!==true){var seOptCont=dfx.getClass(c+'-SEopt',descDiv)[0];self._createSafeEditToggle(seOptCont);}
callback.call(self);}else{callback.call(self);}},_showScheduleRow:function(main)
{dfx.showElement(this.scheduleRow);dfx.addClass(dfx.getClass(this.getClass()+'-status-main-bottom',main)[0],'noBottomBorder');this._scheduleRowShown=true;},_hideScheduleRow:function(main)
{dfx.hideElement(this.scheduleRow);dfx.removeClass(dfx.getClass(this.getClass()+'-status-main-bottom',main)[0],'noBottomBorder');this._scheduleRowShown=false;},_initScheduledPublishing:function(main,callback)
{var self=this;var c=this.getClass()+'-status-main';c+='-schedule';this.scheduleRow=dfx.getClass(c,main)[0];this._hideScheduleRow(main);var immediateChecked=false;var scheduleChecked=false;if(self._schedule.ts!==null){scheduleChecked=true;if(this._hasWorkflow===true&&this._inWorkflow===false){self._showScheduleRow(main);}else{self._showScheduleRow(main);}}else{immediateChecked=true;if(this._hasWorkflow===true&&this._inWorkflow===true){self._showScheduleRow(main);}}
var immediate=this.createWidget(this.id+'-immediatelyRadio','RadioButton',null,immediateChecked);var schedule=this.createWidget(this.id+'-scheduleRadio','RadioButton',null,scheduleChecked);var date={};for(var i=1;i<=31;i++){date[i]=i;}
var month={1:'January',2:'February',3:'March',4:'April',5:'May',6:'June',7:'July',8:'August',9:'September',10:'October',11:'November',12:'December'};var hour={};for(var i=0;i<=23;i++){if(i<10){hour[i]='0'+i;}else{hour[i]=i+'';}}
var minute={};for(var i=0;i<=55;i+=5){if(i<10){minute[i]='0'+i;}else{minute[i]=i+'';}}
var year={};var thisyear=parseInt(this._schedule.now.year);var count=0;for(var i=thisyear;i<(thisyear+5);i++){year[count]=i;count++;}
var dateField=this.createWidget(this.id+'-scheduleDate','Select',date);var monthField=this.createWidget(this.id+'-scheduleMonth','Select',month);var yearField=this.createWidget(this.id+'-scheduleYear','Select',year);var hourField=this.createWidget(this.id+'-scheduleHour','Select',hour);var minuteField=this.createWidget(this.id+'-scheduleMinute','Select',minute);immediate.setShowLabel(true);schedule.setShowLabel(true);immediate.setLabel('Immediately');schedule.setLabel('Schedule');var cascade=this.createWidget(this.id+'-cascade','CheckBox',null);cascade.setLabel('Cascade to Children');cascade.setShowLabel(true);immediate.create(function(immeEl){cascade.create(function(cascadeEl){schedule.create(function(scheEl){dateField.create(function(dateEl){monthField.create(function(monthEl){yearField.create(function(yearEl){hourField.create(function(hourEl){minuteField.create(function(minEl){self.scheduleRow.appendChild(immeEl);if(self._isSysAdmin===true){self.scheduleRow.appendChild(cascadeEl);}
self.scheduleRow.appendChild(scheEl);var dateTimeWrap=document.createElement('div');dfx.addClass(dateTimeWrap,c+'-datetimeWrap');dateTimeWrap.appendChild(dateEl);dateTimeWrap.appendChild(monthEl);dateTimeWrap.appendChild(yearEl);dateTimeWrap.appendChild(hourEl);dateTimeWrap.appendChild(minEl);self.scheduleRow.appendChild(dateTimeWrap);immediate.addCheckElement();schedule.addCheckElement();if(self._isSysAdmin===true){cascade.addCheckElement();}
var monthValue={'January':'1','February':'2','March':'3','April':'4','May':'5','June':'6','July':'7','August':'8','September':'9','October':'10','November':'11','December':'12'};if(self._schedule.ts!==null){dateField.setValue(self._schedule.day,true);monthField.setValue(monthValue[self._schedule.month],true);dfx.foreach(year,function(key){if(year[key]===parseInt(self._schedule.year)){yearField.setValue(key+'',true);return false;}
return true;});hourField.setValue(self._schedule.hour,true);minuteField.setValue(self._schedule.minute,true);cascade.setReadOnly(true);dfx.addClass(cascadeEl,'fade');}else{dateField.setValue(self._schedule.now.day,true);monthField.setValue(monthValue[self._schedule.now.month],true);dfx.foreach(year,function(key){if(year[key]===parseInt(self._schedule.now.year)){yearField.setValue(key+'',true);return false;}
return true;});hourField.setValue(self._schedule.now.hour,true);minuteField.setValue(self._schedule.now.minute,true);dateField.disable();monthField.disable();yearField.disable();hourField.disable();minuteField.disable();}
self._scheduleOri.date=dateField.getValue();self._scheduleOri.month=monthField.getValue();self._scheduleOri.year=yearField.getValue();self._scheduleOri.hour=hourField.getValue();self._scheduleOri.minute=minuteField.getValue();dateField.addItemSelectedEvent(function(){self.screenModified();});monthField.addItemSelectedEvent(function(){self.screenModified();});yearField.addItemSelectedEvent(function(){self.screenModified();});hourField.addItemSelectedEvent(function(){self.screenModified();});minuteField.addItemSelectedEvent(function(){self.screenModified();});immediate.addCheckedEvent(function(status){if(status!==true){dateField.enable();monthField.enable();yearField.enable();hourField.enable();minuteField.enable();var noEventFire=true;schedule.check(noEventFire);cascade.setReadOnly(true);dfx.addClass(cascadeEl,'fade');}else{schedule.uncheck();cascade.setReadOnly(false);dfx.removeClass(cascadeEl,'fade');}
self.showStatus();self.screenModified();});schedule.addCheckedEvent(function(status){if(status!==true){dateField.disable();monthField.disable();hourField.disable();yearField.disable();minuteField.disable();var noEventFire=true;immediate.check(noEventFire);cascade.setReadOnly(false);dfx.removeClass(cascadeEl,'fade');}else{immediate.uncheck();cascade.setReadOnly(true);dfx.addClass(cascadeEl,'fade');}
self.showStatus();self.screenModified();});if(callback){callback.call(this);}});});});});});});});});},_initDependencies:function(main,callback)
{var self=this;var c=this.getClass()+'-status-main';var depWrap=dfx.getClass(c+'-dependencies',main)[0];self.depWrap=depWrap;var pubDepsWrap=document.createElement('div');self.pubDepsWrap=pubDepsWrap;dfx.addClass(pubDepsWrap,'blueNoticeBoxWrap');var toggleWdgt=self.createWidget(self.id+'-pubDeps','ToggleButton',false,'slider',false,'Yes','No');toggleWdgt.addToggleEvent(function(on){self.screenModified();});toggleWdgt.create(function(el){var msg='The following dependencies require publishing. Would you like to do this now?';var pubDepsMsg=document.createElement('div');dfx.setHtml(pubDepsMsg,msg);dfx.addClass(pubDepsMsg,'blueNoticeBoxWrap-msg');dfx.addClass(el,self.widgetType+'-pubDepsToggle');pubDepsWrap.appendChild(pubDepsMsg);pubDepsWrap.appendChild(el);depWrap.appendChild(pubDepsWrap);var dependenciesExists=false;var _buildDependencies=function(dependencies,displayWarning){if(displayWarning===true){var warning=document.createElement('div');var warningMsg=document.createElement('div');warning.id=self.id+'-pubDepsWarning';dfx.addClass(warning,self.widgetType+'-pubDepsWarning');if(dependenciesExists===false){dfx.addClass(warning,'noTopMargin');}
dfx.addClass(warningMsg,self.widgetType+'-pubDepsWarningMsg');dfx.setHtml(warningMsg,'<strong>Warning:&nbsp;&nbsp;</strong>You do not have the ability to automatically publish the following dependencies');warning.appendChild(warningMsg);depWrap.appendChild(warning);dfx.hideElement(warning);}
var sectionsTitles={'embedded_media':'Embedded Media','content_references':'Content References','general_references':'General References','design_related':'Design Related'};var tagLines=[];var tagLinesElem={};var lists=[];var warnings={};var depPubExists=false;dfx.foreach(dependencies,function(sectionid){var listWrapper=document.createElement('div');dfx.addClass(listWrapper,self.widgetType+'-pubDepsListWrap');var subHeader=document.createElement('h2');dfx.setHtml(subHeader,sectionsTitles[sectionid]);dfx.addClass(subHeader,'dependency');listWrapper.appendChild(subHeader);var listW=document.createElement('div');listWrapper.appendChild(listW);dfx.addClass(listW,self.widgetType+'-pubDepsList');depWrap.appendChild(listWrapper);dfx.foreach(dependencies[sectionid],function(idx){var resourceid=dependencies[sectionid][idx].resourceId;var widgetid=self.id+'-'+sectionid+'-'+resourceid+'-'+idx;var astTagLine=self.createWidget(widgetid,'AssetTagLine');astTagLine.setCustomData({id:resourceid,name:self._taglineData[resourceid].name,iconUrl:self._taglineData[resourceid].typeIconUrl,assetType:self._taglineData[resourceid].type,url:self._taglineData[resourceid].url,error:self._taglineData[resourceid].error});tagLines.push({wdgt:astTagLine,sectionid:sectionid,idx:idx});return true;});lists.push({id:sectionid,elem:listW});return true;});var _createDependencyLists=function(idx){var sectionid=lists[idx].id;var rows=[];dfx.foreach(dependencies[sectionid],function(idx){var resourceid=dependencies[sectionid][idx].resourceId;var widgetid=self.id+'-'+sectionid+'-'+resourceid+'-'+idx;var context=document.createElement('div');var contextDesc=document.createElement('div');var contextTag=document.createElement('div');var contextCurves=document.createElement('span');var contextType=document.createElement('span');dfx.addClass(context,self.contextClassname);dfx.addClass(contextDesc,self.contextDescClassname);dfx.addClass(contextTag,self.contextTagClassname);dfx.addClass(contextCurves,self.contextCurvesClassname);dfx.addClass(contextType,self.contextTypeClassname);dfx.setHtml(contextDesc,dependencies[sectionid][idx].resourceUsedAs);dfx.setHtml(contextType,dependencies[sectionid][idx].resourceString);contextCurves.appendChild(contextType);contextTag.appendChild(contextCurves);context.appendChild(contextDesc);context.appendChild(contextTag);rows.push({id:widgetid+'-row',left:tagLinesElem[widgetid],right:context});return true;});var list=self.createWidget(self.id+'-'+sectionid+'-list','PlainList','871',false,false,false,rows);list.create(function(el){lists[idx].elem.appendChild(el);if(idx<(lists.length-1)){_createDependencyLists(idx+1);}else{if(depPubExists===true){dfx.showElement(self.pubDepsWrap);}
dfx.foreach(warnings,function(secid){dfx.showElement(warning);return true;});}});};var tagLinesLen=tagLines.length;var _createAstTagLines=function(idx){tagLines[idx].wdgt.create(function(elem){var secid=tagLines[idx].sectionid;var secidx=tagLines[idx].idx;if(dependencies[secid][secidx].schedule!==null){var warningSpan=document.createElement('span');dfx.addClass(warningSpan,self.widgetType+'-astTagLineSchedule');dfx.setHtml(warningSpan,dependencies[secid][secidx].schedule);elem.appendChild(warningSpan);}
if(dependencies[secid][secidx].hasWorkflow===true){var warningSpan=document.createElement('span');dfx.addClass(warningSpan,self.widgetType+'-astTagLineWarn');dfx.setHtml(warningSpan,'(Workflow Applied)');elem.appendChild(warningSpan);warnings[secid]=true;}else if(dependencies[secid][secidx].inWorkflow===true){var warningSpan=document.createElement('span');dfx.addClass(warningSpan,self.widgetType+'-astTagLineWarn');dfx.setHtml(warningSpan,'(In Workflow)');elem.appendChild(warningSpan);warnings[secid]=true;}
if(dependencies[secid][secidx].permission===false){var warningSpan=document.createElement('span');dfx.addClass(warningSpan,self.widgetType+'-astTagLineWarn');dfx.setHtml(warningSpan,'(Permission Denied)');elem.appendChild(warningSpan);warnings[secid]=true;}
if(dependencies[secid][secidx].noRequired===false){var warningSpan=document.createElement('span');dfx.addClass(warningSpan,self.widgetType+'-astTagLineWarn');dfx.setHtml(warningSpan,'(Missing required metadata)');elem.appendChild(warningSpan);warnings[secid]=true;}
if(dependencies[secid][secidx].inWorkflow===false&&dependencies[secid][secidx].hasWorkflow===false&&dependencies[secid][secidx].permission===true&&dependencies[secid][secidx].noRequired===true){depPubExists=true;}
tagLinesElem[tagLines[idx].wdgt.id]=elem;if(idx<(tagLinesLen-1)){_createAstTagLines(idx+1);}else{if(lists.length>0){_createDependencyLists(0);}}});};if(tagLinesLen>0){dependenciesExists=true;_createAstTagLines(0);}};_buildDependencies(self._dependencies);_buildDependencies(self._dependenciesNotAllowed,true);if(self._origStatus!==true&&self._schedule.ts===null){dfx.hideElement(depWrap);}else if(dependenciesExists===true){dfx.showElement(depWrap);}
if(callback){callback.call(self);}});},showStatus:function()
{var self=this;var titleEl=dfx.getClass(this.getClass()+'-status-main-title',this._statusContainer)[0];var titleWrap=titleEl.parentNode;var bgColourClasses=['red','green','orange'];var bgIconClasses=['cross','tick','orange-tick','timer'];dfx.foreach(bgColourClasses,function(idx){dfx.removeClass(titleWrap,bgColourClasses[idx]);return true;});dfx.foreach(bgIconClasses,function(idx){dfx.removeClass(titleEl,bgIconClasses[idx]);return true;});var statusMsg='';var scheduleBtn=WidgetStore.get(this.id+'-scheduleRadio');var publishToggle=WidgetStore.get(this.id+'-publishToggle');var changeToggle=WidgetStore.get(this.id+'-changesToggle');var currToggleVal=this._isPublished;if(publishToggle){currToggleVal=publishToggle.getValue();}
if(this._inWorkflow===true){if(this._inSafeEdit===true){if(this._schedule.ts!==null){dfx.addClass(titleWrap,'orange');dfx.addClass(titleEl,'timer');statusMsg='Safe Editing, Scheduled for publishing and currently in workflow';}else{dfx.addClass(titleWrap,'orange');dfx.addClass(titleEl,'orange-tick');statusMsg='Safe Editing and currently in workflow';}}else{if(scheduleBtn.isChecked()===true){dfx.addClass(titleWrap,'orange');dfx.addClass(titleEl,'timer');statusMsg='Scheduled for publishing and currently in workflow';}else{dfx.addClass(titleWrap,'orange');dfx.addClass(titleEl,'orange-tick');statusMsg='Unpublished and currently in workflow';}}}else if(this._hasWorkflow===true&&this._schedule.ts!==null){if(this._wfCompletedScheduled===true&&scheduleBtn.isChecked()===false){if(currToggleVal===true){dfx.addClass(titleWrap,'green');dfx.addClass(titleEl,'tick');statusMsg='Published';}else{if(this._inSafeEdit===true){dfx.addClass(titleWrap,'orange');dfx.addClass(titleEl,'orange-tick');statusMsg='Safe Editing in progress';}else{dfx.addClass(titleWrap,'red');dfx.addClass(titleEl,'cross');statusMsg='Unpublished';}}}else{dfx.addClass(titleWrap,'red');dfx.addClass(titleEl,'timer');statusMsg='Scheduled for Publishing';}}else if(this._inSafeEdit===true&&this._safeToPublished!==true){if(this._schedule.ts!==null){if(scheduleBtn.isChecked()===true){dfx.addClass(titleWrap,'orange');dfx.addClass(titleEl,'timer');statusMsg='Safe Editing Scheduled for Publishing';}else{if(currToggleVal===true){dfx.addClass(titleWrap,'green');dfx.addClass(titleEl,'tick');statusMsg='Published';}else{dfx.addClass(titleWrap,'orange');dfx.addClass(titleEl,'orange-tick');statusMsg='Safe Editing in progress';}}}else{if(scheduleBtn.isChecked()===true){dfx.addClass(titleWrap,'orange');dfx.addClass(titleEl,'timer');statusMsg='Safe Editing Scheduled for Publishing';}else{dfx.addClass(titleWrap,'orange');dfx.addClass(titleEl,'orange-tick');statusMsg='Safe Editing in progress';}}}else{if(this._origStatus===true&&currToggleVal===true){if(this._inSafeEdit===true&&scheduleBtn.isChecked()===true){if(changeToggle&&changeToggle.getValue()===true){dfx.addClass(titleWrap,'green');dfx.addClass(titleEl,'tick');statusMsg='Published';}else{dfx.addClass(titleWrap,'orange');dfx.addClass(titleEl,'timer');statusMsg='Safe Editing Scheduled for Publishing';}}else{dfx.addClass(titleWrap,'green');dfx.addClass(titleEl,'tick');statusMsg='Published';}}else if(this._origStatus===true&&currToggleVal===false){if(scheduleBtn.isChecked()===true){dfx.addClass(titleWrap,'green');dfx.addClass(titleEl,'timer');statusMsg='Scheduled for Unpublishing';var pubDepsBtn=WidgetStore.get(this.id+'-pubDeps');if(pubDepsBtn){pubDepsBtn.disable();}}else{if(changeToggle&&changeToggle.getValue()===true){dfx.addClass(titleWrap,'green');dfx.addClass(titleEl,'tick');statusMsg='Published';}else{dfx.addClass(titleWrap,'red');dfx.addClass(titleEl,'cross');statusMsg='Unpublished';}}}else if(this._origStatus===false&&currToggleVal===true){if(scheduleBtn.isChecked()===true){dfx.addClass(titleWrap,'red');dfx.addClass(titleEl,'timer');statusMsg='Scheduled for Publishing';}else{dfx.addClass(titleWrap,'green');dfx.addClass(titleEl,'tick');statusMsg='Published';}}else if(this._origStatus===false&&currToggleVal===false){dfx.addClass(titleWrap,'red');dfx.addClass(titleEl,'cross');statusMsg='Unpublished';}}
dfx.setHtml(titleEl,statusMsg);this.ready();},_createSafeEditToggle:function(parentCont)
{var toggle=this.createWidget(this.id+'-changesToggle','ToggleButton',false,'slider',false,'Yes','No');this.changesToggle=toggle;var self=this;toggle.create(function(el){parentCont.appendChild(el);});toggle.addToggleEvent(function(on){if(on===true){self._safeToPublished=true;if(self.statusToggle){self.statusToggle.disable();}}else{self._safeToPublished=false;if(self.statusToggle){self.statusToggle.enable();}}
self.screenModified();self.showStatus();});},_initWorkflow:function(callback)
{var self=this;var id=this.id+'-WorkflowManager';var parent=dfx.getId(id);if(!parent){parent=document.createElement('div');parent.id=id;}
dfx.getId('PublishingEditScreen-main').appendChild(parent);var wfm=this.createWidget(this.id+'-wfm','WorkflowManager',this.assetid,parent,this._isPublished,this._inSafeEdit,(this._schedule.ts!==null),null,function(step,approve,data){if(approve==='approve'&&self._schedule.ts===null&&WidgetStore.get(self.id+'-scheduleRadio').isChecked()===true){WidgetStore.get(data.id).addStepSubmitParam('schedule',dfx.jsonEncode({date:WidgetStore.get(self.id+'-scheduleDate').getValue(),month:WidgetStore.get(self.id+'-scheduleMonth').getValue(),year:WidgetStore.get(self.id+'-scheduleYear').getValue(),hour:WidgetStore.get(self.id+'-scheduleHour').getValue(),minute:WidgetStore.get(self.id+'-scheduleMinute').getValue()}));}});wfm.setReadOnly(this.readOnly);wfm.addBeforeResetCallback(function(params){if(params&&params.action==='skipWorkflow'&&WidgetStore.get(self.id+'-scheduleRadio').isChecked()){WidgetStore.get(params.id).addSkipSubmitParam('schedule',dfx.jsonEncode({date:WidgetStore.get(self.id+'-scheduleDate').getValue(),month:WidgetStore.get(self.id+'-scheduleMonth').getValue(),year:WidgetStore.get(self.id+'-scheduleYear').getValue(),hour:WidgetStore.get(self.id+'-scheduleHour').getValue(),minute:WidgetStore.get(self.id+'-scheduleMinute').getValue()}));}});wfm.addResetCallback(function(){self.refresh();});wfm.create(function(el){self._workflowCompleted=wfm.allWorkflowCompleted();if(callback){callback.call(self);}});},getAutoSaveContents:function(content)
{var saveData={publishingStatus:this._isPublished||false};return saveData;},loadAutoSaveContents:function(content,callback)
{if(content&&dfx.isset(content.publishingStatus)&&this._isPublished!==content.publishingStatus){this.statusToggle.setValue(content.publishingStatus);}},saveScreenSettings:function()
{var discardChanges=false;var toggleBtnWidget=WidgetStore.get(this.id+'-publishToggle');var status=null;if(toggleBtnWidget){status=toggleBtnWidget.getValue();}else{status=this._isPublished;}
if(this.changesToggle){discardChanges=this.changesToggle.isOn();}
if(toggleBtnWidget&&status===true&&this._inSafeEdit===true&&this._schedule.ts!==null&&WidgetStore.get(this.id+'-scheduleRadio').getValue()==='on'){this._safeToPublished=true;}
var cascadingVal=false;if(this._isSysAdmin===true){cascadingVal=dfx.jsonEncode(WidgetStore.get(this.id+'-cascade').getValue());}
var params={assetid:this.assetid,screen:this.id+'Widget',process:'save',status:dfx.jsonEncode(status),discard:dfx.jsonEncode(discardChanges),safeToPublished:dfx.jsonEncode(this._safeToPublished),skipWorkflowPublish:false,wfCompletedScheduled:this._wfCompletedScheduled,cascade:cascadingVal};if(this._wfCompletedScheduled===true&&status===true&&this._schedule.ts!==null&&WidgetStore.get(this.id+'-immediatelyRadio').getValue()==='on'){params.skipWorkflowPublish=true;}
params.schedule=dfx.jsonEncode({immediate:WidgetStore.get(this.id+'-immediatelyRadio').isChecked(),schedule:WidgetStore.get(this.id+'-scheduleRadio').isChecked(),date:WidgetStore.get(this.id+'-scheduleDate').getValue(),month:WidgetStore.get(this.id+'-scheduleMonth').getValue(),year:WidgetStore.get(this.id+'-scheduleYear').getValue(),hour:WidgetStore.get(this.id+'-scheduleHour').getValue(),minute:WidgetStore.get(this.id+'-scheduleMinute').getValue()});var self=this;var pubDepsToggle=WidgetStore.get(this.id+'-pubDeps');if(pubDepsToggle){params.pubDeps=pubDepsToggle.getValue();var ids=[];dfx.foreach(this._dependencies,function(secid){dfx.foreach(self._dependencies[secid],function(idx){if(self._dependencies[secid][idx].inWorkflow===false&&self._dependencies[secid][idx].hasWorkflow===false&&self._dependencies[secid][idx].permission===true){ids.push(self._dependencies[secid][idx].resourceId);}
return true;});return true;});params.deps=dfx.jsonEncode(ids);}
var self=this;this.displayDisabledDiv(true);this.parent.processScreen(params,function(saveResult,data){if(saveResult&&!saveResult.errors){self._safeToPublished=false;self.refresh(discardChanges);}else{self.screenModified();}},true);},revertScreenSettings:function()
{var self=this;var widget=WidgetStore.get('EditScreenModeWidgetType-tab_pane');if(widget){self.clean();widget.showScreen('publishing',null,true);}},refresh:function(discardChanges)
{var params={assetid:this.assetid,screen:this.id+'Widget',process:'refresh'};var self=this;this.parent.getScreenData(params,function(data){if(data){WidgetStore.get('Toolbar-contextSwitcherButton').updateButtonStatus('EditScreenMode',self.assetid);data=dfx.jsonDecode(data);self.init(data);}});},switchOnScreen:function()
{var self=this;if(this.readOnly===true){this.disableSaveButton();}else{this.setSaveButton(function(){self.saveScreenSettings();},function(){self.revertScreenSettings();});}},clean:function()
{var el=dfx.getId(this.id+'-WorkflowManager');if(el&&el.parentNode){dfx.remove(el);}
var statusWrapper=dfx.getId(this.id+'-status');if(statusWrapper&&statusWrapper.parentNode){dfx.remove(statusWrapper);}
this._workflowSchemas=null;this._isPublished=null;this._hasWorkflow=null;this._statusContainer=null;},switchOffScreen:function(){}};dfx.inherits('PublishingEditScreen','AbstractSettingsScreen');function RoleAdminScreenWidgetType(id,screenid,system,title,parent,assetid,readOnly)
{AbstractSettingsScreenWidgetType.call(this,id,screenid,system,title,parent,assetid,readOnly);this.widgetType='RoleAdminScreen';this.roleid=null;this.lastRoleid=null;this.rolesInfo=WidgetStore.get(this.id+'-infobox');}
RoleAdminScreenWidgetType.prototype={setReadOnly:function(readOnly)
{AbstractSettingsScreenWidgetType.prototype.setReadOnly.call(this,readOnly);this.rolesInfo.setReadOnly(readOnly);for(var id in this.topLevels){if(this.topLevels.hasOwnProperty(id)===true){var topLevel=this.topLevels[id];var toogleWdgt=WidgetStore.get(this.id+'-grantAll'+topLevel);toogleWdgt.setReadOnly(readOnly);}}
var titleWdgt=WidgetStore.get(this.id+'-roleTitle');if(titleWdgt){titleWdgt.setReadOnly(readOnly);}
var rmBtns=dfx.getClass(this.widgetType+'-InfoBoxRoleRemove',dfx.getId('RoleAdminScreen-infobox_body'));dfx.foreach(rmBtns,function(idx){if(readOnly===true){dfx.hideElement(rmBtns[idx]);}else{dfx.showElement(rmBtns[idx]);}
return true;});},screenModified:function()
{var self=this;var modified=false;dfx.foreach(this.rolesData,function(roleid){if(self.rolesData[roleid].deleted===true){modified=true;return false;}
if(self.rolesData[roleid].roleTitle!==self.rolesData[roleid].oriRoleTitle){modified=true;return false;}
return true;});if(modified===false){dfx.foreach(this.prvsChangeLog,function(id){if(self.prvsChangeLog[id]===true){modified=true;return false;}
return true;});}
this.setModified(modified);},init:function(data)
{var self=this;this.rolesData={};this.rolesDataOri={};this.privileges=data.privileges;this.privilegeInfo=data.prvsInfo;this.topLevels=data.topLevels;this.rolesPrvs=data.rolesPrvs;this.prvChildrenRef={};this.roleids=[];this.prvsChangeLog={};var _populatePrvStruc=function(tree,parentid){for(var id in tree){if(tree.inArray){self.prvChildrenRef[parentid].isLeaf=true;return;}else if(tree.hasOwnProperty(id)===true){if(parentid){var pid=parentid+'.'+id;}else{var pid=id;}
self.prvChildrenRef[pid]={children:[],isLeaf:false,isTop:false,granted:false};if(parentid){self.prvChildrenRef[parentid].children.push(id);}else{self.prvChildrenRef[id].isTop=true;}
_populatePrvStruc(tree[id],pid);}}};_populatePrvStruc(data.prvsStruc);var rlen=data.roles.length;for(var i=0;i<rlen;i++){this.roleids.push(data.roles[i].roleid);this.rolesData[data.roles[i].roleid]={roleTitle:data.roles[i].roleTitle,oriRoleTitle:data.roles[i].roleTitle,deleted:false,prvsStruc:dfx.clone(this.prvChildrenRef),prevStruc:false};for(var id in this.topLevels){if(this.topLevels.hasOwnProperty(id)===true){var toggleWdgt=WidgetStore.get(self.id+'-grantAll'+this.topLevels[id]);this.rolesData[data.roles[i].roleid][this.topLevels[id]]={};this.rolesData[data.roles[i].roleid][this.topLevels[id]].grantAll=false;}}}
for(var rid in data.rolesPrvs){if(data.rolesPrvs.hasOwnProperty(rid)===true){for(var pid in data.rolesPrvs[rid]){if(data.rolesPrvs[rid].hasOwnProperty(pid)===true){this.rolesData[rid].prvsStruc[pid].granted=data.rolesPrvs[rid][pid];}}}}
for(var tid in this.topLevels){if(this.topLevels.hasOwnProperty(tid)===true){var tLevel=this.topLevels[tid];for(var rid in data.rolesPrvs){if(data.rolesPrvs.hasOwnProperty(rid)===true){if(this.rolesData[rid].prvsStruc[tLevel.toLowerCase()].granted===true){this.rolesData[rid][tLevel].grantAll=true;}}}}}
if(dfx.isset(this.rolesData[this.lastRoleid])===false){this.lastRoleid=null;this.roleid=this.roleids[0];dfx.remove(dfx.getId(this.id+'-readOnlyMsg'));}
if(this.lastRoleid!==null){this.roleid=this.lastRoleid;}else if(dfx.isset(data.roles[0])===true){this.roleid=data.roles[0].roleid;}else{var tabs=dfx.getId('RoleAdminScreen-rolesTabs');dfx.hideElement(tabs);var noRolesMsg=document.createElement('div');noRolesMsg.setAttribute('id','noRolesMsgArea');dfx.setHtml(noRolesMsg,'No roles exist to configure.');tabs.parentNode.appendChild(noRolesMsg);}
this.rolesDataOri=dfx.clone(this.rolesData);this.rolesInfo.reset();this.rolesInfo.setTitle('Roles Manager');this.rolesInfo.setUlClassPrefix('Blue');this.rolesInfo.addSection('roles',null);this.rolesInfo.setSelected(this.roleid);this.createRolesInfoBox();this.createPrivilegeTree();var wait=function(){setTimeout(function(){var created=true;for(var id in self.topLevels){if(self.topLevels.hasOwnProperty(id)===true){if(!dfx.getId(self.id+'-privilegeTreeWrap-'+self.topLevels[id])){created=false;break;}}}
if(created){self.setTabs(self.roleid,self.readOnly);if(self.readOnly===true){self.displayScreenReadOnlyWarning(function(el){dfx.insertBefore(dfx.getId(self.id+'-rolesTabs'),el);},function(){});}
self.ready();}else{wait();}},100);};wait();},createRolesInfoBox:function(roles)
{var self=this;var _createNewRoleItem=function(rid,title){var html='<div class="'+self.widgetType+'-InfoBoxRoleWrapper">';html+='<div class="'+self.widgetType+'-InfoBoxRoleTitle">'+title+'</div>';var st='';if(self.readOnly===true){st='display: none; visibility: hidden;'}
html+='<div style="'+st+'" class="'+self.widgetType+'-InfoBoxRoleRemove"> </div>';html+='</div>';return html;};var _roleOnclickCallback=function(id,e){var readOnly=false;var et=dfx.getMouseEventTarget(e);var remove=dfx.hasClass(et,self.widgetType+'-InfoBoxRoleRemove');if(remove===true){if(self.rolesData[id].deleted===true){dfx.removeClass(dfx.getId(id),'deleted');dfx.removeClass(et,'removed');self.rolesData[id].deleted=false;}else{dfx.addClass(dfx.getId(id),'deleted');dfx.addClass(et,'removed');self.rolesData[id].deleted=true;readOnly=true;}
self.screenModified();}else{if(self.rolesData[id].deleted===true){readOnly=true;}}
self.getTabs(self.roleid);self.roleid=id;var readOnlyMsg=dfx.getId(self.id+'-readOnlyMsg');if(readOnlyMsg){dfx.remove(readOnlyMsg);}
var setAll=function(){if(self.readOnly===true){readOnly=true;}
self.setTabs(self.roleid,readOnly);};if(readOnly){wrnOps={id:self.id+'-readOnlyMsg',leftTitle:'Read Only',mainMessage:'This screen is <strong>Read Only</strong> because the role is <strong>Marked for Deletion</strong>.',colour:'red',buttonTitle:null};self.createScreenWarningMessage(wrnOps,function(el){dfx.insertBefore(dfx.getId(self.id+'-rolesTabs'),el);setAll();});}else{setAll();}};var content='';for(var rid in this.rolesData){if(this.rolesData.hasOwnProperty(rid)===true){var title=this.rolesData[rid].roleTitle;content=_createNewRoleItem(rid,title);this.rolesInfo.addItem('roles',parseInt(rid),content,function(id,e){_roleOnclickCallback(id,e);},false);}}
this.rolesInfo.addButton('add_role','Add New','right',function(){self.includeWidgets(['TextField'],function(){var textfield=self.createWidget(self.id+'-InfoBoxNewRoleName','TextField');textfield.create(function(el){var newNameWrapper=document.createElement('div');var cancelIcon=document.createElement('div');dfx.addClass(newNameWrapper,'TextFieldWidgetType-TextFieldWrapper');dfx.addClass(cancelIcon,'TextFieldWidgetType-TextFieldCancel');newNameWrapper.appendChild(cancelIcon);newNameWrapper.appendChild(el);dfx.hideElement(newNameWrapper);dfx.getId(self.id+'-infobox_BtnContainerMiddle').appendChild(newNameWrapper);dfx.addEvent(cancelIcon,'click',function(e){var btn=WidgetStore.get(self.id+'-infobox_btn_add_role');btn.setName('Add New');textfield.setValue('');dfx.hideElement(newNameWrapper);});self.rolesInfo.addButtonClickEvent('right',function(){var btn=WidgetStore.get(self.id+'-infobox_btn_add_role');var btnVal=btn.getName();var nRoleN=textfield.getValue();if(btnVal==='Add New'){dfx.showElement(dfx.getId(self.id+'-InfoBoxNewRoleName_container'));btn.setName('Create');dfx.showElement(newNameWrapper);dfx.getId(self.id+'-InfoBoxNewRoleName').focus();}else if(btnVal==='Create'&&nRoleN.length>0){var params={screen:'RoleAdminScreenWidget',op:'createNewRole',name:nRoleN};self.displayDisabledDiv();self.parent.processScreen(params,function(data){var result=data;var newRoleid=result.roleid;self.rolesData[parseInt(newRoleid)]={roleTitle:nRoleN,oriRoleTitle:nRoleN,deleted:false,prvsStruc:dfx.clone(self.prvChildrenRef)};dfx.hideElement(newNameWrapper);for(var id in self.topLevels){if(self.topLevels.hasOwnProperty(id)===true){self.rolesData[newRoleid][self.topLevels[id]]={};self.rolesData[newRoleid][self.topLevels[id]].grantAll=false;}}
self.rolesDataOri[newRoleid]=dfx.clone(self.rolesData[newRoleid]);var content=_createNewRoleItem(newRoleid,nRoleN);self.rolesInfo.addItem('roles',parseInt(newRoleid),content,function(id,e){_roleOnclickCallback(id,e);},false);var btn=WidgetStore.get(self.id+'-infobox_btn_add_role');textfield.setValue('');btn.setName('Add New');dfx.hideElement(dfx.getId(self.id+'-InfoBoxNewRoleName_container'));if(self.roleid===undefined){dfx.hideElement(dfx.getId('noRolesMsgArea'));dfx.showElement(dfx.getId('RoleAdminScreen-rolesTabs'));}else{self.getTabs(self.roleid);}
self.roleid=parseInt(newRoleid);var readOnlyMsg=dfx.getId(self.id+'-readOnlyMsg');if(readOnlyMsg){dfx.remove(readOnlyMsg);}
var readOnly=false;if(self.readOnly===true){readOnly=true;}
self.setTabs(self.roleid,readOnly);self.rolesInfo.setItem(parseInt(newRoleid));self.removeDisabledDiv();},true);}});});});});if(this.roleid!==undefined){this.rolesInfo.setItem(this.roleid);}},createPrivilegeTree:function()
{var self=this;var roleTitleWrap=document.createElement('div');roleTitleWrap.id=this.id+'-roleTitleWrap';dfx.addClass(roleTitleWrap,self.widgetType+'-roleTitleWrap');var content='<label id="'+this.id+'-roleTitleLabel" for="'+self.id+'-roleTitle" class="'+self.widgetType+'-roleTitleLabel">Role Name</label>';roleTitleWrap.innerHTML=content;this.includeWidgets(['TextField'],function(){var roleTitle=self.createWidget(self.id+'-roleTitle','TextField');roleTitle.create(function(el){roleTitleWrap.appendChild(el);dfx.addEvent(roleTitle.domEl,'keyup',function(e){var rInfoTitle=dfx.getClass(self.widgetType+'-InfoBoxRoleTitle',dfx.getId(self.roleid))[0];dfx.setHtml(rInfoTitle,roleTitle.domEl.value);self.getTabs(self.roleid);self.screenModified();});});});var layoutDiv=dfx.getId(self.id+'-rolesTabs-cardLayout');layoutDiv.parentNode.insertBefore(roleTitleWrap,layoutDiv);for(var id in this.topLevels){if(this.topLevels.hasOwnProperty(id)===true){(function(topLevel){var topLevelWrapid=self.id+'-'+topLevel+'Tab';var topLevelWrap=dfx.getId(topLevelWrapid);dfx.setStyle(topLevelWrap,'position','relative');dfx.setStyle(topLevelWrap,'margin-bottom','30px');var modal=document.createElement('div');modal.id=self.id+'-roleDescModal-'+topLevel;dfx.addClass(modal,self.widgetType+'-roleDescModal');dfx.setStyle(modal,'display','none');content='<div class="'+self.widgetType+'-roleDescModalLeft">&nbsp;</div>';content+='<div class="'+self.widgetType+'-roleDescModalRight">';content+='<div id="'+self.id+'-roleDescModal-title-'+topLevel+'" class="'+self.widgetType+'-roleDescModalRight-title">&nbsp;</div>';content+='<div id="'+self.id+'-roleDescModal-text-'+topLevel+'" class="'+self.widgetType+'-roleDescModalRight-text">&nbsp;</div>';content+='</div>';dfx.setHtml(modal,content);var identifier=self.id+'-grantAll'+topLevel;self.includeWidgets(['ToggleButton'],function(){var toggleWdgt=self.createWidget(identifier,'ToggleButton',false,'slider',false,'Yes','No');toggleWdgt.addToggleOnEvent(function(){var allDenied=true;for(var pid in self.rolesData[self.roleid].prvsStruc){if(self.rolesData[self.roleid].prvsStruc.hasOwnProperty(pid)===true){if(pid!==topLevel.toLowerCase()&&self.rolesData[self.roleid].prvsStruc[pid].granted===true){allDenied=false;break;}}}
if(allDenied===false){self.rolesData[self.roleid].prevStruc=dfx.clone(self.rolesData[self.roleid].prvsStruc);}else{self.rolesData[self.roleid].prevStruc=false;}
self._iteratePrivileges(topLevel.toLowerCase(),function(id,info,callback){if(id!==topLevel.toLowerCase()){var target=dfx.getId(self.id+'-'+id+'-btn');if(info.isLeaf===true){dfx.removeClass(target,'leafSelected');dfx.removeClass(target,'leafDenied');}else{dfx.removeClass(target,'groupSelected');dfx.removeClass(target,'groupNone');}
dfx.addClass(target,'leafSelectedGrey');self.rolesData[self.roleid].prvsStruc[id].granted=false;}else{self.rolesData[self.roleid].prvsStruc[id].granted=true;}
if(dfx.isset(self.rolesDataOri[self.roleid].prvsStruc[id].granted)===false){self.rolesDataOri[self.roleid].prvsStruc[id].granted=self.rolesData[self.roleid].prvsStruc[id].granted;}
if(self.rolesData[self.roleid].prvsStruc[id].granted!==self.rolesDataOri[self.roleid].prvsStruc[id].granted){self.prvsChangeLog[self.roleid+'-'+id]=true;}else{self.prvsChangeLog[self.roleid+'-'+id]=false;}
if(callback){callback.call(self);}});self.screenModified();});toggleWdgt.addToggleOffEvent(function(){if(dfx.isset(self.rolesData[self.roleid])===true){if(self.rolesData[self.roleid].prevStruc===false&&self.rolesData[self.roleid].prvsStruc[topLevel.toLowerCase()].granted===true){self._iteratePrivileges(topLevel.toLowerCase(),function(id,info,callback){if(id!==topLevel.toLowerCase()){var target=dfx.getId(self.id+'-'+id+'-btn');if(info.isLeaf===true){dfx.removeClass(target,'leafSelected');dfx.removeClass(target,'leafSelectedGrey');dfx.addClass(target,'leafDenied');}else{dfx.removeClass(target,'leafSelectedGrey');dfx.removeClass(target,'groupSelected');dfx.addClass(target,'groupNone');}}
self.rolesData[self.roleid].prvsStruc[id].granted=false;if(self.rolesData[self.roleid].prvsStruc[id].granted!==self.rolesDataOri[self.roleid].prvsStruc[id].granted){self.prvsChangeLog[self.roleid+'-'+id]=true;}else{self.prvsChangeLog[self.roleid+'-'+id]=false;}
if(callback){callback.call(self);}});}else if(self.rolesData[self.roleid].prevStruc){self.rolesData[self.roleid].prvsStruc=dfx.clone(self.rolesData[self.roleid].prevStruc);self.setTabs(self.roleid,false,true);}}
self.screenModified();});toggleWdgt.create(function(el){var grantAllWrap=document.createElement('div');var grantAllText=document.createElement('div');var grantAllToggleWrap=document.createElement('div');dfx.addClass(grantAllWrap,self.widgetType+'-grantAllWrap');dfx.addClass(grantAllWrap,self.widgetType+'-grantAllWrap-'+topLevel);dfx.addClass(grantAllText,self.widgetType+'-grantAllText');dfx.addClass(grantAllToggleWrap,self.widgetType+'-grantAllToggleWrap');grantAllText.innerHTML='Grant unrestricted access to '+topLevel.toLowerCase()+' privileges';grantAllToggleWrap.appendChild(el);grantAllWrap.appendChild(grantAllText);grantAllWrap.appendChild(grantAllToggleWrap);dfx.getId(topLevelWrapid).appendChild(grantAllWrap);var treeWrap=document.createElement('div');treeWrap.id=self.id+'-privilegeTreeWrap-'+topLevel;dfx.addClass(treeWrap,self.widgetType+'-privilegeTreeWrap');dfx.getId(topLevelWrapid).appendChild(treeWrap);dfx.getId(topLevelWrapid).appendChild(modal);self._iteratePrivileges(topLevel.toLowerCase(),function(id,info,callback){if(info.isTop===false){var parts=id.split('.');var partsLen=parts.length;var label=dfx.ucFirst(parts[(partsLen-1)]);var rowWrap=document.createElement('div');var content='';var prefix=self.id+'-'+id;var lvlStrs=['second','third','forth','fifth','sixth'];rowWrap.id=id;dfx.addClass(rowWrap,'rowWrap');content+='<div id="'+prefix+'-wrap" class="'+self.widgetType+'-prvRow';content+=' '+self.widgetType+'-'+lvlStrs[(partsLen-2)]+'Level';content+='">';content+='  <div id="'+prefix+'-icon" class="'+self.widgetType+'-prvRowIcon';if(info.isLeaf===false){content+=' expanded';}else{content+=' leaf';}
content+='">&nbsp;</div>';content+='  <div id="'+prefix+'-title" class="'+self.widgetType+'-prvRowTitle">'+label+'</div>';content+='  <div id="'+prefix+'-btn" class="'+self.widgetType+'-prvRowBtn">&nbsp;</div>';content+='</div>';rowWrap.innerHTML=content;var rw=dfx.getClass(self.widgetType+'-prvRow',rowWrap)[0];dfx.addEvent(rw,'click',function(e){var target=dfx.getMouseEventTarget(e);if(dfx.hasClass(target,self.widgetType+'-prvRowBtn')===true){var prvid=target.id.substring((self.id.length+1),(target.id.length-4));self._processClick(prvid);}else{self._expandCollapseLevels(target);}});treeWrap.appendChild(rowWrap);dfx.addEvent(rowWrap,'mouseover',function(e){var target=dfx.getMouseEventTarget(e);while(dfx.hasClass(target,'rowWrap')===false){target=target.parentNode;}
dfx.setStyle(modal,'left',dfx.getElementWidth(target)+22+'px');var top=(dfx.getElementCoords(target).y-dfx.getElementCoords(topLevelWrap).y);top=(top-15);var modalH=100;var outterBtmY=dfx.getElementCoords(topLevelWrap).y+dfx.getElementHeight(topLevelWrap);var modalBtmY=dfx.getElementCoords(topLevelWrap).y+top+modalH;if(outterBtmY>=(modalBtmY+48)){dfx.removeClass(dfx.getClass(self.widgetType+'-roleDescModalLeft',modal)[0],'bottom');dfx.setStyle(modal,'top',top+'px');}else{dfx.addClass(dfx.getClass(self.widgetType+'-roleDescModalLeft',modal)[0],'bottom');top=((dfx.getElementCoords(target).y-dfx.getElementCoords(topLevelWrap).y)-modalH+35);dfx.setStyle(modal,'top',top+'px');}
var titleDiv=dfx.getId(self.id+'-roleDescModal-title-'+topLevel);var descDiv=dfx.getId(self.id+'-roleDescModal-text-'+topLevel);if(dfx.isset(self.privilegeInfo[target.id])===true){dfx.setHtml(titleDiv,self.privilegeInfo[target.id].name);dfx.setHtml(descDiv,self.privilegeInfo[target.id].description);}else{dfx.setHtml(titleDiv,'No name');dfx.setHtml(descDiv,'No description');}
dfx.setStyle(modal,'display','block');dfx.addClass(rowWrap,self.widgetType+'-rowOver');});dfx.addEvent(rowWrap,'mouseout',function(e){dfx.removeClass(rowWrap,self.widgetType+'-rowOver');dfx.setStyle(modal,'display','none');});}
if(callback){callback.call(self);}});});});})(this.topLevels[id]);}}},_processClick:function(prvid)
{var self=this;var btnDiv=dfx.getId(this.id+'-'+prvid+'-btn');if(dfx.hasClass(btnDiv,'leafSelectedGrey')===true||this.readOnly){return;}
if(this.rolesData[self.roleid].prvsStruc[prvid].isLeaf===true){if(this.rolesData[self.roleid].prvsStruc[prvid].granted===true){dfx.swapClass(btnDiv,'leafSelected','leafDenied');this.rolesData[self.roleid].prvsStruc[prvid].granted=false;}else{dfx.swapClass(btnDiv,'leafDenied','leafSelected');this.rolesData[self.roleid].prvsStruc[prvid].granted=true;}
if(this.rolesData[self.roleid].prvsStruc[prvid].granted!==this.rolesDataOri[self.roleid].prvsStruc[prvid].granted){this.prvsChangeLog[self.roleid+'-'+prvid]=true;}else{this.prvsChangeLog[self.roleid+'-'+prvid]=false;}}else{if(this.rolesData[self.roleid].prvsStruc[prvid].granted===true){dfx.swapClass(btnDiv,'groupSelected','groupNone');this._iteratePrivileges(prvid,function(id,info,callback){if(id!==prvid){var target=dfx.getId(self.id+'-'+id+'-btn');if(info.isLeaf===true){dfx.removeClass(target,'leafSelected');dfx.removeClass(target,'leafSelectedGrey');dfx.addClass(target,'leafDenied');}else{dfx.removeClass(target,'leafSelectedGrey');dfx.removeClass(target,'groupSelected');dfx.addClass(target,'groupNone');}}
self.rolesData[self.roleid].prvsStruc[id].granted=false;if(self.rolesData[self.roleid].prvsStruc[id].granted!==self.rolesDataOri[self.roleid].prvsStruc[id].granted){self.prvsChangeLog[self.roleid+'-'+id]=true;}else{self.prvsChangeLog[self.roleid+'-'+id]=false;}
if(callback){callback.call(self);}});}else{dfx.swapClass(btnDiv,'groupNone','groupSelected');this._iteratePrivileges(prvid,function(id,info,callback){if(id!==prvid){var target=dfx.getId(self.id+'-'+id+'-btn');dfx.removeClass(target,'leafSelected');dfx.removeClass(target,'leafDenied');dfx.removeClass(target,'groupSelected');dfx.removeClass(target,'groupNone');dfx.addClass(target,'leafSelectedGrey');self.rolesData[self.roleid].prvsStruc[id].granted=false;}else{self.rolesData[self.roleid].prvsStruc[id].granted=true;}
if(self.rolesData[self.roleid].prvsStruc[id].granted!==self.rolesDataOri[self.roleid].prvsStruc[id].granted){self.prvsChangeLog[self.roleid+'-'+id]=true;}else{self.prvsChangeLog[self.roleid+'-'+id]=false;}
if(callback){callback.call(self);}});}}
self.screenModified();},_iteratePrivileges:function(parentid,callback)
{var self=this;if(parentid===null){for(var id in this.topLevels){if(this.topLevels.hasOwnProperty(id)===true){this._iteratePrivileges(this.topLevels[id].toLowerCase(),callback);}}}else{if(this.prvChildrenRef[parentid].isLeaf===true){callback.call(self,parentid,this.prvChildrenRef[parentid]);}else{callback.call(self,parentid,this.prvChildrenRef[parentid],function(){var cLen=self.prvChildrenRef[parentid].children.length;if(cLen>0){for(var i=0;i<cLen;i++){self._iteratePrivileges(parentid+'.'+self.prvChildrenRef[parentid].children[i],callback);}}});}}},setTabs:function(roleid,readOnly,tOnly)
{var self=this;var treeOnly=tOnly||false;var _setStyle=function(className,btnDiv){switch(className){case'leafSelected':dfx.removeClass(btnDiv,'groupNone');dfx.removeClass(btnDiv,'groupSelected');dfx.removeClass(btnDiv,'leafSelectedGrey');dfx.removeClass(btnDiv,'leafDenied');dfx.addClass(btnDiv,className);break;case'leafSelectedGrey':dfx.removeClass(btnDiv,'groupNone');dfx.removeClass(btnDiv,'groupSelected');dfx.removeClass(btnDiv,'leafSelected');dfx.removeClass(btnDiv,'leafDenied');dfx.addClass(btnDiv,className);break;case'leafDenied':dfx.removeClass(btnDiv,'groupNone');dfx.removeClass(btnDiv,'groupSelected');dfx.removeClass(btnDiv,'leafSelected');dfx.removeClass(btnDiv,'leafSelectedGrey');dfx.addClass(btnDiv,className);break;case'groupNone':dfx.removeClass(btnDiv,'leafSelectedGrey');dfx.swapClass(btnDiv,'groupSelected',className);break;case'groupSelected':dfx.removeClass(btnDiv,'leafSelectedGrey');dfx.swapClass(btnDiv,'groupNone',className);break;default:break;}};var titleWdgt=WidgetStore.get(this.id+'-roleTitle');if(dfx.isset(this.rolesData[roleid])===false){titleWdgt.setValue('Hidden');}else{titleWdgt.setValue(this.rolesData[roleid].roleTitle);}
titleWdgt.setReadOnly(readOnly);for(var id in this.topLevels){if(this.topLevels.hasOwnProperty(id)===true){var toggleWdgt=WidgetStore.get(self.id+'-grantAll'+this.topLevels[id]);if(treeOnly===false){if(dfx.isset(this.rolesData[roleid])===false){toggleWdgt.toggleSlideOff(null,true,false);}else{if(this.rolesData[roleid][this.topLevels[id]].grantAll===true){toggleWdgt.toggleSlideOn(null,true,false);}else{toggleWdgt.toggleSlideOff(null,true,false);}}}
toggleWdgt.setReadOnly(readOnly);var parentLocked='';self._iteratePrivileges(this.topLevels[id].toLowerCase(),function(id,info,callback){var btnDiv=dfx.getId(self.id+'-'+id+'-btn');var childLocked=false;if(parentLocked!==''){if(id.search(parentLocked)===0){childLocked=true;_setStyle('leafSelectedGrey',btnDiv);}else{parentLocked='';}}
if(childLocked===false){if(info.isLeaf===true){if(dfx.isset(this.rolesData[roleid])===true&&self.rolesData[roleid].prvsStruc[id].granted===true){_setStyle('leafSelected',btnDiv);}else{_setStyle('leafDenied',btnDiv);}}else if(info.isTop===true||info.isLeaf===false){if(dfx.isset(this.rolesData[roleid])===true&&self.rolesData[roleid].prvsStruc[id].granted===true){parentLocked=id;_setStyle('groupSelected',btnDiv);}else{_setStyle('groupNone',btnDiv);}}}
if(callback){callback.call(self);}});}}},_expandCollapseLevels:function(target)
{var self=this;var collapse=false;var pid=target.id;pid=pid.substring(this.id.length+1);pid=pid.substring(0,pid.search(/-/));this._iteratePrivileges(pid,function(id,info,callback){var iconDiv=dfx.getId(self.id+'-'+id+'-icon');if(id===pid){if(info.isLeaf===true){}else{if(dfx.hasClass(iconDiv,'expanded')===true){collapse=true;dfx.swapClass(iconDiv,'expanded','collapsed');}else if(dfx.hasClass(iconDiv,'collapsed')===true){dfx.swapClass(iconDiv,'collapsed','expanded');}
if(callback){callback.call(self);}}}else{var rowDiv=dfx.getId(self.id+'-'+id+'-wrap');if(collapse===true){dfx.addClass(rowDiv,'hide');}else{dfx.removeClass(rowDiv,'hide');if(info.isLeaf===false){if(dfx.hasClass(iconDiv,'collapsed')===true){dfx.swapClass(iconDiv,'collapsed','expanded');}}}
if(callback){callback.call(self);}}});},getTabs:function(roleid,readOnly)
{var self=this;var title=WidgetStore.get(this.id+'-roleTitle');this.rolesData[roleid].roleTitle=title.getValue();for(var id in this.topLevels){if(this.topLevels.hasOwnProperty(id)===true){var toggleWdgt=WidgetStore.get(self.id+'-grantAll'+this.topLevels[id]);this.rolesData[roleid][this.topLevels[id]].grantAll=toggleWdgt.getValue();}}},getAutoSaveContents:function()
{var saveData={};return saveData;},loadAutoSaveContents:function(content,callBack)
{if(callback){callback.call(this);}},save:function()
{this.constructSettings();this.settings.ops=dfx.jsonEncode(this.settings.ops);var self=this;this.request({action:'processScreen'},function(data){self.switchOffScreen();self.parent.refreshScreen('role');});},reset:function(callback)
{var self=this;var params={action:'paintScreen',mode:'AdminScreenMode',screen:'RoleAdminScreenWidget',type:'getRolesData'};dfx.post(window.location.href,params,function(rolesData){for(var id in self.topLevels){if(self.topLevels.hasOwnProperty(id)===true){var elem=dfx.getId(self.id+'-'+self.topLevels[id]+'Tab');elem.innerHTML='';}}
dfx.remove(dfx.getId(self.id+'-roleTitleWrap'));rolesData=dfx.jsonDecode(rolesData);self.init(rolesData);callback.call(self);});},saveScreenSettings:function()
{var self=this;if(this.roleid!==undefined){this.getTabs(this.roleid);}
var params={screen:this.id+'Widget',op:'saveRoles',rolesData:dfx.jsonEncode(this.rolesData),prvsInfo:dfx.jsonEncode(this.rolesPrvs)};this.displayDisabledDiv();this.parent.processScreen(params,function(data){self.lastRoleid=self.roleid;self.reset(function(){self.switchOnScreen();self.removeDisabledDiv();});},true);},revertScreenSettings:function()
{var self=this;this.displayDisabledDiv(true);this.reset(function(){self.removeDisabledDiv();});},switchOnScreen:function()
{var self=this;if(this.readOnly===true){this.disableSaveButton();}else{this.setSaveButton(function(){self.saveScreenSettings();},function(){self.revertScreenSettings();});}},switchOffScreen:function(){}};dfx.inherits('RoleAdminScreen','AbstractSettingsScreen');function SecurityAdminScreenWidgetType(id,screenid,system,title,parent,assetid,readOnly)
{AbstractSettingsScreenWidgetType.call(this,id,screenid,system,title,parent,assetid,readOnly);this.widgetType='SecurityAdminScreen';this.asaDynamicDiv=WidgetStore.get(this.id+'-adminScreensAccess-dynamicDiv');this.adminScreensAccessWdgt=null;}
SecurityAdminScreenWidgetType.prototype={init:function(data)
{var self=this;this.loadAdminScreensAccess(function(){self.adminScreensAccessWdgt.setReadOnly(self.readOnly);if(self.readOnly){self.displayScreenReadOnlyWarning(function(el){dfx.insertBefore(dfx.getId('AdminScreensAccess-wrap'),el);},function(){self.adminScreensAccessWdgt.forceEdit();});}
self.ready();});},getAutoSaveContents:function()
{var saveData={};return saveData;},loadAutoSaveContents:function(content,callback)
{if(callback){callback.call(this);}},loadAdminScreensAccess:function(callback)
{var self=this;delete this.adminScreensAccessWdgt;this.asaDynamicDiv.changeContent({action:'paintScreen',mode:'AdminScreenMode',screen:'SecurityAdminScreenWidget',type:'adminScreensAccessDynamicDiv'},function(data){self.adminScreensAccessWdgt=WidgetStore.get('AdminScreensAccess');self.adminScreensAccessWdgt.postWidget=self.parent;if(dfx.isset(callback)===true){callback.call(self);}});},switchOnScreen:function(){},switchOffScreen:function(){}};dfx.inherits('SecurityAdminScreen','AbstractSettingsScreen');function SquizSuiteSystemConfigScreenWidgetType(id,screenid,system,title,parent,assetid,readOnly)
{AbstractSettingsScreenWidgetType.call(this,id,screenid,system,title,parent,assetid,readOnly);this.widgetType='SquizSuiteSystemConfigScreen';this.id=id;this.parent=parent;}
SquizSuiteSystemConfigScreenWidgetType.prototype={screenModified:function()
{var self=this;var saveon=false;if(this.newAdded===true){saveon=true;}
if(saveon===false){var currProductName=WidgetStore.get(this.id+'-currProdName');if(this.currentProduct.connection.name!==currProductName.getValue()){saveon=true;}}
if(saveon===false){var currProductURL=WidgetStore.get(this.id+'-currProdURL');if(this.currentProduct.url!==currProductURL.getValue()){saveon=true;}}
if(saveon===false){var pRows=dfx.getClass('SquizSuiteSystemConfigScreen-productRow',dfx.getId(this.id+'-connProctWrap'));dfx.foreach(pRows,function(idx){if(dfx.hasClass(pRows[idx],'deleted')===true){saveon=true;return false;}
return true;});}
if(saveon===false){dfx.foreach(this.products,function(idx){if(self.products[idx].url!==WidgetStore.get(self.id+'-'+self.products[idx].suiteid+'-apiURL').getValue()){saveon=true;return false;}
if(self.products[idx].type==='Squiz Matrix'&&self.products[idx].connection.username!==WidgetStore.get(self.id+'-'+self.products[idx].suiteid+'-username').getValue()){saveon=true;return false;}
if(self.products[idx].type==='Squiz Matrix'&&self.products[idx].connection.password!==WidgetStore.get(self.id+'-'+self.products[idx].suiteid+'-password').getValue()){saveon=true;return false;}
return true;});}
this.setModified(saveon);},setReadOnly:function(readOnly)
{AbstractSettingsScreenWidgetType.prototype.setReadOnly.call(this,readOnly);var self=this;dfx.foreach(this.products,function(idx){var tr=dfx.getId(self.id+'-'+self.products[idx].suiteid);var delBtn=dfx.getClass('SquizSuiteSystemConfigScreen-deleteColBtn',tr)[0];if(readOnly===true){dfx.hideElement(delBtn);}else{dfx.showElement(delBtn);}});},init:function(data)
{var self=this;this.currentProduct=data.currentProduct||null;this.currentSummary=data.currentSummary||null;this.products=data.products||[];this.deleted={};this.newAdded=false;this.liveProducts=[];this.productsToSyncExist=data.productsToSyncExist;this.includeWidgets(['Select','Button','TextField','PasswordField'],function(){self._initCurrentProduct(function(){self._initProducts(function(){if(self.readOnly===true){self.setReadOnly(true);self.displayScreenReadOnlyWarning(function(el){dfx.insertBefore(dfx.getId('SquizSuiteSystemConfigScreen-currProctWrap'),el);},function(){});}
if(self.liveProducts.length>0){self._initLiveProductStatus(0,null);}
self.ready();});});});},_initCurrentProduct:function(callback)
{var self=this;var wrap=dfx.getId(this.id+'-currProctWrap');this._createContainer('currProduct','Current Product',null,function(container){var productTypeC=self.currentProduct.type.replace(' ','');var contentDiv=dfx.getClass('SquizSuiteSystemConfigScreen-content',container)[0];var content='<table class="SquizSuiteSystemConfigScreen-table" cellspacing="0" cellpadding="0">';content+='<tbody><tr class="SquizSuiteSystemConfigScreen-currProductRow">';content+='<td class="SquizSuiteSystemConfigScreen-iconCol" valign="top"><div class="SquizSuiteSystemConfigScreen-productIconWrap '+productTypeC+'">&nbsp;</div></td>';content+='<td class="SquizSuiteSystemConfigScreen-nameCol">';content+='<span class="SquizSuiteSystemConfigScreen-productNameLabel">Name</span>';content+='<span class="SquizSuiteSystemConfigScreen-productNameLabelDesc">(this name will appear in all connected products)</span>';content+='<div class="SquizSuiteSystemConfigScreen-productNameFieldWrap"></div>';content+='<span class="SquizSuiteSystemConfigScreen-productNameLabel">URL</span>';content+='<span class="SquizSuiteSystemConfigScreen-productNameLabelDesc">(this URL is required to add a new product)</span>';content+='<div class="SquizSuiteSystemConfigScreen-productURLFieldWrap"></div>';content+='</td>';content+='<td class="SquizSuiteSystemConfigScreen-statusCol"></td>';content+='<td class="SquizSuiteSystemConfigScreen-summaryCol">';content+='<span class="SquizSuiteSystemConfigScreen-summaryLabel">Summary</span>';dfx.foreach(self.currentSummary,function(idx){content+='<span class="SquizSuiteSystemConfigScreen-summaryField">'+self.currentSummary[idx].label+':</span>';content+='<span class="SquizSuiteSystemConfigScreen-summaryFieldValue">'+self.currentSummary[idx].value+'</span>';return true;});content+='</td>'
content+='</tr></tbody></table>';dfx.setHtml(contentDiv,content);var productNameField=self.createWidget(self.id+'-currProdName','TextField');var productURLField=self.createWidget(self.id+'-currProdURL','TextField');productNameField.create(function(el){productURLField.create(function(uel){var nameFieldWrap=dfx.getClass('SquizSuiteSystemConfigScreen-productNameFieldWrap',contentDiv)[0];nameFieldWrap.appendChild(el);productNameField.setValue(self.currentProduct.connection.name);productNameField.addOnChangeEvent(function(){self.screenModified();});var urlFieldWrap=dfx.getClass('SquizSuiteSystemConfigScreen-productURLFieldWrap',contentDiv)[0];urlFieldWrap.appendChild(uel);productURLField.setValue(self.currentProduct.url);productURLField.addOnChangeEvent(function(){self.screenModified();});wrap.appendChild(container);if(callback){callback.call(self);}});});});},_initProducts:function(callback)
{var self=this;var wrap=dfx.getId(this.id+'-connProctWrap');this._createContainer('connProducts','Connected Products',{title:'Add New',callback:function(evt){var tbody=dfx.getClass('SquizSuiteSystemConfigScreen-productBody',wrap)[0];var trH=document.createElement('tr');var c='<td class="SquizSuiteSystemConfigScreen-productIcon"><div class="SquizSuiteSystemConfigScreen-productIconWrap unknown">&nbsp;</div></td>';c+='<td colspan="3" class="SquizSuiteSystemConfigScreen-productName">';c+='<span class="SquizSuiteSystemConfigScreen-newProductHeadLabel">New product connection -&nbsp;</span>';c+='<span class="SquizSuiteSystemConfigScreen-newProductHeadDesc">Name and summary information will be available after the initial connection is made</span>';c+='</td>';c+='<td class="SquizSuiteSystemConfigScreen-productDelete"><div class="SquizSuiteSystemConfigScreen-deleteColBtn">&nbsp;</div></td>';dfx.setHtml(trH,c);dfx.addClass(trH,'SquizSuiteSystemConfigScreen-productRow');dfx.addClass(trH,'new');tbody.appendChild(trH);var tr=document.createElement('tr');var c='<td colspan="5" class="SquizSuiteSystemConfigScreen-productDetails">';c+='    <div class="SquizSuiteSystemConfigScreen-product apiURL"><span class="SquizSuiteSystemConfigScreen-productLabel">API URL</span><br /></div>';c+='</td>';dfx.setHtml(tr,c);tbody.appendChild(tr);dfx.addClass(tr,'SquizSuiteSystemConfigScreen-productDetailsRow');var apiURLText=self.createWidget(self.id+'-new-apiURL','TextField');apiURLText.create(function(urlEl){var urlDiv=dfx.getClass('apiURL',tr)[0];urlDiv.appendChild(urlEl);var deleteBtn=dfx.getClass('SquizSuiteSystemConfigScreen-deleteColBtn',trH)[0];dfx.addEvent(deleteBtn,'click',function(e){if(dfx.hasClass(trH,'deleted')===true){dfx.removeClass(trH,'deleted');dfx.removeClass(tr,'deleted');dfx.removeClass(deleteBtn,'revert');apiURLText.enable();self.newAdded=false;}else{dfx.addClass(trH,'deleted');dfx.addClass(tr,'deleted');dfx.addClass(deleteBtn,'revert');apiURLText.disable();self.newAdded=true;}
self.screenModified();});WidgetStore.get(self.id+'-addNew').disable();self.newAdded=true;self.screenModified();});}},function(container){var contentDiv=dfx.getClass('SquizSuiteSystemConfigScreen-content',container)[0];var content='<table class="SquizSuiteSystemConfigScreen-table" cellspacing="0" cellpadding="0">';content+='<thead><tr class="SquizSuiteSystemConfigScreen-productLabel">';content+='<th class="SquizSuiteSystemConfigScreen-iconCol">Type</th>';content+='<th class="SquizSuiteSystemConfigScreen-nameCol" align="left">Name</th>';content+='<th class="SquizSuiteSystemConfigScreen-statusCol">Status</th>';content+='<th class="SquizSuiteSystemConfigScreen-summaryCol" align="left">Summary</th>'
content+='<th class="SquizSuiteSystemConfigScreen-deleteCol">&nbsp;</th>'
content+='</tr></thead>';content+='<tbody class="SquizSuiteSystemConfigScreen-productBody">';content+='</tbody></table>';dfx.setHtml(contentDiv,content);var tbody=dfx.getClass('SquizSuiteSystemConfigScreen-productBody',contentDiv)[0];var productLen=self.products.length;var _createProductRow=function(idx,cb){var systemid=self.products[idx].systemid;var suiteid=self.products[idx].suiteid;var productTypeC=self.products[idx].type.replace(' ','');var isMatrix=false;if(productTypeC==='SquizMatrix'){isMatrix=true;}
var inPending=false;if(self.products[idx].status==='pending'||self.products[idx].status==='pending approval'){inPending=true;}
var productRow=document.createElement('tr');productRow.id=self.id+'-'+suiteid;dfx.addClass(productRow,'SquizSuiteSystemConfigScreen-productRow');var c='<td class="SquizSuiteSystemConfigScreen-productIcon"><div class="SquizSuiteSystemConfigScreen-productIconWrap '+productTypeC+'">&nbsp;</div></td>';if(self.products[idx].status==='live'){c+='<td class="SquizSuiteSystemConfigScreen-productName">'+self.products[idx].connection.name;c+='    <span class="SquizSuiteSystemConfigScreen-productExpander">&nbsp;</span></td>';c+='<td class="SquizSuiteSystemConfigScreen-productStatus"><div class="SquizSuiteSystemConfigScreen-statusWrap loading">&nbsp;</div></td>';c+='<td class="SquizSuiteSystemConfigScreen-productSummary"><span class="SquizSuiteSystemConfigScreen-pendingApprovalMsg">Loading ...</span></td>';self.liveProducts.push(suiteid);}else if(self.products[idx].status==='pending'){c+='<td class="SquizSuiteSystemConfigScreen-productName">Unknown';c+='    <span class="SquizSuiteSystemConfigScreen-productExpander">&nbsp;</span></td>';c+='<td class="SquizSuiteSystemConfigScreen-productStatus"><div class="SquizSuiteSystemConfigScreen-statusWrap pending">&nbsp;</div></td>';c+='<td class="SquizSuiteSystemConfigScreen-productSummary">';c+='<span class="SquizSuiteSystemConfigScreen-pendingApprovalMsg">Connection Pending ...</span></td>';}else if(self.products[idx].status==='pending approval'){c+='<td class="SquizSuiteSystemConfigScreen-productName">'+self.products[idx].connection.name;c+='    <span class="SquizSuiteSystemConfigScreen-productExpander">&nbsp;</span></td>';c+='<td class="SquizSuiteSystemConfigScreen-productStatus"><div class="SquizSuiteSystemConfigScreen-statusWrap pending">&nbsp;</div></td>';c+='<td class="SquizSuiteSystemConfigScreen-productSummary">';c+='<span class="SquizSuiteSystemConfigScreen-pendingApprovalMsg">Connection Pending ...</span>';c+='<div class="SquizSuiteSystemConfigScreen-connApproveBtnWrap"></div></td>';}
c+='<td class="SquizSuiteSystemConfigScreen-productDelete"><div class="SquizSuiteSystemConfigScreen-deleteColBtn">&nbsp;</div></td>';dfx.setHtml(productRow,c);tbody.appendChild(productRow);if(self.products[idx].status==='pending approval'){var approveBtn=self.createWidget(self.id+'-'+suiteid+'-approveConnection','Button');approveBtn.setName('Approve Connection');approveBtn.create(function(bel){var approveBtnWrap=dfx.getClass('SquizSuiteSystemConfigScreen-connApproveBtnWrap',productRow)[0];approveBtnWrap.appendChild(bel);});approveBtn.addClickEvent(function(){var params={action:'processScreen',mode:'SystemConfigScreenMode',screen:'SquizSuiteSystemConfigScreenWidget',op:'approvePendingRequest',suiteid:suiteid};approveBtn.disable();var statusDiv=dfx.getClass('SquizSuiteSystemConfigScreen-statusWrap',productRow)[0];var statusMsgDiv=dfx.getClass('SquizSuiteSystemConfigScreen-pendingApprovalMsg',productRow)[0];dfx.removeClass(statusDiv,'pending');dfx.addClass(statusDiv,'loading');dfx.setHtml(statusMsgDiv,'Trying to approve ...');dfx.post(window.location.href,params,function(data){data=dfx.jsonDecode(data);if(data.success){dfx.setHtml(statusMsgDiv,'Loading ...');dfx.remove(dfx.getClass('SquizSuiteSystemConfigScreen-connApproveBtnWrap',productRow)[0]);self._requestProductSummary(suiteid);}else if(data.error){dfx.removeClass(statusDiv,'loading');dfx.addClass(statusDiv,'pending');dfx.setHtml(statusMsgDiv,'Failed to approve. Please try again.');approveBtn.enable();}});},true);}
var productDetailsRow=document.createElement('tr');productDetailsRow.id=self.id+'-'+self.products[idx].suiteid+'-details';dfx.addClass(productDetailsRow,'SquizSuiteSystemConfigScreen-productDetailsRow');dfx.addClass(productDetailsRow,'hidden');c='<td colspan="5" class="SquizSuiteSystemConfigScreen-productDetails">';c+='    <div class="SquizSuiteSystemConfigScreen-product apiURL"><span class="SquizSuiteSystemConfigScreen-productLabel">API URL</span><br /></div>';if(isMatrix===true){c+='    <div class="SquizSuiteSystemConfigScreen-product username"><span class="SquizSuiteSystemConfigScreen-productLabel">Username</span><br /></div>';c+='    <div class="SquizSuiteSystemConfigScreen-product password"><span class="SquizSuiteSystemConfigScreen-productLabel">Password</span><br /></div>';}
c+='</td>';dfx.setHtml(productDetailsRow,c);tbody.appendChild(productDetailsRow);var apiURLText=self.createWidget(self.id+'-'+suiteid+'-apiURL','TextField');apiURLText.setValue(self.products[idx].url);if(isMatrix===true){var usernameText=self.createWidget(self.id+'-'+suiteid+'-username','TextField');var passwordText=self.createWidget(self.id+'-'+suiteid+'-password','PasswordField');usernameText.setValue(self.products[idx].connection.username);passwordText.setValue(self.products[idx].connection.password);}
apiURLText.create(function(urlEl){var expander=dfx.getClass('SquizSuiteSystemConfigScreen-productExpander',productRow)[0];dfx.addEvent(expander,'click',function(e){var row=dfx.getId(self.id+'-'+self.products[idx].suiteid+'-details');if(dfx.hasClass(row,'hidden')===true){dfx.removeClass(row,'hidden');dfx.addClass(expander,'expanded');}else{dfx.addClass(row,'hidden');dfx.removeClass(expander,'expanded');}});var urlDiv=dfx.getClass('apiURL',productDetailsRow)[0];urlDiv.appendChild(urlEl);if(inPending===true){apiURLText.disable();}
if(isMatrix===true){usernameText.create(function(userEl){passwordText.create(function(passEl){var userDiv=dfx.getClass('username',productDetailsRow)[0];var passDiv=dfx.getClass('password',productDetailsRow)[0];userDiv.appendChild(userEl);passDiv.appendChild(passEl);if(inPending===true){usernameText.disable();passwordText.disable();}});});}
var deleteBtn=dfx.getClass('SquizSuiteSystemConfigScreen-deleteColBtn',productRow)[0];dfx.addEvent(deleteBtn,'click',function(e){if(dfx.hasClass(productRow,'deleted')===true){dfx.removeClass(productRow,'deleted');dfx.removeClass(productDetailsRow,'deleted');dfx.removeClass(deleteBtn,'revert');apiURLText.enable();if(isMatrix===true){usernameText.enable();passwordText.enable();}
if(approveBtn){approveBtn.enable();}
self.deleted[suiteid]=false;}else{dfx.addClass(productRow,'deleted');dfx.addClass(productDetailsRow,'deleted');dfx.addClass(deleteBtn,'revert');apiURLText.disable();if(isMatrix===true){usernameText.disable();passwordText.disable();}
if(approveBtn){approveBtn.disable();}
self.deleted[suiteid]=true;}
self.screenModified();});apiURLText.addOnChangeEvent(function(){self.screenModified();});if(isMatrix===true){usernameText.addOnChangeEvent(function(){self.screenModified();});apiURLText.addOnChangeEvent(function(){self.screenModified();});}
if(idx<(productLen-1)){_createProductRow((idx+1),cb);}else{cb.call(self);}});};if(productLen>0){_createProductRow(0,function(){wrap.appendChild(container);if(callback){callback.call(self);}});}else{wrap.appendChild(container);if(callback){callback.call(self);}}});},_initLiveProductStatus:function(idx,callback)
{var self=this;var suiteid=this.liveProducts[idx];this._requestProductSummary(suiteid,function(){if(idx<(self.liveProducts.length-1)){self._initLiveProductStatus((idx+1),callback);}else{if(callback){callback.call(self);}}});},_requestProductSummary:function(suiteid,callback)
{var self=this;var params={action:'processScreen',mode:'SystemConfigScreenMode',screen:'SquizSuiteSystemConfigScreenWidget',op:'getProductSummary',suiteid:suiteid};dfx.post(window.location.href,params,function(data){data=dfx.jsonDecode(data);var productRow=dfx.getId(self.id+'-'+suiteid);var statusIconDiv=dfx.getClass('SquizSuiteSystemConfigScreen-statusWrap',productRow)[0];var productSummaryCell=dfx.getClass('SquizSuiteSystemConfigScreen-productSummary',productRow)[0];if(data.error){dfx.removeClass(statusIconDiv,'loading');dfx.addClass(statusIconDiv,'error');var c='<span class="SquizSuiteSystemConfigScreen-pendingApprovalMsg">';c+='Failed to get the product summary ...';c+='</span>';}else{dfx.removeClass(statusIconDiv,'loading');dfx.addClass(statusIconDiv,'live');if(data[suiteid].length>0){var c='';dfx.foreach(data[suiteid],function(idx){c+='<span class="SquizSuiteSystemConfigScreen-summaryField">'+data[suiteid][idx].key+'</span>';c+='<span class="SquizSuiteSystemConfigScreen-summaryFieldValue">'+data[suiteid][idx].value+'</span>';return true;});}else{var c='<span class="SquizSuiteSystemConfigScreen-summaryField">No summary information</span>';}}
dfx.setHtml(productSummaryCell,c);if(callback){callback.call(self);}},true);},_createContainer:function(id,title,button,callback)
{var self=this;var container=document.createElement('div');var content='<div class="SquizSuiteSystemConfigScreen-productBox" id="'+this.id+'-'+id+'">'
content+='<div class="SquizSuiteSystemConfigScreen-header">';content+='<div class="SquizSuiteSystemConfigScreen-title">'+title+'</div>';content+='<div class="SquizSuiteSystemConfigScreen-headerContent">'
content+='</div></div>';content+='<div class="SquizSuiteSystemConfigScreen-content"></div></div>';dfx.setHtml(container,content);if(button!==null){var addNewBtn=this.createWidget(this.id+'-addNew','Button','ButtonWidgetType-black');addNewBtn.setName(button.title);addNewBtn.addClickEvent(button.callback,true);addNewBtn.create(function(bEl){var headerContent=dfx.getClass('SquizSuiteSystemConfigScreen-headerContent',container)[0];headerContent.appendChild(bEl);if(self.currentProduct.url===''){dfx.hideElement(bEl);}else{dfx.showElement(bEl);}
if(self.productsToSyncExist===true){var refreshNowBtn=self.createWidget(self.id+'-refreshNow','Button','ButtonWidgetType-black');refreshNowBtn.setName('Refresh Now');refreshNowBtn.addClickEvent(function(event){var params={action:'processScreen',mode:'SystemConfigScreenMode',screen:'SquizSuiteSystemConfigScreenWidget',op:'refreshNow',schedule:true};var alt=event.altKey;if(alt===true){params.schedule=false;dfx.foreach(self.products,function(idx){if(self.products[idx].status==='live'&&self.products[idx].type!=='Squiz Update'){var statusDiv=dfx.getClass('SquizSuiteSystemConfigScreen-statusWrap',dfx.getId('SquizSuiteSystemConfigScreen-'+self.products[idx].suiteid))[0];dfx.swapClass(statusDiv,'live','loading');}
return true;});}
dfx.post(window.location.href,params,function(data){data=dfx.jsonDecode(data);if(data.success){if(alt===true){self.refresh();}else{refreshNowBtn.disable();refreshNowBtn.setName('Checking Now ...');}}});},true);refreshNowBtn.create(function(rEl){headerContent.appendChild(rEl);if(callback){callback.call(self,container);}});}else{if(callback){callback.call(self,container);}}});}else{if(callback){callback.call(this,container);}}},getAutoSaveContents:function()
{var saveData={};return saveData;},loadAutoSaveContents:function(content,callback)
{if(callback){callback.call(this);}},saveScreenSettings:function()
{var self=this;var params={screen:this.id+'Widget',op:'save'};params.currProductName=WidgetStore.get(this.id+'-currProdName').getValue();params.currProductURL=WidgetStore.get(this.id+'-currProdURL').getValue();params.products={};dfx.foreach(this.products,function(idx){var systemid=self.products[idx].systemid;var suiteid=self.products[idx].suiteid;params.products[suiteid]={url:WidgetStore.get(self.id+'-'+suiteid+'-apiURL').getValue(),deleted:false};if(self.products[idx].type==='Squiz Matrix'){params.products[suiteid].username=WidgetStore.get(self.id+'-'+suiteid+'-username').getValue();params.products[suiteid].password=WidgetStore.get(self.id+'-'+suiteid+'-password').getValue();}
if(self.deleted[suiteid]&&self.deleted[suiteid]===true){params.products[suiteid].deleted=true;}
return true;});params.products=dfx.jsonEncode(params.products);if(this.newAdded===true){params.newProduct={};params.newProduct.url=WidgetStore.get(self.id+'-new-apiURL').getValue();params.newProduct=dfx.jsonEncode(params.newProduct);}
this.displayDisabledDiv(true);this.parent.processScreen(params,function(saveResult,data){if(saveResult&&!saveResult.errors){self.refresh();}else{self.screenModified();}},true);},refresh:function()
{var params={screen:this.id+'Widget',process:'refresh'};var self=this;this.parent.getScreenData(params,function(data){if(data){self.clean();data=dfx.jsonDecode(data);self.init(data);}});},revertScreenSettings:function()
{var self=this;var widget=WidgetStore.get('SystemConfigScreenModeWidgetType-tab_pane');if(widget){self.clean();widget.showScreen('squizsuite',null,true);}},switchOnScreen:function()
{var self=this;if(this.readOnly===true){this.disableSaveButton();}else{this.setSaveButton(function(){self.saveScreenSettings();},function(){self.revertScreenSettings();});}},clean:function()
{var currProctWrap=dfx.getId(this.id+'-currProctWrap');dfx.empty(currProctWrap);var connProctWrap=dfx.getId(this.id+'-connProctWrap');dfx.empty(connProctWrap);},switchOffScreen:function(){}};dfx.inherits('SquizSuiteSystemConfigScreen','AbstractSettingsScreen');function SuperUsersSystemConfigScreenWidgetType(id,screenid,system,title,parent)
{AbstractSettingsScreenWidgetType.call(this,id);this.widgetType='SuperUsersSystemConfigScreen';this.screenid=screenid;this.system=system;this.title=title;this.parent=parent;this.hasChanges={};this.added=[];this.children.push(this.id+'-table-Button-AddExistingUser');}
SuperUsersSystemConfigScreenWidgetType.prototype={setReadOnly:function(readOnly)
{AbstractSettingsScreenWidgetType.prototype.setReadOnly.call(this,readOnly);var removeBtns=dfx.getClass(this.widgetType+'WidgetType-remove',dfx.getId('SuperUsersSystemConfigScreen-usersTable'));dfx.foreach(removeBtns,function(idx){if(readOnly===true){dfx.hideElement(removeBtns[idx]);}else{dfx.showElement(removeBtns[idx]);}
return true;});},init:function(data)
{var currentUser=data.userid;var self=this;var table=WidgetStore.get(this.id+'-usersTable');if(table){table.addClickEvent(this.id,function(rowid,colIdx,elem){var className=self.id+'WidgetType-remove';if(dfx.hasClass(elem,className)===true){if(parseInt(table.getRowid(rowid),10)!==parseInt(currentUser,10)){self.toggleUser(rowid);}else{if(self.ipopup){self.ipopup.show(dfx.getTag('td',dfx.getId(rowid))[3]);}else{self.includeWidget('Intervention',function(){self.ipopup=self.createWidget(null,'Intervention',function(){},function(){});self.ipopup.confirmText=null;self.ipopup.cancelText='OK';self.ipopup.create(function(){self.ipopup.setSize('250px','65px');self.ipopup.setMessage('You cannot remove yourself from the super users list');self.ipopup.show(dfx.getTag('td',dfx.getId(rowid))[3]);});});}}}});}
var addNew=WidgetStore.get(this.id+'-table-Button-AddExistingUser');if(!addNew){return;}
var assetPicker=WidgetStore.get('EditingAssetPicker');assetPicker.setScreen('superUsers');assetPicker.addProjectFolderWhiteList('superUsers','Users');assetPicker.setHideSite('superUsers');addNew.addClickEvent(function(){addNew.disable();assetPicker.init('superUsers',function(){assetPicker.dialog.open();});});assetPicker.addAssetsSelectedAction(function(selectedAssets){var sLen=selectedAssets.length;for(var i=0;i<sLen;i++){self.addUserToList(selectedAssets[i]);self.hasChanges[selectedAssets[i]]=true;self.added.push(selectedAssets[i]);}
self._checkChanges();},true);assetPicker.addCloseAction(function(){addNew.enable();});if(this.readOnly===true){this.displayScreenReadOnlyWarning(function(el){dfx.insertBefore(dfx.getClass('SectionWidgetType-sectionHeader',dfx.getId(self.id+'-table'))[0],el);},function(){});}
this.ready();},_checkChanges:function()
{var noChange=true;for(var id in this.hasChanges){if(this.hasChanges[id]===true){this.setModified(true);noChange=false;break;}}
if(noChange===true){this.setModified(false);}},addUserToList:function(userid)
{var table=WidgetStore.get(this.id+'-usersTable');if(table&&table.hasRow(userid)===false){var colClass=['userName','email','lastLogin','remove'];var c=this.getClass();var self=this;var options={attributes:['username','name','email'],type:true,typeIcon:false,linking:[],urls:true};AssetManager.getAsset(userid,function(user){if(user.type!=='user'){return;}
var userName=user.getAttribute('name')+' ('+user.getAttribute('username')+')';var email=user.getAttribute('email');var remove='<div class="'+c+'-remove"></div>';var rowData=[userName,email||'&nbsp;','&nbsp;',remove];var row=table.createRowAsElement(rowData,colClass,userid);table.addRow(row);self.switchOnScreen();},false,options);}},toggleUser:function(rowid)
{var row=dfx.getId(rowid);dfx.toggleClass(row,'disabled');if(this.hasChanges.hasOwnProperty(rowid)===true){delete this.hasChanges[rowid];}else{this.hasChanges[rowid]=true;}
this._checkChanges();this.switchOnScreen();},saveConfig:function()
{var table=WidgetStore.get(this.id+'-usersTable');if(!table){return;}
var rowids=table.getRowids(null,function(row){return(dfx.hasClass(row,'disabled')!==true);});var self=this;var params={users:dfx.jsonEncode(rowids),screen:this.id+'Widget',op:'saveSuperUsers'};this.displayDisabledDiv(true);this.parent.processScreen(params,function(data){dfx.remove(dfx.getClass('disabled',table.domElem,'tr'));self.added=[];self.hasChanges={};self.setModified(false);self.removeDisabledDiv(null,true);},true);},switchOnScreen:function()
{var self=this;this.setSaveButton(function(){self.saveConfig();},function(){self.revert();});},revert:function()
{var table=WidgetStore.get(this.id+'-usersTable');var markedRows=table.getRowids(null,function(row){return(dfx.hasClass(row,'disabled')===true);});var markedLen=markedRows.length;for(var i=0;i<markedLen;i++){var marked=dfx.getId(table.getRowElement(markedRows[i]));dfx.toggleClass(marked,'disabled');}
var addedLen=this.added.length;for(var j=0;j<addedLen;j++){var added=dfx.getId(table.getRowElement(this.added[j]));dfx.remove(added);}
this.added=[];this.hasChanges={};this.setModified(false);this.removeDisabledDiv();},switchOffScreen:function(){}};dfx.inherits('SuperUsersSystemConfigScreen','AbstractSettingsScreen');function UsageEditScreenWidgetType(id,screenid,system,title,parent,assetid,readOnly)
{AbstractSettingsScreenWidgetType.call(this,id,screenid,system,title,parent,assetid,readOnly);this.widgetType='UsageEditScreen';this.sections=[{id:'embedded_media',title:'Embedded Media'},{id:'content_references',title:'Content References'},{id:'general_references',title:'General References'},{id:'design_related',title:'Design Related'}];this.contextClassname='dependency-usageContext';this.contextDescClassname='dependency-usageContextDesc';this.contextTagClassname='dependency-usageContextTag';this.contextCurvesClassname='dependency-usageContextCurves';this.contextTypeClassname='dependency-usageContextType';this.changes={};}
UsageEditScreenWidgetType.prototype={screenModified:function()
{var self=this;var modified=false;dfx.foreach(this.changes,function(id){if(self.changes[id]===true){modified=true;return false;}
return true;});this.setModified(modified);},setReadOnly:function(readOnly)
{AbstractSettingsScreenWidgetType.prototype.setReadOnly.call(this,readOnly);},init:function(data)
{var self=this;dfx.showElement(dfx.getId(this.id+'-dependencies').parentNode);var itemElems=dfx.getId(this.id+'-dependencies-items');var itemLen=itemElems.length;for(var i=itemLen;i>0;i--){dfx.remove(itemElems.childNodes[i]);}
var wrapper=dfx.getId(this.id+'-dependencies-items');var desc='This section lists the parts of the system that this asset is using. ';desc+='This may be media, such as images and movies, ';desc+='assets that it is linking to or assets that are being used within the design of the page.';var descDiv=document.createElement('div');dfx.setHtml(descDiv,desc);dfx.addClass(descDiv,this.widgetType+'-deps-description');wrapper.appendChild(descDiv);this.includeWidgets(['PlainList','AssetTagLine'],function(){dfx.foreach(self.sections,function(idx){var listWrap=document.createElement('div');var sectionid=self.sections[idx].id;var subHeader=document.createElement('h2');dfx.addClass(subHeader,'dependency');dfx.setHtml(subHeader,self.sections[idx].title);listWrap.appendChild(subHeader);var listWrapper=document.createElement('div');listWrapper.id=self.id+'-'+sectionid;dfx.addClass(listWrap,self.widgetType+'-depListWrap');listWrap.appendChild(listWrapper);wrapper.appendChild(listWrap);return true;});var tagLines=[];var tagLinesElem={};var lists=[];dfx.foreach(self.sections,function(idx){var sectionid=self.sections[idx].id;lists.push(sectionid);dfx.foreach(data.deps[sectionid],function(idx){var resourceid=data.deps[sectionid][idx].resourceId;var widgetid=self.id+'-'+sectionid+'-'+resourceid+'-'+idx;var astTagLine=self.createWidget(widgetid,'AssetTagLine');if(resourceid===0){astTagLine.setCustomData({id:resourceid,name:data.tagLineData[data.deps[sectionid][idx].resourceType].name,iconUrl:data.tagLineData[data.deps[sectionid][idx].resourceType].typeIconUrl,assetType:data.tagLineData[data.deps[sectionid][idx].resourceType].type,url:data.tagLineData[data.deps[sectionid][idx].resourceType].url,error:data.tagLineData[data.deps[sectionid][idx].resourceType].error});}else{astTagLine.setCustomData({id:resourceid,name:data.tagLineData[resourceid].name,iconUrl:data.tagLineData[resourceid].typeIconUrl,assetType:data.tagLineData[resourceid].type,url:data.tagLineData[resourceid].url,error:data.tagLineData[resourceid].error});}
tagLines.push(astTagLine);return true;});return true;});var _createDependencyLists=function(idx){var sectionid=lists[idx];var rows=[];if(data.deps[sectionid].length===0){var noDepString=document.createElement('span');var msgString='';if(sectionid==='embedded_media'){msgString='There is no embedded media.';}else if(sectionid==='content_references'){msgString='There are no content references.';}else if(sectionid==='general_references'){msgString='There are no general references.';}else if(sectionid==='design_related'){msgString='There are no design related references.';}
dfx.setHtml(noDepString,msgString);rows.push({id:'',left:noDepString,right:null});dfx.addClass(noDepString,self.widgetType+'-no-dependencies');}else{dfx.foreach(data.deps[sectionid],function(idx){var resourceid=data.deps[sectionid][idx].resourceId;var widgetid=self.id+'-'+sectionid+'-'+resourceid+'-'+idx;var context=document.createElement('div');var contextDesc=document.createElement('div');var contextTag=document.createElement('div');var contextCurves=document.createElement('span');var contextType=document.createElement('span');dfx.addClass(context,self.contextClassname);dfx.addClass(contextDesc,self.contextDescClassname);dfx.addClass(contextTag,self.contextTagClassname);dfx.addClass(contextCurves,self.contextCurvesClassname);dfx.addClass(contextType,self.contextTypeClassname);dfx.setHtml(contextDesc,data.deps[sectionid][idx].resourceUsedAs);dfx.setHtml(contextType,data.deps[sectionid][idx].resourceString);contextCurves.appendChild(contextType);contextTag.appendChild(contextCurves);context.appendChild(contextDesc);context.appendChild(contextTag);rows.push({id:widgetid+'-row',left:tagLinesElem[widgetid],right:context});return true;});}
var list=self.createWidget(self.id+'-'+sectionid+'-list','PlainList','850',false,false,true,rows);list.create(function(el){dfx.getId(self.id+'-'+sectionid).appendChild(el);var browserInfo=dfx.browser();if(browserInfo.type!=='msie'){dfx.foreach(data.deps[sectionid],function(idx){var resourceid=data.deps[sectionid][idx].resourceId;var widgetid=self.id+'-'+sectionid+'-'+resourceid+'-'+idx;dfx.ellipsizeDom(dfx.getClass('AssetTagLine-assetName',tagLinesElem[widgetid])[0],250);});}
if(idx<(lists.length-1)){_createDependencyLists(idx+1);}else{self.ready();}});};var tagLinesLen=tagLines.length;var _createAstTagLines=function(idx){if(tagLinesLen===0){_createDependencyLists(0);}else{tagLines[idx].create(function(elem){tagLinesElem[tagLines[idx].id]=elem;if(idx<(tagLinesLen-1)){_createAstTagLines(idx+1);}else{if(lists.length>0){_createDependencyLists(0);}}});}};_createAstTagLines(0);});},getAutoSaveContents:function()
{var saveData={};return saveData;},loadAutoSaveContents:function(content,callBack)
{if(callback){callback.call(this);}},saveScreenSettings:function()
{var self=this;var params={screen:this.id+'Widget',assetid:this.assetid};this.displayDisabledDiv(true);this.parent.processScreen(params,function(data){self.reset(function(){self.switchOnScreen();self.removeDisabledDiv();});},true);},revertScreenSettings:function()
{var self=this;this.displayDisabledDiv(true);this.reset(function(){self.removeDisabledDiv();});},reset:function(callback)
{var self=this;var params={mode:'EditScreenMode',screen:'UsageEditScreenWidget',type:'getDesignData',assetid:this.assetid};this.parent.getScreenData(params,function(data){var designData=dfx.jsonDecode(data);self.init(designData);callback.call(self);});},switchOnScreen:function()
{var self=this;if(this.readOnly===true){this.disableSaveButton();}else{this.setSaveButton(function(){self.saveScreenSettings();},function(){self.revertScreenSettings();});}},switchOffScreen:function(){}};dfx.inherits('UsageEditScreen','AbstractSettingsScreen');function WorkflowAdminScreenWidgetType(id,screenid,system,title,parent,assetid,readOnly)
{AbstractSettingsScreenWidgetType.call(this,id,screenid,system,title,parent,assetid,readOnly);this.widgetType='WorkflowAdminScreen';this._loadAutoSave=false;var self=this;window.onbeforeunload=function(e){if(self.isModified){return WidgetStore.getUnsavedChangesStr();}};var schemaNameWidget=WidgetStore.get(this.id+'-details-name');if(schemaNameWidget){schemaNameWidget.addOnChangeEvent(function(newName){self.setModified(true);var id=self.id+'-infobox-schemaName-'+self.currentSchema;var el=dfx.getId(id);if(el){dfx.setHtml(el,newName);}});}}
WorkflowAdminScreenWidgetType.prototype={init:function(data,schema,stream)
{schema=schema||data.schemaid;this.schemas={};this._removedSchemas={};this._cache={};this._streamInfo={};this.readOnlyGroups={};this.streamSteps={};this.streamElements={};this.isModified=false;this.setModified(false);this._createTextField=null;this.schemas=data.schemas;this.assetTypeIcon=this.assetTypeIcon||data.typeIconUrl;var wrapperEl=dfx.getId(this.id+'-details-wrapper');if(dfx.isEmpty(this.schemas)===true){dfx.addClass(wrapperEl,'noSchemas');this.schemas={};}else{dfx.removeClass(wrapperEl,'noSchemas');}
this.initInfoBox();this._initAddNewStream();if(!schema||!this.schemas[schema]){schema=data.schemaid;stream=null;}
if(schema){this.showSchema(schema,stream);}
if(this.readOnly===true){var details=dfx.getId(this.id+'-details-wrapper');dfx.addClass(details,'readOnly');}
this.ready();if(this.readOnly===true){this.displayScreenReadOnlyWarning(function(el){var wrapper=dfx.getId(this.id+'-infobox');dfx.insertAfter(wrapper,el);},function(){});}},_initAddNewStream:function()
{var button=WidgetStore.get(this.id+'-details-streamsSection-Button-AddNew');if(button){var self=this;button.setReadOnly(this.readOnly);button.addClickEvent(function(){self.addNewStream(self.currentSchema);},true);}},addNewStream:function(schemaid)
{this.isModified=true;this.setModified(true);var id=dfx.getUniqueId();var parentCont=dfx.getId(this.id+'-details-streams');var c=this.getClass()+'-streamList';var streamsCont=dfx.getClass('schema-'+schemaid,parentCont)[0];if(streamsCont){var firstStream=false;if(this.schemas[schemaid]){if(!this.schemas[schemaid].streams||this.schemas[schemaid].streams.length===0){this.schemas[schemaid].streams={};firstStream=true;}
this.schemas[schemaid].streams[id]={flow:'sequential',name:''};}
var self=this;this._createStreamField(id,schemaid,'',firstStream,function(el){streamsCont.appendChild(el);});}},showStream:function(schemaid,streamid)
{var self=this;var c=this.getClass();var elem=dfx.getId(this.id+'-details-wrapper');dfx.addClass(elem,'hidden');var wrapper=dfx.getId(this.id+'-streamsWrapper');if(!wrapper){this._initStreamsWrapper(function(){self.showStream(schemaid,streamid);});return;}
if(!this.schemas[schemaid].streams[streamid].steps){var params={screen:this.id+'Widget',process:'getTasks',schemaid:schemaid,streamid:streamid};this.parent.getScreenData(params,function(data){self.schemas[schemaid].streams[streamid].steps={};self._showStream(schemaid,streamid);if(data){data=dfx.jsonDecode(data);self._processNewStepData(schemaid,streamid,data);}});}else if(!dfx.getId(this.id+'-streamInfo-'+schemaid+'-'+streamid)){var data=dfx.clone(this.schemas[schemaid].streams[streamid].steps);self._showStream(schemaid,streamid);this._processNewStepData(schemaid,streamid,data);}else{this._showStream(schemaid,streamid);}},_processNewStepData:function(schemaid,streamid,data)
{for(var id in data){if(data.hasOwnProperty(id)===true){var step=data[id];var self=this;this.addNewStep(schemaid,streamid,id,step.name,step.desc,{assignees:step.assignees,removedUsers:step.removedUsers},function(){delete data[id];self._processNewStepData(schemaid,streamid,data);});break;}}},_showStream:function(schemaid,streamid)
{var stepArrayid='steps_'+streamid+'_'+schemaid;var readOnly=false;if(this.schemas[schemaid].streams[streamid].removed===true){readOnly=true;if(!dfx.getId(this.id+'-readOnlyMsg')){wrnOps={id:this.id+'-readOnlyMsg',leftTitle:'Read Only',mainMessage:'This screen is <strong>Read Only</strong> because the stream is <strong>Marked for Deletion</strong>.',colour:'red',buttonTitle:null};this.createScreenWarningMessage(wrnOps,function(el){dfx.insertBefore(dfx.getClass('WorkflowAdminScreenWidgetType-streamInfo-top')[0],el);});}}else{var readOnlyMsg=dfx.getId(this.id+'-readOnlyMsg');if(readOnlyMsg){dfx.remove(readOnlyMsg);}}
if(this.readOnly===true){readOnly=true;}
WidgetStore.get(this.id+'-addNewStepBtn').setReadOnly(readOnly);this._streamInfo.toggle.setReadOnly(readOnly);this.currentStream=streamid;var wrapper=dfx.getId(this.id+'-streamsWrapper');var id=this.id+'-streamInfo-'+schemaid+'-'+streamid;var streamEl=dfx.getId(id);var c=this.getClass()+'-stream-steps';if(!streamEl){streamEl=document.createElement('div');streamEl.id=id;wrapper.appendChild(streamEl);dfx.addClass(streamEl,c);var self=this;dfxjQuery(streamEl).sortable({axis:'y',handle:'div.WorkflowAdminScreenStepWidgetType-step-dragHandle',stop:function(){self.updateFieldNumbers(streamEl);self.setModified(true);},tolerance:'pointer'});}
dfx.removeClass(dfx.getClass(c,wrapper),'active');dfx.addClass(streamEl,'active');var title=this.schemas[schemaid].streams[streamid].name;var flow=this.schemas[schemaid].streams[streamid].flow;dfx.setHtml(this._streamInfo.title,title);if(flow==='sequential'){this._streamInfo.toggle.toggleSlideOn(null,false,false,true);}else{this._streamInfo.toggle.toggleSlideOff(null,false,false,true);}
dfx.removeClass(wrapper,'hidden');this.infobox.setItem('infobox_'+schemaid+'_'+streamid);},_initStreamsWrapper:function(callback)
{var main=document.createElement('div');main.id=this.id+'-streamsWrapper';var c=this.getClass()+'-streamInfo';dfx.addClass(main,c+' hideen');var content='<div class="'+c+'-top">';content+='<div class="'+c+'-top-title"></div>';content+='<div class="'+c+'-top-subtitle">';content+='<span class="'+c+'-top-desc">Steps need to be completed in sequence</span>';content+='<div class="'+c+'-top-toggle"></div>';content+='<div class="'+c+'-top-addNewButton"></div>';content+='</div>';content+='</div>';dfx.setHtml(main,content);var details=dfx.getId(this.id+'-details-wrapper');dfx.insertAfter(details,main);this._streamInfo={title:dfx.getClass(c+'-top-title',main)[0],desc:dfx.getClass(c+'-top-desc',main)[0]};var self=this;this.includeWidgets(['ToggleButton','Button'],function(){var toggle=self.createWidget(null,'ToggleButton',false,'slider',false,'Yes','No');self._streamInfo.toggle=toggle;toggle.create(function(toggleEl){dfx.getClass(c+'-top-toggle',main)[0].appendChild(toggleEl);});toggle.addToggleEvent(function(on){self.setStreamFlow(self.currentSchema,self.currentStream,on);self.setModified(true);});var button=self.createWidget(self.id+'-addNewStepBtn','Button');button.setName('Add New Step');button.create(function(buttonEl){dfx.getClass(c+'-top-addNewButton',main)[0].appendChild(buttonEl);});button.addClickEvent(function(){self.addNewStep(self.currentSchema,self.currentStream);self.isModified=true;self.setModified(true);});callback.call(self);});},addNewStep:function(schemaid,streamid,stepid,stepName,stepDesc,stepUsers,callback)
{var _streamid=this.id+'-streamInfo-'+schemaid+'-'+streamid;var streamEl=dfx.getId(_streamid);var self=this;var readOnly=this.readOnly;if(this.schemas[schemaid].streams[streamid].removed===true){readOnly=true;}
this.includeWidget('WorkflowAdminScreenStep',function(){var step=self.createWidget(null,'WorkflowAdminScreenStep',streamEl,schemaid,_streamid,stepid,stepName,stepDesc,stepUsers);step.setReadOnly(readOnly);if(!self.streamSteps[schemaid]){self.streamSteps[schemaid]={};}
if(!self.streamSteps[schemaid][streamid]){self.streamSteps[schemaid][streamid]={};}
self.streamSteps[schemaid][streamid][step.id]=step;step.create(function(el){streamEl.appendChild(el);dfxjQuery(streamEl).sortable('refresh');if(callback){callback.call(self);}});});},setStreamFlow:function(schemaid,streamid,sequential)
{var flow='sequential';if(!sequential){flow='non-'+flow;}
this.schemas[schemaid].streams[streamid].flow=flow;},showSchema:function(schemaid,streamid)
{if(this._loadAutoSave!==true&&this.schemas[this.currentSchema]){var prevName=WidgetStore.get(this.id+'-details-name').getValue();this.schemas[this.currentSchema].name=prevName;}
this.currentSchema=schemaid;this.currentStream=null;dfx.removeClass(dfx.getId(this.id+'-details-wrapper'),'hidden');dfx.addClass(dfx.getId(this.id+'-streamsWrapper'),'hidden');var parentCont=dfx.getId(this.id+'-details-streams');var c=this.getClass()+'-streamList';var name=this.schemas[schemaid].name;WidgetStore.get(this.id+'-details-name').setValue(name);dfx.removeClass(dfx.getClass(c,parentCont),'active');var streamsCont=dfx.getClass('schema-'+schemaid,parentCont)[0];if(streamsCont){dfx.addClass(streamsCont,'active');}else{var wrapper=document.createElement('div');dfx.addClass(wrapper,c);dfx.addClass(wrapper,'schema-'+schemaid);dfx.addClass(wrapper,'active');parentCont.appendChild(wrapper);var streams=this.schemas[schemaid].streams;for(var idx in streams){if(streams.hasOwnProperty(idx)===false){continue;}
var self=this;this._createStreamField(idx,schemaid,streams[idx].name,false,function(el){wrapper.appendChild(el);if(streamid&&parseInt(streamid)===parseInt(idx)){self.showStream(schemaid,idx);}});}}
var wrapperEl=dfx.getId(this.id+'-details-wrapper');dfx.removeClass(wrapperEl,'noSchemas');if(this.readOnly!==true){var addNewBtn=WidgetStore.get(this.id+'-details-streamsSection-Button-AddNew');if(addNewBtn){if(this._removedSchemas&&this._removedSchemas[schemaid]){addNewBtn.setReadOnly(true);}else{addNewBtn.setReadOnly(false);}}}
this._updateSchemaMarkedForDeletion(schemaid);},_updateSchemaMarkedForDeletion:function(schemaid)
{if(this._removedSchemas&&this._removedSchemas[schemaid]){var self=this;if(!dfx.getId(this.id+'-schemaReadOnlyMsg')){wrnOps={id:this.id+'-schemaReadOnlyMsg',leftTitle:'Read Only',mainMessage:'This schema is <strong>Read Only</strong> because the schema is <strong>Marked for Deletion</strong>.',colour:'red',buttonTitle:null};this.createScreenWarningMessage(wrnOps,function(el){dfx.insertBefore(dfx.getId(self.id+'-details-nameSection'),el);});}}else{var readOnlyMsg=dfx.getId(this.id+'-schemaReadOnlyMsg');if(readOnlyMsg){dfx.remove(readOnlyMsg);}}},_toggleStreamRemoved:function(schemaid,streamid,markAsRemoved)
{if(this._removedSchemas[schemaid]){return;}
this.setModified(true);var self=this;var infoBoxEl=dfx.getId('infobox_'+schemaid+'_'+streamid);var main=this.streamElements[schemaid+'_'+streamid];if(markAsRemoved===true&&dfx.hasClass(main,'removed')===true){return;}else if(markAsRemoved===false&&dfx.hasClass(main,'removed')===false){return;}
dfx.toggleClass(main,'removed');if(dfx.hasClass(main,'removed')===true){self.schemas[schemaid].streams[streamid].removed=true;dfx.addClass(infoBoxEl,'removed');if(self.streamSteps[schemaid]&&self.streamSteps[schemaid][streamid]){for(var stepid in self.streamSteps[schemaid][streamid]){self.streamSteps[schemaid][streamid][stepid].setReadOnly(true);}}}else{self.schemas[schemaid].streams[streamid].removed=false;dfx.removeClass(infoBoxEl,'removed');if(self.streamSteps[schemaid]&&self.streamSteps[schemaid][streamid]){for(var stepid in self.streamSteps[schemaid][streamid]){self.streamSteps[schemaid][streamid][stepid].setReadOnly(false);}}}
if(parseInt(this.currentSchema)===parseInt(schemaid)&&parseInt(this.currentStream)===parseInt(streamid)){this.showStream(schemaid,streamid);}},_createStreamField:function(id,schemaid,streamName,checked,callback)
{streamName=streamName||'';if(parseInt(this.schemas[schemaid].defaultStream)===parseInt(id)){checked=true;}
var c=this.getClass()+'-stream';var main=document.createElement('div');var content='<div class="'+c+'-field"></div>';this.streamElements[schemaid+'_'+id]=main;content+='<div class="'+c+'-check"></div>';content+='<div class="'+c+'-removedOverlay"></div>';content+='<div class="'+c+'-remove" id="'+this.id+'-removeStream-'+schemaid+'-'+id+'"></div>';dfx.addClass(main,c);dfx.setHtml(main,content);main.setAttribute('streamname',streamName);var fieldCont=dfx.getClass(c+'-field',main)[0];var remove=dfx.getClass(c+'-remove',main)[0];var check=dfx.getClass(c+'-check',main)[0];if(this.readOnly===true){if(checked!==true){dfx.setStyle(check,'display','none');}
dfx.setStyle(remove,'display','none');}
var self=this;if(remove){var infoBoxEl=null;dfx.addEvent(remove,'click',function(e){self.setModified(true);self._toggleStreamRemoved(schemaid,id);dfx.stopPropagation(e);dfx.preventDefault(e);if(dfx.hasClass(main,'removed')===true&&dfx.hasClass(main,'checked')===true){var streamElems=main.parentNode.childNodes;var sln=streamElems.length;for(var i=0;i<sln;i++){if(dfx.hasClass(streamElems[i],'removed')===false){dfx.trigger(dfx.getClass(c+'-check',streamElems[i])[0],'click');break;}}}
return false;});}
if(checked===true){dfx.addClass(main,'checked');}
if(check){dfx.addEvent(check,'click',function(){if(self.readOnly===true){return;}
self.setModified(true);dfx.removeClass(dfx.getClass('checked',main.parentNode),'checked');dfx.toggleClass(main,'checked');self.schemas[schemaid].defaultStream=id;});}
this.includeWidget('TextField',function(){var textField=self.createWidget('stream_'+schemaid+'_'+id,'TextField');textField.create(function(el){textField.setReadOnly(self.readOnly);textField.setValue(streamName);textField.addOnChangeEvent(function(newName){self._updateStreamName(id,newName);self.schemas[schemaid].streams[id].name=newName;});fieldCont.appendChild(el);callback.call(self,main);});});var elem=this._createInfoboxStreamItem(schemaid,id,streamName);this.infobox.addChildItem('schemas',schemaid,'infobox_'+schemaid+'_'+id,elem,function(){self.showStream(schemaid,id);});if(remove&&this.schemas[schemaid].streams[id].removed===true){dfx.trigger(remove,'click');}
if(this.currentSchema===schemaid){this.infobox.setItem(schemaid);}},getAutoSaveContents:function()
{this._autoSaving=true;this._getData();this._autoSaving=false;var saveData=dfx.jsonEncode({schemas:this.schemas,currentSchema:this.currentSchema,currentStream:this.currentStream});return saveData;},loadAutoSaveContents:function(content,callback)
{var data=dfx.jsonDecode(content);this._loadAutoSave=true;var self=this;this.reload(function(){self._loadAutoSave=false;},null,null,data);},initInfoBox:function()
{var self=this;this.infobox=WidgetStore.get(this.id+'-infobox');this.infobox.setTitle('Workflow Manager');this.infobox.setUlClassPrefix('Blue');this.infobox.addSection('schemas',null);this.infobox.setSelected(this.currentSchema);var addItem=function(sid,schemaName){var elem=self._createInfoboxSchemaItem(sid,schemaName);self.infobox.addItem('schemas',sid,elem,function(){self.showSchema(sid);});};for(var sid in this.schemas){if(this.schemas.hasOwnProperty(sid)===true){var schema=this.schemas[sid];addItem(sid,schema.name);}}
if(this.readOnly!==true){var self=this;this.infobox.addNewButton(function(value){self.addNewSchema(value);});}},addNewSchema:function(schemaName)
{if(dfx.trim(schemaName).length===0){return;}
this.setModified(true);this.isModified=true;var id='new_'+dfx.getUniqueId();this.schemas[id]={name:schemaName,streams:null};var elem=this._createInfoboxSchemaItem(id,schemaName);var self=this;this.infobox.addItem('schemas',id,elem,function(){self.showSchema(id);});this.showSchema(id);this.infobox.setItem(id);},_createInfoboxSchemaItem:function(schemaid,schemaName)
{var c=this.getClass()+'-infobox-item';var elem=document.createElement('div');var id=this.id+'-infobox-schemaName-'+schemaid;dfx.addClass(elem,c);var content='<div class="'+c+'-icon" style="background-image:url('+this.assetTypeIcon+');"></div>';content+='<div class="'+c+'-name" id="'+id+'">'+schemaName+'</div>';content+='<div class="'+c+'-remove"></div>';dfx.setHtml(elem,content);var self=this;var removeButton=dfx.getClass(c+'-remove',elem)[0];if(this.readOnly===true){dfx.setStyle(removeButton,'display','none');}
if(removeButton){dfx.addEvent(removeButton,'click',function(e){self.setModified(true);if(!self._removedSchemas[schemaid]){WidgetStore.get(self.id+'-details-name').setReadOnly(true);dfx.addClass(removeButton,'removed');dfx.foreach(self.schemas[schemaid].streams,function(streamid){self._toggleStreamRemoved(schemaid,streamid,true);});self._removedSchemas[schemaid]=true;if(self.currentSchema===schemaid||parseInt(self.currentSchema)===parseInt(schemaid)){self._updateSchemaMarkedForDeletion(schemaid);var addNewBtn=WidgetStore.get(self.id+'-details-streamsSection-Button-AddNew');if(addNewBtn){addNewBtn.setReadOnly(true);}}
self._addDeletedLayer(elem.parentNode);}else{WidgetStore.get(self.id+'-details-name').setReadOnly(false);dfx.removeClass(removeButton,'removed');delete self._removedSchemas[schemaid];self._removeDeletedLayer(elem.parentNode);if(self.currentSchema===schemaid||parseInt(self.currentSchema)===parseInt(schemaid)){self._updateSchemaMarkedForDeletion(schemaid);var addNewBtn=WidgetStore.get(self.id+'-details-streamsSection-Button-AddNew');if(addNewBtn){addNewBtn.setReadOnly(false);}}
dfx.foreach(self.schemas[schemaid].streams,function(streamid){self._toggleStreamRemoved(schemaid,streamid,false);});}
dfx.stopPropagation(e);dfx.preventDefault(e);return false;});}
return elem;},_updateStreamName:function(streamid,name)
{var id=this.id+'-infobox-'+streamid;if(!this._cache[id]){var elem=dfx.getId(id);if(elem){elem=dfx.getTag('span',elem)[0];if(elem){this._cache[id]=elem;}else{return;}}}
this.isModified=true;dfx.setHtml(this._cache[id],name);this.setModified(true);},_createInfoboxStreamItem:function(schemaid,streamid,streamName)
{var c=this.getClass()+'-infobox-childItem';var elem=document.createElement('div');elem.id=this.id+'-infobox-'+streamid;dfx.addClass(elem,c);dfx.setHtml(elem,'<span>'+streamName+'</span><div class="remove"></div>');var removeButton=dfx.getClass('remove',elem)[0];if(this.readOnly===true){dfx.setStyle(removeButton,'display','none');}
if(removeButton){var self=this;dfx.addEvent(removeButton,'click',function(e){self._toggleStreamRemoved(schemaid,streamid);dfx.stopPropagation(e);dfx.preventDefault(e);var main=self.streamElements[schemaid+'_'+streamid];var c=self.getClass()+'-stream';if(dfx.hasClass(main,'removed')===true&&dfx.hasClass(main,'checked')===true){var streamElems=main.parentNode.childNodes;var sln=streamElems.length;for(var i=0;i<sln;i++){if(dfx.hasClass(streamElems[i],'removed')===false){dfx.trigger(dfx.getClass(c+'-check',streamElems[i])[0],'click');break;}}}
return false;});}
return elem;},_getData:function()
{var schemaNameWidget=WidgetStore.get(this.id+'-details-name');if(schemaNameWidget){if(this.schemas[this.currentSchema]){this.schemas[this.currentSchema].name=schemaNameWidget.getValue();}}
var modified=false;for(var schemaid in this.schemas){if(this._removedSchemas[schemaid]===true){modified=true;if(this._autoSaving===true){this.schemas[schemaid].isRemoved=true;}else{delete this.schemas[schemaid];continue;}}
if(!this.schemas[schemaid].streams){continue;}
for(var streamid in this.schemas[schemaid].streams){if(this.schemas[schemaid].streams[streamid].removed===true){modified=true;if(this._autoSaving!==true){delete this.schemas[schemaid].streams[streamid];continue;}}
if(this.schemas[schemaid].streams[streamid].steps){var streamEl=dfx.getId(this.id+'-streamInfo-'+schemaid+'-'+streamid);if(streamEl){this.schemas[schemaid].streams[streamid].steps=this._getStepsData(schemaid,streamid,streamEl);}}}}
if(modified===true){this.setModified(true);}},_getStepsData:function(schemaid,streamid,streamEl)
{var stepsData={};var steps=dfx.getClass('WorkflowAdminScreenStepWidgetType-step',streamEl);var sln=steps.length;for(var i=0;i<sln;i++){var stepEl=steps[i];var id=this.id+'-streamInfo-'+schemaid+'-'+streamid+'-'+stepEl.getAttribute('stepid');if(!id||dfx.hasClass(stepEl,'removed')===true){continue;}
var name=WidgetStore.get(id+'-name');var desc=WidgetStore.get(id+'-desc');var usersInfo=this._getStepUserInfos(id,stepEl);var users=usersInfo.users;var removedUsers=usersInfo.removedUsers;stepsData[stepEl.getAttribute('stepid')]={name:name.getValue(),desc:desc.getValue(),assignees:users,removedUsers:removedUsers,order:(i+1)};}
return stepsData;},_getStepUserInfos:function(id,stepEl)
{var usersList={};var removedUsers=[];var c='WorkflowAdminScreenStepUsersWidgetType-userList-item';var users=dfx.getClass(c,stepEl);var ln=users.length;for(var i=0;i<ln;i++){var userEl=users[i];var userid=userEl.getAttribute('userid');if(dfx.hasClass(userEl,'removed')===true){if(this._autoSaving!==true){continue;}else{removedUsers.push(userid);}}
usersList[(userid).toString()]=1;var countel=dfx.getTag('input',userEl)[0];if(countel){var countw=WidgetStore.get(countel.id);if(countw.getValue()>0){usersList[userid]=countw.getValue();}}}
return{users:usersList,removedUsers:removedUsers};},saveScreenSettings:function()
{this._getData();var params={screen:this.id+'Widget',process:'save',data:dfx.jsonEncode(this.schemas)};this.displayDisabledDiv(true);var self=this;this.parent.processScreen(params,function(data){if(data&&!data.errors){self.reload(function(){self.removeDisabledDiv(null,true);},data.newSchemaids,data.newStreamids);}else{self.setModified(true);}
self.switchOnScreen();},true);},revertScreenSettings:function()
{var widget=WidgetStore.get('AdminScreenModeWidgetType-tab_pane');if(widget){widget.showScreen('workflow',null,true);}},switchOnScreen:function()
{var self=this;if(this.readOnly===true){this.disableSaveButton();}else{this.setSaveButton(function(){self.saveScreenSettings();},function(){self.revertScreenSettings();});}},switchOffScreen:function(){},reload:function(callback,schemaidMap,streamidMap,data)
{this.infobox.reset();var el=dfx.getId(this.id+'-streamsWrapper');if(el){dfx.remove(el);}
var cont=dfx.getId(this.id+'-details-streams');if(cont){dfx.empty(cont);}
if(schemaidMap&&schemaidMap[this.currentSchema]){this.currentSchema=schemaidMap[this.currentSchema];}
if(streamidMap&&streamidMap[this.currentStream]){this.currentStream=streamidMap[this.currentStream];}
if(data){this.init(data,data.currentSchema,data.currentStream);callback.call(this);}else{var params={screen:this.id+'Widget',process:'getInitData'};var self=this;this.parent.getScreenData(params,function(data){data=dfx.jsonDecode(data);self.init(data,self.currentSchema,self.currentStream);callback.call(self);});}},_addDeletedLayer:function(parent,custClass)
{var c=this.getClass()+'-removedLayer';var el=document.createElement('div');dfx.addClass(el,c);if(custClass){dfx.addClass(el,custClass);}
parent.appendChild(el);return el;},_removeDeletedLayer:function(parent)
{dfx.remove(dfx.getClass(this.getClass()+'-removedLayer',parent));},updateFieldNumbers:function(parent)
{var elems=dfx.getClass('WorkflowAdminScreenStepWidgetType-step-orderNum',parent);var ln=elems.length;for(var i=0;i<ln;i++){dfx.setHtml(elems[i],(i+1)+'.');}},setReadOnly:function(readOnly)
{AbstractSettingsScreenWidgetType.prototype.setReadOnly.call(this,readOnly);if(readOnly!==true){WidgetStore.get(this.id+'-details-name').setReadOnly(false);var infoboxElem=dfx.getId(this.id+'-infobox_section_schemas');if(infoboxElem){dfx.setStyle(dfx.getClass('remove',infoboxElem,'div'),'display','block');dfx.setStyle(dfx.getClass(this.getClass()+'-infobox-item-remove',infoboxElem,'div'),'display','block');}
var addNewBtn=WidgetStore.get(this.id+'-details-streamsSection-Button-AddNew');if(addNewBtn){addNewBtn.setReadOnly(false);}
if(this.infobox&&this.infobox.hasAddNewButton()===false){var self=this;this.infobox.addNewButton(function(value){self.addNewSchema(value);});}
var checkElems=dfx.getClass(this.getClass()+'-stream-check');if(checkElems){dfx.setStyle(checkElems,'display','block');}
var details=dfx.getId(this.id+'-details-wrapper');if(details){dfx.removeClass(details,'readOnly');}
var removeElems=dfx.getClass(this.getClass()+'-stream-remove');if(removeElems){dfx.setStyle(removeElems,'display','block');}}}};dfx.inherits('WorkflowAdminScreen','AbstractSettingsScreen');function WorkflowEditScreenWidgetType(id,screenid,system,title,parent,assetid,readOnly)
{AbstractSettingsScreenWidgetType.call(this,id,screenid,system,title,parent,assetid,readOnly);this.widgetType='WorkflowEditScreen';this.workflowTypes=null;this.schemas=null;this.assetid=assetid;this._removedSchemas={};this.assetSchemas={};this._listContainers={};this._origAssetSchemas={};var self=this;window.onbeforeunload=function(e){if(self.isModified){return WidgetStore.getUnsavedChangesStr();}};}
WorkflowEditScreenWidgetType.prototype={setReadOnly:function(readOnly)
{AbstractSettingsScreenWidgetType.prototype.setReadOnly.call(this,readOnly);var appChilds=dfx.getClass(this.widgetType+'WidgetType-listItem-appChild',dfx.getId(this.id+'-main'));dfx.foreach(appChilds,function(idx){if(readOnly===true){dfx.hideElement(appChilds[idx]);}else{dfx.showElement(appChilds[idx]);}
return true;});var rmBtns=dfx.getClass(this.widgetType+'WidgetType-listItem-remove',dfx.getId(this.id+'-main'));dfx.foreach(rmBtns,function(idx){if(readOnly===true){dfx.hideElement(rmBtns[idx]);}else{dfx.showElement(rmBtns[idx]);}
return true;});},init:function(data)
{var self=this;this._origData=dfx.clone(data);this.setModified(false);this.isModified=false;this.workflowTypes=data.workflowTypes;this.schemas=data.schemas;if(data.assetSchemas){this.assetSchemas=data.assetSchemas;this._origAssetSchemas=dfx.clone(this.assetSchemas);}else{this.assetSchemas={};this._origAssetSchemas=dfx.clone(this.assetSchemas);}
if(this.schemas){dfx.hideElement(dfx.getId(self.id+'-noSchemas'));this._createListContainers();if(this.readOnly===true){this.displayScreenReadOnlyWarning(function(el){dfx.insertBefore(dfx.getId(self.id+'-main'),el);},function(){});}}else{dfx.hideElement(dfx.getId(self.id+'-main'));}
this.ready();},_createListContainers:function()
{var parentContainer=dfx.getId(this.id+'-main');dfx.empty(parentContainer);for(var type in this.workflowTypes){var c=this.getClass()+'-typeContainer';var main=document.createElement('div');dfx.addClass(main,c);parentContainer.appendChild(main);this._createTitle(main,this.workflowTypes[type]);this._createListContainer(main,type);}
var hasSchemas=false;for(var schemaid in this.assetSchemas){hasSchemas=true;this._createListItem(schemaid,this.assetSchemas[schemaid].type);}
if(hasSchemas!==true){this._showNoItemsContainer('publishing.publish');}},_showNoItemsContainer:function(type)
{var el=document.createElement('div');dfx.setHtml(el,'There are no workflow schemas applied');dfx.insertAfter(this._listContainers[type],el);el.id=this.id+'-noSchemas-'+type;dfx.addClass(el,this.getClass()+'-noSchemas');},_hideNoItemsContainer:function(type)
{var id=this.id+'-noSchemas-'+type;var el=dfx.getId(id);if(el){dfx.remove(el);}},_createTitle:function(parentContainer,title)
{var c=this.getClass()+'-typeContainer';var contents='Workflow Schemas For '+title;var main=document.createElement('div');dfx.attr(main,'class',c+'-title');dfx.setHtml(main,contents);parentContainer.appendChild(main);},_createListContainer:function(parentContainer,type)
{var c=this.getClass()+'-typeContainer';var main=document.createElement('div');dfx.attr(main,'class',c+'-list');var contents='<div class="'+c+'-list-header">';contents+='<div class="'+c+'-list-header-title">Current Schemas</div>';contents+='<div class="'+c+'-list-header-addSchema"></div></div>';contents+='<div class="'+c+'-list-items"></div>';dfx.setHtml(main,contents);parentContainer.appendChild(main);var buttonCont=dfx.getClass(c+'-list-header-addSchema',main)[0];var listItemsCont=dfx.getClass(c+'-list-items',main)[0];this._listContainers[type]=listItemsCont;var self=this;this.includeWidget('Button',function(){var button=self.createWidget(self.id+'-addSchema','Button');button.setName('Add Schema');button.create(function(el){buttonCont.appendChild(el);});button.addClickEvent(function(){self._hideNoItemsContainer('publishing.publish');self._createListItem(null,type,true);self.isModified=true;self.setModified(true);});button.setReadOnly(self.readOnly);});},_createListItem:function(schemaid,schemaType,cascade)
{var c=this.getClass()+'-listItem';var main=document.createElement('div');dfx.addClass(main,c);schemaid=schemaid||'new_'+dfx.getUniqueId();var title='';var self=this;if(!self.assetSchemas[schemaid]){self.assetSchemas[schemaid]={cascade:cascade,type:schemaType,assetid:'new',stop_point:false,owner:true};}else if(this.schemas[schemaid]){title='<span ';if(this.assetSchemas[schemaid].owner!==true){title+='title="Inherit from #'+this.assetSchemas[schemaid].assetid+'"';}
title+='>'+this.schemas[schemaid]+'</span>';}
var contents='<div class="'+c+'-appIcon grant"></div>';contents+='<div class="'+c+'-cascIcon"></div>';contents+='<div class="'+c+'-title"></div>';contents+='<div class="'+c+'-appChild-text">Applies to Children</div>';contents+='<div class="'+c+'-appChild"></div>';contents+='<div class="'+c+'-spContainer">';contents+='<div class="'+c+'-spContainer-text">Override in use.</div>';contents+='<div class="'+c+'-spButton"></div>';contents+='<div class="'+c+'-spRemove"></div>';contents+='<div class="'+c+'-remove"></div>';contents+='</div>';dfx.setHtml(main,contents);var titleCont=dfx.getClass(c+'-title',main)[0];var cascIcon=dfx.getClass(c+'-cascIcon',main)[0];var cascadeText=dfx.getClass(c+'-appChild-text',main)[0];var cascade=dfx.getClass(c+'-appChild',main)[0];var currentSchema=this.assetSchemas[schemaid];if(title){dfx.setHtml(titleCont,title);}else{dfx.addClass(main,'newWorkflow');this.includeWidget('Select',function(){var select=self.createWidget(null,'Select');var items={0:'---'};for(var id in self.schemas){items[id]=self.schemas[id];}
select.addItems(items);select.setSelectedEventValueType('value');select.create(function(el){if(self.assetSchemas[schemaid].schemaid){select.setValue(self.assetSchemas[schemaid].schemaid,true);}
select.addItemSelectedEvent(function(selectedid){self.assetSchemas[schemaid].schemaid=selectedid;});titleCont.appendChild(el);});});}
var remove=dfx.getClass(c+'-remove',main)[0];dfx.addEvent(remove,'click',function(){dfx.toggleClass(remove,'removed');if(dfx.hasClass(remove,'removed')===true){self._addDeletedLayer(main);if(self.assetSchemas[schemaid].owner===true){self.assetSchemas[schemaid].removed=true;}}else{self._removeDeletedLayer(main);if(self.assetSchemas[schemaid].owner===true){self.assetSchemas[schemaid].removed=false;}}
self._updateCascadeIcon(cascIcon,schemaid);self.isModified=true;self.setModified(true);});if(this.readOnly===true||this.assetSchemas[schemaid].owner!==true){dfx.hideElement(remove);dfx.hideElement(cascadeText);dfx.hideElement(cascade);}else{dfx.showElement(remove);}
var check=dfx.getClass(c+'-appChild',main)[0];dfx.addEvent(check,'click',function(){dfx.toggleClass(check,'checked');if(dfx.hasClass(check,'checked')===true){self.assetSchemas[schemaid].cascade=true;}else{self.assetSchemas[schemaid].cascade=false;}
self._updateCascadeIcon(cascIcon,schemaid);self.isModified=true;self.setModified(true);});if(this.readOnly===true||this.assetSchemas[schemaid].owner!==true){dfx.hideElement(check);dfx.hideElement(cascadeText);dfx.hideElement(cascade);}else{if(this.assetSchemas[schemaid].stop_point!==true){dfx.showElement(check);dfx.showElement(cascadeText);dfx.showElement(cascade);}else{dfx.hideElement(check);dfx.hideElement(cascadeText);dfx.hideElement(cascade);}}
if(this.assetSchemas[schemaid].cascade===true){dfx.addClass(check,'checked');}
var appIcon=dfx.getClass(c+'-appIcon',main)[0];var spContainer=dfx.getClass(c+'-spContainer',main)[0];var spConText=dfx.getClass(c+'-spContainer-text',main)[0];var spButton=dfx.getClass(c+'-spButton',main)[0];var spRemove=dfx.getClass(c+'-spRemove',main)[0];this.includeWidget('Button',function(){var sPointButton=self.createWidget(self.id+'-addStopPoint','Button','ButtonWidgetType-black',false,'Override');sPointButton.create(function(el){spButton.appendChild(el);});sPointButton.addClickEvent(function(){if(self._toggleStopPoint(spButton,spRemove)===true){self.assetSchemas[schemaid].stop_point=true;self.assetSchemas[schemaid].removed=false;dfx.addClass(spContainer,'spShow');dfx.showElement(spConText);}else{self.assetSchemas[schemaid].stop_point=false;self.assetSchemas[schemaid].removed=true;dfx.removeClass(spContainer,'spShow');dfx.hideElement(spConText);}
self._updateApplyIcon(appIcon,schemaid);self._updateCascadeIcon(cascIcon,schemaid);self.isModified=true;self.setModified(true);});sPointButton.setReadOnly(self.readOnly);});dfx.addEvent(spRemove,'click',function(){if(self._toggleStopPoint(spButton,spRemove)===true){self.assetSchemas[schemaid].stop_point=true;self.assetSchemas[schemaid].removed=false;dfx.addClass(spContainer,'spShow');dfx.showElement(spConText);}else{self.assetSchemas[schemaid].stop_point=false;self.assetSchemas[schemaid].cascade=true;self.assetSchemas[schemaid].removed=true;dfx.removeClass(spContainer,'spShow');dfx.hideElement(spConText);}
self._updateApplyIcon(appIcon,schemaid);self._updateCascadeIcon(cascIcon,schemaid);self.isModified=true;self.setModified(true);});if(currentSchema.owner!==true){this._showStopPoint(c,main,currentSchema.stop_point);}else{this._hideStopPoint(c,main,currentSchema.stop_point);}
this._updateApplyIcon(appIcon,schemaid);this._updateCascadeIcon(cascIcon,schemaid);if(this._listContainers[schemaType]){this._listContainers[schemaType].appendChild(main);}},_updateApplyIcon:function(icon,schemaid)
{var currentSchema=this.assetSchemas[schemaid];if(currentSchema.stop_point===true){dfx.addClass(icon,'deny');dfx.removeClass(icon,'grant');}else{dfx.addClass(icon,'grant');dfx.removeClass(icon,'deny');}},_updateCascadeIcon:function(icon,schemaid)
{var schema=this.assetSchemas[schemaid];var inherited=false;var cascade=schema.cascade;var stopPoint=schema.stop_point||false;if(schema.assetid!=='new'&&schema.owner===false){inherited=true;}
if(stopPoint===true){inherited=false;}
dfx.removeClass(icon,'checked');dfx.removeClass(icon,'stop');dfx.removeClass(icon,'inherit');dfx.removeClass(icon,'inherit-continue');dfx.removeClass(icon,'inherit-stop');dfx.removeClass(icon,'stop-continue');dfx.removeClass(icon,'stop-stop');if(inherited===true){dfx.addClass(icon,'inherit');}else{dfx.addClass(icon,'stop');}
if(cascade===true){dfx.addClass(icon,'checked');}
if(inherited===true){if(cascade===true){dfx.addClass(icon,'inherit-continue');}else{dfx.addClass(icon,'inherit-stop');}}else{if(cascade===true){dfx.addClass(icon,'stop-continue');}else{dfx.addClass(icon,'stop-stop');}}},_toggleStopPoint:function(button,remove)
{if(dfx.getStyle(remove,'display')==='none'){dfx.hideElement(button);dfx.showElement(remove);return true;}else{dfx.showElement(button);dfx.hideElement(remove);return false;}},_showStopPoint:function(c,main,showOverride)
{var spContainer=dfx.getClass(c+'-spContainer',main)[0];var spConText=dfx.getClass(c+'-spContainer-text',main)[0];var spButton=dfx.getClass(c+'-spButton',main)[0];var spRemove=dfx.getClass(c+'-spRemove',main)[0];showOverride=showOverride||false;if(showOverride===true){dfx.addClass(spContainer,'spShow');dfx.showElement(spConText);dfx.showElement(spRemove);dfx.hideElement(spButton);}else{dfx.removeClass(spContainer,'spShow');dfx.hideElement(spConText);dfx.hideElement(spRemove);dfx.showElement(spButton);}},_hideStopPoint:function(c,main,showOverride)
{var spContainer=dfx.getClass(c+'-spContainer',main)[0];var spConText=dfx.getClass(c+'-spContainer-text',main)[0];var spButton=dfx.getClass(c+'-spButton',main)[0];var spRemove=dfx.getClass(c+'-spRemove',main)[0];showOverride=showOverride||false;if(showOverride===true){dfx.addClass(spContainer,'spShow');dfx.showElement(spConText);dfx.hideElement(spRemove);dfx.hideElement(spButton);}else{dfx.removeClass(spContainer,'spShow');dfx.hideElement(spConText);dfx.hideElement(spRemove);dfx.hideElement(spButton);}},switchOnScreen:function()
{var self=this;if(this.readOnly===true){this.disableSaveButton();}else{this.setSaveButton(function(){self.saveScreenSettings();},function(){self.revertScreenSettings();});}},switchOffScreen:function(){},saveScreenSettings:function()
{this.displayDisabledDiv(true);var data=this.assetSchemas;var self=this;dfx.foreach(this.assetSchemas,function(schemaid){if(self._origAssetSchemas[schemaid]){if(parseInt(self._origAssetSchemas[schemaid].assetid)!==parseInt(self.assetid)){if(self._origAssetSchemas[schemaid].stop_point===self.assetSchemas[schemaid].stop_point&&self._origAssetSchemas[schemaid].cascade===self.assetSchemas[schemaid].cascade&&(dfx.isset(self.assetSchemas[schemaid].removed)===false||self.assetSchemas[schemaid].removed===true)){delete data[schemaid];}}}else{var newSchemaid=data[schemaid].schemaid;if(self._origAssetSchemas[newSchemaid]&&data[newSchemaid].removed!==true){delete data[schemaid];}}
return true;});var params={screen:this.id+'Widget',process:'save',data:dfx.jsonEncode(data),assetid:this.assetid};var self=this;this.parent.processScreen(params,function(data){if(data){self.init(data);}},true);this.switchOnScreen();},revertScreenSettings:function()
{this.init(this._origData);},_addDeletedLayer:function(parent,custClass)
{var c=this.getClass()+'-removedLayer';var el=document.createElement('div');dfx.addClass(el,c);if(custClass){dfx.addClass(el,custClass);}
parent.appendChild(el);return el;},_removeDeletedLayer:function(parent)
{dfx.remove(dfx.getClass(this.getClass()+'-removedLayer',parent));},getAutoSaveContents:function()
{var data=dfx.clone(this.assetSchemas);return data;},loadAutoSaveContents:function(content,callback)
{this.assetSchemas=content;this._createListContainers();}};dfx.inherits('WorkflowEditScreen','AbstractSettingsScreen');function FileAssetEditContentsWidgetType(id,assetid,extraAttrs,hasPerm)
{AssetAssetEditContentsWidgetType.call(this,id,assetid,extraAttrs,hasPerm);dfx.addClass(document.body,'FileAssetEditContentsWidgetType-body');this.assetid=assetid;this.widgetType='FileAssetEditContents';this.form=null;this.formWidget=null;this.currentMode=WidgetStore.get('EditingModeSwitcher').currentMode;this.progressBar=null;this.fileSubmit=false;this.progressBarElem=null;}
FileAssetEditContentsWidgetType.prototype={init:function()
{if(this.currentMode==='EditEditingMode'){var self=this;var widget=WidgetStore.get(this.id+'-uploadFileInput');this.formWidget=widget;var form=dfx.getId(this.id+'-uploadFileForm');this.form=form;if(dfx.isset(widget)===true){var qs='?widget='+this.widgetType+'WidgetType&action=updateFile&a='+this.assetid;form.setAttribute('action',Widget.EDIT_URL+qs);widget.setForm(form);}
this.includeWidget('ProgressBar',function(){self.progressBar=self.createWidget(self.id+'-pb','ProgressBar');self.progressBar.setNoDeleteBtn(true);self.progressBar.create(function(elem){self.progressBarElem=document.createElement('div');self.progressBarElem.appendChild(elem);dfx.addClass(self.progressBarElem,self.getClass()+'-progressBar');});self.progressBar.setReadOnly(self.readOnly);var fileInput=dfx.getId(self.id+'-uploadFileInput');var nameField=WidgetStore.get(self.id+'-name');if(fileInput){dfx.addEvent(fileInput,'change',function(){self.setModified(true);});}
if(nameField){nameField.setReadOnly(self.readOnly);nameField.addOnChangeEvent(function(){self.setModified(true);});}
dfx.foreach(self.extraAttrs,function(idx){var wdgt=WidgetStore.get(self.id+'-'+self.extraAttrs[idx]);if(wdgt){wdgt.setReadOnly(self.readOnly);(function(extraAttrWdgt){extraAttrWdgt.addOnChangeEvent(function(){self.setModified(true);});})(wdgt);}
return true;});self.setSaveButton(function(){self.save();},function(){var params={widget:'FileAssetEditContentsWidgetType',action:'getFileInfo',assetid:self.assetid,extraAttrs:dfx.jsonEncode(self.extraAttrs)};dfx.post(window.location.href,params,function(data){var fileInfo=dfx.jsonDecode(data);WidgetStore.get(self.id+'-name').setValue(fileInfo.name);dfx.foreach(self.extraAttrs,function(idx){WidgetStore.get(self.id+'-'+self.extraAttrs[idx]).setValue(fileInfo[self.extraAttrs[idx]]);return true;});self._refreshFileUploadInput();self.removeDisabledDiv();});});self.removeDisabledDiv();});}else{var button=WidgetStore.get(this.id+'_dl');this.addDownloadButtonClickEvent(button);}},setScreenLock:function()
{var self=this;var upload=dfx.getClass('FileAssetEditContentsWidgetType-uploadField')[0];if(upload){dfx.hideElement(upload);}
WidgetStore.get(this.id+'-name').disable();dfx.foreach(self.extraAttrs,function(idx){WidgetStore.get(self.id+'-'+self.extraAttrs[idx]).disable();return true;});this.displayAssetEditReadOnlyWarning(function(el){dfx.insertBefore(dfx.getClass('FileAssetEditContentsWidgetType-Wrapper')[0],el);},function(){self._forceEdit();});},_forceEdit:function()
{var self=this;var upload=dfx.getClass('FileAssetEditContentsWidgetType-uploadField')[0];if(upload){dfx.showElement(upload);}
var widgetName=this.id+'-name';WidgetStore.get(widgetName).enable();WidgetStore.get(widgetName).setReadOnly(false);dfx.foreach(self.extraAttrs,function(idx){var widgetName=self.id+'-'+self.extraAttrs[idx];WidgetStore.get(widgetName).enable();WidgetStore.get(widgetName).setReadOnly(false);return true;});},_refreshFileUploadInput:function()
{var self=this;var newUpload=document.createElement('input');newUpload.id=this.id+'-uploadFileInput';newUpload.type='file';newUpload.name='file';if(dfx.getId(this.id+'-uploadFileInput')!==null){dfx.remove(dfx.getId(this.id+'-uploadFileInput'));var uploadBox=dfx.getId(this.id+'-uploadBox');var uploadField=dfx.getClass('FileAssetEditContentsWidgetType-uploadField',uploadBox)[0];uploadField.appendChild(newUpload);dfx.addEvent(newUpload,'change',function(){self.setModified(true);});}
this.removeDisabledDiv();},save:function()
{var self=this;this.displayDisabledDiv(true);if(dfx.getId(this.id+'-uploadFileInput')===null||(dfx.getId(this.id+'-uploadFileInput')!==null&&dfx.getId(this.id+'-uploadFileInput').value.length===0)){this.form.submit();setTimeout(function(){self._refreshFileUploadInput();},1000);}else{dfx.getId('_disabledDiv').appendChild(this.progressBarElem);this.fileSubmit=true;this.progressBar.reset();this.progressBar.show();this.progressBar.updateProgress(0);this.progressBar.updateLabel('File upload in progress...');this.form.submit();var widget=this.formWidget;var completed=false;var pt=setInterval(function(){widget.checkProgress(function(progress){if(progress>=100){completed=true;self.progressBar.updateProgress(100,function(){self.progressBar.hide();var iframe=dfx.getId(self.id+'-uploadFileInput-iframe');var result=dfx.getHtml(dfx.getIframeDocument(iframe).body);var msg='Saved';if(result==='success'){self.progressBar.updateLabel(msg);self._showSaveSuccess();setTimeout(function(){self.fileSubmit=false;self._refreshFileUploadInput();dfx.remove(dfx.getId('__saveLayer'));self.removeDisabledDiv();dfx.remove(self.progressBarElem);},1000);}else{self._showSaveFailed({errors:['File upload failed.']},function(){self._refreshFileUploadInput();dfx.remove(dfx.getId('__saveLayer'));self.removeDisabledDiv();dfx.remove(self.progressBarElem);});}
clearTimeout(pt);});}else{if(completed===false){self.progressBar.updateProgress(Math.floor(progress));}}});},1000);}},addDownloadButtonClickEvent:function(button)
{if(button){var self=this;button.addClickEvent(function(){self.downloadFileVersion();});}},downloadFileVersion:function()
{window.location.href=this.url+'?widget='+this.widgetType+'WidgetType&action=dlf&a='+escape(this.assetid);}};dfx.inherits('FileAssetEditContents','AssetAssetEditContents');function FileConnectionAssetEditContentsWidgetType(id,assetid,extraAttrs)
{AssetAssetEditContentsWidgetType.call(this,id,assetid,extraAttrs,true);dfx.addClass(document.body,'FileConnectionAssetEditContentsWidgetType-body');this.assetid=assetid;this.widgetType='FileConnectionAssetEditContents';this.currentMode=WidgetStore.get('EditingModeSwitcher').currentMode;this.nameField=WidgetStore.get(this.id+'-name');this.pathField=WidgetStore.get(this.id+'-path');this.filterField=WidgetStore.get(this.id+'-filter');this.oriValues={};var self=this;this.includeWidget('Intervention',function(){});}
FileConnectionAssetEditContentsWidgetType.prototype={init:function()
{if(this.currentMode==='EditEditingMode'){var self=this;this.oriValues[this.id+'-name']=this.nameField.getValue();this.oriValues[this.id+'-path']=this.pathField.getValue();this.oriValues[this.id+'-filter']=this.filterField.getValue();this.addFieldsEvent();this.setSaveButton(function(){self.save();},function(){self.revert();});this.ready();}},addFieldsEvent:function()
{var self=this;this.nameField.addOnChangeEvent(function(){var currVal=self.nameField.getValue();if(currVal===self.oriValues[self.id+'-name']){self.disableSaveButton();}else{self.enableSaveButton();}});this.pathField.addOnChangeEvent(function(){var currVal=self.pathField.getValue();if(currVal===self.oriValues[self.id+'-path']){self.disableSaveButton();}else{self.enableSaveButton();}});this.filterField.addItemSelectedEvent(function(){var currVal=self.filterField.getValue();if(currVal===self.oriValues[self.id+'-filter']){self.disableSaveButton();}else{self.enableSaveButton();}});},save:function()
{var self=this;var params={widget:'FileConnectionAssetEditContentsWidgetType',action:'processWidget',assetid:this.assetid,op:'saveAsset',name:this.nameField.getValue(),path:this.pathField.getValue(),filter:this.filterField.getValue()};this.displayDisabledDiv(true);dfx.post(window.location.href,params,function(data){self.removeDisabledDiv();if(data!=='success'){var iw=self.createWidget('inter','Intervention',function(){},function(){});iw.setCancelText(null);iw.setConfirmText('Close');iw.create(function(){iw.setSize(null,'61px');iw.setMessage(data);iw.show(self.pathField.input,'fixed');});}});},revert:function()
{this.displayDisabledDiv(true);var params={attributes:['name','path','filter'],type:false,typeIcon:false,linking:[],urls:false};var self=this;AssetManager.getAsset(this.assetid,function(asset){self.nameField.setValue(asset.name);self.pathField.setValue(asset.attributes.path);self.filterField.setValue(asset.attributes.filter,true);self.disableSaveButton();self.removeDisabledDiv();},false,params);},setScreenLock:function()
{this.nameField.disable();this.pathField.disable();this.filterField.disable();var self=this;this.displayAssetEditReadOnlyWarning(function(el){dfx.insertBefore(dfx.getClass('AssetAssetEditContentsWidgetType-outerBox')[0],el);},function(){self._forceEdit();});},_forceEdit:function()
{this.nameField.enable();this.pathField.enable();this.filterField.enable();}};dfx.inherits('FileConnectionAssetEditContents','AssetAssetEditContents');function LdapConnectionAssetEditContentsWidgetType(id,assetid,extraAttrs)
{AssetAssetEditContentsWidgetType.call(this,id,assetid,extraAttrs);dfx.addClass(document.body,'LdapConnectionAssetEditContentsWidgetType-body');this.assetid=assetid;this.widgetType='LdapConnectionAssetEditContents';this.currentMode=WidgetStore.get('EditingModeSwitcher').currentMode;this.oriValues={};this.widgetids=['name','hostname','port','basedn','binddn','password','authDN','authFilter','usernameMapTo','nameMapTo','firstNameMapTo','lastNameMapTo','emailMapTo','groupName','groupMembership','groupMember','uniqueUserAttr','uniqueUserGroupAttr'];}
LdapConnectionAssetEditContentsWidgetType.prototype={init:function()
{if(this.currentMode==='EditEditingMode'){var self=this;var outerBox=dfx.getClass('AssetAssetEditContentsWidgetType-outerBox',dfx.getId('EditingAsset'))[0];this.addFieldsEvent();dfx.foreach(this.widgetids,function(idx){var widgetid=self.id+'-'+self.widgetids[idx];var val=WidgetStore.get(widgetid).getValue();self.oriValues[widgetid]=val;return true;});this.setSaveButton(function(){self.save();},function(){self.revert();});this.ready();}},addFieldsEvent:function()
{var self=this;dfx.foreach(this.widgetids,function(idx){var widgetid=self.id+'-'+self.widgetids[idx];var widget=WidgetStore.get(widgetid);if(widgetid===(self.id+'-password')){widget.addPasswordTypedEvents(function(){var currVal=widget.getValue();if(currVal!==self.oriValues[widgetid]){self.enableSaveButton();}else{self.disableSaveButton();}});}else{widget.addOnChangeEvent(function(){var currVal=widget.getValue();if(currVal!==self.oriValues[widgetid]){self.enableSaveButton();}else{self.disableSaveButton();}});}
return true;});},save:function()
{var self=this;var params={widget:'LdapConnectionAssetEditContentsWidgetType',action:'processWidget',assetid:this.assetid,op:'saveAsset'};dfx.foreach(this.widgetids,function(idx){var widgetid=self.id+'-'+self.widgetids[idx];var val=WidgetStore.get(widgetid).getValue();params[self.widgetids[idx]]=val;return true;});this.displayDisabledDiv(true);dfx.post(window.location.href,params,function(data){WidgetStore.get(self.id+'-password').clearValue();self.removeDisabledDiv();});},revert:function()
{var self=this;var params={widget:'LdapConnectionAssetEditContentsWidgetType',action:'processWidget',assetid:this.assetid,op:'revertAsset'};this.displayDisabledDiv(true);dfx.post(window.location.href,params,function(data){dfx.foreach(this.widgetids,function(idx){var widgetid=self.id+'-'+self.widgetids[idx];WidgetStore.set(widgetid).setValue(data[self.widgetids[idx]]);return true;});self.disableSaveButton();self.removeDisabledDiv();});},setScreenLock:function()
{dfx.foreach(this.widgetids,function(idx){var widgetid=self.id+'-'+self.widgetids[idx];var widget=WidgetStore.set(widgetid);widget.disable();return true;});var self=this;this.displayAssetEditReadOnlyWarning(function(el){dfx.insertBefore(dfx.getClass('AssetAssetEditContentsWidgetType-outerBox')[0],el);},function(){self._forceEdit();});},_forceEdit:function()
{dfx.foreach(this.widgetids,function(idx){var widgetid=self.id+'-'+self.widgetids[idx];var widget=WidgetStore.set(widgetid);widget.enable();return true;});}};dfx.inherits('LdapConnectionAssetEditContents','AssetAssetEditContents');function MySourceMatrixConnectionAssetEditContentsWidgetType(id,assetid,extraAttrs)
{AssetAssetEditContentsWidgetType.call(this,id,assetid,extraAttrs);dfx.addClass(document.body,'MySourceMatrixConnectionAssetEditContentsWidgetType-body');this.assetid=assetid;this.widgetType='MySourceMatrixConnectionAssetEditContents';this.currentMode=WidgetStore.get('EditingModeSwitcher').currentMode;this.nameField=WidgetStore.get(this.id+'-name');this.soapUrl=WidgetStore.get(this.id+'-soap_url');this.rootAssetId=WidgetStore.get(this.id+'-root_assetid');this.usernameField=WidgetStore.get(this.id+'-username');this.passwordField=WidgetStore.get(this.id+'-password');}
MySourceMatrixConnectionAssetEditContentsWidgetType.prototype={init:function()
{if(this.currentMode==='EditEditingMode'){var self=this;this.addFieldsEvent();this.setSaveButton(function(){self.save();},function(){self.revert();});this.ready();}},addFieldsEvent:function()
{var self=this;this.nameField.addOnChangeEvent(function(){self.enableSaveButton();});this.soapUrl.addOnChangeEvent(function(){self.enableSaveButton();});this.rootAssetId.addOnChangeEvent(function(){self.enableSaveButton();});this.usernameField.addOnChangeEvent(function(){self.enableSaveButton();});this.passwordField.addPasswordTypedEvents(function(){self.enableSaveButton();});},save:function()
{var self=this;var params={widget:'MySourceMatrixConnectionAssetEditContentsWidgetType',action:'processWidget',assetid:this.assetid,op:'saveAsset',name:this.nameField.getValue(),soap_url:this.soapUrl.getValue(),root_assetid:this.rootAssetId.getValue(),username:this.usernameField.getValue(),password:this.passwordField.getValue()};this.displayDisabledDiv(true);dfx.post(window.location.href,params,function(data){if(data==='success'){self._showSaveSuccess();self.removeDisabledDiv(null,true);var modeSwitcher=WidgetStore.get('EditingModeSwitcher');modeSwitcher.switchMode(dfx.getId('EditingModeSwitcher-EditEditingMode'),null,null,null,true);}else{self._showSaveFailed({errors:['File to save.']},function(){dfx.remove(dfx.getId('__saveLayer'));self.removeDisabledDiv();self.setModified(true);});}});},revert:function()
{this.displayDisabledDiv(true);var params={attributes:['name','soap_url','root_assetid'],type:false,typeIcon:false,linking:[],urls:false};var self=this;AssetManager.getAsset(this.assetid,function(asset){self.nameField.setValue(asset.name);self.soapUrl.setValue(asset.attributes.soap_url);self.rootAssetId.setValue(asset.attributes.root_assetid,true);self.disableSaveButton();self.removeDisabledDiv();},false,params);},setScreenLock:function()
{this.nameField.disable();this.soapUrl.disable();this.rootAssetId.disable();var self=this;this.displayAssetEditReadOnlyWarning(function(el){dfx.insertBefore(dfx.getClass('AssetAssetEditContentsWidgetType-outerBox')[0],el);},function(){self._forceEdit();});},_forceEdit:function()
{this.nameField.enable();this.soapUrl.enable();this.rootAssetId.enable();}};dfx.inherits('MySourceMatrixConnectionAssetEditContents','AssetAssetEditContents');function RedirectAssetEditContentsWidgetType(id,assetid,extraAttrs)
{AssetAssetEditContentsWidgetType.call(this,id,assetid,extraAttrs);dfx.addClass(document.body,'RedirectAssetEditContentsWidgetType-body');this.assetid=assetid;this.widgetType='RedirectAssetEditContents';this.currentMode=WidgetStore.get('EditingModeSwitcher').currentMode;this.nameField=WidgetStore.get(this.id+'-name');this.urlField=WidgetStore.get(this.id+'-url');this.permField=WidgetStore.get(this.id+'-perm');this.oriValues={};}
RedirectAssetEditContentsWidgetType.prototype={init:function()
{if(this.currentMode==='EditEditingMode'){var self=this;this.oriValues[this.id+'-name']=this.nameField.getValue();this.oriValues[this.id+'-url']=this.urlField.getValue();this.oriValues[this.id+'-perm']=this.permField.getValue();this.addFieldsEvent();this.setSaveButton(function(){self.save();},function(){self.revert();});this.ready();}},addFieldsEvent:function()
{var self=this;this.nameField.addOnChangeEvent(function(){var currVal=self.nameField.getValue();if(currVal===self.oriValues[self.id+'-name']){self.disableSaveButton();}else{self.enableSaveButton();}});this.urlField.addOnChangeEvent(function(){var currVal=self.urlField.getValue();if(currVal===self.oriValues[self.id+'-url']){self.disableSaveButton();}else{self.enableSaveButton();}});this.permField.addOnChangeEvent(function(){var currVal=self.permField.getValue();if(currVal===self.oriValues[self.id+'-perm']){self.disableSaveButton();}else{self.enableSaveButton();}});this.permField.addToggleEvent(function(){var currVal=self.permField.getValue();if(currVal===self.oriValues[self.id+'-perm']){self.disableSaveButton();}else{self.enableSaveButton();}});},save:function()
{var self=this;var params={widget:'RedirectAssetEditContentsWidgetType',action:'processWidget',assetid:this.assetid,op:'saveAsset',name:this.nameField.getValue(),url:this.urlField.getValue(),perm:this.permField.getValue()};this.displayDisabledDiv(true);dfx.post(window.location.href,params,function(data){self.init();self._showSaveSuccess();self.removeDisabledDiv(null,true);});},revert:function()
{this.displayDisabledDiv(true);var params={attributes:['name','redirect_url'],configuration:['permanent'],type:false,typeIcon:false,linking:[],urls:false};var self=this;AssetManager.getAsset(this.assetid,function(asset){self.nameField.setValue(asset.name);self.urlField.setValue(asset.attributes.redirect_url);self.permField.setValue(asset.configuration.permanent);self.disableSaveButton();self.removeDisabledDiv();},false,params);},setScreenLock:function()
{this.nameField.disable();this.urlField.disable();this.permField.disable();var self=this;this.displayAssetEditReadOnlyWarning(function(el){dfx.insertBefore(dfx.getClass('AssetAssetEditContentsWidgetType-outerBox')[0],el);},function(){self._forceEdit();});},_forceEdit:function()
{this.nameField.enable();this.urlField.enable();this.permField.enable();}};dfx.inherits('RedirectAssetEditContents','AssetAssetEditContents');function UserGroupAssetEditContentsWidgetType(id,assetid,assetInfo,readOnly)
{this.assetInfo=assetInfo;this.assetType='userGroup';this.assetid=assetid;this.modeType=WidgetStore.get('EditingModeSwitcher').currentMode;AssetAssetEditContentsWidgetType.call(this,id,assetid);dfx.addClass(document.body,'UserGroupAssetEditContentsWidgetType-body');this.readOnly=readOnly||false;}
UserGroupAssetEditContentsWidgetType.prototype={init:function()
{var self=this;this.createBox(function(){if(self.modeType==='EditEditingMode'){self.setSaveButton(function(){self.save();},function(){self.revert();});self.setReadOnly.call(self,self.readOnly);self.removeDisabledDiv();}});},setScreenLock:function()
{var self=this;this.displayAssetEditReadOnlyWarning(function(el){dfx.insertBefore(dfx.getId(self.id),el);},function(){self.forceEdit();});},createBox:function(callback)
{var c='UserGroupAssetEditContentsWidgetType';var container=document.createElement('div');dfx.setStyle(container,'padding','10px');var self=this;var top=document.createElement('div');var content='<div class="'+c+'-top-left userGroup">';content+='<div class="'+c+'-top-left-row name"> </div>';content+='<div class="'+c+'-top-left-row email"> </div>';content+='</div>';dfx.addClass(top,c+'-top');dfx.setHtml(top,content);container.appendChild(top);var name=dfx.getClass('name',top)[0];var email=dfx.getClass('email',top)[0];if(this.modeType==='PreviewEditingMode'){dfx.setHtml(name,this.assetInfo.name);dfx.setHtml(email,this.assetInfo.email);if(callback){var elem=dfx.getId(self.id);elem.appendChild(container);callback.call(self);}}else if(this.modeType==='EditEditingMode'){this.includeWidgets(['TextField'],function(){var titleBox=self.createWidget(self.id+'-name','TextField');var emailBox=self.createWidget(self.id+'-email','TextField');titleBox.setValue(self.assetInfo.name);emailBox.setValue(self.assetInfo.email);titleBox.create(function(nel){emailBox.create(function(eel){var nLabel=document.createElement('label');dfx.addClass(nLabel,c+'-name-label');dfx.setHtml(nLabel,'Name');nLabel.setAttribute('for',self.id+'-name');var eLabel=document.createElement('label');dfx.addClass(eLabel,c+'-email-label');dfx.setHtml(eLabel,'Email');eLabel.setAttribute('for',self.id+'-name');name.appendChild(nLabel);name.appendChild(nel);email.appendChild(eLabel);email.appendChild(eel);titleBox.addOnChangeEvent(function(){if(titleBox.getValue()!==self.assetInfo.name){self.setModified(true);}else{self.setModified(false);}});emailBox.addOnChangeEvent(function(){if(emailBox.getValue()!==self.assetInfo.email){self.setModified(true);}else{self.setModified(false);}});if(callback){var elem=dfx.getId(self.id);elem.appendChild(container);callback.call(self);}});});});}},save:function()
{var params={widget:'UserGroupAssetEditContentsWidgetType',action:'save',assetid:this.assetid,name:WidgetStore.get(this.id+'-name').getValue(),email:WidgetStore.get(this.id+'-email').getValue()};var self=this;this.displayDisabledDiv(true);this.request(params,function(data){self.assetInfo.name=params.name;self.removeDisabledDiv();});},revert:function()
{var titleBox=WidgetStore.get(this.id+'-name');titleBox.setValue(this.assetInfo.name);var emailBox=WidgetStore.get(this.id+'-email');emailBox.setValue(this.assetInfo.email);this.removeDisabledDiv();}};dfx.inherits('UserGroupAssetEditContents','AssetAssetEditContents');function AccountManagerEditWidgetType(id,assetid,settings,formats,config,groups)
{AssetEditWidgetType.call(this,id,assetid);this.widgetType='AccountManagerEdit';this.settings=settings;this.config=config;this.unsavedConfig=dfx.clone(this.config);this.groups=groups;this.deletedGroups={};this.editor=null;this.formats=formats;this.initFormats=formats;this.currentFormat='not_logged_in';this.controls=WidgetStore.get(this.id+'-controls');}
AccountManagerEditWidgetType.prototype={init:function(data)
{var self=this;this.printCreateLocs();this.setModified(false);var buttonid=this.id+'-section:create_loc:-Button-AddNew';var createLocButton=WidgetStore.get(buttonid);if(dfx.isset(createLocButton)===true){createLocButton.addClickEvent(function(){self.setModified(true);for(var uid in self.groups){if(self.unsavedConfig.createLoc.find(uid)===-1){var len=self.unsavedConfig.createLoc.length;var list=WidgetStore.get(self.id+'-createLoc-list');self.unsavedConfig.createLoc.push(uid);self.createUserGroupSelect(uid,len,list);break;}}});}
this.controls.createState.addToggleEvent(function(){if(self.config.createState!==this.getValue()){self.setModified(true);}});this.controls.verifyEmail.addToggleEvent(function(){if(self.config.verifyEmail!==this.getValue()){self.setModified(true);}});this._setupWYSIWYG();this.setSaveButton(function(){self.saveSettings();},function(){self.revert();});if(self.readOnly===true){this.controls.createState.setReadOnly(true);this.controls.verifyEmail.setReadOnly(true);createLocButton.disable();}},revert:function()
{this.displayDisabledDiv(true);this.deletedGroups={};this.unsavedConfig=dfx.clone(this.config);this.refreshGroupList();var createState=this.controls.createState;var verifyEmail=this.controls.verifyEmail;createState.setValue(this.config.createState);verifyEmail.setValue(this.config.verifyEmail);this.formats=dfx.clone(this.initFormats);this.editor.setContents(this.formats[this.currentFormat]);var self=this;setTimeout(function(){self.refreshAccountManager();self.removeDisabledDiv();},500);},refreshAccountManager:function()
{var self=this;this.setModified(false);this.request({action:'getAssetContent'},function(data){var am=dfx.getId('accountManager-'+self.assetid);if(dfx.isset(am)===true){dfx.setHtml(am,data);}});},printCreateLocs:function()
{var list=WidgetStore.get(this.id+'-createLoc-list');var len=this.unsavedConfig.createLoc.length;for(var i=0;i<len;i++){this.createUserGroupSelect(this.unsavedConfig.createLoc[i],i,list);}},createUserGroupSelect:function(uid,i,parent)
{var groupsCount=0;for(var key in this.groups){groupsCount++;}
if(this.unsavedConfig.createLoc.length>=groupsCount){var buttonid=this.id+'-section:create_loc:-Button-AddNew';var createLocButton=WidgetStore.get(buttonid);createLocButton.disable();}
var self=this;this.includeWidget('UserGroupSelect',function(){var select=self.createWidget(self.id+'-createLoc-'+i,'UserGroupSelect',self.groups,[uid]);select.create(function(el){dfx.addClass(el,'UserGroupSelect');if(self.readOnly===false){var del=document.createElement('span');dfx.addClass(del,'delete');dfx.addEvent(del,'click',function(){self.deleteGroup(i,uid);});parent.addItem(i,[el,del]);}else{parent.addItem(i,[el]);select.setValue(uid,true);select.setReadOnly(true);}
select.addItemSelectedEvent(function(){self.setModified(true);self.unsavedConfig.createLoc[i]=this.getValue();});});});},deleteGroup:function(index,uid)
{var list=WidgetStore.get(this.id+'-createLoc-list');var item=list.getItemElement(index);var select=WidgetStore.get(this.id+'-createLoc-'+index);if(this.deletedGroups.hasOwnProperty(uid)===true){dfx.removeClass(item,'recover');delete this.deletedGroups[uid];select.enable();}else{var count=0;for(var id in this.deletedGroups){count++;}
var len=(this.unsavedConfig.createLoc.length-1);if(len===count){var msg='You cannot delete this create location. At least one create location needs to be selected in order for the account manager to work.';this._showIntervention(uid,item,msg,null,'OK',90,320);return;}
select.disable();dfx.addClass(item,'recover');this.deletedGroups[uid]=1;}
this.setModified(true);},_showIntervention:function(id,target,msg,ok,cancel,height,width)
{var self=this;this._hideIntervention(id);this.includeWidget('Intervention',function(){var pop=self.createWidget('amIntervention-'+id,'Intervention');pop.confirmText=ok;pop.cancelText=cancel;pop.create(function(){pop.setSize(width,height);pop.setMessage(msg);pop.show(target);});});},_hideIntervention:function(id)
{var ok=dfx.getId('amIntervention-'+id+'-cancelButton');if(ok){dfx.trigger(ok,'click');}},saveFormat:function()
{var editElem=dfx.getId(this.id+'-formContentsContainer');if(editElem){if(this.readOnly===false){this.editor.cleanDOM();this.formats[this.currentFormat]=dfx.fixHtml(this.editor.getContents());}}
var self=this;var params={action:'saveFormat',not_logged_in:this.formats.not_logged_in,logged_in:this.formats.logged_in,created:this.formats.created,validated:this.formats.validated};this.request(params,function(){self.initFormats=dfx.clone(self.formats);self.refreshAccountManager();self.removeDisabledDiv();});},saveSettings:function()
{var self=this;var createState=this.controls.createState.getValue();var verifyEmail=this.controls.verifyEmail.getValue();var params={action:'saveDetails',createLoc:dfx.jsonEncode(this.unsavedConfig.createLoc),deletedLoc:dfx.jsonEncode(this.deletedGroups),createState:dfx.jsonEncode(createState),verifyEmail:dfx.jsonEncode(verifyEmail)};this.displayDisabledDiv(true);this.request(params,function(){self.refreshGroupList();self.config=dfx.clone(self.unsavedConfig);self.config.createState=createState;self.config.verifyEmail=verifyEmail;self.deletedGroups={};self.saveFormat();self.setModified(false);});},refreshGroupList:function()
{var list=WidgetStore.get(this.id+'-createLoc-list');list.clearItems();for(var uid in this.deletedGroups){var index=this.unsavedConfig.createLoc.find(uid);if(index>=0){this.unsavedConfig.createLoc.splice(index,1);}}
this.deletedGroups={};this.printCreateLocs();var groupsCount=0;for(var key in this.groups){groupsCount++;}
if(this.unsavedConfig.createLoc.length<groupsCount){var buttonid=this.id+'-section:create_loc:-Button-AddNew';var createLocButton=WidgetStore.get(buttonid);createLocButton.enable();}},_setupWYSIWYG:function()
{var self=this;var table=WidgetStore.get(this.id+'-formatsTable');var editElem=dfx.getId(this.id+'-formContentsContainer');if(table){table.addClickEvent(this.id,function(rowid,colidx){var type=rowid.split('-');type=type[(type.length-1)];var row=dfx.getId(rowid);if(dfx.isset(row)===true){dfx.addClass(row,'editing');if(self.currentFormat!==type){var currentRow=dfx.getId(this.id+'-row-'+self.currentFormat);if(dfx.isset(currentRow)===true){dfx.removeClass(currentRow,'editing');}}}
if(type){if(self.currentFormat!==type){if(self.readOnly===false){self.editor.cleanDOM();self.formats[self.currentFormat]=dfx.fixHtml(self.editor.getContents());}
dfx.setHtml(editElem,self.formats[type]);self.currentFormat=type;}}});}
var activeRow=dfx.getId(table.id+'-row-'+this.currentFormat);if(activeRow){dfx.addClass(activeRow,'editing');}
this.includeWidget('WYSIWYG',function(){self.editor=self.createWidget(self.id+'-formatEditor','WYSIWYG');var elem=dfx.getId(self.id+'-formContentsContainer');self.editor.setViperSetting('disableOnBlur',false);self.editor.setPluginSettings('ViperToolbarPlugin',{parent:elem.parentNode});self.editor.setContentChangedCallback(function(){self.setModified(true);});dfx.setStyle(elem.parentNode,'position','relative');self.editor.load(function(){self.editor.setElement(elem);if(self.readOnly===true){self.editor.disable();}});dfx.addEvent(dfx.getId(self.id+'-formats'),'click',function(e){if(self.readOnly===true){self.editor.disable();}});});if(self.readOnly===true){var previewPane=dfx.getId(this.id+'-formatRight-previewPane');dfx.hideElement(previewPane);}else{var update=WidgetStore.get(this.id+'-formatRight-previewPane-update');if(dfx.isset(update)===true){update.addClickEvent(function(){self.previewFormat(dfx.fixHtml(self.editor.getContents()));});}
var revert=WidgetStore.get(this.id+'-formatRight-previewPane-revert');if(dfx.isset(revert)===true){revert.addClickEvent(function(){self.editor.setContents(self.initFormats[self.currentFormat]);self.previewFormat(self.initFormats[self.currentFormat]);});}}},previewFormat:function(format)
{var self=this;var params={action:'previewFormat',format:format};this.request(params,function(data){var am=dfx.getId('accountManager-'+self.assetid);if(dfx.isset(am)===true){dfx.setHtml(am,data);}});}};dfx.inherits('AccountManagerEdit','AssetEdit');function AssetListingEditWidgetType(id,assetid,settings)
{AssetEditWidgetType.call(this,id,assetid);this.widgetType='AssetListingEdit';this.assetTypes={};this.formats={};this.noFormatBox={};this.currentFormat={formatType:'assetTypes',name:'default'};this.removedAssetTypes=[];this.removedFormats={};if(dfx.isEmpty(settings)===true){settings={};}
this.settings=settings;this.editableNodes=[];this.requestTimer=null;this.originalData=null;var self=this;dfx.foreach(settings,function(i){self.children.push(id+'-settings:'+settings[i]);});}
AssetListingEditWidgetType.prototype={init:function(data,assetid,editables)
{if(data.assetTypes){this.assetTypes=data.assetTypes;}
this.originalData=dfx.clone(data);if(data.formats){this.formats=data.formats;if(this.formats.positions&&this.formats.positions.length===0){this.formats.positions={};}}
var self=this;this.setSaveButton(function(){if(self.readOnly!==true){self.save(function(data){if(data&&!data.errors){setTimeout(function(){dfx.trigger(dfx.getId('EditEditingModeWidgetType-assetViewBtn'),'click');},self.saveDelay);}});}},function(){dfx.trigger(dfx.getId('EditEditingModeWidgetType-assetViewBtn'),'click');});var spanln=editables.length;for(var i=0;i<spanln;i++){if(editables[i].getAttribute('assetid')===this.assetid){this.editableNodes.push(editables[i]);}}
this._setupGeneric();this._setupWYSIWYG();this._setupStaticSources();this._setupFromatsTab();this._setupAssetTypeFormatsTab();this._setupPageLayoutsFormatsTab();this._setupPositionsFormatsTab();this._setupDetailsAssetTypeTab();WidgetStore.addDataChangeListener('AssetListingAPEStateListener','bugState',function(data){if(data.state===1){self.togglePanel(true);}else if(data.state===0){self.togglePanel(false);}});},togglePanel:function(show)
{var typeFilterPanel=dfx.getId(this.id+'-filters-assetTypesBottom');var positionPanel=dfx.getId(this.id+'-formats-positions-bottom');var previewPane=dfx.getId(this.id+'-formats-editor-previewPane');if(show===true&&this.readOnly!==true){dfx.showElement(typeFilterPanel);dfx.showElement(positionPanel);dfx.showElement(previewPane);}else{dfx.hideElement(typeFilterPanel);dfx.hideElement(positionPanel);dfx.hideElement(previewPane);}},_setupFromatsTab:function()
{var id=this.id+'-formatsTab-grid-leftColumn';var tabWidget=WidgetStore.get(id);if(tabWidget){var self=this;tabWidget.addOnChangeHandler(function(newIndex,prevIndex){dfx.setStyle(dfx.getId(self.id+'-selectFormat'),'display','block');});}},_setupGeneric:function()
{var self=this;var previewButton=WidgetStore.get(this.id+'-formats-editor-previewPane-udpate');if(previewButton){this.children.push(previewButton.id);previewButton.setReadOnly(this.readOnly);previewButton.addClickEvent(function(){self.updatePageContents();});}
var revertButton=WidgetStore.get(this.id+'-formats-editor-previewPane-revert');if(revertButton){this.children.push(revertButton.id);revertButton.setReadOnly(this.readOnly);revertButton.addClickEvent(function(){var reverValue='';if(self.originalData.formats[self.currentFormat.formatType]){if(self.originalData.formats[self.currentFormat.formatType][self.currentFormat.name]){reverValue=self.originalData.formats[self.currentFormat.formatType][self.currentFormat.name];}}
self.setFormatValue(self.currentFormat.formatType,self.currentFormat.name,reverValue,false);self.showFormat(self.currentFormat.formatType,self.currentFormat.name,true);});}
var idp=this.id+'-settings:';var directLinks=WidgetStore.get(idp+'directLinks');directLinks.addToggleEvent(function(on){self.updatePageContents(500);self.setModified(true);});var enablePagination=WidgetStore.get(idp+'enablePagination');enablePagination.addToggleEvent(function(on){self.updatePageContents(500);self.setModified(true);});var listType=WidgetStore.get(idp+'listType');listType.addItemSelectedEvent(function(){self.updatePageContents(500);self.setModified(true);});var sortDirection=WidgetStore.get(idp+'sortDirection');sortDirection.addItemSelectedEvent(function(){self.updatePageContents(500);self.setModified(true);});var widgetsToUpdate=['assetsPerPage','nextPageLinkText','prevPageLinkText','maxDepth','minDepth','sortBy'];var wln=widgetsToUpdate.length;for(var i=0;i<wln;i++){this._listControlAddOnChangeEvent(widgetsToUpdate[i]);}},_listControlAddOnChangeEvent:function(settingid)
{var self=this;var widget=WidgetStore.get(this.id+'-settings:'+settingid);if(widget){widget.addOnChangeEvent(function(){self.updatePageContents(500);self.setModified(true);});}},_setupStaticSources:function()
{var addButton=WidgetStore.get(this.id+'-section:static_sources:-Button-AddNew');if(addButton){addButton.setReadOnly(this.readOnly);var staticList=WidgetStore.get(this.id+'-settings:rootNodes');var self=this;var id=this.id;var assetPicker=WidgetStore.get('EditingAssetPicker');assetPicker.setScreen(id);assetPicker.addProjectFolderWhiteList(id,'Documents');assetPicker.addProjectFolderWhiteList(id,'Images');assetPicker.addProjectFolderWhiteList(id,'Movies');assetPicker.setUniqueSelect(false);assetPicker.addAssetsSelectedAction(function(selectedAssets){var sln=selectedAssets.length;for(var i=0;i<sln;i++){staticList.addAsset(selectedAssets[i]);}
self.updatePageContents(500);});staticList.addItemEnabledEvent(function(){self.updatePageContents(500);});staticList.addItemDisabledEvent(function(){self.updatePageContents(500);});addButton.addClickEvent(function(){addButton.disable();self.displayDisabledDiv(true);assetPicker.init(id,function(){assetPicker.dialog.open();});});assetPicker.addCloseAction(function(){addButton.enable();});}
var dynamicRootNode=WidgetStore.get(this.id+'-settings:dynamicRootNodeCurrentAsset');dynamicRootNode.addToggleEvent(function(on){self.updatePageContents(500);self.setModified(true);});},_setupDetailsAssetTypeTab:function()
{var select=WidgetStore.get(this.id+'-filters-assetTypes-select');var button=WidgetStore.get(this.id+'-filters-assetTypes-addNew');var filterTable=WidgetStore.get(this.id+'-filters-assetTypesTable');var formatsTable=WidgetStore.get(this.id+'-formats-assetTypesTable');if(button&&select&&filterTable&&formatsTable){var self=this;select.setReadOnly(this.readOnly);button.setReadOnly(this.readOnly);filterTable.setReadOnly(this.readOnly);formatsTable.setReadOnly(this.readOnly);var formatsTableDelCols=dfx.getClass('TableWidgetType-cell-assetListingTypeFormats-col-delete',formatsTable.domElem);var filterTableDelCols=dfx.getClass('TableWidgetType-cell-filters-assetTypes-col-delete',filterTable.domElem);if(this.readOnly===true){dfx.setStyle(formatsTableDelCols,'display','none');dfx.setStyle(filterTableDelCols,'display','none');}
var inheritWidgetEls=dfx.getClass('RadioButtonWidgetType',filterTable.domElem);dfx.foreach(inheritWidgetEls,function(i){var radioBtn=WidgetStore.get(inheritWidgetEls[i].id);if(radioBtn){radioBtn.setReadOnly(self.readOnly);}});filterTable.addClickEvent(this.id,function(rowid,colidx,elem){var type=rowid.split('-');type=type[(type.length-1)];if(type){if(self.readOnly===true){return;}
if(colidx===3||dfx.hasClass(elem,'delete')===true){self.toggleAssetType(type);}else if(colidx===2||dfx.hasClass(elem,'RadioButtonWidgetType')===true){self.toggleInheritance(type);}}});button.addClickEvent(function(){var val=select.getValue();if(val&&val!=='0'&&!self.assetTypes[val]){var colClass=['filters-assetTypes-col-icon','filters-assetTypes-col-name','filters-assetTypes-col-inherit','filters-assetTypes-col-delete',];var tcolClass=['assetListingTypeFormats-col-icon','assetListingTypeFormats-col-name','assetListingTypeFormats-col-delete'];var params={action:'getTypeInfo',typeid:val};self.request(params,function(data){var typeInfo=dfx.jsonDecode(data);var typeIcon='<div style="background-image: url('+typeInfo.icon+');"></div>';var deleteIcon='<div class="delete"></div>';self.includeWidget('RadioButton',function(){var iid=self.id+'-'+val+'-inherit';var radio=self.createWidget(iid,'RadioButton');radio.setLabel('Inherit');radio.setLabelPos('left');radio.setShowLabel(true);radio.create(function(el){var row=filterTable.createRowAsElement([typeIcon,typeInfo.name,el,deleteIcon],colClass,val);filterTable.addRow(row);});});var trow=formatsTable.createRowAsElement([typeIcon,typeInfo.name,deleteIcon],tcolClass,val);formatsTable.addRow(trow);self.assetTypes[val]={name:typeInfo.name,icon:typeInfo.icon,inherit:false};self.updatePageContents(500);});}});}},toggleAssetType:function(assetType)
{if(this.removedAssetTypes.find(assetType)===-1){this._removeAssetType(assetType);}else{this._enableAssetType(assetType);}
this.updatePageContents(500);this.setModified(true);},toggleInheritance:function(type)
{var check=WidgetStore.get(this.id+'-'+type+'-inherit');if(this.assetTypes[type].inherit!==true){this.assetTypes[type].inherit=true;check.check();}else{this.assetTypes[type].inherit=false;check.uncheck();}
this.updatePageContents(500);},_removeAssetType:function(assetType)
{this.removedAssetTypes.push(assetType);var rowid=this.id+'-filters-assetTypesTable-row-'+assetType;dfx.addClass(dfx.getId(rowid),'disabled');var check=WidgetStore.get(this.id+'-'+assetType+'-inherit');check.disable();this.removeFormat('assetTypes',assetType);this.updatePageContents(500);this.setModified(true);return true;},_enableAssetType:function(assetType)
{var aindex=this.removedAssetTypes.find(assetType);if(aindex!==-1){this.removedAssetTypes.splice(aindex,1);var rowid=this.id+'-filters-assetTypesTable-row-'+assetType;dfx.removeClass(dfx.getId(rowid),'disabled');var check=WidgetStore.get(this.id+'-'+assetType+'-inherit');check.enable();this._enableAssetTypeFormat(assetType);this.setModified(true);}},_setupAssetTypeFormatsTab:function()
{dfx.setStyle(dfx.getId(this.id+'-noCust'),'display','none');dfx.setStyle(dfx.getId(this.id+'-selectFormat'),'display','block');this._formatsTableClickEvent('assetTypes');var self=this;dfx.addEvent(dfx.getId(this.id+'-formats-assetTypes:default'),'click',function(){self.showFormat('assetTypes','default');var divid=self.id+'-formats-assetTypes:default';dfx.setStyle(dfx.getId(divid),'background-color','#D8ECFD');});var noCustBtn=WidgetStore.get(this.id+'-noCust-custBtn');if(noCustBtn){this.children.push(noCustBtn.id);noCustBtn.setReadOnly(this.readOnly);noCustBtn.addClickEvent(function(){self.setFormatValue(self.noFormatBox.formatType,self.noFormatBox.name,'',true);self.showFormat(self.noFormatBox.formatType,self.noFormatBox.name,true);});}},_setupPageLayoutsFormatsTab:function()
{this._formatsTableClickEvent('pageLayouts');},_setupPositionsFormatsTab:function()
{this._formatsTableClickEvent('positions');var addButton=WidgetStore.get(this.id+'-formats-positions-add');var selection=WidgetStore.get(this.id+'-formats-positions-select');var position=WidgetStore.get(this.id+'-formats-positions-pos');var table=WidgetStore.get(this.id+'-formats-positionsTable');if(addButton&&selection&&position&&table){addButton.setReadOnly(this.readOnly);selection.setReadOnly(this.readOnly);position.setReadOnly(this.readOnly);table.setReadOnly(this.readOnly);this.children.push(addButton.id);this.children.push(selection.id);this.children.push(position.id);this.children.push(table.id);if(this.readOnly===true){var deleteCols=dfx.getClass('TableWidgetType-cell-filters-positionFormats-col-delete',table.domElem);dfx.setStyle(deleteCols,'display','none');}
var colClass=['assetListingPositionFormats-col-icon','filters-positionFormats-col-name','filters-positionFormats-col-delete',];var typeNames=['in List','on Page'];var id=this.id;var self=this;addButton.addClickEvent(function(){var pos=position.getValue();var type=selection.getValue();var rowid=type+':'+pos;if(dfx.getId(id+'-formats-positionsTable-row-'+rowid)){return;}
var content=pos+dfx.getOrdinalSuffix(pos)+' '+typeNames[type];var deleteIcon='<div class="delete positionFormats-delete"></div>';var row=table.createRowAsElement(['',content,deleteIcon],colClass,rowid);table.addRow(row);self.setModified(true);});}},_formatsTableClickEvent:function(formatType)
{var self=this;var table=WidgetStore.get(this.id+'-formats-'+formatType+'Table');if(table){table.addClickEvent(this.id,function(rowid,colidx){var type=rowid.split('-');type=type[(type.length-1)];if(type){if(colidx===2){self.removeFormat(formatType,type);}else{self.showFormat(formatType,type);}}});}},_setupWYSIWYG:function()
{var self=this;var idp=this.id+'-settings:';var listType=WidgetStore.get(idp+'listType');if(listType&&listType.getValue()==='raw'){this.includeWidget('TextArea',function(){var editor=self.createWidget(self.id+'-editor','TextArea');self.editor=editor;var elem=dfx.getId(self.id+'-formats-editor');editor.create(function(editorEl){editor.setValue(self.formats[self.currentFormat.formatType][self.currentFormat.name]);elem.appendChild(editorEl);editor.addOnChangeEvent(function(){self.setModified(true);});});});return;}
this.includeWidget('WYSIWYG',function(){var editor=self.createWidget(self.id+'-editor','WYSIWYG');self.editor=editor;var elem=dfx.getId(self.id+'-formats-editor');editor.setViperSetting('disableOnBlur',false);editor.setPluginSettings('ViperToolbarPlugin',{parent:elem.parentNode});dfx.addEvent(dfx.getId(self.id+'-formatsTab-formatsTab'),'click',function(e){if(self.readOnly===true){editor.disable();}});dfx.setStyle(elem.parentNode,'position','relative');editor.load(function(){editor.setElement(elem);if(self.readOnly===true){editor.disable();}});});},showFormat:function(formatType,name,revert)
{if(this.removedAssetTypes.find(name)!==-1){return;}
var tableid=this.id+'-formats-'+formatType+'Table';dfx.setStyle(dfx.getClass('TableWidgetType-row',dfx.getId(tableid)),'background-color','#FFF');var divid=this.id+'-formats-assetTypes:default';dfx.setStyle(dfx.getId(divid),'background-color','#FFF');var tableRowid=tableid+'-row-'+name;dfx.setStyle(dfx.getId(tableRowid),'background-color','#D8ECFD');if(revert!==true){if(this.readOnly===false){var currentVal=this.getCurrentFormatValue();this.setFormatValue(this.currentFormat.formatType,this.currentFormat.name,currentVal,false);}}
var elem=dfx.getId(this.id+'-formats-editor');var html='';if(this.formatExists(formatType,name)===true){dfx.setStyle(dfx.getId(this.id+'-noCust'),'display','none');dfx.setStyle(dfx.getId(this.id+'-selectFormat'),'display','none');html=this.formats[formatType][name];}else{var self=this;this.noFormatBox={formatType:formatType,name:name}
AssetManager.getAssetTypeInfos([name],function(typeInfo){typeInfo=typeInfo[0];dfx.getId(self.id+'-noCust-img').src=typeInfo.largeIconURL;dfx.setStyle(dfx.getId(self.id+'-selectFormat'),'display','none');dfx.setStyle(dfx.getId(self.id+'-noCust'),'display','block');});return;}
if(!this.editor.setContents){if(this.editor.setValue){this.editor.setValue(html);}}else{this.editor.setContents(html);}
this.currentFormat={formatType:formatType,name:name};if(formatType==='assetTypes'){this._enableAssetTypeFormat(name);}},setFormatValue:function(formatType,name,value,activateSave)
{if(!this.formats[formatType]){this.formats[formatType]={};}
this.formats[formatType][name]=value;if(activateSave===true){this.setModified(true);}},removeFormat:function(formatType,name)
{if(!this.removedFormats[formatType]){this.removedFormats[formatType]=[];}
var index=this.removedFormats[formatType].find(name);if(index===-1){this.removedFormats[formatType].push(name);}else{dfx.removeArrayIndex(this.removedFormats[formatType],index);}
var rowid=this.id+'-formats-'+formatType+'Table-row-'+name;var elem=dfx.getId(rowid);if(dfx.hasClass(elem,'disabled')===true){if(formatType==='assetTypes'){if(this.removedAssetTypes.inArray(name)===true){return;}}
dfx.removeClass(elem,'disabled');}else{dfx.addClass(elem,'disabled');}
this.setModified(true);},_enableAssetTypeFormat:function(assetType)
{if(this.removedFormats.assetTypes){if(this.removedAssetTypes.find(assetType)!==-1){return;}
var idx=this.removedFormats.assetTypes.find(assetType);if(idx!==-1){this.removedFormats.assetTypes.splice(idx,1);var rowid=this.id+'-formats-assetTypesTable-row-'+assetType;dfx.removeClass(dfx.getId(rowid),'disabled');this.setModified(true);}}},formatExists:function(formatType,name)
{return(this.formats[formatType]&&dfx.isset(this.formats[formatType][name])===true);},updatePageContents:function(delay)
{if(delay){clearTimeout(this.requestTimer);var self=this;this.requestTimer=setTimeout(function(){self.updatePageContents();},delay);}else{var data=this.getSaveData();var params={action:'getPreviewContent',settings:dfx.jsonEncode(data)};var nodes=this.editableNodes;this.request(params,function(data){dfx.setHtml(nodes,data);});}},getCurrentFormatValue:function()
{if(this.editor.cleanDOM){this.editor.cleanDOM();}
var contents=this.editor.getContents();contents=dfx.fixHtml(contents);return contents;},getFormatsSettingValue:function()
{if(this.readOnly===false){var currentVal=this.getCurrentFormatValue();this.setFormatValue(this.currentFormat.formatType,this.currentFormat.name,currentVal,true);}
var formats=this.formats;var listType=WidgetStore.get(this.id+'-settings:listType');if(listType){listType=listType.getValue();}
var self=this;dfx.foreach(formats,function(formatType){dfx.foreach(formats[formatType],function(name){if(self.removedFormats[formatType]){if(self.removedFormats[formatType].find(name)!==-1){delete self.formats[formatType][name];delete formats[formatType][name];}}
if(formats[formatType][name]===null){delete self.formats[formatType][name];delete formats[formatType][name];}
return true;});return true;});return formats;},getAssetTypesSettingValue:function()
{var types={};for(var type in this.assetTypes){if(this.assetTypes.hasOwnProperty(type)===true){if(this.removedAssetTypes.find(type)===-1){types[type]={};types[type]['inherit']=this.assetTypes[type].inherit;types[type]['markedDel']=false;}}}
return types;}};dfx.inherits('AssetListingEdit','AssetEdit');function CustomFormEditWidgetType(id,assetid,questions,formats,notifications)
{AssetEditWidgetType.call(this,id,assetid);this.widgetType='CustomFormEdit';this.assetid=assetid;this.domElem=dfx.getId(id+'-questions');this.domElemLeft=dfx.getId(id+'-qnLeft');this.domElemRight=dfx.getId(id+'-qnEdit');this.form=dfx.getId('form'+assetid+'-container');this.tabsWidget=WidgetStore.get(this.id+'-tab_pane');this.qnTable=null;this.qnCount=1;this.editing=-1;this.itemsPerPage=6;this.currentPage=1;this.tabs=WidgetStore.get(this.id+'-subTabPane');this.subTab=dfx.getId(this.id+'-filteredSubsTable');this.subTable=null;this.subData={};this.totalSub=0;this.start=0;this.end=0;this.editor=null;this.questions=questions;this.formats=formats;this.currentFormat='formContentsFormat';var qn=questions;if(qn instanceof Array&&qn.length===0){qn={};}
this.initialSettings=this.cloneSettings(qn);this.unsavedSettings=qn;this.initialOptions=notifications;this.deleted={};this.deletedSub={};this.formJS=null;this.hasChanges={};this.assetPicker=WidgetStore.get('EditingAssetPicker');this.assetPicker.addProjectFolderWhiteList('addUsers','Users');this.assetPicker.setHideSite('addUsers');this.assetPicker.addProjectFolderWhiteList('createLocation','Documents');this.assetPicker.addProjectFolderWhiteList('createLocation','Images');this.assetPicker.addProjectFolderWhiteList('createLocation','Movies');this.assetPicker.setHideSite('createLocation');this.createLocationEvtAdded=false;}
CustomFormEditWidgetType.prototype={init:function()
{var self=this;if(self.readOnly===false){var addNewQn=dfx.getId(self.id+'-addNew');dfx.removeClass(addNewQn,'readOnly');}
this.setSaveButton(function(){self.saveSettings();},function(){self.revert();});this.includeWidgets(['Table','AssetTagLine'],function(){self.printQuestionList(false,function(){self.addQuestionSettingsEvents();self.addQuestionRulesEvent();self.addSubmissionEvents();self.addFormatEvent();self._setupWYSIWYG();self.tabsWidget.addOnSelectHandler(function(index,prev){self.updateUnsavedDetails(self.editing);if(index===0){self.printQuestionSettingsEdit(self.editing);}else if(index===1){self.refreshPagination();}});var addNewQn=dfx.getId(self.id+'-addNew');var qnRules=dfx.getId(self.id+'-qnRules');var preview=dfx.getId(self.id+'-formatRight-previewPane');WidgetStore.addDataChangeListener('CustomFormSettingsPaneStateListener','bugState',function(data){if(self.readOnly===true){dfx.hideElement(addNewQn);}else{if(data.state===1){dfx.showElement(addNewQn);dfx.showElement(qnRules);dfx.showElement(preview);}else if(data.state===0){dfx.hideElement(addNewQn);dfx.hideElement(qnRules);dfx.hideElement(preview);}}});if(window['CustomFormAssetType']){self.formJS=new CustomFormAssetType(self.assetid);self.formJS.attachValidation(self.questions);}});});},revert:function()
{this.displayDisabledDiv(true);this.deleted={};this.unsavedSettings=this.cloneSettings(this.initialSettings);var active=this.editing;if(this.unsavedSettings.hasOwnProperty(this.editing)===false){for(var qid in this.unsavedSettings){active=qid;break;}}
this.printQuestionList(true);this.printQuestionSettingsEdit(active,true);for(var subid in this.deletedSub){if(this.deletedSub.hasOwnProperty(subid)===true){var row=dfx.getId(this.id+'-subTable-row-'+subid);dfx.removeClass(row,'recover');}}
var self=this;var notifyToggle=WidgetStore.get(this.id+'-emailNotify');var notifyList=WidgetStore.get(this.id+'-emailList');if(notifyToggle.getValue()!==self.initialOptions.notify){if(self.initialOptions.notify===true){notifyToggle.setValue(true);notifyToggle.toggleSlideOn();}else{notifyToggle.setValue(false);notifyToggle.toggleSlideOff();}}
notifyList.clear();for(var i=0;i<self.initialOptions.recipient.length;i++){notifyList.addAsset(self.initialOptions.recipient[i]);}
this.deletedSub={};this.editor.setContents(this.formats[this.currentFormat]);this.removeDisabledDiv();},saveSettings:function()
{var self=this;var params={};this.displayDisabledDiv(true);var options=WidgetStore.get(this.id+'-options');options.prune();this.updateUnsavedDetails(this.editing);var table=dfx.getId(this.id+'-qnTable');var order=dfx.getClass('qnOrder',table);var newOrder=[];dfx.foreach(order,function(idx){newOrder.push(order[idx].value);return true;});var settings=this.unsavedSettings;dfx.foreach(settings,function(qid){if(dfx.isEmpty(settings[qid].rules)===true){delete settings[qid].rules;}else{settings[qid].rules=dfx.jsonEncode(settings[qid].rules);}
return true;});params.questions=dfx.jsonEncode(settings);params.order=dfx.jsonEncode(newOrder);params.deleted=dfx.jsonEncode(this.deleted);var editElem=dfx.getId(this.id+'-formContentsContainer');if(editElem){if(this.readOnly===false){this.editor.cleanDOM();this.formats[this.currentFormat]=dfx.fixHtml(this.editor.getContents());}}
params.formContents=this.formats.formContentsFormat;params.thankYou=this.formats.thankYouFormat;params.deletedSub=dfx.jsonEncode(this.deletedSub);var list=WidgetStore.get(this.id+'-emailList');params.notify=WidgetStore.get(this.id+'-emailNotify').getValue();var origNotify=params.notify;if(params.notify===true)
{params.notify=1;}else{params.notify=0;}
params.recipient=dfx.jsonEncode(list.getValue());params.message='';params.action='saveSettings';this.request(params,function(data){data=dfx.jsonDecode(data);params.notify=origNotify;if(dfx.isset(data.error)===true){self._showSaveFailed(data,function(){},params);}else{var qn=data.details;if(qn instanceof Array&&qn.length===0){qn={};self.editing=-1;}
self.initialSettings=self.cloneSettings(qn);self.unsavedSettings=qn;self.initialOptions=params;self.deleted={};self.refreshForm();self.printQuestionList(false);self.printQuestionSettingsEdit(self.editing);self.refreshForm();self.subData=data.deletedSub;self.deletedSub={};uids=data.emailOps;list.clear();var len=uids.length;for(var i=0;i<len;i++){list.addAsset(uids[i]);}
if(len===0&&params.notify===true){var noUser=dfx.getId(self.id+'-noUserMsg');dfx.showElement(noUser);}
self.hasChanges={};self.setModified(false);dfx.trigger(dfx.getId('EditEditingModeWidgetType-assetViewBtn'),'click');}});},refreshForm:function()
{var self=this;this.request({action:'getFormContents'},function(data){if(dfx.isset(self.form)===true){dfx.setHtml(self.form,data);self.attachRules();}});},addQuestionSettingsEvents:function()
{var self=this;var add=WidgetStore.get(this.id+'-add');add.addClickEvent(function(){self.addQuestion();});add.setReadOnly(this.readOnly);var title=WidgetStore.get(this.id+'-titleEdit');title.addOnChangeEvent(function(value){var nameTag=dfx.getId(self.id+'-nameTag-q'+self.editing);nameTag.innerHTML=value;self._checkSettingChanges('label',value);});title.setReadOnly(this.readOnly);var descToggle=WidgetStore.get(this.id+'-descToggle');var desc=WidgetStore.get(this.id+'-desc');descToggle.addToggleEvent(function(t){if(t===false){desc.setValue('');}
self._checkSettingChanges('desc',desc.getValue());});desc.addOnChangeEvent(function(val){self._checkSettingChanges('desc',val);});descToggle.setReadOnly(this.readOnly);desc.setReadOnly(this.readOnly);var useDefaultToggle=WidgetStore.get(this.id+'-defaultToggle');var useDefault=WidgetStore.get(this.id+'-default');useDefaultToggle.addToggleEvent(function(t){if(t===false){useDefault.setValue('');}
var useDefaultError=dfx.getId(useDefault.id+'-error');dfx.setHtml(useDefaultError,'');self._checkDefaultValue(useDefault.getValue());});useDefault.addOnChangeEvent(function(val){self._checkDefaultValue(val);});useDefaultToggle.setReadOnly(this.readOnly);useDefault.setReadOnly(this.readOnly);var lines=WidgetStore.get(this.id+'-rows');lines.addOnChangeEvent(function(val){self._checkSettingChanges('rows',parseInt(val,10),function(old){return parseInt(old,10);});});lines.setReadOnly(this.readOnly);var options=WidgetStore.get(this.id+'-options');options.addOnChangeEvent(function(){var val=options.formatValue(options.getValue());self._checkSettingChanges('options',val,function(old){return options.formatValue(old);});});options.setReadOnly(this.readOnly);var multi=WidgetStore.get(this.id+'-multi');multi.addToggleEvent(function(val){options.setMulti(val);self._checkSettingChanges('multi',val);});multi.setReadOnly(this.readOnly);var createLocation=WidgetStore.get(this.id+'-createLocation');var createLocationBtn=WidgetStore.get(this.id+'-createLocationBtn');createLocationBtn.addClickEvent(function(){createLocationBtn.disable();self.displayDisabledDiv(true);self.assetPicker.setScreen('createLocation');self.assetPicker.setUniqueSelect(true);self.assetPicker.init('createLocation',function(){self.assetPicker.dialog.open();});});createLocation.setReadOnly(this.readOnly);createLocationBtn.setReadOnly(this.readOnly);this.assetPicker.addCloseAction(function(){createLocationBtn.enable();},false,'createLocation');if(this.createLocationEvtAdded===false){this.assetPicker.addAssetsSelectedAction(function(selectedAssets){if(WidgetStore.get(self.id+'-createLocationTagLine')){dfx.remove(dfx.getId(self.id+'-createLocationTagLine'));}
var tagLine=self.createWidget(self.id+'-createLocationTagLine','AssetTagLine');tagLine.setAssetid(selectedAssets[0]);tagLine.create(function(el){dfx.insertBefore(dfx.getId('EditEditingModeWidgetType-assetEditor-createLocationDiv').childNodes[0],el);var newVal=String(selectedAssets[0]);createLocation.setValue(newVal);self._checkSettingChanges('createLocation',newVal);});},true,'createLocation');this.createLocationEvtAdded=true;}},_checkSettingChanges:function(type,val,callback)
{if(this.initialSettings.hasOwnProperty(this.editing)===false){this.hasChanges[this.editing+'-'+type]=true;}else{var oldVal='';if(this.initialSettings[this.editing].hasOwnProperty(type)===true){oldVal=this.initialSettings[this.editing][type];if(dfx.isFn(callback)===true){var self=this;oldVal=callback.call(self,oldVal);}}
var index=this.editing+'-'+type;if(val!==oldVal){this.hasChanges[index]=true;}else{if(this.hasChanges.hasOwnProperty(index)===true){delete this.hasChanges[index];}}}
this._checkChanges();},_checkOrderChange:function()
{this.updateUnsavedDetails(this.editing);var oldOrder=[];for(var qid in this.initialSettings){oldOrder.push(qid);}
var table=dfx.getId(this.id+'-qnTable');var order=dfx.getClass('qnOrder',table);var len=order.length;var newOrder=[];for(var i=0;i<len;i++){newOrder.push(order[i].value);}
var oldLen=oldOrder.length;var newLen=newOrder.length;if(newLen!==oldLen){this.hasChanges.order=true;}else{var mismatch=false;for(var j=0;j<oldLen;j++){if(newOrder[j]!==oldOrder[j]){mismatch=true;this.hasChanges.order=true;break;}}
if(mismatch===false){delete this.hasChanges.order;}}
if(this.hasChanges.hasOwnProperty('order')===true){if(this.hasChanges.order===true){var oLen=newOrder.length;var questions={};for(var x=0;x<oLen;x++){questions[newOrder[x]]=dfx.clone(this.unsavedSettings[newOrder[x]]);}
this.unsavedSettings=dfx.clone(questions);}}
this._checkChanges();},_checkDefaultValue:function(val)
{var settings=this.unsavedSettings[this.editing];var useDefault=WidgetStore.get(this.id+'-default');var ret=true;if(this.formJS){if(settings.type==='number'){ret=this.formJS.numberValidation(useDefault.id,val,settings.rules.number);}else if(settings.type==='text'){if(settings.hasOwnProperty('rules')===true){if(settings.rules.hasOwnProperty('len')===true){ret=this.formJS.lenValidation(useDefault.id,val,settings.rules.len);}
if(ret===true&&settings.rules.hasOwnProperty('email')===true){ret=this.formJS.emailValidation(useDefault.id,val,settings.rules.email);}}}}
if(ret===false){this.disableSaveButton();}else{this._checkSettingChanges('defaultVal',val);}},_checkChanges:function()
{var noChange=true;for(var id in this.hasChanges){if(this.hasChanges[id]===true){this.setModified(true);noChange=false;break;}}
if(noChange===true){this.setModified(false);}},printQuestionList:function(inRevert,callback)
{var self=this;if(dfx.isset(inRevert)===false||inRevert===false){this.updateUnsavedDetails(this.editing);}
if(this.qnTable!==null){var id=this.id+'-qnTable';this.qnTable=null;delete this.qnTable;WidgetStore.remove(id);var table=dfx.getId(id);this.domElemLeft.removeChild(table);}
var qnCount=0;for(var qid in this.unsavedSettings){qnCount++;}
if(qnCount===0){this.qnTable=null;var msg1=dfx.getId(this.id+'-settingNoQnSelected');var msg2=dfx.getId(this.id+'-ruleNoQnSelected');var edit=dfx.getId(this.id+'-qnEdit');dfx.showElement(msg1);dfx.showElement(msg2);dfx.hideElement(edit);if(callback){callback.call(self);}
return;}
var data={col:['','','','','',''],colHeaderClass:['qnIDHeader','qnMoveHeader','qnReqHeader','qnNameHeader','qnTypeHeader','qnDeleteHeader'],colClass:['qid','move','required','name','type','delete'],data:[]};var qnTable=self.createWidget(self.id+'-qnTable','Table');qnTable.setData(data);qnTable.create(function(el){self.domElemLeft.appendChild(el);self.qnTable=qnTable;for(var qid in self.unsavedSettings){self._addQnRow.call(self,qid);}
for(var qDeleted in self.deleted){self.deleteQuestion(qDeleted,true);}
self.qnCount=1;if(self.readOnly===false){self.qnTable.makeSortable(0,'span.move',null,function(){self._checkOrderChange();self._updateQuestionListIndex();});}
if(callback){callback.call(self);}});},printQuestionSettingsEdit:function(qid,inRevert)
{if(qid===-1){return;}
var qn=null;if(this.unsavedSettings.hasOwnProperty(qid)===false){return;}else{qn=this.unsavedSettings[qid];}
var update=true;if(dfx.isset(inRevert)===true&&inRevert===true){update=false;}
var msg=dfx.getId(this.id+'-settingNoQnSelected');dfx.hideElement(msg);var row=dfx.getId(this.id+'-qnTable-row-'+this.editing);if(dfx.isset(row)===true){dfx.removeClass(row,'editing');}
if(this.unsavedSettings.hasOwnProperty(this.editing)===true&&update===true){this.updateUnsavedDetails(this.editing);}
this.editing=qid;var currentRow=dfx.getId(this.id+'-qnTable-row-'+qid);if(dfx.isset(currentRow)===true){dfx.addClass(currentRow,'editing');}
dfx.showElement(this.domElemRight);var qidEdit=WidgetStore.get(this.id+'-qidEdit');qidEdit.setValue(qid);var title=WidgetStore.get(this.id+'-titleEdit');if(qn.label){title.setValue(qn.label);}else{title.setValue('');}
var createLocation=WidgetStore.get(this.id+'-createLocation');if(qn.createLocation){if(WidgetStore.get(this.id+'-createLocationTagLine')){dfx.remove(dfx.getId(this.id+'-createLocationTagLine'));}
var tagLine=this.createWidget(this.id+'-createLocationTagLine','AssetTagLine');tagLine.setAssetid(qn.createLocation);tagLine.create(function(el){var locDiv=dfx.getId('EditEditingModeWidgetType-assetEditor-createLocationDiv');if(locDiv){dfx.insertBefore(dfx.getId('EditEditingModeWidgetType-assetEditor-createLocationDiv').childNodes[0],el);}
var newVal=String(qn.createLocation);createLocation.setValue(newVal);});createLocation.setValue(qn.createLocation);}else{if(WidgetStore.get(this.id+'-createLocationTagLine')){dfx.remove(dfx.getId(this.id+'-createLocationTagLine'));}
createLocation.setValue('');}
var descToggle=WidgetStore.get(this.id+'-descToggle');var desc=WidgetStore.get(this.id+'-desc');if(qn.desc&&qn.desc.length>0){desc.setValue(qn.desc);descToggle.toggleSlideOn();}else{desc.setValue('');descToggle.toggleSlideOff();}
var type=dfx.getId(this.id+'-typeEdit-'+qid).value;var useDefault=dfx.getId('SectionWidgetType-section-item-3');var useDesc=dfx.getId('SectionWidgetType-section-item-5');var allowMulti=dfx.getId('SectionWidgetType-section-item-6');var optList=dfx.getId('SectionWidgetType-section-item-7');var location=dfx.getId('SectionWidgetType-section-item-8');if(type==='text'||type==='number'){dfx.showElement(useDefault);dfx.showElement(useDesc);dfx.hideElement(allowMulti);dfx.hideElement(optList);dfx.hideElement(location);}else if(type==='options'||type==='dropdown'){dfx.hideElement(useDefault);dfx.hideElement(useDesc);dfx.showElement(allowMulti);dfx.showElement(optList);dfx.hideElement(location);}else if(type==='fileUpload'){dfx.hideElement(useDefault);dfx.hideElement(useDesc);dfx.hideElement(allowMulti);dfx.hideElement(optList);dfx.showElement(location);}
var defaultToggle=WidgetStore.get(this.id+'-defaultToggle');var defaultWidget=WidgetStore.get(this.id+'-default');if(qn.defaultVal&&qn.defaultVal.length>0){defaultWidget.setValue(qn.defaultVal);defaultToggle.toggleSlideOn();}else{defaultWidget.setValue('');defaultToggle.toggleSlideOff();}
var rows=WidgetStore.get(this.id+'-rows');if(qn.rows){rows.setValue(qn.rows);}else{rows.setValue('1');}
var options=WidgetStore.get(this.id+'-options');options.setDefaultOptions();options.enableCheck();if(qn.hasOwnProperty('options')===true){options.setOptions(qn.options.options);}
options.refresh();var multi=WidgetStore.get(this.id+'-multi');if(qn.hasOwnProperty('multi')===true){if(qn.multi===true){multi.toggleSlideOn();}else{multi.toggleSlideOff();}}
if(qn.type==='options'||qn.type==='dropdown'){var multiContainer=dfx.getId(this.id+'-multi-slider');if(qn.type==='dropdown'){dfx.swapClass(multiContainer,'optionsMulti','dropdownMulti');}else{dfx.swapClass(multiContainer,'dropdownMulti','optionsMulti');}}
this.printQuestionRulesEdit(qid);},updateUnsavedDetails:function(qid)
{if(qid===-1){return;}
var req=dfx.getId(this.id+'-req-'+qid).state;var type=dfx.getId(this.id+'-typeEdit-'+qid).value;var label=WidgetStore.get(this.id+'-titleEdit').getValue();var desc=WidgetStore.get(this.id+'-desc').getValue();var def=WidgetStore.get(this.id+'-default').getValue();var rows=WidgetStore.get(this.id+'-rows').getValue();var options=WidgetStore.get(this.id+'-options').getValue();var multi=WidgetStore.get(this.id+'-multi').getValue();var locat=WidgetStore.get(this.id+'-createLocation').getValue();var params={type:type,label:label,required:req,desc:desc,defaultVal:def,rows:rows,options:options,multi:multi,createLocation:locat};var rules=this.getUnsavedRules(qid);if(rules!==null){params.rules=rules;}
this.unsavedSettings[qid]=params;},_updateQuestionListIndex:function()
{var table=dfx.getId(this.id+'-qnTable-0');var tbody=table.getElementsByTagName("tbody")[0];var tr=tbody.getElementsByTagName("tr");var len=tr.length;var count=1;for(var i=0;i<len;i++){if(tr[i].className!=='TableWidgetType-row-bg'){var td=tr[i].getElementsByTagName("td")[0];td.innerHTML=count+'.';count++;}}},_addQnRow:function(qid)
{var self=this;var qn=this.unsavedSettings[qid];var nameTag=document.createElement('div');nameTag.id=this.id+'-nameTag-q'+qid;dfx.setHtml(nameTag,qn.label);dfx.addEvent(nameTag,'click',function(){if(self.deleted.hasOwnProperty(qid)===true){return;}
self.printQuestionSettingsEdit.call(self,qid);});var idField=document.createElement('input');idField.type='hidden';idField.value=qid;idField.name='qnOrder[]';dfx.addClass(idField,'qnOrder');if(self.readOnly===false){var moveButton=document.createElement('span');dfx.addClass(moveButton,'move');moveButton.appendChild(idField);moveButton.id='move-'+qid;var deleteButton=document.createElement('span');dfx.addClass(deleteButton,'delete');dfx.addEvent(deleteButton,'click',function(){self.deleteQuestion(qid);});}
var id=qid+'.';var req=this._createReqStar(qid);var type=this._createTypeEdit(qid);var rowData=[this.qnCount+'.',moveButton,req,nameTag,type,deleteButton];var colClass=this.qnTable.data[0].colClass;var row=this.qnTable.createRowAsElement(rowData,colClass,qid);if(self.readOnly===true){var typeRo=document.createElement('span');dfx.setHtml(typeRo,type.options[type.selectedIndex].text);dfx.insertAfter(type,typeRo);dfx.hideElement(type);}
this.qnCount++;this.qnTable.addRow(row);},_createReqStar:function(qid)
{var self=this;var qn=this.unsavedSettings[qid];var req=document.createElement('span');req.id=this.id+'-req-'+qid;req.state=qn.required;var titles={on:'Click to make this field optional',off:'Click to make this field required'};if(self.readOnly===true){titles.on='This field is required';titles.off='This field is optional';}
if(req.state===true){dfx.attr(req,'title',titles.on);}else{dfx.attr(req,'title',titles.off);}
dfx.addClass(req,'require-'+qn.required);if(self.readOnly===false){dfx.addEvent(req,'click',function(){if(self.deleted.hasOwnProperty(qid)===true){return;}
if(self.editing!==qid){self.printQuestionSettingsEdit(qid);}
dfx.swapClass(req,'require-'+req.state,'require-'+!req.state);req.state=!req.state;if(req.state===true){dfx.attr(req,'title',titles.on);}else{dfx.attr(req,'title',titles.off);}
self._checkSettingChanges('required',req.state);});}else{dfx.addCssToStyle(req,'cursor','auto');}
return req;},_createTypeEdit:function(qid)
{var self=this;var qn=this.unsavedSettings[qid];var types={text:'Text Box',number:'Numeric',options:'Checkbox/Radio Button',dropdown:'Select',fileUpload:'File Upload'};var select=document.createElement('select');select.id=this.id+'-typeEdit-'+qid;for(var key in types){var option=document.createElement('option');dfx.setHtml(option,types[key]);option.value=key;select.appendChild(option);}
select.value=qn.type;dfx.addEvent(select,'change',function(evt){if(this.value==='options'||this.value==='dropdown'){self.unsavedSettings[qid].defaultVal='';}
self._checkSettingChanges('type',this.value);self.printQuestionSettingsEdit(qid);});return select;},addQuestion:function()
{var type=WidgetStore.get(this.id+'-type').getValue();var count=Number(WidgetStore.get(this.id+'-createCount').getValue());var qid=0;var qNum=1;for(var id in this.unsavedSettings){qNum++;}
for(var i=0;i<count;i++){var settings={required:false,type:type,label:'Question '+qNum,desc:'',defaultVal:'',rows:1,multi:false,options:{options:{0:{selected:false,value:'First Choice'},1:{selected:false,value:'Second Choice'}}},createLocation:''};qid=dfx.getUniqueId();if(type==='number'){var numRule={min:'',max:'',intOnly:true,msg:'You can only enter whole numbers'};settings.rules={number:numRule};}else if(type==='fileUpload'){var fileSizeRule={min:'',max:'',msg:''};settings.rules={fileSize:fileSizeRule};}
this.unsavedSettings[qid]=settings;qNum++;}
this.printQuestionList(false);this.printQuestionSettingsEdit(qid);},deleteQuestion:function(qid,force)
{var mark=false;if(dfx.isset(force)===true&&force===true){mark=true;}
if(this.unsavedSettings.hasOwnProperty(qid)===true){var row=dfx.getId(this.id+'-qnTable-row-'+qid);var type=dfx.getId(this.id+'-typeEdit-'+qid);var move=dfx.getId('move-'+qid);if(this.deleted.hasOwnProperty(qid)===true&&mark===false){dfx.removeClass(row,'recover');dfx.swapClass(move,'move-recover','move');delete this.deleted[qid];type.disabled=false;delete this.hasChanges[qid+'-del'];}else{dfx.removeClass(row,'editing');dfx.swapClass(move,'move','move-recover');dfx.addClass(row,'recover');this.deleted[qid]=1;type.disabled=true;this.hasChanges[qid+'-del']=true;}}
var lastId=-1;for(var id in this.unsavedSettings){if(this.deleted.hasOwnProperty(id)===false){lastId=id;break;}}
if(lastId!==-1){this.printQuestionSettingsEdit(lastId);this.printQuestionRulesEdit(lastId);}else{var msg1=dfx.getId(this.id+'-settingNoQnSelected');var msg2=dfx.getId(this.id+'-ruleNoQnSelected');var msg3=dfx.getId(this.id+'-ruleNoRulesApplied');var settings=dfx.getId(this.id+'-qnEdit');var rules=dfx.getId(this.id+'-addNewRule');dfx.showElement(msg1);dfx.showElement(msg2);dfx.hideElement(msg3);dfx.hideElement(settings);dfx.hideElement(rules);var lenDiv=dfx.getId(this.id+'-lenRuleDiv');var emailDiv=dfx.getId(this.id+'-emailRuleDiv');var numberDiv=dfx.getId(this.id+'-numberRuleDiv');var countDiv=dfx.getId(this.id+'-selcountRuleDiv');var fileSizeDiv=dfx.getId(this.id+'-fileSizeRuleDiv');dfx.hideElement(lenDiv);dfx.hideElement(emailDiv);dfx.hideElement(numberDiv);dfx.hideElement(countDiv);dfx.hideElement(fileSizeDiv);}
this._checkOrderChange();return;},cloneSettings:function(settings)
{var result=dfx.clone(settings);for(var qid in settings){if(settings[qid].hasOwnProperty('rules')===true){var rules=settings[qid].rules;if(rules==='[]'){result[qid].rules={};}else if(rules instanceof Array===true&&rules.length===0){result[qid].rules={};}else{result[qid].rules=dfx.clone(settings[qid].rules);}}}
return result;},addSubmissionEvents:function()
{var self=this;var filteredCSV=dfx.getId('exportSubCSV');var filteredXML=dfx.getId('exportSubXML');var allCSV=dfx.getId('exportAllSubCSV');var allXML=dfx.getId('exportAllSubXML');dfx.addEvent(filteredCSV,'click',function(){self.exportFile('csv');});dfx.addEvent(filteredXML,'click',function(){self.exportFile('xml');});dfx.addEvent(allCSV,'click',function(){self.exportFile('csv');});dfx.addEvent(allXML,'click',function(){self.exportFile('xml');});this.addPaginationEvent('filtered');this.addPaginationEvent('all');this.tabs=WidgetStore.get(this.id+'-subTabPane');this.tabs.selectedIndex=0;this.tabs.addOnSelectHandler(function(index,prevIndex){self.currentPage=1;self.refreshPagination(index);});var searchButton=WidgetStore.get(this.id+'-search');if(dfx.isset(searchButton)===true){searchButton.addClickEvent(function(){self.refreshPagination();});}
var switchTabLink=dfx.getId('switchTabLink');dfx.addEvent(switchTabLink,'click',function(evt){var subTab=WidgetStore.get(self.id+'-subTabPane');subTab.selectTab(1);});var expandAll=WidgetStore.get(this.id+'-expandAll');expandAll.addToggleOnEvent(function(){self._expandSubmissions.call(self,true);});expandAll.addToggleOffEvent(function(){self._expandSubmissions.call(self,false);});var deleteAll=WidgetStore.get(this.id+'-deleteAll');if(dfx.isset(deleteAll)===true){deleteAll.addClickEvent(function(){self.request({action:'deleteAllSubmission'},function(data){self.subData=dfx.jsonDecode(data);self.refreshPagination();});});}
var addUser=WidgetStore.get(this.id+'-addUser');if(dfx.isset(addUser)===true){addUser.addClickEvent(function(){addUser.disable();self.displayDisabledDiv(true);self.assetPicker.init('addUsers',function(){self.assetPicker.dialog.open();});});}
this.assetPicker.addCloseAction(function(){addUser.enable();},false,'addUsers');var notifyToggle=WidgetStore.get(this.id+'-emailNotify');notifyToggle.addToggleEvent(function(){self.hasChanges.notify=true;self._checkChanges();});var noUser=dfx.getId(this.id+'-noUserMsg');var list=WidgetStore.get(this.id+'-emailList');var recipients=list.getValue();var recCount=recipients.length;if(recCount>0){dfx.hideElement(noUser);}
this.assetPicker.addAssetsSelectedAction(function(selectedAssets){dfx.hideElement(noUser);var len=selectedAssets.length;for(var i=0;i<len;i++){list.addAsset(selectedAssets[i]);}
self.hasChanges.recipient=true;self._checkChanges();},false,'addUsers');list.addRemovedEvent(function(){self.hasChanges.recipient=true;self._checkChanges();});if(self.readOnly===true){notifyToggle.setReadOnly(true);list.setReadOnly(true);addUser.setReadOnly(true);if(dfx.isset(deleteAll)===true){deleteAll.setReadOnly(true);}}},addPaginationEvent:function(table)
{var self=this;var prevButton=WidgetStore.get(this.id+'-'+table+'SubsPrev');var nextButton=WidgetStore.get(this.id+'-'+table+'SubsNext');prevButton.disable();prevButton.addClickEvent(function(){var pageNum=self.currentPage;if(pageNum===2){prevButton.disable();}
nextButton.enable();self.printPagination(pageNum-1);self.printSubTable(pageNum-1);});nextButton.addClickEvent(function(){var totalPage=Math.ceil((self.totalSub/self.itemsPerPage));var pageNum=self.currentPage;if(pageNum===(totalPage-1)){nextButton.disable();}
prevButton.enable();self.printPagination(pageNum+1);self.printSubTable(pageNum+1);});},refreshPagination:function(index)
{var self=this;if(dfx.isset(index)===false){index=this.tabs.selectedIndex;}
if(index===0){this.start=WidgetStore.get(this.id+'-startDate').getTime();var end=WidgetStore.get(this.id+'-endDate').getTime();this.end=(parseInt(end,10)+86399);}else{this.start=0;this.end=0;}
this.request({action:'getSubmissionsCount',startTime:self.start,endTime:self.end},function(data){var count=dfx.jsonDecode(data);self.totalSub=parseInt(count.searched,10);if(self.totalSub>0){var lastPage=Math.ceil((self.totalSub/self.itemsPerPage));if(self.currentPage>lastPage){self.currentPage=lastPage;}}
var noSubMsg=dfx.getId(self.id+'-filteredSubsMsg');var noFSubMsg=dfx.getId(self.id+'-filteredNoSubsMsg');var subtitle=dfx.getId(self.id+'-filteredExportSubtitle');if(self.tabs.selectedIndex===1){noSubMsg=dfx.getId(self.id+'-allSubsMsg');subtitle=dfx.getId(self.id+'-allExportSubtitle');}
var numEntries=Number(count.searched);if(numEntries>0){dfx.hideElement(noSubMsg);dfx.hideElement(noFSubMsg);if(numEntries===1){dfx.setHtml(subtitle,'('+numEntries+' Entry)');}else{dfx.setHtml(subtitle,'('+numEntries+' Entries)');}}else{dfx.setHtml(subtitle,'');if(count.all>0){dfx.hideElement(noFSubMsg);dfx.showElement(noSubMsg);}else{dfx.showElement(noFSubMsg);dfx.hideElement(noSubMsg);}
if(self.tabs.selectedIndex===1){dfx.showElement(noSubMsg);}}
self.printPagination(self.currentPage);self.printSubTable(self.currentPage);});},_expandSubmissions:function(expand)
{for(var subid in this.subData){var contentBg=dfx.getId('qnContent-'+subid+'-bg');var summaryBg=dfx.getId('qnSummary-'+subid+'-bg');var content=dfx.getId('qnContent-'+subid);var summary=dfx.getId('qnSummary-'+subid);if(expand===true){dfx.hideElement(summary);dfx.hideElement(summaryBg);dfx.showElement(content);dfx.showElement(contentBg);}else{dfx.hideElement(content);dfx.hideElement(contentBg);dfx.showElement(summary);dfx.showElement(summaryBg);}}},printPagination:function(pageNum)
{var index=this.tabs.selectedIndex;var table='filtered';if(index===1){table='all';}
var pagination=dfx.getId(this.id+'-'+table+'Pagination');if(this.totalSub>this.itemsPerPage){this.currentPage=pageNum;dfx.showElement(pagination);var currentPageDiv=dfx.getId(this.id+'-'+table+'PaginationCurrentPage');if(dfx.isset(currentPageDiv)===true){dfx.setHtml(currentPageDiv,pageNum);}
var totalPageDiv=dfx.getId(this.id+'-'+table+'PaginationTotalPage');var totalPage=Math.ceil((this.totalSub/this.itemsPerPage));if(dfx.isset(totalPageDiv)===true){dfx.setHtml(totalPageDiv,totalPage);}
var prevButton=WidgetStore.get(this.id+'-'+table+'SubsPrev');var nextButton=WidgetStore.get(this.id+'-'+table+'SubsNext');if(pageNum===1){prevButton.disable();}else{prevButton.enable();}
if(pageNum===totalPage){nextButton.disable();}else{nextButton.enable();}}else{dfx.hideElement(pagination);}},printSubTable:function(pageNum)
{var index=this.tabs.selectedIndex;var tableName='filtered';if(index===1){tableName='all';}
var subsTable=dfx.getId(this.id+'-'+tableName+'SubsTable');if(this.subTable!==null){var id=this.id+'-subTable';var subTable=WidgetStore.get(id);if(dfx.isset(subTable)===true){WidgetStore.remove(id);}
this.subTable=null;delete this.subTable;while(subsTable.firstChild){subsTable.removeChild(subsTable.firstChild);}
if(index===1){var otherTable=dfx.getId(this.id+'-filteredSubsTable');while(otherTable.firstChild){otherTable.removeChild(otherTable.firstChild);}}else{var otherTable=dfx.getId(this.id+'-allSubsTable');while(otherTable.firstChild){otherTable.removeChild(otherTable.firstChild);}}}
var subTableData={col:['ID','Time','Answers','User','IP Address',''],colHeaderClass:['subIdHeader','subTimeHeader','subAnswerHeader','subUserHeader','subIpHeader','subDeleteHeader'],colClass:['subId','subTime','subAnswer','subUser','subIp','subDelete'],data:[]};this.subTable=this.createWidget(this.id+'-subTable','Table');this.subTable.setData(subTableData);var self=this;this.request({action:'getSubmissions',startTime:self.start,endTime:self.end,limit:self.itemsPerPage,offset:((pageNum-1)*this.itemsPerPage)},function(data){self.subData=dfx.jsonDecode(data);var len=self.subData.length;if(len!==0){var current=self;self.subTable.create(function(el){subsTable.appendChild(el);for(var subId in current.subData){current.addSubRow(current.subData[subId]);}});}
if(self.tabs.selectedIndex===1){var expandAll=WidgetStore.get(self.id+'-expandAll');self._expandSubmissions.call(self,expandAll.getValue());}});},addSubRow:function(sub)
{var self=this;var deleteButton=document.createElement('span');dfx.addClass(deleteButton,'delete');dfx.addEvent(deleteButton,'click',function(){self.markSubmissionForDeletion(sub[0]);});var rowData=[sub[0],sub[1],sub[2],sub[3],sub[4],deleteButton];var colClass=this.subTable.data[0].colClass;var row=this.subTable.createRowAsElement(rowData,colClass,sub[0]);if(this.deletedSub.hasOwnProperty(sub[0])===true){dfx.addClass(row,'recover');}
this.subTable.addRow(row);var contentBg=dfx.getId('qnContent-'+sub[0]+'-bg');var summaryBg=dfx.getId('qnSummary-'+sub[0]+'-bg');var content=dfx.getId('qnContent-'+sub[0]);var summary=dfx.getId('qnSummary-'+sub[0]);dfx.addEvent(contentBg,'click',function(){dfx.hideElement(content);dfx.hideElement(contentBg);dfx.showElement(summary);dfx.showElement(summaryBg);});dfx.addEvent(summaryBg,'click',function(){dfx.hideElement(summary);dfx.hideElement(summaryBg);dfx.showElement(content);dfx.showElement(contentBg);});},markSubmissionForDeletion:function(id)
{var row=dfx.getId(this.id+'-subTable-row-'+id);if(this.deletedSub.hasOwnProperty(id)===true){dfx.removeClass(row,'recover');delete this.deletedSub[id];}else{dfx.addClass(row,'recover');this.deletedSub[id]=1;}
if(dfx.isEmpty(this.deletedSub)===false){this.hasChanges.submission=true;}else{delete this.hasChanges.submission;}
this._checkChanges();},exportFile:function(format)
{var data=dfx.jsonEncode(this.subData);var query='&action=export&assetid='+this.assetid;query+='&start='+this.start+'&end='+this.end;query+='&format='+format;window.location.href=this.url+'?widget=EditingAssetWidget&__action=performAction'+query;},addFormatEvent:function()
{var formContentsLink=dfx.getId(this.id+'-formContents');var thankYouLink=dfx.getId(this.id+'-thankYou');var formContents=dfx.getId(this.id+'-formContentsContainer');var thankYou=dfx.getId(this.id+'-thankYouContainer');var self=this;dfx.addEvent(formContentsLink,'click',function(){dfx.showElement(formContents);dfx.hideElement(thankYou);});dfx.addEvent(thankYouLink,'click',function(){dfx.showElement(thankYou);dfx.hideElement(formContents);});},_setupWYSIWYG:function(callback)
{var self=this;var table=WidgetStore.get(this.id+'-formatsTable');if(table){table.addClickEvent(this.id,function(rowid,colidx){var type=rowid.split('-');type=type[(type.length-1)];var row=dfx.getId(rowid);if(dfx.isset(row)===true){dfx.addClass(row,'editing');if(self.currentFormat!==type){var currentRow=dfx.getId(this.id+'-row-'+self.currentFormat);if(dfx.isset(currentRow)===true){dfx.removeClass(currentRow,'editing');}}}
if(type){if(self.currentFormat!==type){if(self.readOnly===false){self.editor.cleanDOM();self.formats[self.currentFormat]=dfx.fixHtml(self.editor.getContents());}
self.editor.setContents(self.formats[type]);self.currentFormat=type;}}});}
var activeRow=dfx.getId(table.id+'-row-'+this.currentFormat);if(activeRow){dfx.addClass(activeRow,'editing');}
this.includeWidget('WYSIWYG',function(){self.editor=self.createWidget(self.id+'-formatEditor','WYSIWYG');var elem=dfx.getId(self.id+'-formContentsContainer');self.editor.setViperSetting('disableOnBlur',false);self.editor.setPluginSettings('ViperToolbarPlugin',{parent:elem.parentNode});self.editor.setContentChangedCallback(function(){self.hasChanges[this.editing+'-formats']=true;self._checkChanges();});dfx.setStyle(elem.parentNode,'position','relative');self.editor.load(function(){self.editor.setElement(elem);if(self.readOnly===true){self.editor.disable();}});dfx.addEvent(dfx.getId(self.id+'-formats'),'click',function(e){if(self.readOnly===true){self.editor.disable();}});});if(self.readOnly===true){var previewPane=dfx.getId(this.id+'-formatRight-previewPane');dfx.hideElement(previewPane);}else{var update=WidgetStore.get(this.id+'-formatRight-previewPane-update');if(dfx.isset(update)===true){update.addClickEvent(function(){self.previewFormat(dfx.fixHtml(self.editor.getContents()));});}
var revert=WidgetStore.get(this.id+'-formatRight-previewPane-revert');if(dfx.isset(revert)===true){revert.addClickEvent(function(){self.editor.setContents(self.formats[self.currentFormat]);self.previewFormat(self.formats[self.currentFormat]);});}}},previewFormat:function(format)
{var self=this;var params={action:'previewFormat',type:this.currentFormat,format:format};this.request(params,function(data){if(dfx.isset(self.form)===true){dfx.setHtml(self.form,data);self.attachRules();}});},attachRules:function()
{if(this.formJS){this.formJS.attachValidation(this.unsavedSettings);}},addQuestionRulesEvent:function()
{var self=this;var button=WidgetStore.get(this.id+'-addNewRuleButton');button.addClickEvent(function(){self._addRuleEvent();});var lenDelete=dfx.getId('lenRuleDelete');dfx.addEvent(lenDelete,'click',function(){self._deleteRuleEvent('len');});var emailDelete=dfx.getId('emailRuleDelete');dfx.addEvent(emailDelete,'click',function(){self._deleteRuleEvent('email');});var countDelete=dfx.getId('selcountRuleDelete');dfx.addEvent(countDelete,'click',function(){self._deleteRuleEvent('selcount');});var len=WidgetStore.get(this.id+'-lenRuleLen');var lenOp=WidgetStore.get(this.id+'-lenRuleOp');var lenMsg=WidgetStore.get(this.id+'-lenRuleErrorMsg');len.addOnChangeEvent(function(){self._checkRuleChanges();});lenOp.addItemSelectedEvent(function(){self._checkRuleChanges();});lenMsg.addOnChangeEvent(function(){self._checkRuleChanges();});var emailMsg=WidgetStore.get(this.id+'-emailRuleErrorMsg');emailMsg.addOnChangeEvent(function(){self._checkRuleChanges();});var numMin=WidgetStore.get(this.id+'-numberRuleMin');var numMax=WidgetStore.get(this.id+'-numberRuleMax');var numIntOnly=WidgetStore.get(this.id+'-numberRuleIntOnly');var numMsg=WidgetStore.get(this.id+'-numberRuleErrorMsg');numMin.addOnChangeEvent(function(){self._checkRuleChanges();});numMax.addOnChangeEvent(function(){self._checkRuleChanges();});numIntOnly.addToggleEvent(function(){self._checkRuleChanges();});numMsg.addOnChangeEvent(function(){self._checkRuleChanges();});var selCount=WidgetStore.get(this.id+'-selcountRuleCount');var selOp=WidgetStore.get(this.id+'-selcountRuleOp');var selMsg=WidgetStore.get(this.id+'-selcountRuleErrorMsg');selCount.addOnChangeEvent(function(){self._checkRuleChanges();});selOp.addItemSelectedEvent(function(){self._checkRuleChanges();});selMsg.addOnChangeEvent(function(){self._checkRuleChanges();});var fileSizeMin=WidgetStore.get(this.id+'-fileSizeRuleMin');var fileSizeMax=WidgetStore.get(this.id+'-fileSizeRuleMax');var fileSizeMsg=WidgetStore.get(this.id+'-fileSizeRuleErrorMsg');fileSizeMin.addOnChangeEvent(function(){self._checkRuleChanges();});fileSizeMax.addOnChangeEvent(function(){self._checkRuleChanges();});fileSizeMsg.addOnChangeEvent(function(){self._checkRuleChanges();});},_addRuleEvent:function()
{var qid=this.editing;if(qid===-1){return;}
var settings=this.unsavedSettings[qid];if(settings.hasOwnProperty('rules')===false){settings.rules={};}
var type=WidgetStore.get(this.id+'-addNewRuleType').getValue();if(type==='len'){settings.rules.len={len:'',lenOp:'>',msg:''};}else if(type==='email'){settings.rules.email={msg:''};}else if(type==='number'){settings.rules.number={min:'',max:'',intOnly:true,msg:''};}else if(type==='selcount'){settings.rules.selcount={countVal:1,countOp:'==',msg:''};}else if(type==='fileSize'){settings.rules.fileSize={min:'',max:'',msg:''};}
this._checkRuleChanges(false);this.printQuestionRulesEdit(qid);},_deleteRuleEvent:function(type)
{var qid=this.editing;if(qid===-1){return;}
var settings=this.unsavedSettings[qid];if(settings.hasOwnProperty('rules')===false){return;}
var rules=settings.rules;if(rules.hasOwnProperty(type)===true){if(rules[type].hasOwnProperty('marked')===true){delete rules[type].marked;}else{rules[type].marked=true;}}
this._checkRuleChanges(false);this.printQuestionRulesEdit(qid,false);},_checkRuleChanges:function(update)
{var qid=this.editing;if(qid===-1){return;}
var oldRules={};if(this.initialSettings.hasOwnProperty(qid)===true){if(this.initialSettings[qid].hasOwnProperty('rules')===true){oldRules=this.initialSettings[qid].rules;}}
var newRules={};if(dfx.isset(update)===true&&update===false){if(this.unsavedSettings[qid].hasOwnProperty('rules')===true){newRules=this.unsavedSettings[qid].rules;}}else{newRules=this.getUnsavedRules(qid);}
if(dfx.objDiff(newRules,oldRules)===true){this.hasChanges[qid+'-rules']=true;}else{delete this.hasChanges[qid+'-rules'];}
this._checkChanges();},printQuestionRulesEdit:function(qid,update)
{var self=this;var msg1=dfx.getId(this.id+'-ruleNoQnSelected');if(qid===-1){dfx.showElement(msg1);return;}else{dfx.hideElement(msg1);}
var set=true;if(dfx.isset(update)===true&&update===false){set=false;}
var msg2=dfx.getId(this.id+'-ruleNoRulesApplied');var settings=this.unsavedSettings[qid];var rules={};var type=settings.type;if(settings.hasOwnProperty('rules')===false){dfx.showElement(msg2);}else{dfx.hideElement(msg2);rules=settings.rules;}
var ruleType=WidgetStore.get(this.id+'-addNewRuleType');var showAdd=false;ruleType.disableOption('len',true);ruleType.disableOption('email',true);ruleType.disableOption('selcount',true);var lenDiv=dfx.getId(this.id+'-lenRuleDiv');var emailDiv=dfx.getId(this.id+'-emailRuleDiv');var numberDiv=dfx.getId(this.id+'-numberRuleDiv');var countDiv=dfx.getId(this.id+'-selcountRuleDiv');var fileSizeDiv=dfx.getId(this.id+'-fileSizeRuleDiv');dfx.hideElement(lenDiv);dfx.hideElement(emailDiv);dfx.hideElement(numberDiv);dfx.hideElement(countDiv);dfx.hideElement(fileSizeDiv);if(type==='text'){var hasEmail=true;if(rules.hasOwnProperty('email')===true){dfx.showElement(emailDiv);if(set===true){var msg=WidgetStore.get(this.id+'-emailRuleErrorMsg');msg.setValue(rules.email.msg);msg.setReadOnly(self.readOnly);}
if(rules.email.hasOwnProperty('marked')===true){this._markRule('email');}else{this._unmarkRule('email');}}else{ruleType.enableOption('email');ruleType.setValue('email',true);showAdd=true;hasEmail=false;this._unmarkRule('email');}
if(rules.hasOwnProperty('len')===true){dfx.showElement(lenDiv);if(set===true){var len=WidgetStore.get(this.id+'-lenRuleLen');var lenOp=WidgetStore.get(this.id+'-lenRuleOp');var msg=WidgetStore.get(this.id+'-lenRuleErrorMsg');len.setValue(rules.len.len);lenOp.setValue(rules.len.lenOp,true);msg.setValue(rules.len.msg);len.setReadOnly(self.readOnly);lenOp.setReadOnly(self.readOnly);msg.setReadOnly(self.readOnly);}
if(rules.len.hasOwnProperty('marked')===true){this._markRule('len');}else{this._unmarkRule('len');}}else{ruleType.enableOption('len');ruleType.setValue('len',true);this._unmarkRule('len');showAdd=true;if(hasEmail===false){dfx.showElement(msg2);}}}else if(type==='number'){if(rules.hasOwnProperty('number')===false){var numRule={min:'',max:'',intOnly:true,msg:''};rules={number:numRule};this.unsavedSettings[qid].rules=rules;}
dfx.showElement(numberDiv);var min=WidgetStore.get(this.id+'-numberRuleMin');var max=WidgetStore.get(this.id+'-numberRuleMax');var intOnly=WidgetStore.get(this.id+'-numberRuleIntOnly');var msg=WidgetStore.get(this.id+'-numberRuleErrorMsg');min.setValue(rules.number.min);max.setValue(rules.number.max);intOnly.setValue(rules.number.intOnly);msg.setValue(rules.number.msg);min.setReadOnly(self.readOnly);max.setReadOnly(self.readOnly);intOnly.setReadOnly(self.readOnly);msg.setReadOnly(self.readOnly);}else if(type==='options'||type==='dropdown'){if(rules.hasOwnProperty('selcount')===true){dfx.showElement(countDiv);if(set===true){var count=WidgetStore.get(this.id+'-selcountRuleCount');var countOp=WidgetStore.get(this.id+'-selcountRuleOp');var msg=WidgetStore.get(this.id+'-selcountRuleErrorMsg');count.setValue(rules.selcount.countVal);countOp.setValue(rules.selcount.countOp,true);msg.setValue(rules.selcount.msg);count.setReadOnly(self.readOnly);countOp.setReadOnly(self.readOnly);msg.setReadOnly(self.readOnly);}
if(rules.selcount.hasOwnProperty('marked')===true){this._markRule('selcount');}else{this._unmarkRule('selcount');}}else{dfx.showElement(msg2);ruleType.enableOption('selcount');ruleType.setValue('selcount',true);this._unmarkRule('selcount');showAdd=true;}}else if(type==='fileUpload'){if(rules.hasOwnProperty('fileSize')===false){var fileSizeRule={min:'',max:'',msg:''};rules={fileSize:fileSizeRule};this.unsavedSettings[qid].rules=rules;}
dfx.showElement(fileSizeDiv);var fileSizeMin=WidgetStore.get(this.id+'-fileSizeRuleMin');var fileSizeMax=WidgetStore.get(this.id+'-fileSizeRuleMax');var fileSizeMsg=WidgetStore.get(this.id+'-fileSizeRuleErrorMsg');fileSizeMin.setValue(rules.fileSize.min);fileSizeMax.setValue(rules.fileSize.max);fileSizeMsg.setValue(rules.fileSize.msg);fileSizeMin.setReadOnly(self.readOnly);fileSizeMax.setReadOnly(self.readOnly);fileSizeMsg.setReadOnly(self.readOnly);}
if(this.readOnly===true){dfx.hideElement(bar);dfx.hideElement(dfx.getClass('ruleDelete'));}else{var bar=dfx.getId(this.id+'-addNewRule');var controls=dfx.getId(this.id+'-addNewRuleContainer');var noMore=dfx.getId(this.id+'-noMoreMsg');if(showAdd===true){dfx.showElement(bar);dfx.showElement(controls);dfx.hideElement(noMore);}else{dfx.showElement(bar);dfx.showElement(noMore);dfx.hideElement(controls);}}
this._checkRuleChanges(qid,false);},_markRule:function(type)
{var div=dfx.getId(this.id+'-'+type+'RuleDiv');var rule=dfx.getId(this.id+'-'+type+'Rule-items');dfx.swapClass(div,'normal','recover');dfx.hideElement(rule);},_unmarkRule:function(type)
{var div=dfx.getId(this.id+'-'+type+'RuleDiv');var rule=dfx.getId(this.id+'-'+type+'Rule-items');dfx.swapClass(div,'recover','normal');dfx.showElement(rule);},getUnsavedRules:function(qid)
{if(this.unsavedSettings.hasOwnProperty(qid)===false){return null;}
var result={};var settings=this.unsavedSettings[qid];if(settings.hasOwnProperty('rules')===true){var rules=settings.rules;for(var type in rules){var params=this._getRuleParam(type);if(params!=={}){result[type]=params;}}}
if(result==={}){return null;}
return result;},_getRuleParam:function(type)
{var params={};if(type==='len'){params.len=WidgetStore.get(this.id+'-lenRuleLen').getValue();params.lenOp=WidgetStore.get(this.id+'-lenRuleOp').getValue();params.msg=WidgetStore.get(this.id+'-lenRuleErrorMsg').getValue();}else if(type==='email'){params.msg=WidgetStore.get(this.id+'-emailRuleErrorMsg').getValue();}else if(type==='number'){params.min=WidgetStore.get(this.id+'-numberRuleMin').getValue();params.max=WidgetStore.get(this.id+'-numberRuleMax').getValue();params.intOnly=WidgetStore.get(this.id+'-numberRuleIntOnly').getValue();params.msg=WidgetStore.get(this.id+'-numberRuleErrorMsg').getValue();}else if(type==='selcount'){params.countVal=WidgetStore.get(this.id+'-selcountRuleCount').getValue();params.countOp=WidgetStore.get(this.id+'-selcountRuleOp').getValue();params.msg=WidgetStore.get(this.id+'-selcountRuleErrorMsg').getValue();}else if(type==='fileSize'){params.min=WidgetStore.get(this.id+'-fileSizeRuleMin').getValue();params.max=WidgetStore.get(this.id+'-fileSizeRuleMax').getValue();params.msg=WidgetStore.get(this.id+'-fileSizeRuleErrorMsg').getValue();}
var div=dfx.getId(this.id+'-'+type+'RuleDiv');if(dfx.hasClass(div,'recover')===true){params.marked=true;}
return params;},};dfx.inherits('CustomFormEdit','AssetEdit');function SearchPageEditWidgetType(id,assetid,settings)
{AssetEditWidgetType.call(this,id,assetid);this.widgetType='SearchPageEdit';this.assetTypes={};this.formats={};this.noFormatBox={};this.removedAssetTypes=[];this.removedFormats={};this.currentFormat={formatType:'assetTypes',name:'default'};if(dfx.isEmpty(settings)===true){settings={};}
this.settings=settings;this.editableNodes=[];this.requestTimer=null;this.originalData=null;var self=this;dfx.foreach(settings,function(i){self.children.push(id+'-settings:'+settings[i]);});}
SearchPageEditWidgetType.prototype={init:function(data,assetid,editables)
{if(data.assetTypes&&dfx.isEmpty(data.assetTypes)===false){this.assetTypes=data.assetTypes;}
this.originalData=dfx.clone(data);if(data.formats){this.formats=data.formats;if(!this.formats.assetTypes||this.formats.assetTypes.length===0){this.formats.assetTypes={};}
if(!this.formats.positions||this.formats.positions.length===0){this.formats.positions={};}}
var self=this;this.setSaveButton(function(){if(self.readOnly!==true){self.save(function(data){if(data&&!data.errors){setTimeout(function(){dfx.trigger(dfx.getId('EditEditingModeWidgetType-assetViewBtn'),'click');},self.saveDelay);}});}},function(){dfx.trigger(dfx.getId('EditEditingModeWidgetType-assetViewBtn'),'click');});var spanln=editables.length;for(var i=0;i<spanln;i++){if(editables[i].getAttribute('assetid')===this.assetid){this.editableNodes.push(editables[i]);}}
this._setupSources();this._setupGeneric();this._setupAssetTypes();this._setupWYSIWYG();this._setupFormatsTab();this._setupPageLayoutsFormatsTab();this._setupTypeFormatsTab();this._setupPositionsFormatsTab();WidgetStore.addDataChangeListener('SearchPageAPEStateListener','bugState',function(data){if(data.state===1){self.togglePanel(true);}else if(data.state===0){self.togglePanel(false);}});},togglePanel:function(show)
{var assetTypePanel=dfx.getId(this.id+'-assetTypes-bottom');var positionPanel=dfx.getId(this.id+'-formats-positions-bottom');var typePanel=dfx.getId(this.id+'-formats-assetTypes-bottom');var previewPane=dfx.getId(this.id+'-formats-editor-previewPane');if(show===true&&this.readOnly!==true){dfx.showElement(assetTypePanel);dfx.showElement(positionPanel);dfx.showElement(typePanel);dfx.showElement(previewPane);}else{dfx.hideElement(assetTypePanel);dfx.hideElement(positionPanel);dfx.hideElement(typePanel);dfx.hideElement(previewPane);}},_setupSources:function()
{var addButton=WidgetStore.get(this.id+'-section:sources:-Button-AddNew');if(addButton){addButton.setReadOnly(this.readOnly);var staticList=WidgetStore.get(this.id+'-settings:rootNodes');var self=this;var id=this.id;var assetPicker=WidgetStore.get('EditingAssetPicker');assetPicker.setScreen(id);assetPicker.addProjectFolderWhiteList(id,'Documents');assetPicker.addProjectFolderWhiteList(id,'Images');assetPicker.addProjectFolderWhiteList(id,'Movies');assetPicker.setUniqueSelect(false);assetPicker.addAssetsSelectedAction(function(selectedAssets){var sln=selectedAssets.length;for(var i=0;i<sln;i++){staticList.addAsset(selectedAssets[i]);}
self.updatePageContents(500);});staticList.addItemEnabledEvent(function(){self.updatePageContents(500);});staticList.addItemDisabledEvent(function(){self.updatePageContents(500);});addButton.addClickEvent(function(){addButton.disable();self.displayDisabledDiv(true);assetPicker.init(id,function(){assetPicker.dialog.open();});});assetPicker.addCloseAction(function(){addButton.enable();});}},_setupFormatsTab:function()
{var id=this.id+'-formatsTab-grid-leftColumn';var tabWidget=WidgetStore.get(id);if(tabWidget){var self=this;tabWidget.addOnChangeHandler(function(newIndex,prevIndex){dfx.setStyle(dfx.getId(self.id+'-selectFormat'),'display','block');dfx.setStyle(dfx.getId(self.id+'-noCust'),'display','none');});}},_setupGeneric:function()
{var self=this;var previewButton=WidgetStore.get(this.id+'-formats-editor-previewPane-udpate');if(previewButton){this.children.push(previewButton.id);previewButton.setReadOnly(this.readOnly);previewButton.addClickEvent(function(){self.updatePageContents();});}
var revertButton=WidgetStore.get(this.id+'-formats-editor-previewPane-revert');if(revertButton){this.children.push(revertButton.id);revertButton.setReadOnly(this.readOnly);revertButton.addClickEvent(function(){var reverValue='';if(self.originalData.formats[self.currentFormat.formatType]){if(self.originalData.formats[self.currentFormat.formatType][self.currentFormat.name]){reverValue=self.originalData.formats[self.currentFormat.formatType][self.currentFormat.name];}}
self.setFormatValue(self.currentFormat.formatType,self.currentFormat.name,reverValue,false);self.showFormat(self.currentFormat.formatType,self.currentFormat.name,true);});}
var idp=this.id+'-settings:';var listType=WidgetStore.get(idp+'listType');listType.addItemSelectedEvent(function(){self.updatePageContents(500);self.setModified(true);});var resultsPerPage=WidgetStore.get(idp+'resultsPerPage');resultsPerPage.addOnChangeEvent(function(){self.updatePageContents(500);self.setModified(true);});var nextPageLinkText=WidgetStore.get(idp+'nextPageLinkText');nextPageLinkText.addOnChangeEvent(function(){self.updatePageContents(500);self.setModified(true);});var prevPageLinkText=WidgetStore.get(idp+'prevPageLinkText');prevPageLinkText.addOnChangeEvent(function(){self.updatePageContents(500);self.setModified(true);});var searchButtonText=WidgetStore.get(idp+'searchButtonText');searchButtonText.addOnChangeEvent(function(){self.updatePageContents(500);self.setModified(true);});var searchFieldWidth=WidgetStore.get(idp+'searchFieldWidth');searchFieldWidth.addOnChangeEvent(function(){self.updatePageContents(500);self.setModified(true);});},_searchControlAddOnChangeEvent:function(settingid)
{var self=this;var widget=WidgetStore.get(this.id+'-settings:'+settingid);if(widget){widget.addOnChangeEvent(function(){self.updatePageContents(500);self.setModified(true);});}},_setupAssetTypes:function()
{var self=this;var select=WidgetStore.get(this.id+'-assetTypes-select');var button=WidgetStore.get(this.id+'-assetTypes-add');var typesTable=WidgetStore.get(this.id+'-assetTypesTable');var fmtTable=WidgetStore.get(this.id+'-formats-assetTypesTable');if(button&&select&&typesTable){var self=this;select.setReadOnly(this.readOnly);button.setReadOnly(this.readOnly);typesTable.setReadOnly(this.readOnly);var typesTableDelCols=dfx.getClass('TableWidgetType-cell-assetTypes-col-delete',typesTable.domElem);if(this.readOnly===true){dfx.setStyle(typesTableDelCols,'display','none');}
typesTable.addClickEvent(this.id,function(rowid,colidx,elem){var type=rowid.split('-');type=type[(type.length-1)];if(type){if(self.readOnly===true){return;}
if(colidx===3||dfx.hasClass(elem,'delete')===true){self.toggleAssetType(type);}else if(colidx===2||dfx.hasClass(elem,'RadioButtonWidgetType')===true){self.toggleInheritance(type);}}});button.addClickEvent(function(){var assetType=select.getValue();if(assetType&&assetType!=='0'&&dfx.inArray(assetType,dfx.arrayKeys(self.assetTypes))===false){var colClass=['assetTypes-col-icon','assetTypes-col-name','assetTypes-col-delete',];var fColClass=['formats-assetTypes-col-icon','formats-assetTypes-col-name','formats-assetTypes-col-delete',];var params={action:'getTypeInfo',typeid:assetType};self.request(params,function(data){var typeInfo=dfx.jsonDecode(data);var typeIcon='<div style="background-image: url('+typeInfo.icon+');"></div>';var deleteIcon='<div class="delete"></div>';self.includeWidget('RadioButton',function(){var iid=self.id+'-'+assetType+'-inherit';var radio=self.createWidget(iid,'RadioButton');radio.setLabel('Inherit');radio.setLabelPos('left');radio.setShowLabel(true);radio.create(function(el){var row=typesTable.createRowAsElement([typeIcon,typeInfo.name,el,deleteIcon],colClass,assetType);typesTable.addRow(row);});});self.assetTypes[assetType]={name:typeInfo.name,icon:typeInfo.icon,inherit:false};if(fmtTable){var fmtTypeIcon='<div style="background-image: url('+typeInfo.icon+');"></div>';var fmtDeleteIcon='<div class="delete assetTypes-delete"></div>';var frow=fmtTable.createRowAsElement([fmtTypeIcon,typeInfo.name,fmtDeleteIcon],colClass,assetType);fmtTable.addRow(frow);self.setFormatValue('assetTypes',assetType,null,false);}
self.updatePageContents(500);});}});}},toggleAssetType:function(assetType)
{var index=this.removedAssetTypes.find(assetType);if(index===-1){this.removedAssetTypes.push(assetType);var rowid=this.id+'-assetTypesTable-row-'+assetType;dfx.addClass(dfx.getId(rowid),'disabled');this.removeFormat('assetTypes',assetType);}else{this.removedAssetTypes.splice(index,1);var rowid=this.id+'-assetTypesTable-row-'+assetType;dfx.removeClass(dfx.getId(rowid),'disabled');this.enableFormat('assetTypes',assetType);}
this.updatePageContents(500);this.setModified(true);},toggleInheritance:function(type)
{var check=WidgetStore.get(this.id+'-'+type+'-inherit');if(this.assetTypes[type].inherit!==true){this.assetTypes[type].inherit=true;check.check();}else{this.assetTypes[type].inherit=false;check.uncheck();}
this.updatePageContents(500);},_setupTypeFormatsTab:function()
{dfx.setStyle(dfx.getId(this.id+'-noCust'),'display','none');dfx.setStyle(dfx.getId(this.id+'-selectFormat'),'display','block');this._formatsTableClickEvent('assetTypes');var self=this;dfx.addEvent(dfx.getId(this.id+'-formats-assetTypes:default'),'click',function(){self.showFormat('assetTypes','default');var divid=self.id+'-formats-assetTypes:default';dfx.setStyle(dfx.getId(divid),'background-color','#D8ECFD');});var noCustBtn=WidgetStore.get(this.id+'-noCust-custBtn');if(noCustBtn){this.children.push(noCustBtn.id);noCustBtn.setReadOnly(this.readOnly);noCustBtn.addClickEvent(function(){self.setFormatValue(self.noFormatBox.formatType,self.noFormatBox.name,'',true);self.showFormat(self.noFormatBox.formatType,self.noFormatBox.name,true);});}
var add=WidgetStore.get(this.id+'-formats-assetTypes-add');var type=WidgetStore.get(this.id+'-formats-assetTypes-select');var table=WidgetStore.get(this.id+'-formats-assetTypesTable');if(add&&type&&table){add.setReadOnly(this.readOnly);type.setReadOnly(this.readOnly);this.children.push(add.id);this.children.push(type.id);var deleteCols=dfx.getClass('TableWidgetType-cell-formats-assetTypes-col-delete',table.domElem);dfx.setStyle(deleteCols,'display','none');var colClass=['formats-assetTypes-col-icon','formats-assetTypes-col-name','formats-assetTypes-col-delete',];var id=this.id;var self=this;add.addClickEvent(function(){var assetType=type.getValue();if(assetType&&assetType!=='0'&&self.formats.assetTypes.hasOwnProperty(assetType)===false){if(dfx.getId(id+'-formats-assetTypes-row-'+assetType)){return;}
var params={action:'getTypeInfo',typeid:assetType};self.request(params,function(data){var typeInfo=dfx.jsonDecode(data);var typeIcon='<div style="background-image: url('+typeInfo.icon+');"></div>';var deleteIcon='<div class="delete assetTypes-delete"></div>';var trow=table.createRowAsElement([typeIcon,typeInfo.name,deleteIcon],colClass,assetType);table.addRow(trow);self.setFormatValue('assetTypes',assetType,null,true);self.updatePageContents(500);});self.setModified(true);}});}},_setupPageLayoutsFormatsTab:function()
{this._formatsTableClickEvent('pageLayouts');},_setupPositionsFormatsTab:function()
{this._formatsTableClickEvent('positions');var addButton=WidgetStore.get(this.id+'-formats-positions-add');var selection=WidgetStore.get(this.id+'-formats-positions-select');var position=WidgetStore.get(this.id+'-formats-positions-pos');var table=WidgetStore.get(this.id+'-formats-positionsTable');if(addButton&&selection&&position&&table){addButton.setReadOnly(this.readOnly);selection.setReadOnly(this.readOnly);position.setReadOnly(this.readOnly);table.setReadOnly(this.readOnly);this.children.push(addButton.id);this.children.push(selection.id);this.children.push(position.id);this.children.push(table.id);var deleteCols=dfx.getClass('TableWidgetType-cell-formats-positionFormats-col-delete',table.domElem);if(this.readOnly){dfx.setStyle(deleteCols,'display','none');}
var colClass=['formats-positionFormats-col-icon','formats-positionFormats-col-name','formats-positionFormats-col-delete',];var typeNames=['in List','on Page'];var id=this.id;var self=this;addButton.addClickEvent(function(){var pos=position.getValue();var type=selection.getValue();var rowid=type+':'+pos;if(dfx.getId(id+'-formats-positionsTable-row-'+rowid)){return;}
var content=pos+dfx.getOrdinalSuffix(pos)+' '+typeNames[type];var deleteIcon='<div class="delete positionFormats-delete"></div>';var row=table.createRowAsElement(['',content,deleteIcon],colClass,rowid);table.addRow(row);self.setFormatValue('positions',rowid,null,false);self.setModified(true);});}},_formatsTableClickEvent:function(formatType)
{var self=this;var table=WidgetStore.get(this.id+'-formats-'+formatType+'Table');if(table){table.addClickEvent(this.id,function(rowid,colidx){var type=rowid.split('-');type=type[(type.length-1)];if(type){if(colidx===2){self.removeFormat(formatType,type);}else{self.showFormat(formatType,type);}}});}},_setupWYSIWYG:function()
{var self=this;var idp=this.id+'-settings:';var listType=WidgetStore.get(idp+'listType');if(listType&&listType.getValue()==='raw'){this.includeWidget('TextArea',function(){var editor=self.createWidget(self.id+'-editor','TextArea');self.editor=editor;var elem=dfx.getId(self.id+'-formats-editor');editor.create(function(editorEl){editor.setValue(self.formats[self.currentFormat.formatType][self.currentFormat.name]);elem.appendChild(editorEl);});});return;}
this.includeWidget('WYSIWYG',function(){var editor=self.createWidget(self.id+'-editor','WYSIWYG');self.editor=editor;var elem=dfx.getId(self.id+'-formats-editor');editor.setPluginSettings('ViperToolbarPlugin',{parent:elem.parentNode});editor.setPluginSettings('ViperKeywordPlugin',{renderKeywords:false});dfx.addEvent(dfx.getId(self.id+'-formatsTab-formatsTab'),'click',function(e){if(self.readOnly!==true){editor.enable();}else{editor.disable();}});dfx.setStyle(elem.parentNode,'position','relative');editor.load(function(){editor.setElement(elem);var editorContent=self.formats[self.currentFormat.formatType][self.currentFormat.name];editor.setContents(editorContent);if(self.readOnly===true){editor.disable();}});});},showFormat:function(formatType,name,revert)
{var tableid=this.id+'-formats-'+formatType+'Table';dfx.setStyle(dfx.getClass('TableWidgetType-row',dfx.getId(tableid)),'background-color','#FFF');var divid=this.id+'-formats-'+formatType+':default';dfx.setStyle(dfx.getId(divid),'background-color','#FFF');var tableRowid=tableid+'-row-'+name;dfx.setStyle(dfx.getId(tableRowid),'background-color','#D8ECFD');if(revert!==true){var currentVal=this.getCurrentFormatValue();this.setFormatValue(this.currentFormat.formatType,this.currentFormat.name,currentVal,false);}
var elem=dfx.getId(this.id+'-formats-editor');var html='';if(this.formatExists(formatType,name)===true){dfx.setStyle(dfx.getId(this.id+'-noCust'),'display','none');dfx.setStyle(dfx.getId(this.id+'-selectFormat'),'display','none');html=this.formats[formatType][name];}else{var self=this;this.noFormatBox={formatType:formatType,name:name}
AssetManager.getAssetTypeInfos([name],function(typeInfo){typeInfo=typeInfo[0];dfx.getId(self.id+'-noCust-img').src=typeInfo.largeIconURL;dfx.setStyle(dfx.getId(self.id+'-selectFormat'),'display','none');dfx.setStyle(dfx.getId(self.id+'-noCust'),'display','block');});return;}
if(!this.editor.setContents){if(this.editor.setValue){this.editor.setValue(html);}}else{this.editor.setContents(html);}
this.currentFormat={formatType:formatType,name:name};},setFormatValue:function(formatType,name,value,activateSave)
{if(this.formats.hasOwnProperty(formatType)===false){this.formats[formatType]={};}
this.formats[formatType][name]=value;if(activateSave===true){this.setModified(true);}},removeFormat:function(formatType,name)
{if(!this.removedFormats[formatType]){this.removedFormats[formatType]=[];}
var index=this.removedFormats[formatType].find(name);if(index===-1){this.removedFormats[formatType].push(name);}else{dfx.removeArrayIndex(this.removedFormats[formatType],index);}
var rowid=this.id+'-formats-'+formatType+'Table-row-'+name;var elem=dfx.getId(rowid);if(dfx.hasClass(elem,'disabled')===true){dfx.removeClass(elem,'disabled');}else{dfx.addClass(elem,'disabled');}
this.setModified(true);},enableFormat:function(formatType,name)
{if(this.removedFormats[formatType]){if(dfx.inArray(name,this.removedFormats[formatType])===false){return;}
var idx=this.removedFormats[formatType].find(name);if(idx!==-1){this.removedFormats[formatType].splice(idx,1);var rowid=this.id+'-formats-'+formatType+'Table-row-'+name;dfx.removeClass(dfx.getId(rowid),'disabled');this.setModified(true);}}},formatExists:function(formatType,name)
{return(this.formats[formatType]&&dfx.isset(this.formats[formatType][name])===true&&this.formats[formatType][name]!==null);},updatePageContents:function(delay)
{var currentUrl=window.location.href;var qryString=dfx.queryString(currentUrl);if(delay){clearTimeout(this.requestTimer);var self=this;this.requestTimer=setTimeout(function(){self.updatePageContents();},delay);}else{var data=this.getSaveData();var params={action:'getPreviewContent',settings:dfx.jsonEncode(data),state:dfx.jsonEncode(qryString)};var nodes=this.editableNodes;this.request(params,function(data){dfx.setHtml(nodes,data);});}},getCurrentFormatValue:function()
{var elem=dfx.getId(this.id+'-formats-editor');var contents=this.editor.getContents(elem);return contents;},getFormatsSettingValue:function()
{var currentVal=this.getCurrentFormatValue();this.setFormatValue(this.currentFormat.formatType,this.currentFormat.name,currentVal,true);var formats=this.formats;for(var formatType in formats){if(formats.hasOwnProperty(formatType)===true){for(var name in formats[formatType]){if(formats[formatType].hasOwnProperty(name)===true){if(this.removedFormats[formatType]){if(this.removedFormats[formatType].find(name)!==-1){delete this.formats[formatType][name];delete formats[formatType][name];}}
if(formats[formatType][name]){formats[formatType][name]=this.editor.getHtml(formats[formatType][name]);}}}}}
return formats;},getAssetTypesSettingValue:function()
{var types=this.assetTypes;var removed=this.removedAssetTypes;var atFilt={};dfx.foreach(types,function(assetType){var inherit=types[assetType]['inherit'];var index=dfx.inArray(assetType,removed);if(index===false){atFilt[assetType]=inherit;}
return true;});return atFilt;}};dfx.inherits('SearchPageEdit','AssetEdit');function SquizSearchPageEditWidgetType(id,assetid,settings)
{AssetEditWidgetType.call(this,id,assetid);this.widgetType='SquizSearchPageEdit';this.filterAssetTypes={};this.formats={};this.state={};this.noFormatBox={};this.currentFormat={formatType:'internalTypes',name:'default'};this.removedFilterAssetTypes=[];this.removedFormats={};if(dfx.isEmpty(settings)===true){settings={};}
this.settings=settings;this.editableNodes=[];this.requestTimer=null;this.originalData=null;var self=this;dfx.foreach(settings,function(i){self.children.push(id+'-settings:'+settings[i]);});}
SquizSearchPageEditWidgetType.prototype={init:function(data,assetid,editables)
{if(data.filterAssetTypes){this.filterAssetTypes=data.filterAssetTypes;}
if(data.state){this.state=data.state;}
this.originalData=dfx.clone(data);if(data.formats){this.formats=data.formats;if(this.formats.positions&&this.formats.positions.length===0){this.formats.positions={};}}
var self=this;this.setSaveButton(function(){if(self.readOnly!==true){self.save(function(data){if(data&&!data.errors){setTimeout(function(){dfx.trigger(dfx.getId('EditEditingModeWidgetType-assetViewBtn'),'click');},self.saveDelay);}});}},function(){dfx.trigger(dfx.getId('EditEditingModeWidgetType-assetViewBtn'),'click');});var spanln=editables.length;for(var i=0;i<spanln;i++){if(editables[i].getAttribute('assetid')===this.assetid){this.editableNodes.push(editables[i]);}}
this._setupGeneric();this._setupFilters();this._setupWYSIWYG();this._setupFormatsTab();this._setupPageLayoutsFormatsTab();this._setupInternalTypeFormatsTab();this._setupExternalTypeFormatsTab();this._setupPositionsFormatsTab();this._setupOtherFormatsTab();WidgetStore.addDataChangeListener('SquizSearchPageAPEStateListener','bugState',function(data){if(data.state===1){self.togglePanel(true);}else if(data.state===0){self.togglePanel(false);}});},togglePanel:function(show)
{var typeFilterPanel=dfx.getId(this.id+'-filters-assetTypesBottom');var positionPanel=dfx.getId(this.id+'-formats-positions-bottom');var internalPanel=dfx.getId(this.id+'-formats-internalTypes-bottom');var externalPanel=dfx.getId(this.id+'-formats-externalTypes-bottom');var previewPane=dfx.getId(this.id+'-formats-editor-previewPane');if(show===true&&this.readOnly!==true){dfx.showElement(typeFilterPanel);dfx.showElement(positionPanel);dfx.showElement(internalPanel);dfx.showElement(externalPanel);dfx.showElement(previewPane);}else{dfx.hideElement(typeFilterPanel);dfx.hideElement(positionPanel);dfx.hideElement(internalPanel);dfx.hideElement(externalPanel);dfx.hideElement(previewPane);}},_setupFormatsTab:function()
{var id=this.id+'-formatsTab-grid-leftColumn';var tabWidget=WidgetStore.get(id);if(tabWidget){var self=this;tabWidget.addOnChangeHandler(function(newIndex,prevIndex){dfx.setStyle(dfx.getId(self.id+'-selectFormat'),'display','block');dfx.setStyle(dfx.getId(self.id+'-noCust'),'display','none');});}},_setupGeneric:function()
{var self=this;var previewButton=WidgetStore.get(this.id+'-formats-editor-previewPane-udpate');if(previewButton){this.children.push(previewButton.id);previewButton.setReadOnly(this.readOnly);previewButton.addClickEvent(function(){self.updatePageContents();});}
var revertButton=WidgetStore.get(this.id+'-formats-editor-previewPane-revert');if(revertButton){this.children.push(revertButton.id);revertButton.setReadOnly(this.readOnly);revertButton.addClickEvent(function(){var reverValue='';if(self.originalData.formats[self.currentFormat.formatType]){if(self.originalData.formats[self.currentFormat.formatType][self.currentFormat.name]){reverValue=self.originalData.formats[self.currentFormat.formatType][self.currentFormat.name];}}
self.setFormatValue(self.currentFormat.formatType,self.currentFormat.name,reverValue,false);self.showFormat(self.currentFormat.formatType,self.currentFormat.name,true);});}
var idp=this.id+'-settings:';var connection=WidgetStore.get(idp+'connection');connection.addItemSelectedEvent(function(){self.populateCollectionPicker();self.updatePageContents(500);self.setModified(true);});var collection=WidgetStore.get(idp+'collection');collection.addItemSelectedEvent(function(){self.updatePageContents(500);self.setModified(true);});var listType=WidgetStore.get(idp+'listType');listType.addItemSelectedEvent(function(){self.updatePageContents(500);self.setModified(true);});var sortType=WidgetStore.get(idp+'sortType');sortType.addItemSelectedEvent(function(){self.updatePageContents(500);self.setModified(true);});var enableSpelling=WidgetStore.get(idp+'enableSpelling');enableSpelling.addToggleEvent(function(on){self.updatePageContents(500);self.setModified(true);});var resultsPerPage=WidgetStore.get(idp+'resultsPerPage');resultsPerPage.addOnChangeEvent(function(){self.updatePageContents(500);self.setModified(true);});var nextPageLinkText=WidgetStore.get(idp+'nextPageLinkText');nextPageLinkText.addOnChangeEvent(function(){self.updatePageContents(500);self.setModified(true);});var prevPageLinkText=WidgetStore.get(idp+'prevPageLinkText');prevPageLinkText.addOnChangeEvent(function(){self.updatePageContents(500);self.setModified(true);});var submitButtonText=WidgetStore.get(idp+'submitButtonText');submitButtonText.addOnChangeEvent(function(){self.updatePageContents(500);self.setModified(true);});var searchFieldWidth=WidgetStore.get(idp+'searchFieldWidth');searchFieldWidth.addOnChangeEvent(function(){self.updatePageContents(500);self.setModified(true);});var cNav=WidgetStore.get(idp+'contextualNavigation');cNav.addToggleEvent(function(on){self.updatePageContents(500);self.setModified(true);});var widgetsToUpdate=['topicMaxDepth','topicMinDepth','typeMaxDepth','typeMinDepth','siteMaxDepth','siteMinDepth'];var wln=widgetsToUpdate.length;for(var i=0;i<wln;i++){this._searchControlAddOnChangeEvent(widgetsToUpdate[i]);}},_searchControlAddOnChangeEvent:function(settingid)
{var self=this;var widget=WidgetStore.get(this.id+'-settings:'+settingid);if(widget){widget.addOnChangeEvent(function(){self.updatePageContents(500);self.setModified(true);});}},_setupFilters:function()
{var self=this;var select=WidgetStore.get(this.id+'-filters-assetTypes-select');var button=WidgetStore.get(this.id+'-filters-assetTypes-add');var filtersTable=WidgetStore.get(this.id+'-filters-assetTypesTable');if(button&&select&&filtersTable){var self=this;select.setReadOnly(this.readOnly);button.setReadOnly(this.readOnly);filtersTable.setReadOnly(this.readOnly);var filtersTableDelCols=dfx.getClass('TableWidgetType-cell-filters-assetTypes-col-delete',filtersTable.domElem);if(this.readOnly===true){dfx.setStyle(filtersTableDelCols,'display','none');}
filtersTable.addClickEvent(this.id,function(rowid,colidx,elem){var type=rowid.split('-');type=type[(type.length-1)];if(type){if(self.readOnly===true){return;}
if(colidx===2||dfx.hasClass(elem,'delete')===true){self.toggleFilterAssetType(type);}}});button.addClickEvent(function(){var assetType=select.getValue();if(assetType&&assetType!=='0'&&self.filterAssetTypes.find(assetType)===-1){var colClass=['filters-assetTypes-col-icon','filters-assetTypes-col-name','filters-assetTypes-col-delete',];var params={action:'getTypeInfo',typeid:assetType};self.request(params,function(data){var typeInfo=dfx.jsonDecode(data);var typeIcon='<div style="background-image: url('+typeInfo.icon+');"></div>';var deleteIcon='<div class="delete"></div>';var row=filtersTable.createRowAsElement([typeIcon,typeInfo.name,deleteIcon],colClass,assetType);filtersTable.addRow(row);self.filterAssetTypes.push(assetType);self.updatePageContents(500);});}});}},toggleFilterAssetType:function(assetType)
{var index=this.removedFilterAssetTypes.find(assetType);if(index===-1){this.removedFilterAssetTypes.push(assetType);var rowid=this.id+'-filters-assetTypesTable-row-'+assetType;dfx.addClass(dfx.getId(rowid),'disabled');}else{this.removedFilterAssetTypes.splice(index,1);var rowid=this.id+'-filters-assetTypesTable-row-'+assetType;dfx.removeClass(dfx.getId(rowid),'disabled');}
this.updatePageContents(500);this.setModified(true);},_setupInternalTypeFormatsTab:function()
{dfx.setStyle(dfx.getId(this.id+'-noCust'),'display','none');dfx.setStyle(dfx.getId(this.id+'-selectFormat'),'display','block');this._formatsTableClickEvent('internalTypes');var self=this;dfx.addEvent(dfx.getId(this.id+'-formats-internalTypes:default'),'click',function(){self.showFormat('internalTypes','default');var divid=self.id+'-formats-internalTypes:default';dfx.setStyle(dfx.getId(divid),'background-color','#D8ECFD');});var noCustBtn=WidgetStore.get(this.id+'-noCust-custBtn');if(noCustBtn){this.children.push(noCustBtn.id);noCustBtn.setReadOnly(this.readOnly);noCustBtn.addClickEvent(function(){self.setFormatValue(self.noFormatBox.formatType,self.noFormatBox.name,'',true);self.showFormat(self.noFormatBox.formatType,self.noFormatBox.name,true);});}
var add=WidgetStore.get(this.id+'-formats-internalTypes-add');var type=WidgetStore.get(this.id+'-formats-internalTypes-select');var table=WidgetStore.get(this.id+'-formats-internalTypesTable');if(add&&type&&table){add.setReadOnly(this.readOnly);type.setReadOnly(this.readOnly);this.children.push(add.id);this.children.push(type.id);var deleteCols=dfx.getClass('TableWidgetType-cell-formats-internalTypes-col-delete',table.domElem);dfx.setStyle(deleteCols,'display','none');var colClass=['InternalTypeFormats-col-icon','InternalTypeFormats-col-name','InternalTypeFormats-col-delete',];var id=this.id;var self=this;add.addClickEvent(function(){var assetType=type.getValue();if(assetType&&assetType!=='0'&&self.formats.internalTypes.hasOwnProperty(assetType)===false){if(dfx.getId(id+'-formats-internalTypes-row-'+assetType)){return;}
var params={action:'getTypeInfo',typeid:assetType};self.request(params,function(data){var typeInfo=dfx.jsonDecode(data);var typeIcon='<div style="background-image: url('+typeInfo.icon+');"></div>';var deleteIcon='<div class="delete internalTypes-delete"></div>';var trow=table.createRowAsElement([typeIcon,typeInfo.name,deleteIcon],colClass,assetType);table.addRow(trow);self.setFormatValue('internalTypes',assetType,null,true);self.updatePageContents(500);});self.setModified(true);}});}},_setupExternalTypeFormatsTab:function()
{dfx.setStyle(dfx.getId(this.id+'-noCust'),'display','none');dfx.setStyle(dfx.getId(this.id+'-selectFormat'),'display','block');this._formatsTableClickEvent('externalTypes');var self=this;dfx.addEvent(dfx.getId(this.id+'-formats-externalTypes:default'),'click',function(){self.showFormat('externalTypes','default');var divid=self.id+'-formats-externalTypes:default';dfx.setStyle(dfx.getId(divid),'background-color','#D8ECFD');});var noCustBtn=WidgetStore.get(this.id+'-noCust-custBtn');if(noCustBtn){this.children.push(noCustBtn.id);noCustBtn.setReadOnly(this.readOnly);noCustBtn.addClickEvent(function(){self.setFormatValue(self.noFormatBox.formatType,self.noFormatBox.name,'',true);self.showFormat(self.noFormatBox.formatType,self.noFormatBox.name,true);});}
var add=WidgetStore.get(this.id+'-formats-externalTypes-add');var type=WidgetStore.get(this.id+'-formats-externalTypes-type');var table=WidgetStore.get(this.id+'-formats-externalTypesTable');if(add&&type&&table){add.setReadOnly(this.readOnly);type.setReadOnly(this.readOnly);this.children.push(add.id);this.children.push(type.id);var deleteCols=dfx.getClass('TableWidgetType-cell-formats-externalTypes-col-delete',table.domElem);dfx.setStyle(deleteCols,'display','none');var colClass=['ExternalTypeFormats-col-icon','ExternalTypeFormats-col-name','ExternalTypeFormats-col-delete',];var id=this.id;var self=this;add.addClickEvent(function(){var assetType=type.getValue();if(assetType&&self.formats.externalTypes.hasOwnProperty(assetType)===false){if(dfx.getId(id+'-formats-externalTypes-row-'+assetType)){return;}
var deleteIcon='<div class="delete externalTypes-delete"></div>';var row=table.createRowAsElement(['',assetType,deleteIcon],colClass,assetType);table.addRow(row);self.setFormatValue('externalTypes',assetType,null,false);self.setModified(true);}});}},_setupPageLayoutsFormatsTab:function()
{this._formatsTableClickEvent('pageLayouts');},_setupPositionsFormatsTab:function()
{this._formatsTableClickEvent('positions');var addButton=WidgetStore.get(this.id+'-formats-positions-add');var selection=WidgetStore.get(this.id+'-formats-positions-select');var position=WidgetStore.get(this.id+'-formats-positions-pos');var table=WidgetStore.get(this.id+'-formats-positionsTable');if(addButton&&selection&&position&&table){addButton.setReadOnly(this.readOnly);selection.setReadOnly(this.readOnly);position.setReadOnly(this.readOnly);table.setReadOnly(this.readOnly);this.children.push(addButton.id);this.children.push(selection.id);this.children.push(position.id);this.children.push(table.id);var deleteCols=dfx.getClass('TableWidgetType-cell-formats-positionFormats-col-delete',table.domElem);if(this.readOnly){dfx.setStyle(deleteCols,'display','none');}
var colClass=['formats-positionFormats-col-icon','formats-positionFormats-col-name','formats-positionFormats-col-delete',];var typeNames=['in List','on Page'];var id=this.id;var self=this;addButton.addClickEvent(function(){var pos=position.getValue();var type=selection.getValue();var rowid=type+':'+pos;if(dfx.getId(id+'-formats-positionsTable-row-'+rowid)){return;}
var content=pos+dfx.getOrdinalSuffix(pos)+' '+typeNames[type];var deleteIcon='<div class="delete positionFormats-delete"></div>';var row=table.createRowAsElement(['',content,deleteIcon],colClass,rowid);table.addRow(row);self.setFormatValue('positions',rowid,null,false);self.setModified(true);});}},_setupOtherFormatsTab:function()
{this._formatsTableClickEvent('other');},_formatsTableClickEvent:function(formatType)
{var self=this;var table=WidgetStore.get(this.id+'-formats-'+formatType+'Table');if(table){table.addClickEvent(this.id,function(rowid,colidx){var type=rowid.split('-');type=type[(type.length-1)];if(type){if(colidx===2){self.removeFormat(formatType,type);}else{self.showFormat(formatType,type);}}});}},_setupWYSIWYG:function()
{var self=this;var idp=this.id+'-settings:';var listType=WidgetStore.get(idp+'listType');if(listType&&listType.getValue()==='raw'){this.includeWidget('TextArea',function(){var editor=self.createWidget(self.id+'-editor','TextArea');self.editor=editor;var elem=dfx.getId(self.id+'-formats-editor');editor.create(function(editorEl){editor.setValue(self.formats[self.currentFormat.formatType][self.currentFormat.name]);elem.appendChild(editorEl);});});return;}
this.includeWidget('WYSIWYG',function(){var editor=self.createWidget(self.id+'-editor','WYSIWYG');self.editor=editor;var elem=dfx.getId(self.id+'-formats-editor');editor.setPluginSettings('ViperToolbarPlugin',{parent:elem.parentNode});dfx.addEvent(dfx.getId(self.id+'-formatsTab-formatsTab'),'click',function(e){if(self.readOnly!==true){editor.enable();}else{editor.disable();}});dfx.setStyle(elem.parentNode,'position','relative');editor.load(function(){editor.setElement(elem);var editorContent=self.formats[self.currentFormat.formatType][self.currentFormat.name];editor.setContents(editorContent);if(self.readOnly===true){editor.disable();}});});},showFormat:function(formatType,name,revert)
{var tableid=this.id+'-formats-'+formatType+'Table';dfx.setStyle(dfx.getClass('TableWidgetType-row',dfx.getId(tableid)),'background-color','#FFF');var divid=this.id+'-formats-'+formatType+':default';dfx.setStyle(dfx.getId(divid),'background-color','#FFF');var tableRowid=tableid+'-row-'+name;dfx.setStyle(dfx.getId(tableRowid),'background-color','#D8ECFD');if(revert!==true){var currentVal=this.getCurrentFormatValue();this.setFormatValue(this.currentFormat.formatType,this.currentFormat.name,currentVal,false);}
var elem=dfx.getId(this.id+'-formats-editor');var html='';if(this.formatExists(formatType,name)===true){dfx.setStyle(dfx.getId(this.id+'-noCust'),'display','none');dfx.setStyle(dfx.getId(this.id+'-selectFormat'),'display','none');html=this.formats[formatType][name];}else{var self=this;this.noFormatBox={formatType:formatType,name:name}
AssetManager.getAssetTypeInfos([name],function(typeInfo){typeInfo=typeInfo[0];dfx.getId(self.id+'-noCust-img').src=typeInfo.largeIconURL;dfx.setStyle(dfx.getId(self.id+'-selectFormat'),'display','none');dfx.setStyle(dfx.getId(self.id+'-noCust'),'display','block');});return;}
if(!this.editor.setContents){if(this.editor.setValue){this.editor.setValue(html);}}else{this.editor.setContents(html);}
this.currentFormat={formatType:formatType,name:name};},setFormatValue:function(formatType,name,value,activateSave)
{if(this.formats.hasOwnProperty(formatType)===false){this.formats[formatType]={};}
this.formats[formatType][name]=value;if(activateSave===true){this.setModified(true);}},removeFormat:function(formatType,name)
{if(!this.removedFormats[formatType]){this.removedFormats[formatType]=[];}
var index=this.removedFormats[formatType].find(name);if(index===-1){this.removedFormats[formatType].push(name);}else{dfx.removeArrayIndex(this.removedFormats[formatType],index);}
var rowid=this.id+'-formats-'+formatType+'Table-row-'+name;var elem=dfx.getId(rowid);if(dfx.hasClass(elem,'disabled')===true){dfx.removeClass(elem,'disabled');}else{dfx.addClass(elem,'disabled');}
this.setModified(true);},formatExists:function(formatType,name)
{return(this.formats[formatType]&&dfx.isset(this.formats[formatType][name])===true);},updatePageContents:function(delay)
{if(delay){clearTimeout(this.requestTimer);var self=this;this.requestTimer=setTimeout(function(){self.updatePageContents();},delay);}else{var data=this.getSaveData();var params={action:'getPreviewContent',settings:dfx.jsonEncode(data),state:dfx.jsonEncode(this.state)};var nodes=this.editableNodes;this.request(params,function(data){dfx.setHtml(nodes,data);});}},populateCollectionPicker:function()
{var idp=this.id+'-settings:';var connection=WidgetStore.get(idp+'connection');var collection=WidgetStore.get(idp+'collection');var params={action:'getAvailableCollections',server:dfx.jsonEncode(connection.getValue())};this.request(params,function(data){var opts=dfx.jsonDecode(data);collection.removeAllOptions();if(opts){for(var index in opts){collection.addOption(opts[index],index);}}
collection.setValue(0);});},getCurrentFormatValue:function()
{var elem=dfx.getId(this.id+'-formats-editor');var contents=this.editor.getContents(elem);return contents;},getFormatsSettingValue:function()
{var currentVal=this.getCurrentFormatValue();this.setFormatValue(this.currentFormat.formatType,this.currentFormat.name,currentVal,true);var formats=this.formats;var listType=WidgetStore.get(this.id+'-settings:listType');if(listType){listType=listType.getValue();}
for(var formatType in formats){if(formats.hasOwnProperty(formatType)===true){for(var name in formats[formatType]){if(formats[formatType].hasOwnProperty(name)===true){if(this.removedFormats[formatType]){if(this.removedFormats[formatType].find(name)!==-1){delete this.formats[formatType][name];delete formats[formatType][name];}}
if(formats[formatType][name]&&listType!=='raw'){formats[formatType][name]=this.editor.getHtml(formats[formatType][name]);}}}}}
return formats;},getFiltersSettingValue:function()
{var filters=this.filterAssetTypes;var removed=this.removedFilterAssetTypes;var atFilt=[];for(var i in filters){var assetType=filters[i];var index=removed.find(assetType);if(index===-1){atFilt.push(assetType);}}
return{'assetTypes':atFilt};}};dfx.inherits('SquizSearchPageEdit','AssetEdit');function WizardStepManagerWidgetType(id)
{CardLayoutWidgetType.call(this,id);this.widgetType='WizardStepManager';this.allowMultiCreate=true;this.multiStepsData=[];this.currentMultiStepIdx=0;this.ruleWidgets={};this.steps=[];this.stepCards=[];this.currentDataIndex=0;this.maxCreate=10;this.totalSteps=null;this.stepChangedActions=[];this.indexChangedActions=[];this.stepTitles=[];this.disabledData=[];this.processActions=[];this.dialogButtons={};this.buttonAdded=false;this.dataWidgets=[];this.editingEnabled=false;this.wizardidForLabel='';this.wizardDivids=[];this.modalDialog=null;this.errors={};this.errorFns=[];this.multiDataStatus={};this.multiLockedData={};this.ellipsisLen=null;this.visitedStepCount=0;this.assets=1;this.assetButtons=[];}
WizardStepManagerWidgetType.prototype={init:function(callback)
{var self=this;var confirmId=this.id+'-confirmStep';this.confirmStep=dfx.getId(confirmId);this.confirmStep.id=confirmId;if(dfx.isset(dfx.getId(this.id))===true){this._addCards();}},setConfirmStepElem:function(elem)
{this.confirmStep=elem;},setRules:function(rules)
{this.rules=rules;},setSteps:function(steps)
{this.steps=steps;var c=this.getThisClassName()+'-multiCreate-item';this.assetButtons.push(dfx.getClass(c)[0]);if(steps&&steps[0]&&steps[0].widgets){var titleIndex=steps[0].widgets.find('title');var widget=WidgetStore.get(steps[0].widgets[titleIndex]);if(widget){var elem=widget.domElem;var self=this;var name='';this.ellipsisLen=null;dfx.addEvent(elem,'keyup',function(e){name=widget.getValue();var keyCode=null;if(e.originalEvent){keyCode=e.originalEvent.keyCode;}
self._updateTitle(self.currentMultiStepIdx,name,keyCode)});}}
this.reset();this.selectStepData(0);this.setCurrentStep(0,true);},_updateTitle:function(index,title,key)
{var c=this.getThisClassName()+'-multiCreate-item';var buttonTitle=dfx.getClass(c+'-title',this.assetButtons[index]);var browserInfo=dfx.browser();var name=title;if(name!==''){dfx.setHtml(buttonTitle,name);dfx.ellipsizeDom(buttonTitle,150);}else{dfx.setHtml(buttonTitle,'Asset '+(index+1));}},addWizardButtons:function(modal)
{this.modalDialog=modal;var self=this;var singleStep=false;var secondBtnTitle='Next';this.totalSteps=this.cards.length;if(this.totalSteps===1){singleStep=true;secondBtnTitle='Finish';}
modal.addButton(secondBtnTitle,function(nextBtn){modal.addButton('Prev',function(prevBtn){modal.addButton('Add More',function(moreBtn){modal.addButton('Close',function(closeBtn){dfx.addClass(closeBtn,'WizardStepManagerWidgetType-closeBtn');dfx.addClass(prevBtn,'WizardStepManagerWidgetType-closeBtn');dfx.setStyle(moreBtn.domElem,'float','left');self.dialogButtons.Prev=WidgetStore.get(prevBtn.id);self.dialogButtons.Next=WidgetStore.get(nextBtn.id);self.dialogButtons.More=WidgetStore.get(moreBtn.id);self.dialogButtons.Close=WidgetStore.get(closeBtn.id);self.dialogButtons.Close.hide();self.dialogButtons.Close.addClickEvent(function(){modal.close(true,true);var activeMode=WidgetStore.getData('activeMode');if(activeMode.id==='PreviewEditingMode'){self.displayDisabledDiv(true);window.location.href=window.location.href;}});self.dialogButtons.Prev.disable();self.dialogButtons.Prev.addClickEvent(function(e){self._prevButtonAction(e);});self.dialogButtons.Next.addClickEvent(function(e){if(singleStep===true){self._finishButtonAction(e);}else{self._nextButtonAction(e);}});self.dialogButtons.More.addClickEvent(function(e){if(self.assets<9){self.addNewAsset();}else if(self.assets>=9){self.addNewAsset();self.dialogButtons.More.disable();}});});});});});},updateButtons:function()
{var cs=this.currentCardIndex;var total=this.getTotalSteps();var self=this;for(var button in this.dialogButtons){var bt=this.dialogButtons[button];switch(button){case'Prev':if(cs===0){bt.disable();}else if(cs===(total-1)){bt.disable();}else{bt.enable();}
break;case'Next':if(cs===(total-2)){bt.setName('Finish');bt.addClickEvent(function(e){self._finishButtonAction(e);},true);}else{bt.setName('Next');bt.addClickEvent(function(e){self._nextButtonAction(e);},true);}
break;default:break;}}},addNewAsset:function()
{var self=this;var c=this.getThisClassName()+'-multiCreate-item';if(this.assets===1){this._addMultiCreateButtonEvent(dfx.getClass(c)[0],0);}
this.assets++;var multiStepData=this._getCurrentMultiStepData(true);var title='Asset '+this.assets;dfx.foreach(this.multiLockedData,function(wid){multiStepData[wid]=dfx.clone(self.multiLockedData[wid],false);if(wid==='title'){title=multiStepData[wid].value;}
return true;});var idx=(this.assets-1);this.multiStepsData[idx]=multiStepData;var div=this._createMultiButton(title,idx);this.assetButtons.push(div);this.multiDataStatus[idx]=true;this.selectStepData(idx);this.setCurrentStep(0,true);var delIcon=dfx.getClass(c+'-disable',div)[0];if(!delIcon){return;}
var self=this;dfx.addEvent(delIcon,'click',function(e){var enabled=self.multiDataStatus[idx];if(enabled===true){if(self.assets===1){return;}
self.multiDataStatus[idx]=false;var newSelected=(idx-1);while(self.multiDataStatus[newSelected]===false){newSelected=(newSelected-1);}
self.selectStepData(newSelected);dfx.addClass(div,'disabled');dfx.addClass(delIcon,'recover');}else{self.multiDataStatus[idx]=true;for(var step=0;step<self.getCurrentStep();step++){var stepErrors=false;self.validateStep(function(result){if(result!==true){var errors=[];for(var widgetid in result[idx]){if(result[idx][widgetid].result===false){stepErrors=true;errors.push({widgetid:widgetid,assetIndex:idx,msg:result[idx][widgetid].errors[0]});}}}
if(stepErrors===true){self.setStepErrors.call(self,step,errors);self.setCurrentStep.call(self,step,true);self.visitedStepCount=step;}},step);if(stepErrors===true){break;}}
self.selectStepData(idx);dfx.removeClass(div,'disabled');dfx.removeClass(delIcon,'recover');}});},getDialogButtonWidgets:function()
{return this.dialogButtons;},nextStep:function()
{var current=this.getCurrentStep();this.setCurrentStep((current+1));},previousStep:function()
{var current=this.getCurrentStep();this.setCurrentStep((current-1));},setCurrentStep:function(step,noValidation)
{if(step<0||step>this.steps.length){return;}
this._setMultiStepData(this.currentMultiStepIdx,this._getCurrentMultiStepData());if(noValidation!==true){var self=this;this.validateStep(function(result){var res=true;if(result!==true){var errors=[];var resLen=result.length;for(var i=0;i<resLen;i++){if(self.multiDataStatus[i]===false){continue;}
for(var widgetid in result[i]){if(result[i][widgetid].result===false){res=false;errors.push({widgetid:widgetid,assetIndex:i,msg:result[i][widgetid].errors[0]});}}}}
if(res===true){self.setStepErrors(self.getCurrentStep(),[]);if(self.visitedStepCount<step){self.visitedStepCount=step;}
self.setCurrentStep(step,true);}else{self.setStepErrors(self.getCurrentStep(),errors);if(step<self.getCurrentStep()){self.setCurrentStep(step,true);}else{}}
self.showErrors();});return;}
if(this.visitedStepCount<step){return;}
for(var i=0;i<step;i++){if(this.getStepState(i)==='error'){return false;}}
if(step===this.steps.length){this.currentCardIndex++;this.process();}else{this.show(step);}
this.updateButtons();this.fireStepChanged();},_prevButtonAction:function(e)
{this.previousStep();},_nextButtonAction:function(e)
{this.nextStep();},_finishButtonAction:function(e)
{this.setCurrentStep(this.steps.length);},validateStep:function(callback,step)
{var result=true;if(step===undefined){var step=this.getCurrentStep();}
var stepInfo=this.steps[step];var widgets=stepInfo.widgets;var classes=['Button'];var wdgtLen=widgets.length;for(var i=0;i<wdgtLen;i++){var widgetid=widgets[i];if(dfx.isset(this.rules[widgetid])===true){var wid=widgetid;var ruleLen=this.rules[wid].length;for(var j=0;j<ruleLen;j++){var ruleInfo=this.rules[wid][j];var ruleType=ruleInfo.type;var ruleClassN='RuleType'+dfx.ucFirst(ruleType);classes.push(ruleClassN);}}}
var self=this;var result=[];this.includeWidgets(classes,function(){if(self.multiStepsData.length>0){var multiLen=self.multiStepsData.length;for(var k=0;k<multiLen;k++){var skip=false;if(k>0){var multiBtn=dfx.getId('multiCreate-button-icon-'+k);if(dfx.hasClass(multiBtn,'WizardStepManagerWidgetType-multiCreate-button-icon-disable')===true){skip=true;}}
result.push({});if(skip===false){var res=self._validateStep(k,step);result[k]=dfx.clone(res);}else{result[k].result=true;result[k].errors=[];}}}else{result.push({});var res=self._validateStep(0,step);result[0]=dfx.clone(res);}
if(result.length===0){callback.call(self,true);}else{var isValid=true;var resultLen=result.length;for(var l=0;l<resultLen;l++){for(var wid in result[l]){isValid=result[l][wid].result&&isValid;}}
if(isValid===true){callback.call(self,true);}else{callback.call(self,result);}}});},_validateStep:function(index,step)
{var stepInfo=this.steps[step];var widgets=stepInfo.widgets;var result={};var wdgtLen=widgets.length;for(var i=0;i<wdgtLen;i++){if(dfx.isset(this.rules[widgets[i]])===true){var wid=widgets[i];result[wid]={errors:[],result:true};var ruleLen=this.rules[wid].length;for(var j=0;j<ruleLen;j++){var ruleInfo=this.rules[wid][j];var ruleWidget=this._getRuleTypeWidget(ruleInfo);ruleWidget.setWidgetid(wid);var widget=WidgetStore.get(wid);if(widget.getDefaultValue&&widget.getLocalInstanceDefaultValue){var valueNotSetValue=widget.getValueNotSetValue();if(this.multiStepsData[index][wid].value===valueNotSetValue&&this.multiStepsData[index][wid].defaultValue!==widget.getDefaultNotSetValue()){ruleWidget.setValue(this.multiStepsData[index][wid].defaultValue);}else if(this.multiStepsData[index][wid].value===valueNotSetValue&&this.multiStepsData[index][wid].localInstanceDefaultValue!==widget.getLocalInstanceDefaultNotSetValue()){ruleWidget.setValue(this.multiStepsData[index][wid].localInstanceDefaultValue);}else{ruleWidget.setValue(this.multiStepsData[index][wid].value);}}else{ruleWidget.setValue(this.multiStepsData[index][wid]);}
result[wid].result=result[wid].result&&ruleWidget.validate();if(result[wid].result===false){if(dfx.isset(ruleInfo.error)===true){result[wid].errors=[ruleInfo.error];}else{result[wid].errors=ruleWidget.getErrors();}
break;}}}}
return result;},_getRuleTypeWidget:function(ruleInfo)
{var ruleType=ruleInfo.type;var ruleClassN='';var ruleWidget=null;if(dfx.isset(this.ruleWidgets[ruleType])===false){ruleClassN='RuleType'+dfx.ucFirst(ruleType);this.ruleWidgets[ruleType]=this.createWidget('ruleType-'+ruleType,ruleClassN);ruleWidget=this.ruleWidgets[ruleType];}else{ruleWidget=this.ruleWidgets[ruleType];ruleWidget.reset();}
for(var val in ruleInfo){if(val==='type'||val==='client'||val==='server'||val==='error'){continue;}
var evalStr='ruleWidget.set'+dfx.ucFirst(val)+'(ruleInfo[val])';eval(evalStr);}
return ruleWidget;},setWizardIdForLabel:function(wizardid)
{this.wizardidForLabel=wizardid;},setWizardDivIds:function(wizardDivids)
{this.wizardDivids=wizardDivids;var self=this;var len=this.wizardDivids.length;for(var i=0;i<len;i++){(function(idx){var wdivWdgt=WidgetStore.get(self.wizardDivids[idx]);wdivWdgt.addLockAction(function(checked){var widgetid=wdivWdgt.getWidgetId();var widget=WidgetStore.get(widgetid);var value=widget.getValue();if(checked===true){widget.disable();var itemLen=self.multiStepsData.length;for(var itemIdx=1;itemIdx<itemLen;itemIdx++){if(widget.getDefaultValue&&widget.getLocalInstanceDefaultValue){self.multiStepsData[itemIdx][widgetid].value=value;}else{self.multiStepsData[itemIdx][widgetid]=dfx.clone(value,false);}
if(widgetid==='title'){self._updateTitle(itemIdx,value);}}
if(widget.getDefaultValue&&widget.getLocalInstanceDefaultValue){self.multiLockedData[widgetid]={value:value,defaultValue:widget.getDefaultValue(),localInstanceDefaultValue:widget.getLocalInstanceDefaultNotSetValue()};}else{self.multiLockedData[widgetid]=dfx.clone(value,false);}}else if(checked===false){widget.enable();delete self.multiLockedData[widgetid];}});})(i);}},selectStepData:function(index)
{var wizardDivsLen=this.wizardDivids.length;for(var i=0;i<wizardDivsLen;i++){var widget=WidgetStore.get(this.wizardDivids[i]);if(index===0){widget.show();}else{widget.hide();}}
var c=this.getThisClassName()+'-multiCreate-item';var el=dfx.getId(this.id+'-addMore-items');var buttons=dfx.getClass(c,el);if(dfx.isset(buttons[index])===true){dfx.removeClass(buttons,'selected');dfx.addClass(buttons[index],'selected');var currData=this._getCurrentMultiStepData();this._setMultiStepData(this.currentMultiStepIdx,currData);this._setCurrentMultiStepData(index);this.currentMultiStepIdx=index;}
this.fireDataIndexChanged(index)},_createMultiButton:function(title,index,selected)
{var c=this.getThisClassName()+'-multiCreate-item';var div=document.createElement('div');dfx.addClass(div,c);var content='<div class="'+c+'-title">'+title+'</div>';content+='<div class="'+c+'-disable" title="Do not create an item"></div>';content+='<div class="'+c+'-state"></div>';dfx.setHtml(div,content);var elItems=dfx.getId(this.id+'-addMore-items');elItems.appendChild(div);this._addMultiCreateButtonEvent(div,index);return div;},_addMultiCreateButtonEvent:function(el,index)
{var self=this;dfx.addEvent(el,'click',function(){if(dfx.hasClass(el,'disabled')===true){return;}
self.selectStepData(index);self.showErrors(index);});},_getCurrentMultiStepData:function(noVal)
{var stepData={};var stepsLen=this.steps.length;for(var j=0;j<stepsLen;j++){var widgetsLen=this.steps[j].widgets.length;for(var k=0;k<widgetsLen;k++){var widgetid=this.steps[j].widgets[k];if(noVal===true){var widget=WidgetStore.get(widgetid);if(widget.getDefaultValue&&widget.getLocalInstanceDefaultValue){stepData[widgetid]={defaultValue:widget.getDefaultValue(),localInstanceDefaultValue:widget.getLocalInstanceDefaultNotSetValue(),value:widget.getValueNotSetValue()};}else if(!widget.toggleOn){stepData[widgetid]='';}}else{var widget=WidgetStore.get(widgetid);if(widget.getDefaultValue&&widget.getLocalInstanceDefaultValue){stepData[widgetid]={defaultValue:widget.getDefaultValue(),localInstanceDefaultValue:widget.getLocalInstanceDefaultValue(),value:widget.getValue()};}else{stepData[widgetid]=widget.getValue();}}}}
return stepData;},getCurrentStepDataIndex:function()
{return this.currentMultiStepIdx;},_setCurrentMultiStepData:function(idx)
{var self=this;dfx.foreach(this.multiStepsData[idx],function(widgetid){var widget=WidgetStore.get(widgetid);if(widget.getDefaultValue&&widget.getLocalInstanceDefaultValue){widget.setDefaultValue(self.multiStepsData[idx][widgetid].defaultValue);widget.setLocalInstanceDefaultValue(self.multiStepsData[idx][widgetid].localInstanceDefaultValue);widget.setValue(self.multiStepsData[idx][widgetid].value);}else{widget.setValue(self.multiStepsData[idx][widgetid],true,idx);}
return true;});},_resetCurrentMultiStepData:function()
{var self=this;dfx.foreach(this.multiStepsData[0],function(widgetid){var widget=WidgetStore.get(widgetid);if(dfx.isFn(widget.clearValue)===true){widget.clearValue();if(self.multiStepsData[0][widgetid].value){self.multiStepsData[0][widgetid].value=widget.getValue();}else{self.multiStepsData[0][widgetid]=widget.getValue();}}
return true;});var buttonTitle=dfx.getClass(this.getThisClassName()+'-multiCreate-item-title',this.assetButtons[0])[0];dfx.setHtml(buttonTitle,'Asset 1');this.selectStepData(0);},_getMultiStepData:function(idx)
{return this.multiStepsData[idx];},_setMultiStepData:function(idx,data)
{this.multiStepsData[idx]=data;},setStepFieldData:function(stepIdx,dataName,value)
{this.multiStepsData[stepIdx][dataName]=value;},process:function()
{this._showProcessing(true);this.fireProcessActions(this.steps);},disableButtons:function()
{this.modalDialog.disableButtons();},enableButtons:function()
{this.modalDialog.enableButtons();},_showProcessing:function(withLoader)
{this.hideAll();dfx.setStyle(dfx.getId('WizardRunner-wizardSteps'),'display','none');dfx.setStyle(dfx.getId('WizardRunner-wizardStepManagerWrapper'),'display','none');this.disableButtons();if(withLoader&&withLoader===true){this.displayDisabledDiv(true,dfx.getId('WizardRunner-wrapper'),'white','absolute');}else{this.removeDisabledDiv('WizardRunner-wrapper');}
dfx.setStyle(dfx.getId('WizardRunner-wizardStepManager-confirmStep'),'display','block');this._showConfirmProcessing();},_showConfirmProcessing:function()
{dfx.setStyle(dfx.getId('WizardRunner-wizardStepManager-confirmStep-processing'),'display','block');},_hideConfirmProcessing:function()
{dfx.setStyle(dfx.getId('WizardRunner-wizardStepManager-confirmStep-processing'),'display','none');},_setProcessingMessage:function(msg)
{if(dfx.isset(msg)===true){var processingEl=dfx.getId(this.confirmStep.id+'-processing');if(typeof msg==='string'){dfx.setHtml(processingEl,msg);}else{dfx.empty(processingEl);processingEl.appendChild(msg);}}},_showSuccess:function(result,errors)
{var self=this;var c=this.getThisClassName()+'-success';var main=document.createElement('div');dfx.addClass(main,c);var content='<div class="'+c+'-left"><h2>Wizard Complete</h2>';content+='<div class="'+c+'-msg">';var okHtml=' asset(s) have now been created. You can now edit the asset(s),';okHtml+=' restart the wizard or close the wizard and return to the last screen you were viewing.</div>';var failHtml='';if(errors&&errors.length>0){var failCnt=0;failHtml='<h3>Not all assets were created</h3>';failHtml+='<div class="'+c+'-msg">';dfx.foreach(errors,function(idx){failHtml+=errors[idx].msg.replace(/&lt;/g,'<').replace(/&gt;/g,'>')+'<br />';failCnt++;return true;});var okCnt=0;for(var successid in result.assets){okCnt++;}
failHtml+='</div>';totalCnt=okCnt+failCnt;okHtml='<strong>'+okCnt+' out of '+totalCnt+'</strong>'+okHtml;}else{okHtml='All'+okHtml;}
content+=okHtml+failHtml;content+='<div class="'+c+'-restartBtn"></div>';content+='</div>';content+='<div class="'+c+'-right"></div>';dfx.setHtml(main,content);var restartBtnCont=dfx.getClass(c+'-restartBtn',main)[0];var rightCont=dfx.getClass(c+'-right',main)[0];this.includeWidget('Button',function(){var restartButton=self.createWidget(null,'Button','ButtonWidgetType-liteGrey');restartButton.setName('Restart Wizard');restartButton.addClickEvent(function(){self.reset();},true);restartButton.create(function(el){restartBtnCont.appendChild(el);});for(var assetid in result.assets){if(result.assets.hasOwnProperty(assetid)===false){continue;}
var info=result.assets[assetid];rightCont.appendChild(self._createSuccessAssetCont(info,result.icon));}});var confirmCont=dfx.getId(this.confirmStep.id+'-success');dfx.empty(confirmCont);confirmCont.appendChild(main);dfx.setStyle(dfx.getId('WizardRunner-wizardStepManagerWrapper'),'display','none');dfx.addClass(this.confirmStep,'success');setTimeout(function(){self.dialogButtons.Prev.hide();self.dialogButtons.Next.hide();self.dialogButtons.More.hide();self.dialogButtons.Close.show();self.modalDialog.enableButtons();self.removeDisabledDiv(dfx.getId('WizardRunner-wrapper'));},500);},_createSuccessAssetCont:function(info,icon)
{if(info.name.length>20){info.name=dfx.ellipsize(info.name,20);}
var c=this.getThisClassName()+'-success-asset';var assetCont=document.createElement('div');dfx.addClass(assetCont,c);var assethtml='<div class="'+c+'-icon" style="background-image:url('+icon;assethtml+=');"></div>';assethtml+='<div class="'+c+'-name">'+info.name+'</div>';assethtml+='<div class="'+c+'-btn"></div>';dfx.setHtml(assetCont,assethtml);var btnCont=dfx.getClass(c+'-btn',assetCont)[0];var editBtn=this.createWidget(null,'Button','ButtonWidgetType-liteGrey');editBtn.setName('Edit');editBtn.addClickEvent(function(){window.location=info.url;});editBtn.create(function(editBtnEl){dfx.addClass(editBtnEl,'WizardStepManagerWidgetType-editAssetBtn');btnCont.appendChild(editBtnEl);});return assetCont;},_showCompleteMsg:function(result)
{if(result.hasOwnProperty('success')===true){this._showSuccess(result.success,result.errors);}else{this._showFailed(result.errors,result.type)}},_showFailed:function(errors,type)
{if(type==='validation'){var stepErrors={};var eln=errors.length;var steps=[];for(var i=0;i<eln;i++){var error=errors[i];var newErr={widgetid:error.widget,assetIndex:error.item};var mln=error.errors.length;newErr.msg=[];for(var j=0;j<mln;j++){newErr.msg.push(error.errors[j]);}
newErr.msg=newErr.msg.join('<br />');if(!stepErrors['step_'+error.step]){stepErrors['step_'+error.step]=[];}
stepErrors['step_'+error.step].push(newErr);steps.push(error.step);}
this._resetConfirmStepArea();var stepln=steps.length;if(stepln>0){for(var i=0;i<stepln;i++){this.setStepErrors(steps[i],stepErrors['step_'+steps[i]]);}
this.setCurrentStep(steps[0],true);dfx.setStyle(dfx.getId('WizardRunner-wizardSteps'),'display','block');dfx.setStyle(dfx.getId('WizardRunner-wizardStepManagerWrapper'),'display','block');this.show(steps[0]);this.showErrors();this.modalDialog.enableButtons();this.updateButtons();this.removeDisabledDiv(dfx.getId('WizardRunner-wrapper'));}}else{var self=this;var c=this.getThisClassName()+'-success';var main=document.createElement('div');dfx.addClass(main,c);var content='<div class="'+c+'-left"><h2>Failed to Create Asset</h2>';content+='<div class="'+c+'-msg">';dfx.foreach(errors,function(idx){content+=errors[idx].msg.replace(/&lt;/g,'<').replace(/&gt;/g,'>')+'<br />';return true;});content+='</div>';content+='<div class="'+c+'-restartBtn"></div>';content+='</div>';content+='<div class="'+c+'-right"></div>';dfx.setHtml(main,content);var restartBtnCont=dfx.getClass(c+'-restartBtn',main)[0];var rightCont=dfx.getClass(c+'-right',main)[0];this.includeWidget('Button',function(){var restartButton=self.createWidget(null,'Button','ButtonWidgetType-liteGrey');restartButton.setName('Restart Wizard');restartButton.addClickEvent(function(){self.reset();},true);restartButton.create(function(el){restartBtnCont.appendChild(el);});});var confirmCont=dfx.getId(this.confirmStep.id+'-success');dfx.empty(confirmCont);confirmCont.appendChild(main);dfx.setStyle(dfx.getId('WizardRunner-wizardStepManagerWrapper'),'display','none');dfx.addClass(this.confirmStep,'success');setTimeout(function(){self.dialogButtons.Prev.hide();self.dialogButtons.Next.hide();self.dialogButtons.More.hide();self.dialogButtons.Close.show();self.modalDialog.enableButtons();self.removeDisabledDiv(dfx.getId('WizardRunner-wrapper'));},500);}},hideFinalStep:function()
{dfx.removeClass(this.confirmStep,'success');},reset:function()
{var self=this;var elem=dfx.getId(this.id+'-addMore');var elItems=dfx.getId(this.id+'-addMore-items');var c='WizardStepManagerWidgetType-multiCreate-expanded';var elVisClass=this.getClass()+'-multiCreate-items-visible';dfx.removeClass(elem,c);dfx.removeClass(elItems,elVisClass);var assetButtonsLen=this.assetButtons.length;for(var i=1;i<assetButtonsLen;i++){dfx.remove(this.assetButtons[i]);}
this._resetCurrentMultiStepData();var firstButton=this.assetButtons.shift();this.assetButtons=[firstButton];this.multiStepsData=[];this.currentMultiStepIdx=0;this.assets=1;this.multiLockedData={};this.hideFinalStep();dfx.setStyle(dfx.getId('WizardRunner-wizardSteps'),'display','block');dfx.setStyle(dfx.getId('WizardRunner-wizardStepManager'),'display','block');var steps=dfx.getId(this.id+'-steps');this.currentCardIndex=0;this.fireStepChanged();if(this.dialogButtons.Next){this.dialogButtons.Next.removeEvents();this.updateButtons();}
var stepsLen=this.steps.length;for(var i=0;i<stepsLen;i++){var widgetsLen=this.steps[i].widgets.length;for(var j=0;j<widgetsLen;j++){var widgetid=this.steps[i].widgets[j];var widget=WidgetStore.get(widgetid);if(dfx.isset(widget.reset)===true){widget.reset();}
widget.enable();}}
var wizardDivLen=this.wizardDivids.length;for(var j=0;j<wizardDivLen;j++){(function(idx){var wdivWdgt=WidgetStore.get(self.wizardDivids[idx]);wdivWdgt.setLockState(false,true);wdivWdgt.hide();if(self.dialogButtons.More){self.dialogButtons.More.enable();}})(j);}
dfx.setStyle(dfx.getId(this.id+'-confirmStep'),'display','none');dfx.remove(dfx.getId(this.id+'-confirmStep-success'));dfx.remove(dfx.getId(this.id+'-confirmStep-processing'));var content='<div id="'+this.id+'-confirmStep-success" class="WizardStepManagerWidgetType-success"> </div>';content+='<div id="'+this.id+'-confirmStep-processing" class="WizardStepManagerWidgetType-processing"> </div>';dfx.setHtml(dfx.getId(this.id+'-confirmStep'),content);this._resetConfirmStepArea();this.errors={};if(self.dialogButtons.Prev){self.dialogButtons.Prev.show();}
if(self.dialogButtons.Next){self.dialogButtons.Next.show();}
if(self.dialogButtons.More){self.dialogButtons.More.show();}
if(self.dialogButtons.Close){self.dialogButtons.Close.hide();}
this.show(0);dfx.setStyle(dfx.getId('WizardRunner-wizardStepManagerWrapper'),'display','block');},_resetConfirmStepArea:function()
{dfx.setStyle(dfx.getId(this.id+'-confirmStep'),'display','none');dfx.remove(dfx.getId(this.id+'-confirmStep-success'));dfx.remove(dfx.getId(this.id+'-confirmStep-processing'));var content='<div id="'+this.id+'-confirmStep-success" class="WizardStepManagerWidgetType-success"> </div>';content+='<div id="'+this.id+'-confirmStep-processing" class="WizardStepManagerWidgetType-processing"> </div>';dfx.setHtml(dfx.getId(this.id+'-confirmStep'),content);},getCurrentStep:function()
{return this.currentCardIndex;},addStepChangedAction:function(action)
{this.stepChangedActions.push(action);},addIndexChangedAction:function(action)
{this.indexChangedActions.push(action);},resetStepChangedActions:function()
{this.stepChangedActions=[];},fireStepChanged:function()
{var actionLen=this.stepChangedActions.length;for(var i=0;i<actionLen;i++){this.stepChangedActions[i].call(this,this.currentCardIndex);}},fireDataIndexChanged:function()
{var actionLen=this.indexChangedActions.length;for(var i=0;i<actionLen;i++){this.indexChangedActions[i].call(this,this.currentMultiStepIdx,this.currentCardIndex);}},addProcessAction:function(action,reset)
{if(dfx.isFn(action)===true){if(reset===true){this.processActions=[];}
this.processActions.push(action);}},resetProcessActions:function()
{this.processActions=[];},fireProcessActions:function()
{var actionLen=this.processActions.length;for(var i=0;i<actionLen;i++){this.processActions[i].call(this,this.steps);}},getSteps:function()
{return this.steps;},getValues:function()
{var values=[];var dataIndex=0;var numMultiSteps=this.multiStepsData.length;var skipped=0;var items=dfx.getClass(this.widgetType+'WidgetType-multiCreate-item',dfx.getId('WizardRunner-wizardStepManager-addMore-items'));for(var i=0;i<numMultiSteps;i++){if(dfx.hasClass(items[i],'disabled')===true){skipped++;continue;}
var data=this.multiStepsData[i];values.push({});var stepsLen=this.steps.length;for(var j=0;j<stepsLen;j++){var stepTitle=this.steps[j].title;values[(i-skipped)][stepTitle]={};values[(i-skipped)]._oriIndex=i;var widgetsLen=this.steps[j].widgets.length;var value=null;for(var k=0;k<widgetsLen;k++){var widgetid=this.steps[j].widgets[k];var widget=WidgetStore.get(widgetid);if(widget.getDefaultValue){var toSetValue=data[widgetid].value;if(toSetValue===widget.getValueNotSetValue()){if(data[widgetid].defaultValue!==widget.getDefaultNotSetValue()){toSetValue=data[widgetid].defaultValue;}else if(data[widgetid].localInstanceDefaultValue!==widget.getLocalInstanceDefaultNotSetValue()){toSetValue=data[widgetid].localInstanceDefaultValue;}}
value=toSetValue;}else{value=data[widgetid];}
if(widget.widgetType==='TextField'){value=dfx.fixHtml(value);}
values[(i-skipped)][stepTitle][widgetid]=value;}}}
return values;},getThisClassName:function()
{return'WizardStepManagerWidgetType';},getClass:function()
{return'CardLayoutWidgetType';},getTotalSteps:function()
{return(this.cards.length+1);},setStepErrors:function(step,errors)
{this.errors['step_'+step]=errors;this.fireUpdateErrors(step);},fireUpdateErrors:function(step)
{var eln=this.errorFns.length;for(var i=0;i<eln;i++){this.errorFns[i].call(this,step,this.errors);}},addUpdateErrorsAction:function(callback)
{this.errorFns.push(callback);},resetUpdateErrorsActions:function()
{this.errorFns=[];},getStepState:function(step)
{var idx='step_'+step;if(this.errors[idx]){var eln=this.errors[idx].length;if(eln>0){return'error';}}
return'completed';},getStepErrors:function(stepIndex)
{stepIndex=stepIndex||this.getCurrentStep();var idx='step_'+stepIndex;return this.errors[idx]||[];},showErrors:function(assetIndex)
{assetIndex=assetIndex||this.currentMultiStepIdx;var elems=dfx.getClass('WizardDivWidgetType-error',dfx.getId(this.id));dfx.removeClass(elems,'active');dfx.setHtml(elems,'');var assetButtons=dfx.getClass(this.getThisClassName()+'-multiCreate-item-state',dfx.getId('WizardModalDialog'));var errors=this.getStepErrors();var eln=errors.length;for(var i=0;i<eln;i++){var error=errors[i];if(dfx.hasClass(assetButtons[error.assetIndex],'error')===false){dfx.addClass(assetButtons[error.assetIndex],'error');}
if(assetIndex===error.assetIndex){var elem=dfx.getId('wizardWidget-'+error.widgetid);if(elem){var elem=dfx.getClass('WizardDivWidgetType-error',elem)[0];if(elem){dfx.addClass(elem,'active');dfx.setHtml(elem,error.msg);}}}}
var assetIndexes=[];for(var step in this.errors){eln=this.errors[step].length;errors=this.errors[step];for(var i=0;i<eln;i++){var error=errors[i];assetIndexes.push(error.assetIndex);}}
for(var i=0;i<this.assets;i++){if(assetIndexes.inArray(i)===false){dfx.removeClass(assetButtons[i],'error');}else{dfx.addClass(assetButtons[i],'error');}}}};dfx.inherits('WizardStepManager','CardLayout');function EditingContentsWidgetType(id)
{DynamicDivWidgetType.call(this,id);this.widgetType='EditingContents';}
EditingContentsWidgetType.prototype={scriptUpdate:function(xml)
{var self=this;var data=null;if(typeof xml==='string'){var parser=new Util.Xml(xml);data=parser.parse();if(data.firstChild.tagName==='parsererror'){data=xml;dfx.setHtml(domElem,data);if(dfx.isFn(endFunc)){endFunc.call();}
return;}else if(data.firstChild.tagName==='div'){dfx.setHtml(domElem,xml);if(dfx.isFn(endFunc)){endFunc.call();}
return;}}else{data=xml;}
if(Widget.CSS_MINIFIED===false){var cssIncludes=data.getElementsByTagName('cssinclude');var cssIncNum=cssIncludes.length;for(var i=0;i<cssIncNum;i++){var link=document.createElement('link');link.href=cssIncludes.item(i).firstChild.nodeValue;link.type="text/css";link.rel="stylesheet";document.getElementsByTagName("head").item(0).appendChild(link);}}},updateContent:function(xml,endFunc)
{var self=this;var modeSwitcher=WidgetStore.get('EditingModeSwitcher');var currMode=modeSwitcher.getCurrentMode();var _updateContent=function(assetCssContents){if(assetCssContents){var styleTagid='assetStyle';var styleTag=document.getElementById(styleTagid);dfx.remove(styleTag);dfx.addCssToStyle(dfx.jsonDecode(assetCssContents),'assetStyle');}
self.cleanup();var domElem=self.domElem;if(domElem===null){self.domElem=dfx.getId(self.id);domElem=self.domElem;}
var data=null;if(typeof xml==='string'){var parser=new Util.Xml(xml);data=parser.parse();if(data.firstChild.tagName==='parsererror'){data=xml;dfx.setHtml(domElem,data);if(dfx.isFn(endFunc)){endFunc.call();}
return;}else if(data.firstChild.tagName==='div'){dfx.setHtml(domElem,xml);if(dfx.isFn(endFunc)){endFunc.call();}
return;}}else{data=xml;}
var cssIncludes=data.getElementsByTagName('cssinclude');var cssIncNum=cssIncludes.length;for(var i=0;i<cssIncNum;i++){self.cssLinks.push(dfx.includeCss(cssIncludes.item(i).firstChild.nodeValue));}
var cssContents=data.getElementsByTagName('csscontent');var cssNum=cssContents.length;for(i=0;i<cssNum;i++){dfx.addCssToStyle(dfx.getNodeTextContent(cssContents[i]));}
var divContent=dfx.getNodeTextContent(data.getElementsByTagName('content').item(0));dfx.setHtml(domElem,divContent.replace(/jsscript/g,'script'));self.includeScriptFiles(data,function(){var src=dfx.getNodeTextContent(data.getElementsByTagName('javascript').item(0));eval(src);});if(dfx.isFn(endFunc)){var callbackData=dfx.getNodeTextContent(data.getElementsByTagName('callbackdata').item(0));endFunc.call(self,callbackData);}};if(currMode==='PreviewEditingMode'||currMode==='EditEditingMode'){var data={EditingContents:true,action:'loadDesignCss'};dfx.post(window.location.href,data,function(cssContents){_updateContent(cssContents);});}else{_updateContent();}}};dfx.inherits('EditingContents','DynamicDiv');function WizardManagerWidgetType(id)
{DynamicDivWidgetType.call(this,id);this.widgetType='WizardManager';this.domElem=dfx.getId(this.id+'-content');}
WizardManagerWidgetType.prototype={init:function()
{var wizardEditLinks=dfx.getClass(this.getClass()+'-wizards-edit');var self=this;dfx.addEvent(wizardEditLinks,'click',function(e){var target=dfx.getMouseEventTarget(e);var wizardid=dfx.attr(target,'wizardid');self.showEditWizardInterface(wizardid);});},showEditWizardInterface:function(wizardid)
{var params={widget:this.widgetType,action:'showBuilder',wizardid:wizardid};this.changeContent(params);}};dfx.inherits('WizardManager','DynamicDiv');function AssetTypeWidgetType(id,assetTypes,hideInheritButton)
{InputWidgetType.call(this,id);this.options={};this.domEl=dfx.getId(this.id);this.items=assetTypes||{};this.hideInheritButton=hideInheritButton||false;if(this.hideInheritButton==='1'){this.hideInheritButton=true;}
this.typeAddedEvents=[];this.init();}
AssetTypeWidgetType.prototype={init:function()
{for(var type in this.items){if(this.items.hasOwnProperty(type)===true){this.addType(type,this.items[type],true);}}},_addEvents:function()
{var self=this;var addButton=WidgetStore.get(this.id+'-add');if(dfx.isset(addButton)===true){addButton.addClickEvent(function(){var list=WidgetStore.get(self.id+'-list');var select=WidgetStore.get(self.id+'-select');var itemid=select.getValue();var type=select.getTextContent();self.addType(itemid,0,false);});}},addType:function(type,inherit,force)
{if(force!==true){if(type===''||type in this.items){return;}}
var itemid=type;var list=WidgetStore.get(this.id+'-list');var self=this;this._createItemContent(itemid,inherit,function(columns){list.addItem(itemid,columns);self.fireTypeAddedEvents(itemid);self.items[itemid]=inherit;});},_createItemContent:function(itemid,inherit,callback)
{var self=this;AssetManager.getAssetTypeInfos([itemid],function(typeInfo){typeInfo=typeInfo[0];var typeName=typeInfo.name||dfx.ucWords(itemid);var iconUrl=typeInfo.iconURL;self._getInheritButtonContent(itemid,inherit,function(el){var inheritCol=el;var nameCol=document.createElement('div');nameCol.setAttribute('title',typeName);dfx.setStyle(nameCol,'background','url('+iconUrl+' ) no-repeat 0% 50%');dfx.setStyle(nameCol,'padding-left','20px');dfx.setHtml(nameCol,typeName);callback.call(this,[nameCol,inheritCol]);});});},_getInheritButtonContent:function(itemid,inherit,callback)
{if(this.hideInheritButton===true){callback.call(this,'');return;}
var self=this;this.includeWidget('Button',function(){var buttonWidget=self.createWidget(self.id+'_inhbutton:'+itemid,'Button');if(inherit===1){buttonWidget.setName('Inherit');buttonWidget.enable();}else{buttonWidget.setName('Do Not Inherit');buttonWidget.disable();}
buttonWidget.setButtonColour('green');buttonWidget.enableToggleMode();buttonWidget.setMinWidth('100px');buttonWidget.create(function(el){callback.call(self,el);buttonWidget.addClickEvent(function(){if(dfx.isset(self.items[itemid])===false){self.items[itemid]=0;}
if(self.items[itemid]===0){self.items[itemid]=1;buttonWidget.setName('Inherit');buttonWidget.enable();}else{self.items[itemid]=0;buttonWidget.setName('Do Not Inherit');buttonWidget.disable();}},true);});});},_createWidget:function()
{this._compCount=0;var self=this;self.selects++;this.includeWidgets(['SelectWidget','CheckBoxWidget','ButtonWidget'],function(){var selectWidget=self.createWidget(self.id+'-select:'+self.selects,'SelectWidget');var checkboxWidget=self.createWidget(self.id+'-checkbox:'+self.selects,'CheckBoxWidget');checkboxWidget.setLabel('Inherit');var cancelButton=self.createWidget(self.id+'-cancel:'+self.selects,'ButtonWidget');cancelButton.setName('Clear');var moreButton=self.createWidget(self.id+'-more:'+self.selects,'ButtonWidget');moreButton.setName('More');selectWidget.create(function(select){checkboxWidget.create(function(checkbox){cancelButton.create(function(cancel){moreButton.create(function(more){var div=document.createElement('div');dfx.setStyle(div,'overflow:hidden;');div.appendChild(select);div.appendChild(checkbox);div.appendChild(cancel);div.appendChild(more);self.domEl.appendChild(div);});});});});});},getValue:function()
{var items=WidgetStore.get(this.id+'-list').getValue();var value={};var len=items.length;for(var i=0;i<len;i++){var inherit=0;if(this.items[items[i]]&&this.items[items[i]]===1){inherit=1;}
value[items[i]]=inherit;}
return value;},setValue:function(value)
{for(var type in value){this.addType(type,value[type]);}},addTypeAddedEvent:function(fn)
{this.typeAddedEvents.push(fn);},fireTypeAddedEvents:function(typeid)
{var fnl=this.typeAddedEvents.length;for(var i=0;i<fnl;i++){this.typeAddedEvents[i].call(this,typeid);}},addItemClickedEvent:function(fn)
{WidgetStore.get(this.id+'-list').addItemClickedEvent(fn);},addItemDisabledEvent:function(fn)
{WidgetStore.get(this.id+'-list').addItemDisabledEvent(fn);},addItemEnabledEvent:function(fn)
{WidgetStore.get(this.id+'-list').addItemEnabledEvent(fn);}};dfx.inherits('AssetType','Input');function CheckBoxListWidgetType(id)
{InputWidgetType.call(this,id);this.widgetType='CheckBoxList';this.optionElements=this.getOptionElements();this.optionElementLength=this.getOptsLength();}
CheckBoxListWidgetType.prototype={getOptionElements:function()
{return dfx.getClass('CheckBoxWidgetType',dfx.getId(this.id),'input');},getOptsLength:function()
{return this.optionElements.length;},getValue:function()
{var value=[];for(var i=0;i<this.optionElementLength;i++){var widgetId=this.id+'-option-'+i;var widget=WidgetStore.get(widgetId);if(dfx.isset(widget)===true&&widget.isChecked()===true){value.push(widget.getValue());}}
return value.join(';');},setValue:function(value)
{var vals=value.split(';');var vLen=vals.length;var c=vLen;for(var i=0;i<this.optionElementLength;i++){var widgetId=this.id+'-option-'+i;var widget=WidgetStore.get(widgetId);if(dfx.isset(widget)===true){widget.uncheck();if(c>0){for(var j=0;j<vLen;j++){if(widget.getValue()===vals[j]){widget.check();c--;}}}}}},uncheckAll:function()
{var len=this.getOptsLength();for(var i=0;i<len;i++){var widgetId=this.id+'-option-'+i;var widget=WidgetStore.get(widgetId);if(dfx.isset(widget)===true){widget.uncheck();}}},disable:function()
{var len=this.getOptsLength();for(var i=0;i<len;i++){var widgetId=this.id+'-option-'+i;var widget=WidgetStore.get(widgetId);if(dfx.isset(widget)===true){widget.disable();}}},enable:function()
{var len=this.getOptsLength();for(var i=0;i<len;i++){var widgetId=this.id+'-option-'+i;var widget=WidgetStore.get(widgetId);if(dfx.isset(widget)===true){widget.enable();}}}};dfx.inherits('CheckBoxList','Input');function CheckBoxWidgetType(id,target,checked)
{InputWidgetType.call(this,id);this.widgetType='CheckBox';this.checked=checked||false;this.type='checkbox';this.labelPos='right';target=(target)||this.id;this.target=target;this.events=[];this.checkEventAdded=false;this.wrapper=null;if(dfx.isset(this.domElem)===true){this.domElem.checked=checked;this.addCheckElement(target);}}
CheckBoxWidgetType.prototype={addCheckElement:function(elemid)
{if(this.checkEventAdded===false){var self=this;var el=dfx.getId(elemid);if(!el){el=this.domElem;}
if(el){dfx.addEvent(el,'click',function(e){self.toggle(e);});}
this.checkEventAdded=true;}},create:function(callback)
{var cssClass=this.widgetType+'WidgetType-image';if(this.checked===true){cssClass=cssClass+'-checked';}
var cont=document.createElement('div');dfx.addClass(cont,this.getClass());cont.setAttribute('id',this.id+'_container');var div=document.createElement('div');div.setAttribute('id',this.id+'_wrapper');dfx.addClass(div,cssClass);this.wrapper=div;if(dfx.isset(this.showLabel)===true&&this.showLabel===true){if(this.labelPos==='left'){cont.appendChild(this.createLabel(this.label));}}
var cb=document.createElement('input');cb.setAttribute('type',this.type);cb.setAttribute('id',this.id);cb.setAttribute('name',this.id);dfx.addClass(cb,this.getClass());div.appendChild(cb);cont.appendChild(div);if(dfx.isset(this.showLabel)===true&&this.showLabel===true){if(this.labelPos==='right'){cont.appendChild(this.createLabel(this.label));}}
this.domElem=cb;this.target=this.id;if(dfx.isFn(callback)===true){callback.call(this,cont);return;}},_addEvents:function()
{this.addCheckElement(this.target);},isChecked:function()
{return this.checked;},toggle:function(e)
{var target=dfx.getMouseEventTarget(e);if(target.id===''){return;}
if(this.checked===true){this.uncheck();}else{this.check();}},check:function(noEventFire)
{if(this.readOnly===true){return;}
this.domElem.checked=true;this.checked=true;var wrapper=dfx.getId(this.id+'_wrapper');dfx.swapClass(wrapper,this.widgetType+'WidgetType-image',this.widgetType+'WidgetType-image-checked');if(noEventFire!==true){this.fireCheckedEvents(true);}},uncheck:function(noEventFire)
{if(this.readOnly===true){return;}
this.domElem.checked=false;this.checked=false;var wrapper=dfx.getId(this.id+'_wrapper');dfx.swapClass(wrapper,this.widgetType+'WidgetType-image-checked',this.widgetType+'WidgetType-image');if(noEventFire!==true){this.fireCheckedEvents(false);}},exportWidget:function()
{var o=InputWidgetType.prototype.exportWidget.call(this);o.checked=this.isChecked();return o;},setChecked:function(c)
{this.checked=c;},disable:function()
{this.domElem.disabled=true;},enable:function()
{this.domElem.disabled=false;},getValue:function()
{return dfx.getId(this.id).checked;},setLabelPos:function(pos)
{this.labelPos=pos;},addCheckedEvent:function(fn)
{this.events.push(fn);},fireCheckedEvents:function(status)
{var len=this.events.length;for(var i=0;i<len;i++){this.events[i].call(this,status);}},setReadOnly:function(readOnly)
{InputWidgetType.prototype.setReadOnly.call(this,readOnly);if(this.domEl){}}};dfx.inherits('CheckBox','Input');function DateFieldWidgetType(id,yearRange)
{InputWidgetType.call(this,id);this.parts=['day','month','year'];this.partsLength=this.parts.length;this.yearRange=yearRange;}
DateFieldWidgetType.prototype={getValue:function()
{var date=[];for(var i=0;i<this.partsLength;i++){var name=this.id+'-'+this.parts[i];var widget=WidgetStore.get(name);if(dfx.isset(widget)===true){var value=this.parts[i]+':'+widget.getValue();date.push(value);}}
return date.join(';');},getTime:function()
{var monthArray=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];var vals=this.getValue().split(';');var day=(parseInt(vals[0].split(':')[1],10)+1);var month=monthArray[vals[1].split(':')[1]];var year=this.yearRange[vals[2].split(':')[1]];var time=day+' '+month+' '+year;var result=(Date.parse(time)/1000);return result;},setValue:function(value)
{var vals=value.split(';');var valsLen=vals.length;for(var i=0;i<valsLen;i++){var parts=vals[i].split(':');var name=this.id+'-'+parts[0];var widget=WidgetStore.get(name);if(dfx.isset(widget)===true){widget.setValue(parts[1]);}}},disable:function()
{for(var i=0;i<this.partsLength;i++){var name=this.id+'-'+this.parts[i];var widget=WidgetStore.get(name);if(dfx.isset(widget)===true){widget.disable();}}},enable:function()
{for(var i=0;i<this.partsLength;i++){var name=this.id+'-'+this.parts[i];var widget=WidgetStore.get(name);if(dfx.isset(widget)===true){widget.enable();}}},addOnchangeEvent:function(fn)
{for(var i=0;i<this.partsLength;i++){var name=this.id+'-'+this.parts[i];this._addComponentOnchangeEvent(name,fn);}},_addComponentOnchangeEvent:function(name,fn)
{var widget=WidgetStore.get(name);if(dfx.isset(widget)===true){widget.addItemSelectedEvent(fn);}}};dfx.inherits('DateField','Input');function SelectWidgetType(id,items,selectedItems,minWidth,mainWidth,readOnly,allowEmpty,allowEmptyText,useDefault)
{InputWidgetType.call(this,id);this.widgetType='Select';this.options={};this.domEl=dfx.getId(this.id);this.value=null;this.listEl=null;this.textWidget=null;this.scroll=null;this.list=null;this.listZIndex=null;this.items=items||{};this.itemCount=0;this.closed=true;this.minWidth=minWidth||0;this.mainWidth=mainWidth||0;this.changed=false;this.readOnly=readOnly||false;this.allowEmpty=allowEmpty||false;this.allowEmptyText=allowEmptyText||'-- Leave Empty --';this.useDefault=useDefault||false;this.selectedItems=selectedItems||[];this.selectedEventValueType='index';this.select=null;this.itemSelctedEvents=[];if(dfx.isset(dfx.getId(this.id))===true){this.initNonCustom();}}
SelectWidgetType.prototype={initNonCustom:function()
{this.select=dfx.getId(this.id);this.addSelectEvents();},getItems:function()
{var result=[];var len=this.select.options.length;for(var i=0;i<len;i++){result.push(this.select.options[i].value);}
return result;},addItems:function(items)
{this.items=items;},getSelectedValue:function()
{return this.value;},setReadOnly:function(readOnly)
{InputWidgetType.prototype.setReadOnly.call(this,readOnly);var rod=dfx.getId(this.id+'-readOnly');var label=dfx.getId(this.id+'-label');var select=dfx.getId(this.id);if(select){var selIdx=select.selectedIndex;dfx.setHtml(rod,select.options[selIdx].text);}
var container=dfx.getId(this.id+'-container');if(readOnly===true){dfx.addClass(container,'readOnly');dfx.showElement(rod);}else{dfx.removeClass(container,'readOnly');dfx.showElement(select);dfx.hideElement(rod);}},create:function(callback)
{var self=this;var div=document.createElement('div');div.id=this.id+'-container';dfx.addClass(div,this.widgetType+'WidgetType-Container');if(self.showLabel===true){var label=self.createLabel(true);if(this.readOnly){dfx.hideElement(label);}
div.appendChild(label);}
var select=document.createElement('select');select.id=this.id;var selected=this.selectedItems.length;var selectedText='';var mark=false;if(selected>0){mark=true;}
if(this.allowEmpty===true){var empty=document.createElement('option');empty.text=this.allowEmptyText;empty.value='emptydefault';if(this.selectedItems.find('emptydefault')===true){empty.selected=true;}
select.appendChild(empty);}
for(var key in this.items){var option=document.createElement('option');dfx.setHtml(option,this.items[key]);option.value=key;var checked=this.selectedItems.find(key);if(mark===true&&checked!==-1){option.selected=true;if(selected===1){selectedText=option.text;}}
select.appendChild(option);}
var rod=document.createElement('div');rod.id=this.id+'-readOnly';dfx.addClass(rod,this.widgetType+'WidgetType-readOnly');if(this.readOnly){dfx.addClass(div,'readOnly');dfx.showElement(rod);dfx.hideElement(select);dfx.setHtml(rod,selectedText);}
div.appendChild(select);div.appendChild(rod);this.select=select;this.addSelectEvents();callback.call(self,div);},addOption:function(txt,val)
{var op=document.createElement('option');op.text=txt;op.value=val;var browserInfo=dfx.browser();if(browserInfo.type==='msie'||browserInfo.version==='7.0'){this.select.add(op);}else{this.select.add(op,null);}},removeAllOptions:function()
{var opLen=this.select.options.length;for(var i=(opLen-1);i>=0;i--){this.select.remove(i);}},getOptionIndex:function(optVal)
{return this.list.getItemIndex(optVal);},getOptionElement:function(optVal)
{return this.list.getItemElement(optVal);},getValue:function(returnIndex,returnText)
{if(this.select.multiple){if(returnIndex===true){var selectedIndexes=[];var opLen=this.select.options.length;for(var i=0;i<opLen;i++){if(this.select.options[i].selected===true){selectedIndexes.push(i);}}
if(selectedIndexes.length===0){return[this.select.selectedIndex];}else{return selectedIndexes;}}else{if(returnText===true){return this.select.options[this.select.selectedIndex].text;}else{var selectedIndexes=[];var opLen=this.select.options.length;for(var i=0;i<opLen;i++){if(this.select.options[i].selected===true){selectedIndexes.push(this.select.options[i].value);}}
if(selectedIndexes.length===0){var index=this.select.selectedIndex||0;if(index===-1){return'';}
return[this.select.options[index].value];}else{return selectedIndexes;}}}}else{if(returnIndex===true){return this.select.selectedIndex;}else{if(returnText===true){return this.select.options[this.select.selectedIndex].text;}else{var index=this.select.selectedIndex||0;if(index===-1){index=0;}
return this.select.options[index].value;}}}},getTextContent:function()
{if(dfx.isset(this.value)===false){for(var item in this.items){if(this.items.hasOwnProperty(item)===true){this.value=item;break;}}}
if(typeof this.items[this.value]==='object'){return this.items[this.value].text;}
return this.items[this.value].content;},setTextContent:function(index,textContent)
{this.select.options[index].text=textContent;},setValue:function(value,rawValue)
{if(rawValue===true){var opLen=this.select.options.length;for(var i=0;i<opLen;i++){if(this.select.options[i].value===value){this.select.selectedIndex=i;var rod=dfx.getClass('SelectWidgetType-readOnly',this.select.parentNode)[0];if(rod){dfx.setHtml(rod,this.select.options[i].text);}
break;}}}else{if(value instanceof Array){var opLen=this.select.options.length;for(var i=0;i<opLen;i++){if(value.inArray(this.select.options[i].value)===true){this.select.options[i].selected=true;}else{this.select.options[i].selected=false;}}}else if(dfx.isset(this.select.options[value])===true){this.select.selectedIndex=value;var rod=dfx.getClass('SelectWidgetType-readOnly',this.select.parentNode)[0];if(rod){dfx.setHtml(rod,this.select.options[value].text);}}}},addSelectEvents:function()
{var self=this;dfx.addEvent(this.select,'change',function(evt){var index=evt.target.selectedIndex;var value=evt.target.value;if(self.selectedEventValueType==='index'){self.fireItemSelectedEvents(index);}else{self.fireItemSelectedEvents(value);}});},setListZIndex:function(zi)
{this.listZIndex=zi;},setSelectedEventValueType:function(type)
{this.selectedEventValueType=type;},addItemSelectedEvent:function(fn)
{this.itemSelctedEvents.push(fn);},fireItemSelectedEvents:function(val)
{this.changed=true;var ln=this.itemSelctedEvents.length;for(var i=0;i<ln;i++){this.itemSelctedEvents[i].call(this,val);}},disable:function()
{this.select.disabled=true;},enable:function()
{this.select.disabled=false;},getOption:function(val)
{var len=this.select.options.length;for(var i=0;i<len;i++){if(this.select.options[i].value===val){return this.select.options[i];}}
return null;},disableOption:function(val,hide)
{var len=this.select.options.length;for(var i=0;i<len;i++){if(this.select.options[i].value===val){this.select.options[i].disabled='disabled';if(dfx.isset(hide)===true&&hide===true){dfx.hideElement(this.select.options[i]);}}}},enableOption:function(val)
{var len=this.select.options.length;for(var i=0;i<len;i++){if(this.select.options[i].value===val){this.select.options[i].disabled='';dfx.showElement(this.select.options[i]);}}}};dfx.inherits('Select','Input');function SpinButtonWidgetType(id,min,max,inc,dec,readOnly)
{InputWidgetType.call(this,id);this.widgetType='SpinButton';this.setMinValue(min);this.setMaxValue(max);if(isNaN(this.minValue)){this.minValue=null;}
if(isNaN(this.maxValue)){this.maxValue=null;}
this.increment=parseFloat(inc)||1;this.decimals=parseInt(dec)||0;this.readOnly=readOnly||false;this.initValue=1;this._allowEmptyValue=false;this.changeEvents=[];this.buttonUp=null;this.buttonDown=null;this.container=null;this.domEl=dfx.getId(this.id);if(this.domEl){this.readOnlyEl=dfx.getClass(this.getClass()+'-readOnly')[0];this.container=this.domEl.parentNode;this.init();}}
SpinButtonWidgetType.prototype={init:function()
{this.buttonUp=dfx.getId(this.id+'-button-up');this.buttonDown=dfx.getId(this.id+'-button-down');this.addButtonEvents();this.addKeyEvents();},create:function(callback)
{var div=document.createElement('div');dfx.addClass(div,'TextFieldWidgetType-Container SpinButtonWidgetType-Container');var c=this.getClass();this.container=div;if(this.readOnly===true){dfx.addClass(div,'readOnly');}
var textBox=document.createElement('input');textBox.id=this.id;textBox.type='text';textBox.setAttribute('size',3);textBox.setAttribute('value',this.initValue);dfx.addClass(textBox,'TextFieldWidgetType');this.domEl=textBox;div.appendChild(textBox);var buttons=document.createElement('div');dfx.addClass(buttons,c+'-buttons');div.appendChild(buttons);var readOnlyEl=document.createElement('div');dfx.addClass(readOnlyEl,c+'-readOnly');div.appendChild(readOnlyEl);this.readOnlyEl=readOnlyEl;dfx.setHtml(this.readOnlyEl,this.domEl.value);var up=document.createElement('div');this.buttonUp=up;dfx.addClass(up,c+'-button '+c+'-button-up');up.id=this.id+'-button-up';buttons.appendChild(up);var down=document.createElement('div');this.buttonDown=down;dfx.addClass(down,c+'-button '+c+'-button-down');down.id=this.id+'-button-down';buttons.appendChild(down);if(dfx.isFn(callback)===true){this.addButtonEvents();this.addKeyEvents();callback.call(this,div);}},setMinValue:function(min)
{this.minValue=parseFloat(min);},setMaxValue:function(max)
{this.maxValue=parseFloat(max);},setInitialValue:function(val)
{this.initValue=val;},allowEmptyValue:function(allowEmpty)
{this._allowEmptyValue=allowEmpty;},addButtonEvents:function()
{var up=this.buttonUp;var down=this.buttonDown;var self=this;var intr=null;var tout=null;dfx.addEvent(up,'mousedown',function(e){dfx.addClass(up,self.getClass()+'-button-up-clicked');self.increase();clearInterval(intr);clearTimeout(tout);tout=setTimeout(function(){intr=setInterval(function(){self.increase();},150);},400);});dfx.addEvent(document,'mouseup',function(e){var t=dfx.getMouseEventTarget(e);if(t!==self.container&&dfx.isChildOf(t,self.container)!==true){return;}
clearTimeout(tout);dfx.removeClass(up,self.getClass()+'-button-up-clicked');dfx.removeClass(down,self.getClass()+'-button-down-clicked');if(intr){clearInterval(intr);intr=null;}});dfx.addEvent(down,'mousedown',function(e){dfx.addClass(down,self.getClass()+'-button-down-clicked');self.decrease();clearInterval(intr);clearTimeout(tout);tout=setTimeout(function(){intr=setInterval(function(){self.decrease();},150);},400);});dfx.addEvent(this.domEl,'blur',function(){self.adjustValue(parseFloat(self.domEl.value));});},addKeyEvents:function()
{if(!this.domEl){return;}
var self=this;var keyDown=false;dfx.addEvent(this.domEl,'keydown',function(e){if(e.keyCode===38){if(!keyDown){dfx.addClass(self.buttonUp,self.getClass()+'-button-up-clicked');}
self.increase();}else if(e.keyCode===40){if(!keyDown){dfx.addClass(self.buttonDown,self.getClass()+'-button-down-clicked');}
self.decrease();}else if(e.keyCode===13){self.adjustValue(null);}
keyDown=true;});dfx.addEvent(this.domEl,'keyup',function(e){keyDown=false;dfx.removeClass(self.buttonUp,self.getClass()+'-button-up-clicked');dfx.removeClass(self.buttonDown,self.getClass()+'-button-down-clicked');});},increase:function()
{var val=parseFloat(this.domEl.value);if(isNaN(val)){val=this.minValue;}
this.adjustValue(val+this.increment);},decrease:function()
{var val=parseFloat(this.domEl.value);if(isNaN(val)){val=this.maxValue;}
this.adjustValue((val-this.increment));},adjustValue:function(val)
{if(val==='undefined'||val===null){val=parseFloat(this.domEl.value);}
if(isNaN(val)){if(this._allowEmptyValue===true){this.domEl.value='';this.fireOnChangeEvents(this.domEl.value);}else{val=0;this.adjustValue(0);}
return;}else if(this.maxValue!==null&&val>this.maxValue){val=this.maxValue;}else if(this.minValue!==null&&val<this.minValue){val=this.minValue;}
if(val.toFixed){this.domEl.value=val.toFixed(this.decimals);}
this.fireOnChangeEvents(this.domEl.value);},addOnChangeEvent:function(fn)
{this.changeEvents.push(fn);},fireOnChangeEvents:function(val)
{for(var i=(this.changeEvents.length-1);i>=0;i--){this.changeEvents[i].call(this,val);}},getValue:function()
{return this.domEl.value;},setValue:function(value)
{this.domEl.value=value;this.adjustValue(value);},setReadOnly:function(readOnly)
{InputWidgetType.prototype.setReadOnly.call(this,readOnly);if(this.domEl){if(readOnly===true){if(this.readOnlyEl){dfx.setHtml(this.readOnlyEl,this.domEl.value);}
dfx.addClass(this.container,'readOnly');}else{dfx.removeClass(this.container,'readOnly');}}}};dfx.inherits('SpinButton','Input');function TextFieldWidgetType(id,className,resizableX,cols,showLabel,numericOnly,readOnly,defaultValue,localInstanceDefaultValue)
{InputWidgetType.call(this,id);this.widgetType='TextField';if(dfx.isset(className)===false){className='TextFieldWidgetType';}
this.resizableX=resizableX;if(className!=='TextFieldWidgetType'){this.resizableX=false;}
this.cols=cols||30;this.showLabel=showLabel||false;this.className=className;this.width=0;this.initialValue='';this.displayBlock=true;this.inputBox=null;this.input=null;this.value=this.initialValue;this.numericOnly=numericOnly;this.error=false;this.defaultTextClassName=this.widgetType+'WidgetType-defaultText';this.setDefaultValue(defaultValue||'');this.setReturnDefaultValue(false);this.setLocalInstanceDefaultValue(localInstanceDefaultValue||'');this.setReturnLocalInstanceDefaultValue(false);this.onChangeCallbacks=[];if(dfx.isset(dfx.getId(this.id))===true){this.domEl=dfx.getId(this.id);this.input=this.domEl;this.inputBox=this.domEl;if(this.defaultValueMode===true||this.localInstanceDefaultValueMode===true){if(this.defaultValueMode===true){this.input.value=this.getDefaultValue();}else{this.input.value=this.getLocalInstanceDefaultValue();}
dfx.addClass(this.input,this.defaultTextClassName);}
this.addEvents();}}
TextFieldWidgetType.prototype={reset:function()
{this.input.value=this.initialValue;this.setLocalInstanceDefaultValue(this.initialValue);},setReadOnly:function(readOnly)
{InputWidgetType.prototype.setReadOnly.call(this,readOnly);if(this.domEl){var readOnlyDiv=dfx.getClass(this.className+'-readOnly',this.domEl.parentNode);if(readOnly){this.disable();if(readOnlyDiv.length>0){dfx.hideElement(this.domEl);dfx.showElement(readOnlyDiv[0]);}else{var div=document.createElement('div');dfx.addClass(div,this.className+'-readOnly');dfx.hideElement(this.domEl);dfx.setHtml(div,this.input.value);dfx.insertBefore(this.domEl,div);}}else if(!readOnly){this.enable();if(readOnlyDiv.length>0){dfx.hideElement(readOnlyDiv[0]);dfx.showElement(this.domEl);}}}},getWidgetArgs:function()
{var args=[];args.push(this.className);args.push(this.resizableX);args.push(this.cols);return args;},focus:function()
{this.addActiveClass();this.input.focus();},addActiveClass:function()
{if(this.error===false){dfx.addClass(this.inputBox,'active');}},blur:function()
{this.removeActiveClass();this.setValue(this.getValue());},removeActiveClass:function()
{if(this.error===false){dfx.removeClass(this.inputBox,'active');}},hasError:function(error)
{InputWidgetType.prototype.hasError.call(this,error);if(dfx.isset(this.error)===true){dfx.getId(this.id).className=this.className+'-Error';}else{dfx.getId(this.id).className=this.className;}},create:function(callback)
{var div=document.createElement('div');dfx.addClass(div,this.className+'-Container');div.setAttribute('id',this.id+'_container');if(this.showLabel===true){div.appendChild(this.createLabel(this.inline));}
var textbox=document.createElement('input');textbox.setAttribute('type','text');textbox.setAttribute('id',this.id);textbox.setAttribute('size',this.cols);var defaultValueToSet=null;if(this.defaultValueMode===true){var defaultValueToSet=this.getDefaultValue();}else if(this.localInstanceDefaultValueMode===true){var defaultValueToSet=this.getLocalInstanceDefaultValue();}
if(defaultValueToSet!==null){textbox.value=defaultValueToSet;dfx.addClass(textbox,this.defaultTextClassName);}else{textbox.value=this.value;}
this.inputBox=textbox;dfx.addClass(textbox,this.className);if(this.width>0){dfx.setStyle(textbox,'width',this.width+'px');}
if(this.readOnly){var roDiv=document.createElement('div');dfx.addClass(roDiv,this.className+'-readOnly');dfx.setStyle(textbox,'display','none');dfx.setStyle(textbox,'visibility','hidden');dfx.setHtml(roDiv,this.value);div.appendChild(roDiv);}
div.appendChild(textbox);if(dfx.isset(this.displayBlock)===true&&this.displayBlock===true){dfx.setStyle(div,'float','none');}
this.input=textbox;this.domEl=this.input;this.inputBox=this.input;this._addEvents();if(callback){callback.call(this,div);}},_addEvents:function()
{var self=this;dfx.addEvent(this.inputBox,'focus',function(){if((self.defaultValueMode===true&&self.inputBox.value===self.getDefaultValue())||(self.localInstanceDefaultValueMode===true&&self.inputBox.value===self.getLocalInstanceDefaultValue())){self.inputBox.value='';dfx.removeClass(self.inputBox,self.defaultTextClassName);}
self.focus();});dfx.addEvent(this.inputBox,'blur',function(){if(dfx.trim(self.inputBox.value)===''){if(self.defaultValueMode===true){self.inputBox.value=self.getDefaultValue();dfx.addClass(self.inputBox,self.defaultTextClassName);}else if(self.localInstanceDefaultValueMode===true){self.inputBox.value=self.getLocalInstanceDefaultValue();dfx.addClass(self.inputBox,self.defaultTextClassName);}}
self.blur();});if(this.resizableX===1){this._enableResize();}
if(this.numericOnly===1){dfx.addEvent(this.inputBox,'keyup',function(){self.validateNumericValue();});}},_enableResize:function()
{if(this.inputBox.type!=='text'){return;}
var resizerX=dfx.getId(this.id+'_right');var textbox=dfx.getId(this.id);dfx.setStyle(resizerX,'cursor','e-resize');var origWidth=dfx.getElementWidth(textbox);var leftPos=dfx.getElementCoords(resizerX).x;var mouseMoveFn=function(e){var width=(origWidth+(dfx.getMouseEventPosition(e).x-leftPos));dfx.setStyle(textbox,'width',width);};dfx.addEvent(resizerX,'mousedown',function(e){dfx.setStyle(document.body,'cursor','e-resize');dfx.setStyle(textbox,'cursor','e-resize');dfx.addEvent(document,'mousemove',mouseMoveFn);});dfx.addEvent(document.body,'mouseup',function(e){dfx.setStyle(document.body,'cursor','default');dfx.setStyle(textbox,'cursor','text');dfx.removeEvent(document,'mousemove',mouseMoveFn);});},_createTextField:function()
{var div=document.createElement('div');dfx.addClass(div,this.className+'-Container');div.setAttribute('id',this.id+'_container');if(this.showLabel===true){div.appendChild(this.createLabel(this.inline));}
var textbox=document.createElement('input');textbox.setAttribute('type','text');textbox.setAttribute('id',this.id);textbox.setAttribute('size',this.cols);textbox.value=this.value;this.inputBox=textbox;dfx.addClass(textbox,this.className);if(this.width>0){dfx.setStyle(textbox,'width',this.width+'px');}
if(this.readOnly){var roDiv=document.createElement('div');dfx.addClass(roDiv,this.className+'-readOnly');dfx.setStyle(textbox,'display','none');dfx.setStyle(textbox,'visibility','hidden');dfx.setHtml(roDiv,this.value);div.appendChild(roDiv);}
div.appendChild(textbox);if(dfx.isset(this.displayBlock)===true&&this.displayBlock===true){dfx.setStyle(div,'float','none');}
this.input=textbox;this.domEl=this.input;return div;},setCols:function(cols)
{this.cols=cols;},setWidth:function(width)
{this.width=parseInt(width);if(dfx.isset(this.input)===true){dfx.setStyle(this.input,'width',width+'px');}},setInitialValue:function(val)
{this.initialValue=val;},setDisplayAsBlock:function(block)
{this.displayBlock=block;},setShowLabel:function(show)
{this.showLabel=show;},getInitialValue:function()
{return this.initialValue;},getWidth:function()
{var w=this.width;if(dfx.isset(dfx.getId(this.id))===true){w=dfx.getElementWidth(dfx.getId(this.id));}
return w;},enableEditing:function()
{InputWidgetType.prototype.enableEditing.call(this);this._enableResize();},exportWidget:function()
{var o=InputWidgetType.prototype.exportWidget.call(this);o.width=dfx.getElementWidth(dfx.getId(this.id));o.initialValue=this.getInitialValue();return o;},getWizardOptions:function(callback)
{var self=this;InputWidgetType.prototype.getWizardOptions.call(this,function(widgets){var widget=self.createWidget(self.id+'-options-width','TextField');widget.setLabel('Width');widget.setInline(true);widget.setValue(self.getWidth());widgets.push(widget);widget.setEvent('focus',function(){widget.setValue(self.getWidth());});widget.setEvent('keyup',function(e){var val=widget.getValue();val=val.replace(/[^\d]+/g,'');widget.setValue(val);self.setWidth(val);});var initValWidget=self.createWidget(self.id+'-options-initVal','TextField');initValWidget.setLabel('Initial Value');initValWidget.setInline(true);initValWidget.setValue(self.getInitialValue());initValWidget.setEvent('keyup',function(){var val=initValWidget.getValue();self.setValue(val);self.setInitialValue(val);});widgets.push(initValWidget);callback.call(self,widgets);});},getValue:function()
{var el=this.input;var val=''
if(el){val=el.value||'';}else{val=this.value||'';}
if(this.defaultValueMode===true){var text=this.getDefaultValue();if(val===text){if(this.returnDefaultValue===true){val=text;}else{val='';}}}
if(this.localInstanceDefaultValueMode===true){var text=this.getLocalInstanceDefaultValue();if(val===text){if(this.returnLocalInstanceDefaultValue===true){val=text;}else{val='';}}}
return val;},setValue:function(val)
{val=val||'';if(val==='null'){val='';}
var defaultValueToSet=null;var defaultValue=this.getDefaultValue();var localInstanceDefaultValue=this.getLocalInstanceDefaultValue();if(this.defaultValueMode===true&&(val===''||val===defaultValue)){var defaultValueToSet=defaultValue;}else if(this.localInstanceDefaultValueMode===true&&(val===''||val===localInstanceDefaultValue)){var defaultValueToSet=localInstanceDefaultValue;}
if(defaultValueToSet!==null){val=defaultValueToSet;dfx.addClass(this.input,this.defaultTextClassName);dfx.trigger(this.input,'keyup');}else{dfx.removeClass(this.input,this.defaultTextClassName);}
var el=dfx.getId(this.id);if(dfx.isset(el)===true){el.value=val;}else{this.value=val;if(dfx.isset(this.input)===true){this.input.value=val;}}
if(this.domEl){var readOnlyDiv=dfx.getClass(this.className+'-readOnly',this.domEl.parentNode);if(readOnlyDiv[0]){dfx.setHtml(readOnlyDiv[0],val);}}},getValueNotSetValue:function()
{return'';},setLocalInstanceDefaultValue:function(localInstanceDefaultValue)
{this.localInstanceDefaultValue=localInstanceDefaultValue;if(localInstanceDefaultValue!==this.getLocalInstanceDefaultNotSetValue()){this.localInstanceDefaultValueMode=true;}else{this.localInstanceDefaultValueMode=false;}},getLocalInstanceDefaultValue:function()
{return this.localInstanceDefaultValue;},setReturnLocalInstanceDefaultValue:function(returnLocalInstanceDefaultValue)
{this.returnLocalInstanceDefaultValue=returnLocalInstanceDefaultValue;},getLocalInstanceDefaultNotSetValue:function()
{return'';},setDefaultValue:function(defaultValue)
{this.defaultValue=defaultValue;if(defaultValue!==this.getDefaultNotSetValue()){this.defaultValueMode=true;}else{this.defaultValueMode=false;}},getDefaultValue:function()
{return this.defaultValue;},setReturnDefaultValue:function(returnDefaultValue)
{this.returnDefaultValue=returnDefaultValue;},getDefaultNotSetValue:function()
{return'';},disable:function()
{if(dfx.isset(this.input)===true){this.input.disabled=true;dfx.setOpacity(this.input,0.6);}
this.enabled=false;},enable:function()
{if(dfx.isset(this.input)===true){this.input.disabled=false;dfx.setOpacity(this.input,1);}else{dfx.getId(this.id).disabled=false;}
this.enabled=true;},addOnChangeEvent:function(fn)
{var self=this;if(this.onChangeCallbacks.length===0){dfx.addEvent(this.input,'keyup',function(evt){var val=evt.target.value;var len=self.onChangeCallbacks.length;for(var i=0;i<len;i++){self.onChangeCallbacks[i].call(self,val,evt);}});}
this.onChangeCallbacks.push(fn);},removeOnChangeEvents:function()
{delete this.onChangeCallbacks;this.onChangeCallbacks=[];},show:function(visibilityOnly,displayType)
{var container=dfx.getId(this.id+'_container');if(visibilityOnly===true){dfx.setStyle(container,'visibility','visible');}else{dfx.setStyle(container,'visibility','visible');var dt='block';if(dfx.isset(displayType)===true){dt=displayType;}
dfx.setStyle(container,'display',dt);}},hide:function(visibilityOnly)
{var container=dfx.getId(this.id+'_container');if(visibilityOnly===true){dfx.setStyle(container,'visibility','hidden');}else{dfx.setStyle(container,'visibility','hidden');dfx.setStyle(container,'display','none');}},validateNumericValue:function()
{var value=this.inputBox.value;if(parseInt(value)!==value){var result='';var valueLen=value.length;for(var i=0;i<valueLen;i++){if((value.charAt(i)==='-'&&i===0)||(parseInt(value.charAt(i))===value.charAt(i))){result=result+value.charAt(i);}}
this.inputBox.value=result;}}};dfx.inherits('TextField','Input');function MetadataEditNumberWidgetType(id,defaultValue)
{MetadataEditTextWidgetType.call(this,id,defaultValue);this._init();}
MetadataEditNumberWidgetType.prototype={_init:function()
{var self=this;dfx.addEvent(dfx.getId(this.id+'-field'),'blur',function(){var warning=dfx.getId(self.id+'-warning');if(warning){dfx.hideElement(warning);}
var errorMsg=dfx.getId(self.id+'-errorMsg');if(errorMsg){dfx.hideElement(errorMsg);}
var valCheck=self.check();if(valCheck!==true){if(errorMsg){dfx.setHtml(errorMsg,valCheck);dfx.showElement(errorMsg);}
self.value='';self.setModified(true);}});},check:function()
{var result=true;var value=WidgetStore.get(this.id+'-field').getValue();if(value.length===0){return true;}
var numericCheck=dfx.isNumeric(value);if(numericCheck===true){return true;}
return'Please enter a valid number';}};dfx.inherits('MetadataEditNumber','MetadataEditText');function MetadataEditSelectionWidgetType(id,defaultValue)
{defaultValue=defaultValue||[];MetadataEditTextWidgetType.call(this,id,defaultValue);}
MetadataEditSelectionWidgetType.prototype={init:function()
{this.multiple=false;this.hasDefault=false;if(this.field){if(this.field.select){this.multiple=this.field.select.multiple;}
if(this.multiple===true){this.value=this.field.getValue();}else{if(this.field.useDefault===true){this.value=[];}else{this.value=[this.field.getValue(true)];}}
if(dfx.isEmpty(this.defaultValue)===false){this.hasDefault=true;}}
var self=this;if(this.hasDefault===true){dfx.showElement(dfx.getId(this.id+'-def'));if(this.isUsingDefault()===true){this.field.setValue(this.defaultValue);dfx.addClass(this.container,'useDefault');}
dfx.addEvent(this.elem,'focus',function(){dfx.removeClass(self.container,'useDefault');});if(this.multiple===true){dfx.addEvent(this.elem,'blur',function(){self.toggleDefaultValue();});}else{var option=this.field.getOption(this.defaultValue[0]);this.field.addOption('Default: '+option.text,'useSchemaDefault');if(this.isUsingDefault()===true){this.field.setValue(['useSchemaDefault']);}
this.field.setSelectedEventValueType('value');this.field.addItemSelectedEvent(function(val){dfx.removeClass(self.container,'useDefault');if(val==='useSchemaDefault'){self.value=[];dfx.addClass(self.container,'useDefault');}else{self.value=[self.field.getValue(true)];}});dfx.addEvent(this.elem,'blur',function(){if(self.value==='useSchemaDefault'){dfx.addClass(self.container,'useDefault');}});}}
if(this.field){this.field.addItemSelectedEvent(function(){self.setModified(true);});}},toggleDefaultValue:function()
{var field=this.field;if(field){var selected=field.getValue();if(dfx.isEmpty(selected)===true){this.value=[];field.setValue(this.defaultValue);dfx.addClass(this.container,'useDefault');}else{this.value=selected;}
this.setModified(true);}},isUsingDefault:function()
{if(this.hasDefault===true&&dfx.isEmpty(this.value)===true){return true;}
return false;}};dfx.inherits('MetadataEditSelection','MetadataEditText');function AdjustModalDialogWidgetType(id,titleDivId,buttonHolderId,buttons)
{OverlayWidgetType.call(this,id);this.widgetType='AdjustModalDialog';this.orientation=Widget.CENTER;this.margin=0;this.size=0;this.fillScreen=true;this.styleSuffix={};this.styleSuffix[Widget.CENTER]='center';this.styleSuffix[Widget.TOP]='top';this.styleSuffix[Widget.BOTTOM]='bottom';this.styleSuffix[Widget.LEFT]='left';this.styleSuffix[Widget.RIGHT]='right';}
AdjustModalDialogWidgetType.prototype={setOrientation:function(ori)
{this.removeCurrentClass();this.orientation=ori||Widget.CENTER;dfx.addClass(this.el,this._getOrientationClassName(this.orientation));},removeCurrentClass:function(ori)
{var suffix='';var orientation=ori||this.orientation;dfx.removeClass(this.el,this._getOrientationClassName(orientation));},_getOrientationClassName:function(ori)
{var className=this.widgetType+'WidgetType-'+this.styleSuffix[ori];if(ori===Widget.CENTER&&this.fillScreen===false){className=className+'-float';}
return className;},setFillScreen:function(fill)
{if(this.orientation!==Widget.CENTER){return;}
if(fill!==this.fillScreen){dfx.removeClass(this.el,this._getOrientationClassName(Widget.CENTER));this.fillScreen=fill;dfx.addClass(this.el,this._getOrientationClassName(Widget.CENTER));}},setSize:function(sz)
{this.size=sz;switch(this.orientation){case Widget.CENTER:dfx.setStyle(this.el,'height','100%');break;case Widget.TOP:case Widget.BOTTOM:dfx.setStyle(this.el,'height',sz+'px');break;case Widget.LEFT:case Widget.RIGHT:dfx.setStyle(this.el,'width',sz+'px');dfx.setStyle(this.el,'height','100%');break;default:break;}},setMargin:function(mg)
{this.margin=mg;switch(this.orientation){case Widget.TOP:case Widget.BOTTOM:dfx.setStyle(this.el,'margin-left',mg+'px');dfx.setStyle(this.el,'margin-right',mg+'px');break;case Widget.LEFT:case Widget.RIGHT:dfx.setStyle(this.el,'margin-top',mg+'px');dfx.setStyle(this.el,'margin-bottom',mg+'px');break;default:break;}}};dfx.inherits('AdjustModalDialog','Overlay');function AssetPickerDialogWidgetType(id,siteid)
{OverlayWidgetType.call(this,id);this.widgetType='AssetPickerDialog';this.navBody=dfx.getId(this.id+'-body-nav');this.navList=null;this.navItems=[];this.currentNav=null;this.currentProject=null;this.footer=dfx.getId(this.id+'-content-footer');this.uniqueSelect=false;this.siteOnly=false;this.hideSite={};this.hideTopLevel={};this.projectBlackList={};this.projectWhiteList={};this.screenViews={};this.screenClass={};this.forceShowRoots={};this.noInitialSelect={};this.list=null;this.treeList=null;this.srchList=null;this.footerClass=null;this._setTitles();this.resultView=dfx.getId(this.id+'-body-tree-result');this.srchField=null;this.srchDiv=dfx.getId(this.id+'-search');this.prevVal=null;this.inResultView=false;this.rootNode=-1;this.selectedAssets=[];this.assetsSelectedActions=[];this.selectionChangedActions=[];this.openActions={};this.closeActions={};this.itemClickedEvents={};this.domElem=dfx.getId(this.id);this.screen=null;this.dialog=null;this.currentAssetid=null;this.viewTypes=['list','thumb','search'];this.viewWidgets={};this._viewButtons=[];this.previousView={};this.currentView={view:this.viewTypes[0],type:null};this.containers={};this.projects={};this.projectFolders={};this.projectid=null;this.projectFoldersFiltered=[];this.lineage=null;this.autoScrollLineage={};this.rootAsset=null;this.currentSelection=null;this.currentSelectionIcon=null;this.currentSelectionTitle=null;this.assetInfoCache={};this.assetChildrenInfoCache={};this.saveButtonCheck=false;this.selectButtonWdgt=null;this.noDialog=false;this.modalWidth=null;this.modalHeight=null;}
AssetPickerDialogWidgetType.prototype={_setTitles:function()
{this.title='Asset Finder';this.subTitle='Select the asset you want to view, edit or use';this.buttonTitle='Select';},getAsset:function(assetid,callback)
{var self=this;if(dfx.isset(this.assetInfoCache[assetid])===true){callback.call(this,this.assetInfoCache[assetid]);}else{var params={attributes:['name'],type:false,typeIcon:true,linking:[],urls:false};AssetManager.getAsset(assetid,function(asset){asset.children=null;self.assetInfoCache[assetid]=asset;callback.call(self,asset);},false,params);}},setForceShowRoots:function(screen,showRoots)
{this.forceShowRoots[screen]=showRoots;},getAssetWithChildren:function(assetid,callback)
{var self=this;if(dfx.isset(this.assetInfoCache[assetid])===true){if(this.assetInfoCache[assetid].children===null){var params={attributes:[],type:false,typeIcon:false,linking:['children'],urls:false};AssetManager.getAsset(assetid,function(asset){self.assetInfoCache[assetid].children=asset.children;callback.call(self,self.assetInfoCache[assetid]);},false,params);}else{callback.call(this,this.assetInfoCache[assetid]);}}else{var params={attributes:['name'],type:false,typeIcon:true,linking:['children'],urls:false};AssetManager.getAsset(assetid,function(asset){self.assetInfoCache[assetid]=asset;callback.call(self,asset);},false,params);}},getAssets:function(assetids,callback)
{var self=this;var nonCached=[];var result=[];var tmpResult={};dfx.foreach(assetids,function(idx){var aid=assetids[idx];if(dfx.isset(self.assetInfoCache[aid])===false){nonCached.push(aid);}else{tmpResult[aid]=self.assetInfoCache[aid];}
return true;});if(nonCached.length===0){callback.call(this,self._sortGetAssetsResult(assetids,tmpResult));}else{var params={attributes:['name','width','height','size'],type:false,typeIcon:true,linking:['children'],urls:false};AssetManager.getAssets(nonCached,function(assets){dfx.foreach(assets,function(idx){var aid=assets[idx].id;self.assetInfoCache[aid]=assets[idx];tmpResult[aid]=assets[idx];return true;});callback.call(self,self._sortGetAssetsResult(assetids,tmpResult));},false,params);}},_sortGetAssetsResult:function(assetids,results)
{var sortedResult=[];dfx.foreach(assetids,function(idx){sortedResult.push(results[assetids[idx]]);});return sortedResult;},create:function(callback)
{var id=this.id;var c=this.getClass();var wrapper=document.createElement('div');dfx.addClass(wrapper,c);var content='<div id="'+id+'-srchRes" class="'+c+'-srchRes"></div>';content+='<div id="'+id+'-topbar" class="'+c+'-topbar">';content+='<div id="'+id+'-viewButtons" class="'+c+'-viewButtons"></div>';content+='<div id="'+id+'-search" class="'+c+'-search"></div>';content+='</div>';content+='<div id="'+id+'-lineage" class="'+c+'-lineage"></div>';content+='<div id="'+id+'-content" class="'+c+'-content"></div>';content+='<div id="'+id+'-footer" class="'+c+'-footer"></div>';dfx.setHtml(wrapper,content);this.domElem=wrapper;callback.call(this,wrapper);},init:function(screen,callback)
{if(!this.domElem){this.create(function(){});}
if(!dfx.getId(this.id)){document.body.appendChild(this.domElem);}
dfx.setStyle(this.domElem,'display','none');this.screen=screen;var self=this;this.containers.viewButtons=dfx.getClass(this.getClass()+'-viewButtons',this.domElem)[0];dfx.empty(this.containers.viewButtons);this.containers.lineage=dfx.getClass(this.getClass()+'-lineage',this.domElem)[0];dfx.empty(this.containers.lineage);this.containers.content=dfx.getClass(this.getClass()+'-content',this.domElem)[0];dfx.empty(this.containers.content);this.containers.srchRes=dfx.getClass(this.getClass()+'-srchRes',this.domElem)[0];dfx.empty(this.containers.srchRes);this.footer=dfx.getClass(this.getClass()+'-footer',self.domElem)[0];AssetManager.getProject(function(ret){self.projectid=ret.id;self.projects=ret;var folders=ret.folders;var params={attributes:['name'],type:false,typeIcon:true,linking:['children'],urls:false};self.projectFolders=folders;var filtered=self.getLocations();var projectids=[];var siteid=folders.currentSite;if(self.hideSite[self.screen]!==true){projectids.push(siteid);}
dfx.foreach(folders,function(pName){if(dfx.inArray(pName,filtered)===true){projectids.push(folders[pName]);}
return true;});self.getAssets(projectids,function(assets){self.projectFoldersFiltered=assets;self.rootAsset=self.projectid;var includeWidgets=['AssetLineage','ModalDialog'];self.includeWidgets(includeWidgets,function(){self.setupDialog(function(){var hideProject=true;if(parseInt(ret.count,10)>1){hideProject=false;}
self._initLinage(hideProject,function(){self._initViews(0,function(){if(callback){callback.call(self,this.domElem);}});});});});},false,params);});},switchProject:function(projectid,callback)
{var self=this;AssetManager.getProject(function(ret){self.projectid=ret.id;self.projects=ret;var folders=ret.folders;var params={attributes:['name'],type:false,typeIcon:true,linking:['children'],urls:false};if(folders.hasOwnProperty('currentAssetLineage')===true){delete folders.currentAssetLineage;}
self.projectFolders=folders;var filtered=self.getLocations();var projectids=[];var siteid=folders.currentSite;if(self.hideSite[self.screen]!==true){projectids.push(siteid);}
dfx.foreach(folders,function(pName){if(dfx.inArray(pName,filtered)===true){projectids.push(folders[pName]);}
return true;});self.getAssets(projectids,function(assets){self.projectFoldersFiltered=assets;self.rootAsset=self.projectid;for(var type in this.viewWidgets){self.viewWidgets[type].setInitialRoots(filtered);}
if(dfx.isFn(callback)===true){callback.call(self);}},false,params);},projectid);},getLocations:function()
{var locs=[];var folders=this.projectFolders;var exclude=['currentSite','sites','currentAsset','currentAssetLineage'];var whiteList=this.projectWhiteList[this.screen];if(whiteList&&whiteList.length>0){var ln=whiteList.length;for(var i=0;i<ln;i++){if(folders[whiteList[i]]&&!dfx.inArray(whiteList[i],locs)&&dfx.inArray(whiteList[i],exclude)===false){locs.push(whiteList[i]);}}}else{var blackList=this.projectBlackList[this.screen];if(blackList&&blackList.length>0){for(var folder in folders){if(folders.hasOwnProperty(folder)===true){if(blackList.inArray(folder)!==true&&dfx.inArray(folder,exclude)===false){locs.push(folder);}}}}else{for(var folder in folders){if(dfx.inArray(folder,exclude)===false){locs.push(folder);}}}}
return locs;},getLocationsIds:function()
{var locs=this.getLocations();var ln=locs.length;var ids=[];for(var i=0;i<ln;i++){ids.push(this.projectFolders[locs[i]]);}
if(this.hideSite[this.screen]!==true){ids.push(this.projectFolders.currentSite);}
return ids;},setRoot:function(assetid)
{for(var type in this.viewWidgets){this.viewWidgets[type].setLineage([assetid]);}},setCurrentAsset:function(assetid,index)
{for(var type in this.viewWidgets){this.viewWidgets[type].setCurrentAsset(assetid);}},setAutoScrollLineage:function(lineage,screen)
{this.autoScrollLineage[screen]=lineage;},showSearchResults:function(resCount)
{resCount=resCount||0;dfx.setHtml(this.containers.srchRes,'Search Results <span>('+resCount+')</span>');dfx.addClass(this.containers.lineage,'hidden');dfx.removeClass(this.containers.srchRes,'hidden');},showLineage:function()
{dfx.addClass(this.containers.srchRes,'hidden');dfx.removeClass(this.containers.lineage,'hidden');},getSelectLineage:function()
{if(this.lineage){return this.lineage.assets;}else{return[];}},setSiteOnly:function(siteOnly)
{this.siteOnly=siteOnly||false;},_initLinage:function(hideProject,callback)
{var self=this;var assets=[this.projectid];self.lineage=self.createWidget(null,'AssetLineage',this);self.lineage.setAssets(assets);self.lineage.setHideProject(hideProject);self.lineage.create(function(el){self.containers.lineage.appendChild(el);callback.call(self);});self.lineage.addItemClickedEvent(function(assetid){if(parseInt(assetid,10)===parseInt(self.projectid,10)){assetid=self.projectFoldersFiltered[0].id;var scrollLineage=null;if(self.autoScrollLineage.hasOwnProperty(self.screen)===true){scrollLineage=self.autoScrollLineage[self.screen]}
self.viewWidgets.list.initAutoScroll(false,scrollLineage);}else{self.setCurrentAsset(assetid);}
var params={attributes:['name'],type:false,typeIcon:true,linking:[],urls:false};self.getAsset(assetid,function(asset){self._updateCurrentSelection(asset);},false,params);});},_initViews:function(index,callback)
{index=index||0;if(index>=this.viewTypes.length){this.showView(this.viewTypes[0],'list');if(callback){callback.call(this);}}else{var self=this;this._initView(this.viewTypes[index],function(){self._initViews(++index,callback);});}},_initView:function(viewType,callback)
{var self=this;var widgetName='AssetPicker'+dfx.ucFirst(viewType)+'View';this.includeWidget(widgetName,function(){var widget=self.createWidget(null,widgetName,this);self.viewWidgets[viewType]=widget;var buttons=widget.getButtons();var noEvent=false;if(buttons&&buttons._noEvent===true){noEvent=true;delete buttons._noEvent;}
for(var buttonType in buttons){if(buttons.hasOwnProperty(buttonType)===true){self._viewButtons.push({view:viewType,type:buttonType,button:buttons[buttonType]});dfx.addClass(buttons[buttonType],self.getClass()+'-viewButton '+viewType+'_'+buttonType);self.containers.viewButtons.appendChild(buttons[buttonType]);if(noEvent!==true){self._setViewButtonEvent(viewType,buttons[buttonType],buttonType);}}}
widget.addLoaderAction(function(started){if(started===true&&self.dialog){self.dialog.disable(true);}else if(self.dialog){self.dialog.enable();}});widget.addAssetSelectedAction(function(asset){self._updateCurrentSelection(asset);self._syncAssetSelection(asset.id);self.fireItemClickedEvents(asset.id);});widget.addLinageUpdatedAction(function(lineage,selectedAssets){self.lineage.setAssets(lineage);self._syncViewLineages(viewType,lineage,selectedAssets);});widget.addSwitchOffAction(function(){self.showPreviousView();});widget.setInitialRoots(self.getLocationsIds());widget.create(function(el){self.containers.content.appendChild(el);dfx.addClass(el,self.getClass()+'-viewContainer hidden');if(dfx.isset(self.forceShowRoots[self.screen])===false){self.forceShowRoots[self.screen]=false;}
if(self.forceShowRoots[self.screen]===false&&viewType==='list'&&(self.hideTopLevel[self.screen]===true||self.projectFoldersFiltered.length===1)){var cols=dfx.getClass('AssetPickerListViewWidgetType-col',el);dfx.hideElement(cols[0]);}
if(viewType==='list'){var noSelect=false;if(self.noInitialSelect.hasOwnProperty(self.screen)===true){noSelect=self.noInitialSelect[self.screen];}
var scrollLineage=null;if(self.autoScrollLineage.hasOwnProperty(self.screen)===true){scrollLineage=self.autoScrollLineage[self.screen]}
self.viewWidgets.list.initAutoScroll(noSelect,scrollLineage,function(){callback.call(self);});}else{callback.call(self);}});});},_setViewButtonEvent:function(viewType,button,buttonType)
{var self=this;dfx.addEvent(button,'click',function(){self.showView(viewType,buttonType);});},_syncViewLineages:function(view,lineage,selectedAssets)
{for(var v in this.viewWidgets){if(view!==v&&this.viewWidgets.hasOwnProperty(v)===true){this.viewWidgets[v].setLineage(lineage,selectedAssets);}}},showView:function(view,type)
{if(view!=='search'){this.showLineage();}
var buttons=dfx.getClass(this.getClass()+'-viewButton',this.containers.viewButtons);dfx.removeClass(buttons,'active');dfx.removeClass(buttons,'hidden');dfx.addClass(dfx.getClass(view+'_'+type,this.containers.viewButtons),'active');for(var v in this.viewWidgets){if(view!==v&&this.viewWidgets.hasOwnProperty(v)===true){dfx.addClass(this.viewWidgets[v].domElem,'hidden');this.viewWidgets[v].hide(type);}}
dfx.removeClass(this.viewWidgets[view].domElem,'hidden');this.viewWidgets[view].show(type);if(this.currentView.view!==view){this.previousView=this.currentView;}
this.currentView={view:view,type:type};},hideViewButtons:function()
{var ln=this._viewButtons.length;for(var i=0;i<ln;i++){if(this._viewButtons[i].view!=='search'){dfx.addClass(this._viewButtons[i].button,'hidden');}}},showPreviousView:function()
{if(this.previousView&&this.previousView.view){this.showView(this.previousView.view,this.previousView.type);var self=this;var view=this.currentView.view;var assets=this.viewWidgets[view].selectedAssets;var params={attributes:['name'],type:false,typeIcon:true,linking:[],urls:false};this.getAsset(assets[0],function(asset){self._updateCurrentSelection(asset);},false,params);}},_syncAssetSelection:function(assetid)
{var view=this.currentView.view;var assets=this.viewWidgets[view].selectedAssets;for(var v in this.viewWidgets){if(view!==v&&this.viewWidgets.hasOwnProperty(v)===true){if(this.viewWidgets[v].setSelectedAssets){this.viewWidgets[v].setSelectedAssets(assets);}}}},setTitle:function(title)
{this.title=title;},setSubTitle:function(title)
{this.subTitle=title;},setButtonTitle:function(buttonTitle)
{this.buttonTitle=buttonTitle;},setModalSize:function(width,height)
{this.modalWidth=width;this.modalHeight=height;},setupDialog:function(callback)
{if(this.noDialog===true){callback.call(this);return;}
var self=this;var modalDialog=self.createWidget('AssetPickerModalDialog','ModalDialog');modalDialog.setContent(self.domElem);dfx.setStyle(self.domElem,'position','relative');modalDialog.setTitle(self.title);var windowSize=dfx.getWindowDimensions();if(this.modalWidth===null){this.modalWidth=(windowSize.width-100);}
if(this.modalHeight===null){this.modalHeight=(windowSize.height-300);}
modalDialog.setSize(this.modalWidth+'px',this.modalHeight+'px');var listCont=dfx.getId(self.id+'-content');modalDialog.dialogResized=function(width,height){dfx.setStyle(listCont,'height',(parseInt(height)-65)+'px');};modalDialog.create(function(div){modalDialog.setSubTitle(self.subTitle,true);if(self.footerContent){modalDialog.setFooterContent(self.footerContent,self.footerClass);}
var body=dfx.getId(this.id);self.addDialogEvents(modalDialog);self.dialog=modalDialog;if(dfx.isFn(callback)===true){callback.call(self);}});},setDialog:function(modalDialog)
{this.dialog=modalDialog;},addDialogEvents:function(modalDialog)
{modalDialog=modalDialog||this.modalDialog;var self=this;modalDialog.addOnOpenCallback(function(){dfx.setStyle(self.domElem,'visibility','hidden');dfx.setStyle(self.domElem,'display','block');setTimeout(function(){modalDialog.adjustOrientation();dfx.showElement(self.domElem);self.fireOpenActions();},100);});modalDialog.addOnCloseCallback(function(){self.assetInfoCache={};self.assetChildrenInfoCache={};self.fireCloseActions();});modalDialog.addButton(self.buttonTitle,function(btnWidgt){self.selectButtonWdgt=btnWidgt;btnWidgt.addClickEvent(function(){if(self.saveButtonCheck===true){var saveBtn=WidgetStore.get('EditingSaveButton');var answer=true;if(saveBtn.isEnabled()===true){answer=confirm(WidgetStore.getUnsavedChangesStr());}
if(answer===true){self.fireAssetsSelectedActions();modalDialog.close();}}else{self.fireAssetsSelectedActions();modalDialog.close();}});});var btmMid=dfx.getClass('ModalDialogWidgetType-buttons-center',modalDialog.domElem)[0];dfx.setStyle(btmMid,'height','37px');var currentSelection=document.createElement('div');dfx.addClass(currentSelection,self.widgetType+'-currentSelectionWrap');var content='<div class="'+self.widgetType+'-currentSelectionLabel">Current Selection:&nbsp;&nbsp;</div>';content+='<div class="'+self.widgetType+'-currentSelectionIcon">&nbsp;</div>';content+='<div class="'+self.widgetType+'-currentSelectionTitle">&nbsp;</div>';content+='<div class="'+self.widgetType+'-currentSelectionLabel right"></div>';dfx.setHtml(currentSelection,content);dfx.hideElement(currentSelection);btmMid.appendChild(currentSelection);self.currentSelection=currentSelection;self.currentSelectionIcon=dfx.getClass(self.widgetType+'-currentSelectionIcon',currentSelection)[0];self.currentSelectionTitle=dfx.getClass(self.widgetType+'-currentSelectionTitle',currentSelection)[0];dfx.setStyle(dfx.getId('AssetPickerModalDialog-buttons-1'),'margin-top','10px');},showCurrentSelectionInfo:function()
{if(this.currentSelection){dfx.showElement(this.currentSelection);}},hideCurrentSelectionInfo:function()
{if(this.currentSelection){dfx.hideElement(this.currentSelection);}},_updateCurrentSelection:function(asset)
{if(!this.currentSelectionTitle){return;}
var view=this.currentView.view;var widget=this.viewWidgets[view];var count=widget.selectedAssets.length;var iconUrl=asset.iconUrl;if(count>1){iconUrl=this.url+'?typeIcon=asset&size=small';dfx.setHtml(this.currentSelectionTitle,count+' Assets');}else{var nameLength=40;var idLength=10;if(this.modalWidth>1000){var nameLength=80;var idLength=60;}
dfx.setHtml(this.currentSelectionTitle,dfx.ellipsize(asset.name,nameLength)+' <span class="AssetPickerDialog-currentSelectionTitle-assetid">[#'+dfx.ellipsize((asset.id).toString(),idLength)+']</span>');this.currentSelectionTitle.setAttribute('title',asset.name);}
dfx.showElement(this.currentSelection);dfx.setStyle(this.currentSelectionIcon,'backgroundImage','url('+iconUrl+')');this.fireSelectionChanged(asset);},show:function()
{this.displayDisabledDiv(false);var disabledDiv=dfx.getId('_disabledDiv');dfx.setStyle(disabledDiv,'backgroundColor','#000');dfx.setOpacity(disabledDiv,'0.45');dfx.showElement(this.domElem);this.adjustOrientation();},hide:function()
{var disabledDiv=dfx.getId('_disabledDiv');dfx.setStyle(disabledDiv,'backgroundColor','#FFF');dfx.setOpacity(disabledDiv,'0.8');this.removeDisabledDiv();dfx.hideElement(this.domElem);},disableSelectButton:function()
{this.selectButtonWdgt.disable();},enableSelectButton:function()
{this.selectButtonWdgt.enable();},setView:function(screen,view)
{this.screenViews[screen]=view;},setSaveButtonCheck:function(saveButtonCheck)
{this.saveButtonCheck=saveButtonCheck;},setHideSite:function(screen,hideSite)
{if(dfx.isset(hideSite)===false){hideSite=true;}
this.hideSite[screen]=hideSite;},setNoInitialSelect:function(screen)
{this.noInitialSelect[screen]=true;},setHideTopLevel:function(screen)
{this.hideTopLevel[screen]=true;},setUniqueSelect:function(option)
{this.uniqueSelect=option;},addProjectFolderBlackList:function(screen,projectName)
{if(dfx.isset(this.projectBlackList[screen])===false){this.projectBlackList[screen]=[];}
if(dfx.inArray(projectName,this.projectBlackList[screen])===false){this.projectBlackList[screen].push(projectName);}},addProjectFolderWhiteList:function(screen,projectName)
{if(dfx.isset(this.projectWhiteList[screen])===false){this.projectWhiteList[screen]=[];}
if(dfx.inArray(projectName,this.projectWhiteList[screen])===false){this.projectWhiteList[screen].push(projectName);}},resetProjectFolderList:function(screen)
{this.projectWhiteList[screen]=[];this.projectBlackList[screen]=[];},getSelectedAssets:function()
{var assets=[];var widget=this.viewWidgets[this.currentView.view];if(widget){assets=widget.getSelectedAssets().sort();}
return assets;},setScreen:function(screen)
{this.screen=screen;},setClass:function(screen,className)
{this.screenClass[screen]=className;},_setClass:function(screen)
{for(var s in this.screenClass){if(s!==screen&&this.screenClass.hasOwnProperty(s)===true){dfx.removeClass(this.domElem,this.screenClass[s]);}}
dfx.addClass(this.domElem,this.screenClass[screen]);},showFooter:function(height)
{this.dialog.showFooter(height);},hideFooter:function()
{this.dialog.hideFooter();},setFooterContent:function(el,className)
{if(this.dialog){this.dialog.setFooterContent(el,className);}
this.footerContent=el;this.footerClass=className;},addAssetsSelectedAction:function(fn,reset,screenid)
{var screen=this.screen;if(dfx.isset(screenid)===true){screen=screenid;}
if(dfx.isset(this.assetsSelectedActions[screen])===false){this.assetsSelectedActions[screen]=[];}
if(reset===true){this.assetsSelectedActions[screen]=[];}
this.assetsSelectedActions[screen].push(fn);},fireAssetsSelectedActions:function()
{var aLen=this.assetsSelectedActions[this.screen].length;for(var i=0;i<aLen;i++){this.assetsSelectedActions[this.screen][i].call(this,this.getSelectedAssets());}
this._setTitles();},addSelectionChangedAction:function(fn,reset,screenid)
{var screen=this.screen;if(dfx.isset(screenid)===true){screen=screenid;}
if(dfx.isset(this.selectionChangedActions[screen])===false){this.selectionChangedActions[screen]=[];}
if(reset===true){this.selectionChangedActions[screen]=[];}
this.selectionChangedActions[screen].push(fn);},fireSelectionChanged:function(selectedAssets)
{if(this.selectionChangedActions[this.screen]){var aLen=this.selectionChangedActions[this.screen].length;for(var i=0;i<aLen;i++){this.selectionChangedActions[this.screen][i].call(this,selectedAssets);}}},addCloseAction:function(fn,reset,screenid)
{var screen=this.screen;if(dfx.isset(screenid)===true){screen=screenid;}
if(dfx.isset(this.closeActions[screen])===false){this.closeActions[screen]=[];}
if(reset===true){this.closeActions[screen]=[];}
this.closeActions[screen].push(fn);},fireCloseActions:function()
{if(this.closeActions[this.screen]){var aLen=this.closeActions[this.screen].length;for(var i=0;i<aLen;i++){this.closeActions[this.screen][i].call(this);}}
this._setTitles();},addOpenAction:function(fn,reset,screenid)
{var screen=this.screen;if(dfx.isset(screenid)===true){screen=screenid;}
if(dfx.isset(this.openActions[screen])===false){this.openActions[screen]=[];}
if(reset===true){this.openActions[screen]=[];}
this.openActions[screen].push(fn);},fireOpenActions:function()
{if(this.openActions[this.screen]){var aLen=this.openActions[this.screen].length;for(var i=0;i<aLen;i++){this.openActions[this.screen][i].call(this);}}},addItemClickedEvent:function(fn,reset)
{if(dfx.isset(this.itemClickedEvents[this.screen])===false){this.itemClickedEvents[this.screen]=[];}
if(reset===true){this.itemClickedEvents[this.screen]=[];}
this.itemClickedEvents[this.screen].push(fn);},fireItemClickedEvents:function(itemid,type,e)
{if(dfx.isset(this.itemClickedEvents[this.screen])===true){var aLen=this.itemClickedEvents[this.screen].length;for(var i=0;i<aLen;i++){this.itemClickedEvents[this.screen][i].call(this,itemid,type,e);}}}};dfx.inherits('AssetPickerDialog','Overlay');function ErrorDialogWidgetType(id,titleDivId,buttonHolderId,buttons)
{OverlayWidgetType.call(this,id);this.widgetType='ErrorDialog';this.containers={};this.modalTitle='';this.modalSubTitle='';this.parentDialog=null;this.content=null;this.dynamicParams=null;this.buttons=[];this.numOfButtons=0;this.onOpenCallbacks=[];this.onCloseCallbacks=[];this.closeConfirm=false;this.closeConfirmTitle='';this.closeConfirmText='';this.dims={width:'452px',height:'120px'};}
ErrorDialogWidgetType.openDialogs={};ErrorDialogWidgetType.count=0;ErrorDialogWidgetType.currentDialogId=null;ErrorDialogWidgetType.getCurrentDialog=function()
{if(ErrorDialogWidgetType.currentDialogId!==null){return ErrorDialogWidgetType.openDialogs[ErrorDialogWidgetType.currentDialogId];}
return null;};ErrorDialogWidgetType.registerOpenDialog=function(dialog)
{ErrorDialogWidgetType.count++;if(ErrorDialogWidgetType.currentDialogId!==null){dialog.parentDialog=ErrorDialogWidgetType.openDialogs[ErrorDialogWidgetType.currentDialogId];}
ErrorDialogWidgetType.currentDialogId=dialog.id;var div=document.getElementById(dialog.id);dfx.setStyle(div,'z-index',(1000+ErrorDialogWidgetType.count));ErrorDialogWidgetType.openDialogs[dialog.id]=dialog;};ErrorDialogWidgetType.removeOpenDialog=function(dialog)
{ErrorDialogWidgetType.count--;dfx.remove(dialog.el);delete ErrorDialogWidgetType.openDialogs[dialog.id];delete dialog;};ErrorDialogWidgetType.prototype={create:function(callback,noAppend)
{noAppend=noAppend||false;var main=document.createElement('div');this.el=main;main.id=this.id;var c=this.getClass();dfx.addClass(main,c);this.domElem=main;var content='<div class="'+c+'-top">';content+='<div class="'+c+'-top-left"></div>';content+='<div class="'+c+'-top-right"></div>';content+='<div class="'+c+'-top-mid">';content+='<div>';content+='<img class="'+c+'-icon"></imc>';content+='<div class="'+c+'-title">'+this.modalTitle+'</div>';content+='<div class="'+c+'-subtitle">'+this.modalSubTitle+'</div>';content+='</div>';content+='</div>';content+='</div>';content+='<div class="'+c+'-mid">';content+='<div class="'+c+'-mid-left"></div>';content+='<div class="'+c+'-mid-right"></div>';content+='<div class="'+c+'-mid-center" id="'+this.id+'-mid-center"></div>';content+='</div>';content+='<div class="'+c+'-footer">';content+='<div class="'+c+'-footer-left"></div>';content+='<div class="'+c+'-footer-right"></div>';content+='<div class="'+c+'-footer-center"></div>';content+='</div>';content+='<div class="'+c+'-buttons">';content+='<div class="'+c+'-buttons-left"></div>';content+='<div class="'+c+'-buttons-right"></div>';content+='<div class="'+c+'-buttons-center"></div>';content+='</div>';content+='<div class="'+c+'-bottom"><div class="'+c+'-bottom-left"></div><div class="'+c+'-bottom-right"></div><div class="'+c+'-bottom-center"></div></div>';dfx.setHtml(main,content);var contWrapper=dfx.getClass(c+'-mid',main)[0];var bodyContainer=dfx.getClass(c+'-mid-center',main)[0];var titleContainer=dfx.getClass(c+'-title',main)[0];var subTitleContiner=dfx.getClass(c+'-subtitle',main)[0];var iconContainer=dfx.getClass(c+'-icon',main)[0];var buttonsContainer=dfx.getClass(c+'-buttons-center',main)[0];var topContainer=dfx.getClass(c+'-top',main)[0];var footer=dfx.getClass(c+'-footer',main)[0];var footerContent=dfx.getClass(c+'-footer-center',main)[0];this.containers={body:bodyContainer,title:titleContainer,subTitle:subTitleContiner,icon:iconContainer,buttons:buttonsContainer,contWrapper:contWrapper,footer:footer,footerContent:footerContent};this.setSize(this.dims.width,this.dims.height);dfxjQuery(main).draggable({handle:topContainer});var self=this;bodyContainer.appendChild(this.content);if(noAppend!==true){document.body.appendChild(main);}
dfx.setStyle(main,'visibility','hidden');callback.call(self,main);},update:function(callback)
{var self=this;this.disable(true);self.adjustOrientation();self.enable();},setTitle:function(title,now)
{this.modalTitle=title;if(now===true&&this.containers.title){dfx.setHtml(this.containers.title,this.modalTitle);}},setContent:function(el)
{this.content=el;if(this.containers.body){dfx.empty(this.containers.body);this.containers.body.appendChild(el);}},open:function()
{ErrorDialogWidgetType.registerOpenDialog(this);if(ErrorDialogWidgetType.count===1){this.displayDisabledDiv(false);}
this.adjustOrientation();this.fireOnOpenCallbacks();},show:function()
{dfx.setStyle(this.el,'display','block');dfx.setStyle(this.el,'visibility','visible');},close:function(win,force)
{if(this.closeConfirm===true&&dfx.isset(force)===false){var self=this;this.confirmDialog(this.closeConfirmText,this.closeConfirmTitle,function(){self.close(win,true);});}else{if(dfx.isset(force)===false||force===true){ErrorDialogWidgetType.removeOpenDialog(this);if(ErrorDialogWidgetType.count===0){this.removeDisabledDiv();}
this.fireOnCloseCallbacks(win);}}},adjustOrientation:function()
{var self=this;setTimeout(function(){var h=dfx.getElementHeight(self.el);var w=dfx.getElementWidth(self.el);dfx.setStyle(self.el,'margin-top',((h/2)*(-1))+'px');dfx.setStyle(self.el,'margin-left',((w/2)*(-1))+'px');dfx.setStyle(self.el,'visibility','visible');},100);},addOnOpenCallback:function(fn)
{this.onOpenCallbacks.push(fn);},addOnCloseCallback:function(fn)
{if(dfx.isFn(fn)===true){this.onCloseCallbacks.push(fn);}},fireOnOpenCallbacks:function()
{var len=this.onOpenCallbacks.length;for(var i=0;i<len;i++){this.onOpenCallbacks[i].call(this);}},fireOnCloseCallbacks:function(win)
{var len=this.onCloseCallbacks.length;for(var i=0;i<len;i++){this.onCloseCallbacks[i].call(this,win);}},disable:function(loader)
{loader=loader||false;this.disableButtons();this.hideCloseButton();this.displayDisabledDiv(loader,dfx.getClass(this.getClass()+'-mid-center',this.el)[0],'white','absolute');},enable:function()
{this.enableButtons();this.showCloseButton();this.removeDisabledDiv(dfx.getClass(this.getClass()+'-mid-center',this.el)[0]);},disableParentDialog:function()
{if(this.parentDialog!==null){this.parentDialog.disable();}},enableParentDialog:function()
{if(this.parentDialog!==null){this.parentDialog.enable();}},addButton:function(title,callback)
{var self=this;this.numOfButtons++;this.includeWidget('Button',function(){var buttonWidget=self.createWidget(self.id+'-buttons-'+self.numOfButtons,'Button','ButtonWidgetType',false,title);buttonWidget.create(function(div){self.containers.buttons.appendChild(div);self.buttons.push(buttonWidget);dfx.setStyle(buttonWidget.content,'width','100px');if(dfx.isFn(callback)===true){callback.call(self,buttonWidget);}});});},disableButtons:function()
{var bln=this.buttons.length;for(var i=0;i<bln;i++){this.buttons[i].disable();}},enableButtons:function()
{var bln=this.buttons.length;for(var i=0;i<bln;i++){this.buttons[i].enable();}},hideButtonsPanel:function()
{dfx.addClass(dfx.getClass('ErrorDialogWidgetType-buttons',this.el),'hidden');},showButtonsPanel:function()
{dfx.removeClass(dfx.getClass('ErrorDialogWidgetType-buttons',this.el),'hidden');},setSize:function(width,height)
{this.dims={width:width,height:height}
if(this.el){dfx.setStyle(this.el,'width',width);dfx.setStyle(this.containers.contWrapper,'height',height);this.dialogResized(width,height);}},dialogResized:function(width,height){},showFooter:function()
{dfx.addClass(this.containers.footer,'active');},hideFooter:function()
{dfx.removeClass(this.containers.footer,'active');},setFooterContent:function(el,className)
{dfx.empty(this.containers.footerContent);this.containers.footerContent.appendChild(el);if(className){dfx.addClass(this.containers.footer,className);}}};dfx.inherits('ErrorDialog','Overlay');function ModalDialogWidgetType(id,titleDivId,buttonHolderId,buttons)
{OverlayWidgetType.call(this,id);this.widgetType='ModalDialog';this.containers={};this.modalTitle='';this.modalSubTitle='';this.parentDialog=null;this.content=null;this.dynamicParams=null;this.useDynamicContent=false;this.buttons=[];this.numOfButtons=0;this.onOpenCallbacks=[];this.onCloseCallbacks=[];this.closeConfirm=false;this.closeConfirmTitle='';this.closeConfirmText='';this.allowResize=true;this.dims={width:'710px',height:'300px'};}
ModalDialogWidgetType.openDialogs={};ModalDialogWidgetType.count=0;ModalDialogWidgetType.currentDialogId=null;ModalDialogWidgetType.getCurrentDialog=function()
{if(ModalDialogWidgetType.currentDialogId!==null){return ModalDialogWidgetType.openDialogs[ModalDialogWidgetType.currentDialogId];}
return null;};ModalDialogWidgetType.registerOpenDialog=function(dialog)
{ModalDialogWidgetType.count++;if(ModalDialogWidgetType.currentDialogId!==null){dialog.parentDialog=ModalDialogWidgetType.openDialogs[ModalDialogWidgetType.currentDialogId];}
ModalDialogWidgetType.currentDialogId=dialog.id;var div=document.getElementById(dialog.id);dfx.setStyle(div,'z-index',(1000+ModalDialogWidgetType.count));ModalDialogWidgetType.openDialogs[dialog.id]=dialog;};ModalDialogWidgetType.removeOpenDialog=function(dialog)
{ModalDialogWidgetType.count--;dfx.remove(dialog.el);delete ModalDialogWidgetType.openDialogs[dialog.id];delete dialog;};ModalDialogWidgetType.prototype={create:function(callback,noAppend)
{noAppend=noAppend||false;var main=document.createElement('div');this.el=main;main.id=this.id;var c=this.getClass();dfx.addClass(main,c);this.domElem=main;var content='<div class="'+c+'-top">';content+='<div class="'+c+'-top-left"></div>';content+='<div class="'+c+'-top-right"></div>';content+='<div class="'+c+'-top-mid"><div class="'+c+'-top-close" title="Close"></div>';content+='<div>';content+='<img class="'+c+'-icon"></imc>';content+='<div class="'+c+'-title">'+this.modalTitle+'</div>';content+='<div class="'+c+'-subtitle">'+this.modalSubTitle+'</div>';content+='</div>';content+='</div>';content+='</div>';content+='<div class="'+c+'-mid">';content+='<div class="'+c+'-mid-left"></div>';content+='<div class="'+c+'-mid-right"></div>';content+='<div class="'+c+'-mid-center" id="'+this.id+'-mid-center"></div>';content+='</div>';content+='<div class="'+c+'-footer">';content+='<div class="'+c+'-footer-left"></div>';content+='<div class="'+c+'-footer-right"></div>';content+='<div class="'+c+'-footer-center"></div>';content+='</div>';content+='<div class="'+c+'-buttons">';content+='<div class="'+c+'-buttons-left"></div>';content+='<div class="'+c+'-buttons-right"></div>';content+='<div class="'+c+'-buttons-center"></div>';content+='</div>';content+='<div class="'+c+'-bottom"><div class="'+c+'-bottom-left"></div><div class="'+c+'-bottom-right"></div><div class="'+c+'-bottom-center"></div></div>';dfx.setHtml(main,content);var contWrapper=dfx.getClass(c+'-mid',main)[0];var bodyContainer=dfx.getClass(c+'-mid-center',main)[0];var closeContainer=dfx.getClass(c+'-top-close',main)[0];var titleContainer=dfx.getClass(c+'-title',main)[0];var subTitleContiner=dfx.getClass(c+'-subtitle',main)[0];var iconContainer=dfx.getClass(c+'-icon',main)[0];var buttonsContainer=dfx.getClass(c+'-buttons-center',main)[0];var topContainer=dfx.getClass(c+'-top',main)[0];var footer=dfx.getClass(c+'-footer',main)[0];var footerContent=dfx.getClass(c+'-footer-center',main)[0];this.containers={body:bodyContainer,closeBtn:closeContainer,title:titleContainer,subTitle:subTitleContiner,icon:iconContainer,buttons:buttonsContainer,contWrapper:contWrapper,footer:footer,footerContent:footerContent};this.setSize(this.dims.width,this.dims.height);dfxjQuery(main).draggable({handle:topContainer,drag:this.adjustPosition});if(this.allowResize===true){this.enableResize(main,contWrapper,{handles:dfx.getClass(this.getClass()+'-bottom-right',main)[0],minWidth:parseInt(this.dims.width),minHeight:parseInt(this.dims.height)});}
var self=this;if(this.useDynamicContent===true){this.includeWidgets(['DynamicDiv','Button'],function(){var dynamicDiv=self.createWidget(this.id+'-dynamicDiv','DynamicDiv');dynamicDiv.create(function(el){bodyContainer.appendChild(el);if(noAppend!==true){document.body.appendChild(main);}
dfx.addEvent(closeContainer,'click',function(){self.close(true);});dfx.setStyle(main,'visibility','hidden');self.dynamicParams.mode='ModalDialogRequest';dynamicDiv.changeContent(self.dynamicParams,function(data){if(dfx.isFn(callback)===true){callback.call(self,main);return;}});});});}else if(dfx.isFn(callback)===true){bodyContainer.appendChild(this.content);if(noAppend!==true){document.body.appendChild(main);}
dfx.setStyle(main,'visibility','hidden');dfx.addEvent(closeContainer,'click',function(){self.close(true);});this.includeWidget('Button',function(){callback.call(self,main);return;});}},adjustPosition:function(event,ui){var obj=dfx.getId(this.id);var objHeight=obj.offsetHeight;var objWidth=obj.offsetWidth;var hHeight=(objHeight/2);var hWidth=(objWidth/2);var winWidth=dfx.getWindowDimensions().width;var winHeight=dfx.getWindowDimensions().height;var maxWidth=(winWidth-hWidth);var maxHeight=(winHeight-hHeight);if(ui.position.top<hHeight){ui.position.top=hHeight;}
if(ui.position.top>maxHeight){ui.position.top=maxHeight;}
if(ui.position.left<hWidth){ui.position.left=hWidth;}
if(ui.position.left>maxWidth){ui.position.left=maxWidth;}},update:function(callback)
{var self=this;this.disable(true);if(this.useDynamicContent===true){this.dynamicParams.mode='ModalDialogRequest';var dynamicDiv=WidgetStore.get(this.id+'-dynamicDiv');dfx.setHtml(this.containers.title,this.modalTitle);dynamicDiv.changeContent(this.dynamicParams,function(data){if(dfx.isFn(callback)===true){callback.call(self,div);}
self.adjustOrientation();self.enable();});}else{self.adjustOrientation();self.enable();}},setTitle:function(title,now)
{this.modalTitle=title;if(now===true&&this.containers.title){dfx.setHtml(this.containers.title,this.modalTitle);}},setSubTitle:function(title,now)
{this.modalSubTitle=title;if(now===true&&this.containers.subTitle){dfx.setHtml(this.containers.subTitle,this.modalSubTitle);}},setIcon:function(icon)
{if(icon){this.iconUrl=icon;this.containers.icon.setAttribute('src',icon);dfx.addClass(this.containers.icon,'active');}else{dfx.removeClass(this.containers.icon,'active');}},setContent:function(el)
{this.useDynamicContent=false;this.content=el;if(this.containers.body){dfx.empty(this.containers.body);this.containers.body.appendChild(el);}},setDynamicParams:function(params)
{this.useDynamicContent=true;this.dynamicParams=params;},open:function(callback)
{ModalDialogWidgetType.registerOpenDialog(this);if(ModalDialogWidgetType.count===1){this.displayDisabledDiv(false);}
this.adjustOrientation(callback);this.fireOnOpenCallbacks();},show:function()
{dfx.setStyle(this.el,'display','block');dfx.setStyle(this.el,'visibility','visible');},close:function(win,force)
{if(this.closeConfirm===true&&dfx.isset(force)===false){var iwid=this.id+'_closeConfirm';var iw=WidgetStore.get(iwid);if(iw){iw.show(this.containers.closeBtn,'fixed');return;}
var self=this;self.includeWidget('Intervention',function(){iw=self.createWidget(iwid,'Intervention',function(){iw.close();},function(){WidgetStore.remove(iwid);self.close(win,true);});iw.create(function(){iw.setSize('250px','61px');iw.setMessage('Are you sure you want to close this window?');iw.show(self.containers.closeBtn,'fixed');});});}else{if(dfx.isset(force)===false||force===true){ModalDialogWidgetType.removeOpenDialog(this);if(ModalDialogWidgetType.count===0){this.removeDisabledDiv();}
this.fireOnCloseCallbacks(win);}}},adjustOrientation:function(callback)
{var self=this;setTimeout(function(){var h=dfx.getElementHeight(self.el);var w=dfx.getElementWidth(self.el);dfx.setStyle(self.el,'margin-top',((h/2)*(-1))+'px');dfx.setStyle(self.el,'margin-left',((w/2)*(-1))+'px');dfx.setStyle(self.el,'visibility','visible');if(callback){callback.call(self);}},100);},addOnOpenCallback:function(fn)
{this.onOpenCallbacks.push(fn);},addOnCloseCallback:function(fn)
{if(dfx.isFn(fn)===true){this.onCloseCallbacks.push(fn);}},fireOnOpenCallbacks:function()
{var len=this.onOpenCallbacks.length;for(var i=0;i<len;i++){this.onOpenCallbacks[i].call(this);}},fireOnCloseCallbacks:function(win)
{var len=this.onCloseCallbacks.length;for(var i=0;i<len;i++){this.onCloseCallbacks[i].call(this,win);}},disable:function(loader)
{loader=loader||false;this.disableButtons();this.hideCloseButton();this.displayDisabledDiv(loader,dfx.getClass(this.getClass()+'-mid-center',this.el)[0],'white','absolute');},enable:function()
{this.enableButtons();this.showCloseButton();this.removeDisabledDiv(dfx.getClass(this.getClass()+'-mid-center',this.el)[0]);},disableParentDialog:function()
{if(this.parentDialog!==null){this.parentDialog.disable();}},enableParentDialog:function()
{if(this.parentDialog!==null){this.parentDialog.enable();}},addButton:function(title,callback)
{var self=this;this.numOfButtons++;this.includeWidget('Button',function(){var buttonWidget=self.createWidget(self.id+'-buttons-'+self.numOfButtons,'Button','ButtonWidgetType',false,title);buttonWidget.create(function(div){self.containers.buttons.appendChild(div);dfx.addClass(div,self.getClass()+'-dialogButton');self.buttons.push(buttonWidget);if(dfx.isFn(callback)===true){callback.call(self,buttonWidget);}});});},disableButtons:function()
{var bln=this.buttons.length;for(var i=0;i<bln;i++){this.buttons[i].disable();}},enableButtons:function()
{var bln=this.buttons.length;for(var i=0;i<bln;i++){this.buttons[i].enable();}},hideCloseButton:function()
{dfx.setStyle(this.containers.closeBtn,'display','none');},showCloseButton:function()
{dfx.setStyle(this.containers.closeBtn,'display','block');},hideButtonsPanel:function()
{dfx.addClass(dfx.getClass('ModalDialogWidgetType-buttons',this.el),'hidden');},showButtonsPanel:function()
{dfx.removeClass(dfx.getClass('ModalDialogWidgetType-buttons',this.el),'hidden');},setSize:function(width,height)
{this.dims={width:width||this.dims.width,height:height||this.dims.height};if(this.el){dfx.setStyle(this.el,'width',width);dfx.setStyle(this.containers.contWrapper,'height',height);this.dialogResized(width,height);}},enableResize:function(widthElem,heightElem,options,start,stop)
{start=start||function(){};stop=stop||function(){};options=options||{};var self=this;dfx.addEvent(options.handles,'mousedown.modalResize',function(de){start.call(this);var width=dfx.getElementWidth(widthElem);var height=dfx.getElementHeight(heightElem);var startMPos=dfx.getMouseEventPosition(de);dfx.addEvent(document,'mousemove.modalResize',function(me){var mpos=dfx.getMouseEventPosition(me);var wdiff=(mpos.x-startMPos.x);var nwidth=(width+wdiff);var changed=false;if(nwidth>=options.minWidth){dfx.setStyle(widthElem,'width',(nwidth+'px'));changed=true;}else{nwidth=options.minWidth;}
var hdiff=(mpos.y-startMPos.y);var nheight=(height+hdiff);if(nheight>=options.minHeight){dfx.setStyle(heightElem,'height',(nheight+'px'));changed=true;}else{nheight=options.minHeight;}
if(changed===true){self.dialogResized(nwidth,nheight);}});dfx.addEvent(document,'mouseup.modalResize',function(){stop.call(this);dfx.removeEvent(document,'mousemove.modalResize');dfx.removeEvent(document,'mouseup.modalResize');});});},dialogResized:function(width,height){},showFooter:function(height)
{dfx.addClass(this.containers.footer,'active');if(height){dfx.setStyle(this.containers.footer,'height',height);}},hideFooter:function()
{dfx.removeClass(this.containers.footer,'active');},setFooterContent:function(el,className)
{dfx.empty(this.containers.footerContent);this.containers.footerContent.appendChild(el);if(className){dfx.addClass(this.containers.footer,className);}}};dfx.inherits('ModalDialog','Overlay');function ImageVersioningWidgetType(id,assetid,version,fileName,fileSize,imgWidth,imgHeight,hasImage)
{this.fileName=fileName;this.fileSize=fileSize;this.imgWidth=parseInt(imgWidth);this.imgHeight=parseInt(imgHeight);this.resizeWidth=972;this.hasImage=hasImage;FileVersioningWidgetType.call(this,id,assetid,version);this.widgetType='ImageVersioning';}
ImageVersioningWidgetType.prototype={init:function()
{this.widgetType='ImageVersioning';this.createBox();},createBox:function()
{var c='ImageVersioningWidgetType';var content='';content+='<div style="padding:10px;">';if(dfx.isNumeric(this.fileSize)===true){this.fileSize=parseInt(this.fileSize);var showResized=false;if(this.imgWidth>dfx.getWindowDimensions().width||this.fileSize>409600){showResized=true;}
this.fileSize=dfx.readableSize(this.fileSize)}
var self=this;this.createButton(function(buttonEl){dfx.addClass(buttonEl,'VersioningDownloadThisButton');if(showResized===true){var fileSize=self.fileSize+', '+self.imgWidth+' x '+self.imgHeight+' pixels';fileSize+=' (image resized for preview)';content+='<div id="'+self.id+'-top-resized" class="'+c+'-top-resized">';content+='<div class="'+c+'-top-resized-left">Large Image</div>';content+='<div class="'+c+'-top-resized-main">';content+='<div class="'+c+'-top-resized-main-left">';content+='<div class="'+c+'-top-left-name">'+self.fileName+'</div>';content+='<div class="'+c+'-top-left-size">'+fileSize+'</div>';content+='</div>';content+='<div class="'+c+'-top-right">';content+='</div>';content+='</div>';content+='</div>';}else{content+='<div id="'+self.id+'-top" class="'+c+'-top">';content+='<div class="'+c+'-top-left">';content+='<div class="'+c+'-top-left-name">'+self.fileName+'</div>';content+='<div class="'+c+'-top-left-size">'+self.fileSize+'</div>';content+='</div>';content+='<div class="'+c+'-top-right">';content+='</div>';content+='</div>';}
var qs='?widget='+self.getWidgetType()+'WidgetType&action=getImg&assetid='+self.assetid+'&version='+self.version;qs+='&r='+showResized;var imageURL=self.url+qs;dfx.getImage(imageURL,function(image){content+='<div id="'+self.id+'-bottom" class="'+c+'-bottom">';content+='</div>';content+='</div>';var elem=dfx.getId(self.id);dfx.setHtml(elem,content);if(image){dfx.getClass(c+'-bottom',elem)[0].appendChild(image);}else{var tmp=document.createElement('div');dfx.addClass(tmp,c+'-noSS');dfx.setHtml(tmp,'Screenshot for this version is not available');dfx.getClass(c+'-bottom',elem)[0].appendChild(tmp);}
dfx.getClass(c+'-top-right',elem)[0].appendChild(buttonEl);if(showResized===true){dfx.setStyle(elem,'width',self.resizeWidth+'px');}else if(image){dfx.setStyle(elem,'width',(image.width+22)+'px');}
if(this.imgWidth<this.resizeWidth){dfx.addClass(dfx.getClass(c+'-bottom',elem)[0],c+'-sm');}});});},createButton:function(callback)
{var self=this;this.includeWidget('Button',function(el){var button=self.createWidget(self.id+'_dl','Button','ButtonWidgetType',false,'Download this Version');if(self.hasImage===false){button.disable();}
button.create(function(el){self.addDownloadButtonClickEvent(button);callback.call(self,el);});});},getWidgetType:function()
{return'ImageVersioning';}};dfx.inherits('ImageVersioning','FileVersioning');function WorkflowTaskContainerWidgetType(id,collapsed,ani,taskid,userName)
{AdhocTaskContainerWidgetType.call(this,id,collapsed,ani,taskid,userName);this.widgetType='WorkflowTaskContainer';}
WorkflowTaskContainerWidgetType.prototype={init:function()
{this.approveButtonEvent();this.rejectButtonEvent();this.reassignButtonEvent();},approveButtonEvent:function()
{var approve=WidgetStore.get(this.id+'-action:approve');if(dfx.isset(approve)===true){var self=this;approve.addClickEvent(function(){self.approveTask();});}},approveTask:function()
{var self=this;this.sendAction('approve',null,function(data){if(data==='1'){dfx.remove(self.domElem);}else{alert('Failed to approve task');}});},rejectButtonEvent:function()
{var button=WidgetStore.get(this.id+'-action:reject');if(dfx.isset(button)===true){var self=this;button.addClickEvent(function(){self.rejectTask();});}},rejectTask:function()
{var self=this;this.sendAction('reject',null,function(data){if(data==='1'){dfx.remove(self.domElem);}else{alert('Failed to reject task');}});}};dfx.inherits('WorkflowTaskContainer','AdhocTaskContainer');function MenuTabPaneWidgetType(id,orientation,tabChangeInfo)
{DynamicTabPaneWidgetType.call(this,id,orientation,tabChangeInfo);this.widgetType='MenuTabPane';this.activeClass='MenuTabPaneWidgetType-tab-icon';this.inactiveClass='MenuTabPaneWidgetType-tab-icon-inactive';var elems=dfx.getClass('MenuTabPaneWidgetType-tab',dfx.getId(this.id));this.tabElems=elems;var ln=elems.length;for(var i=0;i<ln;i++){this.hoverEvent(elems[i],i);}
var self=this;this.addOnSelectHandler(function(index,prevIndex){self.displayDisabledDiv(true);var saveBtn=WidgetStore.get('EditingSaveButton');if(saveBtn.isEnabled()===true){var answer=confirm(WidgetStore.getUnsavedChangesStr());if(answer===false){self.removeDisabledDiv();return false;}}
var prevTab=this.tabElements[prevIndex];if(dfx.isset(prevTab)===true&&prevIndex!==index){dfx.swapClass(prevTab.firstChild,self.activeClass,self.inactiveClass);}
var currTab=this.tabElements[index];if(dfx.isset(currTab)===true){dfx.swapClass(currTab.firstChild,self.inactiveClass,self.activeClass);}});}
MenuTabPaneWidgetType.prototype={hoverEvent:function(elem,idx)
{var self=this;dfx.hover(elem,function(e){if(dfx.isset(self.blockedTabs[idx])&&self.blockedTabs[idx]===true){return;}
dfx.swapClass(elem.firstChild,self.inactiveClass,self.activeClass);},function(e){if(dfx.isset(self.blockedTabs[idx])&&self.blockedTabs[idx]===true){return;}
if(dfx.hasClass(elem,'MenuTabPaneWidgetType-o-top-tab-selected')===false){dfx.swapClass(elem.firstChild,self.activeClass,self.inactiveClass);}});},showScreen:function(screenid,data,force)
{if(!screenid){return;}
var index=this.getScreenIndex(screenid);if(index!==false){this.showTab(index,data,force);}},getScreenIndex:function(screenid)
{var tabid=this.id+'-tab-'+screenid;var len=this.tabElems.length;for(var i=0;i<len;i++){if(this.tabElems[i].id===tabid){if(dfx.isset(this.blockedTabs[i])===true){if(this.blockedTabs[i]===true){return false;}}
return i;}}
return false;}};dfx.inherits('MenuTabPane','DynamicTabPane');function JumperTreeWidgetType(id)
{AssetTreeWidgetType.call(this,id);}
JumperTreeWidgetType.prototype={addToggleButtonEvent:function(toggleButton,assetInfo)
{toggleButton.hide();toggleButton.setToggleOnTitle('Jump');var self=this;toggleButton.addToggleEvent(function(selected){self.jumpToAsset(assetInfo.id);});},fireItemHoverEvents:function(nodeid,li,on)
{var button=WidgetStore.get(this.id+'-button:'+nodeid);if(button){if(on===true){button.show();}else{button.hide();}}
AssetTreeWidgetType.prototype.fireItemHoverEvents.call(this,nodeid,li,on);},jumpToAsset:function(assetid)
{AssetManager.getAssetUrl(assetid,function(url){var editUrl=url+'/'+Widget.EDIT_SUFFIX;window.location=editUrl;});}};dfx.inherits('JumperTree','AssetTree');function AdminScreenModeWidgetType(id,screens,assetid,editableAssets,initialScreen)
{AbstractEditingScreenModeWidgetType.call(this,id,screens,assetid,editableAssets,initialScreen);this.widgetType='AdminScreenMode';this.modeType='Admin';this.currentScreenMode='AdminScreenModeWidget';}
AdminScreenModeWidgetType.prototype={tabLoaded:function()
{dfx.setStyle(dfx.getId(this.id+'_screen_dialog'),'position','relative');},displaySplashScreen:function()
{AbstractEditingScreenModeWidgetType.prototype.displaySplashScreen.call(this);this.ready();},displayNoAccessScreen:function()
{AbstractEditingScreenModeWidgetType.prototype.displayNoAccessScreen.call(this);this.ready();},processSpecifiedScreen:function(screenWidgetName,params,callback)
{var self=this;this.lockInfo=dfx.clone(WidgetStore.get(screenWidgetName).parent.lockInfo);AbstractEditingScreenModeWidgetType.prototype.processScreen.call(this,params,callback);}};dfx.inherits('AdminScreenMode','AbstractEditingScreenMode');function EditScreenModeWidgetType(id,screens,assetid,editableAssets,initialScreen,dependencies,referenceExists,publishingWarning)
{this.modeType='Edit';AbstractEditingScreenModeWidgetType.call(this,id,screens,assetid,editableAssets,initialScreen);this.widgetType='EditScreenMode';this.currentScreenMode='EditScreenModeWidget';this.settingsInfoBox=WidgetStore.get(this.id+'-infobox');this.editableAssets=editableAssets;this.settingsModeDynamicTab=WidgetStore.get(this.id+'-tab_pane');WidgetStore.setData('editingAssetid',this.assetid);this._assetName=null;this.dependencies=dependencies;this.referenceExists=referenceExists;this.publishingWarning=publishingWarning;this.categoryClassname='dependency-category';this.contextClassname='dependency-usageContext';this.contextDescClassname='dependency-usageContextDesc';this.contextTagClassname='dependency-usageContextTag';this.contextCurvesClassname='dependency-usageContextCurves';this.contextTypeClassname='dependency-usageContextType';}
EditScreenModeWidgetType.prototype={_ready:function()
{var self=this;this.includeWidgets(['PlainList','Button'],function(){self.initSubInfoBox(function(){self.initInfoBox();});});},_setupNameInput:function(assetid,disable)
{var id=this.id+'-input-assetName';var input=dfx.getId(id);if(!input){return;}
var initVal='';if(this._assetName!==null){initVal=this._assetName;}else{initVal=input.value;this._assetName=initVal;}
var self=this;var resource='attr-name:'+assetid;var lockToken=false;var lockPopup=null;if(disable===true){input.disabled=true;return;}
dfx.addEvent(input,'focus',function(){Locking.acquire(resource,function(result){if(result!==true){dfx.setStyle(input,'cursor','not-allowed');input.blur();self.includeWidget('EditEditingModeLocking',function(){if(!lockPopup){lockPopup=self.createWidget(null,'EditEditingModeLocking');}
var errInfo=Locking.getError(result);errInfo.element=input;errInfo.modified=true;errInfo.callback=function(act){if(act==='revert'){input.value=initVal;input.blur();}else if(act===true){dfx.setStyle(input,'cursor','text');input.focus();}};if(lockPopup.isActive()===false){lockPopup.showMessage(errInfo);}});}else{dfx.setStyle(input,'cursor','text');lockToken=Locking.getToken(resource);if(initVal!==input.value){self.setModified(true,true);}}});});dfx.addEvent(input,'keyup',function(){if(lockToken===false){return;}
if(initVal!==input.value){self.setModified(true,true);}else{self.setModified(false);}});this.setSaveButton(function(){self.displayDisabledDiv(true);var params={mode:'EditScreenMode',action:'updateAssetName',assetid:assetid,_assetName:dfx.fixHtml(input.value),_nameLockToken:lockToken};dfx.post(self.url,params,function(response){Locking.release([lockToken]);self.processSaveResponse(response,params,function(act){if(act===true){setTimeout(function(){var modeSwitcher=WidgetStore.get('EditingModeSwitcher');modeSwitcher.switchMode(dfx.getId('EditingModeSwitcher-EditScreenMode'),null,null,null,true);},1500);}else{self.setModified(true,true);}});});},function(){Locking.release([lockToken]);input.value=initVal;self.removeDisabledDiv();});WidgetStore.addDataChangeListener('EditScreenModeSplashScreen','activeMode',function(newMode,prevMode){Locking.release([lockToken]);input.value=initVal;});},updateSubInfoBox:function(assetid,callback)
{var self=this;var params={mode:'EditScreenMode',action:'getUsageData',assetid:assetid};dfx.post(this.url,params,function(response){var usageInfo=dfx.jsonDecode(response);var depDiv=dfx.getId(self.id+'-infobox-dependencies');var depTypeString={'embedded_media':'Embedded Media','content_references':'Content References','general_references':'General References','design_related':'Design Related'};dfx.foreach(depTypeString,function(key){var liElem=dfx.getId('EditScreenModeWidgetType-deps-'+key);var countSpan=dfx.getClass('dependency-usageContextType',liElem)[0];dfx.setHtml(countSpan,usageInfo.dependencies[key]);if(usageInfo.dependencies[key]===0){dfx.addClass(dfx.getClass('dependency-category',liElem)[0],'mask');dfx.addClass(dfx.getClass('dependency-usageContext',liElem)[0],'mask');}else{dfx.removeClass(dfx.getClass('dependency-category',liElem)[0],'mask');dfx.removeClass(dfx.getClass('dependency-usageContext',liElem)[0],'mask');}
return true;});if(usageInfo.displayPublishingWarning===true){self.showSubInfoPublishingWarning();}else{self.hideSubInfoPublishingWarning();}
if(callback){callback.call(self);}});},initSubInfoBox:function(callback)
{var self=this;var rows=[];var depTypeString={'embedded_media':'Embedded Media','content_references':'Content References','general_references':'General References','design_related':'Design Related'};dfx.foreach(self.dependencies,function(depType){var context=document.createElement('div');var contextTag=document.createElement('div');var contextCurves=document.createElement('span');var contextType=document.createElement('span');dfx.addClass(context,self.contextClassname);dfx.addClass(contextTag,self.contextTagClassname);dfx.addClass(contextCurves,self.contextCurvesClassname);dfx.addClass(contextType,self.contextTypeClassname);dfx.setHtml(contextType,self.dependencies[depType]+'');contextCurves.appendChild(contextType);contextTag.appendChild(contextCurves);context.appendChild(contextTag);var category=document.createElement('span');dfx.addClass(category,self.categoryClassname);dfx.setHtml(category,depTypeString[depType]);if(self.dependencies[depType]===0){dfx.addClass(context,'mask');dfx.addClass(category,'mask');}
rows.push({id:depType,left:category,right:context});return true;});var list=self.createWidget(self.id+'-deps','PlainList','235',false,false,false,rows);var pubWarnBtnWidget=self.createWidget(self.id+'-pubWarnBtn','Button','ButtonWidgetType-black',false,'View Report');pubWarnBtnWidget.create(function(bel){list.create(function(el){var depDiv=dfx.getId(self.id+'-infobox-dependencies');var depInner1=document.createElement('div');var depHeader=document.createElement('div');var depContent=document.createElement('div');dfx.addClass(depDiv,self.widgetType+'-infoBox-subBox');dfx.addClass(depInner1,self.widgetType+'-infoBox-subBox-inner1');dfx.addClass(depHeader,self.widgetType+'-infoBox-subBox-header');dfx.addClass(depContent,self.widgetType+'-infoBox-subBox-content');dfx.setHtml(depHeader,'Dependencies');var pubWarningWrap=document.createElement('div');var content='<span class="warning_icon">&nbsp;</span><span class="warning_text">';content+='<strong>Warning</strong><br />One or more dependencies need to be published</span>';dfx.setHtml(pubWarningWrap,content);dfx.addClass(pubWarningWrap,'InfoBoxWidgetType-Grey-warning');pubWarnBtnWidget.addClickEvent(function(){dfx.trigger(dfx.getId('EditScreenModeWidgetType-tab_pane-tab-publishing'),'click');});var pubWarningButtonWrap=document.createElement('div');dfx.addClass(pubWarningButtonWrap,'InfoBoxWidgetType-Grey-warning');pubWarningButtonWrap.appendChild(bel);depContent.appendChild(pubWarningWrap);depContent.appendChild(pubWarningButtonWrap);self.pubWarningWrap=pubWarningWrap;self.pubWarningButtonWrap=pubWarningButtonWrap;if(self.publishingWarning===true){self.showSubInfoPublishingWarning();}
depInner1.appendChild(depHeader);depInner1.appendChild(depContent);depDiv.appendChild(depInner1);dfx.addClass(el,self.widgetType+'-infoBox-subBox-list');depContent.appendChild(el);var list=dfx.getClass('PlainListWidgetType',el);dfx.setStyle(list[(list.length-1)],'border-bottom','none');if(callback){callback.call(self);}});});},initInfoBox:function()
{var self=this;AssetManager.getAsset(this.assetid,function(asset){var hideTrash=false;var aid=parseInt(self.assetid);if(Widget.CURRENT_USERID===aid){hideTrash=true;}else{dfx.foreach(Widget.CURRENT_USER_GROUPS,function(idx){if(aid===Widget.CURRENT_USER_GROUPS[idx]){hideTrash=true;return false;}
return true;});}
var disable=false;if(asset.type==='user'){disable=true;}
if(parseFloat(self.assetid)<0||(self.assetid+'').search('~')!==-1){disable=true;}
self._setupNameInput(self.assetid,disable);self.settingsInfoBox.addSection('preview',null,true);self.settingsInfoBox.setUlClassPrefix('Blue');var content='';var date=new Date();content+='<div class="'+self.getClass()+'-thumbnail-cont">';content+='<img src="'+Widget.BASE_URL+'/?tb=1&a='+asset.id+'&t='+date.getTime()+'" alt="'+asset.name+'" title="'+asset.name+'"/>';content+='</div>';var publishedDate=asset.getAttribute('published_datetime');if(publishedDate){publishedDate=dfx.date('d M Y',null,publishedDate);}else{publishedDate='Never';}
var updatedDate=asset.getAttribute('updated_datetime');if(updatedDate){var updatedDate=dfx.date('d M Y',null,updatedDate);}else{updatedDate='Never';}
var c=self.getClass();content+='<div class="'+c+'-assetInfo">';content+='<div class="'+c+'-assetPublishInfo">Published: '+publishedDate+'</div>';content+='<div class="'+c+'-assetUpdateInfo">Last Update: '+updatedDate+'</div>';if(hideTrash===false){content+='<div class="'+c+'-assetTrash" title="Move this asset to trash"></div>';content+='</div>';}
var cdiv=document.createElement('div');dfx.setHtml(cdiv,content);if(hideTrash===false){var trashIcon=dfx.getClass(c+'-assetTrash',cdiv)[0];var access=self.settingsModeDynamicTab.getScreenIndex('linking');dfx.addEvent(trashIcon,'click',function(){if(access===false){self.includeWidget('Intervention',function(){var ipopup=self.createWidget(null,'Intervention',function(){},function(){});ipopup.confirmText=null;ipopup.cancelText='OK';ipopup.create(function(){ipopup.setSize('310px','50px');ipopup.setMessage('You do not have permission to delete this asset');ipopup.show(trashIcon);});});}else if(self.referenceExists===true){var as=WidgetStore.getData('activeScreen');if(as.id==='linking'){var iw=self.createWidget('inter','Intervention',function(){},function(){dfx.trigger(dfx.getId('EditScreenModeWidgetType-tab_pane-tab-linking'),'click');});iw.setCancelText('Ok');iw.setConfirmText(null);iw.create(function(){iw.setSize('200px','85px');iw.setMessage('This asset cannot be deleted as it is being used by other assets');iw.show(trashIcon);});}else{var iw=self.createWidget('inter','Intervention',function(){},function(){dfx.trigger(dfx.getId('EditScreenModeWidgetType-tab_pane-tab-linking'),'click');});iw.setCancelText('OK');iw.setConfirmText('Show References');iw.create(function(){iw.setSize('268px','65px');iw.setConfirmButtonSize('97');iw.setMessage('This asset cannot be deleted as it is being used by other assets');iw.show(trashIcon);});}}else{var assetType=asset.getType();if(assetType!=='projectFolder'&&assetType!=='site'){var activeScreen=WidgetStore.getData('activeScreen');if(activeScreen.id==='linking'){var linkingScreen=WidgetStore.get('LinkingEditScreen');linkingScreen.markAllForDeletion();}else{self.settingsModeDynamicTab.showScreen('linking',{showLinksDeleted:true},true);}}else{self.includeWidget('Intervention',function(){var ipopup=self.createWidget(null,'Intervention',function(){},function(){});ipopup.confirmText=null;ipopup.cancelText='OK';ipopup.create(function(){ipopup.setSize('225px','50px');ipopup.setMessage('This asset cannot be deleted');ipopup.show(trashIcon);});});}}});}
self.settingsInfoBox.addItem('preview',self.id+'-previewThumb',cdiv,null,true);if(self.editableAssets.length>1){self.settingsInfoBox.addSection('content',null);AssetManager.getAssets(self.editableAssets,function(assets){var assetNum=assets.length;self.settingsInfoBox.setPreSelectCheckFn(function(){var saveBtn=WidgetStore.get('EditingSaveButton');if(saveBtn.isEnabled()===true){var answer=confirm(WidgetStore.getUnsavedChangesStr());return answer;}});self.settingsInfoBox.setSelected('content_'+self.assetid);for(var i=0;i<assetNum;i++){(function(idx){var sectionid='content';var assetid=assets[idx].id;var id='content_'+assetid;var name=dfx.ellipsize(assets[idx].name,22);var title='<div class="'+self.getClass()+'-contents-list">';title+='<div class="'+self.getClass()+'-contents-list-icon"><img src="'+assets[idx].iconUrl+'" /></div>';title+='<div class="'+self.getClass()+'-contents-list-name">'+name+'</div>';title+='<div class="'+self.getClass()+'-contents-list-assetid">#'+assetid+'</div>';title+='</div>';self.settingsInfoBox.addItem(sectionid,id,title,function(clickedId){var screenPerms=[];var scrnLen=self.screens.length;for(var i=0;i<scrnLen;i++){screenPerms.push('asset.edit.'+self.screens[i].id);}
self.assetid=assetid;AssetManager.getPermissions(assetid,screenPerms,null,function(perms){self.permissions[assetid]=perms;WidgetStore.setData('editingAssetid',assetid);if(self.screenid==='editingSplash'||self.screenid==='adminSplash'){self.displaySplashScreen();self.setNoPermissionMask(perms);}else{self.setNoPermissionMask(perms);var index=null;for(var j=0;j<scrnLen;j++){if(self.screenid===self.screens[j].id){index=j;break;}}
if(index!==null){self.settingsModeDynamicTab.switchToScreen(index,function(){self.swapScreens(index,index);},true);}}});});})(i);}
self.ready();},true,{attributes:['name','published_datetime','updated_datetime'],type:false,typeIcon:true,linking:[],urls:false});}else{self.ready();}},true,{attributes:['name','published_datetime','updated_datetime'],type:true,typeIcon:false,linking:[],urls:false});},showSubInfoPublishingWarning:function()
{dfx.showElement(this.pubWarningWrap);dfx.showElement(this.pubWarningButtonWrap);},hideSubInfoPublishingWarning:function()
{dfx.hideElement(this.pubWarningWrap);dfx.hideElement(this.pubWarningButtonWrap);},setNoPermissionMask:function(perms)
{var self=this;var scrnLen=this.screens.length;for(var i=0;i<scrnLen;i++){if(perms['asset.edit.'+this.screens[i].id]===false){var wrap=dfx.getId(this.mode+'WidgetType-tab_pane-tab-'+this.screens[i].id);var mask=dfx.getClass('EditScreenModeWidgetType-noAccessMask',wrap)[0];if(!mask){mask=document.createElement('div');var icon=document.createElement('div');dfx.addClass(mask,'EditScreenModeWidgetType-noAccessMask');dfx.addClass(icon,'EditScreenModeWidgetType-noAccessIcon');mask.appendChild(icon);wrap.appendChild(mask);self.tabPaneWidget.blockTabClick(i);dfx.setStyle(wrap,'cursor','auto');}}else if(perms['asset.edit.'+this.screens[i].id]===true){var wrap=dfx.getId(this.mode+'WidgetType-tab_pane-tab-'+this.screens[i].id);self.tabPaneWidget.unblockTabClick(i);dfx.setStyle(wrap,'cursor','pointer');var mask=dfx.getClass('EditScreenModeWidgetType-noAccessMask',wrap)[0];if(mask){dfx.remove(mask);}}}},getAutoSaveContents:function()
{saveContents=AbstractEditingScreenModeWidgetType.prototype.getAutoSaveContents.call(this);var id=this.id+'-input-assetName';var input=dfx.getId(id);if(input&&input.value!==this._assetName){saveContents.assetName=input.value;}
return saveContents;},loadAutoSaveContents:function(content,callback)
{if(content.assetName){var id=this.id+'-input-assetName';var input=dfx.getId(id);if(input&&input.value!==content.assetName){this._assetName=content.assetName;input.value=content.assetName;this.setModified(true);this.ready();return;}}
AbstractEditingScreenModeWidgetType.prototype.loadAutoSaveContents.call(this,content,callback);}};dfx.inherits('EditScreenMode','AbstractEditingScreenMode');function SystemConfigScreenModeWidgetType(id,screens,assetid,editableAssets,initialScreen)
{AbstractEditingScreenModeWidgetType.call(this,id,screens,assetid,editableAssets,initialScreen);this.widgetType='SystemConfigScreenMode';this.modeType='SystemConfig';this.currentScreenMode='SystemConfigScreenModeWidget';}
SystemConfigScreenModeWidgetType.prototype={tabLoaded:function()
{dfx.setStyle(dfx.getId(this.id+'_screen_dialog'),'position','relative');},displaySplashScreen:function()
{AbstractEditingScreenModeWidgetType.prototype.displaySplashScreen.call(this);this.ready();},displayNoAccessScreen:function()
{AbstractEditingScreenModeWidgetType.prototype.displayNoAccessScreen.call(this);this.ready();}};dfx.inherits('SystemConfigScreenMode','AbstractEditingScreenMode');function ImageAssetEditContentsWidgetType(id,assetid,extraAttrs,hasPerm)
{FileAssetEditContentsWidgetType.call(this,id,assetid,extraAttrs,hasPerm);this.widgetType='ImageAssetEditContents';this.assetid=assetid;dfx.addClass(document.body,'ImageAssetEditContentsWidgetType-body');}
ImageAssetEditContentsWidgetType.prototype={init:function()
{this.createBox();},createBox:function()
{var c='ImageAssetEditContentsWidgetType';var content='<div style="padding:10px;">';var self=this;content+='<div class="'+c+'-top">';content+='<div class="'+c+'-top-left">';content+='<div class="'+c+'-top-left-name">'+self.extraAttrs.fileName+'</div>';content+='<div class="'+c+'-top-left-size">'+self.extraAttrs.fileSize+'</div>';content+='</div>';content+='<div class="'+c+'-top-right"></div></div>';var qs='?widget='+c+'&action=getImg&assetid='+self.assetid+'&version='+self.version;var imageURL=self.url+qs;content+='<div class="'+c+'-bottom">';content+='<img src="'+imageURL+'?_'+dfx.getUniqueId()+'" /></div></div>';var elem=dfx.getId(self.id);dfx.setHtml(elem,content);var width=parseInt(this.extraAttrs.imageWidth)+22;dfx.setStyle(elem,'width',width+'px');if(width<this.resizeWidth){dfx.addClass(dfx.getClass(c+'-bottom',elem)[0],c+'-sm');}
this.removeDisabledDiv();}};dfx.inherits('ImageAssetEditContents','FileAssetEditContents');function MovieAssetEditContentsWidgetType(id,assetid,extraAttrs)
{FileAssetEditContentsWidgetType.call(this,id,assetid,extraAttrs,true);this.widgetType='MovieAssetEditContents';this.assetid=assetid;this.thumbInput=null;this._selectedThumb=null;this.fileCheckInput=null;this.currentMode=WidgetStore.get('EditingModeSwitcher').currentMode;dfx.addClass(document.body,'FileAssetEditContentsWidgetType-body');}
MovieAssetEditContentsWidgetType.prototype={init:function()
{if(this.currentMode==='EditEditingMode'){this._initEditMode();}else{this._initPreviewMode();}},_initEditMode:function()
{if(this.readOnly===false){if(Widget.IS_REMOTE_ASSET===true||Widget.IS_SHADOW_ASSET===true){this.readOnly=true;}
this._addThumbClickEvent();this._setupForm();}
this.ready();},setScreenLock:function()
{var self=this;var upload=dfx.getId(this.id+'-uploadBox');dfx.hideElement(upload);WidgetStore.get(this.id+'-name').disable();this.displayAssetEditReadOnlyWarning(function(el){dfx.insertBefore(dfx.getClass('FileAssetEditContentsWidgetType-Wrapper')[0],el);},function(){self._forceEdit();});},_forceEdit:function()
{var upload=dfx.getId(this.id+'-uploadBox');dfx.showElement(upload);WidgetStore.get(this.id+'-name').enable();this._addThumbClickEvent();this._setupForm();},_setupForm:function()
{var self=this;var widget=WidgetStore.get(this.id+'-uploadFileInput');this.formWidget=widget;if(dfx.isset(widget)===true){var form=dfx.getId(this.id+'-uploadFileForm');this.form=form;var qs='?widget='+this.widgetType+'WidgetType&action=updateMovie&assetid='+this.assetid;form.setAttribute('action',Widget.EDIT_URL+qs);widget.setForm(form);this.thumbInput=document.createElement('input');dfx.attr(this.thumbInput,'type','hidden');dfx.attr(this.thumbInput,'name','thumb');form.appendChild(this.thumbInput);}
var fileInput=dfx.getId(self.id+'-uploadFileInput');var nameField=WidgetStore.get(self.id+'-name');if(fileInput){dfx.addEvent(fileInput,'change',function(){self._disableThumbSelection();self.setModified(true);self.fileCheckInput=1;self.form.action+='&fileCheck=1';});}
if(nameField){nameField.addOnChangeEvent(function(){self.setModified(true);});}
dfx.foreach(self.extraAttrs,function(idx){var wdgt=WidgetStore.get(self.id+'-'+self.extraAttrs[idx]);if(wdgt){(function(extraAttrWdgt){extraAttrWdgt.addOnChangeEvent(function(){self.setModified(true);});})(wdgt);}
return true;});self.setSaveButton(function(){self.save();},function(){var modeSwitcher=WidgetStore.get('EditingModeSwitcher');modeSwitcher.switchMode(dfx.getId('EditingModeSwitcher-EditEditingMode'),null,null,null,true);});if(this.readOnly===true){dfx.hideElement(dfx.getClass('FileAssetEditContentsWidgetType-uploadBox',document.body)[0]);nameField.setReadOnly(true);}},_disableThumbSelection:function()
{var parent=dfx.getId(this.id);var el=dfx.getClass(this.getClass()+'-thumbsListWrapper-disable',parent)[0];if(el){dfx.addClass(el,'active');}
var info=dfx.getClass(this.getClass()+'-thumbSelTxt',parent)[0];if(info){dfx.setHtml(info,'Unable to choose a thumbnail until new movie is uploaded');}},_addThumbClickEvent:function()
{var self=this;var c=this.getClass();var elems=dfx.getClass(c+'-thumbWrapper');dfx.foreach(elems,function(i){var elem=elems[i];dfx.addEvent(elem,'click',function(){dfx.removeClass(elems,'picked');dfx.addClass(elem,'picked');self.setModified(true);self._selectedThumb=dfx.attr(elem,'thumb');if(self.thumbInput){self.thumbInput.value=self._selectedThumb;}});});},_getFormResult:function(iframe)
{var result=dfx.getHtml(iframe);return result;},_checkFileConversion:function()
{var params={widget:this.widgetType+'WidgetType',action:'checkProgress',assetid:this.assetid};var self=this;var it=null;it=setInterval(function(){dfx.post(self.url,params,function(data){if(data==='done'){clearInterval(it);self._showSaveSuccess();var modeSwitcher=WidgetStore.get('EditingModeSwitcher');setTimeout(function(){modeSwitcher.switchMode(dfx.getId('EditingModeSwitcher-EditEditingMode'),null,null,null,true);},1000);}else if(data==='conversion failed'){clearInterval(it);self.showError(['Failed to convert movie'],function(){self.setModified(true);});}});},3000);},save:function()
{var self=this;this.displayDisabledDiv(true);this.formWidget.setEndFunction(function(iframe){var result=self._getFormResult(iframe);if(result==='success'){self._showSaveSuccess();self.removeDisabledDiv(null,true);}else if(result==='processing'){self._checkFileConversion();}else{self.showError([result],function(){self.setModified(true);});}});this.form.submit();},_initPreviewMode:function()
{var button=WidgetStore.get(this.id+'_dl');this.addDownloadButtonClickEvent(button);},addDownloadButtonClickEvent:function(button)
{if(button){var self=this;button.addClickEvent(function(){self.downloadFileVersion();});}},downloadFileVersion:function()
{window.location.href=this.url+'?widget=FileAssetEditContentsWidgetType&action=dlf&a='+escape(this.assetid);}};dfx.inherits('MovieAssetEditContents','FileAssetEditContents');function OptionListWidgetType(id,className,target,defaultValue)
{CheckBoxListWidgetType.call(this,id);this.options={};this.optionWidgets={};this.onChangeCallbacks=[];this.domElem=dfx.getId(this.id);this.selected=null;this.setDefaultValue(defaultValue||null);this.setLocalInstanceDefaultValue(null);this.setValue(null);if(this.domElem){this.addClickEvent();}}
OptionListWidgetType.prototype={create:function(callback)
{var self=this;var main=document.createElement('div');this.domElem=main;var i=0;this.includeWidget('RadioButton',function(){for(var optVal in self.options){if(self.options.hasOwnProperty(optVal)!==true){continue;}
var id=self.id+'-option-'+i;var widget=self.createWidget(id,'RadioButton');widget.setLabel(self.options[optVal]);widget.setShowLabel(true);self.optionWidgets[id]=optVal;widget.create(function(el){if(optVal===self.selected){widget.check();}
main.appendChild(el);});i++;}
self.addClickEvent();callback.call(self,main);return;});},setSelected:function(selected)
{this.selected=selected;},setOptions:function(options)
{this.options=options;},getOptionElements:function()
{return dfx.getClass('RadioButtonWidgetType',this.domElem,'input');},addClickEvent:function()
{var options=this.getOptionElements();var len=options.length;var parentId=this.id;var self=this;dfx.removeEvent(options,'click');dfx.addEvent(options,'click',function(e){var target=dfx.getMouseEventTarget(e);if(dfx.isset(target)===true){for(var i=0;i<len;i++){var widgetId=parentId+'-option-'+i;var widget=WidgetStore.get(widgetId);if(dfx.isset(widget)===true){if(target.id!==widgetId){widget.uncheck();}else{widget.check();var length=self.onChangeCallbacks.length;for(var j=0;j<length;j++){self.onChangeCallbacks[j].call(self,target.value,self.optionWidgets[widgetId]);}}}}}});},setLocalInstanceDefaultValue:function(localInstanceDefaultValue)
{this.localInstanceDefaultValue=localInstanceDefaultValue;},getLocalInstanceDefaultValue:function()
{return this.localInstanceDefaultValue;},getLocalInstanceDefaultNotSetValue:function()
{return null;},setDefaultValue:function(defaultValue)
{this.defaultValue=defaultValue;},getDefaultValue:function()
{return this.defaultValue;},getDefaultNotSetValue:function()
{return null;},getValue:function()
{var len=this.getOptsLength();for(var i=0;i<len;i++){var widgetId=this.id+'-option-'+i;var widget=WidgetStore.get(widgetId);if(dfx.isset(widget)===true){if(widget.isChecked()===true){return widget.getValue();}}}
var localInstanceDefaultValue=this.getLocalInstanceDefaultValue();if(localInstanceDefaultValue!==this.getLocalInstanceDefaultNotSetValue()){return localInstanceDefaultValue;}else{var defaultValue=this.getDefaultValue();if(defaultValue!==this.getDefaultNotSetValue()){return defaultValue;}}
return this.getValueNotSetValue();},setValue:function(value)
{if(value===this.getValueNotSetValue()){value='';var localInstanceDefaultValue=this.getLocalInstanceDefaultValue();if(localInstanceDefaultValue!==this.getLocalInstanceDefaultNotSetValue()){value=localInstanceDefaultValue;}else{var defaultValue=this.getDefaultValue();if(defaultValue!==this.getDefaultNotSetValue()){value=defaultValue;}}}
var vals=value.split(';');var option=vals.shift();var len=this.getOptsLength();for(var i=0;i<len;i++){var widgetId=this.id+'-option-'+i;var widget=WidgetStore.get(widgetId);if(dfx.isset(widget)===true){widget.uncheck();if(widget.getValue()===option){widget.check();}}}},getValueNotSetValue:function()
{return null;},addOnChangeAction:function(fn)
{this.onChangeCallbacks.push(fn);}};dfx.inherits('OptionList','CheckBoxList');function RadioButtonWidgetType(id,target,checked)
{CheckBoxWidgetType.call(this,id,target,checked);this.widgetType='RadioButton';this.type='radio';this.className='RadioButtonWidgetType';}
RadioButtonWidgetType.prototype={disable:function()
{var disableClass=this.className+'-disabled';dfx.addClass(dfx.getId(this.id+'_wrapper'),disableClass);CheckBoxWidgetType.prototype.disable.call(this);},enable:function()
{var disableClass=this.className+'-disabled';dfx.removeClass(dfx.getId(this.id+'_wrapper'),disableClass);CheckBoxWidgetType.prototype.enable.call(this);},setValue:function(newValue)
{dfx.getId(this.id).value=newValue;},getValue:function()
{return dfx.getId(this.id).value;}};dfx.inherits('RadioButton','CheckBox');function AssetTypeSelectWidgetType(id,items,selectedItem,minWidth,mainWidth)
{SelectWidgetType.call(this,id,items,selectedItem,minWidth,mainWidth);}
AssetTypeSelectWidgetType.prototype={addType:function(typeid,typeName,parentTypeid)
{var parentIndex=this.getOptionIndex(parentTypeid);var parentEl=this.getOptionElement(parentTypeid).firstChild.firstChild;var clone=parentEl.cloneNode(true);var parentPadding=parseInt(dfx.getStyle(parentEl,'padding-left'));dfx.setHtml(clone,typeName);dfx.setStyle(clone,'padding-left',(parentPadding+20)+'px');var bgpos=dfx.getStyle(parentEl,'background-position').split(' ');var x=parseInt(bgpos[0]);var y=bgpos[1];dfx.setStyle(clone,'background-position',(x+20)+'px '+y);this.addOption({content:clone,text:typeName},typeid,(parentIndex+1));}};dfx.inherits('AssetTypeSelect','Select');function UserGroupSelectWidgetType(id,items,selectedItem,minWidth,mainWidth,readOnly,includeRoot)
{SelectWidgetType.call(this,id,items,selectedItem,minWidth,mainWidth,readOnly);this.includeRoot=includeRoot;this.widgetType='UserGroupSelect';}
UserGroupSelectWidgetType.prototype={reset:function()
{var self=this;var args={widget:'UserGroupSelectWidget',type:'groupList',includeRoot:dfx.jsonEncode(this.includeRoot)};var html='<option value="0">&nbsp;</option>';dfx.getJSON(this.url,args,function(options){dfx.foreach(options,function(key){html+='<option value="'+key+'">'+options[key]+'</option>';return true;});dfx.setHtml(dfx.getId(self.id),html);});}};dfx.inherits('UserGroupSelect','Select');function PasswordFieldWidgetType(id,className,resizableX,rows,cols,showLabel)
{TextFieldWidgetType.call(this,id);}
PasswordFieldWidgetType.prototype={create:function(callback)
{var div=document.createElement('div');dfx.addClass(div,this.className+'-Container');if(this.showLabel===true){div.appendChild(this.createLabel(this.inline));}
var textbox=document.createElement('input');textbox.setAttribute('type','password');textbox.setAttribute('id',this.id);textbox.value=this.value;this.inputBox=textbox;dfx.addClass(textbox,this.className);if(this.width>0){dfx.setStyle(textbox,'width',this.width+'px');}
div.appendChild(textbox);if(this.displayBlock){dfx.setStyle(div,'float','none');}
this.input=textbox;this.domEl=this.input;if(callback){callback.call(this,div);}}};dfx.inherits('PasswordField','TextField');function JumperWidgetType(id)
{AssetPickerDialogWidgetType.call(this,id);this.widgetType='Jumper';this.treeWidget='JumperTree';this.visible=false;this.prevItem=null;var self=this;WidgetStore.registerShortcutKey('CTRL+J',this.id,'Jumper',function(){self.toggleJumper();});}
JumperWidgetType.prototype={createOkButton:function(){},createOverlay:function()
{var self=this;self.create(function(el){document.body.appendChild(el);self.orientation='CUSTOM';self.open();self.visible=true;});},toggleJumper:function()
{if(this.visible===false){this.createOverlay();}else{this.close();this.visible=false;}},createSearchListItemIcon:function(itemid,callback)
{var widgetId=this.id+'-button:'+itemid;var toggleButton=this.createWidget(widgetId,'ToggleButton');toggleButton.create(function(el){callback.call(this,el);});toggleButton.hide();toggleButton.addToggleEvent(function(selected){JumperTreeWidgetType.prototype.jumpToAsset(itemid);});},searchListItemHoverEvent:function(itemid,on)
{if(dfx.isset(this.prevItem)===true){this.prevItem.hide();}
var widgetId=this.id+'-button:'+itemid;var widget=WidgetStore.get(widgetId);this.prevItem=widget;if(dfx.isset(widget)===true){if(on===true){widget.show();}else{widget.hide();}}}};dfx.inherits('Jumper','AssetPickerDialog');function MovieVersioningWidgetType(id,assetid,version,fileName,fileSize,imgWidth,imgHeight,hasImage)
{ImageVersioningWidgetType.call(this,id,assetid,version,fileName,fileSize,imgWidth,imgHeight,hasImage);this.widgetType='MovieVersioning';}
MovieVersioningWidgetType.prototype={init:function()
{this.widgetType='MovieVersioning';this.createBox();},getWidgetType:function()
{return'MovieVersioning';}};dfx.inherits('MovieVersioning','ImageVersioning');function PageVersioningWidgetType(id,assetid,version,fileName,assetType,imgWidth,imgHeight,hasPdf)
{ImageVersioningWidgetType.call(this,id,assetid,version,fileName,assetType,imgWidth,imgHeight,hasPdf);this.widgetType='PageVersioning';}
PageVersioningWidgetType.prototype={init:function()
{this.resizeWidth=949;this.widgetType='PageVersioning';ImageVersioningWidgetType.prototype.init.call(this);},getWidgetType:function()
{return'PageVersioning';}};dfx.inherits('PageVersioning','ImageVersioning');function Viper(options,callback)
{this.scripts=['ViperSelection','ViperDOMRange','ViperElementMetrics','ViperTextMetrics','ViperIERange','ViperMozRange','XPath','ViperPlugin','ViperPluginManager','ViperUndoManager','ViperChangeTracker'];this.caretInterval=null;this.caret=null;this.CARET_LEFT=1;this.CARET_RIGHT=2;this.currRange=null;this.enabled=false;this.caretContainer=null;this.caretHeight=0;this.caretAtStart=true;this.caretInterval=null;this.inlineMode=false;this._caretColour='#000';this._browserType=null;this._document=document;this._isTextChange=false;this._fireNodesChanged=false;this._settings={changeTracking:false};this._subElementActive=false;this._mainElem=null;this.callbacks={};this.stylesURL='';this.viperURL='';if(!options){options={};}
var viperURL=options.viperURL||'./viper';var self=this;this.load(viperURL,function(){if(options){self._processOptions(options,function(){callback.call(self,self);});}});}
Viper.document=document;Viper.window=window;Viper.prototype={load:function(url,callback)
{var self=this;this.loadScripts(url,dfx.clone(this.scripts),function(){self.setViperURL(url);self.setStylesURL(url);self.init();callback.call(self);});},loadScripts:function(url,scripts,callback)
{if(scripts.length===0){callback.call(this);return;}
var script=scripts.shift();if(window[script]){this.loadScripts(url,scripts,callback);}else{var self=this;dfx.includeScript(url+'/'+script+'.js',function(){self.loadScripts(url,scripts,callback);});}},_processOptions:function(options,callback)
{var self=this;for(var op in options){var fn='set'+dfx.ucFirst(op);if(fn==='setSetting'){delete options[op];continue;}
if(dfx.isFn(this[fn])===true){this[fn](options[op],function(){delete options[op];self._processOptions(options,callback);});return;}else{this.setSetting(op,options[op]);delete options[op];self._processOptions(options,callback);return;}}
callback.call(this);},setPluginSets:function(sets,callback)
{var self=this;for(var setName in sets){var set=sets[setName];ViperPluginManager.addPluginSet(setName,set.plugins,true,function(){delete sets[setName];self.setPluginSets(sets,callback);});return;}
if(callback){callback.call(this);}},setSetting:function(setting,value)
{this._settings[setting]=value;},getSetting:function(setting)
{return this._settings[setting];},init:function()
{ViperUndoManager.init(this);ViperPluginManager.init(this);ViperChangeTracker.init(this,false);this._setupCoreTrackChangeActions();ViperChangeTracker.addChangeType('textRemoved','Deleted','remove');ViperChangeTracker.addChangeType('textAdded','Inserted','insert');ViperChangeTracker.addChangeType('merged','Merged','remove');},setMode:function(mode)
{if(mode==='inline'){this.inlineMode=true;}else{this.inlineMode=false;}},getBrowserType:function()
{if(this._browserType===null){var tests=['msie','firefox','chrome','safari'];var tln=tests.length;for(var i=0;i<tln;i++){var r=new RegExp(tests[i],'i');if(r.test(navigator.userAgent)===true){this._browserType=tests[i];return this._browserType;}}
this._browserType='other';}
return this._browserType;},isBrowser:function(browser)
{return(this.getBrowserType()===browser);},_addEvents:function(elem)
{if(!elem){elem=this.element;}
this._document=elem.ownerDocument;Viper.document=this._document;if(this._document.defaultView){Viper.window=this._document.defaultView;}else{Viper.window=window;}
this._removeEvents(elem);var self=this;dfx.addEvent(elem,'mouseup.viper',function(e){setTimeout(function(){self.mouseUp(e);},200);});dfx.addEvent(this._document,'mousedown.viper',function(e){return self.mouseDown(e);});dfx.addEvent(elem,'keypress.viper',function(e){return self.keyPress(e);});dfx.addEvent(elem,'keydown.viper',function(e){return self.keyDown(e);});dfx.addEvent(elem,'keyup.viper',function(e){self.fireCallbacks('Viper:keyup');self.fireCaretUpdated();if(self._fireNodesChanged){if(self.isBrowser('firefox')===true){var range=self.getCurrentRange();if(range.startContainer&&range.startContainer.parentNode){if(range.startContainer.nodeType===dfx.TEXT_NODE&&range.startContainer.data.length<2){self.cleanDOM(range.startContainer.parentNode,'br');}}
if(range.endContainer&&range.startContainer!==range.endContainer&&range.endContainer.parentNode){self.cleanDOM(range.endContainer.parentNode,'br');}}
self._fireNodesChanged=false;self.fireNodesChanged('Viper:insertNode',null,self._isTextChange);}});this._document.ondragstart=function(e){elem.setAttribute('contentEditable',false);}
this._document.ondragend=function(e){elem.setAttribute('contentEditable',true);}},_removeEvents:function(elem)
{if(!elem){elem=this.element;}
dfx.removeEvent(this._document,'.viper');dfx.removeEvent(elem,'.viper');},setEnabled:function(enabled)
{if(enabled===true&&this.enabled===false){this._addEvents();var range=this.getCurrentRange();try{this.element.focus();this.setRange(range._getFirstSelectableChild(this.element),0);}catch(e){}
this.enabled=true;this.fireCallbacks('viperEnabled');this.element.setAttribute('contentEditable',true);dfx.setStyle(this.element,'outline','none');}else if(enabled===false&&this.enabled===true){ViperChangeTracker.activateFinalMode();this.cleanDOM(this.element);if(dfx.trim(dfx.getNodeTextContent(this.element))===''){this.initEditableElement();}
this.element.setAttribute('contentEditable',false);dfx.setStyle(this.element,'outline','invert');this._removeEvents();this.enabled=false;this.fireCallbacks('viperDisabled');ViperChangeTracker.disableChangeTracking();ViperChangeTracker.cleanUp();}},isEnabled:function()
{return this.enabled;},setEditableElement:function(elem)
{if(this.element){this.element.setAttribute('contentEditable',false);dfx.setStyle(this.element,'outline','invert');}
ViperChangeTracker.cleanUp();this.setSubElementState(null,false);ViperChangeTracker.init(this,false);this.setEnabled(false);this.element=elem;this.initEditableElement();this.setEnabled(true);ViperUndoManager.setActiveElement(elem);this.inlineMode=false;elem.setAttribute('contentEditable',true);dfx.setStyle(elem,'outline','none');if(this.getSetting('changeTracking')===true){ViperChangeTracker.enableChangeTracking();}
this.focus();},initEditableElement:function()
{var elem=this.element;if(!elem){return;}
var tmp=Viper.document.createElement('div');dfx.setHtml(tmp,this.getContents());if(dfx.trim(dfx.getNodeTextContent(tmp)).length===0||dfx.getHtml(tmp)==='&nbsp;'){var tags=dfx.getTag('*',tmp);var hasStubElems=false;dfx.foreach(tags,function(i){if(dfx.isStubElement(tags[i])===true){hasStubElems=true;return false;}});if(hasStubElems!==true){var range=this.getCurrentRange();if(this.inlineMode!==true&&dfx.getStyle(this.element,'display')==='block'){dfx.setHtml(this.element,'<p>&nbsp;</p>');range.setStart(this.element.firstChild.firstChild);}else{dfx.setHtml(this.element,'&nbsp;');range.setStart(this.element.firstChild);}}}},setSubElementState:function(elem,active)
{if(active===true){if(this._subElementActive===true&&this.element!==elem){this.setSubElementState(this.element,false);}
if(this._subElementActive!==true){this._mainElem=this.element;this.element=elem;this._subElementActive=true;this.element.setAttribute('contentEditable',true);dfx.setStyle(this.element,'outline','none');this._addEvents();this.fireCallbacks('subElementEnabled',elem);}}else if(this.element){this.element.setAttribute('contentEditable',false);dfx.setStyle(this.element,'outline','invert');this._removeEvents();var pelem=this.element;this.element=this._mainElem;this._subElementActive=false;this._mainElem=null;this.fireCallbacks('subElementDisabled',pelem);}},getViperElement:function()
{if(this._subElementActive===true){return this._mainElem;}
return this.element;},getViperSubElement:function()
{if(this._subElementActive===true){return this.element;}
return null;},getViperActiveElement:function()
{return this.element;},getCurrentRange:function()
{return ViperSelection.getRangeAt(0);},getCaretCoords:function()
{var coords={};try{var bookmark=this.createBookmark();dfx.setStyle(bookmark.end,'display','inline');coords=dfx.getElementCoords(bookmark.end);dfx.remove(bookmark.start);dfx.remove(bookmark.end);}catch(e){coords={x:-1,y:-1};}
return coords;},rangeInViperBounds:function()
{var range=this.getCurrentRange();if(range===null||this.isOutOfBounds(range.startContainer)||this.isOutOfBounds(range.endContainer)){return false;}
return true;},isOutOfBounds:function(element)
{if(element===this.element||dfx.isChildOf(element,this.element)===true){return false;}else if(this._subElementActive===true&&(element===this._mainElem||dfx.isChildOf(element,this._mainElem)===true)){return false;}
return true;},insertNodeAtCaret:function(node)
{var range=this.getCurrentRange();if(range.collapsed!==true){this.deleteContents();this.initEditableElement();range=this.getCurrentRange();if(range.startContainer===range.endContainer&&this.element===range.startContainer){dfx.empty(this.element);this.initEditableElement();var firstSelectable=range._getFirstSelectableChild(this.element);range.setStart(firstSelectable,0);range.collapse(true);}}else if(dfx.isStubElement(range.startContainer.parentNode)===true){var newNode=Viper.document.createTextNode('');dfx.insertBefore(range.startContainer.parentNode,newNode);dfx.remove(range.startContainer.parentNode);range.setStart(newNode,0);range.collapse(true);ViperSelection.addRange(range);}
if(typeof node==='string'){if(node==='\r'){return;}
var newNode=Viper.document.createTextNode(node);var noBlock=true;var newRange=this.ctmInsertNodeAtCaret(range,newNode);if(newRange!==false){noBlock=false;}else{newRange=range;if(newRange.collapsed===true&&newRange.startContainer.parentNode&&newRange.startContainer.parentNode.firstChild.nodeType===dfx.TEXT_NODE&&newRange.startContainer.parentNode.firstChild===newRange.startContainer.parentNode.lastChild&&dfx.trim(newRange.startContainer.parentNode.firstChild.data)===''){newRange.setStart(newRange.startContainer.parentNode.firstChild,0);newRange.collapse(true);newRange.startContainer.parentNode.firstChild.data='';}else if(newRange.collapsed===true&&dfx.isStubElement(newRange.startContainer)===true){var tmpTextNode=Viper.document.createTextNode('');dfx.insertBefore(newRange.startContainer,tmpTextNode);dfx.remove(newRange.startContainer);newRange.setStart(tmpTextNode,0);newRange.collapse(true);}}
if(ViperPluginManager.fireNodeInserted(newNode,newRange)===false){noBlock=false;}
if(noBlock===false){return false;}
this.fireNodesChanged('Viper:insertNode',true,true);this._fireNodesChanged=true;this._isTextChange=true;return;}else{if(node.nodeType===dfx.DOCUMENT_FRAGMENT_NODE){if(this.isBrowser('msie')===true){range.rangeObj.pasteHTML('<span id="__viperMarker"></span>');var marker=dfx.getId('__viperMarker');dfx.insertAfter(marker,node);dfx.remove(marker);range.collapse(false);return;}else{var newNode=null;var clen=node.childNodes.length;for(var i=0;i<clen;i++){var child=node.childNodes[i];if(child.nodeType===dfx.TEXT_NODE){if(dfx.trim(child.data)===''){continue;}}
newNode=Viper.document.importNode(child,true);range.insertNode(newNode);range.selectNode(newNode);range.collapse(false);}
node=newNode;range.moveEnd('character',-1);range.moveEnd('character',1);range.collapse(false);return;}}else if(dfx.isStubElement(range.startContainer)===true){dfx.insertBefore(range.startContainer,node);}else{range.insertNode(node);}
range.setEndAfter(node,(this._getNodeOffset(node)+1));range.collapse(false);}},ctmInsertNodeAtCaret:function(range,node)
{if(ViperChangeTracker.isTracking()===true){if(range.collapsed===false){return range;}
var offset=range.startOffset;var ctNode=null;var startNode=range.getStartNode();if(ViperChangeTracker.getCTNode(startNode,'textRemoved')!==null){return false;}
ctNode=ViperChangeTracker.getCTNode(startNode,'textAdd');if(ctNode===null){if(offset===0){while(startNode){startNode=startNode.previousSibling;if(startNode&&(startNode.nodeType!==dfx.TEXT_NODE||startNode.data.length!==0)){break;}}
ctNode=ViperChangeTracker.getCTNode(startNode,'textAdd');if(ctNode!==null){var newNode=Viper.document.createTextNode('');ctNode.appendChild(newNode);range.setStart(newNode,0);range.collapse(true);}}else if(offset===startNode.data.length){while(startNode){startNode=startNode.nextSibling;if(startNode&&(startNode.nodeType!==dfx.TEXT_NODE||startNode.data.length!==0)){break;}}
ctNode=ViperChangeTracker.getCTNode(startNode,'textAdd');if(ctNode!==null){var newNode=Viper.document.createTextNode('');dfx.insertBefore(ctNode.firstChild,newNode);range.setStart(newNode,0);range.collapse(true);}}}
if(ctNode===null){ctNode=ViperChangeTracker.createCTNode('ins','textAdd',node);ViperChangeTracker.addChange('textAdded',[ctNode]);range.insertNode(ctNode);range.setEnd(node,1);range.collapse(false);ViperSelection.addRange(range);}else{return false;}}else{return false;}
return range;},insertTextAtCaret:function(text)
{if(typeof text!=='string'){throw('InvalidArgumentException: text must be a string');}
return this.insertNodeAtCaret(text);},getInverseColor:function(color)
{color=color.toLowerCase();var forward='0123456789abcdef#';var backward='fedcba9876543210#';var color=color.replace(/./gi,function(chr){return backward.charAt(forward.indexOf(chr));});return color;},_getNodeOffset:function(node)
{var nodes=node.parentNode.childNodes;var ln=nodes.length;for(var i=0;i<ln;i++){if(nodes[i]===node){return i;}}},_getInsertedInfo:function(node)
{return{type:2,node:node,path:XPath.getPath(node)};},_parentWillBeDeleted:function(node)
{if(node.parentNode){var parentContent=dfx.trim(dfx.getNodeTextContent(node.parentNode));if(parentContent===''||parentContent==='&nbsp;'){return true;}else{return false;}}
return false;},_getRangeInfo:function(range)
{var commEl=range.getCommonElement();var info={startOffset:range.startOffset,endOffset:range.endOffset,before:dfx.getHtml(commEl),path:XPath.getPath(commEl),after:'',startContainer:XPath.getPath(range.startContainer),endContainer:XPath.getPath(range.endContainer),collapsed:range.collapsed};return info;},getBlockParent:function(node)
{if(node){while(node.parentNode){node=node.parentNode;if(node===this.element){return null;}
if(dfx.isBlockElement(node)===true){return node;}}}
return null;},getTextContentFromElements:function(elements)
{var text=[];dfx.foreach(elements,function(i){if(elements[i].nodeType===dfx.TEXT_NODE){text.push(elements[i].data);}else{text.push(dfx.getNodeTextContent(elements[i]));}});return text;},deleteContents:function(right)
{var range=this.getCurrentRange();if(range.collapsed===false){this._deleteFromSelection(range);}else{var container=range.startContainer;if(container.nodeType===dfx.ELEMENT_NODE){this._deleteNode(range);}else if(container.nodeType===dfx.TEXT_NODE){if(right===true){this._deleteFromRight(range);}else{this._deleteFromLeft(range);}}}
ViperSelection.addRange(range);this.fireNodesChanged(null,true);},_deleteNode:function(range)
{var container=range.startContainer;if(dfx.isStubElement(container)===true){this.removeElem(container);return;}else if(container===this.element&&range.startOffset===0){if(this.inlineMode!==true&&dfx.getStyle(this.element,'display')==='block'){dfx.setHtml(this.element,'<p>&nbsp;</p>');}else{dfx.setHtml(this.element,'&nbsp;');}
range.setStart(this.element.firstChild.firstChild,0);range.collapse(true);return;}},_deleteFromSelection:function(range)
{var bookmark=this.createBookmark();var elements=dfx.getElementsBetween(bookmark.start,bookmark.end);if(ViperChangeTracker.isTracking()===true){var removedText=(this.getTextContentFromElements(elements)).join('');var changeid=ViperChangeTracker.addChange('textRemoved');var eln=elements.length;for(var i=0;i<eln;i++){var elem=elements[i];if(ViperChangeTracker.getCTNode(elem,'textRemoved')===null){if(dfx.isBlockElement(elem)===true){var del=Viper.document.createElement('del');dfx.insertBefore(elem,del);del.appendChild(elem);ViperChangeTracker.addNodeToChange(changeid,del);}else{this._wrapElement(elem,'del',function(newElem){ViperChangeTracker.addNodeToChange(changeid,newElem);});}}}
var startEl=bookmark.start.previousSibling;if(!startEl){startEl=Viper.document.createTextNode('');dfx.insertBefore(bookmark.start,startEl);this.selectBookmark(bookmark);range=this.getCurrentRange();range.setStart(startEl,0);}else{this.selectBookmark(bookmark);range=this.getCurrentRange();range.moveStart(ViperDOMRange.CHARACTER_UNIT,-1);range.moveStart(ViperDOMRange.CHARACTER_UNIT,1);}
range.collapse(true);return;}
this.removeElem(elements);var parent=bookmark.start.parentNode;var endParent=bookmark.end.parentNode;this.selectBookmark(bookmark);if(parent&&dfx.getHtml(parent)===''){dfx.setHtml(parent,'&nbsp;');range.setStart(parent.firstChild,0);}
if(endParent&&parent!==endParent&&dfx.getHtml(endParent)===''){dfx.remove(endParent);}
range.collapse(true);},_deleteFromRight:function(range)
{var container=range.startContainer;if(range.endOffset===container.data.length){var cRange=range.cloneRange();cRange.moveEnd(ViperDOMRange.CHARACTER_UNIT,1);var eParent=this.getBlockParent(cRange.endContainer);if(eParent){if(dfx.isChildOf(eParent,this.element)===false){return;}
var sParent=this.getBlockParent(cRange.startContainer);if(eParent!==sParent){this.mergeContainers(eParent,sParent);range.setStart(cRange.startContainer,cRange.startContainer.data.length);range.collapse(true);return;}}
var nextContainer=range.getNextContainer(container);if(dfx.isChildOf(nextContainer,this.element)===false){return false;}
var firstSelectable=range._getFirstSelectableChild(nextContainer);range.setStart(firstSelectable,0);if(ViperChangeTracker.isTracking()===true){this._addTextNodeTracking(firstSelectable,range);}else{range.collapse(true);range.moveEnd(ViperDOMRange.CHARACTER_UNIT,1);range.deleteContents();range.collapse(true);if(this._parentWillBeDeleted(container)===true){dfx.remove(container.parentNode);}}}else{var textNode=range.getStartNode();var isTracking=ViperChangeTracker.isTracking();var textAddNode=null;if(isTracking===true){textAddNode=ViperChangeTracker.getCTNode(textNode,'textAdd');}
if(isTracking===true&&textAddNode===null){this._addTextNodeTracking(textNode,range,true);}else{range.moveEnd(ViperDOMRange.CHARACTER_UNIT,1);range.deleteContents();if(textAddNode!==null&&dfx.isBlank(dfx.getNodeTextContent(textAddNode))===true){var prevSibling=textAddNode.previousSibling;if(!prevSibling||prevSibling.nodeType!==dfx.TEXT_NODE){prevSibling=Viper.document.createTextNode('');dfx.insertBefore(textAddNode,prevSibling);}
range.setStart(prevSibling,prevSibling.data.length);dfx.remove(textAddNode);}}}},_deleteFromLeft:function(range)
{var container=range.startContainer;if(range.startOffset===0){var cRange=range.cloneRange();cRange.moveStart(ViperDOMRange.CHARACTER_UNIT,-1);var sParent=this.getBlockParent(cRange.startContainer);if(sParent){if(dfx.isChildOf(sParent,this.element)===false){var firstChild=dfx.getFirstChild(this.element);if(!firstChild){return false;}else{cRange.setStart(firstChild,0);sParent=this.getBlockParent(cRange.startContainer);}}
var eParent=this.getBlockParent(cRange.endContainer);if(eParent!==sParent){this.mergeContainers(eParent,sParent);range.setStart(cRange.startContainer,cRange.startContainer.data.length);range.collapse(true);return;}}
var previousContainer=range.getPreviousContainer(container);if(dfx.isChildOf(previousContainer,this.element)===false){return false;}
if(dfx.isStubElement(previousContainer)===true){if(ViperChangeTracker.isTracking()===true){range.moveStart(ViperDOMRange.CHARACTER_UNIT,-1);dfx.addClass(previousContainer,ViperChangeTracker.getCTNodeClass('textRemoved'));dfx.attr(previousContainer,'title','Content removed');}else{dfx.remove(previousContainer);}
range.collapse(true);}else{var lastSelectable=range._getLastSelectableChild(previousContainer);range.setStart(lastSelectable,lastSelectable.data.length);if(ViperChangeTracker.isTracking()===true){this._addTextNodeTracking(lastSelectable,range);}else{range.collapse(true);range.moveStart(ViperDOMRange.CHARACTER_UNIT,-1);range.deleteContents();if(this._parentWillBeDeleted(container)===true){dfx.remove(container.parentNode);}}}}else{var textNode=range.getStartNode();var isTracking=ViperChangeTracker.isTracking();var textAddNode=null;if(isTracking===true){textAddNode=ViperChangeTracker.getCTNode(textNode,'textAdd');}
if(isTracking===true&&textAddNode===null){this._addTextNodeTracking(textNode,range);}else{range.moveStart(ViperDOMRange.CHARACTER_UNIT,-1);range.deleteContents();if(textAddNode!==null&&dfx.isBlank(dfx.getNodeTextContent(textAddNode))===true){var prevSibling=textAddNode.previousSibling;if(!prevSibling||prevSibling.nodeType!==dfx.TEXT_NODE){prevSibling=Viper.document.createTextNode('');dfx.insertBefore(textAddNode,prevSibling);}
range.setStart(prevSibling,prevSibling.data.length);dfx.remove(textAddNode);}}}},_addTextNodeTracking:function(textNode,range,del)
{if((del!==true&&range.startOffset===0)||ViperChangeTracker.getCTNode(textNode,'textRemoved')!==null){return;}
var beforeText='';var removedChar='';var afterText='';if(del!==true){beforeText=textNode.nodeValue.substring(0,(range.startOffset-1));removedChar=textNode.nodeValue.substr((range.startOffset-1),1);afterText=textNode.nodeValue.substring(range.startOffset);}else{beforeText=textNode.nodeValue.substring(0,range.endOffset);removedChar=textNode.nodeValue.substr(range.endOffset,1);afterText=textNode.nodeValue.substring((range.endOffset+1));}
if((range.startOffset===1&&del!==true)||(del===true&&range.startOffset===0)){var ctNode=ViperChangeTracker.getCTNode(textNode.previousSibling,'textRemoved');if(ctNode){if(del!==true){if(ctNode.lastChild&&ctNode.lastChild.nodeType===dfx.TEXT_NODE){ctNode.lastChild.nodeValue+=removedChar;range.setStart(ctNode.lastChild,(ctNode.lastChild.nodeValue.length-1));}else{var charNode=Viper.document.createTextNode(removedChar);ctNode.appendChild(charNode);range.setStart(charNode,0);}
textNode.nodeValue=beforeText+afterText;textNode.nodeValue=beforeText+afterText;if(textNode.nodeValue.length===0){var found=false;var previousSibling=textNode.previousSibling;while(found!==true){ctNode=ViperChangeTracker.getCTNode(previousSibling,'textRemoved');if(!ctNode){found=true;}else{previousSibling=previousSibling.previousSibling;}}
if(previousSibling){previousSibling=range._getLastSelectableChild(previousSibling);range.setStart(previousSibling,previousSibling.nodeValue.length);range.collapse(true);}}else{range.collapse(true);}}else{if(ctNode.lastChild&&ctNode.lastChild.nodeType===dfx.TEXT_NODE){ctNode.lastChild.nodeValue+=removedChar;}else{var charNode=Viper.document.createTextNode(removedChar);ctNode.appendChild(charNode);}
textNode.nodeValue=beforeText+afterText;if(textNode.nodeValue.length===0){var found=false;var nextSibling=textNode.nextSibling;while(found!==true){ctNode=ViperChangeTracker.getCTNode(nextSibling,'textRemoved');if(!ctNode){found=true;}else{nextSibling=nextSibling.nextSibling;}}
if(nextSibling){range.setStart(nextSibling,0);range.collapse(true);}}else{range.setStart(textNode,0);range.collapse(true);}}
return;}}
if(range.startOffset===textNode.nodeValue.length){var ctNode=ViperChangeTracker.getCTNode(textNode.nextSibling,'textRemoved');if(ctNode){if(ctNode.firstChild&&ctNode.firstChild.nodeType===dfx.TEXT_NODE){ctNode.firstChild.nodeValue=removedChar+ctNode.firstChild.nodeValue;}else{var charNode=Viper.document.createTextNode(removedChar);dfx.insertBefore(ctNode.firstChild,charNode);}
textNode.nodeValue=beforeText;range.setStart(textNode,textNode.nodeValue.length);range.collapse(true);return;}}
var ctNode=ViperChangeTracker.createCTNode('del','textRemoved');var newNode=null;if(del!==true){newNode=textNode.splitText(range.startOffset-1);newNode.nodeValue=newNode.nodeValue.substring(1);ViperChangeTracker.addChange('textRemoved',[ctNode]);dfx.insertAfter(textNode,newNode);ctNode.firstChild.nodeValue=removedChar;dfx.insertAfter(textNode,ctNode);range.setStart(textNode,textNode.nodeValue.length);range.collapse(true);}else{newNode=textNode.splitText(range.endOffset);newNode.nodeValue=newNode.nodeValue.substring(1);ViperChangeTracker.addChange('textRemoved',[ctNode]);dfx.insertAfter(textNode,newNode);ctNode.firstChild.nodeValue=removedChar;dfx.insertAfter(textNode,ctNode);range.setStart(newNode,0);range.collapse(true);}},getNextSiblingElementNode:function(node)
{while(node.nextSibling){if(node.nextSibling.nodeType===dfx.ELEMENT_NODE){return node.nextSibling;}
node=node.nextSibling;}
return false;},mergeContainers:function(node,mergeToNode)
{if(!node||!mergeToNode){return false;}
if(ViperChangeTracker.isTracking()===true){var del=Viper.document.createElement('del');mergeToNode.appendChild(del);ViperChangeTracker.addChange('merged',[del]);}
if(node.nodeType===dfx.TEXT_NODE||dfx.isStubElement(node)===true){mergeToNode.appendChild(node);}else if(node.nodeType===dfx.ELEMENT_NODE){while(node.firstChild){mergeToNode.appendChild(node.firstChild);}
dfx.remove(node);}
return true;},surroundContents:function(tag)
{var range=this.getCurrentRange();var otag=tag;if(ViperChangeTracker.isTracking()===true&&ViperChangeTracker.getCurrentMode()==='original'){tag='span';}
if(range.collapsed!==true){var startContainer=range.getStartNode();var endContainer=range.getEndNode();if(startContainer===endContainer){if(startContainer.nodeType===dfx.TEXT_NODE){var node=Viper.document.createElement(tag);var rangeContent=range.toString();dfx.setNodeTextContent(node,rangeContent);if(ViperChangeTracker.isTracking()===true){if(ViperChangeTracker.getCurrentMode()==='original'){ViperChangeTracker.setCTData(node,'tagName',otag);}
ViperChangeTracker.addChange('formatChange',[node]);}
range.deleteContents();range.insertNode(node);range.setStart(node.firstChild,0);range.setEnd(node.firstChild,node.firstChild.length);ViperSelection.addRange(range);}else{var self=this;var changeid=null;if(ViperChangeTracker.isTracking()===true){changeid=ViperChangeTracker.addChange('formatChange',[newElem]);}
this._wrapElement(startContainer.childNodes[range.startOffset],tag,function(newElem){if(changeid!==null){if(ViperChangeTracker.getCurrentMode()==='original'){ViperChangeTracker.setCTData(newElem,'tagName',otag);}
ViperChangeTracker.addNodeToChange(changeid,newElem);}});}}else{var bookmark=this.createBookmark();var startContainer=null;var endContainer=null;startContainer=bookmark.start.previousSibling;endContainer=bookmark.end.nextSibling;if(!endContainer){endContainer=Viper.document.createTextNode('');dfx.insertAfter(bookmark.end,endContainer);}
if(!startContainer){startContainer=Viper.document.createTextNode('');dfx.insertBefore(bookmark.start,startContainer);}
var elements=dfx.getElementsBetween(startContainer,endContainer);var c=elements.length;var self=this;var changeid=null;if(ViperChangeTracker.isTracking()===true){changeid=ViperChangeTracker.addChange('formatChange');}
for(var i=0;i<c;i++){this._wrapElement(elements[i],tag,function(newElem){if(changeid!==null){if(ViperChangeTracker.getCurrentMode()==='original'){ViperChangeTracker.setCTData(newElem,'tagName',otag);}
ViperChangeTracker.addNodeToChange(changeid,newElem);}});}
this.selectBookmark(bookmark);}}},_wrapElement:function(parent,tag,callback)
{if(!parent){return;}else if(dfx.attr(parent,'viperbookmark')){return;}
if(parent.nodeType===dfx.TEXT_NODE){if(dfx.isBlank(parent.data)!==true){if(parent.previousSibling&&parent.previousSibling.nodeType===dfx.TEXT_NODE){if(parent.previousSibling.nodeValue===''){dfx.remove(parent.previousSibling);}}
if(parent.previousSibling&&parent.previousSibling.tagName&&parent.previousSibling.tagName.toLowerCase()===tag&&!dfx.attr(parent.previousSibling,'viperbookmark')){parent.previousSibling.appendChild(parent);}else{var elem=Viper.document.createElement(tag);dfx.setNodeTextContent(elem,parent.nodeValue);dfx.insertBefore(parent,elem);dfx.remove(parent);if(callback){callback.call(this,elem);}}}}else if(parent.nodeType===dfx.ELEMENT_NODE){if(dfx.isStubElement(parent)===false){if(dfx.isBlockElement(parent)===false&&this.hasBlockChildren(parent)===false){if(parent.tagName.toLowerCase()!==tag){if(parent.previousSibling&&parent.previousSibling.tagName&&parent.previousSibling.tagName.toLowerCase()===tag&&dfx.isBlockElement(parent)===false&&!dfx.attr(parent.previousSibling,'viperbookmark')){parent.previousSibling.appendChild(parent);}else{var elem=Viper.document.createElement(tag);dfx.insertBefore(parent,elem);elem.appendChild(parent);this.removeTagFromChildren(elem,tag);if(callback){callback.call(this,elem);}}}}else{var c=parent.childNodes.length;for(var i=0;i<c;i++){this._wrapElement(parent.childNodes[i],tag,callback);}}}}},removeTagFromChildren:function(parent,tag,incParent)
{if(parent.tagName&&parent.tagName.toLowerCase()==='span'&&dfx.hasClass(parent,'_my4_keyword')===true){return;}
var c=parent.childNodes.length;var childNodes=[];for(var i=0;i<c;i++){childNodes.push(parent.childNodes[i]);}
for(var i=0;i<c;i++){var child=childNodes[i];if(child.nodeType===dfx.ELEMENT_NODE){this.removeTagFromChildren(child,tag,true);}}
if(incParent===true){this.removeTag(parent,tag);}},removeTag:function(elem,tag)
{if(elem.parentNode&&elem.parentNode.nodeType===dfx.ELEMENT_NODE){if(elem.nodeType===dfx.ELEMENT_NODE){if(elem.tagName.toLowerCase()===tag){var span=null;if(ViperChangeTracker.isTracking()===true){span=Viper.document.createElement('span');ViperChangeTracker.setCTData(span,'tagName',tag);dfx.insertBefore(elem,span);ViperChangeTracker.addChange('removedFormat',[span]);}
while(elem.firstChild){if(span!==null){span.appendChild(elem.firstChild);}else{dfx.insertBefore(elem,elem.firstChild);}}
dfx.remove(elem);}}}},removeStylesBetweenElems:function(start,end,style)
{var elems=dfx.getElementsBetween(start,end);elems.unshift(start);var len=elems.length;for(var i=0;i<len;i++){this.removeTagFromChildren(elems[i],style,true);}},_getOuterTag:function(node,right)
{if(right!==true){if(!node.previousSibling||(node.previousSibling.nodeType===dfx.TEXT_NODE&&dfx.isBlank(node.previousSibling.data)===true)){var parent=node.parentNode;if(parent&&dfx.isBlockElement(parent)===false){return this._getOuterTag(parent,right);}}}else{if(!node.nextSibling||(node.nextSibling.nodeType===dfx.TEXT_NODE&&dfx.isBlank(node.nextSibling.data)===true)){var parent=node.parentNode;if(parent&&dfx.isBlockElement(parent)===false){return this._getOuterTag(parent,right);}}}
return node;},removeStyle:function(style)
{var range=this.getCurrentRange();var startNode=range.getStartNode();var endNode=range.getEndNode();var startParents=dfx.getParents(startNode,style,this.element);var endParents=dfx.getParents(endNode,style,this.element);this.removeStylesBetweenElems(startNode,endNode,style);if(startParents.length===0&&endParents.length===0){ViperSelection.addRange(range);return;}
var bookmark=this.createBookmark(range);var startTopParent=startParents.pop();var endTopParent=endParents.pop();if(startTopParent===endTopParent){var start=startTopParent.cloneNode(true);var selection=startTopParent.cloneNode(true);var end=startTopParent.cloneNode(true);var lastChild=dfx.getLastChild(start);var elemsBetween=dfx.getElementsBetween(this.getBookmark(start,'start'),lastChild);elemsBetween.push(this.getBookmark(start,'start'));elemsBetween.push(this.getBookmark(start,'end'));elemsBetween.push(lastChild);dfx.remove(elemsBetween);var firstChild=dfx.getFirstChild(end);var elemsBetween=dfx.getElementsBetween(firstChild,this.getBookmark(end,'end'));elemsBetween.push(this.getBookmark(end,'end'));elemsBetween.push(this.getBookmark(end,'start'));elemsBetween.push(firstChild);dfx.remove(elemsBetween);var firstChild=dfx.getFirstChild(selection);var elemsBetween=dfx.getElementsBetween(firstChild,this.getBookmark(selection,'start'));elemsBetween.push(firstChild);dfx.remove(elemsBetween);var lastChild=dfx.getLastChild(selection);var elemsBetween=dfx.getElementsBetween(this.getBookmark(selection,'end'),lastChild);elemsBetween.push(lastChild);dfx.remove(elemsBetween);var div=Viper.document.createElement('div');div.appendChild(selection);this.removeTagFromChildren(div,style,true);dfx.removeEmptyNodes(start);dfx.removeEmptyNodes(end);dfx.removeEmptyNodes(div,function(elToDel){if(dfx.isTag(elToDel,'span')===true&&dfx.hasClass(elToDel,'viperBookmark')===true){return false;}});if(start.firstChild){dfx.insertBefore(startTopParent,start);}
dfx.insertBefore(startTopParent,div.childNodes);if(end.firstChild){dfx.insertBefore(startTopParent,end);}
dfx.remove(startTopParent);var originalBookmark={start:this.getBookmark(this.element,'start'),end:this.getBookmark(this.element,'end')};this.selectBookmark(originalBookmark);return;}
if(startTopParent){var clone=startTopParent.cloneNode(true);var lastChild=dfx.getLastChild(startTopParent);var elemsBetween=dfx.getElementsBetween(bookmark.start,lastChild);elemsBetween.push(bookmark.start);elemsBetween.push(lastChild);dfx.remove(elemsBetween);var firstChild=dfx.getFirstChild(clone);elemsBetween=dfx.getElementsBetween(firstChild,this.getBookmark(clone,'start'));elemsBetween.push(firstChild);dfx.remove(elemsBetween);var div=Viper.document.createElement('div');div.appendChild(clone);this.removeTagFromChildren(div,style);dfx.insertAfter(startTopParent,div.childNodes);}
if(endTopParent){var clone=endTopParent.cloneNode(true);var firstChild=dfx.getFirstChild(endTopParent);var elemsBetween=dfx.getElementsBetween(firstChild,bookmark.end);elemsBetween.push(bookmark.end);elemsBetween.push(firstChild);dfx.remove(elemsBetween);var lastChild=dfx.getLastChild(clone);elemsBetween=dfx.getElementsBetween(this.getBookmark(clone,'end'),lastChild);elemsBetween.push(lastChild);dfx.remove(elemsBetween);var div=Viper.document.createElement('div');div.appendChild(clone);this.removeTagFromChildren(div,style);dfx.insertBefore(endTopParent,div.childNodes);}
var originalBookmark={start:this.getBookmark(this.element,'start'),end:this.getBookmark(this.element,'end')};this.selectBookmark(originalBookmark);},selectBookmark:function(bookmark)
{if(this.element){this.element.focus();}
var range=this.getCurrentRange();var startPos=null;var endPos=null;var startOffset=0;var endOffset=null;if(bookmark.start.nextSibling===bookmark.end||dfx.getElementsBetween(bookmark.start,bookmark.end).length===0){if(bookmark.end.nextSibling){startPos=dfx.getFirstChild(bookmark.end.nextSibling);}else if(bookmark.start.previousSibling){startPos=dfx.getFirstChild(bookmark.start.previousSibling);if(startPos.nodeType===dfx.TEXT_NODE){startOffset=startPos.length;}}else{bookmark.end.parentNode.appendChild(Viper.document.createTextNode(''));startPos=dfx.getFirstChild(bookmark.end.nextSibling);}}else{if(bookmark.start.nextSibling){startPos=dfx.getFirstChild(bookmark.start.nextSibling);}else{if(!bookmark.start.previousSibling){var tmp=Viper.document.createTextNode('');dfx.insertBefore(bookmark.start,tmp);}
startPos=dfx.getLastChild(bookmark.start.previousSibling);startOffset=startPos.length;}
if(bookmark.end.previousSibling){endPos=dfx.getLastChild(bookmark.end.previousSibling);}else{endPos=dfx.getFirstChild(bookmark.end.nextSibling);endOffset=0;}}
dfx.remove([bookmark.start,bookmark.end]);if(endPos===null){range.setEnd(startPos,startOffset);range.collapse(false);}else{range.setStart(startPos,startOffset);if(endOffset===null){endOffset=(endPos.length||0);}
range.setEnd(endPos,endOffset);}
try{ViperSelection.addRange(range);}catch(e){}},getBookmark:function(parent,type)
{var elem=dfx.getClass('viperBookmark_'+type,parent)[0];return elem;},removeBookmarks:function(elem)
{dfx.remove(dfx.getClass('viperBookmark',elem,'span'));},removeBookmark:function(bookmark)
{if(!bookmark.start||!bookmark.end){return false;}
var elems=dfx.getElementsBetween(bookmark.start,bookmark.end);elems.push(bookmark.start,bookmark.end);dfx.remove(elems);},createBookmark:function(range,keepOldBookmarks)
{if(keepOldBookmarks!==true){this.removeBookmarks(this.element);}
var currRange=range||this.getCurrentRange();var range=currRange.cloneRange();var startContainer=range.startContainer;var endContainer=range.endContainer;var startOffset=range.startOffset;var endOffset=range.endOffset;range.collapse(false);var endBookmark=Viper.document.createElement('span');endBookmark.style.display='none';dfx.setHtml(endBookmark,'&nbsp;');dfx.addClass(endBookmark,'viperBookmark viperBookmark_end');endBookmark.setAttribute('viperBookmark','end');range.insertNode(endBookmark);if(dfx.isChildOf(endBookmark,this.element)===false){this.element.appendChild(endBookmark);}
range.setStart(startContainer,startOffset);range.collapse(true);var startBookmark=Viper.document.createElement('span');startBookmark.style.display='none';dfx.addClass(startBookmark,'viperBookmark viperBookmark_start');dfx.setHtml(startBookmark,'&nbsp;');startBookmark.setAttribute('viperBookmark','start');try{range.insertNode(startBookmark);if(startBookmark.previousSibling===endBookmark){var tmp=startBookmark;startBookmark=endBookmark;endBookmark=tmp;}}catch(e){dfx.insertBefore(endBookmark,startBookmark);}
if(dfx.isChildOf(startBookmark,this.element)===false){if(this.element.firstChild){dfx.insertBefore(this.element.firstChild,startBookmark);}else{this.element.appendChild(startBookmark);}}
if(!endBookmark.previousSibling){var tmp=Viper.document.createTextNode('');dfx.insertBefore(endBookmark,tmp);}
if(!startBookmark.nextSibling){var tmp=Viper.document.createTextNode('');dfx.insertAfter(startBookmark,tmp);}
currRange.setStart(startBookmark.nextSibling,0);currRange.setEnd(endBookmark.previousSibling,(endBookmark.previousSibling.length||0));var bookmark={start:startBookmark,end:endBookmark};return bookmark;},insertNodeAtBookmark:function(node,bookmark,noSelect)
{if(!bookmark||!node){return;}
dfx.insertBefore(bookmark.start,node);if(noSelect!==true){this.selectBookmark(bookmark);}},splitNodeAtRange:function(tag,range,copyMidTags)
{range=range||this.getCurrentRange();var bookmark=this.createBookmark(range);return this.splitNodeAtBookmark(tag,bookmark,copyMidTags);},splitNodeAtBookmark:function(tag,bookmark,copyMidTags)
{if(!bookmark){return;}
var node=bookmark.start.parentNode;var foundNode=null;while(node&&node!==this.element){if(dfx.isTag(node,tag)===true){foundNode=node;}
node=node.parentNode;}
var prevNode=null;var nextNode=null;var midNode=null;if(foundNode===null){prevNode=bookmark.start.previousSibling;nextNode=bookmark.end.nextSibling;if(!prevNode&&!nextNode){prevNode=Viper.document.createTextNode('');dfx.insertBefore(bookmark.start,prevNode);nextNode=prevNode;}else if(!prevNode&&nextNode){prevNode=nextNode;}else if(!nextNode&&prevNode){nextNode=prevNode;}}else{var prevElem=null;var newElem=null;var midElem=null;var toRemove=[];var parents=[];var prevLvl=null;dfx.walk(foundNode,function(elem,lvl){if(elem===bookmark.start){return false;}
if(elem.nodeType===dfx.TEXT_NODE){toRemove.push(elem);parents[(lvl-1)].appendChild(elem.cloneNode(false));}else{var clone=elem.cloneNode(false);if(prevLvl===null){newElem=clone;parents.push(clone);}else if(lvl===prevLvl){parents[(lvl-1)].appendChild(clone);parents.push(clone);}else if(lvl>prevLvl){parents[prevLvl]=prevElem;}else if(lvl<prevLvl){parents.pop();parents.push(clone);parents[(lvl-1)].appendChild(clone);}
if(copyMidTags===true){if(dfx.isTag(elem,tag)===false){if(midElem===null){midElem=elem.cloneNode(false);}else{midElem.appendChild(elem.cloneNode(false));}}}
prevElem=clone;}
prevLvl=lvl;});dfx.remove(toRemove);toRemove=null;if(this.elementIsEmpty(newElem)===false){dfx.insertBefore(foundNode,newElem);}else{newElem=null;}
if(midElem!==null){dfx.insertBefore(foundNode,midElem);}
prevNode=newElem;nextNode=foundNode;midNode=midElem;}
this.selectBookmark(bookmark);return{prevNode:prevNode,nextNode:nextNode,midNode:midNode};},hasBlockChildren:function(parent)
{var c=parent.childNodes.length;for(var i=0;i<c;i++){if(parent.childNodes[i].nodeType===dfx.ELEMENT_NODE){if(dfx.isBlockElement(parent.childNodes[i])===true){return true;}}}
return false;},elementIsEmpty:function(elem)
{if(dfx.isBlank(dfx.getNodeTextContent(elem))===true){var tags=dfx.getTag('*',elem);var ln=tags.length;for(var i=0;i<ln;i++){if(dfx.isStubElement(tags[i])===true){return false;}}
return true;}
return false;},_handleAncillaryKey:function(e)
{var key=e.keyCode;var preventDefault=true;var shiftKey=e.shiftKey;switch(key){case dfx.DOM_VK_DELETE:var ret=this.deleteContents();if(ret===false){preventDefault=false;}
ViperPluginManager.fireKeyPressed(e);break;case 46:if(this.isBrowser('firefox')&&e.type==='keypress'||!this.isBrowser('firefox')&&e.type==='keydown'){this.deleteContents(true);ViperPluginManager.fireKeyPressed(e);}else{preventDefault=false;}
break;case dfx.DOM_VK_DOWN:case dfx.DOM_VK_UP:case dfx.DOM_VK_LEFT:case dfx.DOM_VK_RIGHT:ViperPluginManager.fireCaretPositioned();preventDefault=false;break;default:preventDefault=false;break;}
if(preventDefault===true){dfx.preventDefault(e);return false;}
if(key===46){this._fireNodesChanged=true;}
return true;},keyDown:function(e)
{if(this.pluginActive()===true&&ViperPluginManager.allowTextInput!==true){return;}
if(!ViperPluginManager.fireKeyDown(e)){return false;}
var preventDefaul=false;if(this._handleSpecialKey(e)===false){if(this.isBrowser('msie')!==true){this._preventKeyPress=true;}
return false;}else if((e.ctrlKey===true||e.metaKey===true)&&(this.isBrowser('msie')===true||this.isBrowser('chrome')===true)){if(!ViperPluginManager.fireKeyPressed(e)){return false;}}
switch(e.keyCode){case 27:this.fireClickedOutside();break;default:if(/Firefox/.test(navigator.userAgent)!==true){preventDefaul=!(this._handleAncillaryKey(e));}
break;}
if(preventDefaul===true){dfx.preventDefault(e);return false;}
return true;},keyPress:function(e)
{if(this._preventKeyPress===true){this._preventKeyPress=false;return;}
if(this.enabled!==true){return;}
if(this.pluginActive()===true&&ViperPluginManager.allowTextInput!==true){return;}
if(!this.rangeInViperBounds()){var range=this.getCurrentRange();if(range===null){return true;}
var commEl=range.getCommonElement();if(dfx.isChildOf(this.element,commEl)===true){var startNode=range.getStartNode();var endNode=range.getEndNode();if(dfx.isChildOf(startNode,this.element)!==true){range.setStart(range._getFirstSelectableChild(this.element),0);}
if(dfx.isChildOf(endNode,this.element)!==true){var lastSelectable=range._getLastSelectableChild(this.element);range.setEnd(lastSelectable,lastSelectable.length);}
ViperSelection.addRange(range);}else{if(e.keyCode===8){return false;}
return true;}}
if(!ViperPluginManager.fireKeyPressed(e)){return false;}
var char=null;if(e.which===null){char=String.fromCharCode(e.keyCode);}else if(e.which>0){char=String.fromCharCode(e.which);}
if(char!==null&&e.ctrlKey!==true&&e.metaKey!==true){switch(e.keyCode){case dfx.DOM_VK_DELETE:return this._handleAncillaryKey(e);break;default:if(this.insertTextAtCaret(char)===false){return false;}
break;}}
return this._handleAncillaryKey(e);},_handleSpecialKey:function(e)
{var keyCode=e.which;if(keyCode===null){keyCode=e.keyCode;}
var preventDefault=false;switch(keyCode){case 65:if(e.ctrlKey===true||e.metaKey===true){preventDefault=true;var range=this.getCurrentRange();if(this.isBrowser('msie')===true){var selStart=Viper.document.createTextNode('');var selEnd=Viper.document.createTextNode('');if(this.element.firstChild){dfx.insertBefore(this.element.firstChild,selStart);}else{this.element.appendChild(selStart);}
this.element.appendChild(selEnd);range.setStart(selStart,0);range.setEnd(selEnd,0);}else{range.setStart(range._getFirstSelectableChild(this.element),0);var lastSelectable=range._getLastSelectableChild(this.element);range.setEnd(lastSelectable,lastSelectable.length);}
ViperSelection.addRange(range);}
break;default:break;}
if(preventDefault===true){dfx.preventDefault(e);return false;}
return true;},dragStart:function(e)
{if(!e.target){return;}
this.fireCallbacks('dragStart',{e:e},function(){});},dragDrop:function(e)
{if(!e.target){return;}
this.fireCallbacks('dragDrop',{e:e},function(){});},focus:function()
{if(this.element){try{this.element.focus();this.fireCaretUpdated();}catch(e){}}},setRange:function(elem,pos)
{var range=this.getCurrentRange();range.setStart(elem,pos);range.collapse(true);return range;},mouseUp:function(e,target)
{if(ViperPluginManager.fireClicked(e)===false){return false;}
var range=this.getCurrentRange();if(!range){var target=dfx.getMouseEventTarget(e);if(dfx.isStubElement(target)===true){var range=ViperSelection.createRange();range.selectNodeContents(target);ViperSelection.addRange(range);}}else if(range.collapsed===true){var target=dfx.getMouseEventTarget(e);if(dfx.isStubElement(target)===true){range.selectNodeContents(target);}else if(range.startContainer.nodeType!==dfx.TEXT_NODE){var startCont=range.startContainer;var elem=startCont.childNodes[range.startOffset];var selNode=null;if(elem){if(elem.firstChild){selNode=range._getFirstSelectableChild(elem);if(selNode&&dfx.isBlank(selNode.data)===true){selNode.data='';}}else if(dfx.isStubElement(elem)===false){dfx.setHtml(elem,'&nbsp;');selNode=elem.firstChild;}
if(selNode){range.setStart(selNode,0);range.collapse(true);}}}else if(range.startOffset===1&&range.startContainer.data===String.fromCharCode(160)){range.setStart(range.startContainer,0);range.collapse(true);}}
ViperSelection._lastRange=null;if(this.caret){this.caret.style.visibility='hidden';}
ViperPluginManager.fireSelectionChanged(range);this.fireCallbacks('caretPositioned',{range:range});},setStylesURL:function(url)
{this.stylesURL=url;var viperCSS=this.stylesURL+'/viper.css';dfx._includeCss(viperCSS);},setViperURL:function(url,callback)
{this.viperURL=url;ViperPluginManager.pluginsURL=url+'/plugins/';if(callback){callback.call(this);}},getStylesURL:function()
{return this.stylesURL;},fireCaretUpdated:function()
{ViperPluginManager.fireCaretUpdated();},fireNodesChanged:function(type,noFocus,isTextChange)
{type=type||'text_change';if(isTextChange===true){type='text_change';}
this._isTextChange=false;this.fireCallbacks('nodesChanged');ViperUndoManager.add('viper',type);ViperChangeTracker.updatePositionMarkers(true);if(noFocus!==true){this.focus();}},isChildOfElems:function(el,parents)
{while(el&&el.parentNode){if(parents.inArray(el.parentNode)===true){return true;}
el=el.parentNode;}
return false;},isChildOfClass:function(el,className,checkSelf)
{if(checkSelf===true&&el&&dfx.hasClass(el.parentNode,className)===true){return true;}
while(el&&el.parentNode){if(dfx.hasClass(el.parentNode,className)===true){return true;}
el=el.parentNode;}
return false;},mouseDown:function(e,target)
{if(e){if(ViperPluginManager.fireMouseDown(e)===false){return false;}}
if(!target){target=dfx.getMouseEventTarget(e);}
if(target!==this.element){if(dfx.isTag(target,'html')===true){return;}
var elems=[this.element,dfx.getId('Help'),dfx.getId('HelpEditingToolbarIcon')];if(this._subElementActive===true){if(target===this._mainElem||dfx.isChildOf(target,this._mainElem)===true){this.setSubElementState(null,false);return;}}
if(this.isChildOfElems(target,elems)===false){if(this.isChildOfClass(target,'_viper-CT-marker',true)===false&&this.isChildOfClass(target,'_viper-CT-infoBoxHolder',true)===false){this.fireClickedOutside(target);}}else{this.fireCaretUpdated();}}},_setupCoreTrackChangeActions:function()
{var self=this;ViperChangeTracker.setApproveCallback('textRemoved',function(clone,node){self.removeElem(node);});ViperChangeTracker.setRejectCallback('textRemoved',function(clone,node){while(node.firstChild){if(node.firstChild.nodeType===dfx.ELEMENT_NODE&&ViperChangeTracker.isTrackingNode(node.firstChild)){dfx.remove(node.firstChild);}else{dfx.insertBefore(node,node.firstChild);}}
self.removeElem(node);});ViperChangeTracker.setApproveCallback('textAdded',function(clone,node){while(node.firstChild){dfx.insertBefore(node,node.firstChild);}
self.removeElem(node);});ViperChangeTracker.setRejectCallback('textAdded',function(clone,node){self.removeElem(node);});ViperChangeTracker.setApproveCallback('merged',function(clone,node){self.removeElem(node);});ViperChangeTracker.setDescriptionCallback('merged',function(node){return'Text';});ViperChangeTracker.setRejectCallback('merged',function(clone,node){var newParent=node.parentNode.cloneNode(false);dfx.insertAfter(node.parentNode,newParent);var elems=dfx.getElementsBetween(node,newParent);var elem=null;while(elem=elems.shift()){newParent.appendChild(elem);}
self.removeElem(node);});ViperChangeTracker.setApproveCallback('viperComment',function(clone,node){ViperChangeTracker.removeTrackChanges(node,false);});},fireClickedOutside:function(clickedElement)
{if(this.isPluginElement(clickedElement)===true){return;}
if(this.pluginActive()===true){return;}
if(this.getSetting('disableOnBlur')!==false){this.setEnabled(false);}
this.fireCallbacks('clickedOutside');},pluginActive:function()
{return(ViperPluginManager.getActivePlugin()!==null);},isPluginElement:function(element)
{return ViperPluginManager.isPluginElement(element);},registerCallback:function(type,namespace,callback)
{if(dfx.isFn(callback)===false){return;}
if(!this.callbacks[type]){this.callbacks[type]={namespaces:{},others:[]};}
if(namespace){if(!this.callbacks[type].namespaces[namespace]){this.callbacks[type].namespaces[namespace]=[];}
this.callbacks[type].namespaces[namespace]=callback;}else{this.callbacks[type].others.push(callback);}},fireCallbacks:function(type,data,doneCallback)
{if(this.callbacks[type]){var callbackList=[];for(var namespace in this.callbacks[type].namespaces){if(this.callbacks[type].namespaces.hasOwnProperty(namespace)===true){var callback=this.callbacks[type].namespaces[namespace];if(callback){callbackList.push(callback);}}}
var len=this.callbacks[type].others.length;for(var i=0;i<len;i++){callbackList.push(this.callbacks[type].others[i]);}
this._fireCallbacks(callbackList,data,doneCallback);}},_fireCallbacks:function(callbacks,data,doneCallback)
{if(callbacks.length===0){if(doneCallback){doneCallback.call(this,data);}
return;}
var callback=callbacks.shift();if(dfx.isFn(callback)===true){var self=this;var retVal=callback.call(this,data,function(retVal){if(retVal!==false){self._fireCallbacks(callbacks,data,doneCallback);}});if(retVal!==false){this._fireCallbacks(callbacks,data,doneCallback);}}},removeCallback:function(type,namespace)
{if(!type){if(namespace){for(var type in this.callbacks){if(this.callbacks.hasOwnProperty(type)===true){this.removeCallback(type,namespace);}}}}else if(this.callbacks[type]){if(namespace){if(this.callbacks[type].namespaces[namespace]){this.callbacks[type].namespaces[namespace]=[];}}else{delete this.callbacks[type];}}},getHtml:function(elem)
{elem=elem||this.element;if(typeof elem==='string'){var tmp=elem;elem=Viper.document.createElement('div');dfx.setHtml(elem,tmp);}
var clone=elem.cloneNode(true);this.removeEmptyNodes(clone);this._removeViperElements(clone);this.fireCallbacks('getHtml',{element:clone});var html=dfx.getHtml(clone);html=this._fixHtml(html);return html;},getSaveContent:function(elem)
{if(this.element===elem){ViperChangeTracker.activateFinalMode();}
var html=this.getHtml(elem);var info=ViperChangeTracker.getTrackingInfo(elem);if(info){html+='<!--viperTrackInfo='+dfx.jsonEncode(info)+'-->';}
return html;},getContents:function(elem)
{elem=elem||this.element;var clone=elem.cloneNode(true);this._removeViperElements(clone);this.fireCallbacks('getContents',{element:clone});var html=dfx.getHtml(clone);return html;},_removeViperElements:function(elem)
{var bookmarks=dfx.getClass('viperBookmark',elem);if(bookmarks){dfx.remove(bookmarks);}
var caret=dfx.getClass('viper_caret',elem);if(caret){dfx.remove(caret);}
caret=dfx.getId('caret');dfx.remove(caret);},setContents:function(contents)
{if(typeof contents==='string'){this.element.innerHTML=contents;}else if(contents){this.element.appendChild(contents);}
this.fireCallbacks('setContents',{element:this.element});this.initEditableElement();},setHtml:function(contents,callback)
{var clone=Viper.document.createElement('div');if(typeof contents==='string'){dfx.setHtml(clone,contents);}else if(contents){clone.appendChild(contents);}
this.removeEmptyNodes(clone);var self=this;this.fireCallbacks('setHtml',{element:clone},function(){var html=dfx.getHtml(clone);dfx.setHtml(self.element,html);self.initEditableElement();if(callback){callback.call(this);}});},cleanDOM:function(elem,tag)
{if(!elem){elem=this.element;}
this._cleanDOM(elem,tag);return elem;},_cleanDOM:function(elem,tag)
{if(!elem){return;}
if(elem.firstChild&&dfx.isTag(elem,'pre')!==true){this._cleanDOM(elem.firstChild,tag);}
if(elem===this.element){return;}
var nextSibling=elem.nextSibling;this._cleanNode(elem,tag);if(nextSibling){this._cleanDOM(nextSibling,tag);}},_cleanNode:function(node,tag)
{if(node===this.element){return;}
if(node.nodeType===dfx.ELEMENT_NODE){var tagName=node.tagName.toLowerCase();if(tag&&tag!=tagName){return;}
switch(tagName){case'br':if(!node.nextSibling||(node.hasAttribute&&node.hasAttribute('_moz_dirty'))){if(tag){var newNode=Viper.document.createTextNode(' ');dfx.insertBefore(node,newNode);}
dfx.remove(node);}else{var next=node.nextSibling;var brLast=true;while(next){if(next.nodeType!==dfx.TEXT_NODE||dfx.trim(next.nodeValue)!==''){brLast=false;break;}
next=next.nextSibling;}
if(brLast===true){dfx.remove(node);}}
break;case'a':if(!node.getAttribute('name')&&!node.firstChild){dfx.remove(node);}
break;case'td':break;default:if(dfx.isStubElement(node)===false&&!node.firstChild){if(tagName==='span'&&(node.getAttribute('viperchangeid')||dfx.hasClass(node,'_my4_keyword'))){return;}
dfx.remove(node);}
break;}}else if(node.nodeType===dfx.TEXT_NODE&&!tag){if(dfx.trim(node.data,"\f\n\r\t\v\u2028\u2029")===''&&dfx.isTag(node.parentNode,'td')===false){dfx.remove(node);}}},removeEmptyNodes:function(element,content)
{if(content&&!element){element=document.createElement('div');dfx.setHtml(element,content);}else if(!content){if(!element){element=this.element;}}else{return;}
this._cleanDOM(element);return element;},_fixHtml:function(html)
{return dfx.fixHtml(html);},removeElem:function(elem)
{if(dfx.isArray(elem)===true){var eln=elem.length;for(var i=0;i<eln;i++){this.removeElem(elem[i]);}}else if(elem){var parent=elem.parentNode;dfx.remove(elem);if(parent){for(var node=parent.firstChild;node;node=node.nextSibling){if(node.nodeType!==dfx.TEXT_NODE||node.nodeValue.length!==0){return;}}
dfx.remove(parent);}}}};var ViperChangeTracker={_className:'_viper-CT',_nodeClassName:'_viper-CTNode',_tracking:false,_nodeTypeVisibility:{},_viper:null,_updateTimer:null,_updateDelay:600,_infoBoxHolder:null,_markerHolder:null,_processingMarkers:false,_changes:{},_changeSeq:0,_users:{},_descCallbacks:{},_changeTypes:{},_colours:['green','blue','red','yellow','orange','purple','pink'],_userColours:{},_rejectCallbacks:{},_approveCallbacks:{},_comments:{},_batchChangeid:null,_actionTypes:{remove:'Deletes',insert:'Inserts',format:'Format',comment:'Comments'},_actionTypeDisplayStates:{insert:false,remove:true,format:true,comment:true},_currentMode:null,_orientation:'right',_tmpData:{},init:function(viper,trackChanges)
{var self=this;this._viper=viper;this._tracking=trackChanges||false;this.cleanUp();this._viper.registerCallback('nodesChanged','ViperChangeTracker',function(){if(self._viper._subElementActive===true){var commentElemId=self._viper.element.id;var changeid=commentElemId.replace('viperComment-','');self._comments[changeid]=self._viper.getHtml(self._viper.element);}});this._viper.registerCallback('viperEnabled','ViperChangeTracker',function(){self._processingMarkers=false;var childNodes=self._viper.element.childNodes;for(var node=self._viper.element.lastChild;node;node=node.previousSibling){if(node.nodeType===8&&node.data.indexOf('viperTrackInfo=')===0){var loadedData=node.data.replace('viperTrackInfo=','');try{loadedData=dfx.jsonDecode(loadedData);}catch(e){loadedData=[];}
dfx.foreach(loadedData,function(changeid){if(dfx.isset(loadedData[changeid].comment)===true){self._comments[changeid]=loadedData[changeid].comment;}});dfx.remove(node);break;}}
var changes=self.loadCTNodes(self._viper.getViperElement());var foundChanges=false;dfx.foreach(changes,function(changeid){self._changes[changeid]=changes[changeid];foundChanges=true;});ViperChangeTracker.activateFinalMode();if(foundChanges===true){self.updatePositionMarkers(false);ViperChangeTracker._enableChangeTracking();}});this._viper.registerCallback('ViperUndoManager:undo','ViperChangeTracker',function(){self.reLoad();});this._viper.registerCallback('ViperUndoManager:redo','ViperChangeTracker',function(){self.reLoad();});dfxjQuery(window).resize(function(){self.updatePositionMarkers(true);});},reLoad:function()
{this.cleanUp();var self=this;var changes=this.loadCTNodes(this._viper.getViperElement());var foundChanges=false;dfx.foreach(changes,function(changeid){self._changes[changeid]=changes[changeid];foundChanges=true;});if(foundChanges===true){var currMode=self.getCurrentMode();if(currMode==='original'){self.activateOriginalMode();}else{self.activateFinalMode();}
self.updatePositionMarkers(false);}},cleanUp:function()
{this._changes={};this._changeSeq=0;this._userColours=[];this._tmpData={};this._orientation='right';if(this._infoBoxHolder){dfx.remove(this._infoBoxHolder);this._infoBoxHolder=null;}
if(this._markerHolder){dfx.remove(this._markerHolder);this._markerHolder=null;}},hasChanges:function()
{return(dfx.isEmpty(this._changes)!==true);},isTracking:function()
{var tracking=(this._viper._subElementActive!==true&&this._tracking===true);return tracking;},isTrackingNode:function(node,ctNodeType)
{if(node&&node.nodeType===dfx.ELEMENT_NODE&&dfx.hasClass(node,this._nodeClassName)===true){if(!ctNodeType||dfx.hasClass(node,'CT-'+ctNodeType)===true||node.tagName.toLowerCase()==='ins'||node.tagName.toLowerCase()==='del'||this.isInsertType(this.getCTNTypeFromNode(node))===true){return true;}}
return false;},_enableChangeTracking:function()
{this._tracking=true;this._viper.fireCallbacks('ViperChangeTracker:tracking',true);},enableChangeTracking:function()
{this._infoBoxHolder=this._createInfoboxHolder();this._markerHolder=this._createMarkerHolder();if(this._viper.getViperElement()){this._enableChangeTracking();this.loadChanges(this._viper.getViperElement());this.updatePositionMarkers(false);}},disableChangeTracking:function()
{this._tracking=false;this._viper.fireCallbacks('ViperChangeTracker:tracking',false);},loadChanges:function(elem)
{var changes=this.loadCTNodes(this._viper.getViperElement());},setNodeTypeVisibility:function(nodeType,visible)
{this._nodeTypeVisibility[nodeType]=visible;var elems=dfx.getClass('CT-'+nodeType,this._viper.getViperElement());if(visible===false){dfx.addClass(elems,'CT-disabled');}else{dfx.removeClass(elems,'CT-disabled');}},activateFinalMode:function()
{this.setNodeTypeVisibility('textRemoved',false);this.setNodeTypeVisibility('textAdd',true);this.setNodeTypeVisibility('textAdded',true);this.setNodeTypeVisibility('insertedKeyword',true);this.setActionDisplayState('insert',false);this.setActionDisplayState('remove',true);if(this._currentMode!=='final'){this._viper.fireCallbacks('ViperChangeTracker:modeChange','final');}
this._currentMode='final';},activateOriginalMode:function()
{this.setNodeTypeVisibility('textRemoved',true);this.setNodeTypeVisibility('textAdd',false);this.setNodeTypeVisibility('textAdded',false);this.setNodeTypeVisibility('insertedKeyword',false);this.setActionDisplayState('insert',true);this.setActionDisplayState('remove',false);if(this._currentMode!=='original'){this._viper.fireCallbacks('ViperChangeTracker:modeChange','original');}
this._currentMode='original';},getCurrentMode:function()
{return this._currentMode;},isNodeTypeVisible:function(ctNodeType)
{if(dfx.isset(this._nodeTypeVisibility[ctNodeType])===true&&this._nodeTypeVisibility[ctNodeType]!==true){return false;}
return true;},isNodeVisible:function(ctNode)
{if(ctNode){for(var ctType in this._nodeTypeVisibility){if(this._nodeTypeVisibility.hasOwnProperty(ctType)===false){continue;}
if(dfx.hasClass(ctNode,'CT-'+ctType)===true){return this._nodeTypeVisibility[ctType];}}}
return true;},isInsertType:function(ctnType)
{if(this._changeTypes[ctnType]&&this._changeTypes[ctnType].actionType==='insert'){return true;}
return false;},canShowType:function(ctnType)
{var actionType=null;if(this._changeTypes[ctnType]){actionType=this._changeTypes[ctnType].actionType;}
return(this._actionTypeDisplayStates[actionType]===true);},setActionDisplayState:function(actionType,display,nodelay,forceUpdate)
{nodelay=nodelay||false;this._actionTypeDisplayStates[actionType]=display;this.updatePositionMarkers(!nodelay,forceUpdate);},getActionDisplayStates:function()
{return this._actionTypeDisplayStates;},addChangeType:function(typeName,title,actionType)
{if(!this._actionTypes[actionType]){return;}
this._changeTypes[typeName]={title:title,actionType:actionType};},getActionTypes:function()
{return this._actionTypes;},getTypeTitle:function(typeName)
{var title='';if(this._changeTypes[typeName]&&this._changeTypes[typeName].title){title=this._changeTypes[typeName].title;}
return title;},getCTNode:function(node,ctnType)
{while(node&&node!==this._viper.getViperElement()){if(dfx.hasClass(node,'_viper-CTNode')===true){if(ctnType){if(dfx.hasClass(node,'CT-'+ctnType)===true){return node;}}else{return node;}}
node=node.parentNode;}
return null;},getCTNTypeFromNode:function(node)
{var ctnType='';dfx.foreach(this._changeTypes,function(type){if(dfx.hasClass(node,'CT-'+type)===true){ctnType=type;return false;}});return ctnType;},createCTNode:function(nodeType,ctnType,childNode)
{if(ViperChangeTracker.isTracking()!==true){return childNode;}
var node=Viper.document.createElement(nodeType);dfx.addClass(node,this._nodeClassName+' CT-'+ctnType);if(!childNode){var textNode=Viper.document.createTextNode('');node.appendChild(textNode);}else{node.appendChild(childNode);}
if(this.isNodeTypeVisible(ctnType)===false){dfx.addClass(node,'CT-disabled');}
return node;},trackNodes:function(nodes,ctnType)
{var ctnClass=this.getCTNodeClass(ctnType);dfx.foreach(nodes,function(i){dfx.addClass(nodes[i],ctnClass);});},getCTNodeClass:function(ctnType)
{var className=this._nodeClassName+' CT-'+ctnType;if(this.isNodeTypeVisible(ctnType)===false){className+=' CT-disabled';}
return className;},getCTNodes:function(ctnType,parentElement)
{parentElement=parentElement||this._viper.getViperElement();var className=this._nodeClassName;if(ctnType){className='CT-'+ctnType;}
var nodes=dfx.getClass(className,parentElement);return nodes;},getPreviousVisibleContainer:function(range,node)
{while(node){var ctNode=this.getCTNode(node);if(ctNode&&this.isNodeVisible(ctNode)===false){node=range.getPreviousContainer(ctNode);}else{break;}}
return node;},getNextVisibleContainer:function(range,node)
{while(node){var ctNode=this.getCTNode(node);if(ctNode&&this.isNodeVisible(ctNode)===false){node=range.getNextContainer(ctNode);}else{break;}}
return node;},getColour:function(colourIndex)
{return this._colours[colourIndex];},getMarker:function(changeid)
{if(!changeid){return;}
var elemid=this._className+'-marker-'+changeid;var marker=dfx.getId(elemid);if(!marker){return null;}
return marker;},_createMarker:function(ctnType,posX,posY,colourIndex,show,changeid)
{var colour=this._colours[colourIndex];var rect=null;if(!this._tmpData.viperElemRect){rect=dfx.getBoundingRectangle(this._viper.getViperElement());this._tmpData.viperElemRect=rect;}else{rect=this._tmpData.viperElemRect;}
var elem=Viper.document.createElement('div');var c=this._className+'-marker';elem.id=this._className+'-marker-'+changeid;dfx.addClass(elem,c+' CT-'+ctnType+' CT-'+colour);if(this._orientation==='left'){dfx.setStyle(elem,'left',parseInt(rect.x1-26)+'px');}else{dfx.setStyle(elem,'left',parseInt(posX)+'px');}
dfx.setStyle(elem,'top',parseInt(posY)+'px');if(show!==true){dfx.addClass(elem,'CT-ins');}
var orientation='';if(this._orientation==='left'){orientation=' orientationLeft';}
var content='<div class="'+c+'-teardrop'+orientation+'"></div>';dfx.setHtml(elem,content);var width=0;if(this._orientation==='left'){width=parseInt(posX-(rect.x1-30));}else{width=parseInt((rect.x2+30)-posX);}
dfx.setStyle(elem,'width',width+'px');return elem;},getParentCTNode:function(node,type)
{while(node&&node!==this._viper.getViperElement()){node=node.parentNode;if(this.isTrackingNode(node,type)===true){return node;}}
return false;},addPositionMarkers:function(ctNodes,index,displayed,callback)
{if(!ctNodes&&!index){if(this._processingMarkers===true){return;}
this._processingMarkers=true;this.removePositionMarkers();this.removeInfoBoxPosition();this._createMarkerHolder();this.updateInfoBoxPosition();ctNodes=this.getCTNodes();index=0;displayed={};}
var self=this;var node=ctNodes[index];if(!node){if(callback){callback.call(this);}
this._processingMarkers=false;return;}
if(!node.parentNode){self.addPositionMarkers(ctNodes,(index+1),displayed,callback);return;}
var ctNodeType=this.getCTNTypeFromNode(node);var parentCTNode=this.getParentCTNode(node,ctNodeType);if(parentCTNode){self.addPositionMarkers(ctNodes,(index+1),displayed,callback);return;}
var changeid=node.getAttribute('viperChangeid');if(displayed[changeid]===true){self.addPositionMarkers(ctNodes,(index+1),displayed,callback);return;}
displayed[changeid]=true;var change=self.getChange(changeid);if(change){var idParts=changeid.split('-');if(idParts.length>4){colourIndex=parseInt(idParts[3]);}else{colourIndex=parseInt(idParts[2]);}
this.setUserColour(parseInt(idParts[0]),idParts[2]);var isInsertType=this.isInsertType(change.type);var canShowType=this.canShowType(change.type);var tmp=Viper.document.createElement('span');dfx.setHtml(tmp,'&nbsp;');if(dfx.isBlockElement(node)===true&&dfx.isStubElement(node)!==true){if(node.firstChild){dfx.insertBefore(node.firstChild,tmp);}else{node.appendChild(tmp);}}else{dfx.insertBefore(node,tmp);}
var tmpPos=dfx.getBoundingRectangle(tmp);var marker=self._createMarker(change.type,tmpPos.x1,tmpPos.y2,colourIndex,canShowType,changeid);dfx.remove(tmp);this._markerHolder.appendChild(marker);this.getChangeInfo(changeid,function(changeInfo){if(!self._infoBoxHolder){self._processingMarkers=false;return;}
var infoBox=self._createInfoBox(changeInfo,colourIndex);self._setMouseEvents(infoBox,marker,node,isInsertType,changeid);self._infoBoxHolder.appendChild(infoBox);try{self._positionInfoBox(infoBox,tmpPos,canShowType);}catch(e){}
self._viper.fireCallbacks('ViperChangeTracker:infoBoxAdded',changeid);self.addPositionMarkers(ctNodes,(index+1),displayed,callback);});}},removePositionMarkers:function()
{dfx.remove(dfx.getClass(this._className+'-marker'));},updatePositionMarkers:function(delayed,force,callback)
{if(force!==true&&this._viper._subElementActive===true){return;}
if(this._updateTimer){clearTimeout(this._updateTimer);this._updateTimer=null;}
if(delayed!==true){this.addPositionMarkers(null,null,null,callback);}else{var self=this;this._updateTimer=setTimeout(function(){try{self.addPositionMarkers(null,null,null,callback);}catch(e){};},this._updateDelay);}},_createMarkerHolder:function()
{if(this._markerHolder){dfx.remove(this._markerHolder);}
var holder=Viper.document.createElement('div');dfx.addClass(holder,this._className+'-markerHolder');Viper.document.body.appendChild(holder);this._markerHolder=holder;return holder;},_createInfoBox:function(data,colourIndex)
{if(!data){return;}
var colour=this._colours[colourIndex];var lineBox=Viper.document.createElement('div');dfx.addClass(lineBox,this._className+'-lineBox CT-'+colour);var c=this._className+'-infoBox';var infoBox=Viper.document.createElement('div');dfx.addClass(infoBox,c);var description='';if(dfx.isObj(data.desc)!==true){description=data.desc;}
var isComment='';if(data.typeid==='viperComment'){isComment=' isComment';}
var content='<div class="'+c+'-top">';if(data.typeid==='viperComment'){content+='<div class="clickToReject">Click to remove comment</div>';}else{content+='<div class="clickToAccept">Click to accept change</div>';content+='<div class="clickToReject">Click to reject change</div>';}
content+='<div class="changeBoxTitle"><strong>'+data.ownerName+'</strong> <span>'+data.time+'</span></div>';content+='<div class="'+c+'-actionBtns'+isComment+'">';if(data.typeid!=='viperComment'){content+='<div class="'+c+'-actionBtns-approve"></div>';}
content+='<div class="'+c+'-actionBtns-reject"></div>';content+='</div></div>';content+='<div class="'+c+'-bottom"><strong>'+data.typeName+':</strong> ';content+=description;content+='</div>';dfx.setHtml(infoBox,content);if(dfx.isObj(data.desc)===true){if(dfx.isArray(data.desc)!==true){data.desc=[data.desc];}
dfx.foreach(data.desc,function(i){dfx.getClass(c+'-bottom',infoBox)[0].appendChild(data.desc[i]);});}
lineBox.appendChild(infoBox);return lineBox;},removeInfoBoxPosition:function()
{dfx.empty(this._infoBoxHolder);},_positionInfoBox:function(infoBox,dim,show)
{var height=0;var offset=35;var prevBox=infoBox;while(prevBox=prevBox.previousSibling){var prevRect=dfx.getBoundingRectangle(prevBox.firstChild);if(parseInt(prevRect.y2-prevRect.y1)>0){height=parseInt(prevRect.y2-dim.y2)+offset;break;}}
if(show!==true){dfx.addClass(infoBox,'CT-ins');}
if(this._orientation==='left'){dfx.setStyle(infoBox,'left','auto');dfx.setStyle(infoBox,'right',0);}else{dfx.setStyle(infoBox,'right','auto');dfx.setStyle(infoBox,'left',0);}
dfx.setStyle(infoBox,'top',parseInt(dim.y2)+'px');if(height>0){dfx.setStyle(infoBox,'height',height+'px');}
dfx.addClass(infoBox,'visible');},_createInfoboxHolder:function()
{var id=this._className+'-infoBoxHolder';var holder=dfx.getId(id);if(holder){dfx.remove(holder);}
holder=Viper.document.createElement('div');holder.id=id;dfx.addClass(holder,this._className+'-infoBoxHolder');Viper.document.body.appendChild(holder);return holder;},updateInfoBoxPosition:function()
{if(!this._infoBoxHolder){this._infoBoxHolder=this._createInfoboxHolder();}
var rect=dfx.getBoundingRectangle(this._viper.getViperElement());var windowDim=dfx.getWindowDimensions();var leftPos=rect.x2;if(windowDim){var infoWidth=parseInt(dfx.getStyle(this._infoBoxHolder,'width'));if((windowDim.width<(rect.x2+infoWidth))&&(rect.x1>infoWidth)){leftPos=(rect.x1-infoWidth-26);dfx.addClass(this._infoBoxHolder,'orientationLeft');this._orientation='left';}else{this._orientation='right';dfx.removeClass(this._infoBoxHolder,'orientationLeft');}}else{this._orientation='right';dfx.removeClass(this._infoBoxHolder,'orientationLeft');}
dfx.setStyle(this._infoBoxHolder,'left',leftPos+'px');},getUserAsset:function(userid,callback)
{if(!userid){if(!Widget.CURRENT_USERID){return null;}
userid=Widget.CURRENT_USERID;}
if(this._users[userid]){callback.call(this,this._users[userid]);}else if(!window['AssetManager']){callback.call(this,null);}else{var self=this;AssetManager.getAsset(userid,function(asset){self._users[userid]=asset;callback.call(self,asset);});}},getUserColour:function(userid)
{var colourIndex=null;if(dfx.isset(this._userColours[userid])===true){colourIndex=this._userColours[userid];}else{colourIndex=this.getAvailableColour();this.setUserColour(userid,colourIndex);}
return colourIndex;},setUserColour:function(userid,colourIndex)
{this._userColours[userid]=colourIndex;},getAvailableColour:function()
{var self=this;var cln=this._colours.length;for(var i=0;i<cln;i++){var found=false;dfx.foreach(this._userColours,function(userid){if(parseInt(self._userColours[userid])===i){found=true;return false;}});if(found===false){return i;}}
return-1;},getChangeId:function()
{var id=Widget.CURRENT_USERID+'-'+(++this._changeSeq)+'-';id+=this.getUserColour(Widget.CURRENT_USERID)+'-'+Math.ceil(Math.random()*999);if(this._changes[id]){id=this.getChangeId();}
return id;},addChange:function(ctnType,ctNodes,desc)
{if(ViperChangeTracker.isTracking()!==true){return null;}
var changeid=this._batchChangeid;if(changeid===null){if(!this._changes){this._changes={};}
changeid=this.getChangeId();this._changes[changeid]={type:ctnType,nodes:[],time:(new Date()).getTime(),userid:Widget.CURRENT_USERID,desc:desc};}
var self=this;dfx.foreach(ctNodes,function(i){self.addNodeToChange(changeid,ctNodes[i]);});return changeid;},addNodeToChange:function(changeid,ctNode,replaceNode)
{if(this._batchChangeid!==null){changeid=this._batchChangeid;}
var change=this.getChange(changeid);if(!change){return;}
if(!ctNode.getAttribute('viperChangeid')){ctNode.setAttribute('viperChangeid',changeid);}
if(!ctNode.getAttribute('time')){ctNode.setAttribute('time',parseInt(change.time));}
if(dfx.hasClass(ctNode,ViperChangeTracker.getCTNodeClass(change.type))===false){dfx.addClass(ctNode,ViperChangeTracker.getCTNodeClass(change.type));}
var colourIndex=ViperChangeTracker.getUserColour(change.userid);var colour=ViperChangeTracker.getColour(colourIndex);if(dfx.hasClass(ctNode,'CT-'+colour)===false){dfx.addClass(ctNode,'CT-'+colour);}
if(replaceNode){var nl=change.nodes.length;for(var i=0;i<nl;i++){if(change.nodes[i]===replaceNode){dfx.removeArrayIndex(change.nodes,i);break;}}}
change.nodes.push(ctNode);},getChange:function(changeid)
{var change=null;if(this._changes[changeid]){change=this._changes[changeid];}
return change;},startBatchChange:function(ctnType)
{if(this.isTracking()!==true){return null;}
this._batchChangeid=this.addChange(ctnType);return this._batchChangeid;},endBatchChange:function(changeid)
{if(this.isTracking()===true){if(changeid!==this._batchChangeid){return;}
this._batchChangeid=null;}},getChangeInfo:function(changeid,callback)
{var change=this.getChange(changeid);if(!change){callback.call(this,null);return;}
var userid=change.userid;if(this._users[userid]){var userAsset=this._users[userid];var info={ownerName:dfx.ellipsize(userAsset.name,13),ownerid:userAsset.id,time:dfx.date('d/M/y h:ia',parseInt(change.time)),typeName:ViperChangeTracker.getTypeTitle(change.type),typeid:change.type,desc:ViperChangeTracker.getDescription(change.type,change.nodes[0],changeid)};callback.call(this,info);return;}else{var self=this;ViperChangeTracker.getUserAsset(userid,function(asset){if(asset){this._users[userid]=asset;}else{this._users[userid]={ownerName:'N/A',ownerid:'N/A'};}
self.getChangeInfo(changeid,callback);return;});}},setDescriptionCallback:function(ctnType,callback)
{this._descCallbacks[ctnType]=callback;},getDescription:function(ctnType,node,changeid)
{var desc='';if(dfx.isFn(this._descCallbacks[ctnType])===true){desc=this._descCallbacks[ctnType].call(this,node,ctnType,changeid);}else{var change=this.getChange(changeid);if(change&&change.desc){desc=change.desc;}else{var cnode=node.cloneNode(true);dfx.remove(dfx.getTag('del',cnode));var textContent='';if(node.innerText){textContent=cnode.innerText;}else if(node.textContent){textContent=cnode.textContent;}else{textContent=dfx.getHtml(cnode);}
desc=dfx.ellipsize(textContent,30);cnode=null;}}
return desc;},getDescriptionForNode:function(node)
{var changeid=node.getAttribute('viperchangeid');if(!changeid){return'';}
var ctnType=this.getCTNTypeFromNode(node);if(!ctnType){return;}
return this.getDescription(ctnType,node,changeid);},setApproveCallback:function(ctnType,callback)
{this._approveCallbacks[ctnType]=callback;},approveChanges:function(changeid,node)
{if(!changeid&&!node){return;}else if(!node){var change=this.getChange(changeid);if(!change){return;}
var nodes=change.nodes;var ln=nodes.length;for(var i=0;i<ln;i++){this.approveChanges(changeid,nodes[i]);}
this.updatePositionMarkers(false);return;}
var ctnType=this.getCTNTypeFromNode(node);if(!ctnType||!this._approveCallbacks[ctnType]){return;}
var clone=node.cloneNode(true);var tmp=Viper.document.createElement('div');tmp.appendChild(clone);if(this.isInsertType(ctnType)===true){var self=this;var ctNodes=this.getCTNodes(null,node);dfx.foreach(ctNodes,function(i){self.approveChanges(ctNodes[i].getAttribute('changeid'),ctNodes[i]);});}
this._approveCallbacks[ctnType].call(this,tmp,node);this._viper.fireNodesChanged('ViperChangeTracker:approve');},setRejectCallback:function(ctnType,callback)
{this._rejectCallbacks[ctnType]=callback;},rejectChanges:function(changeid,node)
{if(!changeid&&!node){return;}else if(!node){var change=this.getChange(changeid);if(!change){return;}
var nodes=change.nodes;var ln=nodes.length;for(var i=0;i<ln;i++){this.rejectChanges(changeid,nodes[i]);}
this.updatePositionMarkers(false,true);return;}
var ctnType=this.getCTNTypeFromNode(node);if(!ctnType||!this._rejectCallbacks[ctnType]){return;}
var clone=node.cloneNode(true);var tmp=Viper.document.createElement('div');tmp.appendChild(clone);this._rejectCallbacks[ctnType].call(this,tmp,node);this._viper.fireNodesChanged('ViperChangeTracker:reject');},showInfoBox:function(marker,infoBox)
{var elems=dfx.getClass('_viper-CT-lineBox',this._infoBoxHolder);dfx.removeClass(elems,'visible');dfx.removeClass(elems,'show');var melems=dfx.getClass('_viper-CT-marker',this._markerHolder);dfx.addClass(melems,'CT-hidden');dfx.removeClass(melems,'show');dfx.addClass(infoBox,'visible');dfx.removeClass(marker,'CT-hidden');var dim=dfx.getBoundingRectangle(marker);dfx.addClass([marker,infoBox],'show');this._positionInfoBox(infoBox,dim,true);var self=this;dfx.addEvent(document,'click.ViperChangeTracker',function(){dfx.removeEvent(document,'click.ViperChangeTracker');self.updatePositionMarkers(false);});},_positionInfoBoxes:function()
{var elems=dfx.getClass(this._className+'-lineBox',this._infoBoxHolder);var eln=elems.length;if(elems.length===0){return;}
var offset=35;var prevBox=null;for(var i=0;i<eln;i++){var box=elems[i];var height=0;var boxRect=dfx.getBoundingRectangle(box);if((boxRect.y2-boxRect.y1)<=0){continue;}else if(prevBox===null){prevBox=box;continue;}
var prevRect=dfx.getBoundingRectangle(prevBox.firstChild);if(parseInt(prevRect.y2-prevRect.y1)>0){height=parseInt(prevRect.y2-boxRect.y1)+offset;dfx.setStyle(box,'height',height+'px');}
prevBox=box;}},_setMouseEvents:function(infoBox,marker,node,isInsertType,changeid)
{var self=this;dfx.addEvent([infoBox,marker,node],'mouseover',function(){dfx.addClass([infoBox,marker],'selected');});dfx.addEvent(marker,'click',function(e){self.showInfoBox(marker,infoBox);self._positionInfoBoxes();dfx.preventDefault(e);return false;});var c=this._className+'-infoBox-actionBtns';var rejectBtn=dfx.getClass(c+'-reject',infoBox)[0];var approveBtn=dfx.getClass(c+'-approve',infoBox)[0];var parentNode=null;if(!approveBtn&&!rejectBtn){return;}
if(rejectBtn){parentNode=rejectBtn.parentNode.parentNode;}else{parentNode=approveBtn.parentNode.parentNode;}
dfx.addEvent([infoBox,marker,node],'mouseout',function(){dfx.removeClass([infoBox,marker],'selected');dfx.removeClass(parentNode,'approve');dfx.removeClass(parentNode,'reject');});if(rejectBtn){dfx.addEvent(rejectBtn,'mouseover',function(){dfx.addClass(parentNode,'reject');dfx.removeClass(parentNode,'approve');});dfx.addEvent(rejectBtn,'click',function(e){self.rejectChanges(changeid);dfx.preventDefault(e);return false;});}
if(approveBtn){dfx.addEvent(approveBtn,'mouseover',function(){dfx.addClass(parentNode,'approve');dfx.removeClass(parentNode,'reject');});dfx.addEvent(approveBtn,'click',function(e){self.approveChanges(changeid);dfx.preventDefault(e);return false;});}},removeTrackChanges:function(node,nodeOnly)
{var elems=[];if(nodeOnly!==true){elems=dfx.getClass(this._nodeClassName,node);}
elems.push(node);var r=new RegExp('_viper-|\\s*CTN?[a-zA-Z-]*','g');var self=this;dfx.foreach(elems,function(i){if(!elems[i].parentNode){return;}
var classAttr=dfx.attr(elems[i],'class');classAttr=classAttr.replace(r,'');dfx.attr(elems[i],'class',classAttr);if(dfx.attr(elems[i],'class')===''){dfx.removeAttr(elems[i],'class');}
dfx.removeAttr(elems[i],'viperchangeid');dfx.removeAttr(elems[i],'time');if(dfx.isTag(elems[i],'del')===true||dfx.isTag(elems[i],'ins')===true){dfx.insertBefore(elems[i],elems[i].childNodes);dfx.remove(elems[i]);}else if(ViperChangeTracker.getCurrentMode()==='original'){var ctdata=self.getCTData(elems[i],'tagName');if(ctdata){var newTag=Viper.document.createElement(ctdata);while(elems[i].firstChild){newTag.appendChild(elems[i].firstChild);}
dfx.insertBefore(elems[i],newTag);dfx.remove(elems[i]);}}
dfx.removeAttr(elems[i],'ctdata');});},setCTData:function(node,type,value)
{if(!node||!type){return false;}
if(this.isTracking()!==true){return false;}
var ctdata=this.getCTData(node);if(!ctdata){if(value===null){return true;}
ctdata={};ctdata[type]=value;}else if(value===null){if(dfx.isset(ctdata[type])===true){delete ctdata[type];}else{return true;}}else{ctdata[type]=value;}
ctdata=dfx.jsonEncode(ctdata);if(ctdata==='{}'){dfx.removeAttr(node,'ctdata');return true;}
dfx.attr(node,'ctdata',ctdata);return true;},getCTData:function(node,type)
{if(!node){return null;}
var ctdata=dfx.attr(node,'ctdata');if(!ctdata){return null;}
ctdata=dfx.jsonDecode(ctdata);if(!type){return ctdata;}
return ctdata[type];},removeCTData:function(node,type)
{if(node){if(!type){dfx.removeAttr(node,'ctdata');}else{this.setCTData(node,type,null);}}},getTrackingInfo:function(elem)
{var info=null;var changes=this.loadCTNodes(elem);dfx.foreach(changes,function(changeid){if(info===null){info={};}
if(dfx.isset(changes[changeid].comment)===true){info[changeid]={comment:changes[changeid].comment};}});return info;},loadCTNodes:function(elem)
{var ctNodes=this.getCTNodes(null,elem);var changes={};var self=this;dfx.foreach(ctNodes,function(i){var node=ctNodes[i];var changeid=node.getAttribute('viperchangeid');if(changes[changeid]){changes[changeid].nodes.push(node);}else{var idparts=changeid.split('-');var userid=null;if(idparts.length>4){userid=(idparts[1]*-1);}else{userid=idparts[0];}
var type=self.getCTNTypeFromNode(node);changes[changeid]={type:type,time:node.getAttribute('time'),nodes:[node],userid:userid};if(type==='viperComment'){changes[changeid].comment=(self._comments[changeid]||'');}}});return changes;}};function ViperDOMRange(rangeObj)
{this.rangeObj=rangeObj;this.startContainer=null;this.endContainer=null;this.startOffset=0;this.endOffset=0;this.collapsed=true;this.commonAncestorContainer=null;this.anchorToStart='undefined';}
ViperDOMRange.START_TO_START=0;ViperDOMRange.START_TO_END=1;ViperDOMRange.END_TO_END=3;ViperDOMRange.END_TO_START=4;ViperDOMRange.CHARACTER_UNIT='character';ViperDOMRange.WORD_UNIT='word';ViperDOMRange.LINE_UNIT='line';ViperDOMRange.prototype={setStart:function(node,offset){},setEnd:function(node,offset){},setStartBefore:function(node){},setStartAfter:function(node){},setEndBefore:function(node){},setEndAfter:function(node){},selectNode:function(node){},selectNodeContents:function(node){},surroundContents:function(node){},collapse:function(toStart){},compareBoundaryPoints:function(how,sourceRange){},deleteContents:function(){},extractContents:function(){},cloneContents:function(){},insertNode:function(node){},cloneRange:function(){},toString:function(){},detach:function(){},getCommonElement:function(){},moveStart:function(unitType,units){},moveEnd:function(unitType,units){},setAnchor:function(toStart){},setFocus:function(node,offset){},moveFocus:function(unitType,units){},getRangeCoords:function(toStart){},getBoundingClientRect:function(){},getPreviousContainer:function(container,skippedBlockElem)
{if(!container){return null;}
while(container.previousSibling){container=container.previousSibling;if(container.nodeType!==dfx.TEXT_NODE){if(dfx.isStubElement(container)===true){return container;}else{var child=this._getLastSelectableChild(container);if(child!==null){return child;}}}else if(this._isSelectable(container)===true){return container;}}
while(container&&!container.previousSibling){container=container.parentNode;}
if(!container){return null;}
container=container.previousSibling;if(this._isSelectable(container)===true){return container;}else if(skippedBlockElem&&dfx.isBlockElement(container)===true){skippedBlockElem.push(container);}
var selChild=this._getLastSelectableChild(container);if(selChild!==null){return selChild;}
return this.getPreviousContainer(container,skippedBlockElem);},_isSelectable:function(container)
{if(container&&container.nodeType===dfx.TEXT_NODE&&container.data.length!==0){return true;}
return false;},getNextContainer:function(container,skippedBlockElem)
{if(!container){return null;}
while(container.nextSibling){container=container.nextSibling;if(container.nodeType!==dfx.TEXT_NODE){var child=this._getFirstSelectableChild(container);if(child!==null){return child;}}else if(this._isSelectable(container)===true){return container;}}
while(container&&!container.nextSibling){container=container.parentNode;}
if(!container){return null;}
container=container.nextSibling;if(this._isSelectable(container)===true){return container;}else if(skippedBlockElem&&dfx.isBlockElement(container)===true){skippedBlockElem.push(container);}
var selChild=this._getFirstSelectableChild(container);if(selChild!==null){return selChild;}
return this.getNextContainer(container,skippedBlockElem);},_getFirstSelectableChild:function(element)
{if(element){if(element.nodeType!==dfx.TEXT_NODE){var child=element.firstChild;while(child){if(this._isSelectable(child)===true){return child;}else if(child.firstChild){var res=this._getFirstSelectableChild(child);if(res!==null){return res;}else{child=child.nextSibling;}}else{child=child.nextSibling;}}}else{return element;}}
return null;},_getLastSelectableChild:function(element)
{if(element){if(element.nodeType!==dfx.TEXT_NODE){var child=element.lastChild;while(child){if(this._isSelectable(child)===true){return child;}else if(child.lastChild){var res=this._getLastSelectableChild(child);if(res!==null){return res;}else{child=child.previousSibling;}}else{child=child.previousSibling;}}}else{return element;}}
return null;},_normalizeNode:function(node)
{if(node.nodeType===dfx.ELEMENT_NODE){var c=node.childNodes.length;var str='';var mChild=null;for(var i=0;i<c;i++){var child=node.childNodes[i];if(child.nodeType===dfx.TEXT_NODE){str+=child.data;if(mChild===null){mChild=child;}else{dfx.remove(child);}}else if(mChild!==null){mChild.data=str;mCHild=null;}}
if(mChild!==null){mChild.nodeValue=str;}}else if(node.nodeType===dfx.TEXT_NODE){this._normalizeNode(node.parentNode);}},getNodeIndex:function(node)
{if(!node||!node.parentNode){return;}
var index=0;var prev=node.previousSibling;while(prev){prev=prev.previousSibling;index++;}
return index;},getStartNode:function()
{if(!this.startContainer){return null;}
if(this.startContainer.nodeType===dfx.ELEMENT_NODE){return this.startContainer.childNodes[this.startOffset];}
return this.startContainer;},getEndNode:function()
{if(!this.endContainer){return null;}
if(this.endContainer.nodeType===dfx.ELEMENT_NODE){return this.endContainer.childNodes[this.endOffset];}
return this.endContainer;}};function ViperElementMetrics(){}
ViperElementMetrics.getStyles=function(element)
{if(element===document){return[];}
if(Viper.document.defaultView&&Viper.document.defaultView.getComputedStyle){return Viper.document.defaultView.getComputedStyle(element,'');}else if(element.currentStyle){return element.currentStyle;}};ViperElementMetrics.getBackgroundColor=function(element)
{var backgroundColor;while(element){var styles=ViperElementMetrics.getStyles(element);if(styles.backgroundColor!=='transparent'&&styles.backgroundColor!=='rgba(0, 0, 0, 0)'){backgroundColor=styles.backgroundColor;break;}
element=element.parentNode;}
if(backgroundColor){return backgroundColor;}
return'#FFFFFF';};ViperElementMetrics.getBorderInsets=function(element)
{var border=0;while(element){try{var styles=ViperElementMetrics.getStyles(element);}catch(e){break;}
if(styles.marginTop!==''){border+=parseInt(styles.marginTop);}
element=element.parentNode;}
return border;};ViperElementMetrics.getInsets=function(element)
{var styles=ViperElementMetrics.getStyles(element);return{'top':parseInt(styles.borderTopWidth),'left':parseInt(styles.marginLeft),'bottom':parseInt(styles.marginBottom),'right':parseInt(styles.marginRight)};};function ViperIERange(rangeObj)
{ViperDOMRange.call(this,rangeObj);this._initContainerInfo();this._setCollapsed();this.shy=Viper.document.createElement('span');this.shy.innerHTML='&nbsp;';this._prevHeight=null;this._prevContainer=null;ViperDOMRange.START_TO_START='StartToStart';ViperDOMRange.START_TO_END='StartToEnd';ViperDOMRange.END_TO_END='EndToEnd';ViperDOMRange.END_TO_START='EndToStart';}
ViperIERange.prototype={_initContainerInfo:function()
{var clone=this.rangeObj.duplicate();var eclone=this.rangeObj.duplicate();clone.collapse(true);var info=this._getContainerInfo(clone);this.startContainer=info.container;this.startOffset=info.offset;eclone.collapse(false);var einfo=this._getContainerInfo(eclone);this.endContainer=einfo.container;this.endOffset=einfo.offset;},setStart:function(node,offset)
{var moveTo=node;if(moveTo.nodeType===dfx.TEXT_NODE){moveTo=moveTo.parentNode;}
var clone=this.rangeObj.duplicate();clone.moveToElementText(moveTo);clone.collapse(true);var charOffset=this._getCharOffsetWithinParent(node,offset);clone.move(ViperDOMRange.CHARACTER_UNIT,charOffset);this.rangeObj.setEndPoint('StartToStart',clone);this.startContainer=node;this.startOffset=offset;if(this.endContainer===null&&this.endOffset===null){this.endContainer=node;this.endOffset=offset;}
this._setCommonAncestorContainer();this._setCollapsed();},setEnd:function(node,offset)
{var moveTo=node;if(moveTo.nodeType===dfx.TEXT_NODE){moveTo=moveTo.parentNode;}
var clone=this.rangeObj.duplicate();clone.moveToElementText(moveTo);clone.collapse(true);var charOffset=this._getCharOffsetWithinParent(node,offset);clone.move(ViperDOMRange.CHARACTER_UNIT,charOffset);this.rangeObj.setEndPoint('EndToEnd',clone);this.endContainer=node;this.endOffset=offset;if(this.startContainer===null&&this.startOffset===null){this.startContainer=node;this.startOffset=offset;}
this._setCommonAncestorContainer();this._setCollapsed();},setStartBefore:function(node)
{this.setStart(node,0);},setStartAfter:function(node)
{var next=this.getNextContainer(node);this.setStart(next,0);this._setCollapsed();this._setCommonAncestorContainer();},setEndBefore:function(node)
{var previous=this.getPreviousContainer(node);if(previous.nodeType===dfx.TEXT_NODE){this.setEnd(previous,previous.length);}else{var clone=this.rangeObj.duplicate();clone.moveToElementText(previous);clone.collapse(false);this.rangeObj.setEndPoint('EndToEnd',clone);this._setCollapsed();this._setCommonAncestorContainer();}},setEndAfter:function(node)
{this.setEnd(node.parentNode,this.getNodeIndex(node)+1);},selectNode:function(node)
{if(node.nodeType===dfx.TEXT_NODE){this.setStart(node,0);this.setEnd(node,node.length);}else{if(node.innerHTML&&node.innerHTML.length===0){node.innerText=' ';}
this.rangeObj.moveToElementText(node);this.endContainer=node.parentNode;this.startContainer=node.parentNode;this.startOffset=this._findElementNodeOffset(node);this.endOffset=this.startOffset+1;this._setCollapsed();this._setCommonAncestorContainer();}},_findElementNodeOffset:function(node)
{if(node.nodeType!==dfx.ELEMENT_NODE){return;}
var parent=node.parentNode;var l=parent.childNodes.length;for(var i=0;i<l;i++){if(parent.childNodes[i]===node){return i;}}
return-1;},selectNodeContents:function(node)
{if(node.nodeType===dfx.TEXT_NODE){this.setStart(node,0);this.setEnd(node,node.length);}else{this.rangeObj.moveToElementText(node);this.rangeObj.moveStart('character',1);this.rangeObj.moveStart('character',-1);this.rangeObj.moveEnd('character',-1);this.rangeObj.moveEnd('character',1);}},surroundContents:function(node)
{var contents=this.extractContents();node.appendChild(contents);this.insertNode(node);},collapse:function(toStart)
{this.rangeObj.collapse(toStart);this.collapsed=true;if(toStart){this.endContainer=this.startContainer;this.endOffset=this.startOffset;}else{this.startContainer=this.endContainer;this.startOffset=this.endOffset;}},compareBoundaryPoints:function(how,sourceRange)
{return this.rangeObj.compareEndPoints(how,sourceRange.rangeObj);},deleteContents:function()
{if(this.startContainer.nodeType===dfx.TEXT_NODE){var nodeValue=this.startContainer.nodeValue;var before=nodeValue.substr(0,this.startOffset);if(this.startContainer===this.endContainer){var after=this.startContainer.nodeValue.substr(this.endOffset,this.startContainer.nodeValue.length);this.startContainer.data=before+after;this.setStart(this.startContainer,this.startOffset);this.collapse(true);return;}else{this.startContainer.nodeValue=before;this.setStart(this.startContainer,this.startOffset);this.collapse(true);this._setCommonAncestorContainer();return;}}else if(this.startContainer.nodeType===dfx.ELEMENT_NODE){var node=this.getNextContainer(this.startContainer);dfx.remove(this.startContainer);if(this.startContainer===this.endContainer){this.setStart(node,0);this.collapse(true);return;}}
this.rangeObj.text='';this.collapse(true);this._setCommonAncestorContainer();this.rangeObj.select();},comparePoint:function(node,offset)
{var clone=this.cloneRange();clone.setStart(node,offset);clone.collapse();return this.rangeObj.compareEndPoints('StartToStart',clone.rangeObj);},extractContents:function()
{var fragment=Viper.document.createDocumentFragment();var div=Viper.document.createElement('div');dfx.setHtml(div,this.rangeObj.htmlText);var c=div.childNodes.length;for(var i=0;i<c;i++){var child=div.childNodes[i].cloneNode(true);fragment.appendChild(child);}
this.rangeObj.text='';return fragment;},createDocumentFragment:function(str)
{var fragment=Viper.document.createDocumentFragment();var div=Viper.document.createElement('div');div.innerHTML=str;var c=div.childNodes.length;for(var i=0;i<c;i++){var child=div.childNodes[i].cloneNode(true);fragment.appendChild(child);}
return fragment;},cloneContents:function()
{var fragment=this.createDocumentFragment(this.rangeObj.htmlText);return fragment;},insertNode:function(node)
{var before=null;if(this.startContainer.nodeType===dfx.ELEMENT_NODE){if(this.startContainer.childNodes.length===this.startOffset){this.startContainer.appendChild(node);}else{this.startContainer.insertBefore(node,this.startContainer.childNodes[this.startOffset]);this.setStart(this.startContainer,this.startOffset+1);}
return;}else if(this.startContainer.nodeType===dfx.TEXT_NODE){if(this.startOffset===0){before=this.startContainer;}else{var length=this.startContainer.data.length;if(length>this.startOffset){before=this.startContainer.splitText(this.startOffset);}else if(this.startContainer.nextSibling){before=this.startContainer.nextSibling;}else{this.startContainer.parentNode.appendChild(node);}}}
if(before!==null){dfx.insertBefore(before,node);}
this.setStart(node,0);this.collapse(true);this._setCommonAncestorContainer();},cloneRange:function()
{var range=new ViperIERange(this.rangeObj.duplicate());range.startContainer=this.startContainer;range.startOffset=this.startOffset;range.endContainer=this.endContainer;range.endOffset=this.endOffset;range.commonAncestorContainer=this.commonAncestorContainer;range.collapsed=this.collapsed;return range;},detach:function()
{this.rangeObj=null;this.commonAncestorContainer=null;},_setCollapsed:function()
{if(this.startContainer===this.endContainer&&this.startOffset===this.endOffset){this.collapsed=true;}else{this.collapsed=false;}},_setCommonAncestorContainer:function()
{if(this.startContainer===this.endContainer){this.commonAncestorContainer=this.startContainer;}else{this.commonAncestorContainer=dfx.getCommonAncestor(this.startContainer,this.endContainer);}},_getContainerInfo:function(textRange)
{var element=textRange.parentElement();var range=element.ownerDocument.body.createTextRange();range.moveToElementText(element);try{range.setEndPoint("EndToStart",textRange);}catch(e){}
var rangeLength=range.text.length;var nodeLength=0;if(rangeLength<(element.innerText.length/2)){var direction=1;var node=element.firstChild;}else{direction=-1;node=element.lastChild;range.moveToElementText(element);try{range.setEndPoint("StartToStart",textRange);}catch(e){}
rangeLength=range.text.length;}
while(node){switch(node.nodeType){case dfx.TEXT_NODE:nodeLength=node.data.length;if(nodeLength<rangeLength){var difference=(rangeLength-nodeLength);if(direction===1){range.moveStart("character",difference);}else{range.moveEnd("character",-difference);}
rangeLength=difference;}else{if(direction===1){return{container:node,offset:rangeLength};}else{return{container:node,offset:(nodeLength-rangeLength)};}}
break;case dfx.ELEMENT_NODE:if(dfx.isStubElement(node)===true){nodeLength=2;}else{nodeLength=node.innerText.length;}
if(direction===1){range.moveStart("character",nodeLength);}else{range.moveEnd("character",-nodeLength);}
rangeLength=(rangeLength-nodeLength);if(rangeLength<0){rangeLength=0;}
break;default:break;}
if(direction===1){node=node.nextSibling;}else{node=node.previousSibling;}}
return{container:element,offset:0};},getStartOffset:function(incSpaces)
{return this.startOffset;},_getCharOffsetWithinParent:function(node,offset)
{var move=null;var tmpNode=null;if(node.nodeType===dfx.TEXT_NODE){move=offset;tmpNode=node.previousSibling;}else if(node.nodeType===dfx.ELEMENT_NODE){move=0;if(offset>0){tmpNode=node.childNodes[(offset-1)];}else{return 0;}}
while(tmpNode){var nodeLength=0;if(tmpNode.nodeType===dfx.ELEMENT_NODE){nodeLength=tmpNode.innerText.length;if(dfx.isStubElement(tmpNode)===true){nodeLength=1;}else if(dfx.isBlockElement(tmpNode)===true){nodeLength++;}}else if(tmpNode.nodeType===dfx.TEXT_NODE){nodeLength=tmpNode.data.length;}
move+=nodeLength;tmpNode=tmpNode.previousSibling;}
return move;},moveStart:function(unitType,units,updateInfo)
{switch(unitType){case ViperDOMRange.CHARACTER_UNIT:case ViperDOMRange.WORD_UNIT:this.rangeObj.moveStart(unitType,units);var text=this.rangeObj.text;var match=text.match(/\r\n/g,'');if(match!==null&&match.length>0){var u=match.length;if(units<0){u=(u*-1);}
this.rangeObj.moveStart(ViperDOMRange.CHARACTER_UNIT,u);}
break;case ViperDOMRange.LINE_UNIT:this._moveLine(true,units);break;default:throw Error('InvalidArgumentException: unitType "'+unitType+'" not valid.');break;}
if(updateInfo!==false){this._initContainerInfo();}},moveEnd:function(unitType,units)
{switch(unitType){case ViperDOMRange.CHARACTER_UNIT:case ViperDOMRange.WORD_UNIT:this.rangeObj.moveEnd(unitType,units);var text=this.rangeObj.text;var match=text.match(/\r\n/g,'');if(match!==null&&match.length>0){this.rangeObj.moveEnd(ViperDOMRange.CHARACTER_UNIT,match.length);}
break;case ViperDOMRange.LINE_UNIT:this._moveLine(false,units);break;default:throw Error('InvalidArgumentException: unitType "'+unitType+'" not valid.');break;}
this._initContainerInfo();},_moveLine:function(moveStart,units)
{var clone=this.cloneRange();clone.collapse(moveStart);var startCoords=clone.getRangeCoords(moveStart);var coords=null;var prevXCoord=0;var passed=false;var unitType=ViperDOMRange.WORD_UNIT;units*=2;if(units<0){while(true){clone.moveStart(unitType,units);coords=clone.getRangeCoords(true);if(passed===false){if(coords.y<startCoords.y&&coords.x<=startCoords.x){passed=true;units=1;unitType=ViperDOMRange.CHARACTER_UNIT}}else if(coords.x>=startCoords.x){if(Math.abs(coords.x-startCoords.x)>Math.abs(startCoords.x-prevXCoord)){clone.moveStart(ViperDOMRange.CHARACTER_UNIT,-1);}
break;}else{prevXCoord=coords.x;}}}else{while(true){clone.moveStart(unitType,units);coords=clone.getRangeCoords(true);if(passed===false){if(coords.y>startCoords.y&&coords.x>=startCoords.x){passed=true;units=-1;unitType=ViperDOMRange.CHARACTER_UNIT}}else if(coords.x<=startCoords.x){if(Math.abs(coords.x-startCoords.x)>Math.abs(startCoords.x-prevXCoord)){clone.moveStart(ViperDOMRange.CHARACTER_UNIT,1);}
break;}else{prevXCoord=coords.x;}}}
clone.collapse(true);if(moveStart===true){this.rangeObj.setEndPoint(ViperDOMRange.START_TO_START,clone.rangeObj);this.startContainer=clone.startContainer;this.startOffset=clone.startOffset;}else{this.rangeObj.setEndPoint(ViperDOMRange.END_TO_START,clone.rangeObj);this.endContainer=clone.endContainer;this.endOffset=clone.endOffset;}
this._setCommonAncestorContainer();this._setCollapsed();},getCommonElement:function()
{return this.rangeObj.parentElement();},getRangeCoords:function(toStart)
{var clone=this.cloneRange();clone.collapse(toStart);var normalize=true;if(clone.startContainer.nodeType===dfx.TEXT_NODE){if(clone.startOffset===0){normalize=false;}else if(clone.endOffset===clone.startContainer.data.length){normalize=false;}}else{normalize=false;}
var shy=this.shy;clone.insertNode(shy);var previous=shy.previousSibling;var next=shy.nextSibling;var c=dfxjQuery(shy).position();var coords={x:c.left,y:c.top};if(this.startContainer===this._prevContainer){var height=dfx.getElementHeight(shy);if(this._prevHeight===null){this._prevHeight=height;}else if(height!==this._prevHeight){coords.y=(coords.y+height-this._prevHeight);}}else{this._prevHeight=null;this._prevContainer=this.startContainer;}
dfx.remove(shy);if(normalize&&previous){if(next&&next.nodeType===dfx.TEXT_NODE){if(next===this.endContainer){this.endContainer=previous;}
dfx.remove(next);previous.data+=next.data;}
this.setEnd(this.endContainer,this.endOffset);this.setStart(this.startContainer,this.startOffset);}
return coords;},getBoundingClientRect:function()
{return this.rangeObj.getBoundingClientRect();},getHTMLContents:function()
{return this.rangeObj.htmlText.replace(/\r\n/g,'');},getHTMLContentsObj:function()
{var div=Viper.document.createElement('div');dfx.setHtml(div,this.rangeObj.htmlText);return div;},toString:function()
{var text=this.rangeObj.text;text=text.replace(/\r\n/g,'');return text;}};dfx.noInclusionInherits('ViperIERange','ViperDOMRange',true);function ViperMozRange(rangeObj)
{ViperDOMRange.call(this,rangeObj);this.startContainer=rangeObj.startContainer;this.startOffset=rangeObj.startOffset;this.endContainer=rangeObj.endContainer;this.endOffset=rangeObj.endOffset;this.collapsed=rangeObj.collapsed;this.commonAncestorContainer=rangeObj.commonAncestorContainer;this.posSpan=Viper.document.createElement('span');ViperDOMRange.START_TO_START=Range.START_TO_START;ViperDOMRange.START_TO_END=Range.END_TO_START;ViperDOMRange.END_TO_END=Range.END_TO_END;ViperDOMRange.END_TO_START=Range.START_TO_END;}
ViperMozRange.prototype={setStart:function(node,offset)
{this.rangeObj.setStart(node,offset);this.startContainer=node;this.startOffset=offset;if(this.endContainer===null){this.endContainer=node;this.endOffset=offset;}
this._setCommonAncestorContainer();this._setCollapsed();},setEnd:function(node,offset)
{this.rangeObj.setEnd(node,offset);this.endContainer=node;this.endOffset=offset;if(this.startContainer===null){this.startContainer=node;this.startOffset=offset;}
this._setCommonAncestorContainer();this._setCollapsed();},setStartBefore:function(node)
{this.rangeObj.setStartBefore(node);this.endContainer=this.rangeObj.endContainer;this.endOffset=this.rangeObj.endOffset;this.startContainer=this.rangeObj.startContainer;this.startOffset=this.rangeObj.startOffset;this._setCollapsed();this._setCommonAncestorContainer();},setStartAfter:function(node)
{this.rangeObj.setStartAfter(node);this.endContainer=this.rangeObj.endContainer;this.endOffset=this.rangeObj.endOffset;this.startContainer=this.rangeObj.startContainer;this.startOffset=this.rangeObj.startOffset;this._setCollapsed();this._setCommonAncestorContainer();},setEndBefore:function(node)
{this.rangeObj.setEndBefore(node);this.endContainer=this.rangeObj.endContainer;this.endOffset=this.rangeObj.endOffset;this.startContainer=this.rangeObj.startContainer;this.startOffset=this.rangeObj.startOffset;this._setCollapsed();this._setCommonAncestorContainer();},setEndAfter:function(node)
{this.rangeObj.setEndAfter(node);this.endContainer=this.rangeObj.endContainer;this.endOffset=this.rangeObj.endOffset;this.startContainer=this.rangeObj.startContainer;this.startOffset=this.rangeObj.startOffset;this._setCollapsed();this._setCommonAncestorContainer();},selectNode:function(node)
{this.rangeObj.selectNode(node);this.startContainer=this.rangeObj.startContainer;this.startOffset=this.rangeObj.startOffset;this.endContainer=this.rangeObj.endContainer;this.endOffset=this.rangeObj.endOffset;this._setCollapsed();this._setCommonAncestorContainer();},selectNodeContents:function(node)
{this.rangeObj.selectNodeContents(node);this.startContainer=this.rangeObj.startContainer;this.startOffset=this.rangeObj.startOffset;this.endContainer=this.rangeObj.endContainer;this.endOffset=this.rangeObj.endOffset;this._setCollapsed();this._setCommonAncestorContainer();},surroundContents:function(node)
{this.rangeObj.surroundContents(node);this.startContainer=this.rangeObj.startContainer;this.startOffset=this.rangeObj.startOffset;this.endContainer=this.rangeObj.endContainer;this.endOffset=this.rangeObj.endtOffset;this._setCollapsed();this._setCommonAncestorContainer();},collapse:function(toStart)
{this.rangeObj.collapse(toStart);this.collapsed=true;if(toStart){this.endContainer=this.startContainer;this.endOffset=this.startOffset;}else{this.startContainer=this.endContainer;this.startOffset=this.endOffset;}},compareBoundaryPoints:function(how,sourceRange)
{return this.rangeObj.compareBoundaryPoints(how,sourceRange.rangeObj);},deleteContents:function()
{var startContainer=this.startContainer;var startOffset=this.startOffset;this.rangeObj.deleteContents();var nextSibling=startContainer.nextSibling;while(nextSibling){if(nextSibling&&nextSibling.nodeType===dfx.TEXT_NODE){startContainer.data+=nextSibling.data;dfx.remove(nextSibling);nextSibling=startContainer.nextSibling;}else{break;}}
this.setStart(startContainer,startOffset);this.collapse(true);this._setCommonAncestorContainer();},extractContents:function()
{return this.rangeObj.extractContents();},createDocumentFragment:function(str)
{return this.rangeObj.createContextualFragment(str);},cloneContents:function()
{return this.rangeObj.cloneContents();},insertNode:function(node)
{if(this.startContainer.nodeType===dfx.ELEMENT_NODE){if(dfx.isStubElement(this.startContainer)===true){throw Error('HIERARCHY_REQUEST_ERR');}}
this.rangeObj.insertNode(node);if(node.previousSibling&&node.previousSibling.nodeType===dfx.TEXT_NODE){if(node.previousSibling.data===''){dfx.remove(node.previousSibling);}}
if(node.nextSibling&&node.nextSibling.nodeType===dfx.TEXT_NODE){if(node.nextSibling.data===''){dfx.remove(node.nextSibling);}}
this.startContainer=this.rangeObj.startContaier;this.startOffset=this.rangeObj.startOffset;this.endContainer=this.rangeObj.endContainer;this.endOffset=this.rangeObj.endOffset;this._setCollapsed();this._setCommonAncestorContainer();},cloneRange:function()
{var clone=this.rangeObj.cloneRange();return new ViperMozRange(clone);},toString:function()
{return this.rangeObj.toString();},detach:function()
{this.rangeObj.detach();},comparePoint:function(node,offset)
{return this.rangeObj.comparePoint(node,offset);},_setCommonAncestorContainer:function()
{this.commonAncestorContainer=this.rangeObj.commonAncestorContainer;},_setCollapsed:function()
{if(this.startContainer===this.endContainer&&this.startOffset===this.endOffset){this.collapsed=true;}else{this.collapsed=false;}},getStartNode:function()
{if(this.startContainer.nodeType===dfx.ELEMENT_NODE){return this.startContainer.childNodes[this.startOffset];}
return this.startContainer;},getCommonElement:function()
{if(this.commonAncestorContainer.nodeType===dfx.ELEMENT_NODE){return this.commonAncestorContainer;}
return this.commonAncestorContainer.parentNode;},getRangeCoords:function(toStart)
{var clone=this.rangeObj.cloneRange();clone.collapse(toStart);var normalize=true;if(clone.startContainer.nodeType===dfx.TEXT_NODE){if(clone.startOffset===0){if(clone.startContainer.previousSibling&&clone.startContainer.previousSibling.nodeType!==dfx.TEXT_NODE){normalize=false;}}}else{normalize=false;}
var posSpan=this.posSpan;clone.insertNode(posSpan);var previous=posSpan.previousSibling;var next=posSpan.nextSibling;var c=dfxjQuery(posSpan).position();var coords={x:c.left,y:c.top};dfx.remove(posSpan);if(normalize){previous.data+=next.data;dfx.remove(next);this.setEnd(this.endContainer,this.endOffset);this.setStart(this.startContainer,this.startOffset);}
return coords;},moveStart:function(unitType,units)
{if(units===0){throw Error('InvalidArgumentException: units cannot be 0');}
switch(unitType){case ViperDOMRange.CHARACTER_UNIT:if(units>0){this._moveCharRight(true,units);}else{this._moveCharLeft(true,units);}
break;case ViperDOMRange.LINE_UNIT:if(units>0){this._moveLineDown(true);}else{this._moveLineUp(true);}
break;case ViperDOMRange.WORD_UNIT:default:break;}
this._setCommonAncestorContainer();this._setCollapsed();},moveEnd:function(unitType,units)
{if(units===0){throw Error('InvalidArgumentException: units cannot be 0');}
switch(unitType){case ViperDOMRange.CHARACTER_UNIT:if(units>0){this._moveCharRight(false,units);}else{this._moveCharLeft(false,units);}
break;case ViperDOMRange.LINE_UNIT:if(units>0){this._moveLineDown(false);}else{this._moveLineUp(false);}
break;case ViperDOMRange.WORD_UNIT:default:break;}
this._setCommonAncestorContainer();this._setCollapsed();},_setRange:function(start,container,offset)
{if(start){this.setStart(container,offset);}else{this.setEnd(container,offset);}},_moveCharLeft:function(moveStart,units)
{var container,offset;if(moveStart){container=this.startContainer;offset=this.startOffset;}else{container=this.endContainer;offset=this.endOffset;}
offset+=units;if(container.nodeType===dfx.ELEMENT_NODE){if(container.hasChildNodes()){container=container.childNodes[offset];offset=0;}}
if(offset<0){while(offset<0){var skippedBlockElem=[];container=this.getPreviousContainer(container,skippedBlockElem);if(container.nodeType===dfx.ELEMENT_NODE){continue;}
offset=container.data.length;if(container.nodeType===dfx.TEXT_NODE&&skippedBlockElem.length===0){offset--;}}}
this._setRange(moveStart,container,offset);},getStartOffset:function(incSpaces)
{if(incSpaces===true){return this.startOffset;}
var spaces=0;var container=this.startContainer;var cc=container.data.charCodeAt(0);while(cc===10||cc===32){spaces++;cc=container.data.charCodeAt(spaces);}
var offset=(this.startOffset-spaces);return offset;},_getNextTextNode:function(container)
{if(container.nodeType===dfx.ELEMENT_NODE){if(container.childNodes.length!==0){return this._getFirstSelectableChild(container);}}
container=this.getNextContainer(container);if(container.nodeType===dfx.TEXT_NODE){return container;}
return this._getNextTextNode(container);},_moveCharRight:function(moveStart,units)
{var container,offset;if(moveStart){container=this.startContainer;offset=this.startOffset;}else{container=this.endContainer;offset=this.endOffset;}
if(container.nodeType===dfx.ELEMENT_NODE){container=container.childNodes[offset];if(container.nodeType!==dfx.TEXT_NODE){container=this._getNextTextNode(container);}
offset=units;}else{offset+=units;}
var diff=(offset-container.data.length);if(diff>0){var skippedBlockElem=[];while(diff>0){container=this.getNextContainer(container,skippedBlockElem);if(container.nodeType===dfx.ELEMENT_NODE){continue;}
if(container.data.length>=diff){break;}else if(container.data.length>0){diff-=container.data.length;}}
offset=0;if(container.nodeType===dfx.TEXT_NODE&&skippedBlockElem.length===0){offset++;}}
this._setRange(moveStart,container,offset);},_filterWords:function(words)
{var wc=words.length;var fwords=[];for(var i=0;i<wc;i++){if(words[i].length>0){fwords.push(words[i]);}}
return fwords;},_moveLineUp:function(moveStart)
{var container=null;var offset=null;if(moveStart){container=this.startContainer;offset=this.startOffset;}else{container=this.endContainer;offset=this.endOffset;}
if(container.nodeType===dfx.ELEMENT_NODE){container=this.getPreviousContainer(container);}
var words=container.data.substr(offset).split(/\s+/);var startCoords=this.getRangeCoords(moveStart);var coords=null;var prevXCoord=0;var nextLine=0;var wordLen=0;var prevYCoord=0;var prevCont=null;var prevOffset=0;while(true){prevOffset=offset;prevCont=container;if(nextLine===0&&words.length>0){offset-=words.pop().length;}else{offset--;}
if(offset<=0){var found=false;while(found===false){container=this.getPreviousContainer(container);if(container!==null&&container.nodeType===dfx.TEXT_NODE&&container.data.length!==0){found=true;}}
offset=container.data.length;}
if(moveStart){this.setStart(container,offset);}else{this.setEnd(container,offset);}
coords=this.getRangeCoords(moveStart);if(startCoords.y!==coords.y){if(prevYCoord!==coords.y){prevYCoord=coords.y;nextLine++;if(nextLine>1){if(prevCont!==container){prevOffset=prevCont.data.length;}
if(moveStart){this.setStart(prevCont,prevOffset);}else{this.setEnd(prevCont,prevOffset);}
break;}}
if(coords.x<=startCoords.x){if(offset<container.data.length&&Math.abs(coords.x-startCoords.x)>Math.abs(prevXCoord-startCoords.x)){offset++;if(moveStart){this.setStart(container,offset);}else{this.setEnd(container,offset);}}
break;}else{prevXCoord=coords.x;}}}},_moveLineDown:function(moveStart)
{var container=null;var offset=null;if(moveStart){container=this.startContainer;offset=this.startOffset;}else{container=this.endContainer;offset=this.endOffset;}
if(container.nodeType===dfx.ELEMENT_NODE){container=this.getNextContainer(container);}
var words=container.data.substr(offset).split(/\s+/);var startCoords=this.getRangeCoords(moveStart);var coords=null;var prevXCoord=0;var nextLine=0;var wordLen=0;var prevYCoord=0;var prevCont=null;var prevOffset=0;while(true){prevOffset=offset;prevCont=container;if(nextLine===0&&words.length>0){offset+=words.shift().length;}else{offset++;}
if(offset>=container.data.length){var found=false;while(found===false){container=this.getNextContainer(container);if(container.data.length!==0){found=true;}}
offset=0;}
if(moveStart){this.setStart(container,offset);}else{this.setEnd(container,offset);}
coords=this.getRangeCoords(moveStart);if(startCoords.y!==coords.y){if(prevYCoord!==coords.y){prevYCoord=coords.y;nextLine++;if(nextLine>1){if(prevCont!==container){prevOffset=prevCont.data.length;}
if(moveStart){this.setStart(prevCont,prevOffset);}else{this.setEnd(prevCont,prevOffset);}
break;}}
if(coords.x>=startCoords.x){if(offset>1&&Math.abs(coords.x-startCoords.x)>Math.abs(prevXCoord-startCoords.x)){offset--;if(moveStart){this.setStart(container,offset);}else{this.setEnd(container,offset);}}
break;}else{prevXCoord=coords.x;}}}},getHTMLContents:function(clonedSelection)
{if(!clonedSelection){clonedSelection=this.rangeObj.cloneContents();}
var div=Viper.document.createElement('div');div.appendChild(clonedSelection.cloneNode(true));return div.innerHTML;},getHTMLContentsObj:function()
{return this.rangeObj.cloneContents();}};dfx.noInclusionInherits('ViperMozRange','ViperDOMRange',true);function ViperPlugin(viper)
{this.viper=viper;}
ViperPlugin.ALL_EVENTS=0;ViperPlugin.NODES_DELETED=1;ViperPlugin.NODES_INSERTED=2;ViperPlugin.NODES_CHANGED=3;ViperPlugin.SELECTION_CHANGED=4;ViperPlugin.prototype={start:function(){},clicked:function(e)
{return true;},mouseDown:function(e)
{return true;},keyDown:function(e)
{return true;},keyPress:function(e)
{return true;},selectionChanged:function(range){},setEnabled:function(enabled){},saving:function(){},caretUpdated:function(){},nodeInserted:function(node,range){},caretPositioned:function(){},remove:function()
{ViperPluginManager.removeKeyPressListener(this);},setSettings:function(settings){}};dfx.noInclusionInherits('ViperPlugin','AbstractWidgetWidgetType',true);var ViperPluginManager={plugins:{},pluginConstructors:{},keyPressListeners:{},viper:null,activePlugin:null,pluginSets:{},activePluginSet:null,pluginsURL:'',callbacks:{},allowTextInput:false,init:function(viper)
{this.viper=viper;this.loadAllPluginStyles();},getPluginNames:function()
{var plugins=[];for(var name in this.plugins){plugins.push(name);}
return plugins;},loadAllPluginStyles:function()
{var self=this;dfx.foreach(this.pluginConstructors,function(pluginName){self.loadPluginStyles(pluginName);});},loadPluginStyles:function(plugin)
{if(dfx.isset(plugin)===true){var url=this.getPluginStylesURL(plugin)+'/'+plugin+'.css';dfx._includeCss(url);}},getPluginStylesURL:function(plugin)
{var url=this.pluginsURL+plugin;return url;},addPluginObject:function(pluginName,pluginObj)
{this.plugins[pluginName]=pluginObj;},addPlugin:function(name,pluginConstructor)
{if(typeof pluginConstructor!=='function'){throw Error('ViperPluginException: plugin must be a constructor function');}
if(dfx.isset(this.pluginConstructors[name])===false){this.pluginConstructors[name]=pluginConstructor;this.loadPluginStyles(name);}},loadPluginScripts:function(plugins,callback)
{if(plugins.length===0){callback.call(this);}else{var plugin=plugins.shift();if(typeof plugin==='object'){plugin=plugin.name;}
if(dfx.isset(window[plugin])===true){if(dfx.isset(window[plugin])===true){ViperPluginManager.addPlugin(plugin,window[plugin]);}
this.loadPluginScripts(plugins,callback);}else{var self=this;var url=this.pluginsURL+plugin+'/'+plugin+'.js';dfx.includeScript(url,function(){if(dfx.isset(window[plugin])===true){ViperPluginManager.addPlugin(plugin,window[plugin]);}
self.loadPluginScripts(plugins,callback);});}}},setActivePlugin:function(name,allowTextInput)
{allowTextInput=allowTextInput||false;this.activePlugin=name;this.allowTextInput=allowTextInput;},getActivePlugin:function()
{return this.activePlugin;},_getPluginName:function(pluginConstructor)
{var fn=pluginConstructor.toString();var start='function '.length;var name=fn.substr(start,(fn.indexOf('(')-start));return name;},removePlugin:function(plugin)
{if(this.plugins[plugin]){this.plugins[plugin].remove();this.removeKeyPressListener(this.plugins[plugin]);this.fireCallbacks('pluginRemoved',plugin);}},getPlugin:function(name)
{return this.plugins[name];},addPluginSet:function(name,plugins,load,callback)
{if(dfx.isset(plugins)===true){this.pluginSets[name]=plugins;}else{this.pluginSets[name]=[];}
if(load===true){var clone=this.pluginSets[name].concat([]);this.loadPluginScripts(clone,function(){if(callback){callback.call(this);}});}else if(callback){callback.call(this);}},removePluginSet:function(name)
{if(this.pluginSetExists(name)===true){delete this.pluginSets[name];}},addPluginToSet:function(setName,pluginName)
{if(this.pluginSetExists(name)===true){this.pluginSets[setName].push(pluginName);}},pluginSetExists:function(name)
{return dfx.isset(this.pluginSets[name]);},usePluginSet:function(setName,disableOnly,callback)
{if(this.pluginSetExists(setName)===true){var self=this;var clone=this.pluginSets[setName].concat([]);this.loadPluginScripts(clone,function(){if(self.activePluginSet!==null){self._removeSet(self.activePluginSet);}
self._enableSet(setName);if(dfx.isFn(callback)===true){callback.call(this,setName);}});}else if(this.activePluginSet!==null){this._removeSet(this.activePluginSet);}},_removeSet:function(name)
{var pSetLen=this.pluginSets[name].length;for(var i=0;i<pSetLen;i++){var plugin=this.pluginSets[name][i];if(typeof plugin==='object'){plugin=plugin.name;}
this.removePlugin(plugin);}
this.activePluginSet=null;},_enableSet:function(name)
{this.activePluginSet=name;var pSetLen=this.pluginSets[name].length;for(var i=0;i<pSetLen;i++){var plugin=this.pluginSets[name][i];var pluginName='';if(typeof plugin==='object'){pluginName=plugin.name;}else{pluginName=plugin;}
var pluginConstructor=this.pluginConstructors[pluginName];if(pluginConstructor){var pluginObj=new pluginConstructor(this.viper);this.plugins[pluginName]=pluginObj;if(dfx.isset(plugin.settings)===true){pluginObj.setSettings(plugin.settings);}
pluginObj.start();}}},disablePlugin:function(name)
{this.plugins[name].disable();},isPluginElement:function(element)
{for(var i in this.plugins){if(this.plugins[i].isPluginElement){if(this.plugins[i].isPluginElement(element)===true){return true;}}}
return false;},addKeyPressListener:function(keys,plugin,evtFunction,data)
{var keysArray=keys.toLowerCase().split('+').sort();var listener={plugin:plugin,fn:evtFunction,data:data};var keysStr=keysArray.join('+');if(!this.keyPressListeners[keysStr]){this.keyPressListeners[keysStr]=[];}
this.keyPressListeners[keysStr].push(listener);},removeKeyPressListener:function(plugin,keys)
{if(plugin&&keys&&this.keyPressListeners[keys]){var ln=this.keyPressListeners[keys].length;for(var i=0;i<ln;i++){var listener=this.keyPressListeners[keys][i];if(listener.plugin===plugin){this.keyPressListeners[keys].splice(i,1);break;}}}else if(plugin){for(var k in this.keyPressListeners){if(this.keyPressListeners.hasOwnProperty(k)===false){continue;}
var ln=this.keyPressListeners[k].length;if(ln===0){delete this.keyPressListeners[k];}else{for(var i=0;i<ln;i++){var listener=this.keyPressListeners[k][i];if(listener.plugin===plugin){this.keyPressListeners[k].splice(i,1);break;}}}}}},fireKeyPressed:function(e)
{if(this._fireKeyPressFns(e,'all_keys')===false){return false;}
var eKeys=[];if(e.ctrlKey===true||e.metaKey===true){eKeys.push('ctrl');}
if(e.shiftKey===true){eKeys.push('shift');}
if(e.altKey===true){eKeys.push('alt');}
switch(e.keyCode){case 13:eKeys.push('enter');break;case dfx.DOM_VK_LEFT:eKeys.push('left');break;case dfx.DOM_VK_RIGHT:eKeys.push('right');break;case dfx.DOM_VK_UP:eKeys.push('up');break;case dfx.DOM_VK_DOWN:eKeys.push('down');break;case 9:eKeys.push('tab');break;case dfx.DOM_VK_DELETE:eKeys.push('delete');break;default:var code;if(e.keyCode){code=e.keyCode;}else if(e.which){code=e.which;}
if(code){eKeys.push(String.fromCharCode(code).toLowerCase());}
break;}
var eKeysStr=eKeys.sort().join('+');return this._fireKeyPressFns(e,eKeysStr);},_fireKeyPressFns:function(e,eKeysStr)
{if(this.keyPressListeners[eKeysStr]){var ln=this.keyPressListeners[eKeysStr].length;for(var i=0;i<ln;i++){var listener=this.keyPressListeners[eKeysStr][i];var eventFn=listener.fn;var plugin=listener.plugin;var data=listener.data;if(eventFn){if(dfx.isFn(eventFn)===true){if(eventFn.call(plugin,e,data)===true){dfx.preventDefault(e);return false;}}else if(plugin[eventFn]&&plugin[eventFn].call(plugin,e,data)===true){dfx.preventDefault(e);return false;}}}}
return true;},fireSelectionChanged:function(range)
{for(var i in this.plugins){this.plugins[i].selectionChanged(range);}},fireNodeInserted:function(node,range)
{for(var i in this.plugins){if(this.plugins[i].nodeInserted(node,range)===false){return false;}}},fireCaretPositioned:function()
{for(var i in this.plugins){this.plugins[i].caretPositioned()}},fireClicked:function(e)
{var val=true;for(var i in this.plugins){if(this.plugins[i].clicked(e)===false){val=false;}}
return val;},fireMouseDown:function(e)
{var val=true;for(var i in this.plugins){if(this.plugins[i].mouseDown(e)===false){val=false;}}
return val;},fireKeyDown:function(e)
{var val=true;for(var i in this.plugins){if(this.plugins[i].keyDown(e)===false){val=false;}}
return val;},fireKeyPress:function(e)
{var val=true;for(var i in this.plugins){if(this.plugins[i].keyPress(e)===false){val=false;}}
return val;},fireEnabled:function(enabled)
{for(var i in this.plugins){this.plugins[i].setEnabled(enabled);}},fireSaving:function(elem)
{for(var i in this.plugins){if(this.plugins[i].saving){this.plugins[i].saving(elem);}}},fireCaretUpdated:function()
{for(var i in this.plugins){if(this.plugins[i].caretUpdated){this.plugins[i].caretUpdated();}}},registerCallback:function(type,id,callback)
{if(dfx.isFn(callback)===false){return;}
if(dfx.isset(this.callbacks[type])===false){this.callbacks[type]={};}
this.callbacks[type][id]=callback;},fireCallbacks:function(type,data)
{if(dfx.isset(this.callbacks[type])===true){for(var id in this.callbacks[type]){this.callbacks[type][id].call(type,data);}}},removeCallback:function(type,id)
{delete this.callbacks[type][id];}};var ViperSelection={_lastRange:null,_lastTextRange:null,_selection:null,_getSelection:function()
{if(Viper.window.getSelection){return Viper.window.getSelection();}else if(Viper.document.getSelection){return Viper.document.getSelection();}else if(Viper.document.selection){return Viper.document.selection;}else{return null;}},createRange:function()
{var rangeObj=null;if(Viper.document.body.createTextRange){rangeObj=Viper.document.body.createTextRange();return new ViperIERange(rangeObj);}else if(Viper.document.createRange){rangeObj=Viper.document.createRange();return new ViperMozRange(rangeObj);}else{throw Error('UnsupportedOperationException: createRange() not supported.');}},getRangeAt:function(pos)
{this._selection=ViperSelection._getSelection();var selection=this._selection;if(selection.getRangeAt){try{if(selection.rangeCount>0){var range=selection.getRangeAt(pos);var mozRange=new ViperMozRange(range);}else{var mozRange=this.createRange();}
return mozRange;}catch(e){return null;}}else{var rangeObj=selection.createRange();if(!rangeObj.duplicate){rangeObj=Viper.document.body.createTextRange();}
var range=new ViperIERange(rangeObj);this._lastRange=range;return this._lastRange;}},addRange:function(range)
{this._selection=ViperSelection._getSelection();if(this._selection.addRange){if(this._selection.rangeCount>0){this._selection.removeAllRanges();}
this._selection.addRange(range.rangeObj);}else if(range.rangeObj.select){try{range.rangeObj.select();}catch(e){}}},removeRange:function(range)
{var selection=ViperSelection._getSelection();if(selection){if(selection.removeRange){selection.removeRange(range.rangeObj);}else if(selection.empty){selection.empty();}}}};function ViperTextMetrics(){}
ViperTextMetrics.appendToBody=function(element)
{Viper.document.getElementsByTagName('body')[0].appendChild(element);};ViperTextMetrics.getCharWidth=function(chr)
{var clone=ViperTextMetrics.workNode;var text=clone.innerHTML;clone.innerHTML=chr;var insets=ViperElementMetrics.getInsets(clone);var width=(clone.offsetWidth-insets.left-insets.right);clone.innerHTML=text;return width;};var isInteger=function(num)
{return(!isNaN(parseInt(num))&&parseInt(num).toString()==num);};ViperTextMetrics.getCharHeight=function(element)
{var styles=ViperElementMetrics.getStyles(element);var size=styles.fontSize;var bodyStyles=ViperElementMetrics.getStyles(Viper.document.body);if(bodyStyles.fontSize){var bodyFontSize=parseInt(bodyStyles.fontSize);}
if(size!==''){if(!isInteger(size)){var idx=0;if((idx=size.indexOf('em'))>0){size=size.substring(0,idx);size=(size*bodyFontSize*1.3333);}else if((idx=size.indexOf('pt'))>0){size=size.substring(0,idx);size=(size*1.3333);}else if((idx=size.indexOf('%'))>0){size=parseInt(size.substring(0,idx));size=((size/7)-1);if(size>174){size=(size-1);}}}}
return parseInt(size);};ViperTextMetrics.getWordsBeforeOffset=function(offset)
{return ViperTextMetrics.workNode.innerHTML.substr(0,offset).split(/\s+/);};ViperTextMetrics.getFirstWordOnLine=function(offset)
{var clone=ViperTextMetrics.workNode;var words=ViperTextMetrics.getWordsBeforeOffset(offset);var firstWord=0;var currHeight=0;var text=clone.innerHTML;clone.innerHTML='';var wLen=words.length;for(var i=0;i<wLen;i++){clone.innerHTML=clone.innerHTML+words[i]+' ';if(clone.offsetHeight>currHeight){currHeight=clone.offsetHeight;firstWord=i;}}
clone.innerHTML=text;return firstWord;};ViperTextMetrics.getLineCount=function(offset)
{var clone=ViperTextMetrics.workNode;var words=ViperTextMetrics.getWordsBeforeOffset(offset);var lines=0;var currHeight=0;var text=clone.innerHTML;clone.innerHTML='';var wLen=words.length;for(var i=0;i<wLen;i++){clone.innerHTML=clone.innerHTML+words[i]+' ';if(clone.offsetHeight>currHeight){currHeight=clone.offsetHeight;lines++;}}
clone.innerHTML=text;return lines;};ViperTextMetrics.getLineWidth=function(offset)
{var clone=ViperTextMetrics.element.cloneNode(true);ViperTextMetrics.appendToBody(clone);var words=ViperTextMetrics.getWordsBeforeOffset(offset);var firstWord=ViperTextMetrics.getFirstWordOnLine(offset);clone.innerHTML=words.slice(firstWord).join(' ');clone.style.display='inline';var insets=ViperElementMetrics.getInsets(clone);var coords=dom.getElementCoords(ViperTextMetrics.element);var left=(insets.left-coords.x);if(words[(words.length-1)]===''){width=(clone.offsetWidth-left)+ViperTextMetrics.getCharWidth('&nbsp;');}else{width=(clone.offsetWidth-left);}
return width;};ViperTextMetrics.getCharacterCoords=function(offset)
{var clone=ViperTextMetrics.workNode;var coords=dom.getElementCoords(ViperTextMetrics.element);var insets=ViperElementMetrics.getInsets(clone);clone.style.width=(clone.offsetWidth-insets.left-insets.right)+'px';var x=ViperTextMetrics.getLineWidth(offset);var y=(coords.y+insets.top-ViperTextMetrics.getCharHeight());y=y+(ViperTextMetrics.getCharHeight()*(ViperTextMetrics.getLineCount(offset)-1));return{'x':x,'y':y};};var ViperUndoManager={undoHistory:[],redoHistory:[],undoHandlers:{},redoHandlers:{},batchCount:0,batch:null,viper:null,_textChangeCount:0,historyStore:{},_activeElement:null,historyLimit:30,init:function(viper)
{this.viper=viper;this.handles={};this.undoHistory=[];this.redoHisotory=[];this.historyStore={};var self=this;this.registerUndoHandler('viper',function(action,data){self.handleUndo(action,data);});this.registerRedoHandler('viper',function(action,data){self.handleRedo(action,data);});},registerUndoHandler:function(source,callback)
{this.undoHandlers[source]=callback;},registerRedoHandler:function(source,callback)
{this.redoHandlers[source]=callback;},setActiveElement:function(elem)
{if(this._activeElement){if(this.historyStore[this._activeElement]&&this.historyStore[this._activeElement].element!==elem){this._saveHistory(this._activeElement);}else{this.viper.fireCallbacks('ViperUndoManager:newUndoTask');return;}}
var self=this;var loaded=false;dfx.foreach(this.historyStore,function(key){if(self.historyStore[key].element===elem){self._loadHistory(key);loaded=true;return false;}});if(loaded===false){var key=dfx.getUniqueId();this.historyStore[key]={undo:[],redo:[],element:elem};this._loadHistory(key);this.add('viper','change_node');}else{this.viper.fireCallbacks('ViperUndoManager:newUndoTask');}},_loadHistory:function(key)
{if(this.historyStore[key]){this._activeElement=key;this.undoHistory=this.historyStore[key].undo;this.redoHistory=this.historyStore[key].redo;this._textChangeCount=0;this.batch=null;this.batchCount=0;}},_saveHistory:function(key)
{if(this.historyStore[key]){this.historyStore[key].undo=this.undoHistory;this.historyStore[key].redo=this.redoHistory;}},getUndoHistory:function()
{return this.undoHistory;},modify:function(undoIndex,task)
{this.undoHistory[undoIndex]=task;},begin:function()
{this.batchCount++;if(this.batch===null){this.batch=true;}},end:function()
{this.batchCount--;if(this.batchCount===0&&this.batch!==null){if(this.batch!==true){this.undoHistory.push(this.batch);}
this.batch=null;}},add:function(source,action)
{if(this.viper._subElementActive===true){return;}
var modify=false;if(action==='text_change'){this._textChangeCount++;if(this._textChangeCount>1){if(this._textChangeCount<30){modify=true;}else{this._textChangeCount=1;}}}else{this._textChangeCount=0;}
var data={content:dfx.getHtml(this.viper.element),range:this._getRangeInfo()};var task={source:source,action:action,data:data};if(this.batch===null){if(modify===true){this.undoHistory[(this.undoHistory.length-1)]=task;}else{this.undoHistory.push(task);if(this.undoHistory.length>this.historyLimit){this.undoHistory.shift();}}
this.redoHistory=[];}else{this.batch=task;}
this.viper.fireCallbacks('ViperUndoManager:newUndoTask');},undo:function()
{if(this.viper._subElementActive===true){return;}
var undoLength=this.undoHistory.length;if(undoLength===1){return;}
this._textChangeCount=0;var task=this.undoHistory.pop();this.redoHistory.push(task);undoLength=this.undoHistory.length;var undoTask=this.undoHistory[(undoLength-1)];if(undoTask){this.undoHandlers[undoTask.source].call(this,undoTask);}
this.viper.fireCallbacks('nodesChanged');this.viper.fireCallbacks('ViperUndoManager:undo');return undoLength;},redo:function()
{if(this.viper._subElementActive===true){return;}
if(this.redoHistory.length===0){return;}
var task=this.redoHistory.pop();this.undoHistory.push(task);this.redoHandlers[task.source].call(this,task);this.viper.fireCallbacks('nodesChanged');this.viper.fireCallbacks('ViperUndoManager:redo');return this.redoHistory.length;},getUndoCount:function()
{return this.undoHistory.length;},getRedoCount:function()
{return this.redoHistory.length;},handleUndo:function(task)
{this.handleUndoChange(task);},handleRedo:function(task)
{this.handleRedoChange(task);},handleUndoChange:function(task)
{if(task.data.content){dfx.setHtml(this.viper.element,task.data.content);this._setCaretPositon(task);}},handleRedoChange:function(task)
{if(task.data.content){dfx.setHtml(this.viper.element,task.data.content);this._setCaretPositon(task);}},_setCaretPositon:function(task)
{if(task&&task.data&&task.data.range){var taskRange=task.data.range;if(taskRange.startCont&&taskRange.endCont){var range=this.viper.getCurrentRange();try{var startNode=XPath.getNode(taskRange.startCont);var endNode=XPath.getNode(taskRange.endCont);if(startNode&&endNode){range.setStart(startNode,taskRange.startOffset);range.setEnd(endNode,taskRange.endOffset);ViperSelection.addRange(range);this.viper.focus();}}catch(e){}}}},createNodeChangeInfo:function(node,range)
{if(!range){range=this.viper.getCurrentRange();}
var info={before:dfx.getHtml(node),path:XPath.getPath(node)};try{if(range){info.startContainer=XPath.getPath(range.startContainer);info.startOffset=range.startOffset;info.endContainer=XPath.getPath(range.endContainer);info.endOffset=range.endOffset;}}catch(e){};return info;},_getRangeInfo:function()
{var rangeInfo={};try{var range=this.viper.getCurrentRange();var rangeInfo={startCont:XPath.getPath(range.startContainer),startOffset:range.startOffset,endCont:XPath.getPath(range.endContainer),endOffset:range.endOffset};}catch(e){};return rangeInfo;}};var XPath={getPath:function(node)
{var path,step;path='/node()['+this.getPosition(node,false)+']';node=node.parentNode;while(node.parentNode){step='/';switch(node.nodeType){case dfx.ELEMENT_NODE:step+=node.nodeName.toLowerCase()+'['+this.getPosition(node,true)+']';break;default:break;}
path=step+path;node=node.parentNode;}
return path;},getPosition:function(node,matchType)
{var childNodes=node.parentNode.childNodes;var pos=1;var cln=childNodes.length;for(var i=0;i<cln;i++){if(childNodes[i]===node){break;}
if(!matchType){pos++;continue;}
switch(node.nodeType){case dfx.ELEMENT_NODE:if(childNodes[i].nodeType===dfx.ELEMENT_NODE&&childNodes[i].nodeName===node.nodeName){pos++;}
break;case dfx.TEXT_NODE:if(childNodes[i].nodeType===dfx.TEXT_NODE){pos++;}
break;default:break;}}
return pos;},getNode:function(path)
{if(Viper.document.evaluate){var node=Viper.document.evaluate(path,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null);return node.singleNodeValue;}else{return this._getNodeFromPath(path);}},_getNodeFromPath:function(path)
{var paths=path.split('/');var parent=document;var pln=paths.length;for(var i=0;i<pln;i++){if(dfx.trim(paths[i])===''){continue;}
parent=this._getNodeFromPathSegment(parent,paths[i]);}
return parent;},_getNodeFromPathSegment:function(parent,path)
{var pos=path.match(/\[(\d+)\]/);pos=parseInt(pos[1]);if(!pos){pos=1;}
var brPos=path.indexOf('[')||path.length;var type=path.substr(0,brPos);var node,found=1;var cln=parent.childNodes.length;for(var i=0;i<cln;i++){node=parent.childNodes[i];if(type==='node()'){if(found===pos){return node;}
found++;}else if(node.tagName&&type===node.tagName.toLowerCase()){if(found===pos){return node;}
found++;}}
throw Error('XPath: node could not be found');},getPreviousNode:function(path)
{var paths=path.split('/');var lastStep=paths.pop();var pos=lastStep.match(/\[(\d+)\]/)[1];lastStep=lastStep.replace(/\[(\d+)\]/,'['+(parseInt(pos)-1)+']');path=paths.join('/')+'/'+lastStep;return this.getNode(path);}};function ViperContentSharingPlugin(viper)
{ViperPlugin.call(this,viper);this.data=[];this.listContainer=null;this.titleWidget=null;this.previewPane=null;this.selected=null;this.canAdd=false;this.newid=null;this.contentSharingWidget=null;}
ViperContentSharingPlugin.prototype={start:function()
{var self=this;this.toolbarPlugin=ViperPluginManager.getPlugin('ViperToolbarPlugin');this.toolbarPlugin.addButton('ContentSharing','content-sharing','Manage Shared Content',function(){self.showManager();});},_isSharedContent:function(el,elemOnly)
{do{if(el.tagName==='SPAN'){if(dfx.hasClass(el,'ContentSharing-sharedContent')){return true;}}
if(elemOnly===true){return false;}
el=el.parentNode;}while(el.parentNode!=null&&el.parentNode.tagName!='BODY');return false;},showManager:function()
{var selectedHtml='';var range=this.viper.getCurrentRange();if(range.collapsed!==true){this.canAdd=true;selectedHtml=range.getHTMLContentsObj();}else{this.canAdd=false;}
var bookmark=this.viper.createBookmark();this.displayDisabledDiv(true);ViperPluginManager.setActivePlugin('ViperContentSharingPlugin');var self=this;this.includeWidgets(['ModalDialog','TextField','Button','EditingContentSharing'],function(){var modalDialog=self.createWidget('ViperContentSharingDialog','ModalDialog');var c=this.getClass();var main=document.createElement('div');dfx.addClass(main,c);var content='<div class="'+c+'-left">';content+='<div class="'+c+'-left-title">Available Content Items</div>';content+='<div class="'+c+'-left-list"></div>';content+='</div>';content+='<div class="'+c+'-right">';content+='<div class="'+c+'-right-top">';content+='<div class="'+c+'-right-top-title">Name</div>';content+='</div>';content+='<div class="'+c+'-right-titleText"></div>';content+='<div class="'+c+'-right-titleField"></div>';content+='<div class="'+c+'-right-prevTitle">Preview</div>';content+='<div class="'+c+'-right-preview"></div>';content+='</div>';dfx.setHtml(main,content);self.titleFieldCont=dfx.getClass(c+'-right-titleField',main)[0];self.titleTextCont=dfx.getClass(c+'-right-titleText',main)[0];self.listContainer=dfx.getClass(c+'-left-list',main)[0];self.previewPane=dfx.getClass(c+'-right-preview',main)[0];if(self.canAdd===true){var titleWidget=self.createWidget(null,'TextField');self.titleWidget=titleWidget;titleWidget.create(function(el){self.titleFieldCont.appendChild(el);});var addBtnWidget=self.createWidget(null,'Button','ButtonWidgetType-liteGrey');addBtnWidget.setName('Add Keyword');addBtnWidget.addClickEvent(function(){var newid=self.newid;var title=self.titleWidget.getValue();var content=range.getHTMLContents(self._fixNestedKeywords(selectedHtml));self.contentSharingWidget.add(newid,title,unescape(content),function(result){if(result.error){alert(result.error);return;}else if(result.key){self.newid=null;self.selected=null;self.data[newid].title=title;self.data[newid].key=result.key;dfx.setHtml(dfx.getId(newid),title);self.selectKeyword(newid);}});});addBtnWidget.create(function(btnel){self.titleFieldCont.appendChild(btnel);});}
modalDialog.setContent(main);modalDialog.setTitle('Content Sharing');modalDialog.setSubTitle('Insert shared content elements');modalDialog.create(function(){modalDialog.addButton('Close',function(button){button.addClickEvent(function(){modalDialog.close(true);},true);});modalDialog.addButton('Insert Content',function(button){button.addClickEvent(function(){if(self.data[self.selected]){var keyword=self.data[self.selected].key;self.insertKeyword(keyword,bookmark);modalDialog.close(true);}},true);});self.contentSharingWidget=self.createWidget(null,'EditingContentSharing');if(self.canAdd===true){var kid=self._createListItem(null,null,range.getHTMLContents(selectedHtml));self.selectKeyword(kid);}
self.contentSharingWidget.getKeywordsList(function(keywords){self.updateKeywordList(keywords);modalDialog.open();});modalDialog.addOnCloseCallback(function(){ViperPluginManager.setActivePlugin(null);self.selected=null;});});});},_fixNestedKeywords:function(contentElem)
{var keywordPlugin=ViperPluginManager.getPlugin('ViperKeywordPlugin');keywordPlugin.normalizeKeywords(contentElem);return contentElem;},insertKeyword:function(keywordid,bookmark)
{if(!this.data[keywordid]){return;}
var title=this.data[keywordid].title;var content=this.data[keywordid].content;var keyword='%contentSharing~'+keywordid+'%';var keywordPlugin=ViperPluginManager.getPlugin('ViperKeywordPlugin');keywordPlugin.insertKeyword(keyword,content,bookmark);this.selected=null;},updateKeywordList:function(keywords)
{var first=true;for(var id in keywords){if(keywords.hasOwnProperty(id)===true){this._createListItem(id,keywords[id].title,keywords[id].content);if(first===true&&this.canAdd!==true){first=false;this.selectKeyword(id);}}}},_createListItem:function(id,title,content)
{content=content||'';title=title||'Current Selection';if(!id){id=dfx.getUniqueId();this.newid=id;}
var main=document.createElement('div');var c=this.getClass()+'-listItem';main.id=id;dfx.addClass(main,c);var mcontent='<div class="'+c+'-title">'+title+'</div>';dfx.setHtml(main,mcontent);this.setData(id,title,content);this.listContainer.appendChild(main);var self=this;dfx.addEvent(main,'click',function(){self.selectKeyword(id);});return id;},setData:function(id,title,content)
{this.data[id]={title:title,content:content,key:id};},selectKeyword:function(id)
{if(!this.data[id]||this.selected===id){return;}
if(id===this.newid){this.titleWidget.setValue(this.data[id].title);dfx.setStyle(this.titleFieldCont,'display','block');dfx.setStyle(this.titleTextCont,'display','none');}else{dfx.setHtml(this.titleTextCont,this.data[id].title);dfx.setStyle(this.titleFieldCont,'display','none');dfx.setStyle(this.titleTextCont,'display','block');}
dfx.setHtml(this.previewPane,this.data[id].content);if(this.selected!==null){dfx.removeClass(dfx.getId(this.selected),'selected');}
dfx.addClass(dfx.getId(id),'selected');this.selected=id;},getClass:function()
{return'ViperContentSharingPlugin';}};dfx.noInclusionInherits('ViperContentSharingPlugin','ViperPlugin',true);function ViperCopyPastePlugin(viper)
{ViperPlugin.call(this,viper);this.toolbarPlugin=null;this.pasteElement=null;this.pasteValue=null;this.rangeObj=null;this.pasteType='formatted';this.cutType='formatted';this._tmpNode=null;}
ViperCopyPastePlugin.prototype={setSettings:function(settings)
{if(dfx.isset(settings.pasteType)===true){this.pasteType=settings.pasteType;}
if(dfx.isset(settings.cutType)===true){this.cutType=settings.cutType;}},start:function()
{this.createPasteDiv();},keyDown:function(e)
{this.handlePaste(e);},handleCut:function(e)
{if(this.cutType==='formatted'){return this.handleFormattedCut();}
var range=this.viper.getCurrentRange();if(range.collapsed===true){return false;}
var startCont=range.startContainer;var startOffset=range.startOffset;var bookmark=this.viper.createBookmark();var textInput=document.createElement('input');dfx.setStyle(textInput,'top','100px');dfx.setStyle(textInput,'left','100px');dfx.setStyle(textInput,'position','fixed');dfx.setStyle(textInput,'width','0px');dfx.setStyle(textInput,'height','0px');dfx.setStyle(textInput,'border','0px');textInput.value=range.toString();this.viper.deleteContents();document.body.appendChild(textInput);textInput.focus();textInput.select();this.viper.selectBookmark(bookmark);this.viper.fireNodesChanged('ViperCopyPastePlugin:cut');return false;},handleFormattedCut:function()
{var range=this.viper.getCurrentRange();if(range.collapsed===true){return false;}
var contents=range.getHTMLContents();this.viper.deleteContents();var bookmark=this.viper.createBookmark();var div=document.createElement('div');div.setAttribute('class','editable_attribute');div.setAttribute('contentEditable',true);dfx.setStyle(div,'width','0px');dfx.setStyle(div,'height','0px');dfx.setStyle(div,'overflow','hidden');dfx.setStyle(div,'position','fixed');dfx.setStyle(div,'top','90px');dfx.setStyle(div,'left','50px');document.body.appendChild(div);dfx.setHtml(div,contents);div.focus();range.selectNode(div);ViperSelection.addRange(range);this.viper.selectBookmark(bookmark);setTimeout(function(){dfx.remove(div);},100);this.viper.fireNodesChanged('ViperCopyPastePlugin:cut');return false;},handlePaste:function(e)
{if(e.metaKey!==true&&e.ctrlKey!==true){return;}if(e.keyCode!==86){return;}else if(this.viper.pluginActive()===true&&ViperPluginManager.allowTextInput!==true){return;}
var range=this.viper.getCurrentRange();var keywordPlugin=ViperPluginManager.getPlugin('ViperKeywordPlugin');if(keywordPlugin){var startElement=range.startContainer;var endElement=range.endContainer;if(startElement.nodeType!==dfx.TEXT_NODE){startElement=startElement.childNodes[range.startOffset];}
if(endElement.nodeType!==dfx.TEXT_NODE){endElement=endElement.childNodes[range.endOffset];}
if(keywordPlugin.isKeyword(startElement)===true||keywordPlugin.isKeyword(endElement)===true){dfx.preventDefault(e);return true;}}
this.rangeObj=range.cloneRange();this._tmpNode=document.createTextNode('');this.viper.insertNodeAtCaret(this._tmpNode);switch(this.pasteType){case'formatted':this.handleFormattedPaste(false);break;case'formattedClean':this.handleFormattedPaste(true);break;default:this.handleRawPaste(e);break;}
return true;},handleRawPaste:function(e)
{var textInput=document.createElement('input');this.pasteElement=textInput;dfx.setStyle(textInput,'top','-9999px');dfx.setStyle(textInput,'left','-9999px');dfx.setStyle(textInput,'position','fixed');dfx.setStyle(textInput,'width','0px');dfx.setStyle(textInput,'height','0px');dfx.setStyle(textInput,'border','0px');document.body.appendChild(textInput);textInput.focus();var self=this;textInput.onpaste=function(){setTimeout(function(){self.handleRawPasteValue();},100);};return true;},handleRawPasteValue:function(e)
{if(this.pasteElement!==null){this.pasteValue=this.pasteElement.value;dfx.insertBefore(this._tmpNode,document.createTextNode(this.pasteValue));this._updateSelection();this.viper.fireNodesChanged('ViperCopyPastePlugin:paste');}},createPasteDiv:function()
{var oldEl=dfx.getId('ViperPasteDiv');if(oldEl){dfx.remove(oldEl);}
var div=document.createElement('div');div.id='ViperPasteDiv';div.setAttribute('contentEditable',true);dfx.setStyle(div,'width','0px');dfx.setStyle(div,'height','0px');dfx.setStyle(div,'overflow','hidden');dfx.setStyle(div,'position','fixed');dfx.setStyle(div,'top','-9999px');dfx.setStyle(div,'left','-9999px');document.body.appendChild(div);return div;},handleFormattedPaste:function(stripTags)
{div=this.createPasteDiv();this.pasteElement=div;div.focus();var self=this;div.onpaste=function(){setTimeout(function(){self.handleFormattedPasteValue(stripTags);},100);};return true;},handleFormattedPasteValue:function(stripTags)
{if(stripTags===true){dfxjQuery(this.pasteElement).find('[style]').removeAttr('style');dfxjQuery(this.pasteElement).find('[class]').removeAttr('class');}
this._removeEditableAttrs(this.pasteElement);var html=dfx.getHtml(this.pasteElement);html=this._cleanWordPaste(html);if(stripTags===true){html=dfx.stripTags(html,['table','tr','td','th','ul','li','ol','br','p','a','img','form','input','select','option']);}
html=dfx.trim(html);var fragment=this.rangeObj.createDocumentFragment(html);if(this.viper.hasBlockChildren(fragment)===true){var preTags=dfx.getTag('pre',fragment);if(preTags.length===0){html=html.replace(/\n/g,'');fragment=this.rangeObj.createDocumentFragment(html);}
var keyboardEditor=ViperPluginManager.getPlugin('ViperKeyboardEditorPlugin');var range=this.viper.getCurrentRange();range.setStart(this._tmpNode,0);range.collapse(true);ViperSelection.addRange(range);var prevBlock=null;if(dfx.isTag(fragment.firstChild,'ol')===true||dfx.isTag(fragment.firstChild,'ul')===true){var listElem=null;var tmpNode=this._tmpNode;while(tmpNode){if(tmpNode===this.viper.element){break;}else if(dfx.isTag(tmpNode,'li')===true){listElem=tmpNode;break;}
tmpNode=tmpNode.parentNode;}
if(listElem){prevBlock=listElem;}}
if(!prevBlock){prevBlock=keyboardEditor.handleEnter(true);prevBlock=dfx.getNextNode(prevBlock);}else{var listElem=fragment.firstChild;while(listElem.firstChild){dfx.insertBefore(fragment.firstChild,listElem.firstChild);}}
var changeid=ViperChangeTracker.startBatchChange('textAdded');while(fragment.firstChild){var ctNode=null;if(dfx.isBlockElement(fragment.firstChild)===true){ctNode=fragment.firstChild;ViperChangeTracker.addChange('textAdd',[ctNode]);}else{ctNode=ViperChangeTracker.createCTNode('ins','textAdd',fragment.firstChild);ViperChangeTracker.addNodeToChange(changeid,ctNode);}
dfx.insertBefore(prevBlock,ctNode);}
ViperChangeTracker.endBatchChange(changeid);}else{var changeid=ViperChangeTracker.startBatchChange('textAdded');while(fragment.firstChild){var ctNode=ViperChangeTracker.createCTNode('ins','textAdd',fragment.firstChild);ViperChangeTracker.addNodeToChange(changeid,ctNode);dfx.insertBefore(this._tmpNode,ctNode);}
ViperChangeTracker.endBatchChange(changeid);}
this._updateSelection();this.viper.cleanDOM();this.viper.fireNodesChanged('ViperCopyPastePlugin:paste');},_cleanWordPaste:function(content)
{content=content.replace(/<(meta|link)[^>]+>/g,"");content=content.replace(/<!--(.|\s)*?-->/g,'');content=content.replace(/<style>[\s\S]*?<\/style>/g,'');content=content.replace(/<\/?span[^>]*>/gi,"");content=content.replace(/<\/?\w+:[^>]*>/gi,'');content=content.replace(/<\\?\?xml[^>]*>/gi,'');content=this._cleanPaste(content);content=this._convertWordPasteList(content);content=content.replace(/<(\w[^>]*) (class|lang)=([^ |>]*)([^>]*)/gi,"<$1$4");content=content.replace(new RegExp('<(\\w[^>]*) style="([^"]*)"([^>]*)','gi'),"<$1$3");content=content.replace(new RegExp('<(\\w[^>]*) _viperlistst="([^"]*)"([^>]*)','gi'),"<$1 style=\"$2\"$3");content=this._convertDelNInsTags(content);return content;},_convertDelNInsTags:function(content)
{var tmp=document.createElement('div');dfx.setHtml(tmp,content);var delTags=dfx.getTag('del',tmp);dfx.remove(delTags);var insTags=dfx.getTag('ins',tmp);var ins=null;while(ins=insTags.shift()){while(ins.firstChild){dfx.insertBefore(ins,ins.firstChild);}
dfx.remove(ins);}
content=dfx.getHtml(tmp);return content;},_getListType:function(elem,listTypes)
{var elContent=dfx.getHtml(elem);var info=null;dfx.foreach(listTypes,function(k){dfx.foreach(listTypes[k],function(j){dfx.foreach(listTypes[k][j],function(m){if((new RegExp(listTypes[k][j][m])).test(elContent)===true){info={html:elContent.replace(new RegExp(listTypes[k][j][m]),''),listType:k,listStyle:j};return false;}});if(info!==null){return false;}});if(info!==null){return false;}});return info;},_convertWordPasteList:function(content)
{var div=document.createElement('div');var ul=null;var prevMargin=null;var indentLvl={};var li=null;var newList=true;var listTypes={ul:{circle:['^o(\s|&nbsp;)+'],disc:['^'+String.fromCharCode(183)+'(\\s|&nbsp;)+'],square:['^'+String.fromCharCode(167)+'(\\s|&nbsp;)+'],auto:['^'+String.fromCharCode(8226)+'(\\s|&nbsp;)+']},ol:{decimal:['^\\d+\\.(\s|&nbsp;)+'],'lower-roman':['^[ivxlcdm]+\\.(\\s|&nbsp;)+'],'upper-roman':['^[IVXLCDM]+\\.(\\s|&nbsp;)+'],'lower-alpha':['^[a-z]+\\.(\\s|&nbsp;)+'],'upper-alpha':['^[A-Z]+\\.(\\s|&nbsp;)+']}};dfx.setHtml(div,content);var pElems=dfx.getTag('p',div);var pln=pElems.length;for(var i=0;i<pln;i++){var pEl=pElems[i];var listTypeInfo=this._getListType(pEl,listTypes);if(listTypeInfo!==null){var marginLeft=parseInt(dfx.getStyle(pEl,'margin-left'));var listType=listTypeInfo.listType;var listStyle=listTypeInfo.listStyle;dfx.setHtml(pEl,listTypeInfo.html);if(!listType){listType='ol';}
if(newList===true){ul=document.createElement(listType);indentLvl={};dfx.attr(ul,'_viperlistst','list-style-type:'+listStyle);indentLvl[marginLeft]=ul;dfx.insertBefore(pEl,ul);}else{if(marginLeft!==prevMargin){if(dfx.isset(indentLvl[marginLeft])===true){ul=indentLvl[marginLeft];}else if(marginLeft>prevMargin){ul=document.createElement(listType);dfx.attr(ul,'_viperlistst','list-style-type:'+listStyle);li.appendChild(ul);indentLvl[marginLeft]=ul;}}}
li=this._createListItemFromElement(pEl);ul.appendChild(li);prevMargin=marginLeft;dfx.remove(pEl);newList=false;}else{newList=true;}}
content=dfx.getHtml(div);return content;},_createListItemFromElement:function(elem)
{var li=document.createElement('li');while(elem.firstChild){li.appendChild(elem.firstChild);}
return li;},_cleanPaste:function(content)
{content=content.replace(/<b(\s+|>)/g,"<strong$1");content=content.replace(/<\/b(\s+|>)/g,"</strong$1");content=content.replace(/<i(\s+|>)/g,"<em$1");content=content.replace(/<\/i(\s+|>)/g,"</em$1");return content;},_removeEditableAttrs:function(container)
{var editables=dfx.getClass('editable_attribute',container);var el=editables.length;for(var i=0;i<el;i++){this._moveChildren(editables[i]);dfx.remove(editables[i]);}},_moveChildren:function(cont)
{while(dfx.isset(cont.firstChild)===true){dfx.insertBefore(cont,cont.firstChild);}},_updateSelection:function()
{var range=this.viper.getCurrentRange();range.setStart(this._tmpNode,0);range.collapse(true);dfx.remove(this.pasteElement);this._tmpNode=null;}};dfx.noInclusionInherits('ViperCopyPastePlugin','ViperPlugin',true);function ViperCoreStylesPlugin(viper)
{ViperPlugin.call(this,viper);this.styleTags=['strong','em','u','sub','sup','strike'];this.buttons=['strong','emphasise','underline','subscript','superscript','strikethrough'];this.toolbarPlugin=null;this.activeStyles=[];this._caretUpdatedTimeout=null;this._onChangeAddStyle=null;}
ViperCoreStylesPlugin.prototype={handleKeyPress:function(e,type)
{if(type){return this.handleStyle(type);}},start:function()
{var name='CoreStylesKBS';var self=this;var ctrlName='CTRL';if(navigator.platform.toLowerCase().indexOf('mac')>=0){ctrlName='CMD';}
this.toolbarPlugin=ViperPluginManager.getPlugin('ViperToolbarPlugin');this.toolbarPlugin.addButton(name,'strong','Strong ('+ctrlName+' + B)',function(){self.handleStyle('strong');});this.toolbarPlugin.setButtonShortcut(this,'strong','CTRL+B','handleKeyPress','strong');this.toolbarPlugin.addButton(name,'emphasise','Emphasise ('+ctrlName+' + I)',function(){self.handleStyle('em');});this.toolbarPlugin.setButtonShortcut(this,'emphasise','CTRL+I','handleKeyPress','em');this.toolbarPlugin.addButton(name,'underline','Underline ('+ctrlName+' + U)',function(){self.handleStyle('u');});this.toolbarPlugin.setButtonShortcut(this,'underline','CTRL+U','handleKeyPress','u');this.toolbarPlugin.addButton(name,'remove-format','Remove Format',function(){self.removeFormat();});this.toolbarPlugin.addButton(name,'subscript','Subscript',function(){self.handleStyle('sub');});this.toolbarPlugin.addButton(name,'superscript','Superscript',function(){self.handleStyle('sup');});this.toolbarPlugin.addButton(name,'strikethrough','Strikethrough',function(){self.handleStyle('strike');});this.toolbarPlugin.addButton(name,'align-left','Left Justfy',function(){self.handleJustfy('left');});this.toolbarPlugin.addButton(name,'align-center','Center Justfy',function(){self.handleJustfy('center');});this.toolbarPlugin.addButton(name,'align-right','Right Justfy',function(){self.handleJustfy('right');});this.toolbarPlugin.addButton(name,'align-justify','Block Justfy',function(){self.handleJustfy('justify');});var tagNames={em:'Italic',strong:'Bold',u:'Underline',sub:'Subscript',sup:'Superscript',strike:'Strikethrough'};this.viper.registerCallback('ViperChangeTracker:modeChange','ViperCoreStylesPlugin',function(mode){var nodes=ViperChangeTracker.getCTNodes('formatChange');var copyAttr=['class','viperchangeid','time'];if(mode==='original'){dfx.foreach(nodes,function(i){var node=nodes[i];var span=Viper.document.createElement('span');dfx.foreach(copyAttr,function(j){var attrVal=dfx.attr(node,copyAttr[j]);if(dfx.isset(attrVal)===true){dfx.attr(span,copyAttr[j],attrVal);}});ViperChangeTracker.setCTData(span,'tagName',node.tagName.toLowerCase());while(node.firstChild){span.appendChild(node.firstChild);}
var changeid=dfx.attr(span,'viperchangeid');if(changeid){ViperChangeTracker.addNodeToChange(changeid,span,node);}
dfx.insertBefore(node,span);dfx.remove(node);});}else{dfx.foreach(nodes,function(i){var node=nodes[i];var origTag=ViperChangeTracker.getCTData(node,'tagName');if(!origTag){return;}
var span=Viper.document.createElement(origTag);dfx.foreach(copyAttr,function(j){var attrVal=dfx.attr(node,copyAttr[j]);if(dfx.isset(attrVal)===true){dfx.attr(span,copyAttr[j],attrVal);}});while(node.firstChild){span.appendChild(node.firstChild);}
var changeid=dfx.attr(span,'viperchangeid');if(changeid){ViperChangeTracker.addNodeToChange(changeid,span,node);}
dfx.insertBefore(node,span);dfx.remove(node);});}
var nodes=ViperChangeTracker.getCTNodes('alignmentChange');if(nodes){if(mode==='original'){dfx.foreach(nodes,function(i){var node=nodes[i];var align=ViperChangeTracker.getCTData(node,'text-align');if(!align){align='';}
ViperChangeTracker.setCTData(node,'fin-text-align',dfx.getStyle(node,'text-align'));dfx.setStyle(node,'text-align',align);});}else{dfx.foreach(nodes,function(i){var node=nodes[i];var align=ViperChangeTracker.getCTData(node,'fin-text-align');if(!align){align='';}
dfx.setStyle(node,'text-align',align);});}}
var nodes=ViperChangeTracker.getCTNodes('removedFormat');if(nodes){if(mode==='original'){dfx.foreach(nodes,function(i){var node=nodes[i];var origTag=ViperChangeTracker.getCTData(node,'tagName');if(!origTag){return;}
var span=Viper.document.createElement(origTag);ViperChangeTracker.setCTData(span,'formatRemoved',origTag);dfx.foreach(copyAttr,function(j){var attrVal=dfx.attr(node,copyAttr[j]);if(dfx.isset(attrVal)===true){dfx.attr(span,copyAttr[j],attrVal);}});while(node.firstChild){span.appendChild(node.firstChild);}
var changeid=dfx.attr(span,'viperchangeid');if(changeid){ViperChangeTracker.addNodeToChange(changeid,span,node);}
dfx.insertBefore(node,span);dfx.remove(node);});}else{dfx.foreach(nodes,function(i){var node=nodes[i];var origTag=ViperChangeTracker.getCTData(node,'formatRemoved');if(!origTag){return;}
var span=Viper.document.createElement('span');ViperChangeTracker.setCTData(span,'tagName',origTag);dfx.foreach(copyAttr,function(j){var attrVal=dfx.attr(node,copyAttr[j]);if(dfx.isset(attrVal)===true){dfx.attr(span,copyAttr[j],attrVal);}});while(node.firstChild){span.appendChild(node.firstChild);}
var changeid=dfx.attr(span,'viperchangeid');if(changeid){ViperChangeTracker.addNodeToChange(changeid,span,node);}
dfx.insertBefore(node,span);dfx.remove(node);});}}});ViperChangeTracker.addChangeType('formatChange','Formatted','format');ViperChangeTracker.addChangeType('alignmentChange','Formatted','format');ViperChangeTracker.addChangeType('removedFormat','Formatted','format');ViperChangeTracker.setDescriptionCallback('removedFormat',function(node){var changes=[];var desc='';var ctNodes=ViperChangeTracker.getCTNodes('removedFormat',node);ctNodes.unshift(node);dfx.foreach(ctNodes,function(i){if(dfx.isTag(ctNodes[i],'span')===true){var ctdata=ViperChangeTracker.getCTData(ctNodes[i],'tagName');if(tagNames[ctdata]){changes.push('Not '+tagNames[ctdata]);}}});desc+=changes.join(', ');return desc;});ViperChangeTracker.setDescriptionCallback('formatChange',function(node){var desc='';var changes=[];var ctNodes=ViperChangeTracker.getCTNodes('formatChange',node);ctNodes.unshift(node);dfx.foreach(ctNodes,function(i){var tagName=ctNodes[i].tagName.toLowerCase();if(tagNames[tagName]){changes.push(tagNames[tagName]);}else{tagName=ViperChangeTracker.getCTData(ctNodes[i],'tagName');if(tagNames[tagName]){changes.push(tagNames[tagName]);}}});desc+=changes.join(', ');return desc;});ViperChangeTracker.setDescriptionCallback('alignmentChange',function(node){var style='';if(ViperChangeTracker.getCurrentMode()==='original'){style=ViperChangeTracker.getCTData(node,'fin-text-align')||'';}else{style=dfx.getStyle(node,'text-align')||'';}
if(style){style='Aligned '+dfx.ucFirst(style);}
return style;});ViperChangeTracker.setApproveCallback('formatChange',function(clone,node){ViperChangeTracker.removeTrackChanges(node);});ViperChangeTracker.setRejectCallback('formatChange',function(clone,node){while(node.firstChild){dfx.insertBefore(node,node.firstChild);}
dfx.remove(node);});ViperChangeTracker.setRejectCallback('removedFormat',function(clone,node){var ctNodes=ViperChangeTracker.getCTNodes('removedFormat',node);ctNodes.unshift(node);var mode=ViperChangeTracker.getCurrentMode();dfx.foreach(ctNodes,function(i){var elem=ctNodes[i];if(!elem.parentNode){return;}
var ctdata='';if(mode==='original'){ctdata=ViperChangeTracker.getCTData(elem,'removedFormat');}else{ctdata=ViperChangeTracker.getCTData(elem,'tagName');}
if(ctdata){var newElem=Viper.document.createElement(ctdata);while(elem.firstChild){newElem.appendChild(elem.firstChild);}
dfx.insertBefore(elem,newElem);dfx.remove(elem);}});});ViperChangeTracker.setApproveCallback('removedFormat',function(clone,node){var ctNodes=ViperChangeTracker.getCTNodes('removedFormat',node);ctNodes.unshift(node);var mode=ViperChangeTracker.getCurrentMode();dfx.foreach(ctNodes,function(i){var elem=ctNodes[i];if(mode==='original'){var tag=ViperChangeTracker.getCTData(elem,'formatRemoved');if(tag){dfx.insertBefore(elem,elem.childNodes);dfx.remove(elem);}}else if(dfx.isTag(elem,'span')===true&&elem.getAttribute('ctdata')){dfx.insertBefore(elem,elem.childNodes);dfx.remove(elem);}});});ViperChangeTracker.setApproveCallback('alignmentChange',function(clone,node){if(ViperChangeTracker.getCurrentMode()==='original'){var finAlignment=ViperChangeTracker.getCTData(node,'fin-text-align')||'';dfx.setStyle(node,'text-align',finAlignment);}
ViperChangeTracker.removeTrackChanges(node,true);});ViperChangeTracker.setRejectCallback('alignmentChange',function(clone,node){var style=ViperChangeTracker.getCTData(node,'text-align');if(!style){style='left';}
dfx.setStyle(node,'text-align',style);ViperChangeTracker.removeTrackChanges(node,true);});},handleJustfy:function(type)
{var range=this.viper.getCurrentRange();var start=range.startContainer;var end=range.endContainer;var node=start;var next=null;var common=range.getCommonElement();common=this.getFirstBlockParent(common);if(dfx.isChildOf(common,this.viper.element)===true){this.setJustfyChangeTrackInfo(common);dfx.setStyle(common,'text-align',type);}else{var parent=null;var bookmark=null;var elemsBetween=[];if(range.collapsed!==true||dfx.isStubElement(start)===false){bookmark=this.viper.createBookmark();elemsBetween=dfx.getElementsBetween(bookmark.start,bookmark.end);}else{elemsBetween=dfx.getElementsBetween(start,end);elemsBetween.unshift(start);elemsBetween.push(end);}
while(node=elemsBetween.shift()){if(dfx.isBlockElement(node)===true){this.setJustfyChangeTrackInfo(node);dfx.setStyle(node,'text-align',type);parent=null;}else if(parent===null&&(parent=this.getFirstBlockParent(node))){this.setJustfyChangeTrackInfo(parent);dfx.setStyle(parent,'text-align',type);parent=null;}else{if(parent===null){parent=Viper.document.createElement('p');this.setJustfyChangeTrackInfo(parent);dfx.setStyle(parent,'text-align',type);dfx.insertBefore(node,parent);}
parent.appendChild(node);}
if(node===end){break;}}
if(bookmark!==null){this.viper.selectBookmark(bookmark);}}
this.viper.fireNodesChanged('ViperCoreStylesPlugin:justify');},setJustfyChangeTrackInfo:function(node)
{if(node&&ViperChangeTracker.isTrackingNode(node)===false){var style=dfx.getStyle(node,'text-align');if(style&&(style==='left'||style==='right'||style==='center'||style==='justify')){if(ViperChangeTracker.isTracking()===true){ViperChangeTracker.setCTData(node,'text-align',style);}}
ViperChangeTracker.addChange('alignmentChange',[node]);}},getFirstBlockParent:function(elem)
{if(dfx.isBlockElement(elem)===true){return elem;}
var parents=dfx.getParents(elem);var parent=null;var pln=parents.length;for(var i=0;i<pln;i++){parent=parents[i];if(parent===this.viper.element){return null;}
if(dfx.isBlockElement(parent)===true){return parent;}}},getAlignment:function(element)
{var parent=this.getFirstBlockParent(element);if(parent!==null){return dfx.getStyle(parent,'text-align');}},removeFormat:function()
{var range=this.viper.getCurrentRange().cloneRange();var keywordPlugin=ViperPluginManager.getPlugin('ViperKeywordPlugin');var keywordClass=keywordPlugin.keywordClass;var startNode=range.getStartNode();if(dfx.isChildOf(startNode,this.viper.element)===false){range.setStart(this.viper.element,0);}
var endNode=range.getEndNode();if(dfx.isChildOf(endNode,this.viper.element)===false){range.setEnd(this.viper.element,this.viper.element.childNodes.length);}
ViperSelection.addRange(range);var bookmark=this.viper.createBookmark();startNode=dfx.getFirstBlockParent(bookmark.start);if(dfx.isChildOf(startNode,this.viper.element)===false){startNode=bookmark.start;}
dfx.walk(startNode,function(elem){if(elem===bookmark.end){return false;}
if(elem!==bookmark.start){if(elem.nodeType===dfx.ELEMENT_NODE&&keywordPlugin.isKeyword(elem)!==true){dfx.removeAttr(elem,'style');dfx.removeAttr(elem,'class');}}});this.viper.selectBookmark(bookmark);var tags=this.styleTags.concat(['font']);var changeid=ViperChangeTracker.startBatchChange('removedFormat');var tln=tags.length;for(var i=0;i<tln;i++){this.viper.removeStyle(tags[i]);}
ViperChangeTracker.endBatchChange(changeid);this.caretUpdated();this.viper.fireNodesChanged('ViperCoreStylesPlugin:removeFormat');},nodeInserted:function(node,range)
{return this._wrapNodeWithActiveStyle(node,range);},mouseDown:function()
{this._onChangeAddStyle=null;},caretPositioned:function()
{this._onChangeAddStyle=null;},_wrapNodeWithActiveStyle:function(node,range)
{if(!node||!this._onChangeAddStyle||!range){return;}
var style=this._onChangeAddStyle;var nodes=this.viper.splitNodeAtRange(style,range,true);this._onChangeAddStyle=null;if(dfx.isTag(nodes.prevNode,style)===true||dfx.isTag(nodes.nextNode,style)===true){if(nodes.midNode===null){dfx.insertAfter(nodes.prevNode,node);}else{var tmpnode=nodes.midNode;while(tmpnode.firstChild){tmpnode=tmpnode.firstChild;}
tmpnode.appendChild(node);}
if(dfx.getNodeTextContent(nodes.nextNode).length===0){dfx.remove(nodes.nextNode);}
range.setStart(node,1);range.collapse(true);ViperSelection.addRange(range);}else{var styleTag=Viper.document.createElement(style);dfx.insertAfter(nodes.prevNode,styleTag);styleTag.appendChild(node);range.setStart(node,1);range.collapse(true);ViperSelection.addRange(range);}
return false;},handleStyle:function(style)
{var range=this.viper.getCurrentRange();var startNode=range.startContainer;var endNode=range.endContainer;if(range.collapsed===true){this._onChangeAddStyle=style;}else{if(dfx.getParents(startNode,style).length>0){if(dfx.getParents(endNode,style).length>0){var changeid=ViperChangeTracker.startBatchChange('removedFormat');this.viper.removeStyle(style);ViperChangeTracker.endBatchChange(changeid);dfx.removeEmptyNodes(this.viper.element);this.viper.fireNodesChanged('ViperCoreStylesPlugin:removeStyle');return true;}}
dfx.removeEmptyNodes(this.viper.element);this.applyTag(style);this.caretUpdated();}
this.viper.fireNodesChanged('ViperCoreStylesPlugin:applyStyle');this.viper.focus();return true;},getStyleTags:function()
{var range=this.viper.getCurrentRange();var tags=dfx.getParents(range.startContainer,this.styleTags.join(','));return tags;},applyTag:function(tag)
{ViperUndoManager.begin();this.viper.surroundContents(tag);ViperUndoManager.end();},selectionChanged:function()
{var range=this.viper.getCurrentRange();var startNode=range.startContainer;var endNode=range.endContainer;var boldFound=false;var emFound=false;startNode=startNode.parentNode;while(startNode.parentNode){if(startNode===document){break;}
switch(startNode.tagName.toLowerCase()){case'strong':this.toolbarPlugin.setButtonActive('bold');boldFound=true;break;case'em':this.toolbarPlugin.setButtonActive('italic');emFound=true;break;default:break;}
startNode=startNode.parentNode;}
if(!emFound){this.toolbarPlugin.setButtonInactive('italic');}
if(!boldFound){this.toolbarPlugin.setButtonInactive('bold');}},caretUpdated:function()
{var self=this;clearTimeout(this._caretUpdatedTimeout);this._caretUpdatedTimeout=setTimeout(function(){var tags=self.getStyleTags();var asln=self.activeStyles.length;for(var i=0;i<asln;i++){self.setStyleButtonState(self.activeStyles[i],'inactive');}
var tln=tags.length;for(var i=0;i<tln;i++){var tag=tags[i].tagName.toLowerCase();var index=self.styleTags.find(tag);if(index!==-1){self.setStyleButtonState(self.buttons[index],'active');}}
var range=self.viper.getCurrentRange();var style=self.getAlignment(range.startContainer);if(style){if(style==='start'){style='left';}
self.setStyleButtonState('align-'+style,'active');}},200);},setStyleButtonState:function(style,state)
{if(state==='active'){this.toolbarPlugin.setButtonActive(style);this.activeStyles.push(style);}else{this.toolbarPlugin.setButtonInactive(style);}}};dfx.noInclusionInherits('ViperCoreStylesPlugin','ViperPlugin',true);function ViperFormatPlugin(viper)
{ViperPlugin.call(this,viper);this.styleTags={h1:'Heading 1',h2:'Heading 2',h3:'Heading 3',h4:'Heading 4',h5:'Heading 5',h6:'Heading 6',p:'Paragraph',pre:'Preformatted',address:'Address'};this.toolbarPlugin=null;this.activeStyles=[];this._range=null;}
ViperFormatPlugin.prototype={start:function()
{var name='Format';var self=this;ViperChangeTracker.addChangeType('textFormatChange','Formatted','format');ViperChangeTracker.setDescriptionCallback('textFormatChange',function(node){var format=self._getFormat(node);return self.styleTags[format];});var menu=document.createElement('div');dfx.addClass(menu,'ViperFormatPlugin-menu');this.toolbarPlugin=ViperPluginManager.getPlugin('ViperToolbarPlugin');var subToolbarPlugin=ViperPluginManager.getPlugin('ViperSubToolbarPlugin');var button=this.toolbarPlugin.addButton(name,'format','Format',function(e){dfx.addEvent(document,'click.ViperFormatPlugin',function(){dfx.setStyle(menu,'display','none');self._range=null;dfx.removeEvent(document,'click.ViperFormatPlugin');});if(subToolbarPlugin.isActive()===true){dfx.setStyle(menu,'margin-top','30px');}else{dfx.setStyle(menu,'margin-top','0px');}
dfx.setStyle(menu,'display','block');self._range=self.viper.getCurrentRange();var currentFormat=self._getFormat(self._range.startContainer);if(currentFormat!==null){dfx.removeClass(dfx.getClass('ViperFormatPlugin-menu-item',menu),'active');dfx.addClass(dfx.getClass('ViperFormatPlugin-menu-'+currentFormat,menu)[0],'active');}
dfx.preventDefault(e);dfx.stopPropagation(e);return false;});dfx.setStyle(menu,'display','none');button.appendChild(menu);var shadow=document.createElement('div');menu.appendChild(shadow);dfx.addClass(shadow,'ViperFormatPlugin-menu-shadow');var fsize=24;for(var tag in this.styleTags){if(this.styleTags.hasOwnProperty(tag)===false){continue;}
var item=document.createElement('div');dfx.addClass(item,'ViperFormatPlugin-menu-item ViperFormatPlugin-menu-'+tag);menu.appendChild(item);dfx.setHtml(item,this.styleTags[tag]);dfx.setStyle(item,'font',fsize+'px arial');if(fsize>12){fsize-=2;}
(function(el,tagName){dfx.addEvent(el,'click',function(){self.handleFormat(tagName);});})(item,tag);}
dfx.hover(menu.childNodes,function(e){var target=dfx.getMouseEventTarget(e);dfx.addClass(target,'hover');},function(e){dfx.removeClass(menu.childNodes,'hover');});ViperChangeTracker.setApproveCallback('textFormatChange',function(clone,node){ViperChangeTracker.removeTrackChanges(node,true);});ViperChangeTracker.setRejectCallback('textFormatChange',function(clone,node){if(node.parentNode===self.viper.element){var oldTag=ViperChangeTracker.getCTData(node,'tagName');if(oldTag){oldTag=oldTag.toLowerCase();}else{oldTag='p';}
var elem=document.createElement(oldTag);while(node.firstChild){elem.appendChild(node.firstChild);}
dfx.insertBefore(node,elem);}else{while(node.firstChild){dfx.insertBefore(node,node.firstChild);}}
dfx.remove(node);});this.viper.registerCallback('ViperChangeTracker:modeChange','ViperFormatPlugin',function(mode){var nodes=ViperChangeTracker.getCTNodes('textFormatChange');var copyAttr=['class','viperchangeid','time'];if(mode==='original'){dfx.foreach(nodes,function(i){var node=nodes[i];var oldTag=ViperChangeTracker.getCTData(node,'tagName');if(oldTag){oldTag=oldTag.toLowerCase();}else{oldTag='p';}
var span=Viper.document.createElement(oldTag);dfx.foreach(copyAttr,function(j){var attrVal=dfx.attr(node,copyAttr[j]);if(dfx.isset(attrVal)===true){dfx.attr(span,copyAttr[j],attrVal);}});ViperChangeTracker.setCTData(span,'newTagName',node.tagName.toLowerCase());ViperChangeTracker.setCTData(span,'tagName',oldTag);while(node.firstChild){span.appendChild(node.firstChild);}
var changeid=dfx.attr(span,'viperchangeid');if(changeid){ViperChangeTracker.addNodeToChange(changeid,span,node);}
dfx.insertBefore(node,span);dfx.remove(node);});}else{dfx.foreach(nodes,function(i){var node=nodes[i];var oldTag=ViperChangeTracker.getCTData(node,'tagName');var origTag=ViperChangeTracker.getCTData(node,'newTagName');if(!origTag){return;}
var span=Viper.document.createElement(origTag);dfx.foreach(copyAttr,function(j){var attrVal=dfx.attr(node,copyAttr[j]);if(dfx.isset(attrVal)===true){dfx.attr(span,copyAttr[j],attrVal);}});ViperChangeTracker.setCTData(span,'tagName',oldTag);while(node.firstChild){span.appendChild(node.firstChild);}
var changeid=dfx.attr(span,'viperchangeid');if(changeid){ViperChangeTracker.addNodeToChange(changeid,span,node);}
dfx.insertBefore(node,span);dfx.remove(node);});}});},_addChangeTrackInfo:function(node)
{if(ViperChangeTracker.isTracking()===true){ViperChangeTracker.addChange('textFormatChange',[node]);}},handleFormat:function(type)
{this.viper.focus();var range=this.viper.getCurrentRange();if(this.viper.isChildOfElems(this._range.startContainer,[this._range.endContainer])===true){var child=range._getFirstSelectableChild(this._range.endContainer);range.setStart(child,0);}
range.setStart(this._range.startContainer,this._range.startOffset);range.setEnd(this._range.endContainer,this._range.endOffset);var startNode=range.getStartNode();if(dfx.isChildOf(startNode,this.viper.element)===false){range.setStart(this.viper.element,0);range.setEnd(this.viper.element,this.viper.element.childNodes.length);}
ViperSelection.addRange(range);var bookmark=this.viper.createBookmark();var elemsBetween=dfx.getElementsBetween(bookmark.start,bookmark.end);if(range.collapsed===true){elemsBetween.unshift(bookmark.start);}
var s=this.styleTags;s.div=1;var self=this;dfx.foreach(elemsBetween,function(i){var elem=elemsBetween[i];var tagName=dfx.getTagName(elem);if(s[tagName]){self._createNewNode(elem,type);}else{var textNodes=null;if(elem.nodeType===dfx.TEXT_NODE){textNodes=[elem];}else{textNodes=dfx.getTextNodes(elem);}
dfx.foreach(textNodes,function(k){var textNode=textNodes[k];var blockParent=self.getFirstBlockParent(textNode);if(blockParent===null){return;}
var t=dfx.getTagName(blockParent);if(s[t]){self._createNewNode(blockParent,type);}else if(type!==t){var newElem=document.createElement(type);self._addChangeTrackInfo(newElem);self._moveChildElements(blockParent,newElem);blockParent.appendChild(newElem);}});}});if(bookmark){this.viper.selectBookmark(bookmark);}
this.viper.fireNodesChanged('ViperFormatPlugin:format');},_createNewNode:function(node,type)
{var newElem=document.createElement(type);this._addChangeTrackInfo(newElem);ViperChangeTracker.setCTData(newElem,'tagName',node.tagName);this._moveChildElements(node,newElem);dfx.insertAfter(node,newElem);dfx.remove(node);return newElem;},_moveChildElements:function(source,dest)
{while(source.firstChild){dest.appendChild(source.firstChild);}},getFirstBlockParent:function(elem)
{if(dfx.isBlockElement(elem)===true){return elem;}
var parents=dfx.getParents(elem);var parent=null;var ln=parents.length;for(var i=0;i<ln;i++){parent=parents[i];if(parent===this.viper.element){return null;}
if(dfx.isBlockElement(parent)===true){return parent;}}},selectionChanged:function()
{var range=this.viper.getCurrentRange();var startNode=range.startContainer;var endNode=range.endContainer;var boldFound=false;var emFound=false;startNode=startNode.parentNode;this.toolbarPlugin.setButtonInactive('format');var tagName=this._getFormat(startNode);if(tagName!==null&&tagName!=='p'){this.toolbarPlugin.setButtonActive('format');}},_getFormat:function(startNode)
{while(startNode.parentNode){if(startNode===document){return null;}
if(startNode.tagName){var tagName=startNode.tagName.toLowerCase();if(this.styleTags[tagName]){return tagName;}}
startNode=startNode.parentNode;}
return null;}};dfx.noInclusionInherits('ViperFormatPlugin','ViperPlugin',true);function ViperImageGalleryPlugin(viper)
{ViperPlugin.call(this,viper);this.image=null;this.toolbarPlugin=null;this.imageBorder=null;this._movieEl=null;this._viperBoookmark=null;}
ViperImageGalleryPlugin.prototype={start:function()
{var self=this;if(Widget.CSS_MINIFIED===false&&typeof WidgetStore.getData('imageGalleryBackendCSSLoaded')==='undefined'){var data={EditingContents:true,action:'loadDesignCss',list:dfx.jsonEncode(['Systems/ImageGallery/ImageGallery.css'])};dfx.post(window.location.href,data,function(cssContents){dfx.addCssToStyle(dfx.jsonDecode(cssContents),'assetStyle');dfx.addCssToStyle(dfx.jsonDecode(cssContents).replace(/#EditingAsset/gi,'#EditingScreenModes'),'backendStyle');dfx.addCssToStyle(dfx.jsonDecode(cssContents).replace(/#EditingAsset/gi,'#EditEditingModeWidgetType-assetSettings'),'backendStyle');dfx.addCssToStyle(dfx.jsonDecode(cssContents).replace(/#EditingAsset/gi,'#ViperContentSharingDialog'),'backendStyle');WidgetStore.setData('imageGalleryBackendCSSLoaded',true);});}
this.toolbarPlugin=ViperPluginManager.getPlugin('ViperToolbarPlugin');this.toolbarPlugin.addButton('ImageGallery','imageGallery','Insert/Edit Image Gallery',function(){self.editImageGallery();});this.viper.registerCallback('clickedOutside','ViperImageGalleryPlugin',function(){self.removeMovieHandles();});dfx.includeScript(Widget.WEB_URL+'Systems/ImageGallery/ImageGallery.js',function(){self.includeWidgets(['Select','TextField'],null);});},editImageGallery:function()
{var self=this;self.inserteditImageGalleryDialog(self._movieEl);},inserteditImageGalleryDialog:function(elem)
{var self=this;if(elem===null){this.removeMovieHandles();this.bookmark=this.viper.createBookmark();}else{this.bookmark=elem;}
this.displayDisabledDiv(true);this.dialog=Widget.prototype.createWidget('ViperImageGalleryPluginDialog','ViperImageGalleryPlugin');this.dialog.setAssetSelectedEvent(function(selectedAssets){AssetManager.getAsset(selectedAssets[0],function(cached){var folderid=selectedAssets[0];var allowedRoot=['folder','projectFolder','fileConnection'];if(dfx.inArray(cached.type,allowedRoot)===false){folderid=WidgetStore.get('ViperImageGalleryPluginDialog').currentSelection;}
var url=null;var internal=self.dialog.optWidgets.internal;var galleryT=internal.type.getValue()||'normal';var width=internal.width.getValue()||'';var height=internal.height.getValue()||'';var heightL=internal.heightLight.getValue()||'small';var ops={galleryT:galleryT,galleryW:parseInt(width,10),galleryH:parseInt(height,10),galleryHL:heightL};self.insertKeyword(self.bookmark,folderid,ops);},true,{attributes:['name'],type:true,typeIcon:false,linking:[],urls:false});});this.dialog.create(function(){self.dialog.setClosedEvent(function(win){if(win===true){if(self._viperBoookmark){self.viper.selectBookmark(self._viperBoookmark);}else if(elem){var range=self.viper.getCurrentRange();range.setStart(elem,0);range.collapse(true);}
self.end();}
self._movieEl=null;});ViperPluginManager.setActivePlugin('ImageGallery');self.dialog.open(elem);});},insertKeyword:function(bookmark,assetid,options)
{var self=this;if(!assetid||!options.galleryW||!options.galleryH){return;}
if(options.galleryT==='lightbox'){var keyword='imageGallery~embedGallery-'+options.galleryW+'-'+options.galleryHL+':'+assetid;}else{var keyword='imageGallery~embedGallery-'+options.galleryW+'-'+options.galleryH+':'+assetid;}
var params={widget:'KeywordWidget',action:'getKeywordReplacement',keyword:keyword,mode:'htmlVersion'};dfx.get(window.location.href,params,function(c){if(self.bookmark.start){var parents=dfx.getParents(self.bookmark.start,'p',self.viper.element);if(parents.length>0){var split=self.viper.splitNodeAtBookmark('p',self.bookmark,true);self.bookmark=document.createElement('div');dfx.insertBefore(split.nextNode,self.bookmark);}}
var keywordPlugin=ViperPluginManager.getPlugin('ViperKeywordPlugin');if(keywordPlugin){keywordPlugin.insertKeyword('%'+keyword+'%',c,self.bookmark);if(self.bookmark&&dfx.isTag(self.bookmark.parentNode,'del')===true){dfx.remove(self.bookmark.parentNode);}}});},_calculateGallerySize:function(options)
{var smallThumb=(options.galleryH<=400);var imageDisplayWidth=(options.galleryW-20);var imageDisplayHeight=(options.galleryH-135);if(smallThumb===true){imageDisplayHeight+=30;}
var imageW=options.imageW;var imageH=options.imageH;options.nW=imageW;options.nH=imageH;if(imageW>imageDisplayWidth||imageH>imageDisplayHeight){var sizes=mig.Gallery.prototype._scaleDownImage.call(this,imageDisplayWidth,imageDisplayHeight,imageW,imageH);options.nW=sizes.nW;options.nH=sizes.nH;}
options.imageDisplayWidth=imageDisplayWidth;options.imageDisplayHeight=imageDisplayHeight;if(options.nH<imageDisplayHeight){options.marginTop=(Math.floor((imageDisplayHeight-options.nH)/2));}else{options.marginTop=0;}
return options;},_adjustGallerySize:function(elem,options,type)
{var smallThumb=false;if(options.galleryH<=400){smallThumb=true;}
var thumbImageHeight=75;var imageDisplayWidth=(options.galleryW-20);var imageDisplayHeight=(options.galleryH-135);if(smallThumb===true){thumbImageHeight=45;imageDisplayHeight+=30;}
if(type==='full'){dfx.setStyle(elem,'width',options.galleryW+'px');dfx.setStyle(elem,'height',options.galleryH+'px');var galleryImgDiv=dfx.getClass('galleryImage',elem)[0];dfx.setStyle(galleryImgDiv,'height',options.imageDisplayHeight+'px');var imgElem=dfx.getClass('imageContainer',elem)[0];imgElem.setAttribute('width',options.nW);imgElem.setAttribute('height',options.nH);dfx.setStyle(imgElem,'margin-top',options.marginTop+'px');}else if(type==='slider'){if(options.galleryH==='small'){smallThumb=true;}else if(options.galleryH==='big'){smallThumb=false;}}
var thumbs=dfx.getClass('thumbImage',elem);if(smallThumb===true){dfx.foreach(thumbs,function(idx){if(thumbs[idx].height===45){return false;}
var ntw=Math.ceil((thumbs[idx].width*45)/75);thumbs[idx].setAttribute('height',45);thumbs[idx].setAttribute('width',ntw);return true;});}else{dfx.foreach(thumbs,function(idx){if(thumbs[idx].height===75){return false;}
var ntw=Math.ceil((thumbs[idx].width*75)/45);thumbs[idx].setAttribute('height',75);thumbs[idx].setAttribute('width',ntw);return true;});}},end:function()
{ViperPluginManager.setActivePlugin(null);},isImageGallery:function(elem)
{if(!elem){var range=this.viper.getCurrentRange();if(range.startContainer.nodeType===dfx.ELEMENT_NODE){elem=range.startContainer.childNodes[range.startOffset];}else{return false;}}
if(elem.nodeType===dfx.ELEMENT_NODE){if(dfx.hasClass(elem,'imageGalleryEditMask')===true){return elem;}}
return false;},isPluginElement:function(element)
{if(element!==this.imageBorder&&dfx.isChildOf(element,this.imageBorder)===false){return false;}
return true;},keyDown:function(e)
{if(!e){return;}
if(this.viper.isBrowser('msie')===true){if(e.target&&dfx.hasClass(e.target,'galleryContainer')===true){this.removeMovieHandles();var ignoredKeys=[37,38,39,40];if(ignoredKeys.inArray(e.which)===true){if(e.which===37||e.which===39){var galleryElem=e.target.parentNode;if(e.which===37){var rangeSet=false;var node=galleryElem.previousSibling;while(node){if(node.nodeType===dfx.ELEMENT_NODE){var range=this.viper.getCurrentRange();var last=range._getLastSelectableChild(node);if(last){range.setStart(last,last.data.length);range.setEnd(last,last.data.length);ViperSelection.addRange(range);rangeSet=true;}
break;}
node=node.previousSibling;}
if(rangeSet===false){var p=document.createElement('p');dfx.setHtml(p,'&nbsp;');dfx.insertBefore(galleryElem,p);var range=this.viper.getCurrentRange();range.setStart(range._getFirstSelectableChild(p),0);range.setEnd(range._getFirstSelectableChild(p),0);ViperSelection.addRange(range);}}else{var rangeSet=false;var node=galleryElem.nextSibling;while(node){if(node.nodeType===dfx.ELEMENT_NODE){var range=this.viper.getCurrentRange();var first=range._getFirstSelectableChild(node);if(first){range.setStart(first,1);range.setEnd(first,1);ViperSelection.addRange(range);rangeSet=true;}
break;}
node=node.nextSibling;}
if(rangeSet===false){var p=document.createElement('p');dfx.setHtml(p,'&nbsp;');dfx.insertAfter(galleryElem,p);var range=this.viper.getCurrentRange();range.setStart(range._getFirstSelectableChild(p),0);range.setEnd(range._getFirstSelectableChild(p),0);ViperSelection.addRange(range);}}
dfx.preventDefault(e);return false;}
return false;}
if(e.target.parentNode&&e.target.parentNode.parentNode){e.target.parentNode.parentNode.removeChild(e.target.parentNode);}
return false;}}},mouseDown:function(e,elem)
{this.removeMovieHandles();if(!elem){elem=dfx.getMouseEventTarget(e);}
var keywordPlugin=ViperPluginManager.getPlugin('ViperKeywordPlugin');var isCSKeyword=false;if(keywordPlugin){isCSKeyword=keywordPlugin.isContentSharingKeyword(elem,false,true);}
if(this.isImageGallery(elem)!==false&&isCSKeyword===false){dfx.remove(dfx.getClass('galleryImageNext',elem.parentNode)[0]);dfx.remove(dfx.getClass('galleryImagePrev',elem.parentNode)[0]);dfx.remove(dfx.getClass('thumbSliderRight',elem.parentNode)[0]);dfx.remove(dfx.getClass('thumbSliderLeft',elem.parentNode)[0]);var spanTag=elem;while(spanTag.nodeName!=='SPAN'){spanTag=spanTag.parentNode;}
var range=this.viper.getCurrentRange();var start=document.createTextNode('');var end=document.createTextNode('');dfx.insertBefore(spanTag,start);dfx.insertAfter(spanTag,end);range.setStart(start,0);range.setEnd(end,0);if(this.showImageGalleryHandles(elem.parentNode)===false){if(e){dfx.preventDefault(e);}
return false;}}},showImageGalleryHandles:function(igWrap)
{if(this.imageBorder!==null){this.removeMovieHandles();}
if(igWrap===null){return;}
this._movieEl=igWrap.parentNode;var mvWrapBorder=document.createElement('div');mvWrapBorder.id='_viperImageGalleryWrapperBorder';this.imageBorder=mvWrapBorder;var width=dfx.getElementWidth(igWrap);var height=dfx.getElementHeight(igWrap);var coords=dfx.getElementCoords(igWrap);var currMode=WidgetStore.getData('activeMode');var currScreen=WidgetStore.getData('activeScreen')
var handleParentId='EditingAsset';if(currMode.id==='AdminScreenMode'&&currScreen.id==='contentsharing'){handleParentId='EditingScreenModes';}
var editingAsset=dfx.getId(handleParentId);if(editingAsset){if(handleParentId==='EditingAsset'){coords.y-=parseInt(dfx.getComputedStyle(editingAsset,'margin-top'));}}
if(handleParentId==='EditingAsset'){coords.y-=38;}
dfx.setStyle(mvWrapBorder,'position','absolute');dfx.setStyle(mvWrapBorder,'width',width+'px');dfx.setStyle(mvWrapBorder,'height',height+'px');dfx.setStyle(mvWrapBorder,'top',(coords.y-1)+'px');dfx.setStyle(mvWrapBorder,'left',(coords.x-1)+'px');dfx.setStyle(mvWrapBorder,'border','1px solid #000');var ghostMovie=igWrap.cloneNode(true);dfx.setStyle(ghostMovie,'opacity','0.7');dfx.setStyle(ghostMovie,'width','100%');dfx.setStyle(ghostMovie,'height','100%');mvWrapBorder.appendChild(ghostMovie);var info={};var self=this;var ops={knobHandles:true,handles:'all',minWidth:200,stop:function(e,info){var newWidth=parseInt(info.size.width);var newHeight=parseInt(info.size.height);var imgElem=dfx.getClass('imageContainer',igWrap)[0];if(dfx.isset(imgElem)===false){if(newHeight===70){newHeight='small';}else{newHeight='big';}
dfx.setStyle(igWrap,'width',newWidth+'px');var newSize={galleryW:newWidth,galleryH:newHeight};self._adjustGallerySize(igWrap,newSize,'slider');}else{var oriImgWidth=imgElem.getAttribute('oriWidth');var oriImgHeight=imgElem.getAttribute('oriHeight');var options={galleryW:newWidth,galleryH:newHeight,imageW:oriImgWidth,imageH:oriImgHeight};var newSize=self._calculateGallerySize(options);newSize.galleryW=newWidth;newSize.galleryH=newHeight;newSize.imageW=oriImgWidth;newSize.imageH=oriImgHeight;self._adjustGallerySize(igWrap,newSize,'full');}
self._updateKeyword(igWrap.parentNode,newWidth,newHeight,width,height);self.removeMovieHandles();self.viper.fireNodesChanged('ViperImageGalleryPlugin:insert');self.showImageGalleryHandles(igWrap);}};if((igWrap.id.length-6)===igWrap.id.search('-small')){ops.minHeight=70;ops.maxHeight=70;ops.handles='e,w';}else if((igWrap.id.length-4)===igWrap.id.search('-big')){ops.minHeight=100;ops.maxHeight=100;ops.handles='e,w';}else{ops.minHeight=200;}
dfxjQuery(mvWrapBorder).resizable(ops);editingAsset.appendChild(mvWrapBorder);dfx.addEvent(document,'click.ViperMoviePluginGh',function(e){var target=dfx.getMouseEventTarget(e);if(target!==igWrap&&target!==mvWrapBorder&&dfx.isChildOf(target,mvWrapBorder)===false){dfx.removeEvent(document,'click.ViperMoviePluginGh');self.removeMovieHandles();}});return false;},removeMovieHandles:function()
{if(this.imageBorder){try{dfx.remove(this.imageBorder);this.imageBorder=null;}catch(e){}
var elem=dfx.getId('_viperImageGalleryWrapperBorder');if(elem&&elem.parentNode){elem.parentNode.removeChild(elem);}}},caretUpdated:function()
{this.removeMovieHandles();},handleKeyPress:function()
{if(this.imageBorder!==null){this.removeMovieHandles();}},_updateKeyword:function(keywordEl,nwidth,nheight,owitdh,oheight)
{if(nheight==='small'||nheight==='big'){var keyword=dfx.attr(keywordEl,'keyword');keyword=keyword.replace(/-\d+-(small|big)/,'-'+nwidth+'-'+nheight);dfx.attr(keywordEl,'keyword',keyword);dfx.attr(keywordEl,'title','Keyword:'+keyword);}else{var keyword=dfx.attr(keywordEl,'keyword');keyword=keyword.replace(/-\d+-\d+/,'-'+nwidth+'-'+nheight);dfx.attr(keywordEl,'keyword',keyword);dfx.attr(keywordEl,'title','Keyword:'+keyword);}}};dfx.noInclusionInherits('ViperImageGalleryPlugin','ViperPlugin',true);function ViperImageGalleryPluginWidgetType(id)
{Widget.call(this,id);this.name='editingImageGalleryEditor';this.assetPicker=null;this.optWidgets={'internal':{}};this.optionsCont=null;this.internalImageGalleryEl=null;this.closedEvent=null;this.assetSelectedEvent=null;this.optionsDiv=null;this.currentSelection=null;}
ViperImageGalleryPluginWidgetType.prototype={create:function(callback)
{this.init(callback);},init:function(callback)
{var self=this;this.assetPicker=WidgetStore.get('EditingAssetPicker');this.assetPicker.setScreen(this.name);this.assetPicker.setView(this.name,'thumbs');this.assetPicker.setTitle('Insert Image Gallery');this.assetPicker.setSubTitle('Select the folder that contains the image for the gallery');this.assetPicker.setButtonTitle('Insert Image Gallery');this.assetPicker.addProjectFolderWhiteList(this.name,'Images');this.assetPicker.setHideSite(this.name);this.assetPicker.setUniqueSelect(true);this.assetPicker.setClass(this.name,this.getClass()+'-dialog');this.assetPicker.setModalSize(710,370);this.assetPicker.addItemClickedEvent(function(itemid,type,e){self.setSelectedItemValues(itemid);},true);this.assetPicker.setHideTopLevel(this.name);this.createOptionsContainer(function(el){self.assetPicker.setFooterContent(el);callback.call(self);});this.assetPicker.addAssetsSelectedAction(this.assetSelectedEvent,true);},getValuesFromElem:function(elem)
{var values={};var keyword=dfx.attr(elem,'keyword');if(keyword){var parts=keyword.match(/-(\d+)-(\d+):(\d+)/);if(parts===null){parts=keyword.match(/-(\d+)-(small|big):(\d+)/);if(parts===null){}else{values.width=parts[1];values.height=parts[2];values.assetid=parts[3];}}else if(parts.length===4){values.width=parts[1];values.height=parts[2];values.assetid=parts[3];}}
return values;},open:function(elem)
{var self=this;if(elem){var values=self.getValuesFromElem(elem);AssetManager.getAsset(values.assetid,function(asset){if(asset){self.setValues(asset,values);var c=self.getClass();var optionsDiv=dfx.getClass(c+'-imageInfoCont',elem)[0];dfx.showElement(optionsDiv);if(asset.hasOwnProperty('id')===true){AssetManager.getAssetAutoscrollPath(asset.id,function(lineage){self.assetPicker.setAutoScrollLineage(lineage,self.name);self.assetPicker.init(self.name,function(){self.assetPicker.dialog.addOnCloseCallback(self.closedEvent);self.assetPicker.showFooter('175px');self.assetPicker.dialog.open();});});}}},true,{attributes:['name'],type:true,typeIcon:false,linking:[],urls:false});return;}else{var imageFolderid=null;dfx.foreach(self.assetPicker.projectFolders,function(key){if(key==='Images'){imageFolderid=self.assetPicker.projectFolders[key];return false;}
return true;});var asset={id:imageFolderid,name:'Images'};var values={width:580,height:523};self.setValues(asset,values);}
this.assetPicker.setAutoScrollLineage(null,this.name);this.assetPicker.init(this.name,function(){self.assetPicker.dialog.addOnCloseCallback(self.closedEvent);self.assetPicker.showFooter('175px');self.assetPicker.dialog.open();});},setSelectedItemValues:function(itemid)
{var self=this;AssetManager.getAsset(itemid,function(asset){if(dfx.isset(asset)===true){var allowedRoot=['folder','projectFolder','fileConnection'];if(allowedRoot.indexOf(asset.type)!==-1){dfx.showElement(self.optionsDiv);self.setValues(asset);}}},true,{attributes:['name'],type:true,typeIcon:false,linking:[],urls:false});},setValues:function(asset,values)
{var c=this.getClass();var name=dfx.getClass(c+'-assetInfo-value',this.internalImageGalleryEl)[0];var assetNameHTML=asset.name;assetNameHTML+='&nbsp;<span class="AssetPickerDialog-currentSelectionTitle-assetid">[#';assetNameHTML+=asset.id+']</span>';dfx.setHtml(name,assetNameHTML);if(dfx.isset(values)===true){var heightOutt=dfx.getClass(c+'-height',this.internalImageGalleryEl)[0];var lightHeightOutt=dfx.getClass(c+'-heightLightbox',this.internalImageGalleryEl)[0];if(values.height==='small'||values.height==='big'){WidgetStore.get(this.id+'-width').setValue(values.width);WidgetStore.get(this.id+'-heightLightbox').setValue(values.height,true);WidgetStore.get(this.id+'-type').setValue('lightbox',true);dfx.showElement(lightHeightOutt);dfx.hideElement(heightOutt);}else{WidgetStore.get(this.id+'-width').setValue(values.width);WidgetStore.get(this.id+'-height').setValue(values.height);dfx.showElement(heightOutt);dfx.hideElement(lightHeightOutt);}
var optionsDiv=dfx.getClass(c+'-imageInfoCont',this.internalImageGalleryEl)[0];dfx.showElement(optionsDiv);this.currentSelection=asset.id;}},setAssetSelectedEvent:function(fn)
{this.assetSelectedEvent=fn;},setClosedEvent:function(fn)
{this.closedEvent=fn;},createOptionsContainer:function(callback)
{var c=this.getClass()+'-opts';var container=document.createElement('div');dfx.addClass(container,c);this.optionsCont=container;var self=this;this.includeWidget('TextField',function(){self._createTabs(function(internal){self.internalImageGalleryEl=container;container.appendChild(internal);callback.call(self,container);});});},_createTabs:function(callback)
{var self=this;this._createInternalTab(function(internal){callback.call(this,internal);});},_createInternalTab:function(callback)
{var main=document.createElement('div');var c=this.getClass();dfx.addClass(main,c+'-settings');var content='<div class="'+c+'-imageInfoCont">';content+='<div class="'+c+'-assetInfo">';content+='<label class="'+c+'-label">Folder</label>';content+='<div class="'+c+'-assetInfo-value"></div>';content+='</div>';content+='<div class="'+c+'-type">';content+='<label class="'+c+'-label">Type</label>';content+='<div class="'+c+'-type-text"></div>';content+='<div class="'+c+'-type-value"></div>';content+='</div>';content+='<div class="'+c+'-width">';content+='<label class="'+c+'-label">Width</label>';content+='<div class="'+c+'-width-text"></div>';content+='<div class="'+c+'-width-value"></div>';content+='</div>';content+='<div class="'+c+'-height">';content+='<label class="'+c+'-label">Height</label>';content+='<div class="'+c+'-height-text"></div>';content+='<div class="'+c+'-height-value"></div>';content+='</div>';content+='<div class="'+c+'-heightLightbox">';content+='<label class="'+c+'-label">Height</label>';content+='<div class="'+c+'-heightLightbox-text"></div>';content+='<div class="'+c+'-heightLightbox-value"></div>';content+='</div>';content+='</div>';dfx.setHtml(main,content);this.optionsDiv=dfx.getClass(c+'-imageInfoCont',main)[0];var widthCont=dfx.getClass(c+'-width-value',main)[0];var heightOutt=dfx.getClass(c+'-height',main)[0];var heightCont=dfx.getClass(c+'-height-value',main)[0];var lightHeightOutt=dfx.getClass(c+'-heightLightbox',main)[0];var lightHeightCont=dfx.getClass(c+'-heightLightbox-value',main)[0];var typeCont=dfx.getClass(c+'-type-value',main)[0];var self=this;var width=self.createWidget(self.id+'-width','TextField');var height=self.createWidget(self.id+'-height','TextField');var lightHeight=self.createWidget(self.id+'-heightLightbox','Select');lightHeight.addItems({small:'Small',big:'Big'});var gType=self.createWidget(self.id+'-type','Select');gType.addItems({normal:'Normal',lightbox:'Light Box'});self.optWidgets.internal.width=width;self.optWidgets.internal.height=height;self.optWidgets.internal.heightLight=lightHeight;self.optWidgets.internal.type=gType
width.create(function(widthEl){width.setValue('580');widthCont.appendChild(widthEl);});height.create(function(heightEl){height.setValue('523');heightCont.appendChild(heightEl);});lightHeight.create(function(lHeightEl){lightHeightCont.appendChild(lHeightEl);dfx.hideElement(lightHeightOutt);});gType.create(function(typeEl){typeCont.appendChild(typeEl);gType.setSelectedEventValueType('value');gType.addItemSelectedEvent(function(val){if(val==='lightbox'){dfx.showElement(lightHeightOutt);dfx.hideElement(heightOutt);}else if(val==='normal'){dfx.showElement(heightOutt);dfx.hideElement(lightHeightOutt);}});});callback.call(this,main);},_setPreviewMovie:function(cont,url,callback)
{if(url.length===0){callback.call(this,false,0,0);}
var self=this;this._getMovie(url,function(image){var w,h=0;if(image!==false){w=image.width;h=image.height;image=self._resizeMovie(image);}
dfx.empty(cont);if(image!==false){cont.appendChild(image);}else{}
if(dfx.isFn(callback)===true){callback.call(this,image,w,h);}});},_getMovie:function(url,callback)
{var img=new Image();img.onload=function(){callback.call(this,img);};img.onerror=function(){callback.call(this,false);};img.src=url;},_resizeMovie:function(img)
{var h=img.height;var w=img.width;if(h>w){w=(105/(h/w));dfx.attr(img,'height','105');dfx.attr(img,'width',w);}else{h=(150/(w/h));dfx.attr(img,'height',h);dfx.attr(img,'width','150');}
return img;},_setOptCont:function(opt,cont)
{var c=this.getClass()+'-opts';dfx.getClass(c+'-'+opt,this.optionsCont)[0].appendChild(cont);},getClass:function()
{return'ViperImageGalleryPlugin';}};dfx.inherits('ViperImageGalleryPlugin','Widget');function ViperImagePlugin(viper)
{ViperPlugin.call(this,viper);this.image=null;this.toolbarPlugin=null;this.imageBorder=null;this.subToolbar=null;this.imageToolbar=null;this._dragData=null;this._viperBoookmark=null;}
ViperImagePlugin.prototype={start:function()
{var self=this;this.toolbarPlugin=ViperPluginManager.getPlugin('ViperToolbarPlugin');this.toolbarPlugin.addButton('Image','image','Insert/Edit Image',function(){self.editImage();});this.viper.registerCallback('clickedOutside','ViperImagePlugin',function(){self.removeImageHandles();});this.viper.registerCallback('getHtml','ViperImagePlugin',function(data){if(data.element){self.normaliseImageTags(data.element);}});ViperPluginManager.addKeyPressListener('all_keys',this,this.handleKeyPress);ViperChangeTracker.addChangeType('insertImage','Inserted','insert');ViperChangeTracker.addChangeType('removedImage','Deleted','remove');ViperChangeTracker.setNodeTypeVisibility('removedImage',false);ViperChangeTracker.setDescriptionCallback('insertImage',function(node){var desc='';var img=null;if(dfx.isTag(node,'img')===true){img=node;}else{img=dfx.getTag('img',node)[0];}
if(img){desc=img.cloneNode(false);dfx.setStyle(desc,'width','100%');dfx.setStyle(desc,'height','100%');}
return desc;});ViperChangeTracker.setApproveCallback('insertImage',function(clone,node){if(dfx.isTag(node,'img')===true){ViperChangeTracker.removeTrackChanges(node);}else{while(node.firstChild){dfx.insertBefore(node,node.firstChild);}
dfx.remove(node);}});ViperChangeTracker.setRejectCallback('insertImage',function(clone,node){dfx.remove(node);});ViperChangeTracker.setDescriptionCallback('removedImage',function(node){var desc='';var img=null;if(dfx.isTag(node,'img')===true){img=node;}else{img=dfx.getTag('img',node)[0];}
if(img){desc=img.cloneNode(false);dfx.setStyle(desc,'width','100%');dfx.setStyle(desc,'height','100%');}
return desc;});ViperChangeTracker.setApproveCallback('removedImage',function(clone,node){var parent=node.parentNode;dfx.remove(node);if(parent&&parent.childNodes.length===0){dfx.remove(parent);}});ViperChangeTracker.setRejectCallback('removedImage',function(clone,node){while(node.firstChild){dfx.insertBefore(node,node.firstChild);}
var parent=node.parentNode;dfx.remove(node);if(parent&&parent.childNodes.length===0){dfx.remove(parent);}});},normaliseImageTags:function(parent)
{var imgs=dfx.getTag('img',parent);if(!imgs){return;}
var keywordPlugin=ViperPluginManager.getPlugin('ViperKeywordPlugin');if(keywordPlugin){dfx.foreach(imgs,function(key){var img=imgs[key];keywordPlugin.convertKeywordAttribute(img);});}},handleKeyPress:function(e)
{if(ViperChangeTracker.isTracking()===true){var range=this.viper.getCurrentRange();var startNode=range.getStartNode();if(dfx.isTag(startNode,'img')===true){return this._removeImage(startNode);}}
if(this.imageBorder!==null){this.removeImageHandles();}},_removeImage:function(img)
{var del=document.createElement('del');var insNode=ViperChangeTracker.getParentCTNode(img,'insertImage');if(insNode){dfx.remove(insNode);return false;}else{var del=document.createElement('del');dfx.insertBefore(img,del);del.appendChild(img);ViperChangeTracker.addChange('removedImage',[del]);if(this.imageBorder!==null){this.removeImageHandles();}
this.viper.fireNodesChanged('ViperImagePlugin:removeImage');this.viper.focus();return true;}},editImage:function()
{var elem=this.isImage();this.insertImageDialog(elem);},insertImageDialog:function(elem)
{if(elem===false){this.removeImageHandles();this._viperBoookmark=this.viper.createBookmark();}else{this._viperBoookmark=null;}
var self=this;this.displayDisabledDiv(true);this.dialog=Widget.prototype.createWidget('ViperImagePluginDialog','ViperImagePlugin');this.dialog.create(function(){self.dialog.setClickEvent(function(src,alt,title,width,height,keywords,selElem){if(src===null){if(self._viperBoookmark){self.viper.selectBookmark(self._viperBoookmark);}
self.end();}else{self.insertImage(src,alt,title,width,height,keywords,selElem);}});self.dialog.setClosedEvent(function(win){if(win===true){if(self._viperBoookmark){self.viper.selectBookmark(self._viperBoookmark);}else if(elem){var range=self.viper.getCurrentRange();range.setStart(elem,0);range.collapse(true);}
self.end();}});ViperPluginManager.setActivePlugin('Image');self.dialog.open(elem);});},insertImage:function(src,alt,title,width,height,keywords,elem)
{if(this._viperBoookmark&&!elem){this.viper.selectBookmark(this._viperBoookmark);}
if(elem){width=elem.getAttribute('width');height=elem.getAttribute('height');}
var img=null;if(elem){img=elem.cloneNode(false);}else{img=document.createElement('img');}
img.setAttribute('alt',alt);img.setAttribute('title',title);img.setAttribute('src',src);img.setAttribute('width',width);img.setAttribute('height',height);if(keywords){img.setAttribute('keywords',dfx.jsonEncode(keywords));}
if(elem){this.removeImageHandles();if(ViperChangeTracker.isTracking()===true&&!ViperChangeTracker.getParentCTNode(elem,'insertImage')){dfx.insertBefore(elem,img);this._removeImage(elem);ViperChangeTracker.addChange('insertImage',[img]);}else{dfx.insertBefore(elem,img);dfx.remove(elem);}
this.showImageHandles(img);}else{ViperChangeTracker.addChange('insertImage',[img]);this.viper.insertNodeAtCaret(img);}
this.viper.fireNodesChanged('ViperImagePlugin:insert');this.viper.focus();this.end();},end:function()
{ViperPluginManager.setActivePlugin(null);},isImage:function(elem)
{if(!elem){var range=this.viper.getCurrentRange();if(range.startContainer.nodeType===dfx.ELEMENT_NODE){elem=range.startContainer.childNodes[range.startOffset];}else{return false;}}
if(elem.nodeType===dfx.ELEMENT_NODE){if(elem.tagName.toLowerCase()==='img'&&!dfx.attr(elem,'noSelect')){return elem;}}
return false;},isPluginElement:function(element)
{if(element!==this.imageBorder&&dfx.isChildOf(element,this.imageBorder)===false){return false;}
return true;},mouseDown:function(e,elem)
{if(this.viper.isBrowser('msie')===true){var rangeObj=Viper.document.selection.createRange();if(rangeObj&&rangeObj.remove){rangeObj.remove(0);rangeObj.select();}
return;}
if(!elem){elem=dfx.getMouseEventTarget(e);}
var isCSKeyword=false;var keywordPlugin=ViperPluginManager.getPlugin('ViperKeywordPlugin');if(keywordPlugin){isCSKeyword=keywordPlugin.isKeyword(elem,false,false);if(isCSKeyword!==false){if(e){dfx.preventDefault(e);}
return false;}}
if(this.isImage(elem)!==false&&dfx.isChildOf(elem,this.viper.element)===true){var range=this.viper.getCurrentRange();range.selectNode(elem);ViperSelection.addRange(range);if(this.showImageHandles(elem)===false){if(e){dfx.preventDefault(e);}
return false;}}else if(dfx.isChildOf(elem,this.imageBorder)){return true;}else if(dfx.isChildOf(elem,dfx.getId('subToolbar-ImageToolbar'))===true){return false;}else{this.removeImageHandles();}},dragStart:function(e)
{if(this._dragData===null){return;}
this.removeImageHandles();},dragDrop:function(e)
{if(this._dragData===null){return;}
if(!e.target||!e.target.children||e.target.children.length<=0){return;}
var newImage=e.target.children[0];if(dfx.isTag(newImage,'img')===false){dfx.preventDefault(e);e.preventDefault();e.originalEvent.preventDefault();return;}
var dataTransfer=e.originalEvent.dataTransfer;if(!dataTransfer){return;}
var data=dataTransfer.getData('text/html');if(!data){return;}
this.removeImageHandles();var imgElem=this._dragData.image;dfx.insertBefore(newImage,imgElem);dfx.remove(newImage);dfx.preventDefault(e);e.preventDefault();e.originalEvent.preventDefault();return false;},clicked:function(e)
{if(this.viper.isBrowser('msie')!==true){return;}
var elem=dfx.getMouseEventTarget(e);var isCSKeyword=false;var keywordPlugin=ViperPluginManager.getPlugin('ViperKeywordPlugin');if(keywordPlugin){isCSKeyword=keywordPlugin.isContentSharingKeyword(elem,false,true)}
if(isCSKeyword===false&&this.isImage(elem)!==false&&dfx.isChildOf(elem,this.viper.element)===true){var rangeObj=Viper.document.selection.createRange();if(rangeObj&&rangeObj.remove){rangeObj.remove(0);rangeObj.select();}
if(this.showImageHandles(elem)===false){var range=this.viper.getCurrentRange();range.selectNode(elem);ViperSelection.addRange(range);if(e){dfx.preventDefault(e);}
return false;}}else if(dfx.isChildOf(elem,this.imageBorder)){return true;}else if(dfx.isChildOf(elem,dfx.getId('subToolbar-ImageToolbar'))===true){return false;}else{this.removeImageHandles();}},_adjustGhostImage:function(original,ghost)
{var width=dfx.getElementWidth(original);var height=dfx.getElementHeight(original);var coords=dfx.getElementCoords(original);var borders={left:0,right:0,top:0,bottom:0};dfx.foreach(borders,function(type){var border=parseInt(dfx.getComputedStyle(original,'border-'+type+'-width'));if(isNaN(border)===true){border=0;}
borders[type]=border;});width-=(borders.left+borders.right);height-=(borders.top+borders.bottom);coords.y+=borders.top;coords.x+=borders.left;dfx.setStyle(ghost,'width',width+'px');dfx.setStyle(ghost,'height',height+'px');dfx.setStyle(ghost,'top',(coords.y-1)+'px');dfx.setStyle(ghost,'left',(coords.x-1)+'px');},showImageHandles:function(img)
{if(this.imageBorder!==null){this.removeImageHandles();}
this.showImageToolbar(img);var imgBorder=document.createElement('div');this.imageBorder=imgBorder;this._adjustGhostImage(img,imgBorder);dfx.setStyle(imgBorder,'position','absolute');dfx.setStyle(imgBorder,'border','1px solid #000');var ghostImage=img.cloneNode(true);dfx.setStyle(ghostImage,'opacity','0.7');dfx.setStyle(ghostImage,'width','100%');dfx.setStyle(ghostImage,'height','100%');imgBorder.appendChild(ghostImage);dfx.addEvent(imgBorder,'click',function(){self.viper.focus();self.showImageHandles(img);});var info={};var self=this;dfxjQuery(imgBorder).resizable({knobHandles:true,handles:'all',stop:function(e,info){var newWidth=parseInt(info.size.width);var newHeight=parseInt(info.size.height);var keywords=img.getAttribute('keywords');img.setAttribute('width',newWidth);img.setAttribute('height',newHeight);self.removeImageHandles();self.viper.fireNodesChanged('ViperImagePlugin:resize');self.showImageHandles(img);}});document.body.appendChild(imgBorder);this._dragData={image:img,border:this.imageBorder};return false;},removeImageHandles:function()
{if(this.imageBorder!==null){dfxjQuery(this.imageBorder).resizable('destroy');dfx.remove(this.imageBorder);this.imageBorder=null;}
if(this.subToolbar){this.subToolbar.hideToolbar('ImageToolbar');}},showImageToolbar:function(img)
{if(!this.subToolbar){var self=this;this.setupImageToolbar(function(){self.showImageToolbar(img);});return;}
this.image=img;var url=dfx.attr(img,'src');if(url){var name='';name=(url.split('/')).pop();dfx.setHtml(dfx.getClass('ViperImageToolbar-left',this.imageToolbar)[0],dfx.ellipsize(name,30));var dim=dfx.getElementDimensions(img);dfx.setHtml(dfx.getTag('strong',this.imageToolbar),dim.width+'x'+dim.height);}
this.subToolbar.showToolbar('ImageToolbar');},setupImageToolbar:function(callback)
{var subToolbarPlugin=ViperPluginManager.getPlugin('ViperSubToolbarPlugin');if(!subToolbarPlugin){return;}
var toolbar=subToolbarPlugin.createToolBar('ImageToolbar');this.imageToolbar=toolbar;var imgTypeIconURL=AssetManager.getAssetTypeIconUrl('image','small');var c='ViperImageToolbar';var contents='<div class="'+c+'-left" style="background-image:url('+imgTypeIconURL+')">zombie.png</div>';contents+='<div class="'+c+'-right">';contents+='<div class="'+c+'-right-dim">Dimensions: <strong>300x238</strong></div>';contents+='<div class="'+c+'-right-btns"></div>';contents+='</div>';dfx.setHtml(toolbar,contents);var self=this;this.includeWidget('Button',function(){var resetDimensions=self.createWidget(c+'-resetDimensions','Button');resetDimensions.setName('Reset Dimensions');resetDimensions.setButtonIconClassName(c+'-switch');resetDimensions.create(function(el){(dfx.getClass(c+'-right-btns',toolbar)[0]).appendChild(el);});resetDimensions.addClickEvent(function(){self.resetImageDimensions();});var changeImage=self.createWidget(c+'-changeImage','Button','ButtonWidgetType-black');changeImage.setName('Change Image');changeImage.create(function(el){(dfx.getClass(c+'-right-btns',toolbar)[0]).appendChild(el);});changeImage.addClickEvent(function(){if(self.image){self.insertImageDialog(self.image);}});self.subToolbar=subToolbarPlugin;callback.call(self,subToolbarPlugin);return;});},resetImageDimensions:function()
{if(this.image){dfx.removeAttr(this.image,'width');dfx.removeAttr(this.image,'height');this.viper.fireNodesChanged('ViperImagePlugin:resetDim');this.mouseDown(null,this.image);}},caretUpdated:function()
{this.removeImageHandles();}};dfx.noInclusionInherits('ViperImagePlugin','ViperPlugin',true);function ViperImagePluginWidgetType(id)
{Widget.call(this,id);this.name='editingImageEditor';this.assetPicker=null;this.optWidgets={internal:{},external:{}};this.optionsCont=null;this.internal=null;this.external=null;this.tabPane=null;this.closedEvent=null;this.selectedElem=null;this.selectedElemid=null;this.selectedAsset=null;this._externalPreview=null;this._skinURL=WidgetStore.get('viper').getStylesURL()+'/Plugins/ViperImagePlugin';}
ViperImagePluginWidgetType.prototype={create:function(callback)
{this.init(callback);},init:function(callback)
{var self=this;this.includeWidgets(['TabPane','ModalDialog','AssetPickerDialog'],function(){var assetPicker=self.createWidget('InserImageAssetPicker','AssetPickerDialog');self.assetPicker=assetPicker;assetPicker.noDialog=true;assetPicker.setScreen(self.name);assetPicker.setView(self.name,'thumbs');assetPicker.setButtonTitle('Insert Image');assetPicker.addProjectFolderWhiteList(self.name,'Images');assetPicker.setHideSite(self.name);assetPicker.setUniqueSelect(true);assetPicker.setHideTopLevel(self.name);assetPicker.addSelectionChangedAction(function(selectedAsset){if(selectedAsset){self.setSelectedItemValues(selectedAsset.id);}},true);assetPicker.init(self.name,function(contentEl){var externalTab=document.createElement('div');var tabs={'Internal Images':contentEl,'External Images':externalTab};var tabPane=self.createWidget(self.id+'-tabPane','TabPane','3',tabs);self.tabPane=tabPane;tabPane.create(function(tabPaneElem){var dialog=self.createWidget('InserImagePluginDialog','ModalDialog');dialog.setContent(tabPaneElem);dialog.setTitle('Insert Image');dialog.setSubTitle('Select the image you want to insert',true);dialog.setSize('710px','370px');assetPicker.setDialog(dialog);dialog.create(function(el){assetPicker.addDialogEvents(dialog);var listCont=dfx.getId(assetPicker.id+'-content');dialog.dialogResized=function(width,height){dfx.setStyle(listCont,'height',(parseInt(height,10)-87)+'px');};var currHeight=dfx.getStyle(dialog.containers.contWrapper,'height');dfx.setStyle(listCont,'height',(parseInt(currHeight.substr(0,(currHeight.length-2)),10)-87)+'px');assetPicker.getAsset(assetPicker.projectFoldersFiltered[0].id,function(asset){assetPicker._updateCurrentSelection(asset);var footer=document.createElement('div');dfx.addClass(footer,self.getClass()+'-dialog-footer internal');tabPane.addOnChangeHandler(function(index){if(index===0){self.assetPicker.showCurrentSelectionInfo();dialog.setSize('710px','370px');dfx.removeClass(footer,'external');dfx.addClass(footer,'internal');self.assetPicker.showFooter('160px');}else{self.assetPicker.hideCurrentSelectionInfo();dialog.setSize('710px','220px');dfx.removeClass(footer,'internal');dfx.addClass(footer,'external');self.assetPicker.showFooter('310px');}});self.createOptionsContainer(function(intFooterCont){footer.appendChild(intFooterCont);self._createExternalTab(externalTab,function(extFooterCont){footer.appendChild(extFooterCont);dialog.setFooterContent(footer,self.getClass()+'-dialog-footer');callback.call(self);});});});});});});});},getValuesFromElem:function(elem)
{var values={};var attrs=['title','alt','src'];var i=attrs.length;while(i-->0){if(dfx.isset(elem.getAttribute(attrs[i]))===true){values[attrs[i]]=elem.getAttribute(attrs[i]);}else{values[attrs[i]]='';}}
return values;},open:function(elem)
{var self=this;if(elem){this.selectedElem=elem;var values=this.getValuesFromElem(elem);if(elem.getAttribute('src')!==''){AssetManager.getAssetFromUrl(elem.src,function(asset){if(asset){self.selectedAsset=asset;self.selectedElemid=asset.id;var name=asset.getAttribute('name');var title=values.title;var alt=values.alt;if(asset.getAttribute('title')===title){title='';}
if(asset.getAttribute('alt')===alt){alt='';}
self.setValues(asset,'',title,alt);if(asset.hasOwnProperty('id')===true){AssetManager.getAssetAutoscrollPath(asset.id,function(lineage){self.assetPicker.viewWidgets.list.initAutoScroll(true,lineage);self.assetPicker.dialog.addOnCloseCallback(self.closedEvent);self.assetPicker.showFooter('160px');self.tabPane.selectTab(0);self.assetPicker.showCurrentSelectionInfo();self.assetPicker.dialog.open();});}}else{self.setValues(null,values.src,values.title,values.alt);self.assetPicker.setAutoScrollLineage(null,self.name);self.assetPicker.dialog.addOnCloseCallback(self.closedEvent);self.tabPane.selectTab(1);self.assetPicker.hideCurrentSelectionInfo();self.assetPicker.dialog.open();}},{attributes:['name','alt','title','width','height','size'],type:false,typeIcon:false,linking:[],urls:false});}else{dfx.addClass(this.optionsCont,'notSelected');this.assetPicker.setAutoScrollLineage(null,this.name);this.assetPicker.dialog.addOnCloseCallback(this.closedEvent);this.assetPicker.showFooter('160px');this.assetPicker.hideCurrentSelectionInfo();this.assetPicker.dialog.open();}}else{dfx.addClass(this.optionsCont,'notSelected');this.assetPicker.setAutoScrollLineage(null,this.name);self.assetPicker.dialog.addOnCloseCallback(self.closedEvent);self.assetPicker.showFooter('160px');self.assetPicker.dialog.open();}},setSelectedItemValues:function(itemid)
{var self=this;AssetManager.getAsset(itemid,function(asset){if(dfx.isset(asset)===true){AssetManager.isAssetType(itemid,'image',function(isImage){if(isImage===true){var name=asset.getAttribute('name');var title='';var alt='';if(parseInt(asset.id)===parseInt(self.selectedElemid)){var vals=self.getValuesFromElem(self.selectedElem);if(asset.getAttribute('title')!==vals.title){title=vals.title;}
if(asset.getAttribute('alt')!==vals.alt){alt=vals.alt;}}
self.setValues(asset,'',title,alt);}else{dfx.addClass(self.optionsCont,'notSelected');}});}else{dfx.addClass(self.optionsCont,'notSelected');}},true,{attributes:['name','alt','title','width','height','size'],type:false,typeIcon:false,linking:[],urls:false});},setValues:function(asset,src,title,alt)
{if(!asset){this.optWidgets.external.title.setValue(title);this.optWidgets.external.altText.setValue(alt);this.optWidgets.external.url.setValue(src);this._updatePreviewImage(src);dfx.removeClass(this.optionsCont,'notSelected');return;}
this.selectedAsset=asset;var c=this.getClass()+'-internalOpts';var titleCont=dfx.getClass(c+'-input-title',this.internal)[0];var altTextCont=dfx.getClass(c+'-input-alt',this.internal)[0];var name=dfx.getClass(c+'-assetInfo',this.internal)[0];var assetNameHTML=dfx.ellipsize(asset.name,25)+' <span>[#'+dfx.ellipsize(asset.id.toString(),10)+']</span>'
dfx.setHtml(name,assetNameHTML);var titleEl=dfx.getClass(c+'-title',this.internal)[0];var titleValue=asset.getAttribute('title');if(titleValue===''){titleValue='[no default value]';}
dfx.setHtml(titleEl,dfx.ellipsize(titleValue,45));dfx.attr(titleEl,'title',titleValue);var altText=dfx.getClass(c+'-alt',this.internal)[0];var altTextValue=asset.getAttribute('alt');if(altTextValue===''){altTextValue='[no default value]';}
dfx.setHtml(altText,dfx.ellipsize(altTextValue,45));dfx.attr(altText,'title',altTextValue);this.optWidgets.internal.title.setValue(title);this.optWidgets.internal.altText.setValue(alt);dfx.setStyle([titleCont,altTextCont],'display','block');var imgInf=dfx.getClass(c+'-img-size',this.internal)[0];var rawSize=asset.getAttribute('size');var size='';if(rawSize<1024){size=rawSize+'B';}else{rawSize=Math.floor(rawSize/1024);if(rawSize<1024){size=rawSize+'KB';}else{rawSize=Math.floor(rawSize/1024);size=rawSize+'MB';}}
dfx.setHtml(imgInf,asset.getAttribute('width')+' x '+asset.getAttribute('height')+' ('+size+')');var url=Widget.BASE_URL+'?tb=1&a='+asset.id+'&t=_'+(new Date).getTime();var imgCont=dfx.getClass(c+'-thumbCont',this.internal)[0];var self=this;this._setPreviewImage(imgCont,url,function(){dfx.removeClass(self.optionsCont,'notSelected');});},setClosedEvent:function(fn)
{this.closedEvent=fn;},setClickEvent:function(callback)
{var self=this;this.assetPicker.addAssetsSelectedAction(function(selectedAssets){var selectedAsset=null;if(self.selectedAsset!==null){selectedAsset=self.selectedAsset.id;}
if(selectedAsset!==null&&self.tabPane.getCurrentTabIndex()===0){AssetManager.getAsset(selectedAsset,function(asset){var internal=self.optWidgets.internal;var title=internal.title.getValue()||'';var keywords={};if(title.length===0){title=asset.getAttribute('title')||'';keywords.title='%attribute~title:'+asset.id+'%';}
var altText=internal.altText.getValue()||'';if(altText.length===0){altText=asset.getAttribute('alt')||'';keywords.alt='%attribute~alt:'+asset.id+'%';}
var url=asset.getUrl();var width=asset.getAttribute('width');var height=asset.getAttribute('height');keywords.src='%lookup~url:'+asset.id+'%';callback.call(self,url,altText,title,width,height,keywords,self.selectedElem);},false,{attributes:['name','alt','title','width','height','size'],type:false,typeIcon:false,linking:[],urls:true});}else{var external=self.optWidgets.external;if(external.url.getValue()!==''){callback.call(self,external.url.getValue(),external.altText.getValue(),external.title.getValue(),null,null,null,self.selectedElem);}}},true,this.name);},createOptionsContainer:function(callback)
{var c=this.getClass()+'-opts';var container=document.createElement('div');dfx.addClass(container,c);this.optionsCont=container;var self=this;this._createInternalOptions(function(el){container.appendChild(el);callback.call(self,container);});},_createInternalOptions:function(callback)
{var c=this.getClass()+'-internalOpts';var elem=document.createElement('div');dfx.addClass(elem,c);this.internal=elem;var content='<div class="'+c+'-wrapper">';content+='<div class="'+c+'-left">';content+='<div class="'+c+'-thumbCont"></div>';content+='<div class="'+c+'-img-size">N/A</div>';content+='</div>';content+='<div class="'+c+'-right">';content+='<div class="'+c+'-right-opt">';content+='<div class="'+c+'-label">Asset</div>';content+='<div class="'+c+'-assetInfo"></div>';content+='</div>';content+='<div class="'+c+'-right-opt">';content+='<div class="'+c+'-label">Title</div>';content+='<div class="'+c+'-title"></div>';content+='<div class="'+c+'-input '+c+'-input-title"></div>';content+='</div>';content+='<div class="'+c+'-right-opt">';content+='<div class="'+c+'-label">Alt Text</div>';content+='<div class="'+c+'-alt"></div>';content+='<div class="'+c+'-input '+c+'-input-alt"></div>';content+='</div>';content+='</div></div>';content+='<div class="'+c+'-notSelected">No image is selected for preview</div>';dfx.setHtml(elem,content);var titleCont=dfx.getClass(c+'-input-title',elem)[0];var altTextCont=dfx.getClass(c+'-input-alt',elem)[0];var self=this;this.includeWidget('TextField',function(){var title=self.createWidget(self.id+'-title','TextField');var altText=self.createWidget(self.id+'-altText','TextField');self.optWidgets.internal.title=title;self.optWidgets.internal.altText=altText;title.create(function(titleEl){titleCont.appendChild(titleEl);});altText.create(function(altTextEl){altTextCont.appendChild(altTextEl);});callback.call(self,elem);});},_createExternalTab:function(main,callback)
{var c=this.getClass()+'-externalOpts';dfx.addClass(main,c);this.external=main;var content='<div class="'+c+'-imageInfoCont">';content+='<div class="'+c+'-url">';content+='<span class="'+c+'-label">URL</span>';content+='<div class="'+c+'-url-value"></div>';content+='<div class="'+c+'-url-check"></div>';content+='<div class="'+c+'-url-tick"></div>';content+='</div>';content+='<div class="'+c+'-title">';content+='<span class="'+c+'-label">Title</span>';content+='<div class="'+c+'-title-input"></div>';content+='</div>';content+='<div class="'+c+'-altText">';content+='<span class="'+c+'-label">Alt Text</span>';content+='<div class="'+c+'-altText-input"></div>';content+='</div>';content+='</div>';dfx.setHtml(main,content);var urlCont=dfx.getClass(c+'-url-value',main)[0];var titleCont=dfx.getClass(c+'-title-input',main)[0];var altTextCont=dfx.getClass(c+'-altText-input',main)[0];var preview=document.createElement('div');dfx.addClass(preview,c+'-preview enterUrlMsg');var prevCont='<div class="'+c+'-enterUrlMsg">Enter a URL above to automatically see a preview here</div>';prevCont+='<div class="'+c+'-loading">';prevCont+='<img class="'+c+'-loadingAnim" src="'+this._skinURL+'/preview-spinner.gif"></img>';prevCont+='<span class="'+c+'-loadingText">Loading image ...</span>';prevCont+='</div>';prevCont+='<div class="'+c+'-imagePreview">';prevCont+='<div class="'+c+'-imagePreview-imgCont"></div>';prevCont+='<div class="'+c+'-imagePreview-text"></div>';prevCont+='</div>';prevCont+='<div class="'+c+'-error">';prevCont+='<div class="'+c+'-errorText">Image cannot be found please check the URL</div>';prevCont+='</div>';dfx.setHtml(preview,prevCont);this._externalPreview=preview;var imgCont=dfx.getClass(c+'-imagePreview-imgCont',preview)[0];var imgInf=dfx.getClass(c+'-imagePreview-text',preview)[0];var self=this;this.includeWidgets('TextField',function(){var url=self.createWidget(self.id+'-ex-url','TextField');var title=self.createWidget(self.id+'-ex-title','TextField');var altText=self.createWidget(self.id+'-ex-altText','TextField');self.optWidgets.external.url=url;self.optWidgets.external.title=title;self.optWidgets.external.altText=altText;url.create(function(urlEl){urlCont.appendChild(urlEl);url.addOnChangeEvent(function(val){self._updatePreviewImage(val);});});title.create(function(titleEl){titleCont.appendChild(titleEl);});altText.create(function(altTextEl){altTextCont.appendChild(altTextEl);});callback.call(self,preview);});},_updatePreviewImage:function(val)
{val=dfx.trim(val);var c=this.getClass()+'-externalOpts';var imgCont=dfx.getClass(c+'-imagePreview-imgCont',this._externalPreview)[0];var imgInf=dfx.getClass(c+'-imagePreview-text',this._externalPreview)[0];var url=this.createWidget(this.id+'-ex-url','TextField');var self=this;if(dfx.isBlank(val)===false){self._showCont('loading');self._setPreviewImage(imgCont,url.getValue(),function(img,w,h){if(img===false){self._showCont('error');dfx.setHtml(imgInf,'');}else{var nh=h;var maxH=250;var maxW=650;if(h>maxH||w>maxW){dfx.resizeImage(img,250);nh=parseInt(dfx.attr(img,'height'));}
self._showCont('imagePreview');dfx.setStyle(imgCont,'margin-top',(parseInt(nh/2)*-1)+'px');dfx.setHtml(imgInf,w+' x '+h);}},true);}},_showCont:function(className)
{var prevCont=this._externalPreview;var conts=['enterUrlMsg','loading','imagePreview','error'];dfx.foreach(conts,function(i){if(className!==conts[i]){dfx.removeClass(prevCont,conts[i]);}else{dfx.addClass(prevCont,className);}});},_setPreviewImage:function(cont,url,callback,noResize)
{if(url.length===0){callback.call(this,false,0,0);}
var self=this;this._getImage(url,function(image){var w,h=0;if(image!==false){w=image.width;h=image.height;if(noResize!==true){image=self._resizeImage(image);}}
dfx.empty(cont);if(image!==false){cont.appendChild(image);}
if(dfx.isFn(callback)===true){callback.call(this,image,w,h);}});},_getImage:function(url,callback)
{var img=new Image();img.onload=function(){callback.call(this,img);};img.onerror=function(){callback.call(this,false);};img.src=url;},_resizeImage:function(img)
{var max={height:105,width:125}
return dfx.resizeImage(img,max);},_setOptCont:function(opt,cont)
{var c=this.getClass()+'-opts';dfx.getClass(c+'-'+opt,this.optionsCont)[0].appendChild(cont);},getClass:function()
{return'ViperImagePlugin';}};dfx.inherits('ViperImagePlugin','Widget');function ViperKeyboardEditorPlugin(viper)
{ViperPlugin.call(this,viper);ViperPluginManager.addKeyPressListener('SHIFT+ENTER',this,'handleSoftEnter');ViperPluginManager.addKeyPressListener('ENTER',this,'handleEnter');}
ViperKeyboardEditorPlugin.prototype={start:function()
{var self=this;ViperChangeTracker.addChangeType('splitContainer','Insert','format');ViperChangeTracker.setDescriptionCallback('splitContainer',function(node){return self._getChangeDescription(node,'splitContainer');});ViperChangeTracker.setApproveCallback('splitContainer',function(clone,node){ViperChangeTracker.removeTrackChanges(node,true);});ViperChangeTracker.setRejectCallback('splitContainer',function(clone,node){var prev=node.previousSibling;if(!prev){return;}
while(node.firstChild){prev.appendChild(node.firstChild);}
dfx.remove(node);});ViperChangeTracker.addChangeType('createContainer','Insert','insert');ViperChangeTracker.setDescriptionCallback('createContainer',function(node){return self._getChangeDescription(node);});ViperChangeTracker.setApproveCallback('createContainer',function(clone,node){ViperChangeTracker.removeTrackChanges(node);});ViperChangeTracker.setRejectCallback('createContainer',function(clone,node){dfx.remove(node);});},_getChangeDescription:function(node,changeType)
{var pImgURL=this.viper.getStylesURL()+'/icon-p_tag.png';var pImg=Viper.document.createElement('img');dfx.attr(pImg,'src',pImgURL);dfx.attr(pImg,'title','Paragraph Break');var desc=pImg;if(changeType!=='splitContainer'){for(var child=node.firstChild;child;child=child.nextSibling){if(child.nodeType===dfx.TEXT_NODE&&dfx.trim(child.nodeValue).length===0){continue;}else if(ViperChangeTracker.isTrackingNode(child)===true){var ctnType=ViperChangeTracker.getCTNTypeFromNode(child);if(ViperChangeTracker.isInsertType(ctnType)===true){var extraDesc=ViperChangeTracker.getDescriptionForNode(child);if(dfx.isObj(extraDesc)===false){extraDesc=Viper.document.createTextNode(extraDesc);}
desc=[desc,extraDesc];}}
break;}}
return desc;},_isKeyword:function()
{var keywordPlugin=ViperPluginManager.getPlugin('ViperKeywordPlugin');if(!keywordPlugin){return false;}
var range=this.viper.getCurrentRange();if(keywordPlugin._isKeyword(range.startContainer)===false&&keywordPlugin._isKeyword(range.startContainer)===false){return false;}
return true;},handleTab:function()
{if(this._isKeyword()===true){return true;}
var numSpaces=4;var sp=String.fromCharCode(160);var c='';while(numSpaces-->0){c+=sp;}
this.viper.insertNodeAtCaret(c);this.viper.fireNodesChanged('ViperKeyboardEditorPlugin:tab');return true;},handleEnter:function(returnFirstBlock)
{if(this.viper.inlineMode===true){return this.handleSoftEnter();}
var range=this.viper.getCurrentRange();if(range.collapsed!==true){this.viper.deleteContents();range=this.viper.getCurrentRange();}
if(range.startContainer.nodeType===dfx.TEXT_NODE){var parent=range.startContainer.parentNode;if(parent===this.viper.element){var para=document.createElement('p');dfx.setHtml(para,'&nbsp;');dfx.insertAfter(range.startContainer,para);range.setStart(para.firstChild,0);range.collapse(true);ViperSelection.addRange(range);return true;}
while(parent){if(parent.tagName.toLowerCase()==='li'){var listPlugin=ViperPluginManager.getPlugin('ViperListPlugin');if(listPlugin&&listPlugin.handleEnter(parent)===false){return true;}
break;}else if(dfx.isBlockElement(parent)===true){break;}
if(parent.parentNode&&parent.parentNode===this.viper.element){break;}
parent=parent.parentNode;}}else{parent=range.startContainer;}
var tag=parent.tagName.toLowerCase();if(dfx.isChildOf(parent,this.viper.element)===false){var node=range.endContainer;while(dfx.isset(node.nextSibling)===true){if(dfx.isBlockElement(node.nextSibling)===true){break;}
node=node.nextSibling;}
range.setEndAfter(node);var elem=Viper.document.createElement('p');var docFrag=range.extractContents('p');this.viper.deleteContents();elem.appendChild(docFrag);dfx.insertAfter(range.startContainer,elem);range.collapse(true);node=range.startContainer;while(dfx.isset(node.previousSibling)===true){if(dfx.isBlockElement(node.previousSibling)===true){break;}
node=node.previousSibling;}
range.setStartBefore(node);var felem=Viper.document.createElement('p');docFrag=range.extractContents('p');felem.appendChild(docFrag);dfx.insertBefore(elem,felem);range.setStart(elem.firstChild,0);range.collapse(true);return;}else if(tag==='pre'){this.insertTextAtRange(range,"\n");return true;}else if(tag==='td'||tag==='th'){var bookmark=this.viper.createBookmark(range);var p=Viper.document.createElement('P');while(parent.firstChild){p.appendChild(parent.firstChild);}
parent.appendChild(p);tag='p';parent=p;this.viper.selectBookmark(bookmark);}
if(range.startContainer.nodeType===dfx.TEXT_NODE&&range.startOffset===range.startContainer.data.length){if(!range.startContainer.nextSibling){var newTextNode=Viper.document.createTextNode('');dfx.insertAfter(range.startContainer.parentNode,newTextNode);range.setStart(newTextNode,0);range.collapse(true);}}
try{range.setEndAfter(parent.lastChild);}catch(e){}
ViperSelection.addRange(range);var elem=parent.cloneNode(false);var docFrag=range.extractContents(tag);elem.appendChild(docFrag);var elemClone=elem.cloneNode(true);dfx.remove(dfx.getTag('del',elemClone));if(dfx.isBlank(dfx.getNodeTextContent(elemClone))===true){this.viper.cleanDOM(elemClone);if(dfx.getTag('*',elemClone).length===0){elem=null;}}
if(elem===null||(elem.tagName&&elem.tagName.toLowerCase()!=='li'&&dfx.isBlockElement(elem)===false)){var newTag='p';if(tag==='li'){newTag=tag;}
var pelem=Viper.document.createElement(newTag);if(elem!==null){pelem.appendChild(elem);}else{dfx.setHtml(pelem,'&nbsp;');}
elem=pelem;ViperChangeTracker.addChange('createContainer',[elem]);}else{ViperChangeTracker.removeTrackChanges(elem,true);ViperChangeTracker.addChange('splitContainer',[elem]);}
if(this.viper.elementIsEmpty(parent)===true){dfx.setHtml(parent,'&nbsp;');}
dfx.insertAfter(parent,elem);range.setStart(elem,0);range.setStart(elem,0);try{range.moveStart('character',1);range.moveStart('character',-1);}catch(e){}
range.collapse(true);ViperSelection.addRange(range);if(dfx.isBlockElement(parent)===true&&dfx.trim(dfx.getHtml(parent))===''){dfx.setHtml(parent,'&nbsp;');}
this.viper.fireNodesChanged('ViperKeyboardEditorPlugin:enter');if(returnFirstBlock===true){return parent;}
return true;},handleSoftEnter:function(e)
{if(this._isKeyword()===true){return true;}
var range=this.viper.getCurrentRange();if(e){var startNode=range.getStartNode();if(startNode&&dfx.isTag(startNode.parentNode,'pre')===true){var p=Viper.document.createElement('p');dfx.setHtml(p,'&nbsp;');dfx.insertAfter(startNode.parentNode,p);range.setStart(p.firstChild,0);range.collapse(true);ViperSelection.addRange(range);this.viper.fireNodesChanged('ViperKeyboardEditorPlugin:softEnter');return;}}
var node=Viper.document.createElement('br');this.viper.insertNodeAtCaret(node);range=this.viper.getCurrentRange();if(dfx.isTag(node.previousSibling,'br')===true){var text=Viper.document.createTextNode(String.fromCharCode(160));dfx.insertAfter(node.previousSibling,text);}
if(!node.nextSibling||node.nextSibling.nodeType!==dfx.TEXT_NODE){var text=Viper.document.createTextNode(String.fromCharCode(160));dfx.insertAfter(node,text);}
range.setStart(node.nextSibling,0);range.collapse(true);this.viper.fireNodesChanged('ViperKeyboardEditorPlugin:softEnter');return true;},insertTextAtRange:function(range,text)
{var node=range.startContainer;if(node.nodeType===dfx.TEXT_NODE){var newNode=node.splitText(range.startOffset);dfx.insertBefore(newNode,document.createTextNode(text));}else{node=range.startContainer.childNodes[range.startOffset];if(node.nodeType===dfx.TEXT_NODE){var newNode=node.splitText(range.startOffset);dfx.insertBefore(newNode,document.createTextNode(text));}else{newNode=document.createTextNode(text);dfx.insertAfter(node,newNode);}}
range.setStart(newNode,0);range.collapse(true);ViperSelection.addRange(range);if(ViperChangeTracker.isTracking()===true){var ctNode=null;if(newNode.nextSibling){var sibling=newNode.nextSibling;ctNode=ViperChangeTracker.createCTNode('ins','textAdd',newNode);dfx.insertBefore(sibling,ctNode);}else if(newNode.previousSibling){var sibling=newNode.previousSibling;ctNode=ViperChangeTracker.createCTNode('ins','textAdd',newNode);dfx.insertAfter(sibling,ctNode);}else{var parent=newNode.parentNode;ctNode=ViperChangeTracker.createCTNode('ins','textAdd',newNode);parent.appendChild(ctNode);}
if(ctNode){ViperChangeTracker.addChange('textAdded',[ctNode]);}}}};dfx.noInclusionInherits('ViperKeyboardEditorPlugin','ViperPlugin',true);function ViperKeywordPlugin(viper)
{ViperPlugin.call(this,viper);this.keywordClass='_my4_keyword';this.allowReplace=true;this.domElem=null;this.dialog=null;this.selectedScope=null;this.selectedKeyword=null;this.selectedFormat=null;this.assetTypeSelect=null;this.viewType='Assets';this.renderKeywords=true;}
ViperKeywordPlugin.prototype={start:function()
{var ctrlName='CTRL';if(navigator.platform.toLowerCase().indexOf('mac')>=0){ctrlName='CMD';}
var self=this;this.toolbarPlugin=ViperPluginManager.getPlugin('ViperToolbarPlugin');this.toolbarPlugin.addButton('Keyword','keyword','Insert Keyword',function(){self.handleInsertKey();});this.toolbarPlugin.setButtonShortcut(this,'keyword','CTRL+K','handleInserKey');this.viper.registerCallback('getHtml','InsertKeywordPlugin',function(data){if(data.element){self.keywordsToText(data.element);}});this.viper.registerCallback('toolbarButtonClicked','InsertKeywordPlugin',function(){self.toolbarButtonClicked();});this._processKeywords();ViperChangeTracker.addChangeType('insertedKeyword','Inserted','insert');ViperChangeTracker.addChangeType('removedKeyword','Deleted','remove');ViperChangeTracker.setNodeTypeVisibility('removedKeyword',false);ViperChangeTracker.setDescriptionCallback('insertedKeyword',function(node){return'Internal Keyword';});ViperChangeTracker.setApproveCallback('insertedKeyword',function(clone,node){ViperChangeTracker.removeTrackChanges(node);});ViperChangeTracker.setRejectCallback('insertedKeyword',function(clone,node){dfx.remove(node);});ViperChangeTracker.setDescriptionCallback('removedKeyword',function(node){return'Internal Keyword';});ViperChangeTracker.setApproveCallback('removedKeyword',function(clone,node){dfx.remove(node);});ViperChangeTracker.setRejectCallback('removedKeyword',function(clone,node){ViperChangeTracker.removeTrackChanges(node);});ViperPluginManager.addKeyPressListener('delete',this,function(e,evtData){return!this.keyDown(e);});},setSettings:function(settings)
{if(dfx.isset(settings.renderKeywords)===true){this.renderKeywords=settings.renderKeywords;}},toolbarButtonClicked:function()
{var range=this.viper.getCurrentRange();var start=range.startContainer;var end=range.endContainer;if(start&&end){var skeywordEl=this.isKeyword(start,null,true);if(skeywordEl!==false){var prevSibling=document.createTextNode('');dfx.insertBefore(skeywordEl,prevSibling);range.setStart(prevSibling,0);}
var ekeywordEl=skeywordEl;if(start!==end){ekeywordEl=this.isKeyword(end,null,true);}
if(ekeywordEl){var nextSibling=document.createTextNode('');dfx.insertAfter(ekeywordEl,nextSibling);range.setEnd(nextSibling,0);}
ViperSelection.addRange(range);}},_processKeywords:function(elem)
{if(this.renderKeywords===false){this.keywordsToText();return;}},keywordsToText:function(element)
{var keyElems=dfx.getClass(this.keywordClass,element);var kln=keyElems.length;for(var i=0;i<kln;i++){var elem=keyElems[i];var text=document.createTextNode(elem.getAttribute('keyword'));dfx.insertBefore(elem,text);dfx.remove(elem);}
var elems=dfx.find(element,'*');var eln=elems.length;for(var i=0;i<eln;i++){var el=elems[i];this.convertKeywordAttribute(el);}},convertKeywordAttribute:function(element)
{if(element){var attr=element.getAttribute('keywords');if(!attr){return;}
attr=dfx.jsonDecode(attr);dfx.foreach(attr,function(key){if(key==='src'||key==='href'){element.setAttribute('viper_'+key,attr[key]);element.removeAttribute(key);}else{element.setAttribute(key,attr[key]);}});dfx.removeAttr(element,'keywords');}},replaceKeywords:function(content,callback)
{callback=callback||function(){};if(!content){callback.call(this,content);}
var params={widget:'KeywordWidget',action:'replaceKeywords',content:content};var currMode=WidgetStore.getData('activeMode');var currScreen=WidgetStore.getData('activeScreen');if(currMode){params.currMode=currMode.id;}
if(currScreen){params.currScreen=currScreen.id;}
var self=this;dfx.post(this.url,params,function(content){callback.call(this,content);});},convertKeywords:function(element,callback)
{if(this.renderKeywords===false){return;}
var content=this.viper.getHtml(element);var params={widget:'KeywordWidget',action:'replaceKeywords',content:content};var currMode=WidgetStore.getData('activeMode');var currScreen=WidgetStore.getData('activeScreen');if(currMode){params.currMode=currMode.id;}
if(currScreen){params.currScreen=currScreen.id;}
var self=this;dfx.post(this.url,params,function(content){dfx.setHtml(element,content);var linkPlugin=ViperPluginManager.getPlugin('ViperLinkPlugin');if(linkPlugin){linkPlugin.convertLinks(element);}
self._processKeywords(element);callback.call(this);});return false;},handleInsertKey:function()
{var range=this.viper.getCurrentRange();if(range.collapsed===false){if(this.allowReplace===false){alert('Cannot replace selected text with a keyword.');return;}}
this.showDialog(range);},keyDown:function(e)
{var code;if(e.keyCode){code=e.keyCode;}else if(e.which){code=e.which;}
if(code===dfx.DOM_VK_DELETE&&ViperChangeTracker.isTracking()===true){var range=this.viper.getCurrentRange();var startNode=range.getStartNode();var keyword=this._isKeyword(startNode,false,true);if(!keyword){keyword=this._isKeyword(startNode.nextSibling,true,true);}
if(keyword){var del=document.createElement('del');if(keyword.parentNode&&dfx.isTag(keyword.parentNode,'ins')===true){dfx.insertBefore(keyword.parentNode,del);dfx.remove(keyword.parentNode);}else{dfx.insertBefore(keyword,del);}
del.appendChild(keyword);var info={keyword:keyword,changeType:'removedKeyword'}
this.viper.fireCallbacks('ViperKeywordPlugin:keywordRemoved',info);ViperChangeTracker.addChange(info.changeType,[del]);this.viper.fireNodesChanged('ViperKeywordPlugin:removed');return false;}}
if(code!==dfx.DOM_VK_DOWN&&code!==dfx.DOM_VK_UP&&code!==dfx.DOM_VK_LEFT&&code!==dfx.DOM_VK_RIGHT){var range=this.viper.getCurrentRange();if(range){if(range.collapsed===true){var startCont=range.startContainer;if(startCont.nodeType===dfx.TEXT_NODE){if(code===dfx.DOM_VK_DELETE){var keywordEl=this.isKeyword(startCont,null,true);if(keywordEl){var parentNode=keywordEl.parentNode;dfx.remove(keywordEl);while(parentNode){var elemToRemove=parentNode;parentNode=parentNode.parentNode;if(!elemToRemove.firstChild&&dfx.isBlockElement(elemToRemove)===false){dfx.remove(elemToRemove);}else{break;}}
return;}}else{var keywordElement=this._isKeyword(startCont,false,true);if(keywordElement){var node=range._getFirstSelectableChild(keywordElement);if(node===startCont&&range.startOffset===0){if(keywordElement.previousSibling&&this._isKeyword(keywordElement.previousSibling,true)!==true){node=range._getLastSelectableChild(keywordElement.previousSibling);if(node){range.setStart(node,node.data.length);range.collapse(true);ViperSelection.addRange(range);return;}}else{var textNode=document.createTextNode(' ');dfx.insertBefore(keywordElement,textNode);range.setStart(textNode,textNode.data.length);range.collapse(true);ViperSelection.addRange(range);return;}}else{node=range._getLastSelectableChild(keywordElement);if(node===startCont&&range.startOffset===node.data.length){if(keywordElement.nextSibling&&this._isKeyword(keywordElement.nextSibling,true)!==true){node=range._getFirstSelectableChild(keywordElement.nextSibling);if(node){range.setStart(node,0);range.collapse(true);ViperSelection.addRange(range);return;}}else{var textNode=document.createTextNode(' ');dfx.insertAfter(keywordElement,textNode);range.setStart(textNode,0);range.collapse(true);ViperSelection.addRange(range);return;}}}}}}}
var el=range.getCommonElement();if(el&&this._isKeyword(el)===true){if(code===dfx.DOM_VK_DELETE){var parentNode=el.parentNode;dfx.remove(el);while(parentNode){var elemToRemove=parentNode;parentNode=parentNode.parentNode;if(!elemToRemove.firstChild&&dfx.isBlockElement(elemToRemove)===false){dfx.remove(elemToRemove);}else{break;}}
return true;}else{return false;}}else if(this._isKeyword(range.startContainer)===true){var cont=this.getNonKeywordContainer(range.startContainer,range,'next');if(dfx.isset(cont)===true){range.setEnd(cont,0);range.setStart(cont,0);return true;}
return false;}else if(this._isKeyword(range.endContainer)===true){var cont=this.getNonKeywordContainer(range.endContainer,range,'prev');if(dfx.isset(cont)===true){range.setEndAfter(cont);return true;}
return false;}
if(code===dfx.DOM_VK_DELETE&&range.startOffset===0){var elem=range.startContainer.previousSibling;if(!elem){elem=range.startContainer.parentNode.previousSibling;}
if(elem&&this._isKeyword(elem,true)===true){return false;}}}}
return true;},getNonKeywordContainer:function(cont,range,dir)
{var clone=range.cloneRange();var container=null;while(cont){if(dir==='next'){container=clone.getNextContainer(cont);}else{container=clone.getPreviousContainer(cont);}
if(this._isKeyword(container)===false){return container;}
cont=container;}
return null;},isContentSharingKeyword:function(el,elemOnly,getElement)
{if(!el){return false;}
do{if(el.tagName==='SPAN'||el.tagName==='DIV'){if(dfx.hasClass(el,this.keywordClass)){var keyword=el.getAttribute('keyword');if(keyword!==null&&keyword.search(/%contentSharing~/)===0){if(getElement===true){return el;}
return true;}}}
if(elemOnly===true){return false;}
el=el.parentNode;}while(el&&el!==this.viper.element);return false;},isKeyword:function(node,elemOnly,getElement)
{return this._isKeyword(node,elemOnly,getElement);},_isKeyword:function(el,elemOnly,getElement)
{if(!el){return false;}
do{if(el.tagName==='SPAN'||el.tagName==='DIV'){if(dfx.hasClass(el,this.keywordClass)){if(getElement===true){return el;}
return true;}}
if(elemOnly===true){return false;}
el=el.parentNode;}while(el&&el!==this.viper.element);return false;},createDocumentFragment:function(keyword,contentStr)
{var fragment=document.createDocumentFragment();var div=document.createElement('div');div.innerHTML=contentStr;var c=div.childNodes.length;var tagType='';var prevType='';var keywordElem=null;for(var i=0;i<c;i++){prevType=tagType;var child=div.childNodes[i].cloneNode(true);if(child.nodeType===dfx.ELEMENT_NODE&&dfx.isBlockElement(child)===true){tagType='div';}else{tagType='span';}
if(prevType!==tagType||keywordElem===null){keywordElem=document.createElement(tagType);keywordElem.className=this.keywordClass;keywordElem.setAttribute('keyword',keyword);keywordElem.setAttribute('title','Keyword: '+keyword);fragment.appendChild(keywordElem);}
keywordElem.appendChild(child);}
return fragment;},insertKeyword:function(keyword,content,bookmark)
{var blockElemExists=false;var keywordElem=null;if(this.renderKeywords===false){keywordElem=document.createTextNode(keyword);}else{var title='Keyword: '+keyword;keywordElem=document.createElement('span');dfx.addClass(keywordElem,this.keywordClass);dfx.setHtml(keywordElem,content);keywordElem.setAttribute('title',title);keywordElem.setAttribute('keyword',keyword);var cln=keywordElem.childNodes.length;for(var i=0;i<cln;i++){if(dfx.isBlockElement(keywordElem.childNodes[i])===true){dfx.setStyle(keywordElem,'display','block');blockElemExists=true;break;}}}
if(ViperChangeTracker.isTracking()===true){var ins=document.createElement('ins');ins.appendChild(keywordElem);var info={keyword:ins,changeType:'insertedKeyword'}
this.viper.fireCallbacks('ViperKeywordPlugin:keywordInserted',info);ViperChangeTracker.addChange(info.changeType,[ins]);keywordElem=ins;}
if(bookmark.start){if(blockElemExists===true){var startingNode=bookmark.start;var blockParent=dfx.getFirstBlockParent(startingNode,this.viper.element);if(this.viper.elementIsEmpty(blockParent)===true){dfx.insertAfter(blockParent,keywordElem);this.viper.removeBookmark(bookmark);dfx.remove(blockParent);var range=this.viper.getCurrentRange()
var node=range._getFirstSelectableChild(blockParent);if(node!==false&&node!==null){range.setStart(node,0);range.collapse(true);ViperSelection.addRange(range);}}else{var splitInfo=this.viper.splitNodeAtBookmark('p',bookmark);if(splitInfo.prevNode){dfx.insertAfter(splitInfo.prevNode,keywordElem);}else if(splitInfo.nextNode){dfx.insertBefore(splitInfo.nextNode,keywordElem);if(this.viper.elementIsEmpty(splitInfo.nextNode)===true){dfx.remove(splitInfo.nextNode);}}}}else{dfx.insertBefore(bookmark.start,keywordElem);this.viper.removeBookmark(bookmark);}}else{dfx.insertBefore(bookmark,keywordElem);if(ViperChangeTracker.isTracking()===true){var del=document.createElement('del');dfx.insertBefore(bookmark,del);del.appendChild(bookmark);var info={keyword:bookmark,changeType:'removedKeyword'}
this.viper.fireCallbacks('ViperKeywordPlugin:keywordRemoved',info);ViperChangeTracker.addChange(info.changeType,[del]);}else{dfx.remove(bookmark);}}
this.viper.fireNodesChanged('ViperKeywordPlugin:insert');},normalizeKeywords:function(element)
{var keyElems=[];var child=element.firstChild;while(child){if(dfx.hasClass(child,this.keywordClass)===true){keyElems.push(child);}else{var elems=dfx.getClass(this.keywordClass,child);keyElems=keyElems.concat(elems);}
child=child.nextSibling;}
var kln=keyElems.length;for(var i=0;i<kln;i++){var elem=keyElems[i];var text=document.createTextNode(escape(elem.getAttribute('keyword')));dfx.insertBefore(elem,text);dfx.remove(elem);}},showDialog:function(range)
{this.displayDisabledDiv(true);var selectedHtml='';var range=this.viper.getCurrentRange();if(range.collapsed!==true){this.canAdd=true;selectedHtml=range.getHTMLContentsObj();}
var bookmark=this.viper.createBookmark();ViperPluginManager.setActivePlugin('ViperKeywordPlugin');var self=this;this.includeWidgets(['ModalDialog','Select','AssetPicker','TabPane','TextField'],function(){var modalDialog=self.createWidget('InsertKeywordPluginDialog','ModalDialog');modalDialog.setSize('765px','290px');self.dialog=modalDialog;var c=this.getClass();var main=document.createElement('div');dfx.addClass(main,c);var content='<div class="'+c+'-left">';content+='<div class="'+c+'-left-assetTypePicker"></div>';content+='<div class="'+c+'-left-lists"></div>';content+='</div>';content+='<div class="'+c+'-right">';content+='</div>';dfx.setHtml(main,content);self.domElem=main;modalDialog.setContent(main);modalDialog.setTitle('Insert Keyword');modalDialog.create(function(){modalDialog.addButton('Insert Keyword',function(button){button.addClickEvent(function(){self.getSelectedKeywordReplacement(function(rep,keyword){if(rep!==false&&keyword!==false){keyword='%'+keyword.replace('%','')+'%';self.insertKeyword(keyword,rep,bookmark);}});modalDialog.close(true);},true);});self.viewType='Assets';self._createTabs();self.showAssetsKeywords();self._createRightPanel();modalDialog.open();modalDialog.addOnCloseCallback(function(){ViperPluginManager.setActivePlugin(null);});});});},_createTabs:function()
{var tabNames=['Assets','Attributes','Metadata'];var tabs=['<span id="'+this.dialog.id+'-mainTabs-assets">Assets</span>','<span id="'+this.dialog.id+'-mainTabs-attrs">Attributes</span>','<span id="'+this.dialog.id+'-mainTabs-metadata">Metadata</span>'];var c=this.getClass()+'-typeTabs';var tabCont=document.createElement('div');dfx.addClass(tabCont,c);var tln=tabs.length;c+='-tab';var self=this;var tabElems=[];for(var i=0;i<tln;i++){var tab=document.createElement('div');tabElems.push(tab);dfx.addClass(tab,c);tabCont.appendChild(tab);var content='<div class="'+c+'-left"></div><div class="'+c+'-mid">';content+=tabs[i]+'</div><div class="'+c+'-right"></div>';dfx.setHtml(tab,content);(function(tabElem,name){dfx.addEvent(tabElem,'click',function(){self.viewType=name;dfx.removeClass(dfx.getClass(self.getClass()+'-list',self.domElem),'active');dfx.removeClass(tabElems,'active');dfx.removeClass(dfx.getClass(self.getClass()+'-left-assetTypePicker')[0],'active');dfx.addClass(tabElem,'active');self['show'+name+'Keywords'].call(self);});})(tab,tabNames[i]);if(i===0){dfx.addClass(tab,'active');}}
var elem=dfx.getClass('ModalDialogWidgetType-top-mid',this.dialog.domElem)[0];elem.appendChild(tabCont);},showAssetsKeywords:function()
{var c=this.getClass()+'-list-assets';var listElem=dfx.getClass(c,this.domElem)[0];if(listElem){if(this.viewType==='Assets'){dfx.addClass(listElem,'active');}}else{listElem=document.createElement('div');dfx.addClass(listElem,this.getClass()+'-list');dfx.addClass(listElem,c);var listsElem=dfx.getClass(this.getClass()+'-left-lists')[0];listsElem.appendChild(listElem);var self=this;this.getKeywordList('asset',function(keywords){self.populateList(listElem,keywords,'assets');self.showAssetsKeywords();});}},showAttributesKeywords:function()
{if(!this.selectedAssetType){this.selectedAssetType='asset';}
var self=this;var c=this.getClass()+'-list-attributes';var listElem=dfx.getClass(c,this.domElem)[0];var attrListElem=dfx.getClass(c+'-'+this.selectedAssetType,this.domElem)[0];var assetPickercont=dfx.getClass(this.getClass()+'-left-assetTypePicker')[0];if(attrListElem){if(this.viewType==='Attributes'){dfx.removeClass(dfx.getClass(this.getClass()+'-alist',listElem),'active');dfx.addClass(assetPickercont,'active');dfx.addClass(attrListElem,'active');dfx.addClass(listElem,'active');}}else if(listElem){attrListElem=document.createElement('div');dfx.addClass(attrListElem,c+'-'+this.selectedAssetType);dfx.addClass(attrListElem,this.getClass()+'-alist');listElem.appendChild(attrListElem);this.getKeywordList('attribute',function(keywords){self.populateList(attrListElem,keywords,'assets');self.showAttributesKeywords();},{assetType:self.selectedAssetType});}else{listElem=document.createElement('div');dfx.addClass(listElem,this.getClass()+'-list');dfx.addClass(listElem,c);var listsElem=dfx.getClass(this.getClass()+'-left-lists')[0];listsElem.appendChild(listElem);var label=document.createElement('label');dfx.setHtml(label,'Choose Asset Type');dfx.addClass(label,c+'-label');assetPickercont.appendChild(label);var select=this.createWidget(null,'Select');var params={widget:'KeywordWidget',action:'getAssetTypes'};this.assetTypeSelect=select;select.setSelectedEventValueType('value');select.addItemSelectedEvent(function(selected){self.setSelectedAssetType(selected);});dfx.post(this.url,params,function(data){select.addItems(dfx.jsonDecode(data));select.create(function(sel){assetPickercont.appendChild(sel);self.showAttributesKeywords();});select.setValue(self.selectedAssetType,true);});}},setSelectedAssetType:function(type)
{this.selectedAssetType=type;this.showAttributesKeywords();},showMetadataKeywords:function()
{var c=this.getClass()+'-list-metadata';var listElem=dfx.getClass(c,this.domElem)[0];if(listElem){if(this.viewType==='Metadata'){dfx.addClass(listElem,'active');}}else{listElem=document.createElement('div');dfx.addClass(listElem,this.getClass()+'-list');dfx.addClass(listElem,c);var listsElem=dfx.getClass(this.getClass()+'-left-lists')[0];listsElem.appendChild(listElem);var self=this;this.getKeywordList('metadata',function(keywords){if(keywords.length===0){dfx.setHtml(listElem,'<div style="text-align:center;font:12px arial;margin-top:10px;">There are no metadata fields</div>');}else{self.populateList(listElem,keywords);}
self.showMetadataKeywords();});}},populateList:function(listElem,keywords)
{var self=this;var c=this.getClass()+'-keyItem';for(var i in keywords){if(keywords.hasOwnProperty(i)===false){continue;}
var item=document.createElement('div');dfx.addClass(item,c);dfx.setHtml(item,keywords[i].friendlyName);listElem.appendChild(item);(function(elem,keyword){dfx.addEvent(elem,'click',function(){self.selectedKeyword=keyword;dfx.removeClass(dfx.getClass(c,self.domElem),'selected');dfx.addClass(elem,'selected');self.updatePreview();});})(item,keywords[i]);}},getKeywordList:function(type,callback,data)
{var params={widget:'KeywordWidget',action:'getKeywordList',type:type};if(data){params.data=dfx.jsonEncode(data);}
dfx.post(this.url,params,function(data){if(data){callback.call(this,dfx.jsonDecode(data));}});},_createRightPanel:function()
{var parent=dfx.getClass(this.getClass()+'-right',this.domElem)[0];var main=document.createElement('div');parent.appendChild(main);var tabs={'Format & Preview':this._createFormatPreviewTab(),'Keyword Scope':this._createScopeTab()};var tabPane=this.createWidget(this.dialog.id+'-format_PrevTabs','TabPane','top',tabs);tabPane.create(function(el){tabPane.selectTab(1);tabPane.selectTab(0);main.appendChild(el);});},_createFormatPreviewTab:function()
{var c=this.getClass()+'-formatTab';var main=document.createElement('div');dfx.addClass(main,c);var content='<div class="'+c+'-title ViperKeywordPlugin-formatSection">Format</div>';content+='<div class="'+c+'-top formatSection">';content+='<div class="'+c+'-formatSel"></div>';content+='<div class="'+c+'-formatArg"></div></div>';content+='<div class="'+c+'-formatDesc"></div>';content+='<div class="'+c+'-title ViperKeywordPlugin-previewSection">Preview</div>';content+='<div class="'+c+'-preview"></div>';dfx.setHtml(main,content);var formatArgCont=dfx.getClass(c+'-formatArg',main)[0];var formatSelCont=dfx.getClass(c+'-formatSel',main)[0];var formatDescCont=dfx.getClass(c+'-formatDesc',main)[0];var previewCont=dfx.getClass(c+'-preview',main)[0];this.previewCont=previewCont;var self=this;this.formatArgs=this.createWidget(this.dialog.id+'-formatArgsField','TextField');this.formatArgs.setValue('Arguments...');this.formatArgs.create(function(el){formatArgCont.appendChild(el);dfx.addEvent(self.formatArgs.input,'blur',function(){if(self.formatArgs.getValue().length===0){self.formatArgs.setValue('Arguments...');}else{self.updatePreview();}});dfx.addEvent(self.formatArgs.input,'focus',function(){if(self.formatArgs.getValue()==='Arguments...'){self.formatArgs.setValue('');}});});var descriptions={};var formatSel=this.createWidget(null,'Select');formatSel.setSelectedEventValueType('value');formatSel.addItemSelectedEvent(function(selected){self.selectedFormat=selected;self.updatePreview();if(descriptions[selected]){dfx.setHtml(formatDescCont,descriptions[selected]);}});var params={widget:'KeywordWidget',action:'getKeywordFormats'};dfx.post(this.url,params,function(data){data=dfx.jsonDecode(data);if(data){if(data.descs){descriptions=data.descs;}
if(data.formats){formatSel.addItems(data.formats);formatSel.create(function(el){formatSelCont.appendChild(el);});}}});return main;},getCurrentKeyword:function()
{if(!this.selectedKeyword){return false;}
var system=this.selectedKeyword.system;var key=this.selectedKeyword.key;var keyword=system+'~'+key;var selectedScope=this.selectedScope;if(selectedScope==='def'){selectedScope=null;}
if(selectedScope!==null){keyword+=':'+selectedScope;}
if(this.selectedFormat){if(selectedScope===null){keyword+=':';}
keyword+=':string~'+this.selectedFormat;var argStr=this.formatArgs.getValue().replace('%','');if(this.formatArgs.getValue()!==argStr){this.formatArgs.setValue(argStr);}
if(argStr.length>0&&argStr!=='Arguments...'){keyword+='~'+argStr;}}
return keyword;},getSelectedKeywordReplacement:function(callback)
{var currKey=this.getCurrentKeyword();if(!currKey){callback.call(this,false,false);return;}
var params={widget:'KeywordWidget',action:'getKeywordReplacement',keyword:currKey};dfx.post(this.url,params,function(data){var rep='';if(data){rep=data;}
callback.call(this,rep,currKey);});},updatePreview:function()
{var previewCont=this.previewCont;this.getSelectedKeywordReplacement(function(rep){dfx.setHtml(previewCont,rep);});},_createScopeTab:function()
{var c=this.getClass()+'-scopeTab';var main=document.createElement('div');dfx.addClass(main,c);var content='<div class="'+c+'-top">';content+='<div class="'+c+'-desc"></div>';content+='<div class="'+c+'-opts"></div></div>';content+='<div class="'+c+'-picker"></div>';dfx.setHtml(main,content);var descCont=dfx.getClass(c+'-desc',main)[0];var optsCont=dfx.getClass(c+'-opts',main)[0];var pickerCont=dfx.getClass(c+'-picker',main)[0];var picker=this.createWidget(null,'AssetPicker');picker.setProjectFolderWhiteList(['Documents','Images','Movies']);picker.setPickerTitle('Select Keyword Scope');picker.setPickerSubTitle('Select an asset to use as Keyword Scope');var insertKeywordZindex=null;picker.addPickerOpenedCallback(function(){var disabledDivZindex=parseInt(dfx.getStyle(dfx.getId('_disabledDiv'),'z-index'),10);var popup=dfx.getId('InsertKeywordPluginDialog');insertKeywordZindex=parseInt(dfx.getStyle(popup,'z-index'),10);dfx.setStyle(popup,'z-index',(disabledDivZindex-1));});picker.create(function(el){pickerCont.appendChild(el);});picker.addSelectedCallback(function(assetid){self.selectedScope=assetid;self.updatePreview();var popup=dfx.getId('InsertKeywordPluginDialog');dfx.setStyle(popup,'z-index',insertKeywordZindex);});var params={widget:'KeywordWidget',action:'getScopeInfo'};var self=this;dfx.post(this.url,params,function(data){var scopeInfo=dfx.jsonDecode(data);self.includeWidget('OptionList',function(){var optList=self.createWidget(null,'OptionList');var options={};for(var scope in scopeInfo){if(scopeInfo.hasOwnProperty(scope)===false){continue;}
options[scope]='<span class="'+c+'-scope-'+scope+'">'+scopeInfo[scope].title+'</span>';}
dfx.setHtml(descCont,scopeInfo.def.desc);optList.setOptions(options);optList.setSelected('def');optList.addOnChangeAction(function(v,selected){if(selected==='spec'){self.selectedScope=picker.getValue();}else{self.selectedScope=selected;}
self.updatePreview();dfx.setHtml(descCont,scopeInfo[selected].desc);if(selected!=='def'){if(selected==='spec'){dfx.addClass(pickerCont,'active');}else{dfx.removeClass(pickerCont,'active');}
if(self.assetTypeSelect){self.assetTypeSelect.setValue(selected,true);self.setSelectedAssetType(scopeInfo[selected].type);}}});optList.create(function(el){optsCont.appendChild(el);});});});return main;},getClass:function()
{return'ViperKeywordPlugin';}};dfx.noInclusionInherits('ViperKeywordPlugin','ViperPlugin',true);function ViperLinkPlugin(viper)
{ViperPlugin.call(this,viper);this.toolbarPlugin=null;this.linkAttributes=['href','target','class','style','id'];this.linkColor='';}
ViperLinkPlugin.prototype={start:function()
{var self=this;this.toolbarPlugin=ViperPluginManager.getPlugin('ViperToolbarPlugin');this.toolbarPlugin.addButton('Link','link-insert','Insert/Edit Hyperlink',function(){self.editLink();});this.toolbarPlugin.addButton('Link','link-remove','Remove Hyperlink',function(){self.removeLink();});this.toolbarPlugin.setButtonDisabled('link-remove');var prevCollapsed=null;this.viper.registerCallback('caretPositioned','InsertLinkPlugin',function(data){if(data&&data.range){c=false;if(data.range.startContainer&&self.getLink(data.range.startContainer)!==false){self.toolbarPlugin.setButtonActive('link-insert');self.toolbarPlugin.setButtonActive('link-remove');}else{self.toolbarPlugin.setButtonInactive('link-insert');self.toolbarPlugin.setButtonInactive('link-remove');c=true;}
if(c===true||prevCollapsed!==data.range.collapsed){self.toolbarPlugin.setButtonInactive('link-insert');}}});ViperChangeTracker.addChangeType('insertedLink','Inserted Link','format');ViperChangeTracker.addChangeType('removedLink','Deleted Link','remove');ViperChangeTracker.addChangeType('insertedLinkAndText','Inserted Link','format');ViperChangeTracker.setDescriptionCallback('insertedLink',function(node,ctnType){var desc='';if(ctnType==='insertedLink'){desc=dfx.attr(node,'viper_href');if(!desc){desc=dfx.attr(node,'href');}}
return desc;});ViperChangeTracker.setRejectCallback('insertedLink',function(clone,node){self.removeLink(node);});ViperChangeTracker.setApproveCallback('insertedLink',function(clone,node){ViperChangeTracker.removeTrackChanges(node);dfx.setStyle(node,'color','');});ViperChangeTracker.setDescriptionCallback('insertedLinkAndText',function(node,ctnType){var desc='';if(ctnType==='insertedLinkAndText'){desc=dfx.attr(node,'viper_href');if(!desc){desc=dfx.attr(node,'href');}}
return desc;});ViperChangeTracker.setRejectCallback('insertedLinkAndText',function(clone,node){dfx.remove(node);});ViperChangeTracker.setApproveCallback('insertedLinkAndText',function(clone,node){ViperChangeTracker.removeTrackChanges(node);dfx.setStyle(node,'color','');});ViperChangeTracker.setDescriptionCallback('removedLink',function(node,ctnType){var desc='';if(ctnType==='removedLink'){desc=dfx.attr(node,'viper_href');}
return desc;});ViperChangeTracker.setRejectCallback('removedLink',function(clone,node){ViperChangeTracker.removeTrackChanges(node);});ViperChangeTracker.setApproveCallback('removedLink',function(clone,node){self.removeLink(node);});},toNormalLinks:function(elem)
{var keywordPlugin=ViperPluginManager.getPlugin('ViperKeywordPlugin');var links=dfx.getTag('a',elem);var ln=links.length;for(var i=0;i<ln;i++){var link=links[i];var keyword=link.getAttribute('keywords');if(keyword){keywordPlugin.convertKeywordAttribute(link);}else{var href=link.getAttribute('viper_href');if(href){link.setAttribute('href',href);}}
dfx.removeAttr(link,'viper_href');dfx.removeAttr(link,'keywords');dfx.setStyle(link,'color','');}},removeLink:function(elem)
{var info=ViperUndoManager.createNodeChangeInfo(this.viper.element);var link=this.getLink(elem);if(link===false){this.viper.removeStyle('a');}else{if(ViperChangeTracker.isTracking()===true&&ViperChangeTracker.isTrackingNode(link)===false){ViperChangeTracker.addChange('removedLink',[link]);}else{while(link.firstChild){dfx.insertBefore(link,link.firstChild);}
dfx.remove(link);}}
this.viper.fireNodesChanged('ViperLinkPlugin:remove');},convertLinks:function(parent)
{var links=dfx.getTag('a',parent);var ln=links.length;for(var i=0;i<ln;i++){this.convertLink(links[i]);}},convertLink:function(link)
{if(link.getAttribute('viper_href')){dfx.removeAttr(link,'href');return;}
var href=link.getAttribute('href');dfx.removeAttr(link,'href');link.setAttribute('viper_href',href);},editLink:function()
{var link=this.getLink();if(link===false){this.showDialog();}else{this.showDialog(link);}},getLinkInfo:function(link)
{var info={};var ln=this.linkAttributes.length;for(var i=0;i<ln;i++){var value=dfx.attr(link,this.linkAttributes[i]);if(dfx.isset(value)===true){info[this.linkAttributes[i]]=value;}}
return info;},getLink:function(elem)
{if(dfx.isset(elem)===false){var range=this.viper.getCurrentRange();elem=range.getCommonElement();}
if(this.isATag(elem)===false){var parents=dfx.getParents(elem,'a');if(parents.length>0){return parents[0];}
return false;}
return elem;},isATag:function(elem)
{if(elem.nodeType===dfx.ELEMENT_NODE&&elem.tagName.toLowerCase()==='a'){return true;}
return false;},showDialog:function(linkElem)
{var range=this.viper.getCurrentRange();var self=this;var bookmark=null;var content='';var elements=[];if(linkElem){range.selectNode(linkElem);ViperSelection.addRange(range);}else{bookmark=this.viper.createBookmark();elements=dfx.getElementsBetween(bookmark.start,bookmark.end);}
ViperSelection.addRange(range);this.displayDisabledDiv(true);ViperPluginManager.setActivePlugin('Link');var dialog=this.createWidget('ViperLinkPlugin','ViperLinkPlugin');dialog.init(function(){dialog.setClickEvent(function(url,newWindow,keywords,asset){ViperSelection.addRange(range);if(linkElem){elements=dfx.getHtml(linkElem);}
var a=self.createLink(url,newWindow,keywords,elements,asset,linkElem);if(linkElem){dfx.insertBefore(linkElem,a);dfx.remove(linkElem);}else if(bookmark){dfx.remove(dfx.getElementsBetween(bookmark.start,bookmark.end));dfx.insertAfter(bookmark.start,a);self.viper.selectBookmark(bookmark);}
ViperPluginManager.setActivePlugin(null);self.viper.focus();self.viper.fireNodesChanged('ViperLinkPlugin:insert');});dialog.setClosedEvent(function(win){if(win===true){if(bookmark){self.viper.selectBookmark(bookmark);}else if(linkElem){range.setStart(linkElem,0);range.collapse(true);self.viper.updateCaret();}
ViperPluginManager.setActivePlugin(null);}});dialog.open(linkElem);});},createLink:function(url,newWindow,keywords,elements,asset,oldElement)
{var a=null;if(oldElement){a=oldElement.cloneNode(false);a.setAttribute('viper_href',url);}else{a=document.createElement('a');}
a.setAttribute('viper_href',url);if(newWindow===true){a.setAttribute('target','_blank');}else{dfx.removeAttr(a,'target');}
if(keywords){a.setAttribute('keywords',dfx.jsonEncode(keywords));}else{dfx.removeAttr(a,'keywords');}
if(dfx.isArray(elements)===false){dfx.setHtml(a,elements);}else{dfx.foreach(elements,function(k){if(elements[k].tagName&&elements[k].tagName.toLowerCase()==='a'){dfx.remove(elements[k]);while(elements[k].firstChild){a.appendChild(elements[k].firstChild);}}else{a.appendChild(elements[k]);}});}
this.convertLink(a);var changeType='insertedLink';var content=dfx.getHtml(a);if(!content){changeType='insertedLinkAndText';if(!asset){dfx.setHtml(a,url);}else{var span=document.createElement('span');dfx.addClass(span,'_my4_keyword');dfx.attr(span,'title','%attribute~name:'+asset.id+'%')
dfx.attr(span,'keyword','%attribute~name:'+asset.id+'%');span.appendChild(document.createTextNode(' '+asset.name+' '));a.appendChild(span);}}
if(ViperChangeTracker.isTracking()===true){ViperChangeTracker.addChange(changeType,[a]);}
return a;}};dfx.noInclusionInherits('ViperLinkPlugin','ViperPlugin',true);function ViperLinkPluginWidgetType(id)
{Widget.call(this,id);this.name='editingLinkEditor';this.assetPicker=null;this.optWidgets={'internal':{},'external':{}};this.optionsCont=null;this.internalLinkEl=null;this.externalLinkEl=null;this.tabPane=null;this.closedEvent=null;this.selectedElem=null;this.selectedAsset=null;}
ViperLinkPluginWidgetType.prototype={init:function(callback)
{var self=this;this.includeWidgets(['TabPane','ModalDialog','AssetPickerDialog'],function(){var assetPicker=self.createWidget('InserLinkAssetPicker','AssetPickerDialog');self.assetPicker=assetPicker;assetPicker.noDialog=true;assetPicker.setScreen(self.name);assetPicker.setView(self.name,'thumbs');assetPicker.setButtonTitle('Insert Link');assetPicker.addProjectFolderWhiteList(self.name,'Documents');assetPicker.addProjectFolderWhiteList(self.name,'Images');assetPicker.addProjectFolderWhiteList(self.name,'Movies');assetPicker.setUniqueSelect(true);assetPicker.setHideTopLevel(self.name);assetPicker.addSelectionChangedAction(function(selectedAsset){if(selectedAsset){self.setSelectedItemValues(selectedAsset.id);}},true);assetPicker.init(self.name,function(contentEl){var externalTab=document.createElement('div');var tabs={'Internal Links':contentEl,'External Links':externalTab};var tabPane=self.createWidget(self.id+'-tabPane','TabPane','3',tabs);self.tabPane=tabPane;tabPane.create(function(tabPaneElem){var dialog=self.createWidget('InserLinkPluginDialog','ModalDialog');dialog.setContent(tabPaneElem);dialog.setTitle('Insert Hyperlink');dialog.setSubTitle('Select the link you want to insert',true);dialog.setSize('710px','415px');assetPicker.setDialog(dialog);dialog.create(function(el){assetPicker.addDialogEvents(dialog);var listCont=dfx.getId(assetPicker.id+'-content');dialog.dialogResized=function(width,height){dfx.setStyle(listCont,'height',(parseInt(height,10)-87)+'px');};var currHeight=dfx.getStyle(dialog.containers.contWrapper,'height');dfx.setStyle(listCont,'height',(parseInt(currHeight.substr(0,(currHeight.length-2)),10)-87)+'px');var footer=document.createElement('div');dfx.addClass(footer,self.getClass()+'-dialog-footer internal');tabPane.addOnChangeHandler(function(index){if(index===0){self.assetPicker.showCurrentSelectionInfo();dialog.setSize('710px','415px');dfx.removeClass(footer,'external');dfx.addClass(footer,'internal');self.assetPicker.showFooter('160px');}else{self.assetPicker.hideCurrentSelectionInfo();dfx.removeClass(footer,'internal');}});self.createOptionsContainer(function(intFooterCont){footer.appendChild(intFooterCont);self._createExternalTab(externalTab,function(extFooterCont){dialog.setFooterContent(footer,self.getClass()+'-dialog-footer');callback.call(self);});});});});});});},getValuesFromElem:function(elem)
{var values={};var attrs=['target','viper_href'];var i=attrs.length;while(i-->0){if(dfx.isset(elem.getAttribute(attrs[i]))===true){values[attrs[i]]=elem.getAttribute(attrs[i]);}else{values[attrs[i]]='';}}
return values;},open:function(elem)
{if(elem){this.selectedElem=elem;var values=this.getValuesFromElem(elem);var self=this;AssetManager.getAssetFromUrl(elem.getAttribute('viper_href'),function(asset){var newWindow=(values.target&&values.target==='_blank');if(asset){self.tabPane.selectTab(0);self.selectedAsset=asset;self.setValues(asset,null,newWindow);self._open(asset);}else{self.tabPane.selectTab(1);self.setValues(null,values.viper_href,newWindow);self._open(null);}});}else{var selectedAssets=this.assetPicker.getSelectedAssets();if(selectedAssets&&selectedAssets.length>0){var self=this;AssetManager.getAsset(selectedAssets[0],function(asset){self.tabPane.selectTab(0);self.selectedAsset=asset;self.setValues(asset);self._open(asset);});}else{this._open(null);}}},setClosedEvent:function(fn)
{this.closedEvent=fn;},_open:function(asset)
{this.assetPicker.dialog.addOnCloseCallback(this.closedEvent);this.assetPicker.showFooter('160px');if(asset&&asset.hasOwnProperty('id')===true){dfx.removeClass(this.optionsCont,'notSelected');var self=this;AssetManager.getAssetAutoscrollPath(asset.id,function(lineage){self.assetPicker.viewWidgets.list.initAutoScroll(false,lineage);self.assetPicker.showCurrentSelectionInfo();self.assetPicker.dialog.open();});}else{dfx.addClass(this.optionsCont,'notSelected');this.assetPicker.dialog.open();}},setValues:function(asset,url,newWindow)
{if(!asset){this.optWidgets.external.url.setValue(url);this.optWidgets.external.newWindow.setValue(newWindow);}else{this.setSelectedItemValues(asset.id);this.optWidgets.internal.newWindow.setValue(newWindow);this.selectedAsset=asset;}},setSelectedItemValues:function(itemid)
{var self=this;AssetManager.getAsset(itemid,function(asset){if(dfx.isset(asset)===true){dfx.removeClass(self.optionsCont,'notSelected');var name=asset.getAttribute('name');dfx.setHtml(self.assetNameCont,dfx.ellipsize(name,25)+' <span>[#'+dfx.ellipsize(itemid.toString(),10)+']</span>');self.assetNameCont.setAttribute('title',name);}});var url=Widget.BASE_URL+'?tb=1&a='+itemid+'&_'+dfx.getUniqueId();var imgCont=dfx.getClass(this.getClass()+'-imagePreviewCont-img',this.internalLinkEl)[0];this._setPreviewImage(imgCont,url);this.optWidgets.internal.newWindow.setValue(false);},createOptionsContainer:function(callback)
{var c=this.getClass()+'-opts';var container=document.createElement('div');dfx.addClass(container,c);this.optionsCont=container;var content='<div class="'+c+'-notSelected">No asset is selected for preview</div>';dfx.setHtml(container,content);var self=this;this._createInternalOptions(function(el){container.appendChild(el);callback.call(self,container);});},_createInternalOptions:function(callback)
{var main=document.createElement('div');var c=this.getClass();var content='<div class="'+c+'-imagePreviewCont">';content+='<div class="'+c+'-imagePreviewCont-img"><div class="'+c+'-imagePreviewCont-nimg"></div></div>';content+='<div class="'+c+'-imagePreviewCont-inf"></div>';content+='</div>';dfx.addClass(main,c+'-settings');content+='<div class="'+c+'-linkInfoCont">';content+='<div class="'+c+'-assetInfo">';content+='<span class="'+c+'-label">Link To</span>';content+='<div class="'+c+'-assetInfo-value"></div>';content+='</div>';content+='<div class="'+c+'-newWindow">';content+='<span class="'+c+'-label">New window</span>';content+='<div class="'+c+'-newWindow-value"></div>';content+='</div>';content+='</div>';dfx.setHtml(main,content);var toggle=dfx.getClass(c+'-newWindow-value',main)[0];this.assetNameCont=dfx.getClass(c+'-assetInfo-value',main)[0];var self=this;this.includeWidget('ToggleButton',function(){var newWindowWidget=self.createWidget(self.id+'-int-newWindow','ToggleButton',false,'slider',false,'Yes','No');self.optWidgets.internal.newWindow=newWindowWidget;newWindowWidget.create(function(el){toggle.appendChild(el);});});callback.call(this,main);},_createExternalTab:function(main,callback)
{var c=this.getClass()+'-external';var content='';dfx.addClass(main,c+'-settings');content+='<div class="'+c+'-linkInfoCont">';content+='<div class="'+c+'-url">';content+='<span class="'+c+'-label">URL</span>';content+='<div class="'+c+'-url-value"></div>';content+='<div class="'+c+'-url-tick"></div>';content+='</div>';content+='<div class="'+c+'-newWindow">';content+='<span class="'+c+'-label">New window</span>';content+='<div class="'+c+'-newWindow-value"></div>';content+='</div>';content+='</div>';dfx.setHtml(main,content);var urlCont=dfx.getClass(c+'-url-value',main)[0];var urlTick=dfx.getClass(c+'-url-tick',main)[0];var newWindowCont=dfx.getClass(c+'-newWindow-value',main)[0];var self=this;this.includeWidgets(['TextField','Button','ToggleButton'],function(){var url=self.createWidget(self.id+'-ex-url','TextField');var newWindowWidget=self.createWidget(self.id+'-ex-newWindow','ToggleButton',false,'slider',false,'Yes','No');self.optWidgets.external.url=url;self.optWidgets.external.newWindow=newWindowWidget;url.create(function(urlEl){urlCont.appendChild(urlEl);});newWindowWidget.create(function(newWindowEl){newWindowCont.appendChild(newWindowEl);callback.call(this,main);});});},setClickEvent:function(callback)
{var self=this;this.assetPicker.addAssetsSelectedAction(function(selectedAssets){var tabIndex=self.tabPane.getCurrentTabIndex();if(tabIndex!==1){var assetid=null;if(selectedAssets.length>0){assetid=selectedAssets.pop();}else if(self.selectedAsset){assetid=self.selectedAsset;}
if(assetid){if(dfx.isObj(assetid)===true){var asset=assetid;var url=asset.getUrl();var newWindow=self.optWidgets.internal.newWindow.getValue();var keywords={href:'%lookup~url:'+asset.id+'%'};callback.call(this,url,newWindow,keywords);}else{var params={attributes:['name'],type:false,typeIcon:true,linking:[],urls:true};AssetManager.getAsset(assetid,function(asset){var url=asset.getUrl();var newWindow=self.optWidgets.internal.newWindow.getValue();var keywords={href:'%lookup~url:'+assetid+'%'};callback.call(this,url,newWindow,keywords,asset);},false,params);}}}else{var urlValue=self.optWidgets.external.url.getValue();if(urlValue.search(/[a-zA-Z]+:/)!==0){urlValue='http://'+urlValue;}
callback.call(this,urlValue,self.optWidgets.external.newWindow.getValue());}},true);},_setPreviewImage:function(cont,url,callback)
{if(url.length===0){callback.call(this,false,0,0);}
var self=this;dfx.getImage(url,function(image){var w,h=0;if(image!==false){w=image.width;h=image.height;image=self._resizeImage(image);}
dfx.empty(cont);if(image!==false){cont.appendChild(image);}
if(dfx.isFn(callback)===true){callback.call(this,image,w,h);}});},_resizeImage:function(img)
{var h=img.height;var w=img.width;if(h>w){w=(105/(h/w));img.setAttribute('height',105);img.setAttribute('width',w);}else{h=(160/(w/h));img.setAttribute('width',160);img.setAttribute('height',h);}
return img;},getClass:function()
{return'ViperLinkPlugin';}};dfx.inherits('ViperLinkPlugin','Widget');function ViperListPlugin(viper)
{ViperPlugin.call(this,viper);this.toolbarPlugin=null;}
ViperListPlugin.prototype={start:function()
{var self=this;this.toolbarPlugin=ViperPluginManager.getPlugin('ViperToolbarPlugin');this.toolbarPlugin.addButton('List','list-ordered','Insert/Remove Ordered List',function(){self.oderedList();});this.toolbarPlugin.addButton('List','list-unordered','Insert/Remove Un-ordered List',function(){self.unoderedList();});ViperChangeTracker.addChangeType('makeList','Formatted','insert');ViperChangeTracker.addChangeType('removedList-ol','Formatted','format');ViperChangeTracker.addChangeType('removedList-ul','Formatted','format');ViperChangeTracker.addChangeType('makeList-change','Formatted','format');ViperChangeTracker.addChangeType('addedListItem','Inserted','insert');ViperChangeTracker.addChangeType('breakListUP','Formatted','format');ViperChangeTracker.addChangeType('breakListUPDown','Formatted','format');ViperChangeTracker.addChangeType('breakListDown','Formatted','format');ViperChangeTracker.setDescriptionCallback('makeList',function(node){var listType='ordered';if(dfx.isTag(node,'ul')===true){listType='un-ordered';}else if((dfx.isTag(node,'span')===true)&&(ViperChangeTracker.getCTData(node,'tagName')==='ul')){listType='un-ordered';}
return'Changed to '+listType+' list';});ViperChangeTracker.setApproveCallback('makeList',function(clone,node){if((dfx.isTag(node,'div')===true)&&(ViperChangeTracker.getCTData(node,'tagName')==='ul')){var node=self._convertMakeListToFinal(node,false);}
ViperChangeTracker.removeTrackChanges(node);});ViperChangeTracker.setRejectCallback('makeList',function(clone,node){if((dfx.isTag(node,'div')===true)&&(ViperChangeTracker.getCTData(node,'tagName')==='ul')){var node=self._convertMakeListToFinal(node,false);}
var children=[];dfx.foreach(node.childNodes,function(i){children.push(node.childNodes[i]);});while(child=children.shift()){self.removeListItem(child,true);}
dfx.remove(node);});ViperChangeTracker.setDescriptionCallback('removedList-ol',function(node){return'Removed from ordered list';});ViperChangeTracker.setApproveCallback('removedList-ol',function(clone,node){ViperChangeTracker.removeTrackChanges(node);});ViperChangeTracker.setRejectCallback('removedList-ol',function(clone,node){var list=document.createElement('ol');dfx.insertBefore(node,list);list.appendChild(self._createListItem(node));});ViperChangeTracker.setDescriptionCallback('removedList-ul',function(node){return'Removed from un-ordered list';});ViperChangeTracker.setApproveCallback('removedList-ul',function(clone,node){ViperChangeTracker.removeTrackChanges(node);});ViperChangeTracker.setRejectCallback('removedList-ul',function(clone,node){var list=document.createElement('ul');dfx.insertBefore(node,list);list.appendChild(self._createListItem(node));});ViperChangeTracker.setDescriptionCallback('makeList-change',function(node){var listType='unordered';if(dfx.isTag(node,'ol')===true){listType='ordered';}
return'Changed to '+listType+' list';});ViperChangeTracker.setApproveCallback('makeList-change',function(clone,node){ViperChangeTracker.removeTrackChanges(node);});ViperChangeTracker.setRejectCallback('makeList-change',function(clone,node){var newTag='ol'
if(dfx.isTag(node,'ol')===true){newTag='ul';}
var newList=document.createElement(newTag);while(node.firstChild){newList.appendChild(node.firstChild);}
dfx.insertBefore(node,newList);dfx.remove(node);});ViperChangeTracker.setDescriptionCallback('breakListUP',function(node){return'Removed from list';});ViperChangeTracker.setApproveCallback('breakListUP',function(clone,node){ViperChangeTracker.removeTrackChanges(node);});ViperChangeTracker.setRejectCallback('breakListUP',function(clone,node){var prevList=node.previousSibling;if(dfx.isTag(prevList,'ul')===true||dfx.isTag(prevList,'ol')===true){if(self.isListNode(node)===true){while(node.firstChild){prevList.appendChild(node.firstChild);}
dfx.remove(node);}else{var li=node;if(dfx.isTag(li,'li')===false){li=self._createListItem(node)}
prevList.appendChild(li);}}});ViperChangeTracker.setDescriptionCallback('breakListUPDown',function(node){return'Removed from list';});ViperChangeTracker.setApproveCallback('breakListUPDown',function(clone,node){ViperChangeTracker.removeTrackChanges(node);});ViperChangeTracker.setRejectCallback('breakListUPDown',function(clone,node){var prevList=node.previousSibling;var nextList=node.nextSibling;if(dfx.isTag(prevList,'ul')===true||dfx.isTag(prevList,'ol')===true){if(self.isListNode(node)===true){while(node.firstChild){prevList.appendChild(node.firstChild);}
dfx.remove(node);}else{var li=node;if(dfx.isTag(li,'li')===false){li=self._createListItem(node)}
prevList.appendChild(li);}
if(nextList){while(nextList.firstChild){var li=nextList.firstChild;if(dfx.isTag(nextList.firstChild,'li')===false){li=self._createListItem(nextList.firstChild);}
prevList.appendChild(li);}
dfx.remove(nextList);}}else if(dfx.isTag(nextList,'ul')===true||dfx.isTag(nextList,'ol')===true){if(self.isListNode(node)===true){if(nextList.firstChild){dfx.insertBefore(nextList.firstChild,node.childNodes);}else{while(node.firstChild){nextList.appendChild(node.firstChild);}}
dfx.remove(node);}else{var li=node;if(dfx.isTag(li,'li')===false){li=self._createListItem(node)}
if(nextList.firstChild){dfx.insertBefore(nextList.firstChild,li);}else{nextList.appendChild(li);}}}});ViperChangeTracker.setDescriptionCallback('breakListDown',function(node){return'Removed from list';});ViperChangeTracker.setApproveCallback('breakListDown',function(clone,node){ViperChangeTracker.removeTrackChanges(node);});ViperChangeTracker.setRejectCallback('breakListDown',function(clone,node){var nextList=node.nextSibling;if(dfx.isTag(nextList,'ul')===true||dfx.isTag(nextList,'ol')===true){if(self.isListNode(node)===true){if(nextList.firstChild){dfx.insertBefore(nextList.firstChild,node.childNodes);}else{while(node.firstChild){nextList.appendChild(node.firstChild);}}
dfx.remove(node);}else{var li=node;if(dfx.isTag(li,'li')===false){li=self._createListItem(node)}
if(nextList.firstChild){dfx.insertBefore(nextList.firstChild,li);}else{nextList.appendChild(li);}}}});this.viper.registerCallback('ViperChangeTracker:modeChange','ViperListPlugin',function(mode){var nodes=ViperChangeTracker.getCTNodes('makeList-change');var copyAttr=['class','viperchangeid','time'];if(mode==='original'){dfx.foreach(nodes,function(i){var node=nodes[i];var oldTag=node.tagName.toLowerCase();if(oldTag==='ol'){var newTag='ul';}else{var newTag='ol';}
var newList=Viper.document.createElement(newTag);dfx.foreach(copyAttr,function(j){var attrVal=dfx.attr(node,copyAttr[j]);if(dfx.isset(attrVal)===true){dfx.attr(newList,copyAttr[j],attrVal);}});ViperChangeTracker.setCTData(newList,'tagName',oldTag);while(node.firstChild){newList.appendChild(node.firstChild);}
var changeid=dfx.attr(newList,'viperchangeid');if(changeid){ViperChangeTracker.addNodeToChange(changeid,newList,node);}
dfx.insertBefore(node,newList);dfx.remove(node);});}else{dfx.foreach(nodes,function(i){var node=nodes[i];var origTag=ViperChangeTracker.getCTData(node,'tagName');if(!origTag){return;}
var newList=Viper.document.createElement(origTag);dfx.foreach(copyAttr,function(j){var attrVal=dfx.attr(node,copyAttr[j]);if(dfx.isset(attrVal)===true){dfx.attr(newList,copyAttr[j],attrVal);}});while(node.firstChild){newList.appendChild(node.firstChild);}
var changeid=dfx.attr(newList,'viperchangeid');if(changeid){ViperChangeTracker.addNodeToChange(changeid,newList,node);}
dfx.insertBefore(node,newList);dfx.remove(node);});}
var nodes=ViperChangeTracker.getCTNodes('makeList');var copyAttr=['class','viperchangeid','time'];if(mode==='original'){dfx.foreach(nodes,function(i){var node=nodes[i];var oldTag=node.tagName.toLowerCase();var div=Viper.document.createElement('div');dfx.foreach(copyAttr,function(j){var attrVal=dfx.attr(node,copyAttr[j]);if(dfx.isset(attrVal)===true){dfx.attr(div,copyAttr[j],attrVal);}});ViperChangeTracker.setCTData(div,'tagName',oldTag);while(node.firstChild){var subNode=node.firstChild;if(subNode.tagName.toLowerCase()==='li'){var par=Viper.document.createElement('p');dfx.foreach(copyAttr,function(j){var attrVal=dfx.attr(subNode,copyAttr[j]);if(dfx.isset(attrVal)===true){dfx.attr(par,copyAttr[j],attrVal);}});while(subNode.firstChild){par.appendChild(subNode.firstChild);}
div.appendChild(par);dfx.remove(subNode);}else{div.appendChild(subNode);}}
var changeid=dfx.attr(div,'viperchangeid');if(changeid){ViperChangeTracker.addNodeToChange(changeid,div,node);}
dfx.insertBefore(node,div);dfx.remove(node);});}else{dfx.foreach(nodes,function(i){var node=nodes[i];self._convertMakeListToFinal(node,true);});}});},unoderedList:function()
{this._changeType='makeList';this.makeList(false);this.viper.fireNodesChanged('ViperListPlugin:unordered');this.viper.element.focus();},oderedList:function()
{this._changeType='makeList';this.makeList(true);this.viper.fireNodesChanged('ViperListPlugin:ordered');this.viper.element.focus();},_convertMakeListToFinal:function(node,includeTrackChanges)
{var copyAttr=['class','viperchangeid','time'];var origTag=ViperChangeTracker.getCTData(node,'tagName');if(!origTag){return;}
var newList=Viper.document.createElement(origTag);if(includeTrackChanges===true){dfx.foreach(copyAttr,function(j){var attrVal=dfx.attr(node,copyAttr[j]);if(dfx.isset(attrVal)===true){dfx.attr(newList,copyAttr[j],attrVal);}});}
while(node.firstChild){var subNode=node.firstChild;if(subNode.tagName.toLowerCase()==='p'){var par=Viper.document.createElement('li');dfx.foreach(copyAttr,function(j){var attrVal=dfx.attr(subNode,copyAttr[j]);if(dfx.isset(attrVal)===true){dfx.attr(par,copyAttr[j],attrVal);}});while(subNode.firstChild){par.appendChild(subNode.firstChild);}
newList.appendChild(par);dfx.remove(subNode);}else{newList.appendChild(subNode);}}
if(includeTrackChanges===true){var changeid=dfx.attr(newList,'viperchangeid');if(changeid){ViperChangeTracker.addNodeToChange(changeid,newList,node);}}
dfx.insertBefore(node,newList);dfx.remove(node);return newList;},removeListItem:function(li,sameList)
{if(!li||!li.parentNode){return false;}
var list=this._getListElement(li);if(!list){return;}
var nextLevelList=this._getListElement(list);if(!nextLevelList){var newElem=document.createElement('p');while(li.firstChild){newElem.appendChild(li.firstChild);}}
var changeType=null;if(li.nextSibling){var clone=list.cloneNode(false);for(var node=li.nextSibling;node;node=li.nextSibling){clone.appendChild(node);}
dfx.insertAfter(list,clone);if(li.previousSibling){changeType='breakListUPDown';}else{changeType='breakListDown';}}else{changeType='breakListUP';}
dfx.remove(li);if(!nextLevelList){dfx.insertAfter(list,newElem);}else{var newElem=document.createElement('br');dfx.insertAfter(list,newElem);dfx.insertAfter(newElem,li.childNodes);}
if(dfx.getNodeTextContent(list)===''){dfx.remove(list);}
if(sameList!==true){this._changeType=changeType;ViperChangeTracker.addChange(changeType,[newElem]);}
return newElem;},makeList:function(ordered,force)
{var tag='ul';if(ordered===true){tag='ol';}
var range=this.viper.getCurrentRange().cloneRange();var bookmark=this.viper.createBookmark(range);if(bookmark.start.parentNode===bookmark.end.parentNode){var li=this._getListItem(range.startContainer);if(li!==null){var br=this._getLineBreak(bookmark.start);if(br){var tmpDiv=document.createElement('div');dfx.insertBefore(br,tmpDiv);var node=null;while(node=br.nextSibling){if(node.nodeType===dfx.ELEMENT_NODE&&node.tagName.toLowerCase()==='br'){tmpDiv=document.createElement('div');dfx.insertBefore(node,tmpDiv);dfx.remove(br);br=node;continue;}
tmpDiv.appendChild(node);}
if(br.parentNode){dfx.remove(br);}
this.viper.selectBookmark(bookmark);this.makeList(ordered,true);return;}}
if(li===null||force===true){var list=null;var elem=this._getBlockParent(range.startContainer);if(elem===null){elem=[range.startContainer];}else{elem=[elem];}
var removeInsAfter=false;var insertAfter=elem[0].previousSibling;if(!insertAfter){insertAfter=document.createTextNode('');dfx.insertBefore(elem[0],insertAfter);removeInsAfter=true;}
list=this._makeList(tag,elem);dfx.insertAfter(insertAfter,list);if(removeInsAfter===true){}
this.viper.selectBookmark(bookmark);}else{var listElement=this._getListElement(li);var convert=(listElement&&listElement.tagName.toLowerCase()!==tag);var newElem=this.removeListItem(li);this.viper.selectBookmark(bookmark);if(convert===true){if(this._changeType==='makeList'){this._changeType+='-change';}
this.makeList(ordered);}}}else{var elements=dfx.getElementsBetween(bookmark.start,bookmark.end);var comParents=this._getCommonParents(elements);if(!comParents){return false;}
var isWholeList=this._isWholeList(comParents);if(dfx.isTag(comParents[0],'li')===true){var sameType=true;dfx.foreach(comParents,function(i){if(dfx.isTag(comParents[i],'li')!==true||dfx.isTag(comParents[i].parentNode,tag)!==true){sameType=false;return false;}});if(sameType===true){var self=this;dfx.foreach(comParents,function(i){var newElem=self.removeListItem(comParents[i],isWholeList);ViperChangeTracker.addChange('removedList-'+tag,[newElem]);});this.viper.selectBookmark(bookmark);return;}else{if(dfx.isTag(comParents[0].parentNode,tag)===true){var firstItem=comParents.shift();this._joinToList(firstItem.parentNode,comParents,firstItem);this.viper.selectBookmark(bookmark);return;}else{var self=this;dfx.foreach(comParents,function(i){self.removeListItem(comParents[i],isWholeList);});this.viper.selectBookmark(bookmark);if(this._changeType==='makeList'){this._changeType+='-change'}
return this.makeList(ordered);}}}
var removeInsAfter=false;var insertAfter=comParents[0].previousSibling;if(!insertAfter){insertAfter=document.createTextNode('');dfx.insertBefore(comParents[0],insertAfter);removeInsAfter=true;}
var list=this._makeList(tag,comParents);dfx.insertAfter(insertAfter,list);if(removeInsAfter===true){dfx.remove(insertAfter);}
this.viper.selectBookmark(bookmark);}},_joinToList:function(listElem,elements,refNode)
{var self=this;dfx.foreach(elements,function(i){var elem=elements[i];if(elem.parentNode!==listElem){if(dfx.isTag(elem,'li')===false){elem=self._createListItem(elem);}
if(elem){if(refNode){dfx.insertAfter(refNode,elem);refNode=elem;}else{listElem.appendChild(elem);}}}});},_getLineBreak:function(ref)
{while(ref=ref.previousSibling){if(ref.nodeType===dfx.ELEMENT_NODE&&ref.tagName.toLowerCase()==='br'){return ref;}}
return null;},_getBlockParent:function(element,tag)
{while(element&&element!==this.viper.element){if(dfx.isBlockElement(element)===true){if(!tag||element.tagName.toLowerCase()===tag){return element;}}
element=element.parentNode;}
return null;},_getCommonParents:function(elems)
{elems=elems.concat([]);var parents=[];var eLen=elems.length;while(eLen>0){var elem=elems.shift();if(dfx.isBlockElement(elem)===true){if(elem.tagName.toLowerCase()==='ol'||elem.tagName.toLowerCase()==='ul'){for(var listChild=elem.firstChild;listChild;listChild=listChild.nextSibling){parents.push(listChild);}}else{parents.push(elem);}}else{while(elem){elem=elem.parentNode;if(elem){if(elem===this.viper.element){break;}else if(dfx.isBlockElement(elem)===true){if(parents.inArray(elem)===false){parents.push(elem);}
break;}}}}
eLen=elems.length;}
return parents;},_makeList:function(tag,elements)
{if(!elements){return;}
tag=tag||'ul';var eln=elements.length;if(eln<=0){return;}
var list=document.createElement(tag);if(ViperChangeTracker.isTracking()===true){ViperChangeTracker.addChange(this._changeType,[list]);}
if(eln===1){var listItems=[];var listLen=listItems.length;while(elements[0].firstChild||listLen>0){var child=elements[0].firstChild;if(child&&dfx.isTag(child,'br')===false){listItems.push(child);}else if(listItems.length>0){var listItem=this._createListItem(listItems.shift());list.appendChild(listItem);while(listElem=listItems.shift()){listItem.appendChild(listElem);}}
if(child){dfx.remove(child);}
listLen=listItems.length;}
dfx.remove(elements[0]);}else{for(var i=0;i<eln;i++){var listItem=this._createListItem(elements[i]);if(listItem!==null){list.appendChild(listItem);}}}
return list;},_createListItem:function(element)
{if(!element){return null;}
var li=document.createElement('li');if(dfx.isBlockElement(element)===true){if(element.childNodes&&element.childNodes.length>0){while(element.firstChild){if(element.firstChild.nodeType===dfx.TEXT_NODE){if(dfx.trim(element.firstChild.data).length<=0){dfx.remove(element.firstChild);continue;}}
li.appendChild(element.firstChild);}}
dfx.remove(element);if(li.childNodes.length===0){return null;}}else{li.appendChild(element);}
return li;},_getList:function(element)
{return this._isListElement(element,null,true);},_isListElement:function(element,type,returnNode)
{while(element&&element!==this.viper.element){if(element.nodeType===dfx.ELEMENT_NODE){var tagName=element.tagName.toLowerCase();if(type){if(tagName===type){if(returnNode===true){return element;}
return true;}}else if(tagName==='ul'||tagName==='ol'||tagName==='li'){if(returnNode===true){return element;}
return true;}}
element=element.parentNode;}
return false;},isListNode:function(node)
{if(dfx.isTag(node,'ul')===true||dfx.isTag(node,'ol')===true){return true;}
return false;},_getListItem:function(element)
{while(element&&element!==this.viper.element){if(element.tagName&&element.tagName.toLowerCase()==='li'){return element;}
element=element.parentNode;}
return null;},_getListElement:function(element)
{element=element.parentNode;while(element&&element!==this.viper.element){if(element.tagName){var tag=element.tagName.toLowerCase();if(tag==='ol'||tag==='ul'){return element;}}
element=element.parentNode;}
return null;},_isWholeList:function(elems)
{var sameParent=false;var parentList=null;if(elems.length>1){var first=elems[0];var last=elems[(elems.length-1)];var firstParent=first.parentNode;var lastParent=last.parentNode;if(firstParent===lastParent){parentList=firstParent;sameParent=true;}}else{sameParent=true;}
if(sameParent===true){var count=0;var child=null;var last=null;for(child=parentList.firstChild;child;child=child.nextSibling){if(dfx.isTag(child,'li')===true){if(count===0&&child!==elems[0]){return false;}
last=child;count++;}}
if(last===elems[(elems.length-1)]){return true;}}
return false;},handleEnter:function(li)
{var content=dfx.getNodeTextContent(li);if(dfx.trim(content).length===0||dfx.getHtml(li)==='&nbsp;'){var parents=dfx.getParents(li,'ul,ol');if(parents.length>0){var listEl=parents[0];if(parents.length>1){var parentLi=parents[(parents.length-1)].parentNode;while(parentLi&&dfx.isTag(parentLi,'li')===false){parentLi=parentLi.parentNode;}
if(parentLi){dfx.insertAfter(parentLi,li);var range=this.viper.getCurrentRange();range.setStart(li.firstChild,0);range.collapse(true);return false;}}
var p=document.createElement('p');dfx.setHtml(p,'&nbsp;');var listClone=listEl.cloneNode(false);dfx.removeAttr(listClone,'id');var c=0;var el=li.nextSibling;while(el){var elem=el;el=el.nextSibling;c++;dfx.remove(elem);listClone.appendChild(elem);}
dfx.remove(li);dfx.insertAfter(listEl,p);if(c>0){dfx.insertAfter(p,listClone);}
var range=this.viper.getCurrentRange();range.setStart(p.firstChild,0);range.collapse(true);return false;}}else if(this._isKeyword()===true){var newLi=li.cloneNode(false);dfx.setHtml(newLi,'&nbsp;');dfx.insertAfter(li,newLi);var range=this.viper.getCurrentRange();range.setStart(newLi.firstChild,0);range.collapse(true);return false;}
return true;},_isKeyword:function()
{var keywordPlugin=ViperPluginManager.getPlugin('ViperKeywordPlugin');var range=this.viper.getCurrentRange();if(keywordPlugin._isKeyword(range.startContainer)===false&&keywordPlugin._isKeyword(range.startContainer)===false){return false;}
return true;}};dfx.noInclusionInherits('ViperListPlugin','ViperPlugin',true);function ViperMoviePlugin(viper)
{ViperPlugin.call(this,viper);this.image=null;this.toolbarPlugin=null;this.imageBorder=null;this._movieEl=null;this._viperBoookmark=null;}
ViperMoviePlugin.prototype={start:function()
{var self=this;this.toolbarPlugin=ViperPluginManager.getPlugin('ViperToolbarPlugin');this.toolbarPlugin.addButton('Movie','movie','Insert/Edit Movie',function(){self.editMovie();});this.viper.registerCallback('clickedOutside','ViperMoviePlugin',function(){self.removeMovieHandles();});ViperChangeTracker.addChangeType('insertMovie','Inserted Movie','insert');ViperChangeTracker.addChangeType('removedMovie','Deleted Movie','remove');ViperChangeTracker.setNodeTypeVisibility('removedMovie',false);ViperChangeTracker.setDescriptionCallback('insertMovie',function(node){var desc='';if(node){var thumbImg=dfx.getClass('moviePlayer-Thumbnail',node)[0];desc=thumbImg.cloneNode(false);}
return desc;});ViperChangeTracker.setApproveCallback('insertMovie',function(clone,node){ViperChangeTracker.removeTrackChanges(node);});ViperChangeTracker.setRejectCallback('insertMovie',function(clone,node){dfx.remove(node);});this.viper.registerCallback('ViperKeywordPlugin:keywordInserted','ViperMoviePlugin',function(info){var thumbImg=dfx.getClass('moviePlayer-Thumbnail',info.keyword)[0];if(thumbImg){info.changeType='insertMovie';}});this.viper.registerCallback('ViperKeywordPlugin:keywordRemoved','ViperMoviePlugin',function(info){var thumbImg=dfx.getClass('moviePlayer-Thumbnail',info.keyword)[0];if(thumbImg){info.changeType='removedMovie';}
self.removeMovieHandles();});ViperChangeTracker.setApproveCallback('removedMovie',function(clone,node){dfx.remove(node);});ViperChangeTracker.setRejectCallback('removedMovie',function(clone,node){ViperChangeTracker.removeTrackChanges(node);});ViperChangeTracker.setDescriptionCallback('removedMovie',function(node){var desc='';if(node){var thumbImg=dfx.getClass('moviePlayer-Thumbnail',node)[0];desc=thumbImg.cloneNode(false);}
return desc;});this.viper.registerCallback('ViperChangeTracker:modeChange','ViperMoviePlugin',function(mode){if(mode==='original'){ViperChangeTracker.setNodeTypeVisibility('insertMovie',false);ViperChangeTracker.setNodeTypeVisibility('removedMovie',true);}else if(mode==='final'){ViperChangeTracker.setNodeTypeVisibility('insertMovie',true);ViperChangeTracker.setNodeTypeVisibility('removedMovie',false);}});},editMovie:function()
{this.insertMovieDialog(this._movieEl);},insertMovieDialog:function(elem)
{var bookmark=null;if(elem===null){this.removeMovieHandles();bookmark=this.viper.createBookmark();}else{bookmark=elem;}
var self=this;this.displayDisabledDiv(true);this.dialog=Widget.prototype.createWidget('ViperMoviePluginDialog','ViperMoviePlugin');this.dialog.create(function(){self.dialog.setClickEvent(function(assetid,height,width,selElem){self.insertKeyword(bookmark,assetid,height,width);});self.dialog.setClosedEvent(function(win){if(win===true){if(self._viperBoookmark){self.viper.selectBookmark(self._viperBoookmark);}else if(elem){var range=self.viper.getCurrentRange();range.setStart(elem,0);range.collapse(true);}
self.end();}});ViperPluginManager.setActivePlugin('Movie');self.dialog.open(elem);});},insertKeyword:function(bookmark,assetid,height,width)
{if(!assetid||!width||!height){return;}
var jsURL=Widget.WEB_URL+'Systems/MovieAssetType';var id='moviePlayer'+assetid;var content='';var jsFileURL=Widget.WEB_URL+'/Systems/MovieAssetType';var imgAttr='width="100%" height="100%"';var playButtonStyles='width:100%;height:100%;';playButtonStyles+='position:absolute;top:0;left:0;cursor:pointer;';playButtonStyles+='background: transparent url('+jsFileURL+'/edit_overlay.png) no-repeat 50% 50%;';var thumbURL=Widget.BASE_URL+'/?a='+assetid+'&ss=1';content+='<div class="moviePlayer moviePlayer-Wrapper" style="margin:0 auto;width:'+width+'px;height:'+height+'px;">';content+='<div class="moviePlayer moviePlayer-Player" id="'+id+'" style="position:relative;height:100%;">';content+='<img style="border:0;padding:0;margin:0;" noSelect=1 '+imgAttr+' class="moviePlayer moviePlayer-Thumbnail" src="'+thumbURL+'"/>';content+='<div class="moviePlayer moviePlayer-Thumbnail-playIcon" style="'+playButtonStyles+'"></div>';content+='</div></div>';var keyword='%fileAssets~embedMovie';keyword+='-'+width+'-'+height;keyword+=':'+assetid+'%';if(bookmark.start){var parents=dfx.getParents(bookmark.start,'p',this.viper.element);if(parents.length>0){var split=this.viper.splitNodeAtBookmark('p',bookmark,true);var bookmark=document.createElement('div');dfx.insertBefore(split.nextNode,bookmark);}}
var keywordPlugin=ViperPluginManager.getPlugin('ViperKeywordPlugin');if(keywordPlugin){keywordPlugin.insertKeyword(keyword,content,bookmark);if(bookmark&&dfx.isTag(bookmark.parentNode,'del')===true){dfx.remove(bookmark.parentNode);}}},end:function()
{ViperPluginManager.setActivePlugin(null);},isMovie:function(elem)
{if(!elem){var range=this.viper.getCurrentRange();if(range.startContainer.nodeType===dfx.ELEMENT_NODE){elem=range.startContainer.childNodes[range.startOffset];}else{return false;}}
if(elem.nodeType===dfx.ELEMENT_NODE){if(dfx.hasClass(elem,'moviePlayer')===true){return elem;}}
return false;},isPluginElement:function(element)
{if(element!==this.imageBorder&&dfx.isChildOf(element,this.imageBorder)===false){return false;}
return true;},mouseDown:function(e,elem)
{if(!elem){elem=dfx.getMouseEventTarget(e);}
var isCSKeyword=false;var keywordPlugin=ViperPluginManager.getPlugin('ViperKeywordPlugin');if(keywordPlugin){isCSKeyword=keywordPlugin.isContentSharingKeyword(elem,false,true);}
if(this.isMovie(elem)!==false&&isCSKeyword===false){var spanTag=elem;while(spanTag.nodeName!=='SPAN'){spanTag=spanTag.parentNode;}
var range=this.viper.getCurrentRange();var start=document.createTextNode('');var end=document.createTextNode('');dfx.insertBefore(spanTag,start);dfx.insertAfter(spanTag,end);range.setStart(start,0);range.setEnd(end,0);if(this.showMovieHandles(elem)===false){if(e){dfx.preventDefault(e);}
return false;}}},_adjustGhostImage:function(original,ghost)
{var owidth=dfx.getElementWidth(original);var oheight=dfx.getElementHeight(original);var coords=dfx.getElementCoords(original);var width=owidth;var height=oheight;var borders={left:0,right:0,top:0,bottom:0};dfx.foreach(borders,function(type){var border=parseInt(dfx.getComputedStyle(original,'border-'+type+'-width'));if(isNaN(border)===true){border=0;}
borders[type]=border;});width-=(borders.left+borders.right);height-=(borders.top+borders.bottom);coords.y+=borders.top;coords.x+=borders.left;dfx.setStyle(ghost,'width',width+'px');dfx.setStyle(ghost,'height',height+'px');dfx.setStyle(ghost,'top',(coords.y-1)+'px');dfx.setStyle(ghost,'left',(coords.x-1)+'px');return{width:owidth,height:oheight};},showMovieHandles:function(movie)
{if(this.imageBorder!==null){this.removeMovieHandles();}
var mvWrap=null;if(dfx.hasClass(movie,'moviePlayer-Wrapper')===false){while(movie.parentNode&&movie.parentNode!==document.body){movie=movie.parentNode;if(dfx.hasClass(movie,'moviePlayer-Wrapper')===true){mvWrap=movie;break;}}}
if(mvWrap===null){return;}
this._movieEl=mvWrap.parentNode;var mvWrapBorder=document.createElement('div');this.imageBorder=mvWrapBorder;var dims=this._adjustGhostImage(movie,mvWrapBorder);var width=dims.width;var height=dims.height;dfx.setStyle(mvWrapBorder,'position','absolute');dfx.setStyle(mvWrapBorder,'border','1px solid #000');var ghostMovie=mvWrap.cloneNode(true);dfx.setStyle(ghostMovie,'opacity','0.7');dfx.setStyle(ghostMovie,'width','100%');dfx.setStyle(ghostMovie,'height','100%');mvWrapBorder.appendChild(ghostMovie);var info={};var self=this;dfxjQuery(mvWrapBorder).resizable({knobHandles:true,handles:'all',stop:function(e,info){var newWidth=parseInt(info.size.width);var newHeight=parseInt(info.size.height);dfx.setStyle(mvWrap,'width',newWidth+'px');dfx.setStyle(mvWrap,'height',newHeight+'px');self._updateKeyword(mvWrap.parentNode,newWidth,newHeight,width,height);self.removeMovieHandles();info.after=null;self.viper.fireNodesChanged('ViperMoviePlugin:resize');}});document.body.appendChild(mvWrapBorder);dfx.addEvent(document,'click.ViperMoviePluginGh',function(e){var target=dfx.getMouseEventTarget(e);if(target!==mvWrap&&target!==mvWrapBorder&&dfx.isChildOf(target,mvWrapBorder)===false){dfx.removeEvent(document,'click.ViperMoviePluginGh');self.removeMovieHandles();}});return false;},removeMovieHandles:function()
{this._movieEl=null;if(this.imageBorder&&this.imageBorder.parentNode){this.imageBorder.parentNode.removeChild(this.imageBorder);this.imageBorder=null;}},caretUpdated:function()
{this.removeMovieHandles();},handleKeyPress:function()
{if(this.imageBorder!==null){this.removeMovieHandles();}},keyDown:function(e)
{if(!e){return;}
if(this.viper.isBrowser('msie')===true){if(e.target&&dfx.hasClass(e.target,'moviePlayer')===true){this.removeMovieHandles();var ignoredKeys=[37,38,39,40];if(ignoredKeys.inArray(e.which)===true){if(e.which===37||e.which===39){var movieElem=e.target.parentNode.parentNode;if(e.which===37){var rangeSet=false;var node=movieElem.previousSibling;while(node){if(node.nodeType===dfx.ELEMENT_NODE){var range=this.viper.getCurrentRange();var last=range._getLastSelectableChild(node);if(last){range.setStart(last,last.data.length);range.setEnd(last,last.data.length);ViperSelection.addRange(range);rangeSet=true;}
break;}
node=node.previousSibling;}
if(rangeSet===false){var p=document.createElement('p');dfx.setHtml(p,'&nbsp;');dfx.insertBefore(movieElem,p);var range=this.viper.getCurrentRange();range.setStart(range._getFirstSelectableChild(p),0);range.setEnd(range._getFirstSelectableChild(p),0);ViperSelection.addRange(range);}}else{var rangeSet=false;var node=movieElem.nextSibling;while(node){if(node.nodeType===dfx.ELEMENT_NODE){var range=this.viper.getCurrentRange();var first=range._getFirstSelectableChild(node);if(first){range.setStart(first,1);range.setEnd(first,1);ViperSelection.addRange(range);rangeSet=true;}
break;}
node=node.nextSibling;}
if(rangeSet===false){var p=document.createElement('p');dfx.setHtml(p,'&nbsp;');dfx.insertAfter(movieElem,p);var range=this.viper.getCurrentRange();range.setStart(range._getFirstSelectableChild(p),0);range.setEnd(range._getFirstSelectableChild(p),0);ViperSelection.addRange(range);}}
dfx.preventDefault(e);return false;}
return false;}
if(e.target.parentNode&&e.target.parentNode.parentNode){e.target.parentNode.parentNode.parentNode.removeChild(e.target.parentNode.parentNode);}
return false;}}},_updateKeyword:function(keywordEl,nwidth,nheight,owitdh,oheight)
{var keyword=dfx.attr(keywordEl,'keyword');keyword=keyword.replace(/-\d+-\d+/,'-'+nwidth+'-'+nheight);dfx.attr(keywordEl,'keyword',keyword);dfx.attr(keywordEl,'Keyword:'+keyword);}};dfx.noInclusionInherits('ViperMoviePlugin','ViperPlugin',true);function ViperMoviePluginWidgetType(id)
{Widget.call(this,id);this.name='editingMovieEditor';this.assetPicker=null;this.optWidgets={'internal':{}};this.optionsCont=null;this.internalMovieEl=null;this.closedEvent=null;this.selectedElem=null;this.selectedAsset=null;}
ViperMoviePluginWidgetType.prototype={create:function(callback)
{this.init(callback);},init:function(callback)
{var self=this;this.assetPicker=WidgetStore.get('EditingAssetPicker');this.assetPicker.setScreen(this.name);this.assetPicker.setView(this.name,'thumbs');this.assetPicker.setTitle('Insert Movie');this.assetPicker.setSubTitle('Select the movie you want to insert');this.assetPicker.setButtonTitle('Insert Movie');this.assetPicker.addProjectFolderWhiteList(this.name,'Movies');this.assetPicker.setHideSite(this.name);this.assetPicker.setUniqueSelect(true);this.assetPicker.setClass(this.name,this.getClass()+'-dialog');this.assetPicker.setModalSize(710,370);this.assetPicker.addItemClickedEvent(function(itemid,type,e){self.setSelectedItemValues(itemid);},true);this.assetPicker.setHideTopLevel(this.name);this.createOptionsContainer(function(el){self.assetPicker.setFooterContent(el);callback.call(self);});},getValuesFromElem:function(elem)
{var values={};var keyword=dfx.attr(elem,'keyword');if(keyword){var parts=keyword.match(/-(\d+)-(\d+):(\d+)/);if(parts.length===4){values.width=parts[1];values.height=parts[2];values.assetid=parts[3];}}
return values;},open:function(elem)
{var self=this;if(elem){this.selectedElem=elem;var values=this.getValuesFromElem(elem);var self=this;AssetManager.getAsset(values.assetid,function(asset){if(asset){self.setValues(asset,values);if(asset.hasOwnProperty('id')===true){AssetManager.getAssetAutoscrollPath(asset.id,function(lineage){self.assetPicker.setAutoScrollLineage(lineage,self.name);self.assetPicker.init(self.name,function(){self.assetPicker.dialog.addOnCloseCallback(self.closedEvent);self.assetPicker.showFooter('175px');self.assetPicker.dialog.open();});});}}},true,{attributes:['name','width','height','duration'],type:false,typeIcon:false,linking:[],urls:false});return;}
this.assetPicker.setAutoScrollLineage(null,this.name);this.assetPicker.init(this.name,function(){self.assetPicker.dialog.addOnCloseCallback(self.closedEvent);self.assetPicker.showFooter('175px');self.assetPicker.dialog.open();});},setSelectedItemValues:function(itemid)
{var self=this;AssetManager.getAsset(itemid,function(asset){if(dfx.isset(asset)===true){var name=asset.getAttribute('name');self.setValues(asset,'','','');}},true,{attributes:['name','width','height','duration'],type:false,typeIcon:false,linking:[],urls:false});},setValues:function(asset,values)
{this.selectedAsset=asset;var width=values.width||asset.getAttribute('width');var height=values.height||asset.getAttribute('height');var c=this.getClass();var widthCont=dfx.getClass(c+'-width-value',this.internalMovieEl)[0];var heightCont=dfx.getClass(c+'-height-value',this.internalMovieEl)[0];var name=dfx.getClass(c+'-assetInfo-value',this.internalMovieEl)[0];var assetNameHTML=dfx.ellipsize(asset.name,27);assetNameHTML+='&nbsp;<span class="AssetPickerDialog-currentSelectionTitle-assetid">[#';assetNameHTML+=dfx.ellipsize(asset.id.toString(),10)+']</span>';dfx.setHtml(name,assetNameHTML);this.optWidgets.internal.width.setValue(width);this.optWidgets.internal.height.setValue(height);dfx.setStyle([widthCont,heightCont],'display','block');var imgInf=dfx.getClass(c+'-imagePreviewCont-inf',this.internalMovieEl)[0];var seconds=asset.getAttribute('duration');var rdtime=this.secondsToHms(seconds);dfx.setHtml(imgInf,asset.getAttribute('width')+' x '+asset.getAttribute('height')+' ('+rdtime+')');var url=Widget.BASE_URL+'?tb=1&a='+asset.id+'&_'+(new Date).getTime();var imgCont=dfx.getClass(c+'-imagePreviewCont-img',this.internalMovieEl)[0];this._setPreviewMovie(imgCont,url);},secondsToHms:function(seconds)
{hms="";if(seconds<60){hms+='0';}else{hours=parseInt(parseInt(seconds)/3600);if(hours>0){hms+=hours+':';}
minutes=parseInt((seconds/60)%60);if(hours>0){if(hours>=10){hms+=minutes;}else{hms+='0'+minutes;}}else{hms+=minutes;}}
secs=parseInt(seconds%60);hms+=':';if(secs>=10){hms+=secs;}else{hms+='0'+secs;}
return hms;},setClosedEvent:function(fn)
{this.closedEvent=fn;},setClickEvent:function(callback)
{var self=this;this.assetPicker.addAssetsSelectedAction(function(selectedAssets){var selectedAsset=null;if(self.selectedAsset!==null){selectedAsset=self.selectedAsset.id;}
if(selectedAsset!==null){AssetManager.getAsset(selectedAsset,function(asset){var internal=self.optWidgets.internal;var width=internal.width.getValue()||'';var height=internal.height.getValue()||'';callback.call(self,asset.id,height,width,self.selectedElem);},false,{attributes:['width','height','duration'],type:false,typeIcon:false,linking:[],urls:true});}else{callback.call(self,null);}},true);},createOptionsContainer:function(callback)
{var c=this.getClass()+'-opts';var container=document.createElement('div');dfx.addClass(container,c);this.optionsCont=container;var self=this;this.includeWidget('TextField',function(){self._createTabs(function(internal){self.internalMovieEl=internal;container.appendChild(internal);callback.call(self,container);});});},_createTabs:function(callback)
{var self=this;this._createInternalTab(function(internal){callback.call(this,internal);});},_createInternalTab:function(callback)
{var main=document.createElement('div');var c=this.getClass();var content='<div class="'+c+'-imagePreviewCont">';content+='<div class="'+c+'-imagePreviewCont-img"><div class="'+c+'-imagePreviewCont-nimg"></div></div>';content+='<div class="'+c+'-imagePreviewCont-inf"></div>';content+='</div>';dfx.addClass(main,c+'-settings');content+='<div class="'+c+'-imageInfoCont">';content+='<div class="'+c+'-assetInfo">';content+='<label class="'+c+'-label">Asset</label>';content+='<div class="'+c+'-assetInfo-value"></div>';content+='</div>';content+='<div class="'+c+'-width">';content+='<label class="'+c+'-label">Width</label>';content+='<div class="'+c+'-width-text"></div>';content+='<div class="'+c+'-width-value"></div>';content+='</div>';content+='<div class="'+c+'-height">';content+='<label class="'+c+'-label">Height</label>';content+='<div class="'+c+'-height-text"></div>';content+='<div class="'+c+'-height-value"></div>';content+='</div>';content+='</div>';dfx.setHtml(main,content);var widthCont=dfx.getClass(c+'-width-value',main)[0];var heightCont=dfx.getClass(c+'-height-value',main)[0];dfx.setStyle([widthCont,heightCont],'display','none');var self=this;this.includeWidget('TextField',function(){var width=self.createWidget(self.id+'-width','TextField');var height=self.createWidget(self.id+'-height','TextField');self.optWidgets.internal.width=width;self.optWidgets.internal.height=height;width.create(function(widthEl){widthCont.appendChild(widthEl);});height.create(function(heightEl){heightCont.appendChild(heightEl);});});callback.call(this,main);},_setPreviewMovie:function(cont,url,callback)
{if(url.length===0){callback.call(this,false,0,0);}
var self=this;this._getMovie(url,function(image){var w,h=0;if(image!==false){w=image.width;h=image.height;image=self._resizeMovie(image);}
dfx.empty(cont);if(image!==false){cont.appendChild(image);}
if(dfx.isFn(callback)===true){callback.call(this,image,w,h);}});},_getMovie:function(url,callback)
{var img=new Image();img.onload=function(){callback.call(this,img);};img.onerror=function(){callback.call(this,false);};img.src=url;},_resizeMovie:function(img)
{var h=img.height;var w=img.width;if(h>w){w=(105/(h/w));dfx.attr(img,'height','105');dfx.attr(img,'width',w);}else{h=(150/(w/h));dfx.attr(img,'height',h);dfx.attr(img,'width','150');}
return img;},_setOptCont:function(opt,cont)
{var c=this.getClass()+'-opts';dfx.getClass(c+'-'+opt,this.optionsCont)[0].appendChild(cont);},getClass:function()
{return'ViperMoviePlugin';}};dfx.inherits('ViperMoviePlugin','Widget');function ViperRedoPlugin(viper)
{ViperPlugin.call(this,viper);ViperPluginManager.addKeyPressListener('CTRL+Z',this,'handleUndo');ViperPluginManager.addKeyPressListener('CTRL+Y',this,'handleRedo');}
ViperRedoPlugin.prototype={start:function()
{var self=this;this.toolbarPlugin=ViperPluginManager.getPlugin('ViperToolbarPlugin');if(dfx.isset(this.toolbarPlugin)===true){var name='Redo';var ctrlName='CTRL';if(navigator.platform.toLowerCase().indexOf('mac')!==false){ctrlName='CMD';}
this.toolbarPlugin.addButton(name,'undo','Undo ('+ctrlName+' + Z)',function(){return self.handleUndo();});this.toolbarPlugin.setButtonDisabled('undo');this.toolbarPlugin.addButton(name,'redo','Redo ('+ctrlName+' + Y)',function(){return self.handleRedo();});this.toolbarPlugin.setButtonDisabled('redo');}
this.viper.registerCallback('ViperUndoManager:newUndoTask','ViperRedoPlugin',function(){self._updateButtonStates();});},handleUndo:function()
{ViperUndoManager.undo();this._updateButtonStates();return true;},handleRedo:function()
{ViperUndoManager.redo();this._updateButtonStates();return true;},_updateButtonStates:function()
{if(!this.toolbarPlugin){return;}
if(ViperUndoManager.getUndoCount()>1){this.toolbarPlugin.setButtonInactive('undo');}else{this.toolbarPlugin.setButtonDisabled('undo');}
if(ViperUndoManager.getRedoCount()>0){this.toolbarPlugin.setButtonInactive('redo');}else{this.toolbarPlugin.setButtonDisabled('redo');}}};dfx.noInclusionInherits('ViperRedoPlugin','ViperPlugin',true);function ViperSourceViewPlugin(viper)
{ViperPlugin.call(this,viper);this.toolbarPlugin=null;this.modalDialog=null;this.textarea=null;this.multiplier=4;}
ViperSourceViewPlugin.prototype={start:function()
{var self=this;this.toolbarPlugin=ViperPluginManager.getPlugin('ViperToolbarPlugin');this.toolbarPlugin.addButton('SourceView','code','Source View',function(){self.showSource();});},showSource:function()
{var self=this;ViperPluginManager.setActivePlugin('ViperSourceViewPlugin',false);var content=this.viper.getHtml(this.viper.element);content=content.replace(/(viper_src|viper_href)+="(\S+)"/gi,function(fullStr,attrName,val){return attrName.replace('viper_','')+'="'+val+'"'});this.createDialog(content,function(){var val=self.textarea.value;val=self.escapeContent(val);var keywordPlugin=ViperPluginManager.getPlugin('ViperKeywordPlugin');keywordPlugin.replaceKeywords(val,function(val){if(val===''){if(self.viper.element.inlineMode!==true&&dfx.getStyle(self.viper.element,'display')==='block'){val='<p>&nbsp;</p>';}else{val='&nbsp;';}}
self.viper.setHtml(val,function(){self.modalDialog.close();self.viper.fireNodesChanged('ViperSourceViewPlugin:update');ViperChangeTracker.reLoad();var firstChild=dfx.getFirstChild(self.viper.element);if(firstChild){var range=self.viper.getCurrentRange();range.setStart(firstChild,0);range.collapse(true);}});});});},escapeContent:function(content)
{var allTags=/([\n]?(<\/?(p|div|pre|ul|ol|tbody|table|tr|td|th|fieldset|form|blockquote|dl|dir|center|address|h1|h2|h3|h4|h5|h6)((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)\/?>)[\n]?)/gim;content=content.replace(allTags,"$2");return content;},createDialog:function(content,callback)
{content=this.styleHTML(content);content=this.cleanupHTML(content);var textarea=document.createElement('textarea');this.textarea=textarea;dfx.addClass(textarea,'ViperSourceViewPlugin');textarea.value=content;textarea.setAttribute('rows',30);textarea.setAttribute('cols',80);var self=this;this.includeWidget('ModalDialog',function(){var modalDialog=self.createWidget('ViperSourceViewDialog','ModalDialog');modalDialog.setContent(textarea);modalDialog.setTitle('Source View');modalDialog.create(function(){modalDialog.addButton('Update',function(button){button.addClickEvent(callback);});self.modalDialog=modalDialog;self.modalDialog.open(function(){textarea.focus();});modalDialog.addOnCloseCallback(function(){ViperPluginManager.setActivePlugin(null);});});});},cleanupHTML:function(content)
{content=content.replace(/<(img|br|hr)((\s+\w+(\s*=\s*(?:".*?"|\'.*?\'|[^\'">\s]+))?)+)?\s*>/ig,"<$1$2 />");return content;},format:function(content)
{var output='';var match=null;var tabCount=0;var prevIndex=0;content=content.replace(/\n/gi,' ');content=content.replace(/\r/gi,'');var c=String.fromCharCode(160);var allTags=/<\/?(p|div|pre|ul|ol|tbody|table|tr|td|th|fieldset|form|blockquote|dl|dir|center|address|h1|h2|h3|h4|h5|h6)((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)\/?>/gim;content=content.replace(allTags,"\n$&\n");content=content.replace(/\n\n/gm,"\n");var endTags=/<\/(p|div|pre|ul|ol|tbody|table|fieldset|form|blockquote|dl|dir|center|address|h1|h2|h3|h4|h5|h6)>/gim;content=content.replace(endTags,"$&\n");content=content.replace(/\s+\n/,'\n');while((match=allTags.exec(content))!=null){var innerHtml=content.substring(prevIndex,match.index);if(dfx.isBlank(innerHtml)===false&&tabCount>1){output+=dfx.strRepeat(c,((tabCount-1)*this.multiplier));}
output+=innerHtml;if(match[0].charAt(1)==='/'){tabCount--;output+=dfx.strRepeat(c,(tabCount*this.multiplier));}else{output+=dfx.strRepeat(c,(tabCount*this.multiplier));tabCount++;}
output+=content.substr(match.index,match[0].length+1);prevIndex=match.index+match[0].length+1;}
output+=content.substr(prevIndex);output=dfx.trim(output);return output;},styleHTML:function(html_source,indent_size,indent_character,max_char,brace_style)
{var Parser,multi_parser;function Parser(){this.pos=0;this.token='';this.current_mode='CONTENT';this.tags={parent:'parent1',parentcount:1,parent1:''};this.tag_type='';this.token_text=this.last_token=this.last_text=this.token_type='';this.Utils={whitespace:"\n\r\t ".split(''),single_token:'br,input,link,meta,!doctype,basefont,base,area,hr,wbr,param,img,isindex,?xml,embed'.split(','),extra_liners:'head,body,/html'.split(','),in_array:function(what,arr){for(var i=0;i<arr.length;i++){if(what===arr[i]){return true;}}
return false;}}
this.get_content=function(){var input_char='';var content=[];var space=false;while(this.input.charAt(this.pos)!=='<'){if(this.pos>=this.input.length){return content.length?content.join(''):['','TK_EOF'];}
input_char=this.input.charAt(this.pos);this.pos++;this.line_char_count++;if(this.Utils.in_array(input_char,this.Utils.whitespace)){if(content.length||input_char===' '){space=true;}
this.line_char_count--;continue;}
else if(space){if(this.line_char_count>=this.max_char){content.push('\n');for(var i=0;i<this.indent_level;i++){content.push(this.indent_string);}
this.line_char_count=0;}
else{content.push(' ');this.line_char_count++;}
space=false;}
content.push(input_char);}
if(space===true){content.push(input_char);space=false;}
return content.length?content.join(''):'';}
this.get_script=function(){var input_char='';var content=[];var reg_match=new RegExp('\<\/script'+'\>','igm');reg_match.lastIndex=this.pos;var reg_array=reg_match.exec(this.input);var end_script=reg_array?reg_array.index:this.input.length;while(this.pos<end_script){if(this.pos>=this.input.length){return content.length?content.join(''):['','TK_EOF'];}
input_char=this.input.charAt(this.pos);this.pos++;content.push(input_char);}
return content.length?content.join(''):'';}
this.record_tag=function(tag){if(this.tags[tag+'count']){this.tags[tag+'count']++;this.tags[tag+this.tags[tag+'count']]=this.indent_level;}
else{this.tags[tag+'count']=1;this.tags[tag+this.tags[tag+'count']]=this.indent_level;}
this.tags[tag+this.tags[tag+'count']+'parent']=this.tags.parent;this.tags.parent=tag+this.tags[tag+'count'];}
this.retrieve_tag=function(tag){if(this.tags[tag+'count']){var temp_parent=this.tags.parent;while(temp_parent){if(tag+this.tags[tag+'count']===temp_parent){break;}
temp_parent=this.tags[temp_parent+'parent'];}
if(temp_parent){this.indent_level=this.tags[tag+this.tags[tag+'count']];this.tags.parent=this.tags[temp_parent+'parent'];}
delete this.tags[tag+this.tags[tag+'count']+'parent'];delete this.tags[tag+this.tags[tag+'count']];if(this.tags[tag+'count']==1){delete this.tags[tag+'count'];}
else{this.tags[tag+'count']--;}}}
this.get_tag=function(){var input_char='';var content=[];var space=false;do{if(this.pos>=this.input.length){return content.length?content.join(''):['','TK_EOF'];}
input_char=this.input.charAt(this.pos);this.pos++;this.line_char_count++;if(this.Utils.in_array(input_char,this.Utils.whitespace)){space=true;this.line_char_count--;continue;}
if(input_char==="'"||input_char==='"'){if(!content[1]||content[1]!=='!'){input_char+=this.get_unformatted(input_char);space=true;}}
if(input_char==='='){space=false;}
if(content.length&&content[content.length-1]!=='='&&input_char!=='>'&&space){if(this.line_char_count>=this.max_char){this.print_newline(false,content);this.line_char_count=0;}
else{content.push(' ');this.line_char_count++;}
space=false;}
content.push(input_char);}while(input_char!=='>');var tag_complete=content.join('');var tag_index;if(tag_complete.indexOf(' ')!=-1){tag_index=tag_complete.indexOf(' ');}
else{tag_index=tag_complete.indexOf('>');}
var tag_check=tag_complete.substring(1,tag_index).toLowerCase();if(tag_complete.charAt(tag_complete.length-2)==='/'||this.Utils.in_array(tag_check,this.Utils.single_token)){this.tag_type='SINGLE';}
else if(tag_check==='script'){this.record_tag(tag_check);this.tag_type='SCRIPT';}
else if(tag_check==='style'){this.record_tag(tag_check);this.tag_type='STYLE';}
else if(tag_check==='a'){var comment=this.get_unformatted('</a>',tag_complete);content.push(comment);this.tag_type='INLINE';}
else if(('|pre|strong|em|i|sub|sup|u|strike|').indexOf('|'+tag_check+'|')>=0){content.push(this.get_unformatted('</'+tag_check+'>'));this.tag_type='INLINE';}
else if(tag_check.charAt(0)==='!'){if(tag_check.indexOf('[if')!=-1){if(tag_complete.indexOf('!IE')!=-1){var comment=this.get_unformatted('-->',tag_complete);content.push(comment);}
this.tag_type='START';}
else if(tag_check.indexOf('[endif')!=-1){this.tag_type='END';this.unindent();}
else if(tag_check.indexOf('[cdata[')!=-1){var comment=this.get_unformatted(']]>',tag_complete);content.push(comment);this.tag_type='SINGLE';}
else{var comment=this.get_unformatted('-->',tag_complete);content.push(comment);this.tag_type='SINGLE';}}
else{if(tag_check.charAt(0)==='/'){this.retrieve_tag(tag_check.substring(1));this.tag_type='END';}
else{this.record_tag(tag_check);this.tag_type='START';}
if(this.Utils.in_array(tag_check,this.Utils.extra_liners)){this.print_newline(true,this.output);}}
return content.join('');}
this.get_unformatted=function(delimiter,orig_tag){if(orig_tag&&orig_tag.indexOf(delimiter)!=-1){return'';}
var input_char='';var content='';var space=true;do{if(this.pos>=this.input.length){return content;}
input_char=this.input.charAt(this.pos);this.pos++
if(delimiter==='</pre>'){content+=input_char;continue;}
if(this.Utils.in_array(input_char,this.Utils.whitespace)){if(!space){this.line_char_count--;continue;}
if(input_char==='\n'||input_char==='\r'){content+='\n';for(var i=0;i<this.indent_level;i++){content+=this.indent_string;}
space=false;this.line_char_count=0;continue;}}
content+=input_char;this.line_char_count++;space=true;}while(content.indexOf(delimiter)==-1);return content;}
this.get_token=function(){var token;if(this.last_token==='TK_TAG_SCRIPT'){var temp_token=this.get_script();if(typeof temp_token!=='string'){return temp_token;}
token=js_beautify(temp_token,{indent_size:this.indent_size,indent_char:this.indent_character,indent_level:this.indent_level,brace_style:this.brace_style});return[token,'TK_CONTENT'];}
if(this.current_mode==='CONTENT'){token=this.get_content();if(typeof token!=='string'){return token;}
else{return[token,'TK_CONTENT'];}}
if(this.current_mode==='TAG'){token=this.get_tag();if(typeof token!=='string'){return token;}
else{var tag_name_type='TK_TAG_'+this.tag_type;return[token,tag_name_type];}}}
this.printer=function(js_source,indent_character,indent_size,max_char,brace_style){this.input=js_source||'';this.output=[];this.indent_character=indent_character||' ';this.indent_string='';this.indent_size=indent_size||2;this.brace_style=brace_style||'collapse';this.indent_level=0;this.max_char=max_char||70;this.line_char_count=0;for(var i=0;i<this.indent_size;i++){this.indent_string+=this.indent_character;}
this.print_newline=function(ignore,arr){this.line_char_count=0;if(!arr||!arr.length){return;}
if(!ignore){while(this.Utils.in_array(arr[arr.length-1],this.Utils.whitespace)){arr.pop();}}
arr.push('\n');for(var i=0;i<this.indent_level;i++){arr.push(this.indent_string);}}
this.print_token=function(text){this.output.push(text);}
this.indent=function(){this.indent_level++;}
this.unindent=function(){if(this.indent_level>0){this.indent_level--;}}}
return this;}
multi_parser=new Parser();multi_parser.printer(html_source,indent_character,indent_size,300,brace_style);while(true){var t=multi_parser.get_token();multi_parser.token_text=t[0];multi_parser.token_type=t[1];if(multi_parser.token_type==='TK_EOF'){break;}
switch(multi_parser.token_type){case'TK_TAG_START':case'TK_TAG_SCRIPT':case'TK_TAG_STYLE':multi_parser.print_newline(false,multi_parser.output);multi_parser.print_token(multi_parser.token_text);multi_parser.indent();multi_parser.current_mode='CONTENT';break;case'TK_TAG_END':multi_parser.print_newline(true,multi_parser.output);multi_parser.print_token(multi_parser.token_text);multi_parser.current_mode='CONTENT';break;case'TK_TAG_SINGLE':multi_parser.print_token(multi_parser.token_text);multi_parser.current_mode='CONTENT';break;case'TK_TAG_INLINE':multi_parser.print_token(multi_parser.token_text);multi_parser.current_mode='CONTENT';break;case'TK_CONTENT':if(multi_parser.token_text!==''){if(multi_parser.last_token!=='TK_TAG_INLINE'&&multi_parser.last_token!=='TK_TAG_SINGLE'){multi_parser.print_newline(false,multi_parser.output);}
multi_parser.print_token(multi_parser.token_text);}
multi_parser.current_mode='TAG';break;}
multi_parser.last_token=multi_parser.token_type;multi_parser.last_text=multi_parser.token_text;}
return multi_parser.output.join('');}};dfx.noInclusionInherits('ViperSourceViewPlugin','ViperPlugin',true);function ViperSubToolbarPlugin(viper)
{ViperPlugin.call(this,viper);this._toolbars={};this._wrapper=null;this._activeBarid=null;}
ViperSubToolbarPlugin.prototype={createToolBar:function(id)
{if(this._wrapper===null){this._wrapper=this._createWrapper();}
var barid='subToolbar-'+id;var oldbar=dfx.getId(barid);if(oldbar){dfx.remove(oldbar);}
var c='ViperSubToolbar';var div=document.createElement('div');div.id=barid;dfx.addClass(div,c);this._toolbars[id]=div;var toolbarEl=dfx.getId('ViperToolbarPlugin');if(toolbarEl&&toolbarEl.parentNode!==document.body){this.setParentElement(toolbarEl.parentNode);}
var content='<div class="'+c+'-left"></div>';content+='<div class="'+c+'-mid"><div class="'+c+'-mid-wrapper"></div></div>';content+='<div class="'+c+'-right"></div>';dfx.setHtml(div,content);var mid=dfx.getClass(c+'-mid-wrapper',div)[0];this._wrapper.appendChild(div);return mid;},setParentElement:function(parent)
{dfx.remove(this._wrapper);dfx.setStyle(this._wrapper,'position','absolute');dfx.setStyle(this._wrapper,'top','22px');parent.appendChild(this._wrapper);},_createWrapper:function()
{var wrapper=document.createElement('div');dfx.addClass(wrapper,'ViperSubToolbar-wrapper');document.body.appendChild(wrapper);return wrapper;},showToolbar:function(id)
{var bar=this.getBar(id);if(bar){if(this._activeBarid&&id!==this._activeBarid){this.hideToolbar(this._activeBarid);}
dfx.setStyle(bar,'visibility','hidden');dfx.addClass(bar,'active');dfx.setStyle(bar.parentNode,'right',0);var width=dfx.getElementWidth(bar);dfx.setStyle(bar,'margin-right',((width*-1)/2)+'px');dfx.setStyle(bar.parentNode,'right','50%');dfx.setStyle(bar,'visibility','visible');}
this.viper.fireCallbacks('ViperSubToolbar:showToolbar',id);this._activeBarid=id;},hideToolbar:function(id)
{if(this._activeBarid===id){dfx.removeClass(dfx.getClass('ViperSubToolbar',this._wrapper),'active');this._activeBarid=null;this.viper.fireCallbacks('ViperSubToolbar:hideToolbar',id);}},toggleToolbar:function(id)
{if(this._activeBarid===id){this.hideToolbar(id);return false;}else{this.showToolbar(id);return true;}},createOptionsList:function(title)
{var div=document.createElement('div');var c='ViperSubToolbar-optsList';dfx.addClass(div,c);var contents='<div class="'+c+'-title">';contents+='<div class="'+c+'-title-left"></div>';contents+='<div class="'+c+'-title-mid">'+title+'</div>';contents+='<div class="'+c+'-title-right"></div></div>';contents+='<div class="'+c+'-mid"></div>';contents+='<div class="'+c+'-right"></div>';dfx.setHtml(div,contents);var contentDiv=dfx.getClass(c+'-mid',div)[0];return{main:div,contentEl:contentDiv};},getBar:function(id)
{return this._toolbars[id];},isPluginElement:function(el)
{return dfx.isChildOf(el,this._wrapper);},remove:function()
{dfx.remove(this._wrapper);},isActive:function()
{if(this._activeBarid){return true;}
return false;}};dfx.noInclusionInherits('ViperSubToolbarPlugin','ViperPlugin',true);function ViperTableEditorPlugin(viper)
{ViperPlugin.call(this,viper);this.toolbarPlugin=null;this.activeCell=null;this.vCellButtons=null;this.hCellButtons=null;this._subToolbar=null;this._lastNode=null;this._currentTablePropView='cell';this._settingsWidgets={};ViperPluginManager.addKeyPressListener('TAB',this,'handleTab');ViperPluginManager.addKeyPressListener('SHIFT+TAB',this,'handleTab');}
ViperTableEditorPlugin.prototype={start:function()
{if(this.viper.isBrowser('firefox')===true){document.execCommand("enableInlineTableEditing",false,false);document.execCommand("enableObjectResizing",false,false);}
var self=this;this.toolbarPlugin=ViperPluginManager.getPlugin('ViperToolbarPlugin');this.toolbarPlugin.addButton('TableEditor','table','Insert/Edit Table',function(){self.insertTable();});ViperPluginManager.addKeyPressListener('DELETE',this,'handleDelete');dfx.removeEvent(document,'click.TableEditorPlugin');dfx.addEvent(document,'click.TableEditorPlugin',function(e){if(ViperPluginManager.getActivePlugin()==='TableEditor'){var target=dfx.getMouseEventTarget(e);if(dfx.hasClass(target,'ViperTableEditorPlugin-cellButton')!==true){if(dfx.isChildOf(target,self._subToolbar)===false){ViperPluginManager.setActivePlugin(null);if(dfx.isChildOf(target,self.viper.element)===false){self.viper.mouseDown(null,target);}}}}});this.viper.registerCallback('setHtml','TablePlugin',function(data){self.hideCellButtons();});ViperChangeTracker.addChangeType('insertedTable','Inserted','insert');ViperChangeTracker.addChangeType('insertedTableRow','Inserted','insert');ViperChangeTracker.addChangeType('insertedTableCol','Inserted','insert');ViperChangeTracker.setDescriptionCallback('insertedTable',function(node){return'Table';});ViperChangeTracker.setDescriptionCallback('insertedTableRow',function(node){return'Table row';});ViperChangeTracker.setDescriptionCallback('insertedTableCol',function(node){return'Table column';});ViperChangeTracker.setApproveCallback('insertedTable',function(clone,node){ViperChangeTracker.removeTrackChanges(node);});ViperChangeTracker.setApproveCallback('insertedTableRow',function(clone,node){ViperChangeTracker.removeTrackChanges(node);});ViperChangeTracker.setApproveCallback('insertedTableCol',function(clone,node){ViperChangeTracker.removeTrackChanges(node);});ViperChangeTracker.setRejectCallback('insertedTable',function(clone,node){self.removeTable(node);});ViperChangeTracker.setRejectCallback('insertedTableRow',function(clone,node){self.removeRow(node);});ViperChangeTracker.setRejectCallback('insertedTableCol',function(clone,node){self.removeCol(node);});ViperChangeTracker.addChangeType('removedTable','Deleted','remove');ViperChangeTracker.addChangeType('removedTableRow','Deleted','remove');ViperChangeTracker.addChangeType('removedTableCol','Deleted','remove');ViperChangeTracker.setDescriptionCallback('removedTable',function(node){return'Table';});ViperChangeTracker.setDescriptionCallback('removedTableRow',function(node){return'Table row';});ViperChangeTracker.setDescriptionCallback('removedTableCol',function(node){return'Table column';});ViperChangeTracker.setApproveCallback('removedTable',function(clone,node){dfx.remove(node);});ViperChangeTracker.setApproveCallback('removedTableRow',function(clone,node){dfx.remove(node);});ViperChangeTracker.setApproveCallback('removedTableCol',function(clone,node){dfx.remove(node);});ViperChangeTracker.setRejectCallback('removedTable',function(clone,node){ViperChangeTracker.removeTrackChanges(node);});ViperChangeTracker.setRejectCallback('removedTableRow',function(clone,node){ViperChangeTracker.removeTrackChanges(node);});ViperChangeTracker.setRejectCallback('removedTableCol',function(clone,node){ViperChangeTracker.removeTrackChanges(node);});this.viper.registerCallback('ViperChangeTracker:modeChange','ViperTableEditor',function(changedTo){var showInserted=true;var showRemoved=false;if(changedTo==='original'){showInserted=false;showRemoved=true;}
ViperChangeTracker.setNodeTypeVisibility('insertedTable',showInserted);ViperChangeTracker.setNodeTypeVisibility('insertedTableRow',showInserted);ViperChangeTracker.setNodeTypeVisibility('insertedTableCol',showInserted);ViperChangeTracker.setNodeTypeVisibility('removedTable',showRemoved);ViperChangeTracker.setNodeTypeVisibility('removedTableRow',showRemoved);ViperChangeTracker.setNodeTypeVisibility('removedTableCol',showRemoved);});this.viper.registerCallback('ViperUndoManager:undo','ViperTableEditor',function(){self.hideCellButtons();});this.viper.registerCallback('ViperUndoManager:redo','ViperTableEditor',function(){self.hideCellButtons();});},clicked:function(e,elem)
{if(!elem){elem=dfx.getMouseEventTarget(e);}
var cell=this.isTableCell(elem);if(cell!==false){this.showCellButtons(cell);}else{this.hideCellButtons();}},isTableCell:function(elem)
{if(!elem){return false;}
var node=elem;while(node&&node!==this.viper.element){if(node.nodeType===dfx.ELEMENT_NODE){var tagName=node.tagName.toLowerCase();if(tagName==='td'||tagName==='th'){return node;}}
node=node.parentNode;}
return false;},handleDelete:function()
{var range=this.viper.getCurrentRange();if(range.startOffset===0&&range.startContainer.nodeType===dfx.TEXT_NODE){node=range.startContainer.parentNode;while(node&&node!==this.viper.element){if(node.nodeType===dfx.ELEMENT_NODE&&node.tagName.toLowerCase()==='td'){if(dfx.getNodeTextContent(node).length===0){dfx.setHtml(node,'&nbsp;');range.setStart(node.firstChild,0);range.collapse(true);}
return true;}
node=node.parentNode;}}},remove:function()
{this.hideCellButtons();dfx.removeEvent(document,'click.TableEditorPlugin');},caretUpdated:function()
{var range=this.viper.getCurrentRange();this._caretUpdated(range.startContainer);},_caretUpdated:function(cell)
{if(!cell){return;}
var parents=dfx.getParents(cell);if(parents.inArray(this.viper.element)===false){return;}
var keywordPlugin=ViperPluginManager.getPlugin('ViperKeywordPlugin');if(keywordPlugin&&keywordPlugin.isKeyword(cell)===true){return;}
while(cell&&cell!==this.viper.element){if(cell.nodeType===dfx.ELEMENT_NODE){var tagName=cell.tagName.toLowerCase();if(tagName==='td'||tagName==='th'){this.showCellButtons(cell);return;}}
cell=cell.parentNode;}
this.hideCellButtons(cell);},setActiveCell:function(cell,noUpdate)
{this.activeCell=cell;if(noUpdate!==true){this.updateSettings(cell);}},_updatecellButtonPositions:function(cell)
{this.showCellButtons(cell,true);},hideCellButtons:function(noDisable)
{try{var cellTable=this.getCellTable(this.activeCell);if(cellTable){dfx.removeClass(dfx.getClass('delHighlight',cellTable),'delHighlight');}
if(noDisable!==true){this.setActiveCell(null);}
dfx.remove(dfx.getClass('ViperTableEditorPlugin-cellButtonsWrapper'));this.vCellButtons=null;this.hCellButtons=null;if(noDisable!==true){ViperPluginManager.setActivePlugin(null);ViperPluginManager.getPlugin('ViperSubToolbarPlugin').hideToolbar('TableEditor');}}catch(e){}},showCellButtons:function(cell,noSet)
{if(!cell){return;}
this.hideCellButtons(true);this.setActiveCell(cell,noSet);var coords=dfx.getBoundingRectangle(cell);if(this.vCellButtons===null){this.vCellButtons=this.createVerticalCellButtons();}
if(this.hCellButtons===null){this.hCellButtons=this.createHorizontalCellButtons();}
var wrapper=document.createElement('div');dfx.addClass(wrapper,'ViperTableEditorPlugin-cellButtonsWrapper');wrapper.appendChild(this.vCellButtons);wrapper.appendChild(this.hCellButtons);document.body.appendChild(wrapper);if(noSet!==true){ViperPluginManager.setActivePlugin('TableEditor');ViperPluginManager.allowTextInput=true;}
this.showVerticalCellButtons(coords);this.showHorizontalCellButtons(coords);if(!this._subToolbar){this._setupSubToolbar();this.updateSettings(cell);}else{var subToolbarPlugin=ViperPluginManager.getPlugin('ViperSubToolbarPlugin');if(subToolbarPlugin){subToolbarPlugin.showToolbar('TableEditor');}}},showHorizontalCellButtons:function(coords)
{dfx.setStyle(this.hCellButtons,'visibility','hidden');dfx.setStyle(this.hCellButtons,'display','block');var h=14;var w=42;dfx.setStyle(this.hCellButtons,'top',(coords.y1-h)+'px');dfx.setStyle(this.hCellButtons,'left',(coords.x2-((coords.x2-coords.x1)/2)-(w/2))+'px');dfx.setStyle(this.hCellButtons,'visibility','visible');},showVerticalCellButtons:function(coords)
{dfx.setStyle(this.vCellButtons,'visibility','hidden');dfx.setStyle(this.vCellButtons,'display','block');var h=42;var w=14;dfx.setStyle(this.vCellButtons,'top',(coords.y1+((coords.y2-coords.y1)/2)-(h/2))+'px');dfx.setStyle(this.vCellButtons,'left',(coords.x1-w)+'px');dfx.setStyle(this.vCellButtons,'visibility','visible');},createVerticalCellButtons:function()
{var main=document.createElement('div');dfx.addClass(main,'ViperTableEditorPlugin-v-cellButtons');var insertRowAfter=document.createElement('div');dfx.attr(insertRowAfter,'title','Insert row below');dfx.addClass(insertRowAfter,'down');var insertRowBefore=document.createElement('div');dfx.attr(insertRowBefore,'title','Insert row above');dfx.addClass(insertRowBefore,'up');var removeRow=document.createElement('div');dfx.addClass(removeRow,'delete');dfx.attr(removeRow,'title','Delete row');dfx.addClass([insertRowAfter,insertRowBefore,removeRow],'ViperTableEditorPlugin-cellButton');main.appendChild(insertRowBefore);main.appendChild(removeRow);main.appendChild(insertRowAfter);var self=this;dfx.addEvent(insertRowAfter,'click',function(){self.insertRowAfter();});dfx.addEvent(insertRowBefore,'click',function(){self.insertRowBefore();});dfx.addEvent(removeRow,'click',function(){self.removeRow();});dfx.hover(insertRowAfter,function(){dfx.addClass(main,'after');},function(){dfx.removeClass(main,'after');});dfx.hover(insertRowBefore,function(){dfx.addClass(main,'before');},function(){dfx.removeClass(main,'before');});dfx.hover(removeRow,function(){dfx.addClass(main,'delete');if(self.activeCell&&self.activeCell.parentNode){dfx.addClass(self.activeCell.parentNode,'delHighlight');}},function(){dfx.removeClass(main,'delete');if(self.activeCell&&self.activeCell.parentNode){dfx.removeClass(self.activeCell.parentNode,'delHighlight');}});return main;},createHorizontalCellButtons:function()
{var main=document.createElement('div');dfx.addClass(main,'ViperTableEditorPlugin-h-cellButtons');var insertColAfter=document.createElement('div');dfx.attr(insertColAfter,'title','Insert column to the right');dfx.addClass(insertColAfter,'right');var insertColBefore=document.createElement('div');dfx.attr(insertColBefore,'title','Insert column to the left');dfx.addClass(insertColBefore,'left');var removeCol=document.createElement('div');dfx.addClass(removeCol,'delete');dfx.attr(removeCol,'title','Delete column');dfx.addClass([insertColAfter,insertColBefore,removeCol],'ViperTableEditorPlugin-cellButton');main.appendChild(insertColBefore);main.appendChild(removeCol);main.appendChild(insertColAfter);var self=this;dfx.addEvent(insertColAfter,'click',function(){self.insertColAfter();});dfx.addEvent(insertColBefore,'click',function(){self.insertColBefore();});dfx.addEvent(removeCol,'click',function(){self.removeCol();});dfx.hover(insertColAfter,function(){dfx.addClass(main,'right');},function(){dfx.removeClass(main,'right');});dfx.hover(insertColBefore,function(){dfx.addClass(main,'left');},function(){dfx.removeClass(main,'left');});dfx.hover(removeCol,function(){dfx.addClass(main,'delete');var table=self.getCellTable(self.activeCell);dfx.addClass(self.getColumnCells(table,self._getColNum(self.activeCell)),'delHighlight');},function(){dfx.removeClass(main,'delete');var table=self.getCellTable(self.activeCell);dfx.removeClass(self.getColumnCells(table,self._getColNum(self.activeCell)),'delHighlight');});return main;},insertRowBefore:function()
{this.insertRow(true);},insertRowAfter:function()
{this.insertRow();},insertRow:function(before)
{if(!this.activeCell){return;}
var tr=this.activeCell.parentNode;var clone=tr.cloneNode(true);var cln=clone.childNodes.length;for(var i=0;i<cln;i++){var el=clone.childNodes[i];if(el.nodeType===dfx.ELEMENT_NODE){dfx.setStyle(el,'width','');dfx.setHtml(el,'&nbsp;');}}
if(before===true){dfx.insertBefore(tr,clone);}else{dfx.insertAfter(tr,clone);}
ViperChangeTracker.addChange('insertedTableRow',[clone]);var cellNum=0;var trcln=tr.childNodes.length;for(cellNum=0;cellNum<trcln;cellNum++){if(this.activeCell===tr.childNodes[cellNum]){break;}}
this.moveCaretToCell(clone.childNodes[cellNum]);this._nodesUpdated();},removeRow:function(tr)
{if(!tr){tr=this.activeCell.parentNode;}
var elem=this._getNextRow(tr);var pos='parent';if(!elem){elem=this._getPreviousRow(tr);if(!elem){elem=null;}else{pos='after';}}else{pos='before';}
if(ViperChangeTracker.isTracking()===true&&ViperChangeTracker.isTrackingNode(tr)!==true){var del=document.createElement('del');dfx.insertBefore(tr,del);del.appendChild(tr);dfx.removeClass(tr,'delHighlight');ViperChangeTracker.addChange('removedTableRow',[del]);}else{dfx.remove(tr);}
if(elem){var colNum=this._getColNum(this.activeCell);var column=this._getColumn(elem,colNum);this.moveCaretToCell(column);}else{var table=this.getCellTable(this.activeCell);this.removeTable(table);}
this._nodesUpdated();},_getColNum:function(cell)
{if(!cell){return null;}
var tr=cell.parentNode;if(!tr){return null;}
var ln=tr.childNodes.length;var c=0;for(var i=0;i<ln;i++){var node=tr.childNodes[i];if(node.nodeType===dfx.ELEMENT_NODE){var tagName=node.tagName.toLowerCase();if(tagName==='td'||tagName==='th'){if(node===cell){break;}
c++;}}}
return c;},_getColumn:function(row,colNum)
{var ln=row.childNodes.length;for(var i=0;i<ln;i++){var node=row.childNodes[i];if(node.nodeType===dfx.ELEMENT_NODE){var tagName=node.tagName.toLowerCase();if(tagName==='td'||tagName==='th'){if(colNum===0){return node;}
colNum--;}}}},_getPreviousRow:function(row)
{while(row=row.previousSibling){if(row.nodeType===dfx.ELEMENT_NODE){var tagName=row.tagName.toLowerCase();if(tagName==='tr'||tagName==='th'){return row;}}}},_getNextRow:function(row,goPrev)
{while(row=row.nextSibling){if(row.nodeType===dfx.ELEMENT_NODE){var tagName=row.tagName.toLowerCase();if(tagName==='tr'||tagName==='th'){return row;}}}
if(goPrev===true){return this._getPreviousRow(row);}},insertColAfter:function()
{this.insertCol();},insertColBefore:function()
{this.insertCol(true);},insertCol:function(before)
{var table=this.activeCell.parentNode.parentNode;var rows=dfx.getTag('tr',table);var activeCellRow=this.activeCell.parentNode;var colNum=this._getColNum(this.activeCell);var changeid=ViperChangeTracker.startBatchChange('insertedTableCol');var td;var rln=rows.length;for(var i=0;i<rln;i++){var col=this._getColumn(rows[i],colNum);td=document.createElement(col.tagName);dfx.setHtml(td,'&nbsp;');if(i===0){dfx.setStyle(td,'width','100px');}
if(before===true){dfx.insertBefore(col,td);}else{dfx.insertAfter(col,td);}
if(changeid!==null){ViperChangeTracker.addNodeToChange(changeid,td);}}
if(changeid){ViperChangeTracker.endBatchChange(changeid);}
if(activeCellRow){if(before!==true){colNum++;}
var column=this._getColumn(activeCellRow,colNum);this.moveCaretToCell(column);}
this._nodesUpdated();},getColumnCells:function(table,colNum)
{if(!table){return;}
var cols=[];var rows=dfx.getTag('tr',table);var rln=rows.length;for(var i=0;i<rln;i++){cols.push(this._getColumn(rows[i],colNum));}
return cols;},removeCol:function(col)
{if(!col){col=this.activeCell;}
var colNum=this._getColNum(col);if(colNum===null){return;}
var row=col.parentNode;var table=this.getRowTable(row);var rows=dfx.getTag('tr',table);var changeid=null;if(ViperChangeTracker.isTrackingNode(col)!==true){changeid=ViperChangeTracker.startBatchChange('removedTableCol');}
var rln=rows.length;for(var i=0;i<rln;i++){col=this._getColumn(rows[i],colNum);if(changeid){var del=document.createElement('del');dfx.insertBefore(col,del);del.appendChild(col);dfx.removeClass(col,'delHighlight');ViperChangeTracker.addNodeToChange(changeid,del);}else{dfx.remove(col);}}
ViperChangeTracker.endBatchChange(changeid);if(colNum>0){colNum--;}
var nextCell=this._getColumn(row,colNum);if(!nextCell){this.removeTable(table,true);}else{this.moveCaretToCell(nextCell);}
this._nodesUpdated();},getNextCell:function(cell,goPrev)
{while(cell.nextSibling){cell=cell.nextSibling;if(cell.nodeType===dfx.ELEMENT_NODE){var tagName=cell.tagName.toLowerCase();if(tagName==='td'||tagName==='th'){return cell;}}}
if(goPrev===true){return this.getPrevCell(cell);}else{var nextRow=this._getNextRow(cell.parentNode);if(nextRow){return this._getColumn(nextRow,0);}}},getPrevCell:function(cell)
{while(cell.previousSibling){cell=cell.previousSibling;if(cell.nodeType===dfx.ELEMENT_NODE){var tagName=cell.tagName.toLowerCase();if(tagName==='td'||tagName==='th'){return cell;}}}
var prevRow=this._getPreviousRow(cell.parentNode);if(prevRow){var col=(dfx.getTag('td,th',prevRow).length-1);return this._getColumn(prevRow,col);}},moveCaretToCell:function(cell)
{if(cell){var range=this.viper.getCurrentRange();range.setStart(cell,0);range.moveStart('character',1);range.moveStart('character',-1);range.collapse(true);return range;}else{this.hideCellButtons();}},removeTable:function(table,emptyOnly)
{if(emptyOnly===true){if(dfx.find(table,'tr > td').length>0||dfx.find(table,'tr > th').length>0){return;}}
if(ViperChangeTracker.isTracking()===true){var del=document.createElement('del');dfx.insertBefore(table,del);del.appendChild(table);ViperChangeTracker.addChange('removedTable',[del]);}else{dfx.remove(table);}
this.hideCellButtons();this._nodesUpdated();},getCellTable:function(cell)
{if(!cell){return null;}
var node=cell;while(node){if(node.nodeType===dfx.ELEMENT_NODE){if(node.tagName.toLowerCase()==='table'){return node;}}
node=node.parentNode;}},getRowTable:function(row)
{return this.getCellTable(row);},insertTable:function(rows,cols)
{rows=rows||2;cols=cols||3;var table=document.createElement('table');dfx.setStyle(table,'display','none');ViperChangeTracker.addChange('insertedTable',[table]);var tbody=document.createElement('tbody');var firstCol=null;for(var i=0;i<rows;i++){var tr=document.createElement('tr');for(var j=0;j<cols;j++){var td=document.createElement('td');if(i===0){dfx.setStyle(td,'width','100px');}
dfx.setHtml(td,'&nbsp;');tr.appendChild(td);if(firstCol===null){firstCol=td;}}
tbody.appendChild(tr);}
table.appendChild(tbody);var bookmark=this.viper.createBookmark();var splitInfo=this.viper.splitNodeAtBookmark('p',bookmark);if(splitInfo){if(splitInfo.prevNode){dfx.insertAfter(splitInfo.prevNode,table);}else if(splitInfo.nextNode){dfx.insertBefore(splitInfo.nextNode,table);if(this.viper.elementIsEmpty(splitInfo.nextNode)===true){dfx.remove(splitInfo.nextNode);}}}
var width=parseInt(dfx.getComputedStyle(table,'width'));if(!width){dfx.setStyle(table,'width','300px');}
var col=dfx.getTag('td',table)[0];var rightWidth=parseInt(dfx.getComputedStyle(col,'border-right-width'));var bottomWidth=parseInt(dfx.getComputedStyle(col,'border-bottom-width'));if(bottomWidth===0||rightWidth===0||isNaN(bottomWidth)===true||isNaN(rightWidth)===true){dfx.attr(table,'border',1);}
dfx.setStyle(table,'display','');this._nodesUpdated();if(firstCol){var range=this.viper.getCurrentRange();range.setStart(firstCol.firstChild,0);range.collapse(true);ViperSelection.addRange(range);}},handleTab:function(e)
{if(this.activeCell!==null){var cell=null;if(e.shiftKey!==true){cell=this.getNextCell(this.activeCell);}else{cell=this.getPrevCell(this.activeCell);}
this.moveCaretToCell(cell);return true;}},isPluginElement:function(elem)
{if(dfx.hasClass(elem,'ViperTableEditorPlugin-cellButton')!==true){if(dfx.isChildOf(elem,self._subToolbar)===false){return false;}}
return true;},_nodesUpdated:function(noFocus)
{this.viper.fireNodesChanged('ViperTableEditorPlugin:update',noFocus);},_setupSubToolbar:function()
{var subToolbarPlugin=ViperPluginManager.getPlugin('ViperSubToolbarPlugin');if(!subToolbarPlugin){return;}
var toolbar=subToolbarPlugin.createToolBar('TableEditor');var c='ViperTableEditor-stb';var contents='<div class="'+c+'-left"></div>';contents+='<div class="'+c+'-right"></div>';dfx.setHtml(toolbar,contents);this._subToolbar=toolbar;var self=this;this.includeWidgets(['Button','RadioButton','SpinButton','TextField','Select'],function(){var changePropTypeBtn=self.createWidget(c+'-switchToolbar','Button');changePropTypeBtn.setName('Table Properties');changePropTypeBtn.setButtonIconClassName(c+'-switch');changePropTypeBtn.create(function(changePropTypeBtnEl){dfx.addClass(changePropTypeBtn.domElem,c+'-tableProperties');changePropTypeBtn.setMinWidth('110px');dfx.getClass(c+'-right',toolbar)[0].appendChild(changePropTypeBtnEl);});self._currentTablePropView='cell';changePropTypeBtn.addClickEvent(function(){if(self._currentTablePropView==='table'){changePropTypeBtn.setName('Table Properties');dfx.removeClass(changePropTypeBtn.domElem,c+'-cellProperties');dfx.addClass(changePropTypeBtn.domElem,c+'-tableProperties');self._showProperties('cell');}else{dfx.removeClass(changePropTypeBtn.domElem,c+'-tableProperties');dfx.addClass(changePropTypeBtn.domElem,c+'-cellProperties');changePropTypeBtn.setName('Cell Properties');self._showProperties('table');}});self._setupTableProperties(function(tablePropertiesEl){self._setupCellProperties(function(cellPropertiesEl){dfx.getClass(c+'-left',toolbar)[0].appendChild(tablePropertiesEl);dfx.getClass(c+'-left',toolbar)[0].appendChild(cellPropertiesEl);self._showProperties(self._currentTablePropView);subToolbarPlugin.showToolbar('TableEditor');});});});},_setupTableProperties:function(callback)
{var props={tableBorder:'Table Border',cellPadding:'Cell Padding',cellSpacing:'Cell Spacing'};this._settingsWidgets.table={};var self=this;var c='ViperTableEditor-stb';var div=document.createElement('div');dfx.addClass(div,c+'-propertiesWrapper');dfx.addClass(div,c+'-tableProps');var content='';content+='<div class="'+c+'-propContainer" id="'+c+'-propContainer-tableWidth"><label>Table Width</label>';content+='<div class="'+c+'-propWrapper '+c+'-tableWidth-wrapper"></div></div>';dfx.foreach(props,function(propid){content+='<div class="'+c+'-propContainer" id="'+c+'-propContainer-'+propid+'"><label>'+props[propid]+'</label>';content+='<div class="'+c+'-propWrapper '+c+'-'+propid+'-wrapper"></div></div>';});dfx.setHtml(div,content);var tableWidth=this.createWidget(c+'-tableWidth','TextField');var tableWidthType=this.createWidget(c+'-tableWidthType','Select');tableWidthType.addItems({px:'px',pc:'%'});tableWidthType.setSelectedEventValueType('value');tableWidthType.addItemSelectedEvent(function(type){self._changeTableSettingValue('widthType',type);});this._settingsWidgets.table.widthType=tableWidthType;this._settingsWidgets.table.width=tableWidth;tableWidth.create(function(tableWidthEl){tableWidth.setWidth(25);var t=null;dfx.addEvent(tableWidth.domEl,'keyup',function(){if(t){clearTimeout(t);t=null;}
t=setTimeout(function(){var width=parseInt(tableWidth.getValue());self._changeTableSettingValue('width',width);},500);});self._makeOptionEditable(tableWidth.domEl);var parent=dfx.getClass(c+'-tableWidth-wrapper',div)[0];parent.appendChild(tableWidthEl);tableWidthType.create(function(tableWidthTypeEl){dfx.insertAfter(parent,tableWidthTypeEl);});});dfx.foreach(props,function(propid){(function(propid){var widgetid=c+'-'+propid;var widget=self.createWidget(widgetid,'SpinButton',0);widget.setInitialValue(0);widget.allowEmptyValue(true);widget.create(function(el){self._makeOptionEditable(widget.domEl);dfx.getClass(widgetid+'-wrapper',div)[0].appendChild(el);});widget.addOnChangeEvent(function(val){self._changeTableSettingValue(propid,val);});self._settingsWidgets.table[propid]=widget;})(propid);});callback.call(this,div);},_makeOptionEditable:function(elem)
{},_setupCellProperties:function(callback)
{this._settingsWidgets.cell={};var self=this;var c='ViperTableEditor-stb';var div=document.createElement('div');dfx.addClass(div,c+'-propertiesWrapper');dfx.addClass(div,c+'-cellProps');var content='<div class="'+c+'-propContainer" id="'+c+'-propContainer-colWidth"><label>Column Width</label>';content+='<div class="'+c+'-propWrapper '+c+'-columnWidth-wrapper"></div>';content+='<div class="'+c+'-propWrapper '+c+'-columnWidthSel-wrapper"></div></div>';content+='<div class="'+c+'-optionListWrapper"></div>';dfx.setHtml(div,content);var colWidthText=this.createWidget(c+'-colWidth-txt','TextField');colWidthText.create(function(colWidthTextEl){var t=null;dfx.addEvent(colWidthText.domEl,'keyup',function(){if(t){clearTimeout(t);t=null;}
t=setTimeout(function(){var width=parseInt(colWidthText.getValue());self._changeSettingValue('width',width);},500);});self._makeOptionEditable(colWidthText.domEl);colWidthText.setWidth(25);dfx.getClass(c+'-columnWidth-wrapper',div)[0].appendChild(colWidthTextEl);});var colWidthSel=this.createWidget(c+'-colWidth-sel','Select');colWidthSel.addItems({px:'px',pc:'%'});colWidthSel.setSelectedEventValueType('value');colWidthSel.addItemSelectedEvent(function(type){self._changeSettingValue('widthType',type);});this._settingsWidgets.cell.widthType=colWidthSel;this._settingsWidgets.cell.width=colWidthText;colWidthSel.create(function(colWidthSelEl){dfx.getClass(c+'-columnWidthSel-wrapper',div)[0].appendChild(colWidthSelEl);});var optsList=ViperPluginManager.getPlugin('ViperSubToolbarPlugin').createOptionsList('Appearance');dfx.addClass(optsList.main,c+'-optionList');(dfx.getClass(c+'-optionListWrapper',div)[0]).appendChild(optsList.main);this._createOptionList(optsList.contentEl);callback.call(this,div);},_createOptionList:function(parent)
{var div=null;var self=this;var opts={tableHeader:'Table Header',noTextWrap:'No Text Wrap'};div=document.createElement('div');var label=document.createElement('label');parent.appendChild(div);dfx.setHtml(label,'Align');div.appendChild(label);dfx.addClass(div,'ViperTableEditor-stb-optItem');div.id='ViperTableEditor-opts-vert';dfx.addClass(div,'first');var alignType={top:'Align to top',middle:'Align to middle',bottom:'Align to bottom'};this._settingsWidgets.cell.valign=div;dfx.foreach(alignType,function(i){var alignDiv=document.createElement('div');dfx.attr(alignDiv,'title',alignType[i]);dfx.addClass(alignDiv,'ViperTableEditor-stb-align');dfx.addClass(alignDiv,'ViperTableEditor-stb-align-'+i);(function(el,alignType){dfx.addEvent(el,'click',function(){dfx.removeClass(dfx.getClass('ViperTableEditor-stb-align',el.parentNode),'active');dfx.addClass(el,'active');self._changeSettingValue('valign',alignType);});})(alignDiv,i);div.appendChild(alignDiv);});dfx.foreach(opts,function(i){div=document.createElement('div');var label=document.createElement('label');parent.appendChild(div);dfx.setHtml(label,opts[i]);div.appendChild(label);dfx.addClass(div,'ViperTableEditor-stb-optItem');div.id='ViperTableEditor-opts-'+i;var radioBtn=self.createWidget(null,'RadioButton',null,false);self._settingsWidgets.cell[i]=radioBtn;radioBtn.create(function(radioBtnEl){dfx.attr(label,'for',radioBtn.id);div.appendChild(radioBtnEl);radioBtn._addEvents();});(function(radioBtnWidget,type){radioBtnWidget.addCheckedEvent(function(checked){self._changeSettingValue(type,checked);});})(radioBtn,i);});if(div){dfx.addClass(div,'last');}},_showProperties:function(type)
{if(!this._subToolbar){return;}
var c='ViperTableEditor-stb';dfx.removeClass(dfx.getClass(c+'-propertiesWrapper',this._subToolbar),'show');dfx.addClass(dfx.getClass(c+'-'+type+'Props',this._subToolbar)[0],'show');this._currentTablePropView=type;ViperPluginManager.getPlugin('ViperSubToolbarPlugin').showToolbar('TableEditor');},_changeTableSettingValue:function(type,value)
{if(!this.activeCell||!type){return;}
var table=this.getCellTable(this.activeCell);if(!table){return;}
var changed=false;switch(type){case'tableBorder':if(parseInt(dfx.attr(table,'border'))!==parseInt(value)){dfx.attr(table,'border',value);changed=true;}
break;case'width':if(!value){value='';}else{var widthType=this._settingsWidgets.table.widthType.getValue();if(widthType==='pc'){value+='%';}else{value+='px';}}
if(dfx.setStyle(table,'width')!==value){dfx.setStyle(table,'width',value);changed=true;}
break;case'widthType':var width=parseInt(dfx.getStyle(table,'width'));if(width){if(value==='pc'){value='%';}
if(dfx.setStyle(table,'width')!==(width+value)){dfx.setStyle(table,'width',width+value);changed=true;}}
break;default:value=parseInt(value);if(isNaN(value)===true){value='';}
var currVal=parseInt(dfx.attr(table,type));if(isNaN(currVal)===true){currVal='';}
if(currVal!==value){dfx.attr(table,type,value);changed=true;}
break;}
if(changed===true){this._updatecellButtonPositions(this.activeCell);this._nodesUpdated(true);}},_changeSettingValue:function(type,value)
{if(!this.activeCell||!type){return;}
var changed=false;if(type==='tableHeader'){var toType='th';if(value!==true){toType='td';}
if(dfx.isTag(this.activeCell,toType)===true){return;}
var newEl=document.createElement(toType);var clone=this.activeCell.cloneNode(true);while(clone.firstChild){newEl.appendChild(clone.firstChild);}
var whiteSpace=dfx.getStyle(clone,'white-space');if(whiteSpace==='nowrap'){dfx.setStyle(newEl,'white-space','nowrap');}
var valign=dfx.getStyle(clone,'vertical-align');if(valign){dfx.setStyle(newEl,'vertical-align',valign);}
var width=dfx.getStyle(clone,'width');if(width){dfx.setStyle(newEl,'width',width);}
dfx.insertBefore(this.activeCell,newEl);dfx.remove(this.activeCell);this.setActiveCell(newEl);changed=true;this.moveCaretToCell(this.activeCell);}else if(type==='noTextWrap'){var style='normal';if(value===true){style='nowrap';}
if(dfx.getStyle(this.activeCell,'white-space')!==style){dfx.setStyle(this.activeCell,'white-space',style);changed=true;this.moveCaretToCell(this.activeCell);}}else if(type==='width'){if(!value){value='';}else{var widthType=this._settingsWidgets.cell.widthType.getValue();if(widthType==='pc'){value+='%';}else{value+='px';}}
if(dfx.getStyle(this.activeCell,'width')!==value){dfx.setStyle(this.activeCell,'width',value);changed=true;}}else if(type==='widthType'){var width=parseInt(dfx.getStyle(this.activeCell,'width'));if(width){if(value==='pc'){value='%';}
if(dfx.getStyle(this.activeCell,'width')!==(width+value)){dfx.setStyle(this.activeCell,'width',width+value);changed=true;}}}else if(type==='valign'){if(dfx.getStyle(this.activeCell,'vertical-align')!==value){dfx.setStyle(this.activeCell,'vertical-align',value);changed=true;}}
if(changed===true){this._updatecellButtonPositions(this.activeCell);this._nodesUpdated(true);}},updateSettings:function(cell)
{if(!cell){cell=this.activeCell;}
if(!cell){return;}
if(this._settingsWidgets.cell&&this._settingsWidgets.cell.tableHeader){if(dfx.isTag(cell,'th')===true){this._settingsWidgets.cell.tableHeader.check();}else{this._settingsWidgets.cell.tableHeader.uncheck();}}
if(this._settingsWidgets.cell&&this._settingsWidgets.cell.noTextWrap){if(dfx.getStyle(cell,'white-space')==='nowrap'){this._settingsWidgets.cell.noTextWrap.check();}else{this._settingsWidgets.cell.noTextWrap.uncheck();}}
if(this._settingsWidgets.cell&&this._settingsWidgets.cell.valign){var val=dfx.getStyle(cell,'vertical-align');var btns=dfx.getClass('ViperTableEditor-stb-align',this._settingsWidgets.cell.valign);dfx.removeClass(btns,'active');if(val){dfx.addClass(dfx.getClass('ViperTableEditor-stb-align-'+val,this._settingsWidgets.cell.valign),'active');}}
if(this._settingsWidgets.cell&&this._settingsWidgets.cell.width){var widthStyle=cell.style.width;var width=parseInt(widthStyle);this._settingsWidgets.cell.width.setValue(width);var widthType='px';if(this._settingsWidgets.cell.widthType){if(widthStyle.indexOf('%')>0){widthType='pc';}}
this._settingsWidgets.cell.widthType.setValue(widthType,true);}
var table=this.getCellTable(cell);if(this._settingsWidgets.table&&table){if(this._settingsWidgets.table.tableBorder){var val=NaN;if(dfx.attr(table,'border')!=='undefined'){val=parseInt(dfx.attr(table,'border'));}
this._settingsWidgets.table.tableBorder.setValue(val);}
if(this._settingsWidgets.table.cellPadding){var val=NaN;if(dfx.attr(table,'cellpadding')!=='undefined'){val=parseInt(dfx.attr(table,'cellpadding'));}
this._settingsWidgets.table.cellPadding.setValue(val);}
if(this._settingsWidgets.table.cellSpacing){var val=NaN;if(dfx.attr(table,'cellspacing')!=='undefined'){val=parseInt(dfx.attr(table,'cellspacing'));}
this._settingsWidgets.table.cellSpacing.setValue(val);}
if(this._settingsWidgets.table.width){var widthStyle=table.style.width;var width=parseInt(widthStyle);this._settingsWidgets.table.width.setValue(width);var widthType='px';if(this._settingsWidgets.table.widthType){if(widthStyle.indexOf('%')>0){widthType='pc';}}
this._settingsWidgets.table.widthType.setValue(widthType,true);}}}};dfx.noInclusionInherits('ViperTableEditorPlugin','ViperPlugin',true);function ViperToolbarPlugin(viper)
{ViperPlugin.call(this,viper);this.toolbar=null;this.buttons={};this.buttonTitles={};this.buttonEvents={};this.pluginButtons={};this.createToolbar();var self=this;ViperPluginManager.registerCallback('pluginRemoved','toolbarPluginRemoved',function(pluginName){if(self.pluginButtons[pluginName]){var pln=self.pluginButtons[pluginName].length;for(var i=0;i<pln;i++){var buttonName=self.pluginButtons[pluginName][i];dfx.remove(self.buttons[buttonName]);}}});this.viper.registerCallback('viperDisabled','ViperToolbarPlugin',function(){});this.viper.registerCallback('viperEnabled','ViperToolbarPlugin',function(){});}
ViperToolbarPlugin.prototype={setSettings:function(settings)
{if(!settings){return;}
if(settings.parent){this.setParentElement(settings.parent);}},createToolbar:function()
{if(this.toolbar===null){var id='ViperToolbarPlugin';this.toolbar=dfx.getId(id);if(!this.toolbar){this.toolbar=Viper.document.createElement('div');this.toolbar.id=id;dfx.setUnselectable(this.toolbar,true);dfx.addClass(this.toolbar,'ViperToolbarPlugin');var span=Viper.document.createElement('span');this.toolbar.appendChild(span);this._append();}}else if(dfx.getId(this.toolbar.id)){this._append();for(var name in this.buttons){dfx.addEvent(this.buttons[name],'click',this.buttonEvents[name]);}}
if(this.toolbar){if(this.viper.isEnabled()===true){this.setEnabled(false);}else{this.setEnabled(true);}}},setParentElement:function(parent)
{dfx.remove(this.toolbar);dfx.setStyle(this.toolbar,'position','absolute');dfx.setStyle(this.toolbar,'top','0px');parent.appendChild(this.toolbar);},_append:function()
{if(dfx.getId('EditingContents')){dfx.insertBefore(dfx.getId('EditingContents'),this.toolbar);}else{Viper.document.body.appendChild(this.toolbar);}},setEnabled:function(enabled)
{},_setBgPosY:function(buttonEl,pos)
{var bgPosY=dfx.getStyle(buttonEl,'background-position-y');var bgPos=dfx.getStyle(buttonEl,'background-position');if(bgPosY){dfx.setStyle(buttonEl,'background-position-y',(pos+'px'));}else if(bgPos){bgPos=bgPos.split(' ');bgPos[1]=pos+'px';dfx.setStyle(buttonEl,'background-position',bgPos.join(' '));}},setButtonActive:function(button)
{if(this.buttons[button]){var buttonEl=this.buttons[button];dfx.addClass(buttonEl,'active');dfx.removeClass(buttonEl,'disabled');this._setBgPosY(buttonEl,-38);if(this.buttonTitles[button]){this.buttons[button].title=this.buttonTitles[button][1];}}},setButtonInactive:function(button)
{if(this.buttons[button]){var buttonEl=this.buttons[button];dfx.removeClass(buttonEl,'active');dfx.removeClass(buttonEl,'disabled');this._setBgPosY(buttonEl,0);if(this.buttonTitles[button]){this.buttons[button].title=this.buttonTitles[button][0];}}},setButtonDisabled:function(button)
{if(this.buttons[button]){var buttonEl=this.buttons[button];dfx.addClass(buttonEl,'disabled');dfx.removeClass(buttonEl,'active');if(this.buttonTitles[button]){this.buttons[button].title='';}}},getIconURL:function(plugin,buttonName)
{var url=ViperPluginManager.getPluginStylesURL(plugin)+'/'+buttonName+'.png';return url;},addButton:function(plugin,name,title,actionFn)
{var icon=Viper.document.createElement('img');dfx.setUnselectable(icon,true);icon.id='ViperToolbarPlugin-'+name;icon.src=this.getIconURL('ViperToolbarPlugin','transparent');icon.title=title;dfx.addClass(icon,'ViperToolbarPlugin-button');var iconUrl=this.getIconURL(plugin,name);dfx.addClass(icon,name);var self=this;dfx.hover(icon,function(){self._setBgPosY(icon,-19);},function(){if(dfx.hasClass(icon,'active')===true){self._setBgPosY(icon,-38);}else{self._setBgPosY(icon,0);}});this.buttonEvents[name]=actionFn;dfx.addEvent(icon,'click',function(e){if(dfx.hasClass(icon,'disabled')===false&&self.viper.isEnabled()!==false){self.viper.focus();self.viper.fireCallbacks('toolbarButtonClicked');actionFn(e);}});if(!this.pluginButtons[plugin]){this.pluginButtons[plugin]=[];}
this.pluginButtons[plugin].push(name);this.buttons[name]=icon;var wrapper=Viper.document.createElement('span');wrapper.appendChild(icon);this.toolbar.firstChild.appendChild(wrapper);this.buttonTitles[name]=[title,title];return wrapper;},setButtonShortcut:function(plugin,buttonName,keys,fn,data)
{var self=this;ViperPluginManager.addKeyPressListener(keys,this,function(e,evtData){self.viper.fireCallbacks('toolbarButtonClicked');return plugin[fn].call(plugin,e,evtData);},data);},setActiveButtonTitle:function(buttonName,title)
{this.buttonTitles[name][1]=title;},remove:function()
{dfx.remove(this.toolbar);},isPluginElement:function(element)
{if(element!==this.toolbar&&dfx.isChildOf(element,this.toolbar)===false){return false;}
return true;}};dfx.noInclusionInherits('ViperToolbarPlugin','ViperPlugin',true);function ViperTrackChangesPlugin(viper)
{ViperPlugin.call(this,viper);this.toolbarPlugin=null;this.subToolbarPlugin=null;this.optionCheckboxes={};this._barActive=false;this._newCommentid=null;this._initialising=false;this.viewSettings={finalMode:{},originalMode:{}};}
ViperTrackChangesPlugin.prototype={start:function()
{var self=this;this.toolbarPlugin=ViperPluginManager.getPlugin('ViperToolbarPlugin');this.toolbarPlugin.addButton('TrackChanges','track-changes','Track Changes',function(){if(!self.subToolbarPlugin){self._setupSubToolbar(function(){self.toggleTrackChanges();});}else{self.toggleTrackChanges();}});if(ViperChangeTracker.isTracking()===true){this._setupSubToolbar(function(){if(ViperChangeTracker.isTracking()===true){self._barActive=true;self.subToolbarPlugin.showToolbar('TrackChanges');self.toolbarPlugin.setButtonActive('track-changes');}});}
this.viper.registerCallback('ViperChangeTracker:tracking','ViperTrackChangesPlugin',function(isTracking){if(isTracking===true){self._setupSubToolbar(function(){if(ViperChangeTracker.isTracking()===true){self._barActive=true;self.subToolbarPlugin.showToolbar('TrackChanges');self.toolbarPlugin.setButtonActive('track-changes');}});}});this.viper.registerCallback('ViperSubToolbar:hideToolbar','ViperTrackChangesPlugin',function(barid){if(barid!=='TrackChanges'&&self._barActive===true&&ViperChangeTracker.isTracking()===true){self.subToolbarPlugin.showToolbar('TrackChanges');self.toolbarPlugin.setButtonActive('track-changes');}});ViperChangeTracker.addChangeType('viperComment','Comment','comment');ViperChangeTracker.setRejectCallback('viperComment',function(clone,node){while(node.firstChild){dfx.insertBefore(node,node.firstChild);}
dfx.remove(node);});ViperChangeTracker.setDescriptionCallback('viperComment',function(node,ctnType,changeid){var div=Viper.document.createElement('div');dfx.addClass(div,'viperCommentDiv');div.setAttribute('changeid',changeid);div.setAttribute('id','viperComment-'+changeid);var comment=ViperChangeTracker._comments[changeid]||'&nbsp;';dfx.setHtml(div,comment);dfx.addEvent(div,'mousedown',function(){self.viper.setSubElementState(div,true);dfx.removeEvent(div,'mouseup.viperSubElem');dfx.addEvent(div,'mouseup.viperSubElem',function(e){setTimeout(function(){self.viper.mouseUp(e);},200);});var parent=div.parentNode.parentNode.parentNode;dfx.addClass(parent,'active');});if(self._newCommentid===changeid){self.viper.registerCallback('ViperChangeTracker:infoBoxAdded','ViperTrackChangesPlugin',function(chid){if(chid!==changeid){return;}
var markerElem=ViperChangeTracker.getMarker(changeid);if(markerElem){dfx.trigger(markerElem,'click');}
self.viper.setSubElementState(div,true);div.focus();var parent=div.parentNode.parentNode.parentNode;dfx.addClass(parent,'active');var range=self.viper.getCurrentRange();range.setStart(div.firstChild,0);range.collapse(true);self.viper.removeCallback('ViperChangeTracker:infoBoxAdded','ViperTrackChangesPlugin');});self._newCommentid=null;}
return div;});this.viper.registerCallback('subElementDisabled','ViperTrackChangesPlugin',function(elem){if(elem&&elem.parentNode&&elem.parentNode.parentNode){var parent=elem.parentNode.parentNode.parentNode;dfx.removeClass(parent,'active');}});},toggleTrackChanges:function()
{this._barActive=this.subToolbarPlugin.toggleToolbar('TrackChanges');if(this._barActive===true){this.toolbarPlugin.setButtonActive('track-changes');}else{this.toolbarPlugin.setButtonInactive('track-changes');}
if(ViperChangeTracker.isTracking()===false&&ViperChangeTracker.hasChanges()===false){ViperChangeTracker.enableChangeTracking();}},addComment:function()
{this.viper.focus();var info=ViperUndoManager.createNodeChangeInfo(this.viper.element);var bookmark=this.viper.createBookmark();var elements=dfx.getElementsBetween(bookmark.start,bookmark.end);var eln=elements.length;var changeid=ViperChangeTracker.addChange('viperComment');this._newCommentid=changeid;if(eln===0){var el=Viper.document.createElement('span');dfx.insertBefore(bookmark.start,el);ViperChangeTracker.addNodeToChange(changeid,el);}else{for(var i=0;i<eln;i++){if(ViperChangeTracker.getCTNode(elements[i],'viperComment')===null){this.viper._wrapElement(elements[i],'span',function(newElem){ViperChangeTracker.addNodeToChange(changeid,newElem);});}}}
this.viper.selectBookmark(bookmark);this.viper.fireNodesChanged('ViperTrackChangesPlugin:update');},_setupSubToolbar:function(callback)
{this._initialising=true;ViperChangeTracker.setActionDisplayState('format',true);ViperChangeTracker.setActionDisplayState('comment',true);var subToolbarPlugin=ViperPluginManager.getPlugin('ViperSubToolbarPlugin');if(!subToolbarPlugin){return;}
var toolbar=subToolbarPlugin.createToolBar('TrackChanges');var c='ViperTrackChanges-stb';var contents='<div class="'+c+'-left"></div>';contents+='<div class="'+c+'-mid"></div>';contents+='<div class="'+c+'-right"></div>';dfx.setHtml(toolbar,contents);var self=this;this.includeWidgets(['Button','RadioButton'],function(){var switchToOriginal=self.createWidget('ViperTrackChanges-switchMode','Button');switchToOriginal.setName('Switch to Original');switchToOriginal.setButtonIconClassName(c+'-switch');switchToOriginal.create(function(el){switchToOriginal.setMinWidth('120px');dfx.addClass(switchToOriginal.domElem,'ViperTrackChanges-switchMode-original');(dfx.getClass(c+'-left',toolbar)[0]).appendChild(el);});switchToOriginal.addClickEvent(function(){if(ViperChangeTracker.getCurrentMode()==='final'){ViperChangeTracker.activateOriginalMode();switchToOriginal.setName('Switch to Final');dfx.removeClass(switchToOriginal.domElem,'ViperTrackChanges-switchMode-original');dfx.addClass(switchToOriginal.domElem,'ViperTrackChanges-switchMode-final');self.changeViewSettings('original');}else{ViperChangeTracker.activateFinalMode();switchToOriginal.setName('Switch to Original');dfx.removeClass(switchToOriginal.domElem,'ViperTrackChanges-switchMode-final');dfx.addClass(switchToOriginal.domElem,'ViperTrackChanges-switchMode-original');self.changeViewSettings('final');}});var addComment=self.createWidget('ViperTrackChanges-addComment','Button');addComment.setName('Add Comment');addComment.setButtonIconClassName(c+'-comment');addComment.create(function(el){addComment.setMinWidth('105px');(dfx.getClass(c+'-right',toolbar)[0]).appendChild(el);});addComment.addClickEvent(function(){if(addComment.buttonParts.content){addComment.buttonParts.content.blur();}
self.addComment();});var toggleTracking=self.createWidget('ViperTrackChanges-toggleTracking','Button','ButtonWidgetType-black');toggleTracking.setName('Disable Tracking');toggleTracking.create(function(el){toggleTracking.setMinWidth('101px');dfx.addClass(el,'ViperTrackChanges-toggleTracking-disable');(dfx.getClass(c+'-right',toolbar)[0]).appendChild(el);});toggleTracking.addClickEvent(function(){if(ViperChangeTracker.isTracking()===true){toggleTracking.setName('Enable Tracking');dfx.removeClass(toggleTracking.domElem,'ViperTrackChanges-toggleTracking-disable');dfx.addClass(toggleTracking.domElem,'ViperTrackChanges-toggleTracking-enable');ViperChangeTracker.disableChangeTracking();addComment.disable();}else{toggleTracking.setName('Disable Tracking');dfx.removeClass(toggleTracking.domElem,'ViperTrackChanges-toggleTracking-enable');dfx.addClass(toggleTracking.domElem,'ViperTrackChanges-toggleTracking-disable');ViperChangeTracker.enableChangeTracking();addComment.enable();}});var optsList=subToolbarPlugin.createOptionsList('Display');(dfx.getClass(c+'-mid',toolbar)[0]).appendChild(optsList.main);self._createOptionList(optsList.contentEl);self.changeViewSettings('final');this._initialising=false;self.subToolbarPlugin=subToolbarPlugin;callback.call(self,subToolbarPlugin);return;});},changeViewSettings:function(mode)
{mode+='Mode';if(!this.viewSettings[mode]){return;}
var self=this;dfx.foreach(this.optionCheckboxes,function(i){if(self.viewSettings[mode][i]){self.optionCheckboxes[i].check();}else{self.optionCheckboxes[i].uncheck();}});},updateViewSetting:function(type,display)
{var mode=ViperChangeTracker.getCurrentMode()+'Mode';this.viewSettings[mode][type]=display;},_createOptionList:function(parent)
{var div=null;var self=this;var opts=ViperChangeTracker.getActionTypes();var displayStates=ViperChangeTracker.getActionDisplayStates();dfx.foreach(opts,function(i){self.viewSettings.finalMode[i]=displayStates[i];self.viewSettings.originalMode[i]=displayStates[i];div=Viper.document.createElement('div');var label=Viper.document.createElement('label');parent.appendChild(div);dfx.setHtml(label,opts[i]);div.appendChild(label);dfx.addClass(div,'ViperTrackChanges-stb-optItem');div.id='ViperTrackChanges-opts-'+i;var radioBtn=self.createWidget(null,'RadioButton',null,displayStates[i]);self.optionCheckboxes[i]=radioBtn;radioBtn.create(function(radioBtnEl){dfx.attr(label,'for',radioBtn.id);div.appendChild(radioBtnEl);radioBtn._addEvents();});(function(radioBtnWidget,type){radioBtnWidget.addCheckedEvent(function(checked){self.toggleChangeTypeDisplayState(type,checked);});})(radioBtn,i);if(i==='Inserts'){dfx.addClass(div,'first');}});self.viewSettings.originalMode.insert=true;self.viewSettings.originalMode.remove=false;if(div){dfx.addClass(div,'last');}},toggleChangeTypeDisplayState:function(type,display)
{this.updateViewSetting(type,display);ViperChangeTracker.setActionDisplayState(type,display,!this._initialising,true);}};dfx.noInclusionInherits('ViperTrackChangesPlugin','ViperPlugin',true);
