/*
 Online Page Editor Add-on
 Version: 1.0.2
 (c) 2011 DMXzone.com
 @build 26-04-2011 15:08:31
*/
(function(b){var x={actionUrl:"dmxPageEditor.asp",activationMethod:"key",activationKey:"ctr+shft+@",activationSelector:"",editDreamweaverRegions:!0,editableRegionsList:"",securityMethod:"user"};b.fn.dmxPageEditor=function(i){function o(){document.location.protocol=="file:"?alert("Can not run Online Page Editor from local file!\nPlease run this page through a web server!"):b(".dmxActivator").length>0||e?(p(),y()):d.securityMethod=="login"?require([f+"jquery.simplemodal.min.js",f+"jquery.crypt.js"],
function(){b.modal('<div id="dmxPageEditorLogin_status">\n<h1>LOGIN</h1><div id="login_response"></div>\n<form id="login" action="">\n<label>Username</label><input type="text" class="txtfield" id="dmx_login_username" name="username"><br />\n<label>Password</label><input type="password" class="txtfield" id="dmx_login_password" name="password"><br />\n<label>&nbsp;</label><input value="Login" name="Login" id="dmxPageEditorLogin_submit" type="submit" />\n<div id="ajax_loading"><img align="absmiddle" src="'+
q+'dmxPageEditor/spinner.gif">&nbsp;Processing...</div>\n</form></div>\n',{containerId:"dmxPageEditorLogin"});r()}):b.ajax({url:j+(k!=""?"?"+k:""),success:function(){c()},error:function(a){a.status==401||a.status==400?alert("Access denied!"):a.status==404&&alert("Can not execute ScriptLibrary/"+d.actionUrl+"\nFile is missing or "+g()+" is not supported on this server!")}})}function r(){b("#dmxPageEditorLogin_status > form").submit(function(){b("#dmxPageEditorLogin_submit").hide();b("#ajax_loading").show();
b.ajax({type:"GET",url:j+"?auth=login&action=token",success:function(a){s=a;a={authorization:b().crypt({method:"md5",source:"username:"+b("#dmx_login_username").val()+":password:"+b("#dmx_login_password").val()+":"+s})};b.ajax({type:"POST",url:j+"?auth=login",data:a,success:function(a){b("#dmxPageEditorLogin_status").ajaxComplete(function(){b("#dmxPageEditorLogin_submit").show();b("#ajax_loading").hide();a=="LOGIN OK"?(t=b("#dmx_login_username").val(),u=b("#dmx_login_password").val(),b.modal.close(),
c()):b("#login_response").html(a)})}})}});return!1})}function c(){v?h():(require([f+"dmxEditor.min.js",f+"css.js!"+q+"dmxEditor.css"],function(){v=!0;h()}),b("body").bind("editor:afterSave",function(a,c){e[0].innerHTML=c.html;var f={page:z,name:e[0].id,html:c.html,type:e.hasClass("dmxActivatorDiv")?"div":"region"};if(d.securityMethod=="login")f.authorization=b().crypt({method:"md5",source:"username:"+t+":password:"+u+":"+s});b.ajax({type:"POST",url:j+"?action=save"+(k!=""?"&"+k:""),data:f,success:function(a){var b=
a.indexOf("ERROR: [");if(b!=-1){var c=a.indexOf("]",b+9);alert("Server Error:\n"+a.substring(b+8,c))}else alert("Save succesful!"),p(),l&&w(l)},error:function(a,b,c){a.status==401||a.status==400?alert("Access denied!"):a.status==500?(b=a.responseText,c=b.indexOf("ERROR: ["),c!=-1?(a=b.indexOf("]",c+9),alert("Server Error:\n"+b.substring(c+8,a))):alert("Server Error, response:\n"+a.responseText)):a.status==404?alert("Can not execute ScriptLibrary/"+d.actionUrl+"\nFile is missing or "+g()+" is not supported on this server!"):
alert("Error "+c+", code: "+a.status)}})}),b("body").bind("editor:removed",function(){e&&(m(e),e=null)}))}function h(){if(d.editableRegionsList!=""){var a=("#"+d.editableRegionsList.replace(/\s*,\s*/gi,",#")).replace(/##/gi,"#");m(b(a).addClass("dmxActivatorDiv"))}d.editDreamweaverRegions&&m(b("body").getEditableRegions());b(".dmxPageEditorIcons,.dmxPageEditorIconsBottom").live("click",function(){w(this)})}function g(){return d.actionUrl=="dmxPageEditor.asp"?"ASP":"PHP"}function m(a){a&&a.addClass("dmxActivator").each(function(){var a=
b(this).offset();b(this).prepend('<div class="dmxPageEditorIcons'+(a.top<22?"Bottom":"")+'"><img src="'+q+'dmxEditor/pencil.png" alt="Click to edit this region" title="Click to edit this region" /></div>')})}function y(){b(".dmxActivator").each(function(){b(".dmxPageEditorIcons .dmxPageEditorIconsBottom",this).remove()}).removeClass("dmxActivator");b(".dmxPageEditorIcons,.dmxPageEditorIconsBottom").die("click")}function w(a){l=null;if(e){var c=e.data("dmxEditor");if(c&&c.isDocumentModified()){confirm("The previous editable area is not saved yet. Changes will be lost if you don't save.\nDo you want to save first?")&&
(l=a,c.save());return}else p()}e=b(a).parent();b(a).remove();e.removeClass("dmxActivator");e.dmxEditor(d.editorConfig)}function p(){if(e){var a=e.data("dmxEditor");a&&a.destruct();m(e);e=null}}var d=b.extend(!0,{},x,i);if(!d.editorConfig)d.editorConfig={};b.extend(!0,d.editorConfig,{width:"100%",autoSaveInterval:0,autoIncludeCss:!0,toolbars:{Common:{items:{save:!0,close:!0}}},extensions:d.editorConfig.extensions?b.merge(["autosize"],d.editorConfig.extensions):["autosize"]});var v=!1,f=function(){var a=
b("script[src$='dmxPageEditor.js']");if(a&&a.length>0)return a[0].src.replace(/dmxPageEditor\.js$/i,"").replace(/\s+/g,"%20");return""}(),q=function(){var a="/styles",c=b('link[href*="dmxPageEditor.css"]');c.length>0&&(a=c[0].href.replace(/dmxPageEditor\.css$/i,""));return a}(),z=function(a){a=a.replace(/\/ScriptLibrary\/?$/i,"");return document.location.href.replace(a,"")}(f),k=d.securityMethod=="user"?"auth=user":d.securityMethod=="login"?"auth=login":"",s="",t="",u="",j=f+d.actionUrl,e,l;if(d.activationMethod==
"key"&&d.activationSelector==""){var n;switch(d.activationKey){case "ctr+shft+@":n=function(a){return a.ctrlKey&&(a.which==64||a.which==50)};break;case "ctr+f2":n=function(a){return a.ctrlKey&&a.which==113};break;case "ctr+\\":n=function(a){return a.ctrlKey&&a.which==92}}b(document).keyup(function(a){n(a)&&(o(),a.preventDefault())})}else b(d.activationSelector).live("click",function(a){o();a.preventDefault()})};b.fn.getEditableRegions=function(){var i=b([]);this.each(function(o,r){for(var c=r.firstChild;c;){if(c.nodeType===
8){if(c.data.indexOf("InstanceBeginEditable")!=-1){var h=b(),g=c.data.match(/name="([^"]*)"/),g=g&&g.length>0?g[1]:"editor1",c=c.nextSibling;if(!(c.nodeName=="DIV"&&c.id==g)){for(;c;)if(c.nodeType==8&&c.data.indexOf("InstanceEndEditable")!=-1)break;else h.push(c),c=c.nextSibling;h.wrapAll('<div id="'+g+'" class="dmxEditor" />')}}}else c.nodeType===1&&(i=i.add(b(c).getEditableRegions()));c=c.nextSibling}});return b(".dmxEditor")}})(jQuery);

