var doSubmit=false;
function checkSubmit() {
	if(!doSubmit) {
		window.alert("Bitte die Position bestimmen");
	}
	if(document.getElementById("pageName").value=="") {
		window.alert("Bitte den Seitennamen angeben");
        }
	return doSubmit;
}

// This code was written by Tyler Akins and has been placed in the
// public domain.  It would be nice if you left this header intact.
// Base64 code from Tyler Akins -- http://rumkin.com

var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

function showLayoutElement(id) {
	var elem = document.getElementById('layout-element-title'+id);
	elem.style.display='';
}

function hideLayoutElement(id) {
	var elem = document.getElementById('layout-element-title'+id);
	elem.style.display='none';
}

function encode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   do {
      chr1 = input.charCodeAt(i++);
      chr2 = input.charCodeAt(i++);
      chr3 = input.charCodeAt(i++);

      enc1 = chr1 >> 2;
      enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
      enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
      enc4 = chr3 & 63;

      if (isNaN(chr2)) {
         enc3 = enc4 = 64;
      } else if (isNaN(chr3)) {
         enc4 = 64;
      }

      output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + 
         keyStr.charAt(enc3) + keyStr.charAt(enc4);
   } while (i < input.length);
   
   return output;
}

function decode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
   input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

   do {
      enc1 = keyStr.indexOf(input.charAt(i++));
      enc2 = keyStr.indexOf(input.charAt(i++));
      enc3 = keyStr.indexOf(input.charAt(i++));
      enc4 = keyStr.indexOf(input.charAt(i++));

      chr1 = (enc1 << 2) | (enc2 >> 4);
      chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
      chr3 = ((enc3 & 3) << 6) | enc4;

      output = output + String.fromCharCode(chr1);

      if (enc3 != 64) {
         output = output + String.fromCharCode(chr2);
      }
      if (enc4 != 64) {
         output = output + String.fromCharCode(chr3);
      }
   } while (i < input.length);

   return output;
}

function openWindow(url, windowName, width, height) {
  var jetzt = new Date();
  var ts=jetzt.getTime();
  
  var winID=window.open(url,
			windowName,
			"toolbar=no,location=no,directories=no,status=yes,"
			+"scrollbars=yes,resizable=yes,copyhistory=no,"
			+"width="+width
			+",height="+height);
  if (winID != null && winID.opener == null)
    winID.opener= self;
  if(winID.focus())
    winID.focus();
}

function selectInsertLink( intoID, projectKey ) {
    var url="netkey.cgi?action=selectInsertLink"
	+"&intoID="+intoID
	+"&projectKey="+projectKey;
    openWindow(url, "selectInsertLink", 600, 400 );
}

function selectImageWindow( imagePath, imageName, 
			    imagePathID, imageNameID,
			    previewImageID, projectKey) {
  var url="netkey.cgi?action=projectFileBrowser"
    +"&Path="+imagePath
    +"&imagePath="+imagePath
    +"&subAction=selectImageForLayout"
    +"&imageName="+imageName
    +"&imagePathID="+imagePathID
    +"&imageNameID="+imageNameID
    +"&previewImageID="+previewImageID
    +"&projectKey="+projectKey;
  openWindow(url, "selectImageForLayout", 600, 400 );
    
} 

function setImage( imagePathID,
		   imageNameID,
		   previewImageID,
		   path,
		   image,
		   urlPath) {
  var openerDocument = window.opener.document;
/*	window.alert(imagePathID); */
  var imagePathElement = openerDocument.getElementById('hidden_text_'+imagePathID);
  var imageNameElement = openerDocument.getElementById('hidden_text_'+imageNameID);
  var previewImageElement = openerDocument.getElementById(previewImageID);

  imagePathElement.value=path;
  imageNameElement.value=image;
  previewImageElement.setAttribute("src", urlPath+image);
  this.close();
}

function setSubActionAndSubmit( subaction ) {
  var subActionElement = document.getElementById( "subAction" );
  var formElement = document.getElementById( "layoutForm" );
  subActionElement.value=subaction;

  formElement.submit();
}

function abortEditPage() {
  var subActionElement = document.getElementById( "subAction" );
  var actionElement = document.getElementById( "netkey_action" );
  var formElement = document.getElementById( "layoutForm" );
  subActionElement.value="";
  actionElement.value="projectMainPage";
  formElement.submit();
}

function setTargetPage( targetPage ) {
  var targetPageElement = document.getElementById( "targetPage" );
  targetPageElement.value=targetPage;
}

function addTableRow( tableID, rowNumber ) {
  var tableAddRowColType = document.getElementById( "tableAddRowColType" );
  var tableAddRowColTableID 
    = document.getElementById( "tableAddRowColTableID" );
  var tableAddRowColNumber = document.getElementById( "tableAddRowColNumber" );
  tableAddRowColType.value="row";
  tableAddRowColTableID.value=tableID;
  tableAddRowColNumber.value=rowNumber;
  setSubActionAndSubmit( "commitAction" );
}

function addTableCol( tableID, rowNumber ) {
  var tableAddRowColType = document.getElementById( "tableAddRowColType" );
  var tableAddRowColTableID 
    = document.getElementById( "tableAddRowColTableID" );
  var tableAddRowColNumber = document.getElementById( "tableAddRowColNumber" );
  tableAddRowColType.value="col";
  tableAddRowColTableID.value=tableID;
  tableAddRowColNumber.value=rowNumber;
  setSubActionAndSubmit( "commitAction" );
}

function setTargetPageAndSubAction( subAction, targetPage ) {
  doSubmit=true;
  setTargetPage( targetPage );
  setSubActionAndSubmit( subAction );
}

function configureInteractiveModule(layoutElementID, layoutID, hiddenFieldID) {
  var ConfigInteractiveModule_LayoutElementID = document.getElementById
    ("ConfigInteractiveModule_LayoutElementID");
  var ConfigInteractiveModule_LayoutID = document.getElementById
    ("ConfigInteractiveModule_LayoutID");
  var ConfigInteractiveModule_HiddenFieldID = document.getElementById
    ("ConfigInteractiveModule_HiddenFieldID");
  ConfigInteractiveModule_LayoutElementID.value = layoutElementID;
  ConfigInteractiveModule_LayoutID.value = layoutID;
  ConfigInteractiveModule_HiddenFieldID.value = hiddenFieldID;
  setSubActionAndSubmit("configureInteractiveModule");
}

function tableSetData(layoutElementID) {
  var tableToSetDataLayoutElementID = 
    document.getElementById("TabelToSetDataLayoutElementID");
  tableToSetDataLayoutElementID.value = layoutElementID;
  setSubActionAndSubmit("tableSetData");
}

function setSubActionIMConfigAndSubmit(subAction, imConfig) {

  var InteractiveModuleSubAction = document.getElementById
    ("interactiveModuleConfigurationSubAction");

  InteractiveModuleSubAction.value=imConfig;

  setSubActionAndSubmit(subAction);
}

function togglePageMenuDisplay(key) {
  /*alert(document.cookie);*/
  var element = document.getElementById("hide_"+key);
  var img = document.getElementById("hide_img_"+key);
  if(element.style.display=="none") {
    element.style.display="inline";
    img.src="/netkey/netkeyimages/ebene_auf.gif";
    setCookie('hide_'+key,0);
  } else {
    element.style.display="none";
    img.src="/netkey/netkeyimages/ebene_zu.gif";
    setCookie('hide_'+key,1);
  }
}

function setCookie(name, value) {
  /*alert("setCookie("+name+","+value+")");*/
  var cookies = document.cookie.split(";");
  var i;
  var cookieSet=false;
  for(i=0; i < cookies.length; i++) {
    if(cookies[i].indexOf(name)!=-1) {
      cookies[i]=name+"="+value;
      cookieSet=true;
    }
  }
  
  if(!cookieSet) {
    cookies[cookies.length]=name+"="+value;
  }
  for(i=0; i < cookies.length; i++) {
    document.cookie=cookies[i];
  }
  /*alert(document.cookie);*/
}

function togglePageCommandMenuDisplay(key) {
  var element = document.getElementById("menu_"+key);
  var img = document.getElementById("menu_img_"+key);
	
  if(element.style.display=="none" || element.style.display=="") {
    element.style.display="inline";
    img.src="/netkey/netkeyimages/pfeil_hoch.gif";
  } else {
    element.style.display="none";
    img.src="/netkey/netkeyimages/pfeil_runter.gif";
  }
}

function toggleInsertLayoutSelect(key) {
  var element = document.getElementById("insert_layout_select_"+key);
  if(element.style.display=="none") {
    element.style.display="inline";
  } else {
    element.style.display="none";
  }
}

function insertLayoutElement(layoutKey, id) {
  var element = document.getElementById(id);
  element.value=layoutKey;
  setSubActionAndSubmit('commitAction');
}

function deleteLayoutElement(id) {
  var element = document.getElementById(id);
  element.value="deleteElement";
  setSubActionAndSubmit('commitAction');
	
}

var edit;
var display;



function zeige_an(id) {
  var edit = document.getElementById(id);
  edit.style.display="inline";
}

function blende_aus(id) {
  var edit = document.getElementById(id);
  edit.style.display="none";
}

function do_change(id) {
  edit = document.getElementById(id);
  display = document.getElementById('text_display_'+id);
  window.setTimeout('time_fkt()', 100);
}
	
function time_fkt() {
  display.innerHTML = edit.value;
}


function toggleEditField(key) {
  var element = document.getElementById("text_hide_"+key);
  if(element.style.display=="none") {
    element.style.display="inline";
  } else {
    element.style.display="none";
  }
}

function selectAllCheckboxes(prefix, maxCount) {
  var i;
  var elem;
  for(i=0;i<maxCount;i++) {
    elem = document.getElementById(prefix+i);
    elem.checked=true;
  }
}

function validateCSS(id) {
  var elem = document.getElementById(id);
  var w3cTextElem = document.getElementById("w3cvalidateText");
  w3cTextElem.value=elem.value;
  document.getElementById("w3cvalidate").submit();
}

function validateHTML(uri) {
  var elem=document.getElementById("w3curi");
  elem.value=uri;
  document.getElementById("w3cvalidate").submit();
}

function selectFirstChar(c) {
  var displayFirstCharElem=document.getElementById("displayFirstChar");
  displayFirstCharElem.value=c;
  var formElem = document.getElementById("layoutForm");
  formElem.submit();
}

function stripfilename(filename){
  filename=stripbs(filename);
  return strips(filename);
}

function stripbs(filename){
  for(i=0;i<filename.length;i++){
    where=filename.indexOf('\\',i);
    if(where == -1)
      return filename.substring(i);
    i=where;
  }
  return filename;
}
function strips(filename){
  for(i=0;i<filename.length;i++){
    where=filename.indexOf('/',i);
    if(where == -1)
      return filename.substring(i);
    i=where;
  }
  return filename;
}

function setFileName(c, elem) {

  document.getElementById("file-upload-name-"+c).value = stripfilename(elem.value);
}
