<?php if(!defined('PmWiki'))exit;
/**
  Page Not Saved Warning for PmWiki
  Written by (c) Petko Yotov 2009-2015

  This text is written for PmWiki; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published
  by the Free Software Foundation; either version 3 of the License, or
  (at your option) any later version. See pmwiki.php for full details
  and lack of warranty.

  Copyright 2009-2015 Petko Yotov www.pmwiki.org/petko
*/
$RecipeInfo['NotSaved']['Version'] = '20150329';

SDV($NsWarning, '$[Content was modified, but not saved!]');
SDVA($HTMLFooterFmt, array('Notsaved' => '<script type="text/javascript"><!--
function NsSubmit() {
  if(NsPromptAuthor && typeof(NsForm.author)!="undefined" && NsForm.author.value=="") {
    var r = uPrompt(NsPromptAuthor, "");
    if(typeof(r)=="string")NsForm.author.value=r;
    else {NsForm.author.focus(); return false;}
  }
  if(NsPromptSum && typeof(NsForm.csum)!="undefined" && NsForm.csum.value=="") {
    var r = uPrompt(NsPromptSum, "");
    if(typeof(r)=="string")NsForm.csum.value=r;
    else {NsForm.csum.focus(); return false;}
  }
  NsMessage="";
  return true;
}
function uPrompt(msg) {
  var ua = navigator.userAgent;
  var idx = ua.indexOf("MSIE ");
  var sel = false;
  if(NsForm.author.type == "select-one") {
    if(NsForm.author.options[NsForm.author.selectedIndex].value == "") sel = true;
  }
  if(sel || (idx>0 && parseFloat( ua.substring(idx+4) )>=7) ) {
    alert(msg);
    return false;
  }
  else return prompt(msg, "");
}

var NsMessage = "";
var NsForm = false;
var NsPreview = false;
var NsPromptSum = false;
var NsPromptAuthor = false;

for(var i=0; i<document.forms.length; i++) {
  var f = document.forms[i];
  for(var j=0; j<f.elements.length; j++) {
    var e = f.elements[j];
    if(e.type == "submit" && e.name.match(/^post(edit|draft)?$/)) {
      NsForm = f;
      e.onclick = NsSubmit;
    }
    else if(e.type == "submit" && e.name.match(/^(preview|cancel)$/))
      e.onclick = function(){NsMessage="";return true;};
  }
  if(NsForm) break;
}
window.onbeforeunload = function(ev) {
  if(!NsForm || NsMessage=="") return;
  if (typeof ev == "undefined")ev = window.event;
  var tarea = document.getElementById("text");
  if (tarea && tarea.codemirror) tarea.codemirror.save();
  
  for(var i=0; i<NsForm.elements.length; i++) {
    var e = NsForm.elements[i];
    if(NsPreview || (e.type.match(/^text(area)?$/) && e.value != e.defaultValue)) {
      if (ev) {ev.returnValue = NsMessage;}
      return NsMessage;
    }
  }
}
//--></script>'));

if(@$_REQUEST['preview']>'') $HTMLFooterFmt['Notsaved']
  = str_replace('//-->', 'NsPreview = true;//-->', $HTMLFooterFmt['Notsaved']);

if(IsEnabled($NsPromptSum, false)) $HTMLFooterFmt['Notsaved']
  = str_replace('var NsPromptSum = false;', "var NsPromptSum = \"".addslashes($NsPromptSum)."\";",
  $HTMLFooterFmt['Notsaved']);
if(IsEnabled($NsPromptAuthor, false)) $HTMLFooterFmt['Notsaved']
  = str_replace('var NsPromptAuthor = false;',
  "var NsPromptAuthor = \"".addslashes($NsPromptAuthor)."\";", $HTMLFooterFmt['Notsaved']);
if(IsEnabled($NsWarning, false)) $HTMLFooterFmt['Notsaved']
  = str_replace('var NsMessage = "";',
  "var NsMessage = \"".addslashes($NsWarning)."\";", $HTMLFooterFmt['Notsaved']);