// Copyright by HUK24 AG - Ein Unternehmen der HUK-COBURG Versicherungsgruppe

var isPostbank   		= "false";	// hiermit wird sich gemerkt ob der Aufruf von der Postbank aus statt gefunden hat (true oder false)
var reloadUrl 			= '';
var umfrageUrl			= '';

// ****************************************************************
// START onready
// wird beim Laden der Seite ausgeführt (onready-Event)
// ****************************************************************
$(document).ready(function() {
	
	$(document).ajaxStart(function(){
		startProgress('#vumfang');
	});
	
	$(document).ajaxStop(function(){
		stopProgress();
	});
	
	$(document).ajaxError(function(){
		stopProgress();
	});			
	
	// sicherstellen dass alle Links, die im Hilfe-Dialog aufgehen sollen, sich nicht per rechter Maustaste in einem neuen Browserfenster öffnen lassen (geht trotzdem wenn Javascript deaktiviert ist)
	$("a[onclick*='openSelfService(']").each(function(){
		var href = $(this).attr("href");
		if (href.indexOf("start_selfservice.do") == 0)		// wenn href mit "start_selfservice.do" beginnt, ein "/" vorne anhängen
			href = "/" + href;
		$(this).removeAttr("onclick");
		$(this).unbind("click").bind('click', function(){
//			return openSelfService(href);
			warteAufExtJS($(this),"openSelfService('" + href + "')");
			return false;
		});
		$(this).attr("href", "javascript:void(0)");
	});

	$("a[onclick*='openSelfServiceMitSuchtext(']").each(function(){
		var href = $(this).attr("href");
		$(this).removeAttr("onclick");
		$(this).unbind("click").bind('click', function(){
			warteAufExtJS($(this),"openSelfServiceMitSuchtext('" + href + "')");
			return false;
		});
		$(this).attr("href", "javascript:void(0)");
	});
});
// ****************************************************************
// ENDE onready
// ****************************************************************


// ****************************************************************
// START JS nachladen
// nicht sofort benötigte Javascript-Dateien werden bei ONREADY nachgeladen (s. huk24_utils_hp.js)
// dies sind derzeit: /Allgemein/Scripts/extjs_minimiert/lib/ext.js
// ****************************************************************

var extJsTimer;

function warteAufExtJS(obj,aufruf){
	if (getIsExtJsSchonDa()) {
		// ExtJS ist bereits geladen, Funktion gleich aufrufen
		eval(aufruf);
	} else {
		// ExtJs ist noch nicht geladen, Ajax-Bildchen einblenden und warten
		var image;
		if (obj) {
			// zeige das Ajax-Bildchen direkt neben dem geklickten Link (obj)
			var top = obj.position().top;
			var left = obj.position().left + obj.width() + 3;
			image = "/Allgemein/Bilder/ajax-loader2.gif";
		}
		else {
			// zeige das etwas größere Ajax-Bildchen in der Bildschirmmitte (für Seiten wo der Dialog automatisch aufgeht)
			var top = $(window).height() / 2 - 12;		// 12 abziehen. Hälfte vom Ajax-Bildchen (25px)
			var left= $(window).width() / 2 - 12;
			image = "/Allgemein/Bilder/ajax-loader.gif";
		}
		var html = '<div id="tmpajax"><img src="' + image + '" style="position:absolute; top:' + top + 'px; left:' + left + 'px"></div>';
		$("#tmpajax").remove();		// evtl. bereits vorhandenes Bildchen vorher entfernen
		$(html).appendTo("body");

		// prüfe in Intervallen von 1/10 Sekunde ob ExtJS geladen wurde
		window.clearInterval(extJsTimer);		// löscht vorherigen Timer wenn vorhanden
		extJsTimer = window.setInterval("warteAufExtJS2(\"" + aufruf + "\")", 100);
	}
}

function warteAufExtJS2(aufruf){
	if (getIsExtJsSchonDa()) {
		// ExtJS ist jetzt geladen, Ajax-Bildchen entfernen, Timer löschen und Hilfe-Dialog öffnen
		$("#tmpajax").remove();
		window.clearInterval(extJsTimer);
		eval(aufruf);
	}
}


// -------------------------------------------------------------------------------------
// --- Diverse Funktionen --------------------------------------------------------------
// -------------------------------------------------------------------------------------

function getClientHeight(){
	var h = self.innerHeight || (document.documentElement && document.documentElement.clientHeight) || document.body.clientHeight;
	return h;
}

function getClientWidth(){
	var w = self.innerWidth || (document.documentElement && document.documentElement.clientWidth) || document.body.clientWidth;
	return w;
}


// -------------------------------------------------------------------------------------
// -------------------------HILFETEXTE--------------------------------------------------
// -------------------------------------------------------------------------------------
var aktuelle_hilfetext_id = "";
var hilfecache_int = 0;
var hilfecache_keys = new Array();
var hilfecache_values = new Array();	

function showHelp(hilfetext_id, path) {
	var isInCache = false;
	var index = 0;
//	var session_id = getSessionId();
//	var netmind_id = getNetMindId();
	var helpdata   = new Object();

	if (aktuelle_hilfetext_id == hilfetext_id) {
		closeHelp();
	}
	else {
		aktuelle_hilfetext_id = hilfetext_id; 
		
		for (i=0; i< hilfecache_keys.length; i++) {
			if (hilfetext_id == hilfecache_keys[i]) {
				isInCache = true;
				index = i;
				break;
			}
		}
		
		if (isInCache) {
			input = hilfecache_values[index];
			openHelp(input);
		}
		else {
			hilfecache_keys[hilfecache_int] = hilfetext_id;
			
			helpdata.ID 	= hilfetext_id;
			helpdata.PATH 	=  path;
				
	      	$.ajax({
				url: getNetMindId() + 'HilfeServlet' + getSessionId(),
				cache: true,
				async: true,
				type: 'POST',
				contentType: 'application/x-www-form-urlencoded;charset=UTF-8',
				data: helpdata,
				dataType: 'html',
				timeout: 15000,
				success: function(msg, testStatus){
				    hilfecache_values[hilfecache_int] = msg;
				    hilfecache_int++;        
					openHelp(msg);						
	        	},
				error: function(xmlHttpRequest, textStatus, errorThrown){			
					openHelp('<div class="z">Leider ist hier zur Zeit kein Hilfetext hinterlegt.</div>');
				}
			});					
		}
	}
}


function openHelp(input) {
	// Originaltext ausblenden
	$("#info_original").css('display', 'none');		

	// Div mit Hilfetext anreichern
	$("#info_hilfetext").html(input);

	// Hilfetext einblenden
	$("#info_hilfetext").css('display', 'block');

	// Im Layer scrolle die Infospalte immer nach oben
    if ($("#div_info").length) {
    	$("#div_info").scrollTop(0);
		resize_divs();       	
	}
}

function closeHelp() {
	aktuelle_hilfetext_id = "";
	// Hilfetext ausblenden
	$("#info_hilfetext").css('display', 'none');
	
	// HilfetextWindow schließen
	closeSelfServiceDialog();

	// Originaltext einblenden
	$("#info_original").css('display', 'block');	
	
	// Im Layer scrolle die Infospalte immer nach oben
    if ($("#div_info").length) {
    	$("#div_info").scrollTop(0);
		resize_divs();       	
	}
}

// -------------------------------------------------------------------------------------
// -------------------------SELFSERVICE-DIALOG------------------------------------------
// -------------------------------------------------------------------------------------
var helpWindow;
var req = false;
var dialogSource = "";	// hiermit wird sich gemerkt von wo der Dialog aufgerufen wird ("layer" oder "hp")

function openSelfService(href) {
	if (href.indexOf("page=Kontakt") != -1)
		showSelfServiceDialog(href, 'Kontakt', 650, 450)
	else if (href.indexOf("informationen") != -1)
		showSelfServiceDialog(href, 'Informationen', 650, 450, true)
	else if (href.indexOf("Sonderausstattung") != -1)
		showSelfServiceDialog(href, 'Sonderausstattung', 650, 450, true)		
	else {
		showSelfServiceDialog(href, 'Hilfe', 650, 450)
	}
	return false;		// wichtig damit das <a href=""> nicht aufgeführt wird;
}

function openSelfServiceMitSuchtext(href) {
	setKommeVomSuchfeld(true);
	setSuchtext($("#TXT_SUCHTEXT").val());
	openSelfService(href);
	return false;		// wichtig damit das <a href=""> nicht aufgeführt wird
}

function closeSelfServiceDialog(){
	if(helpWindow != null){	
		helpWindow.close();
		helpWindow = null;
		$('#helpDialogDiv').remove();
	}
}

////////////////////////////////////////////////////////////////////
//                         Progress Image
////////////////////////////////////////////////////////////////////

function stopProgress(){
	$('#busyProgress').hide();
}

function startProgress(divSelector){
	
	if($('#busyProgress').length == 0){				
		$("<div id='busyProgress' style='display:none'></div>").insertAfter(divSelector);				
	}
	
	var pos = [$(window).width(), $(window).height(), $(document).scrollLeft(), $(document).scrollTop() ];		
	
	if($("#busyProgress")){													
		$("#busyProgress").css({'left': ((pos[0] - 40) / 2 + pos[2]), 'top': ((pos[1] - 40) / 2 + pos[3])}).show();
		$('#busyProgress').show();
	}
}

////////////////////////////////////////////////////////////////////
//                         Sonstige Funktionen
////////////////////////////////////////////////////////////////////

// hier können weitere Funktionen oder auch Variablen definiert werden
function rahmenweg(obj) {
    if (obj.blur) obj.blur();
}

// Begrenzt den Inhalt eines Textfeldes auf die angegebene Anzahl Zeichen
function limit(obj, size) {
	if (obj.value && obj.value.length > size) obj.value = obj.value.substring(0,size);
}

// für Debug
function msg(txt) {
	if ($.browser.mozilla) console.log(txt);
	else alert(txt);
}

function alertException(e) {
	// meldet den Inhalt des Fehlers als alert (geht nur im localhost, woanders passiert nix)
	if (location.href.indexOf("localhost") != -1) {
		var txt = "Achtung: Dieser Text erscheint nur im localhost!!!\n\n";
		for (i in e) {
			txt += i + ': ' + e[i] + '\n\n';
		}
		alert(txt);
	}
}

function setParentReload(input){
	reloadUrl = input;	
}

/**
 *	startet einen Reload der Produktstartseite
 */
function startParentReload(){		
	parent.location.href = setNetMindIdInUrl(setSessionIdInUrl(parent.location.protocol+"//"+parent.location.host + this.reloadUrl)); // startet den reload
	parent.setParentReload(''); // leert die Variable 'reloadUrl'
}


// ****************************************************************
// START jquery-Erweiterungen
// ****************************************************************

// ----------------------------------------------------------------
// Funktion zum Ermitteln von URL Parametern
// ----------------------------------------------------------------
jQuery.fn.extend({
/**
* Returns get parameters.
*
* If the desired param does not exist, null will be returned
*
* To get the document params:
* @example value = $(document).getUrlParam("paramName");
* 
* To get the params of a html-attribut (uses src attribute)
* @example value = $('#imgLink').getUrlParam("paramName");
*/ 
 getUrlParam: function(strParamName){
	  strParamName = escape(unescape(strParamName));
	  
	  var returnVal = new Array();
	  var qString = null;
	  
	  if ($(this).attr("nodeName")=="#document") {
	  	//document-handler
		
		if (window.location.search.search(strParamName) > -1 ){
			
			qString = window.location.search.substr(1,window.location.search.length).split("&");
		}
			
	  } else if ($(this).attr("src")!="undefined") {
	  	
	  	var strHref = $(this).attr("src")
	  	if ( strHref.indexOf("?") > -1 ){
	    	var strQueryString = strHref.substr(strHref.indexOf("?")+1);
	  		qString = strQueryString.split("&");
	  	}
	  } else if ($(this).attr("href")!="undefined") {
	  	
	  	var strHref = $(this).attr("href")
	  	if ( strHref.indexOf("?") > -1 ){
	    	var strQueryString = strHref.substr(strHref.indexOf("?")+1);
	  		qString = strQueryString.split("&");
	  	}
	  } else {
	  	return null;
	  }
	  	
	  if (qString==null) return null;
	  
	  for (var i=0;i<qString.length; i++){
			if (escape(unescape(qString[i].split("=")[0])) == strParamName){
				returnVal.push(qString[i].split("=")[1]);
			}
			
	  }
	  
	  if (returnVal.length==0) return null;
	  else if (returnVal.length==1) return returnVal[0];
	  else return returnVal;
	}
});

// ----------------------------------------------------------------
// erweitere die Funktion getScript um den Parameter cache
// ----------------------------------------------------------------
$.getScript = function(url, callback, cache){
	$.ajax({
		type: "GET",
		url: setNetMindIdInUrl(setSessionIdInUrl(url)),
		success: callback,
		dataType: "script",
		cache: cache
	});
};

// ****************************************************************
// ENDE jquery-Erweiterungen
// ****************************************************************

