// Copyright Zikula Foundation 2010 - license GNU/LGPLv3 (or at your option, any later version).
var PageLock={};PageLock.Timer=null;PageLock.UnlockedPage=function(){clearTimeout(PageLock.Timer);PageLock.Timer=setTimeout(PageLock.RefreshLock,PageLock.PingTime*1000)};PageLock.LockedPage=function(){PageLock.ShowOverlay();clearTimeout(PageLock.Timer);PageLock.Timer=setTimeout(PageLock.CheckLock,PageLock.PingTime*1000)};PageLock.BreakLock=function(){Zikula.UI.Confirm(Zikula.__("Are you sure you want to break this lock?"),Zikula.__("Confirmation prompt"),function(a){if(a){PageLock.StopLocking(false);PageLock.LockBroken=true;PageLock.HideOverlay()}})};PageLock.Cancel=function(){PageLock.HideOverlay();window.location=PageLock.ReturnUrl;return true};PageLock.RefreshLock=function(){var a={lockname:PageLock.LockName};new Zikula.Ajax.Request(Zikula.Config.baseURL+"ajax.php?module=PageLock&func=refreshpagelock",{parameters:a,onComplete:PageLock.RefreshLockComplete})};PageLock.RefreshLockComplete=function(a){if(!a.isSuccess()){Zikula.showajaxerror(a.getMessage());return}var b=a.getData();if(!b.hasLock){alert(b.message)}clearTimeout(PageLock.Timer);PageLock.Timer=setTimeout(PageLock.RefreshLock,PageLock.PingTime*1000)};PageLock.CheckLock=function(){new Effect.Highlight("pageLockOverlayLED",{startcolor:"#FF3030",endcolor:"#B0001D"});var a={lockname:PageLock.LockName};new Zikula.Ajax.Request(Zikula.Config.baseURL+"ajax.php?module=PageLock&func=checkpagelock",{parameters:a,onComplete:PageLock.CheckLockComplete})};PageLock.CheckLockComplete=function(a){if(!a.isSuccess()){Zikula.showajaxerror(a.getMessage());return}var b=a.getData();if(b.hasLock){PageLock.StopLocking(true)}else{clearTimeout(PageLock.Timer);PageLock.Timer=setTimeout(PageLock.CheckLock,PageLock.PingTime*1000)}};PageLock.StopLocking=function(a){if(a){window.location=window.location}else{PageLock.HideOverlay()}};PageLock.ShowOverlay=function(){PageLock.Dialog=new Zikula.UI.Dialog(PageLock.LockedHTML,[{name:"Cancel",value:"Cancel",label:Zikula.__("Back")},{name:"CheckLock",value:"CheckLock",label:Zikula.__("Check again"),close:false},{name:"BreakLock",value:"BreakLock",label:Zikula.__("Ignore Lock"),close:false},],{modal:true,callback:PageLock.DialogCallback});PageLock.Dialog.open()};PageLock.DialogCallback=function(a){switch(a.value){case"BreakLock":PageLock.BreakLock();break;case"CheckLock":PageLock.CheckLock();break;case"Cancel":default:if(!PageLock.LockBroken){PageLock.Cancel()}break}};PageLock.HideOverlay=function(){PageLock.Dialog.close();return};