

<script src="{{ settings.MEDIA_URL }}admin/js/vendor/jquery/jquery.js" type="text/javascript"></script>

    <script src={{ settings.MEDIA_URL }}codemirror/codemirror.js></script>
    <script src={{ settings.MEDIA_URL }}codemirror/xml.js></script>
    <script src={{ settings.MEDIA_URL }}codemirror/javascript.js></script>
    <script src={{ settings.MEDIA_URL }}codemirror/css.js></script>
    <script src={{ settings.MEDIA_URL }}codemirror/htmlmixed.js></script>
    <link rel=stylesheet href={{ settings.MEDIA_URL }}codemirror/codemirror.css>

    <style type=text/css>
	html {
	  font-family: "Helvetica Neue", sans-serif;
	  width: 100%;
	  color: #666666;
	  text-align: center;
	}

	.popup-overlay {
	  /*Hides pop-up when there is no "active" class*/
	  visibility: hidden;
	  position: fixed;
	  top: 10%;
          left: 10%;
	  background: #ffffff;
	  border: 3px solid #666666;
	  width: 80%;
	  height: 80%;
	  overflow: scroll; 
	  left: 5%;
	  z-index: 20;
	}
	
	# This is used for both cave_edit and handbook_edit, and is overridden 100% for cave_edit
	.HTMLarea { 
		width:1000px # width:130%; 
		margin-left: -235px
		}

	.popup-overlay.active {
	  /*displays pop-up when "active" class is present*/
	  visibility: visible;
	  text-align: center;
	}

	.popup-content {
	  /*Hides pop-up content when there is no "active" class */
	  visibility: hidden;
	}

	.popup-content.active {
	  /*Shows pop-up content when "active" class is present */
	  visibility: visible;
	}

	button {
	  display: inline-block;
	  vertical-align: middle;
	  border-radius: 30px;
	  margin: .20rem;
	  font-size: 1rem;
	  color: #666666;
	  background: #ffffff;
	  border: 1px solid #666666;
	}

	button:hover {
	  border: 1px solid #666666;
	  background: #666666;
	  color: #ffffff;
	}
	</style>
	  <style type=text/css>
      .CodeMirror {
        float: left;
        width: 50%;
        border: 1px solid black;
        height: 70%;
      }
      .CodeMirror-scroll{
        height: 99%
      }
      iframe {
        width: 49%;
        height: 70%;
        float: left;
        border: 1px solid black;
        border-left: 0px;
      }
      body{max-width: none;
           margin-left: 275px;
           margin-right: 50px;
           text-align: left;
           }
      #id_change_message{
      height: 5%;
      }
    </style>
<script>
  $(function() {

      $(".HTMLarea").each(function(){
          var HTMLarea = $(this).children("textarea")
          var preview = $(this).children('.HTMLpreview')
          if ( preview.length )
          {    
              HTMLarea.data("editor", 
                        CodeMirror.fromTextArea(HTMLarea[0], {
                             lineWrapping: true,
                             mode: 'text/html',
                             tabMode: 'indent',
                             onChange: function() {
                                          clearTimeout(HTMLarea.data("delay"));
                                          HTMLarea.data("delay", setTimeout(updatePreview, 300, HTMLarea));
                                          }
                             })
                        );
              HTMLarea.data("preview", preview); 
              updatePreview(HTMLarea); 
          } else {
               HTMLarea.data("editor", 
                        CodeMirror.fromTextArea(HTMLarea[0], {
                             lineWrapping: true,
                             mode: 'text/html',
                             tabMode: 'indent'
                             })
                        );         
          }
                    
         });
      $(".addTag").click(function(){
          addTag($(this).parents(".HTMLarea").children("textarea").data("editor"),
                 $(this).attr("data-tag"),
                 $(this).attr("data-attr") || ""
                 );    
      })
      
      $(".addStr").click(function(){
          addStr($(this).parents(".HTMLarea").children("textarea").data("editor"),
                 $(this).attr("data-str")
                 );
      })
      
      $(".addImage").click(function(){
          add_image_popup($(this).parents(".HTMLarea").children("textarea").data("editor"));    
      })
});

      
      function updatePreview(HTMLarea) {
        var preview =  HTMLarea.data("preview")[0].contentDocument ||  $('#preview')[0].contentWindow.document;
        preview.open();
        preview.write("<html><head><meta http-equiv='Content-Type' content='text/html; charset=utf-8' /><link rel='stylesheet' type='text/css' href='/css/main2.css' />    <style type=text/css>body{max-width: none;margin-left: 15px;margin-right: 15px;}</style></head><body>");
        preview.write(HTMLarea.data("editor").getValue());
        preview.write("</body></html>");
        preview.close();
      }
      
      function addTag(editor, tag, attr){
          var from = editor.getCursor(true);
          var to = editor.getCursor(false);
          editor.replaceRange("</"+tag+">", to);
          if (attr.length > 0) {attr = " " + attr;}
          editor.replaceRange("<"+tag+attr+">", from);
          editor.focus();
          editor.setCursor({line: to.line , ch : to.ch + 2 + tag.length + attr.length });
      }
      
      function addStr(editor, x){
          var to = editor.getCursor(false);
          editor.replaceRange(x, to);
          editor.focus();
          editor.setCursor({line: to.line , ch : to.ch + x.length });
      }

      function add_image_popup(editor) {
          $('.add-image-popup').addClass('active'); 
          window.current_editor = editor;
          var path = ""; //Can we get rid of this variable?
          /*
          {% if not path %}
              var path = $("#id_url").val();
          {% else %}
              var path = "";
          {% endif %}
          */
          $('#image_popup_content').load("{% url 'image_selector' path %}" + path, function() {
                $('.thumbnail').click(function(){
                     $(".add-image-popup").removeClass("active");
                     addStr(window.current_editor, $( this ).attr("data-html"))
                     });
                })
          }
          
      function new_image_popup() {
          $('.add-image-popup').removeClass('active');
          $('.new-image-popup').addClass('active');
          $.ajax({
                type : "GET", 
                dataType: "json",
                url: "{% url 'new_image_form' path %}",
                success: function(data){handle_new_image(data)}
              });  
        }
  
      function handle_new_image(data) {
        if (data.hasOwnProperty('form')) {
            $('#new_image_popup_content').html(data.form);
            $('#new_image_form').on('submit', function(e){
               e.preventDefault();
               data = $('#new_image_form').serialize();
         
               $.ajax({
                      type : "POST", 
                      dataType: "json",
                      url: "{% url 'new_image_form' path %}",
                      data: new FormData($('#new_image_form')[0]),     
                      processData: false,
                      contentType: false,
                      success: function(data){
                         handle_new_image(data);
                         }
                      });
           });
          }
        else if (data.hasOwnProperty('html')) {
          $('.new-image-popup').removeClass('active');
          addStr(window.current_editor, data.html);
          }
        else {
          alert(data.error);
          }
        }
    </script>

