/* open window with yellowmap map from Id */
function ym_zoom(id){
  zoom = window.open("http://www.yellowmap.de/Filialfinder/Html/Map.aspx?Partner=Debeka&SecurityID=6I5bYSLrBBUbLN07TZtiNw%3D%3D&MapPartnerIds="+id, "Zoomansicht", "width=775,height=540,menubar=no,resizable=yes,scrollbars=yes");
  zoom.focus();
}
/* open window with yellowmap route from Id */
function ym_route(id){
  route = window.open("http://www.yellowmap.de/Filialfinder/Html/Route.aspx?Partner=Debeka&SecurityID=6I5bYSLrBBUbLN07TZtiNw%3D%3D&RouteEndPartnerId="+id, "Routenplaner", "width=790,height=540,menubar=no,resizable=yes,scrollbars=yes");
  route.focus();
}
/* open window with own map or route from url */
function ym_route635(url){
  var prefix="";
  var path = window.location.href;
  if ((path.indexOf("srcmhv31.debeka.de")>-1) || (path.indexOf("10.5.1.40")>-1) || (path.indexOf("srcmhv91.debeka.de")>-1) || isPreviewPage() ) {
    prefix="http://www9.debeka.de";
  }
  //url = encodeCharacters(url);
  route = window.open(prefix + url, "Routenplaner", "width=657,height=700,menubar=no,resizable=yes,scrollbars=yes");
  route.focus();
}
/* call relative links as absolute */
function callAbsoluteLink(linkRelativ){
  absoluteLink=getPreviewContext() + linkRelativ;
  window.location.href = absoluteLink;
}
function wait(millis) {
  var date = new Date();
  var curDate = null;
  
  do { curDate = new Date(); }
  while(curDate-date < millis);
}
function waitFor(millis){
    wait(millis);
}

/* return project context */
function getPreviewContext(){
	var path = window.location.href;
	var projectPath = "";
	var isPreviewOnPortal =false;
	
	if (isPortalPreviewPage()){
		var indexRoot = path.indexOf("link="); 
		indexRoot += 5;
		path = path.substring(indexRoot, path.length);
		isPreviewOnPortal =true;
	}
	
	if ( (path.indexOf("srcmhv91.debeka.de")>-1) || (path.indexOf("srcmhv31.debeka.de")>-1) || (path.indexOf("10.5.1.40")>-1) || 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;
}
/* return true if page is a preview page */
function isPreviewPage(){
	var path = window.location.href;
	if ((path.indexOf("srcmhv31.debeka.de")>-1) || (path.indexOf("10.5.1.40")>-1) || isPortalPreviewPage() ) {
		return true;
	}
	return false;
}
/* replace top link, if page is a preview page */
function setPreviewSeitenanfang(topLink){
  if (isPreviewPage()){
	  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 = (isPreviewPage() && (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);
        }
   	}
}
/* return true, if page is a portal preview page */
function isPortalPreviewPage(){
	if (window.location.pathname.indexOf('de.debeka.intranet.redaktion.PreviewPage') >= 0){
		return true;
	}
	if (window.location.pathname.indexOf('de.debeka.intranet.redaktion.EditorPreviewPage') >= 0){
		return true;
	}
	if (window.location.pathname.indexOf('de.debeka.intranet.redaktion.EditorialPage') >= 0){
		return true;
	}
	return false;
}
/* 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;
	}
}
/*TODO: replace call of FensterOeffnen with openHelp*/
/* open popup window for help */
function FensterOeffnen (Adresse) {
        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;
        }
        l = screen.availWidth-w;
        properties = "width="+ w +",height=" + h + ",left="+l+",top=0,menubar=no,resizable=yes,scrollbars=yes,toolbar=no,status=no";
        Fenster1 = window.open( getPreviewContext() + Adresse, "Hilfe", properties);
        Fenster1.focus();
        /*prepareHelp(Fenster1,w, h);*/
}
/* open popup window for help */
function openHelp (Adresse) {
	if (navigator.appName=='Microsoft Internet Explorer'){
		Fenster1 = window.open( getPreviewContext() + Adresse, "Hilfe", "menubar=no,resizable=no,scrollbars=no,toolbar=no,status=no,top=20;width=639,height=635,left=100");
		Fenster1.focus();
		prepareHelp(Fenster1, 639, 635);
	} else if (navigator.appName=='Netscape'){
		Fenster1 = window.open( getPreviewContext() + Adresse, "Hilfe", "menubar=no,resizable=no,scrollbars=no,toolbar=no,status=no,top=20;width=635,height=650,left=100");
		Fenster1.focus();
		prepareHelp(Fenster1, 635, 650);
	}
	else {
		Fenster1 = window.open( getPreviewContext() + Adresse, "Hilfe", "menubar=no,resizable=no,scrollbars=no,toolbar=no,status=no,top=20;width=635,height=650,left=100");
		Fenster1.focus();
		prepareHelp(Fenster1, 635, 650);
	}
}
/* resize window for help */
function prepareHelp(win, dimX, dimY){
	win.resizeTo(dimX, dimY);
	var left = screen.availWidth-dimX;
	win.moveTo(left, 0);
}
/* 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);
}
/* switch color for hover effect */
function switchHover(over, node){
/*	if (over == 'over'){
		node.style.backgroundColor='rgb(0, 124, 166)';
		node.style.color='#000000';
	}else {
		node.style.backgroundColor='rgb(198, 198, 198)';
		node.style.color='#99200F';
	}
*/
}
/* 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);
}
