
//------------------------------------------------------------------------------
// Define context object
//------------------------------------------------------------------------------

// context object print function
function ContextObject_toString() {
	return "{sp=" + this.sp + "}" 
    + "{exporturl=" + this.exporturl + "}" 
    + "{currentfolder=" + this.currentfolder + "}" 
    + "{currentpage=" + this.currentpage + "}"
    + "{currentResourceType=" + this.currentResourceType + "}"
    + "{htmlarea_baseurl=" + this.htmlarea_baseurl + "}"
    + "{appkey=" + this.appkey + "}"
    + "{dscssfolder=" + this.dscssfolder + "}"
    + "{dsgfxfolder=" + this.dsgfxfolder + "}"
    + "{dsjsfolder=" + this.dsjsfolder + "}"
    + "{dsfolder=" + this.dsfolder + "}"
    + "{dspagesfolder=" + this.dspagesfolder + "}"
    + "{cssfolder=" + this.cssfolder + "}"
    + "{gfxfolder=" + this.gfxfolder + "}"
    + "{jsfolder=" + this.jsfolder + "}"
    + "{pagesfolder=" + this.pagesfolder + "}"
    + "{schemafolder=" + this.schemafolder + "}"
    + "{schemacssfolder=" + this.schemacssfolder + "}"
    + "{schemagfxfolder=" + this.schemagfxfolder + "}"
    + "{schemajsfolder=" + this.schemajsfolder + "}"
    + "{mysitesfolder=" + this.mysitesfolder + "}"
    + "{mysitefolder=" + this.mysitefolder + "}"
    + "{domainfolder=" + this.domainfolder + "}"
    + "{domaincssfolder=" + this.domaincssfolder + "}"
    + "{domaingfxfolder=" + this.domaingfxfolder + "}"
    + "{domainjsfolder=" + this.domainjsfolder + "}"
    + "{userLocale=" + this.userLocale + "}"
    + "{autoCloseEditor=" + this.autoCloseEditor + "}"
    + "{editorCloseOnExit=" + this.editorCloseOnExit + "}";
}

function ContextObject() {
  this.sp               = "/bho/dcms";
  this.exporturl        = "";
  this.currentfolder    = "/res/js/";
  this.currentpage      = "/res/js/context.js";
  this.currentResourceType = "CmsPage";
  this.htmlarea_baseurl = "/sys/editors/htmlarea/";
  this.appkey           = "bho";
  
  // DS
  this.dscssfolder   = "/sys/res/css/";
  this.dsgfxfolder   = "/sys/res/gfx/";
  this.dsjsfolder    = "/sys/res/js/";
  this.dsfolder      = "/sys/";
  this.dspagesfolder = "/sys/pages/";
  
  // res
  this.cssfolder     = "/res/css/";
  this.gfxfolder     = "/res/gfx/";
  this.jsfolder      = "/res/js/";
  this.pagesfolder   = "/res/pages/";
  
  // schema
  this.schemafolder    = "/res/domains/bistum/schemas/default/";
  this.schemacssfolder = "/res/domains/bistum/schemas/default/css/";
  this.schemagfxfolder = "/res/domains/bistum/schemas/default/gfx/";
  this.schemajsfolder  = "/res/domains/bistum/schemas/default/js/";
  
  // mysite(s)
  this.mysitesfolder = "/sites/";
  this.mysitefolder  = "/sites/";
  
  // domain
  this.domainfolder    = "/res/domains/bistum/";
  this.domaincssfolder = "/res/domains/bistum/css/";
  this.domaingfxfolder = "/res/domains/bistum/gfx/";
  this.domainjsfolder  = "/res/domains/bistum/js/";
  
  // print function
	this.toString = ContextObject_toString;

  // current user
    this.userLocale = "de_DE";
  this.autoCloseEditor =  true;   
  // general flags
  this.editorCloseOnExit =  false;  // returned from editor to preview
}

var context = new ContextObject();

//------------------------------------------------------------------------------
// Define resource texts object
//------------------------------------------------------------------------------

var res = new Array();
res["contact.error.missing.field.name"] = "Bitte geben Sie Ihren Namen ein.";
res["contact.error.missing.contact.fields"] = "Bitte geben Sie Ihre Kontaktdaten (E-Mail oder Telefon oder Fax oder Anschrift) ein.";
res["contact.error.invalid.email"] = "Die eingegebene E-Mail-Adresse ist nicht korrekt.";
res["contact.error.missing.field.text"] = "Bitte geben Sie einen Beschreibungstext ein.";

//------------------------------------------------------------------------------
// DirectExplorer callback from DirectEdit
//------------------------------------------------------------------------------

function handleExitEditor() {
  var doClose = false;
  try {
    
    
    if (top && top.window && top.window.opener && (typeof top.window.opener.closed != "unknown") 
        && !top.window.opener.closed && top.window.opener.isDirectExplorer && top.window.opener.isDirectExplorer()) {
      try {
        var resourceType = context.currentResourceType;
        var resourcePath = context.currentpage;
        if (resourcePath != "" && resourceType != "" && top.window.opener.onResourceChanged) {
          top.window.opener.onResourceChanged(resourceType, resourcePath);
        }
      } catch (e) {
        // do nothing and close window
      } finally {
        if (context.editorCloseOnExit && context.autoCloseEditor) {
          doClose = true;
        }
      }
    }
  } catch (e) {
    // do nothing 
  } finally {
    if (doClose) {
        window.close();
    }
  }
}


handleExitEditor();

// =============================================================================
