/*#############################################################*/
var fnDialogPostOpen; //Variable kann gesetzt werden und wird nach dem �ffnen des Dialogs als Funktion gestartet
function Dialog(settings){
		var config = {
				strURL:'',
				strTitle:'Dialog',
				strDialogContainerID:'#DialogContent',
				strContentContainerSelector:'#Content',
				iWidth:700,
				iHeight:500,
				bAutoSize:false,
				fnDialogInit:''
				};
		if (settings) $.extend(config,settings);
		
		var bIE7=false;
		if ( $.browser.msie ) {
		 	if (parseInt($.browser.version, 10) == 7){
			 bIE7=true;
			}
		}
		
		var jqDataDialog = $(config.strDialogContainerID); // muss als Div vorhanden sein, damit
	
		if (jqDataDialog.length){
			jqDataDialog.unbind("dialogopen"); // trennt alle Events f?r dialogopen die vielleicht durch einen fr?heren Dialog bestehen
			jqDataDialog.unbind("dialogclose"); // trennt alle Events f?r dialogopen die vielleicht durch einen fr?heren Dialog bestehen
			jqDataDialog.html(""); // leert das Div, damit keine alten Scripte enthalten sind
		} else {
			jqDataDialog = $('<div>');
			jqDataDialog.attr('id','DialogContent');
			config.strDialogContainerID = '#DialogContent';
			$('body').append(jqDataDialog);
		}
		
		jqDataDialog.dialog("option", "buttons", null); //zur�cksetzen der Buttons
		
		this.CreateDialog = function(data) {

			var oDialogConfig = {
				autoOpen : false,
				position: 'center',
				modal : true,
				//buttons: null,
				title : config.strTitle
			};

			if (config.bAutoSize == false) {
				$.extend(oDialogConfig,{
					width : config.iWidth
				});
				if (!bIE7) { //IE Scrolling Problem mit Forms in Dialogs
					$.extend(oDialogConfig,{
						height:config.iHeight
					});
				}
			}
			// jqDataDialog.html('Daten....<button id="upload_button">Datei
			// Hochladen</button>');
			var jqData = $(data).find(config.strContentContainerSelector);
			jqDataDialog.html(jqData.html());
			//alert('Load was performed.' + data);
			jqDataDialog.dialog(oDialogConfig);
		

		jqDataDialog.dialog('open');
		//funktion aufrufen, die im nachgeladenem HTML dekalriert sit
		if (typeof config.fnDialogInit=='function') {
			config.fnDialogInit(config.strDialogContainerID);
		}
		
		if (config.bAutoSize==true){
			var iMaxWidth = $(window).width()-100; 
			var iMaxHeigth = $(window).height()-150;
			
			var iHeight = config.iHeight;
			var iWidth = config.iWidth;
			var jqInnerDiv = $(config.strDialogContainerID +' > div');
			var jqInnerForm = $(config.strDialogContainerID +' form');
			if (jqInnerForm.length) {
				iHeight = jqInnerForm.outerHeight(true)+120;
				iWidth = jqInnerForm.outerWidth(true)+80;	
				if (jqInnerDiv.length) {
					if (jqInnerDiv.outerHeight(true) > iHeight){
						iHeight = jqInnerDiv.outerHeight(true)+120;
					}
					if (jqInnerDiv.outerWidth(true) > iWidth){
						iWidth = jqInnerDiv.outerWidth(true)+40;	
					}
				}
			} else if (jqInnerDiv.length){
				iHeight = jqInnerDiv.outerHeight(true)+80;
				iWidth = jqInnerDiv.outerWidth(true)+40;		
			}
			if (iWidth>=iMaxWidth) iWidth=iMaxWidth;
			if (iWidth<=400) iWidth=400; 
			
			if (iHeight>=iMaxHeigth) iHeight=iMaxHeigth; 
			if (iHeight<=200) iHeight=200;
			
			jqDataDialog.dialog( "option", "height", iHeight );
			jqDataDialog.dialog( "option", "width", iWidth );
			
			var iPosX = (iMaxWidth - iWidth) / 2;
			if (iPosX <= 20 ) iPosX = 20; 
			
			jqDataDialog.dialog( "option", "position", [iPosX,100] ); 
		}
		
		if (typeof fnDialogPostOpen == 'function'){
			//alert('start fnDialogPostOpen');
			fnDialogPostOpen(jqDataDialog); 
		}
		
	};

	var strReqURL = config.strURL;
	
	
	if (strReqURL.indexOf("?") == -1) {
			strReqURL += "?";
    } 
	
	if (strReqURL.indexOf("ajax=1") == -1) {
		if (strReqURL.charAt(strReqURL.length-1) != '&'){
			strReqURL += "&";
		}
		strReqURL += 'ajax=1';	
	} 
	
	strReqURL += '&DC='+config.strDialogContainerID.replace(/^.*#/, '');	

	
	
	$.get(strReqURL, this.CreateDialog);
			
}
/*#############################################################*/
function Message(strTitle, strMessage, iType, fnReturn){

	//var jqMsg = $('#DialogContent');
	var jqMsg = $('#DialogMessage');
	var buttons;
	
	if (typeof iType=='undefined') {
		iType=0;
	}
	
	if (iType==0){
		buttons = {
			Ok: function(){
			$(this).dialog("close");
			if (typeof fnReturn=='function'){
					fnReturn(1);
				}
			}
		};
	}
	
	if (iType==4){
		buttons = {
			Ja: function() {
		 		$(this).dialog("close");
				if (typeof fnReturn=='function') {
					fnReturn(6);
				}
			},
			Nein: function() {
		 		$(this).dialog("close");
				if (typeof fnReturn=='function') {
					fnReturn(7);
				}
			}
		};
	}
	
	if (!jqMsg.length){
		jqMsg = $('<div id="DialogMessage"></div>');
	}
	jqMsg.html(strMessage);
	jqMsg.dialog({
		modal: true,
		title: strTitle,
		buttons: buttons
	});		
}
/*#############################################################*/
function Page(strURL, strTitle) {
	var jqPage;

	jqPage = $('<div style="text-align:left;"></div>');
	// jqPage= $('#DialogContent'); //muss als Div vorhanden sein, damit der
	// Nachgeladene Quellcode die Buttons hinzuf?gen kann

	this.CreateDialog = function(data) {

		jqPage.html(data);
		// alert('Load was performed.');
		jqPage.dialog( {
			autoOpen : false,
			height : 500,
			width : 700,
			modal : false,
			buttons : {
				//Schliessen : function() {
				//	$(this).dialog('close');
				//}
				 "Ok": function() { $(this).dialog("close"); }
			},
			title : strTitle
		});

		jqPage.dialog('open');
	};

	$.get(strURL, this.CreateDialog);

}
/*#############################################################*/

/*#################Klasse Webportal###########################*/
var wp;
//WebPortal-Objekt
function WebPortal() {
var thisWP = this;
	var bContentLoaded = false;
	var bInit = false;
	var strCurrentDomain = location.host;
	var oCookies = new Cookies();
	
	/* ##################################################### */
    /* alle Links die die Klasse AjaxForm haben, werden so manipuliert, dass sie sich in einem Dialog �ffnen*/
    this.MapAjaxFormLinks = function(){
        //Diese Funktion bindet an geeignete Link die funktion zum 
        //nachtr�glichen Laden
        //alert(strSelector);
        strSelector = '.AjaxForm';
        
        $(strSelector).each(function(i, domElem){
        
            var strReqURL;
            var strReqDomain;
            var strReqTarget;
            var strReqClass;
            var objLink = $(domElem);
            
            strReqURL = objLink.attr("href");
            if (strReqURL.indexOf("//") == -1) {
                strReqDomain = "";
            }
            else {
                var arrReqURLElem = strReqURL.split('/');
                strReqDomain = arrReqURLElem[2];
            }
            strReqTarget = objLink.attr("target");
            strReqClass = objLink.attr("class");
            
			//alert (strReqDomain);
			//alert (strReqURL );
			
           if (strReqDomain == "") {
                    $(domElem).click(thisWP.OpenLinkViaAjax);
           }
        });
    };
	
	/* �ffent und schlie�t die erweiterten Servicesektionen */	
	
	this.ShowHideContactPerson = function() {
	var strCookieDocumentFunctionsExpand = oCookies.read('DocumentFunctionsExpand');
	
	if (strCookieDocumentFunctionsExpand=='shown'){
			$('#ContactPersonHL').hide();
			$('#ContactPersonC').show('');
			}
	
		$('#CPExpand').click(function() {
			$('#ContactPersonHL').hide();
			$('#ContactPersonC').show('');
			oCookies.create('DocumentFunctionsExpand','shown');
			
		});
		$('#CPCollapse').click(function() {	
			$('#ContactPersonC').attr('display','none');		
			$('#ContactPersonC').hide('');			
			$('#ContactPersonHL').show('');
			oCookies.create('DocumentFunctionsExpand','hidden');
		});
		
	};
	this.ShowHideDownload = function() {
		$('#DLExpand').click(function() {
			$('#DownloadHL').hide();
			$('#DownloadC').show('');
			
		});
		$('#DLCollapse').click(function() {	
			$('#DownloadC').attr('display','none');		
			$('#DownloadC').hide('');			
			$('#DownloadHL').show();
			
		});
	};
	/* �ffnet einen Link in einem jQuery-Dialog */
    this.OpenLinkViaAjax = function(event){
        var strReqURL = $(this).attr("href"); //die angeforderte URL auslesen
        var strTitle = $(this).attr("title"); //die angeforderte URL auslesen
        
		event.preventDefault();//verhindert, dass der Ursprungslink, damit er nicht merh wirksam ist
        
        
		if (strReqURL.indexOf("?") == -1) {
                strReqURL += "?Open";
        } else {
				strReqURL += "&";
		}		
		
		
		strReqURL += 'ajax=1';
		
		//strReqURLSplit=strReqURL.split("..");		
		//strReqURL = strReqURLSplit[1];		
		//alert("href: http://"+strCurrentDomain+strWebinfoWebDBPath+strReqURL);		
		
		var oDialog = new Dialog({
				strURL:strReqURL,	
				//strURL:'http://cetimasrv4.cetima.intern/Entwicklung/Auftrag/werraenergie/webinfo.nsf/DocsID/netz-startseite?OpenDocument',				
				strContentContainerSelector:'.ContentText',
				strTitle:strTitle,
				bAutoSize:true,
				fnDialogInit: function(){
				 	
				}
		})
    };
	
	this.InitPrettyPhoto = function() {
		//script schaut nach ob, prettyPhoto-Elemente auf der Seite plaziert sind  und ob es nicht safari ist
		//wenn ja, dann wird die JS-Bibliothek f�r prettyPhoto nachgeladen
		//nach dem Laden werden die prettyPhoto-Elemente initialisiert
		
		if($("a[rel^='prettyPhoto']").length) {
		//alert ("Hallo");
			$.getScript(strWebinfoWebDBPath+'/RA/prettyphoto/$FILE/jquery.prettyPhoto.js?Open', function() {
				$("a[rel^='prettyPhoto']").prettyPhoto();
			});
		}
	};
	
	
	this.InitSlider = function() {
		//script schaut nach ob, der Slider auf der Seite plaziert sind  
		//wenn ja, dann wird die JS-Bibliothek f�r nachgeladen
		//nach dem Laden werden der Slider initialisiert
		if($("#StartSlider").length || $("#ImageSlider").length) {
		//alert ("sliderstart");
			$.getScript(strWebinfoWebDBPath+'/RA/slider/$FILE/jquery.easing.1.3.js?Open', function() {
				//alert ("easing");
						});
		}
		
		if($("#StartSlider").length) {
		alert ("Hallo");
			$.getScript(strWebinfoWebDBPath+'/RA/slider/$FILE/jquery.coda-slider-2.0.js', function() {
				$('#StartSlider').codaSlider({
				autoSlide: true,
				autoSlideInterval: 4000,
				autoSlideStopWhenClicked: true,
				dynamicArrowLeftText: "&nbsp;",
				dynamicArrowRightText: "&nbsp;",
				slideEaseDuration: 2000,
				autoHeight: false
				});
				
				//alert ("slider");
			});
		}
		if($("#ImageSlider").length) {
		//alert ("Halloimageslider");
			$.getScript(strWebinfoWebDBPath+'/RA/slider/$FILE/jquery.coda-slider-2.0.js', function() {
				$('#ImageSlider').codaSlider({
				autoSlide: true,
				autoSlideInterval: 4000,
				autoSlideStopWhenClicked: true,
				dynamicArrowLeftText: "&nbsp;",
				dynamicArrowRightText: "&nbsp;",
				slideEaseDuration: 2000,
				autoHeight: false
				});
				
				//alert ("slider");
			});
		}
	};
	/* --------Fehlerbehandlung--------------- */
	this.ErrorHandling = function(strModul, err) {
		txt = "Leider gibt es einen Fehler auf der Seite.\n\n";
		txt += "JS-Modul:" + strModul + "\n";
		txt += "Beschreibung: " + err.description + "\n";
		txt += "Nummer: " + err.number + "\n";
		txt += "Meldung: " + err.message + "\n";
		txt += "\nWeiter mit ok.\n\n";
		alert(txt);
	};
	
	// wenn Element: <div id="RateCalcHori"> dann Lade Skript nach
	this.InitCalculator = function() {
		if ( ($("#RateCalcHori").length )  && ( !$.browser.safari ) ) {
			$.getScript(strWebinfoWebDBPath+'/RA/rateCalculator/$FILE/RateCalculator.js?Open');
			//alert ("calc");
		}
	}
	
	
	// Vortext im Suchfeld entfernen
	this.EraseSearchDefaultContent = function() {
		if ($("#field_Search1TX").length )   {
			$("#field_Search1TX").click(function(){
			$("#field_Search1TX").attr("value","");         		
	});
		}
	}
	
	// wenn Element: <div id="RateCalcHori"> dann Lade Skript nach
	this.ReBuildImageLinks = function() {
		var jqInlineImages = $("img[src*=OpenElement]");
		if (jqInlineImages.length) {
		//alert('inline images');
		jqInlineImages.each(function(index) {		
				var jqInlineImage = $(this);
				var parent = this.parentNode;
				var jqParentTag = String(parent.tagName);
				var jqUsemap = String(jqInlineImage.attr('usemap'));
				//var jqMapname = "#"+jqMap.attr('name');
				//var jqUsemapL =jqUsemap.length;
				//alert ("Zeichen:"+ jqMap.attr('name')+ "/"+jqUsemap);
				//alert (jqParentTag);
				//Abfrage, ob das Bild verlinkt ist
				if (jqUsemap.indexOf("#")== -1) {
				//if (jqMapname!=jqUsemap){
				if (jqParentTag!="A")
				{
				var strTitel = jqInlineImage.attr('title');
				var strDesc = jqInlineImage.attr('alt');
				var strScript =jqInlineImage.attr('class');	
				var strImageSrc = jqInlineImage.attr('src'); //URl zum Bild holen
				var jqNewLink = $('<a href=\"JavaScript:$.prettyPhoto.open(\''+strImageSrc+'\',\''+strTitel+'\',\''+strDesc+'\');\"></a>'); //neuer Quellcode erst mal nur als Variable
				jqInlineImage.before(jqNewLink);  //vor dem Bild wird der neue Link eingef�gt
				jqInlineImage.attr('border','0');
				if (jqNewLink.length){
					//alert('new Link Obj');  
					jqNewLink.prepend(jqInlineImage);  //das Bild wird in den Link verschoben
				}}
				}
				});

			$.getScript(strWebinfoWebDBPath+'/RA/prettyphoto/$FILE/jquery.prettyPhoto.js?Open', function() {
				$("a[rel^='prettyPhoto']").prettyPhoto();
			});

				
			}
			
			}
	
	
	
	this.InitAccordeon = function() {
		//script schaut nach ob, accordion-Elemente auf der Seite plaziert sind
		//wenn ja, accordion-Elemente initialisiert

		if($(".accordion").length) {
				$(".accordion").accordion({
					autoHeight : false
				});
		} 
		
	};
	
	if(bInit == false) {
		$.preloadCssImages();
		thisWP.MapAjaxFormLinks();
		thisWP.InitPrettyPhoto();
		thisWP.InitCalculator();
		thisWP.ReBuildImageLinks();
		thisWP.ShowHideContactPerson();
		thisWP.ShowHideDownload();
		thisWP.InitAccordeon();
		thisWP.InitSlider();
		thisWP.EraseSearchDefaultContent();
		
		bInit = true;
	}
	
}

/*Init-Funktion*/
function ApplicationInit() {

	$.ajaxSetup({
		// Ennable caching of AJAX responses */
		cache : true
	});
	wp = new WebPortal();
}

/*Initialisieren der Anwendung*/
$(document).ready(ApplicationInit);

