var cmsPreviewPages =               "srcmhv91.debeka.de#srcmhv31.debeka.de#10.5.1.40#srcmhv33.server.debeka.de#srcmhv94.server.debeka.de#srcmhv35.server.debeka.de";
var redactionPortalPreviewPages =   "de.debeka.intranet.redaktion.PreviewPage#de.debeka.intranet.redaktion.EditorPreviewPage#de.debeka.intranet.redaktion.EditorialPage#PreviewServlet";
var previewPrefix =                 "http://www.debeka.de"
/* default font-size*/
var fontSize=12;

function isPreviewPage(){
  return (isCmsPreviewPage() || isRedactionPortalPreviewPages());
}

/* return true if page is a CMS preview page */
function isCmsPreviewPage(){
  if (cmsPreviewPages!= null){
  	var path = window.location.href;
  	var a_cmsPreviewPages = cmsPreviewPages.split("#");
  	for(var i =0; i<a_cmsPreviewPages.length; i++ ){
      if (path.indexOf(a_cmsPreviewPages[i])>-1){
        return true;
      } 
    }
  }
	return false;
}
/* return true, if page is a Redaction portal preview page */
function isRedactionPortalPreviewPages(){
  if (redactionPortalPreviewPages!=null){
    var a_redactionPortalPreviewPages = redactionPortalPreviewPages.split("#");
    for(var j =0; j<a_redactionPortalPreviewPages.length; j++ ){
    	if (window.location.pathname.indexOf(a_redactionPortalPreviewPages[j]) >= 0){
    		return true;
   		}
  	}
 	}
	return false;
}
/* online visitcards are not allowed to run in a frame */
function frameKiller(){
  if ( (top != self) && (!isCmsPreviewPage()) && (!isRedactionPortalPreviewPages()) ){
    top.location = self.location;
  }
}

/* set global fontSize variable ohne px Angabe, return Font-Size mit px*/
function getFontSize(el) { 
  var probe = document.getElementById(el); 
  if (probe.currentStyle) { 
	// IE 
	var fontSizePX = probe.currentStyle['fontSize']; 
  } else if (window.getComputedStyle) { 
	// FF, Opera 
	var fontSizePX = document.defaultView.getComputedStyle(probe,null).getPropertyValue('font-size'); 
  }
  fontSize=fontSizePX.substring(0,2);
  return fontSize;
}

function initFontSize(){
  //TODO
}

/* return browser name */
function checkBrowserName(name) {
  var agent = navigator.userAgent.toLowerCase();
  return (agent.indexOf(name.toLowerCase())>-1);
}
/* return preview integrationsserver prefix */
function getPreviewIntegrationPrefix(){
  if ( isCmsPreviewPage() || isRedactionPortalPreviewPages() ) {
    return previewPrefix;
  }
  return "";
}
/* return context, Preview Prefix */
function getPreviewContext(){
	var path = window.location.href;
	var projectPath = "";
	var isPreviewOnPortal =false;
	
	if (isRedactionPortalPreviewPages()){
		var indexRoot = path.indexOf("link="); 
		indexRoot += 5;
		path = path.substring(indexRoot, path.length);
		isPreviewOnPortal =true;
	}
	if ( isCmsPreviewPage() || isPreviewOnPortal ) {	
		var indexRoot = path.indexOf("Debeka-Auftritte/"); //
		indexRoot += 17;
		projectPath = path.substring(indexRoot, path.length);
		indexProjectEnd = projectPath.indexOf('/');
		indexRoot += indexProjectEnd
		projectPath = path.substring(0, indexRoot);
		isPreviewOnPortal =false;
		
	}
	if (path.indexOf("file:///")>-1) {
    	var indexRoot = path.indexOf("Debeka-Prototype/");
    	projectPath = "file:///" + path.substring(8, indexRoot) + "Debeka-Prototype";
  }
	return projectPath;
}
/* preview contact person image */
function objectPreview(url){
  if (isPreviewPage() ) {
    var path = window.location.href;
    url =  previewPrefix + url;
    document.getElementById("contactPersonObject").src=url;
  }
}
/* call relative links as absolute */
function callAbsoluteLink(linkRelativ){
  if (isRedactionPortalPreviewPages()){
     return true;
  }
  absoluteLink=getPreviewContext() + linkRelativ;
  window.location.href = absoluteLink;
  return false;
}
/* timer */
function wait(millis) {
  var date = new Date();
  var curDate = null;
  
  do { curDate = new Date(); }
  while(curDate-date < millis);
}
function waitFor(millis){
    wait(millis);
}

/* replace top link, if page is a preview page */
function setPreviewSeitenanfang(topLink){
  if (isCmsPreviewPage()){
	  var aTopLink = document.getElementById("topLink");
	  if (aTopLink!= null){
	     aTopLink.href=topLink;
	  }
  }
}
/* replace all links, if page is a preview page */
function setHref4Preview(){
	var aNodes = document.getElementsByTagName("a");
	for (var i = 0; i < aNodes.length; i++) {
	  aNodes[i].href = getPreviewContext() + aNodes[i].href;
	}
}	
/* replace all images src, if page is a preview page */
function setImgSrc4Preview(){
  var imgNodes = document.getElementsByName("imgSrc");
  var isPPage = (isCmsPreviewPage() && (imgNodes!=null));
  if (isPPage){
    for (var i = 0; i < imgNodes.length; i++) {
      var imgsrc = imgNodes[i].src;
    	var indexRoot = imgsrc.indexOf("//") +2;
    	imgsrc = imgsrc.substring(indexRoot, imgsrc.length);
    	indexRoot = imgsrc.indexOf("/");
    	imgsrc = imgsrc.substring(indexRoot, imgsrc.length);
    	imgNodes[i].src = getPreviewContext() + imgsrc;
    }
  }
}	
/* */
function getUrefPrefix() {
	var currentHref = window.location.href;
   	var atPosition = currentHref.search(/de.debeka.intranet.portal/);
   	var urefPrefix = "";
   	if (atPosition != -1) {
    		urefPrefix = "";
   	}
   	else {
    		atPosition = currentHref.search(/intranet/);
        if (atPosition != -1){
  	  	   if ((currentHref.charAt(atPosition-1) == "/") && (currentHref.charAt(atPosition-2) != "/")){
			         urefPrefix = currentHref.substring(0, atPosition - 1);
   		     }
        }
        else if (currentHref.indexOf("mastertemplate") >= 0){
            atPosition = currentHref.indexOf("mastertemplate") + 17;
            urefPrefix = currentHref.substring(0, atPosition);
        }
   	}
}

/* replace 'beschreibung' image, if page is a portal preview page */
function setPreviewContextBeschreibung(relativPath){
	var previewContext = getPreviewContext();
	if (previewContext != ""){
		var desc =document.getElementById("beschreibung");
		var styl = "url(" + previewContext + relativPath + ")";
		desc.style.backgroundImage=styl;
	}
}
/* open popup window for help */
function FensterOeffnen (url) {
  if (isRedactionPortalPreviewPages()){
     return true;
  }
  openWindow(getPreviewContext()+url, 630, 602, "Hilfe", "right","top");
  return false; 
}
/* Oeffne Fenster, mit Breite w, Höhe h, title name, position x, position y, und focus?*/
function openWindow(url, w, h, name, x, y, isFocused){
  x = x || 0;
  y = y || 0;
  if (isFocused==null) {
     isFocused=true;
  }
  switch (x) {
    case "center": leftValue=(screen.availWidth-w)/2;
    break;
    case "right": leftValue=screen.availWidth-w;
    break;
    case "left": leftValue=0;
    break;
   default: leftValue=((isNaN(x))?0:x); 
  }
  switch (y) {
    case "center": topValue=(screen.availHeight-h)/2;
    break;
    case "bottom": topValue=screen.availHeight-h;
    break;
    case "top": topValue=0;
    break;
   default: topValue=((isNaN(y))?0:y); 
  }
  if (checkBrowserName('MSIE')) {
    h=h+3;
  }
  properties = "width="+ w +",height=" + h + ",left="+leftValue+",top="+topValue+",menubar=no,resizable=yes,scrollbars=yes,toolbar=no,status=no";
  
  popup = window.open( url, name, properties);
  if (isFocused) {
    popup.focus();
  }
  return popup;
}
/* open popup window and focus it*/
function windowOpen(url, title, properties) {
  if (isRedactionPortalPreviewPages()){
     return true;
  }
  fenster = window.open(url, title, properties);
  fenster.focus();
  return false;
}
/* resize window for help */
function resizeHelpWindow(){
  var l=0;
  var w=0;
  var h=0;
  if (navigator.appName=='Microsoft Internet Explorer'){
    w=630;
    h=605;
  }else if (navigator.appName=='Netscape'){
    w=630;
    h=602;
  }
  else {
    w=630;
    h=603;
  }
  prepareHelp(this,w, h);
}
/* open popup window for help */
function openHelp (url) {
  if (isRedactionPortalPreviewPages()){
     return true;
  }
  if (checkBrowserName('MSIE')) {
    win1=openWindow(getPreviewContext() + url, 639, 635, "Hilfe", 100, 20, true);
		prepareHelp(win1, 639, 635);
  } else if (navigator.appName=='Netscape'){
    win1=openWindow(getPreviewContext() + url, 635, 650, "Hilfe", 100, 20, true);
		prepareHelp(win1, 635, 650);
  }
  else {
    win1=openWindow(getPreviewContext() + url, 639, 650, "Hilfe", 100, 20, true);
		prepareHelp(win1, 635, 650);
  }
  return false;
}
/* resize window for help */
function prepareHelp(win, dimX, dimY){
  if (isRedactionPortalPreviewPages()){
     return true;
  }
	win.resizeTo(dimX, dimY);
	var left = screen.availWidth-dimX;
	win.moveTo(left, 0);
	win.focus();
	return false;
}

/* switch color for hover effect */
function switchHover(over, node){
// do nothing
}
/* encode url, for struts form */
function encodeCharacters(buffer){
    buffer=escape(buffer);
    buffer = buffer.replace("%3F", "?");
    while(buffer.indexOf("%26") >-1 ||  buffer.indexOf("%3D") > -1){
          buffer = buffer.replace("%26", "&");
          buffer = buffer.replace("%3D", "=");
    }
    return buffer;
}
/* encode email */
function belink(cryptMail) {
    var linkText = "";
    var shift = 1;
    var tempMail = cryptMail.substring(7, cryptMail.length);
    var n;
    for(var i = 0; i < tempMail.length;i++) {
        n = tempMail.charCodeAt(i)-shift;
        linkText += "&#"+n+";";
    }
    var link = "<a id=\"cryptMail\" name=\"cryptMail\" title=\"Mailto\" href=\"javascript:linkTo_UnCryptMailto('" +cryptMail+"',"+shift+");\">"+linkText+"</a>";
    document.write(link);
}
/* decode encrypted email */
function UnCryptMailto(s, shift) {
    var n=0;
    var r="";
    for(var i=0;i<s.length;i++) {
        n=s.charCodeAt(i); 
        if (n>=8364) {n = 128;}
        r += String.fromCharCode(n-(shift)); 
    }
    return r;
}
/* call encrypted email */
function linkTo_UnCryptMailto(s, shift)	{
    location.href=UnCryptMailto(s, shift);
}

