//<script language="JavaScript">

// Globale Funktionen zum Steuern der Frame-Navigation!

// mode: 0 = default (lngID ist die NavID, ID auf -1 setzen)
// 1 = lngID ist die ID, NavID aus der Seitenvariable lesen (konstant)
// 2 = lngID ist die dispatch-ID (NavID auf -1 setzen)
// 3 = ein externer link (Beide IDs auf -1 setzen)
// 4 = lngID ist die Medien-ID (NavID auf -1 setzen)
// 5 = wie default, nur es handelt sich um einen internen Folderlink
// 6, 7 = wie ein externer link, aber es ist ein interner auf eine spezielle asp-Seite, d.h. es werden an den Link Parameter drangehaengt...

// lngSubModule: wird als Parameter 'MOD' einfach weitergereicht, falls vorhanden
// strSpecialParameter: wird als Parameter 'Z' einfach weitergereicht, falls vorhanden

function LoadSite(lngNavID, lngID, strSessionCode, lngWindowMode, lngMode, strExtern, lngPosition, lngOrder, lngRestricted, lngSubModule, strSpecialParameter)
{

	switch (lngMode)
	{
		case 2:
			// ohne Parameter V auskommen!
			//LoadNewContent(-1, -1, strSessionCode, lngRestricted, 0, -1, lngID, 2, lngWindowMode);
			LoadNewContent(-1, lngID, strSessionCode, lngRestricted, 0, -1, 0, 2, lngWindowMode);
			break;
		case 3:
			LoadExternContent(strExtern, lngWindowMode);
			break;
		case 4:
			// es koennen schon ausgewertete Pfade also ohne ID geladen werden...
			LoadMedia(lngID, lngWindowMode, strSessionCode, strExtern);
			break;
		case 6:

			LoadInternContent(lngNavID, lngID, strExtern, lngWindowMode, strSessionCode, lngRestricted);
			break;
		case 7:
			LoadInternContent(lngNavID, lngID, strExtern, lngWindowMode, strSessionCode, lngRestricted);
			break;
		case 8:
		default:
			//LoadNav(lngNavID, strSessionCode);
			LoadNewContent(lngNavID, lngID, strSessionCode, lngRestricted, lngPosition, lngOrder, 0, 0, lngWindowMode, lngSubModule, strSpecialParameter);

	}
}


function LoadNav(lngNavID, strSessionCode)
{
	return;

	if (!CompareNavigation(lngNavID, strSessionCode))
	{
		SetNewNavigation(lngNavID, strSessionCode);
		LoadNewNavigation(lngNavID, strSessionCode);
	}
}

function LoadHomepage(strSessionCode, lngRestricted)
{
    var TstrLink = "";
    if (CheckUrlRewrite()) {
        TstrLink += "main.asp" + IstrUrlDivider + GetMainOutputParameter() + IstrUrlDivider + "R" + IstrUrlDivider + lngRestricted + GetDebugHTTPParameter();
	} else {
        TstrLink += "main.asp?" + GetMainOutputParameter() + "&R=" + lngRestricted + GetDebugHTTPParameter();
    }
	if (IlngPopupMode && (IlngPopupMode > 0)) {
    	opener.location.href = TstrLink;
    } else {
    	top.location.href = TstrLink;
    }

}

/***********************************************************************************************
 *                         PRIVATE-BEREICH, NICHT VON AUSSEN AUFRUFEN!!                        *
 ***********************************************************************************************/

// private Status-Variablen

// Konstruktor fuer die Klasse einer Seite
function Site(strType)
{
	this.type = strType;
	
	// Stati: 0 = neu, 1 = wird angefordert, 2 = komplett geladen
	this.status = 0;
	this.nav = 0;
	this.sessioncode = "";
}

function CompareNavigation(lngNavID, strSessionCode)
{
	var TblnIdentical = false;
	if (CurrSite.nav == lngNavID)
	{
		if (CurrSite.sessioncode == strSessionCode)
			TblnIdentical = true;
	}
	return TblnIdentical;
}

function ApplyNewNavigation(lngNavID, strSessionCode)
{
	if (!CompareNavigation(lngNavID, strSessionCode))
		SetNewNavigation(lngNavID, strSessionCode);

	CurrSite.status = 2;
}

function LoadNewNavigation(lngNavID, strSessionCode)
{
	var TobjNavFrame = top.frames["navigation"];
	TobjNavFrame.location.href = "nav.asp?" + GetMainOutputParameter() + "&N=" + lngNavID + GetDebugHTTPParameter();
}

function LoadMedia(lngID, lngWindowMode, strSessionCode)
{
    if(CheckUrlRewrite())
    	var TstrUrl = "ePilotMedia40.asp" + IstrUrlDivider + GetMainOutputParameter() + IstrUrlDivider + "ID" + IstrUrlDivider + lngID + GetDebugHTTPParameter();
    else
    	var TstrUrl = "ePilotMedia40.asp?" + GetMainOutputParameter() + "&ID=" + lngID + GetDebugHTTPParameter();
	
	// defaultwindowmode bei Medien ist _Blank!
	if (lngWindowMode == 0)
		lngWindowMode = 3

	LoadUrl(TstrUrl, lngWindowMode);
}

function LoadInternContent(lngNavID, lngID, strExtern, lngWindowMode, strSessionCode, lngRestricted, lngPosition, lngOrder)
{
	var TstrUrl = new String(strExtern);

	// einfach einsbasiert machen fuer den Vergleich mit der Laenge...
    if (CheckUrlRewrite()) {
        var TlngParamSeperator = TstrUrl.lastIndexOf("+");
        if (TlngParamSeperator < TstrUrl.length -1) {
            TstrUrl += "+";
        }
    } else {
    	var TlngParamSeperator = TstrUrl.indexOf("?") + 1;
    	if (TlngParamSeperator > 0)
    	{
    		if (TlngParamSeperator < TstrUrl.length)
    			TstrUrl += "&";
    	}
    	else
    		TstrUrl += "?";
    }

	TstrUrl += GetMainOutputParameter();

    if (CheckUrlRewrite()) {
    	// die Nav und ID-Parameter mitnehmen...
    	if ((lngNavID && (lngNavID != -1)) || isFinite(lngNavID))
    		TstrUrl +=  IstrUrlDivider + "N" + IstrUrlDivider + lngNavID;
    	if ((lngID && (lngID != -1)) || isFinite(lngID))
    		TstrUrl +=  IstrUrlDivider + "ID" + IstrUrlDivider + lngID;
    
        // für Listen Position und Order angeben
    	if ((lngPosition && (lngPosition != -1)) || isFinite(lngPosition))
    		TstrUrl += IstrUrlDivider + "P" + IstrUrlDivider + lngPosition;
    	if ((lngOrder && (lngOrder != -1)) || isFinite(lngOrder))
    		TstrUrl += IstrUrlDivider + "O" + IstrUrlDivider + lngOrder;
    } else {
    	// die Nav und ID-Parameter mitnehmen...
    	if ((lngNavID && (lngNavID != -1)) || isFinite(lngNavID))
    		TstrUrl += "&N=" + lngNavID;
    	if ((lngID && (lngID != -1)) || isFinite(lngID))
    		TstrUrl += "&ID=" + lngID;
    
        // für Listen Position und Order angeben
    	if ((lngPosition && (lngPosition != -1)) || isFinite(lngPosition))
    		TstrUrl += "&P=" + lngPosition;
    	if ((lngOrder && (lngOrder != -1)) || isFinite(lngOrder))
    		TstrUrl += "&O=" + lngOrder;
    }

    
	TstrUrl += GetDebugHTTPParameter();
	
	// defaultwindowmode bei speziellen Seiten ist _Blank!
	if (lngWindowMode == 0)
		lngWindowMode = 3

	//alert(TstrUrl);
	LoadUrl(TstrUrl, lngWindowMode);
}

// abhaengig vom Windowmode wird eine bestimmte Seite aufgerufen...
function GetCurrentUrl(lngWindowMode)
{
	var TstrUrl = "main.asp";

	if (lngWindowMode > 10)
		TstrUrl = "popup.asp";
	else if (TblnStartPage)
		TstrUrl = "ePilot40.asp";
	else if (window.location.href.indexOf("popup.asp") > 0)
	{
		// innerhalb einer Popup-Seite immer im Popup bleiben, ausser bei windowmode 5
		if (lngWindowMode != 5)
		{
			TstrUrl = "popup.asp";
		}
	}
  else if (window.location.href.indexOf("popup_content.asp") > 0)
  {
    if (lngWindowMode != 5)
    {
      TstrUrl = "popup_content.asp";
    }
  }

	return TstrUrl;
}

function LoadNewContent(lngNavID, lngID, strSessionCode, lngRestricted, lngPosition, lngOrder, lngLinkID, lngLinkMode, lngWindowMode, lngSubModule, strSpecialParameter)
{
	var TstrUrl = GetCurrentUrl(lngWindowMode);

    if (CheckUrlRewrite()) {
    	TstrUrl += IstrUrlDivider + GetMainOutputParameter() + IstrUrlDivider + "N" + IstrUrlDivider + lngNavID + IstrUrlDivider + "ID" + IstrUrlDivider + lngID + GetDebugHTTPParameter();
    	
    	if (lngPosition || isFinite(lngPosition))
    		TstrUrl += IstrUrlDivider + "P" + IstrUrlDivider + lngPosition;
    	if (lngOrder || isFinite(lngOrder))
    		TstrUrl += IstrUrlDivider + "O" + IstrUrlDivider + lngOrder;
    
    	if (lngLinkMode)
    		TstrUrl += IstrUrlDivider + "M" + IstrUrlDivider + lngLinkMode;
    
    	if (lngRestricted)
    		TstrUrl += IstrUrlDivider + "R" + IstrUrlDivider + lngRestricted;
    	
    	if (lngSubModule)
    		TstrUrl += IstrUrlDivider + "MOD" + IstrUrlDivider + lngSubModule;
    	if (strSpecialParameter)
    		TstrUrl += IstrUrlDivider + "Z" + IstrUrlDivider + strSpecialParameter;
    } else {
    	TstrUrl += "?" + GetMainOutputParameter() + "&N=" + lngNavID + "&ID=" + lngID + GetDebugHTTPParameter();
    	
    	if (lngPosition || isFinite(lngPosition))
    		TstrUrl += "&P=" + lngPosition;
    	if (lngOrder || isFinite(lngOrder))
    		TstrUrl += "&O=" + lngOrder;
    
    	if (lngLinkMode)
    		TstrUrl += "&M=" + lngLinkMode;
    
    	if (lngRestricted)
    		TstrUrl += "&R=" + lngRestricted;
    	
    	if (lngSubModule)
    		TstrUrl += "&MOD=" + lngSubModule;
    	if (strSpecialParameter)
    		TstrUrl += "&Z=" + strSpecialParameter;
    }

	// default-Windowmode
	if (!lngWindowMode)
		lngWindowMode = 1;

	
	//alert(TstrUrl);
	LoadUrl(TstrUrl, lngWindowMode);
}

function LoadExternContent(strUrl, lngWindowMode)
{
	// defaultwindowmode bei Externem Content ist _Blank!
	if (lngWindowMode == 0)
		lngWindowMode = 3

	LoadUrl(strUrl, lngWindowMode, true);
}

// Die WindowMode-Eigenschaft (KEIN Statuswort!):
/*
	0 = Undefiniert
	1 = _self
	2 = _top
	3 = _blank
	4 = _parent
	11+ = ePilot_popup... Aus der Webs.xml ausgelesen...
	101+ = Projektspezifische Feste, nicht in ePilot konfigurierbare Popup-Einstellungen
	101: Lexikon
	102: Anfahrtpopup
	103: Zaehlerstandsimage-Popup
*/
function LoadUrl(strUrl, lngWindowMode, blnNoAdditions)
{
	lngWindowMode = parseInt(lngWindowMode, 10);
	
	var width = 550;
    var height = 650;
    var x = (window.screen.availWidth-width) - 50;
    var y = (window.screen.availHeight-height) - 50;
	
	if (!blnNoAdditions) {
        if (CheckUrlRewrite()) {
        	if (IlngNavID > 0) {
                strUrl = SetURLRewriteParam(strUrl, "ON", IlngNavID, "+");
            }
        } else {
        	if (IlngNavID > 0) {
        		strUrl = SetURLParam(strUrl, "ON", IlngNavID);
            }
        }
    }

	switch(lngWindowMode)
	{
		case 0:
		case 1:
			var TobjContentFrame = top.frames["content"];
			if (!TblnInSystemFrame)
				TobjContentFrame = window;

			if (TobjContentFrame)
				TobjContentFrame.location.href = strUrl;
			break;
		case 2:
			top.location.href = strUrl;
			break;
		case 3:
			window.open(CompleteUrl(strUrl, lngWindowMode));
			break;
		case 4:
			parent.location.href = strUrl;
			break;
		case 5:
			opener.location.href = strUrl;

/*			
			var TobjContentFrame = top.frames["content"];
			if (!TblnInSystemFrame)
			{
				if (opener)
				{
					if (opener.top.frames["content"])
						TobjContentFrame = opener.top.frames["content"];
				}
			}

			if (TobjContentFrame)
				TobjContentFrame.location.href = strUrl;
			
*/
			break;
		case 20:
    		window.open(CompleteUrl(strUrl, lngWindowMode), "Impressum", "status=no,scrollbars=yes,width=550,height=650,left=" + x + ",top=" + y + "");
			break;
		case 21:
    		window.open(CompleteUrl(strUrl, lngWindowMode), "Kontakt", "status=no,scrollbars=yes,width=550,height=650,left=" + x + ",top=" + y + "");
			break;
		case 22:
			window.location.href = strUrl;
			//window.open(CompleteUrl(strUrl, lngWindowMode), "Suche", "status=no,scrollbars=yes,width=550,height=650");
			break;
		case 23:
      		window.open(CompleteUrl(strUrl, lngWindowMode), "Sitemap", "status=no,scrollbars=yes,width=550,height=650,left=" + x + ",top=" + y + "");
			break;
		case 24:
      		window.open(CompleteUrl(strUrl, lngWindowMode), "Sitemap", "status=no,scrollbars=yes,width=463,height=500,left=" + x + ",top=" + y + "");
			break;
		case 25:
			strUrl += "&PopUp=Inhalt";
			window.open(CompleteUrl(strUrl, lngWindowMode), "Inhalt", "status=no,scrollbars=yes,width=550,height=650,left=" + x + ",top=" + y + "");
			break;
		case 26:
			window.open(CompleteUrl(strUrl, lngWindowMode), "Download", "status=no,scrollbars=yes,width=550,height=650");
			break;
		case 101:
			window.open(CompleteUrl(strUrl, lngWindowMode), "SmallPopup", "status=yes,scrollbars=yes,width=569,height=400");
			break;
		case 102:
			window.open(CompleteUrl(strUrl, lngWindowMode), "SmallPopup", "status=yes,scrollbars=yes,width=569,height=400");
			break;
		case 103:
			window.open(CompleteUrl(strUrl, lngWindowMode), "SmallPopup", "status=yes,scrollbars=yes,width=569,height=400");
			break;
		case 110:
			window.open(CompleteUrl(strUrl, lngWindowMode), "PrintDetail", "status=no,scrollbars=yes,resizable=yes,width=550,height=400");
			break;
		case 151:
			// Breitformat 650 X 400
			window.open(CompleteUrl(strUrl, lngWindowMode), "ZoomDetail", "resizable=yes,status=no,scrollbars=no,width=650,height=400");
			break;
		case 152:
			// Breitformat 650 X 473
			window.open(CompleteUrl(strUrl, lngWindowMode), "ZoomDetail", "status=no,scrollbars=no,width=312,height=527");
			break;
		case 153:
			// Quadrat 312 X 312
			window.open(CompleteUrl(strUrl, lngWindowMode), "ZoomDetail", "status=no,scrollbars=no,width=312,height=366");
			break;
		case 197:
			// Luftbild 
			window.open(CompleteUrl(strUrl, lngWindowMode), "ZoomDetail", "status=no,scrollbars=no,resizable=yes,width=660,height=533,left=350,top=250");
			break;
		case 198:
			// Zertifikate 
			window.open(CompleteUrl(strUrl, lngWindowMode), "ZoomDetail", "status=no,scrollbars=no,width=550,height=800,left=350,top=50");
			break;
		default:
			var TblnTargetFound = false;
			var TstrStyle = "";
			var TstrName = "";
			for (var i=0; i<IstrListboxTargetValue.length; i++)
			{
				if (IstrListboxTargetValue[i] == lngWindowMode)
				{
					TblnTargetFound = true;
					TstrStyle = IstrListboxTargetPopupstyle[i];
					TstrName = "ePilotWindow" + i;
					break;
				}
			}
			
			if (TblnTargetFound)
			{
				var TobjCurrWindow = window.open(CompleteUrl(strUrl, lngWindowMode), TstrName, TstrStyle);
				TobjCurrWindow.focus();
			}
			else
				alert("WindowMode " + lngWindowMode + " noch nicht verknüpft!");

			break;
	}
}

function CompleteUrl(strUrl, lngWindowMode)
{
	var TstrCompletedUrl = strUrl;
	
	var TstrCurrentUrl = new String(window.location.href);
	var TblnHTTPS = (TstrCurrentUrl.indexOf("https://") == 0) ? true : false;

	var TlngFound;

	// Dieser WindowMode-Bereich definiert die SSL-Links
	// hier muss der Link auf HTTPS umgebaut werden!
	if ((lngWindowMode > 1000) && (lngWindowMode < 2000) && !TblnHTTPS)
	{
		// Urls, die mit / anfangen oder nicht ein :// enthalten
		// koennen auf https umgeleitet werden
		if (strUrl.indexOf("/") == 0)
		{
			// die ersten 7 Zeichen (http://) ueberspringen damit man das / nach dem Servernamen findet
			TlngFound = TstrCurrentUrl.indexOf("/", 7);
			TstrCompletedUrl = "https://" + TstrCurrentUrl.substr(7, TlngFound - 7) + strUrl;
		}
		else if (strUrl.indexOf("://") == -1)
		{
			TlngFound = TstrCurrentUrl.lastIndexOf("/");
			// die ersten 7 Zeichen (http://) ueberspringen und https vorschreiben
			TstrCompletedUrl = "https://" + TstrCurrentUrl.substr(7, TlngFound + 1 - 7) + strUrl;
		}
	}
	else if ((lngWindowMode < 1000) && TblnHTTPS)
	{
		// Urls, die mit / anfangen oder nicht ein :// enthalten
		// koennen auf https umgeleitet werden
		if (strUrl.indexOf("/") == 0)
		{
			// die ersten 8 Zeichen (https://) ueberspringen damit man das / nach dem Servernamen findet
			TlngFound = TstrCurrentUrl.indexOf("/", 8);
			TstrCompletedUrl = "http://" + TstrCurrentUrl.substr(8, TlngFound - 8) + strUrl;
		}
		else if (strUrl.indexOf("://") == -1)
		{
			TlngFound = TstrCurrentUrl.lastIndexOf("/");
			// die ersten 8 Zeichen (https://) ueberspringen und http vorschreiben
			TstrCompletedUrl = "http://" + TstrCurrentUrl.substr(8, TlngFound + 1 - 8) + strUrl;
		}
	}

	return TstrCompletedUrl;
}

function LoadNewHead(strSessionCode, lngRestricted)
{
	var TobjContentFrame = top.frames["head"];
	TobjContentFrame.location.href = "head.asp?" + GetMainOutputParameter() + "&R=" + lngRestricted + GetDebugHTTPParameter();
}

function SetNewNavigation(lngNavID, strSessionCode)
{
	PreviousSite.nav = CurrSite.nav;
	PreviousSite.sessioncode = CurrSite.sessioncode;
	
	CurrSite.status = 1;
	CurrSite.nav = lngNavID;
	CurrSite.sessioncode = strSessionCode;
}

function SystemInit()
{
	LoadNewHead("", IlngRestricted);

	var TlngMode = 0;
	var TlngID = IlngID;
	if (IlngLinkMode == 2)
	{
		TlngMode = 2;
		TlngID = IlngDispID;
	}
	LoadSite(IlngNavID, TlngID, "", 1, TlngMode, "", IlngPosition, IlngOrder, IlngRestricted, IlngSubModuleID, IstrSpecialParameter);
}


// Sonstige Funktionen
function LoadProductMedia(lngID, lngWindowMode, strTitle, strSessionCode)
{
	var TstrUrl = "productdetail.asp?" + GetMainOutputParameter() + "&ID=" + lngID + GetDebugHTTPParameter() + "&title=" + strTitle + "&theme=" + IlngThemeID;
	
	// defaultwindowmode bei Medien ist _Blank!
	if (lngWindowMode == 0)
		lngWindowMode = 3

	LoadUrl(TstrUrl, lngWindowMode);
}

function LoadPrintPreview(lngID, blnIsDetail, lngMod, lngPosition, lngOrder, lngRestricted, strSessionCode, strSpecial)
{
	var TstrUrl = "printpreview.asp+";

	if (lngMod)
	{
		TstrUrl += "MOD+" + lngMod;
		if(blnIsDetail)
		  TstrUrl += "+"
	}

    if (strSpecial && (strSpecial != "")) {
        TstrUrl += strSpecial; 
		  TstrUrl += "+";
    }

	if(blnIsDetail)
	{
		TstrUrl += "V+" + lngID + "+M+2";
		LoadInternContent(-1, -1, TstrUrl, 110, strSessionCode, lngRestricted, lngPosition, lngOrder);
	}
	else
	{
		LoadInternContent(lngID, -1, TstrUrl, 110, strSessionCode, lngRestricted, lngPosition, lngOrder);
	}
	
}

function LoadFurtherRecommend(lngID, lngNavID, lngDetailID, lngPosition, lngOrder)
{
    //var TstrUrl = "recommend.asp?siteID=" + lngNavID;
    var TstrUrl = "recommend.asp+siteID+" + lngNavID + "+ID+" + lngDetailID;

	LoadInternContent(lngID, lngDetailID, TstrUrl, 110, "", 0, lngPosition, lngOrder);
	//LoadInternContent(lngID, -1, TstrUrl, 110, "", 0, lngPosition, lngOrder);
}
