add_css ("/modules/admin/css/admin.css");

window.sessionStorage.editmode = 0;
window.sessionStorage.drag = 0;


/*Window events*/
document.ondblclick=function(e) {
    window.sessionStorage.drag = 0;
    if ((window.sessionStorage.username != null)&&(window.sessionStorage.editmode == 1)) {
		    //alert(1);
        if (window.event) e = window.event; 
        var element = e.srcElement? e.srcElement : e.target; 
        admin_element(element); 
    }
}

document.onmousedown=function(e) {
		 window.sessionStorage.drag = 0;
		 if (window.event) e = window.event; 
     var clicked_element = e.srcElement? e.srcElement : e.target;
		 var id = getElementId(clicked_element);
		 if (id == "toolbar_drag") {
		  window.sessionStorage.drag = 1;
			 }
}

document.onmouseup=function(e) {
  window.sessionStorage.drag = 0;
}

document.onclick=function(e) {
//window.sessionStorage.drag = 0;
}

document.onmousemove=function(e) {
     if (navigator.appName == "Microsoft Internet Explorer") { 
         window.sessionStorage.toolbarX = event.clientX + document.body.scrollLeft;
		 } else  window.sessionStorage.toolbarX = e.pageX;
		 window.sessionStorage.toolbarX -= 250;

    move_toolbar ();
}

function move_toolbar () {
   if (window.sessionStorage.drag==1 && window.sessionStorage.username != null) {
   		var admin_toolbar =  document.getElementById("admin_toolbar");
 			if (window.sessionStorage.toolbarX > 0) admin_toolbar.style.left = window.sessionStorage.toolbarX + "px";
   }
}

window.onbeforeunload= function () {
    /*TODO: Add IE catch */
 /*   if (window.sessionStorage.editmode == 1) {
        if (navigator.appName !=  "Microsoft Internet Explorer")  {
            return "You have not saved your document yet.  If you continue, your work will not be saved.";
        }
    }*/
}



show_admin_toolbar ();



function load_form () {
    var form = getFile("/modules/admin/pages/logon.html");
    document.write(form);
}


function admin_log_on () {
    var username = document.getElementById("username").value;
    var password = document.getElementById("password").value;
    var result = getFile("/modules/admin/pages/authorize.php?username=" + username + "&password="+password );
    if (result==1)  {
        window.sessionStorage.username = username;
        //show_admin_toolbar ();
        //hide_login_form ();
				window.location = window.sessionStorage.last_page;
    } else {
		   alert("Try again...");
		}
}

function hide_login_form () {
    window.location.reload ();
}

function show_admin_toolbar () {
    if (window.sessionStorage.username != null) {
        var toolbar = getFile("/modules/admin/pages/toolbar.php?operation="+ action +"&article="+ article+"&section="+section+"&area="+area+"&file="+file);
        var tooldiv = document.createElement('div');
        tooldiv.innerHTML = toolbar;
        document.getElementById("page").appendChild(tooldiv);
				add_css ("/modules/toolbar/templates/create/css/create.css");
    }
}

function do_login () {
 if (window.sessionStorage.username == null)  load_form ();
}

function do_admin_logout () {
    var result = getFile("/modules/admin/pages/logout.php");
    window.sessionStorage.removeItem("username");
		window.sessionStorage.editmode == 0;
    window.location.reload ();
}

function admin_create_article (article) {
  alert (article);
}

function show_toolbar_edit () {
     
     window.sessionStorage.editmode = 1;
		 //console.debug(window.sessionStorage.editmode);
     document.getElementById("edit_middle_bar_title").style.visibility = "visible";   
		 document.getElementById("edit_info_bar").style.visibility = "visible";
		 //document.getElementById(info_remove_box[0]).style.visibility = "visible";
		 document.getElementById("page_save_button").style.visibility = "visible";
		 
		 //document.getElementById("send_for_review_button").style.visibility = "visible";
		 
		 var send_for_review_button = document.getElementById("send_for_review_button")
		 if (send_for_review_button != null) send_for_review_button.style.visibility = "visible";
		 
		 var publish_save_button = document.getElementById("publish_save_button")
		 if (publish_save_button != null) publish_save_button.style.visibility = "visible";
		 
		 document.getElementById("edit_info_bar").style.visibility="visible";
		 var edit_info_bar_boxes = document.getElementById("edit_info_bar").getElementsByTagName("div");
		 for (i=0;i<edit_info_bar_boxes.length;i++) edit_info_bar_boxes[i].style.visibility = "visible";
		
}

function admin_edit_article () {
    document.getElementById("content_text").contentEditable='true';
		document.getElementById("content_text").style.border="dashed #0099FF 1px";
		document.getElementById("edit_content_area").style.visibility="visible";
		 var edit_info_bar_boxes = document.getElementById("edit_content_area").getElementsByTagName("div");
		 for (i=0;i<edit_info_bar_boxes.length;i++) edit_info_bar_boxes[i].style.visibility = "visible";
    //show_toolbar_edit ();
		 //document.getElementById("edit_content_area").style.visibility="visible"; 
    //document.getElementById("save_article").style.display = "block"; 
		
}


function  reset_elements () {
  document.getElementById("toolbar_edit").style.display = "none"; 
  document.getElementById("section_header").contentEditable='false';
  document.getElementById("save_section").style.display="none";  
  document.getElementById("save_article").style.display="none";    
  document.getElementById("save_navmenu").style.display="none"; 
  document.getElementById("toolbar_instructions").innerHTML = "Double click on element to edit it";
  return true;
}

    
function getSelText()
{
    var txt = '';
     if (window.getSelection)
    {
        txt = window.getSelection();
             }
    else if (document.getSelection)
    {
        txt = document.getSelection();
            }
    else if (document.selection)
    {
        txt = document.selection.createRange().text;
            }
    else return;
  return  txt;
}

function getElementId (element,depth) {
    if (isNaN(depth)) depth = 0;
    depth++;
    if (depth>20) return "undefined";
    if (element == null) return "";
		else {
    		 if ((element.id != "")&&(element.id in {"toolbar_drag":"","content_text":"","body":"","section_header":"","navmenu":"","content":"","menu_top_inner":""})) {
				  return element.id;
    //if (element.id != "") return element.id;
    		 } else return getElementId (element.parentNode,depth);
		}
}

function admin_disable_links () {
    objLinks = document.getElementsByTagName("a");
    for(i=0;i<objLinks.length;i++){
        objLinks[i].href = "javascript:return false;";
    }
    var admin_disable_links = document.getElementById("admin_disable_links");
    var admin_enable_links = document.getElementById("admin_enable_links");
    admin_disable_links.style.display = "none";
    admin_enable_links.style.display = "block";
    window.sessionStorage.editmode = 1; 
    return true;
}

function admin_enable_links () {
    location.reload(true);
}




var navmenu_items = new Array();
function admin_edit_navmenu () {
   var navmenu = document.getElementById("navmenu");
    navmenu.contentEditable='true'; 
    var url = section;
     /*2011-03-30 Create array containing existing contents of menu */
    navmenu_items =  get_navmenu_array ();
    document.getElementById("save_navmenu").style.display="block";
}

function get_navmenu_array () {
    var navmenu_array = new Array();
    var navmenu = document.getElementById("navmenu");
    var l = navmenu.getElementsByTagName("a");
    for (lc=0;lc<l.length;lc++) {
        var s = l[lc].getElementsByTagName("span");
        navmenu_array[lc] = s[0].innerHTML;
    }
    return navmenu_array;
}


function admin_element (element) {
		debug = 0;
    var id = getElementId(element);
		if (debug==1) console.log(id);
    //var id_split = id.split("_");
    //var content_text = id_split[0];
    //alert(window.sessionStorage.section);

    //var admin_message = document.getElementById("admin_message");
    
    //admin_message.innerHTML = section;
    //reset_elements ();
    //if (content_text=="content_text") admin_edit_article ();
		if (id=="content_text") admin_edit_article ();
    //else if (section == "navmenu") admin_edit_navmenu ();
    //else if (section == "section") admin_edit_section ();
      
    
}

function admin_edit_section () {
    var section_header = document.getElementById("section_header");
    var h =  section_header.getElementsByTagName("h3");
    h[0].contentEditable='true';
    var d =  section_header.getElementsByTagName("div");
    d[0].contentEditable='true';
    show_toolbar_edit ();
    document.getElementById("save_section").style.display="block";
    //document.designMode =  "on";
    //var section_header = document.getElementById("admin_toolbar");
    //section_header.designMode =  "off";
    //var h =  section_header.getElementsByTagName("h3");
    //h[0].contenteditable = "true";
    //alert(h[0].contenteditable);
    //for (i=0;i<h.length;i++) h[i].contenteditable = "true";
}

/*Save button functionality */

function save_page () {
 admin_save_article ();
 window.location.reload ();
}

function publish_page () {
  var result = getFile("/modules/admin/pages/publish.php?article=" + article);
	var result2 = getFile("/modules/info_bar/publish.php?area="+area+"&section="+section+"&file="+file);
	//window.location.reload ();
}

function send_page_for_review () {
				 result= getFile("/modules/admin/pages/send_review.php?article= " + article);
				 alert(result);

}

function admin_save_article () {
    var content = document.getElementById("content_text");
    
		var content_text = content.innerHTML;
		var myJSONText = encodeURIComponent(content_text);
		
	  var result1 = getFile("/modules/admin/pages/save.php?article=" + article  + "&html=" + myJSONText);
}



function admin_save_section() {
    var section_header = document.getElementById("section_header").innerHTML;
    var result = getFile("/modules/admin/pages/save_section.php?section=" + document.URL  + "&html=" + section_header);
    if (result == section_header) {
        window.sessionStorage.editmode = 0;
        admin_enable_links ();
    }    
}

/*2011-03-30 Save navbar */
var new_navmenu_items = new Array();
function admin_save_navmenu() {
    /*Get new item list*/
    new_navmenu_items =  get_navmenu_array ();
    
    /*Compare contents
    Must take account of all new items and changes in existing ones
    */
    var update_required =  false;
    if (new_navmenu_items.length == navmenu_items.length) {
        for (i=0;i<navmenu_items.length;i++) {
            if (navmenu_items[i] != new_navmenu_items[i]) update_required += "item " + i + "changed ";
        }
    } else update_required += navmenu_items.length + "=>" + new_navmenu_items.length;
    
    /*Do update if required*/
    if (update_required) {
        alert(update_required);
    }
}


function admin_save_info_settings (area, section, file, checked,entry) {
				 if (entry != 0) {
    		 		var params = "?area="+area+"&section="+section+"&file="+file+"&checked="+checked+"&entry="+entry;
    				var url = "/modules/admin/pages/save_info_settings.php";
						//console.log (url + params);
    				var result = getFile(url + params);
						//console.log(result);
    				window.location.reload ();
				}
}

function admin_save_info_settings2 (area, section, file, entry)
{
 var params = "?area="+area+"&section="+section+"&file="+file+"&checked=true&entry="+entry;
 alert(params);
}

//Format pages

function create_link () {
    if (getSelText()=="") alert("Please select some text");
    else {
        var url = prompt ("Enter URL", "http://");
        document.execCommand('createlink',false,url);
    }
}

function insert_image () {
    var url = prompt ("Enter image location", "/images/");
    document.execCommand('insertimage',false,url);
    
}

function justify_text (justify) {
				 document.body.contentEditable = true;
				 document.execCommand(justify, false, null);
				 document.body.contentEditable = false;
}

