// init.js

function initialize(){
	var jsStart = new Date ().getTime ();

	// decodeAddresses(); derzeit nicht nötig, da keine Adressen verschleiert sind
	decodeTelNo();
	
	// Initialize search navigation
	goNav.init();
	
	// Initialize searchHistory
	User.searchHistory.init();
	
	// Initialize context navigation
	goNavContext.init();

	// show hash anchor, 5 millis after other events
	window.setTimeout("gotoHash();", 5);
	
	if ( (typeof(mrinfo) == "string") && (typeof(mpinfo) == "string") )
	{
		var jsEnd = new Date ().getTime ();
		var jsDelta = jsEnd - jsStart;
		var misImage = new Image();
   		misImage.src = "/trackBrowser.jsp?reqtime=" + mrinfo + "&jstime=" + jsDelta + "&reqpage=" + mpinfo;
   	}
}

$(window).load(initialize);

function gotoHash(){
	var hashname = window.location.hash;

	// forceGo2Anchor = true, da bei Initalisierung auf jeden Fall scrollen soll.
	if (hashname.length >1) { 
		showTab(hashname, true, true);	
	} 
}	

// Suggest, zur Erklärung der Parameter siehe suggest.js
// Achtung: Dies ist nicht die einzige Stelle, wo Suggest.Box konfiguriert wird, kommt auch noch in custom/simpleSearchStart_ger_de_html_default*.xml vor

Suggest.boxes = new Array(
	new Suggest.Box("what",             -9, 22, "simpleForm", "where",  "suggestWhat"),
	new Suggest.Box("where",            -9, 22, "simpleForm", "street", "suggestWhere"),
	new Suggest.Box("street",           -9, 22, "simpleForm", null,     "suggestStreet"),

	new Suggest.Box("what_complex",     -9, 22, "complexForm", "city_complex",   "suggestWhatDetails"),
	new Suggest.Box("city_complex",     -9, 22, "complexForm", "street_complex", "suggestWhere"),
	new Suggest.Box("street_complex",   -9, 22, "complexForm", null,             "suggestStreet"),

	new Suggest.Box("where_emergency",  -9, 22, "emergencyForm", "street_emergency", "suggestWhere"),
	new Suggest.Box("street_emergency", -9, 22, "emergencyForm", null,               "suggestStreet"),

	//for /preferences: Einstellungen
    new Suggest.Box("where_home",  -7, 22, "preferences", "street_home", "suggestWhere"),
    new Suggest.Box("street_home", -7, 22, "preferences", null,         "suggestStreet"),
    
    //for /angebote: kaufDa Prospekte
    new Suggest.Box("where_angebot",  -7, 22, "angebote_kaufDa", null, "suggestWhere"),
    
	//for /map:Kartensuche
    new Suggest.Box("where_map",  -7, 22, "mapAddress", "street_map", "suggestWhere"),
    new Suggest.Box("street_map", -7, 22, "mapAddress", null,         "suggestStreet"),

	//for /map:Was Suche
	new Suggest.Box("wasSuchbegriff", -7, 22, null, null, "suggestWhat"),
	
	//for /map:Route
	new Suggest.Box("von_where",    -7, 22, "routeAddress", "von_street",   "suggestWhere"),
	new Suggest.Box("von_street",   -7, 22, "routeAddress", "nach_where",   "suggestStreet"),
	new Suggest.Box("nach_where",   -7, 22, "routeAddress", "nach_street",  "suggestWhere"),
	new Suggest.Box("nach_street",  -7, 22, "routeAddress", "von_where",    "suggestStreet"),
	new Suggest.Box("ueber_where",  -7, 22, "routeAddress", "ueber_street", "suggestWhere"),
	new Suggest.Box("ueber_street", -7, 22, "routeAddress", "nach_where",   "suggestStreet"),

	//for Detailseite:Route
	new Suggest.Box("from_where",  -7, 22, "getRoute", "from_street", "suggestWhere"),
	new Suggest.Box("from_street", -7, 22, "getRoute", "routeOption", "suggestStreet")
);
 
function decodeAddresses(){
	// Die zugehörige Verschleierung erfolgt in com.varetis.ida.nypd.crypto.AddressEncoder bzw. subscriberListTemplate.xsl
    var nodeSet = $(".encAdr");
    for (i = 0 ; i < nodeSet.length ; i++) 
    {	// Das Zeichen 0xA0 liegt im HTML als &nbsp; vor, d.h. als mehrere Zeichen. Diese Umsezung ist aber NACH der Verschleierung
    	// im Server erfolgt, so dass der Verschleierungsalgorithmus &nbsp; als EIN Zeichen gesehen hat. Damit die Entschleierung
    	// funktioniert, muss daher &nbsp; wieder in EIN Zeichen umgesetzt werden und dies NACH der der Entschleierung zurückgenommen werden.
		var text = nodeSet [i].innerHTML.replace (/&nbsp;/g, "@");
		var textNeu = ""; 
		if (text.length % 2 == 1) textNeu = text.charAt(text.length - 1);
		for (j = Math.floor(text.length/2) - 1 ; j >= 0 ; j--) { textNeu = text.charAt(2*j) + textNeu + text.charAt(2*j + 1); } 
		nodeSet [i].innerHTML = textNeu.replace (/@/g, "&nbsp;"); 
    }
}

function decodeTelNo(){
	// Die zugehörige Verschleierung erfolgt in com.varetis.ida.nypd.crypto.TelNoEncoder bzw. click2DialTemplate.xsl
    var nodeSet = $(".encTel");
    for (i = 0 ; i < nodeSet.length ; i++) 
    {	
		var text = nodeSet [i].innerHTML;
		var textNeu = ""; 
		for (j = 0 ; j < text.length ; j++) 
		{ 	if ( ('A' <= text.charAt(j)) && (text.charAt(j) <= 'J') )
			{
				var k = Number(text.charCodeAt(j));
				textNeu = textNeu + String.fromCharCode (k + '0'.charCodeAt(0) - 'A'.charCodeAt(0));
			}
			else
				textNeu = textNeu + text.charAt(j);
		}
		nodeSet [i].innerHTML = textNeu; 
    }
}
	
 

