function confirmation() {
  var answer = confirm("Are you sure you want to delete this record?")
  if (answer){
    window.location = "delete.php";
  } else{
    return;
  }
}

function dontBubble(){
  if (window.event && window.event.cancelBubble !== null) {
	window.event.cancelBubble = true;
  } else {
	event.stopPropagation();
  }
}

function newElement(){
  window.frames["editorIframe"].location.href="createNewElement.php?page="+sPage + "&clickX="+clickX + "&clickY="+clickY;
  dd.elements.editor.maximizeZ();
  dd.elements.editor.show();/**/
}

var sEditElement
var currentProperty = "opacity";
var editProperties = new Object();
var initialFontSize = 24;
var initialDivWidth;
var initialDivHeight;
var dynamicX
var dynamicY
var clickX
var clickY

function openEditor(elementName){
    //alert("elementName="+elementName);
    sEditElement=elementName
    var myElement=document.getElementById(sEditElement);
    dd.elements.editor.moveTo(clickX-165,clickY-145);
    //alert("elementType="+myElement.getAttribute('type'));
    switch (myElement.getAttribute('type')){
        case "text":
            updateProperties(sEditElement);
            frames["editorIframe"].location.href="textEditor.php?elementName="+sEditElement+"&page="+escape(document.myForm.pageName.value);
            dd.elements.editor.maximizeZ();
            dd.elements.editor.show();
        break;
        case "image":
            //alert("type=image sEditElement="+sEditElement);
            //alert("imageEditor.php?elementName="+sEditElement+"&page="+escape(document.myForm.pageName.value));
            updateProperties(sEditElement);
            currentProperty = "opacity";
            frames["editorIframe"].location.href="imageEditor.php?elementName="+sEditElement+"&page="+escape(document.myForm.pageName.value);
            dd.elements.editor.maximizeZ();
            dd.elements.editor.show();
        break;
        case "movie":
            updateProperties(sEditElement);
            //currentProperty = "startTime";
            //document.location.href = "sampleImplementation/editor.php??uid=951&kshow_id="+(document.myForm.filename.value);
            frames["editorIframe"].location.href="movieEditor.php?refImage="+escape(editProperties["refImage"])+"&currentMedia="+escape(editProperties["filename"])+"&page="+escape(document.myForm.pageName.value)+"&elementName="+sEditElement;
            dd.elements.editor.maximizeZ();
            dd.elements.editor.show();
        break;
        case "audio":
            updateProperties(sEditElement);
            frames["editorIframe"].location.href="audioEditor.php?currentMedia="+escape(editProperties["filename"])+"&page="+escape(document.myForm.pageName.value)+"&elementName="+sEditElement;
            dd.elements.editor.maximizeZ();
            dd.elements.editor.show();
        break;
    }
}

function updateProperties(sEditElement) {
  //alert(document.getElementById(sEditElement).getAttribute("altText"));
  var myElement=document.getElementById(sEditElement);
  var elementType = myElement.getAttribute('type');
  switch (elementType){
    case "text":
      editProperties["altText"] = "";
      editProperties["bgColor"] = myElement.style.backgroundColor;
      editProperties["type"] = "text";
      editProperties["color"] = myElement.style.color;
      //editProperties["endtime"] = "";
      editProperties["filename"] = "";
      var sFontSize = new String(myElement.style.fontSize);
      sFontSize = sFontSize.slice(0,sFontSize.length-2);
      editProperties["fontSize"] = parseInt(sFontSize);
      editProperties["fontFamily"] = myElement.style.fontFamily;
      sHeight = new String(myElement.style.height);
      sHeight = sHeight.slice(0,sHeight.length-2);
      editProperties["height"] = parseInt(sHeight);
      editProperties["opacity"] = myElement.style.opacity;
	  //editProperties["refImage"] = "";
      //editProperties["startTime"] = "";
      editProperties["textAlign"] = myElement.style.textAlign;
      editProperties["textContents"] = myElement.innerHTML;
      var sWidth = new String(myElement.style.width);
      sWidth = sWidth.slice(0,sWidth.length-2);
      editProperties["width"] = parseInt(sWidth);
      editProperties["x"] = dd.elements[sEditElement].x;
      editProperties["y"] = dd.elements[sEditElement].y;
      editProperties["z"] = dd.elements[sEditElement].z;
    break;
    case "image":
      var sImageName = myElement.childNodes[0].getAttribute("name")
      var sAltText = myElement.childNodes[0].getAttribute("alt")
      editProperties["altText"] = sAltText;
      editProperties["bgColor"] = "";
	  editProperties["type"] = "image";
	  editProperties["color"] = "";
      //editProperties["endtime"] = "";
      editProperties["filename"] = sImageName;
      editProperties["fontFamily"] = "";
      editProperties["fontSize"] = "";
      editProperties["height"] = myElement.childNodes[0].getAttribute("height");
      editProperties["opacity"] = myElement.style.opacity;
	  //editProperties["refImage"] = "";
      //editProperties["starttime"] = "";
      editProperties["textAlign"] = "";
      editProperties["textContents"] = "";
      editProperties["width"] = myElement.childNodes[0].getAttribute("width");
      editProperties["x"] = dd.elements[sEditElement].x;
      editProperties["y"] = dd.elements[sEditElement].y;
      editProperties["z"] = dd.elements[sEditElement].z;
    break;
    case "movie":
      editProperties["altText"] = document.getElementById(sEditElement).getAttribute("altText");
      editProperties["bgColor"] = "";
	  editProperties["type"] = "movie";
	  editProperties["color"] = "";
	  //editProperties["endTime"] = myElement.getAttribute("endTime");
	  var movieDiv = sEditElement+"movie";
      editProperties["filename"] = document.getElementById(movieDiv).childNodes[0].getAttribute("id");
      editProperties["fontFamily"] = "";
	  editProperties["fontSize"] = "";
	  editProperties["height"] = "";
	  editProperties["opacity"] = "";
	  //editProperties["refImage"] = myElement.childNodes[0].getAttribute("name");
	  //editProperties["startTime"] = myElement.getAttribute("startTime");
	  editProperties["textAlign"] = "";
      editProperties["textContents"] = "";
      //alert (editProperties["textContents"]);
	  editProperties["width"] = "";
	  editProperties["x"] = dd.elements[sEditElement].x;
	  editProperties["y"] = dd.elements[sEditElement].y;
	  editProperties["z"] = dd.elements[sEditElement].z;
    break;
    case "audio":
      editProperties["altText"] = document.getElementById(sEditElement).getAttribute("altText");
      editProperties["bgColor"] = "";
	  editProperties["type"] = "audio";
	  editProperties["color"] = "";
	  //editProperties["endTime"] = myElement.getAttribute("endTime");
	  var audioDiv = sEditElement+"audio";
	  editProperties["filename"] = document.getElementById(audioDiv).childNodes[0].getAttribute("id");
	  editProperties["fontFamily"] = "";
	  editProperties["fontSize"] = "";
	  editProperties["height"] = parseInt(24);
	  editProperties["opacity"] = "";
	  //editProperties["refImage"] = "";
	  //editProperties["startTime"] = myElement.getAttribute("startTime");
	  editProperties["textAlign"] = "";
      editProperties["textContents"] = "";
	  editProperties["width"] = parseInt(320);
	  editProperties["x"] = dd.elements[sEditElement].x;
	  editProperties["y"] = dd.elements[sEditElement].y;
	  editProperties["z"] = dd.elements[sEditElement].z;
    break;
    case "flash":
      var url = "updateFlash.php"
    break;
    case "svg":
      var url = "updateSVG.php"
  }
  /*for(i in editProperties){
    alert("updateProperties:<br />"+ i +"=   " + editProperties[i]);
  }*/
}

function restoreZIndex(){
  var minZ
  var gradedElements = new Array();
  var ungradedElements = new Array();
  var higherElements = new Array();
  var sNum
  var numOfElements = dd.elements.length;
  dd.elements["editor"].setZ(1);
  // *** set up an array of all the z numbers on the page (ungradedElements) ***
  for (i=0; i<numOfElements; i++){
    //alert(dd.elements[i].name+" = "+dd.elements[i].z);
    ungradedElements.push(dd.elements[i].z);
  }
  //alert(dd.elements[i].name);
  // *** go through the set of numbers and at each cycle take out the smallest number each time. ***
  // *** Push it into gradedElements ***
  while(ungradedElements.length>1){
    var minZ = ungradedElements[0];
    var smallerZ;
    var biggerZ;
    // *** store the smallest number in minZ and push the others into higherElements ***
    for (i=1; i<ungradedElements.length; i++){
      smallerZ=Math.min(minZ,ungradedElements[i]);
      biggerZ=Math.max(minZ,ungradedElements[i]);
      minZ = smallerZ;
      higherElements.push(biggerZ);
    }
    
    //alert("Higher Elements");
    //for (i=0; i<higherElements.length; i++){
      //alert (higherElements[i]);
    //}
    
    // *** push the minZ into gradedElements ***
    gradedElements.push(minZ);    
    // *** gradedElements array slowly builds up the minimum values in order of size ***
    ungradedElements=Array();
    for (i=0; i<higherElements.length; i++){
      ungradedElements.push(higherElements[i]);
      // *** ungradedElements now contains all the z-indexes of all the higher elements on the page
    }    
    higherElements=Array();
  }
  gradedElements.push(ungradedElements[0]);
  //gradedElements.reverse();
  //dd.element["backgroundDiv"].z=0;
  //dd.element["editor"].z=1;
  j=1;
  if (gradedElements.length>1){
      theData = "element1="+dd.elements[gradedElements.length-2].name;
      //alert(theData);
      dd.elements[gradedElements.length-2].setZ(10*j);
      j++;
      if (gradedElements.length>1){
          for ( i=2; i<gradedElements.length; i++ ){
              //use ajax to update the database quietly with all the new values
              theData = theData+"&element"+i+"="+dd.elements[gradedElements.length-(i+1)].name;
              dd.elements[gradedElements.length-(i+1)].setZ(10*j);              
          }
      }
      var url = "restoreZ.php";
      request.open("POST", url, true);
      request.onreadystatechange = updatePage;
      request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
      request.send(theData);
      //alert(theData);
  }
}

function sendAjax(elementName){
    var altText = editProperties["altText"];
    var bgColor = editProperties["bgColor"];
    var color = editProperties["color"];
    var filename = editProperties["filename"];
    var fontFamily = editProperties["fontFamily"];
    var fontSize = editProperties["fontSize"];
    var height = editProperties["height"];
    var opacity = editProperties["opacity"];
    var textAlign = editProperties["textAlign"];
    var textContents = editProperties["textContents"];
    var type = editProperties["type"];
    var updateMode = editProperties["updateMode"];
    var width = editProperties["width"];
    var x = editProperties["x"];
    var y = editProperties["y"];
    var z = editProperties["z"];
    
    var elementType = document.getElementById(elementName).getAttribute('type');
    var page = document.myForm.pageName.value;
    
    switch (elementType){
      case "text":
        var url = "updateElement.php";
        theData = "bgColor="+bgColor + "&color="+color + "&elementName="+elementName + "&fontSize="+fontSize + "&fontFamily="+encodeURIComponent(fontFamily) + "&height="+height + "&opacity="+opacity + "&page="+encodeURIComponent(page) + "&textAlign="+textAlign + "&textContents="+escape(textContents) + "&type="+type + "&updateMode="+updateMode + "&width="+width + "&x="+x + "&y="+y + "&z="+z;
        //see("sendAjax:text: theData= ["+decodeURIComponent(theData)+"]");        
        break;
      case "image":
        var url = "updateElement.php";
        theData = "altText="+encodeURIComponent(altText) + "&elementName="+elementName + "&filename="+encodeURIComponent(filename) + "&height="+height + "&opacity="+opacity + "&page="+encodeURIComponent(page) + "&type="+type + "&updateMode="+updateMode + "&width="+width + "&x="+x + "&y="+y + "&z="+z;
        //alert (theData); exit;
        //see("sendAjax:image: theData= ["+decodeURIComponent(theData)+"]");
        break;
      case "movie":
        var url = "updateElement.php";
        theData = "altText="+encodeURIComponent(altText) + "&elementName="+elementName + "&filename="+encodeURIComponent(filename) + "&page="+encodeURIComponent(page) + "&type="+type + "&x="+x + "&y="+y + "&z="+z;
        //alert (theData);
        //see("sendAjax:movie: theData= ["+decodeURIComponent(theData)+"]");
        break;
      case "audio":
        var url = "updateElement.php";
        theData = "altText="+encodeURIComponent(altText) + "&elementName="+elementName + "&filename="+encodeURIComponent(filename) + "&page="+encodeURIComponent(page) + "&type="+type + "&x="+x + "&y="+y + "&z="+z;
        //see("sendAjax:audio: theData= ["+decodeURIComponent(theData)+"]");
        break;
      /*case "flash":
        var url = "updateFlash.php";
        break;
      case "svg":
        var url = "updateSVG.php";*/
      default:
        var url = "";
        break;
    }
    if (url !=""){
        request.open("POST", url, true);
        request.onreadystatechange = updatePage;
        request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        request.send(theData);
    }
}

function checkPage(){
    if (dd.elements.editor.visible==false){
        var dateTime = document.myForm.dateTime.value;
        var page = document.myForm.pageName.value;
        //alert("dateTime=+dateTime");
        var url = "checkPage.php"
        //alert("url="+url);
        theData = "dateTime="+dateTime + "&page="+page;
        //alert("theData="+theData);
        request.open("POST", url, true);
        request.onreadystatechange = refreshPage;
        request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        request.send(theData);
    }
}


/*function my_ResizeFunc(){
  var currentObject = dd.obj.name;
  myString = new String(currentObject);
  var elementNum = myString.slice(7);
  var mylist=document.getElementById(currentObject);
  if (mylist.childNodes[0].nodeName=="IMG"){
	var image = mylist.childNodes[0];
	document.title=image.name;
    image.setAttribute("width",dd.obj.w);
    image.setAttribute("height",dd.obj.h);
  }
}*/

function closeEditor(sIframe){
  dd.elements[sIframe].hide();
  restoreZIndex();
  //document.location.reload();
  document.location.href="website.php?page="+escape(document.myForm.pageName.value);
}

var UniqueID = 314 // Make each link open in a new window
var newWinOffset = 0 // Position of first pop-up

var request = false;
try {
  request = new XMLHttpRequest();
} catch (trymicrosoft) {
  try {
    request = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (othermicrosoft) {
    try {
  request = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (failed) {
  request = false;
    }
  }
}

if (!request) {
	alert("Error initializing XMLHttpRequest!");
}

function see(contents){
  var generator=window.open("","name","toolbar=no,width=450,height=600,status=yes,scrollbars=yes,resize=yes,menubar=yes");
  generator.document.write(contents);
  generator.document.close();
}

function updatePage() {
  if (request.readyState == 4) {
    if (request.status == 200) {
      var response = request.responseText;
      //see("updatePage():<br /><br />"+unescape(response));
    } else {
      var response = request.responseText;
    }
  }
}

function refreshPage() {
  if (request.readyState == 4) {
    if (request.status == 200) {
      var response = request.responseText;
      //see("checkPage():<br />"+unescape(response));
      //alert("response = "+response);
      if (response == "refresh"){
        //alert("refresh");
        document.location.href="website.php?page="+escape(document.myForm.pageName.value);
        //alert("website.php?page=");//+escape(document.myForm.pageName.value));
      }
    } else {
      var response = request.responseText;
    }
  }
}

function print_mail(address) //last edited 25/2/8
{
   document.write("<a href=\"" + "ma" + "il" + "to:" + address + "\">" + address + "<\/a>");
}

var urlstring = new String(document.location);
var paramList = urlstring.split("?");
var editPage
var vDirection

var keyPressed
document.onkeydown = loadKeyPressed;
document.onkeyup = releaseKeyPressed;

function loadKeyPressed(e) {
    var keycode;
    if (window.event) keycode = window.event.keyCode;
    else if (e) keycode = e.which;
    keyPressed = String.fromCharCode(keycode);
}

function releaseKeyPressed(e) {
    keyPressed = "";
}

/*function checkForKeyPress(sDivName){
        alert sDivName;
}*/


function removeElement(sDivName){
   var sType = document.getElementById(sDivName).getAttribute('type');
   inputClick=confirm("Are you sure you want to remove this "+sType+"?");
   if (inputClick) {
      // Output when OK is clicked
      var remove = "1";
      var elementName = sDivName;
      var url = "updateElement.php";
      theData = "remove="+remove + "&elementName="+elementName;
      request.open("POST", url, true);
      request.onreadystatechange = refreshPage;
      request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
      request.send(theData);

  } else {
      // Output when Cancel is clicked
      return false;
  }
}

if (paramList.length > 1)
{
  editPage = paramList[1];
}
editPage = "edit.php?" + editPage;


