/** +++++++++++++++++++++++++++++++++++++++++++++++++++++++	**/
/** +	Diese Javascript soll dazu dienen,   						**/
/** +	alle AJAX-Aktionen in bezug auf die Kleinanzeigen zu	**/
/** +	beherbergen															**/
/** +																			**/
/** +	@copyright (c) 2008 , Martin Glück							**/
/** +	@author Martin Glück <martin.glueck@fibee.de>			**/
/** +	@package classiefiedAds											**/
/** +																			**/
/** +++++++++++++++++++++++++++++++++++++++++++++++++++++++	**/

/** +++++++++++++++++++++++++++++++++++++++++++++++++++++++	**/
/** +	-- ANFANG --- Verhindere ein mehrfaches Laden 			**/
/** +++++++++++++++++++++++++++++++++++++++++++++++++++++++	**/
if (globalClassifiedAdsJavaScriptLoaded != 1 ){
	
var globalClassifiedAdsJavaScriptLoaded = 1;
var globalIdUser 	= 0;
var globalUin 		='';
var globalClassifiedAdsAjaxServerURL;
var globalLanguage ='de';

// Array mit Informationen in Bezug auf die gewählten Attribute
var globalSelectedAttributes = new Array();

/** +++++++++++++++++++++++++++++++++++++++++++++++++++++++	**/
/** +																			**/
/** +	 DIVERSE SET-METHODEN											**/
/** +																			**/
/** +++++++++++++++++++++++++++++++++++++++++++++++++++++++	**/
// Funktion, zum setzten der chatUin
function setUin(uin){
	globalUin	= uin ;	
}
// Funktion, zum setzten der userId
function setIdUser(idUser){
	globalIdUser	= idUser ;	
}
// Funktion, zum setzten der Sprache
function setLanguage(value){
	globalLanguage	= value ;	
}
// Funktion, zum setzten der Url für den AjaxServer
function setClassifiedAdsAjaxServerUrl(url){
	globalClassifiedAdsAjaxServerURL	= url ;	
}
// Funktion, zum setzen der Attribute, die für die Vorauswahl benötigt werden, wenn Kleinanzeige editiert wird
function setAttributeAssignment(idKleinanzeigenAttribut,idKleinanzeigenAttributwert,wertEingabe){
	myIndex = globalSelectedAttributes.length;
	globalSelectedAttributes[myIndex] = new Object();
	globalSelectedAttributes[myIndex]["idKleinanzeigenAttribut"] 		= idKleinanzeigenAttribut;
	globalSelectedAttributes[myIndex]["idKleinanzeigenAttributwert"] = idKleinanzeigenAttributwert;
	globalSelectedAttributes[myIndex]["wertEingabe"]						 = wertEingabe;
}

/** +++++++++++++++++++++++++++++++++++++++++++++++++++++++	**/
/** +																			**/
/** +	 DIVERSE GET-METHODEN											**/
/** +																			**/
/** +++++++++++++++++++++++++++++++++++++++++++++++++++++++	**/
function checkradio(feld){
	for (i=0; i<feld.length; i++){
			if(feld[i].checked == true){
				return feld[i].value;
			}
	}
}	


// Funktion, ermittelt denidKleinanzeigenTyp
function getClassifiedAdTypeId(){
	var idKleinanzeigenTyp;
	// ermittle gewählte Kleinanzeigentyp!idKleinanzeigenTyp
	var selectForm = document.getElementById('dynamicClassifiedAdTypeSelection');
	if (selectForm){
		switch (selectForm.type) {
		  case "radio":
		    idKleinanzeigenTyp = checkradio(document.check.idKleinanzeigenTyp);
		    break;
		  case "select-one":
		    idKleinanzeigenTyp = selectForm.options[selectForm.selectedIndex].value;
		    break;
		  case "hidden":
		    idKleinanzeigenTyp = selectForm.value;
		    break;
		  default:
		    idKleinanzeigenTyp = 0;
		}
	} else idKleinanzeigenTyp = 0;
	return idKleinanzeigenTyp;
	
}


/** +++++++++++++++++++++++++++++++++++++++++++++++++++++++	**/
/** +																			**/
/** +	 METHODEN FÜR DIE KATEGORIE AUSWAHL		-- ANFANG ---	**/
/** +																			**/
/** +++++++++++++++++++++++++++++++++++++++++++++++++++++++	**/
// Funktion, sendet Abfrage an Ajaxserver, um sich den Inhalt für die
// Kategorieauswahl zu holen
function getCurrentCategorySelection(idKleinanzeigeRubrik){
	var idKleinanzeigenTyp = getClassifiedAdTypeId();
	// HOLE ABFRAGE VOM SERVER
	 $.ajax({
	   type: "GET",
	   url: globalClassifiedAdsAjaxServerURL,
	   data: "ajaxRequestName=getCurrentCategorySelection&idUser=" + globalIdUser + "&uin=" + globalUin + "&language=" + globalLanguage + "&idKleinanzeigenTyp=" + idKleinanzeigenTyp + "&idKleinanzeigeRubrik=" + idKleinanzeigeRubrik  ,
	   dataType: "html",
	   cache: "false",
	   success: function(msg){
	     setCategoryContainerContent(msg);
	   },
	   error: function(msg){
	   	alert(msg);
	   }
	 });	
}
// Funktion, sendet Abfrage an Ajaxserver, um sich den Inhalt für die
// Kategorieauswahl zu holen
function getCurrentCategorySelectionForSearch(idKleinanzeigeRubrik){
	var idKleinanzeigenTyp = getClassifiedAdTypeId();
	// HOLE ABFRAGE VOM SERVER
	 $.ajax({
	   type: "GET",
	   url: globalClassifiedAdsAjaxServerURL,
	   data: "ajaxRequestName=getCurrentCategorySelectionForSearch&idUser=" + globalIdUser + "&uin=" + globalUin + "&language=" + globalLanguage + "&idKleinanzeigenTyp=" + idKleinanzeigenTyp + "&idKleinanzeigeRubrik=" + idKleinanzeigeRubrik  ,
	   dataType: "html",
	   cache: "false",
	   success: function(msg){
	     setCategoryContainerContent(msg);
	   },
	   error: function(msg){
	   	alert(msg);
	   }
	 });	
}

// Funktion setz den Inhalt der Kategorieauswahl 
function setCategoryContainerContent(strData){
	var resultBox 		= document.getElementById('dynamicCategoryContainer');
	// wenn kein INhalt, dann leeren!!
	if (resultBox){
		resultBox.innerHTML = strData;
	}
}

/** +++++++++++++++++++++++++++++++++++++++++++++++++++++++	**/
/** +																			**/
/** +	 METHODEN FÜR DIE ATTRIBUTDEFINITION						**/
/** +																			**/
/** +++++++++++++++++++++++++++++++++++++++++++++++++++++++	**/
// Funktion, sendet Abfrage an Ajaxserver, um sich den Inhalt für die
// Attributzuordnung zu holen
function getCurrentAttributeDefinition(){
	var idKleinanzeigenTyp = getClassifiedAdTypeId();
	
	// String mit Infos in Bezug auf die gesetzen Attribute auslesen
	var myAttributeString = ''
	if (globalSelectedAttributes.length > 0)
	for (i = 0; i < globalSelectedAttributes.length; i++){
		myAttributeString += '&attribute[' + globalSelectedAttributes[i]["idKleinanzeigenAttribut"] + ']';
		myAttributeString +='[idKleinanzeigenAttributwert][]=' + globalSelectedAttributes[i]["idKleinanzeigenAttributwert"] ;
		myAttributeString += '&attribute[' + globalSelectedAttributes[i]["idKleinanzeigenAttribut"] + ']';
		myAttributeString += '[wertEingabe]=' + globalSelectedAttributes[i]["wertEingabe"] ;
	}
	
	// alle bisherigen Werte ermitteln uns speichern
	// HOLE ABFRAGE VOM SERVER
	 $.ajax({
	   type: "GET",
	   url: globalClassifiedAdsAjaxServerURL,
	   data: "ajaxRequestName=getCurrentAttributeDefinition&idUser=" + globalIdUser + "&uin=" + globalUin + "&language=" + globalLanguage + "&idKleinanzeigenTyp=" + idKleinanzeigenTyp + myAttributeString  ,
	   dataType: "html",
	   cache: "false",
	   success: function(msg){
	     setAttributeDefinitionContent(msg);
	   },
	   error: function(msg){
	   	alert(msg);
	   }
	 });	
}

// Funktion setz den Inhalt der Attributzuordnung 
function setAttributeDefinitionContent(strData){
	var resultBox 		= document.getElementById('dynamicClassifiedAdAttributeDefinition');
	// wenn kein INhalt, dann leeren!!
	if (resultBox){
		resultBox.innerHTML = strData;
	}
}

/** +++++++++++++++++++++++++++++++++++++++++++++++++++++++	**/
/** +																			**/
/** +	 METHODEN FÜR DIE ATTRIBUTSUCHE								**/
/** +																			**/
/** +++++++++++++++++++++++++++++++++++++++++++++++++++++++	**/
// Funktion, sendet Abfrage an Ajaxserver, um sich den Inhalt für die
// Attributzuordnung zu holen
function getCurrentAttributeSearchSelection(){
	var idKleinanzeigenTyp = getClassifiedAdTypeId();
	
	// String mit Infos in Bezug auf die gesetzen Attribute auslesen
	var myAttributeString = ''
	if (globalSelectedAttributes.length > 0)
	for (i = 0; i < globalSelectedAttributes.length; i++){
		myAttributeString += '&attribute[' + globalSelectedAttributes[i]["idKleinanzeigenAttribut"] + ']';
		myAttributeString +='[idKleinanzeigenAttributwert][]=' + globalSelectedAttributes[i]["idKleinanzeigenAttributwert"] ;
		myAttributeString += '&attribute[' + globalSelectedAttributes[i]["idKleinanzeigenAttribut"] + ']';
		myAttributeString += '[wertEingabe]=' + globalSelectedAttributes[i]["wertEingabe"] ;
	}
	
	// alle bisherigen Werte ermitteln uns speichern
	// HOLE ABFRAGE VOM SERVER
	 $.ajax({
	   type: "GET",
	   url: globalClassifiedAdsAjaxServerURL,
	   data: "ajaxRequestName=getCurrentAttributeDefinitionForSearch&idUser=" + globalIdUser + "&uin=" + globalUin + "&language=" + globalLanguage + "&idKleinanzeigenTyp=" + idKleinanzeigenTyp + myAttributeString  ,
	   dataType: "html",
	   cache: "false",
	   success: function(msg){
	     setAttributeSearchSelectionContent(msg);
	   },
	   error: function(msg){
	   	alert(msg);
	   }
	 });	
}

// Funktion setz den Inhalt der Attributzuordnung 
function setAttributeSearchSelectionContent(strData){
	var resultBox 		= document.getElementById('dynamicClassifiedAdAttributeSearchSelection');
	// wenn kein INhalt, dann leeren!!
	if (resultBox){
		resultBox.innerHTML = strData;
	}
}

/** +++++++++++++++++++++++++++++++++++++++++++++++++++++++	**/
/** +																			**/
/** +	 METHODEN FÜR DIE PREISBERECHNUNG							**/
/** +																			**/
/** +++++++++++++++++++++++++++++++++++++++++++++++++++++++	**/
// Funktion, sendet Abfrage an Ajaxserver, um sich den Inhalt für die
// Kostenposition zu holen
function getCurrentCost(idKleinanzeigeRubrik){
	if (idKleinanzeigeRubrik &&  idKleinanzeigeRubrik != '' && idKleinanzeigeRubrik != 0 ){
	} else {
		// Ermittle die id der Rubrik
		if ( document.getElementById('idKleinanzeigeRubrik_1')){
			var selectForm = document.getElementById('idKleinanzeigeRubrik_1');
			if (selectForm) idKleinanzeigeRubrik = selectForm.options[selectForm.selectedIndex].value;
			else idKleinanzeigeRubrik = 0;
		} else idKleinanzeigeRubrik = 0;
	}

	
	// angabegewerbe?
	if ( document.getElementById('angabeGewerbe')){
		var selectForm = document.getElementById('angabeGewerbe');
		if (selectForm.checked) angabeGewerbe = 1; else angabeGewerbe = 0;	
	} else angabeGewerbe = 0;	
	
	// premiumanzeige?
	if ( document.getElementById('angabePremiumListung')){
		var selectForm = document.getElementById('angabePremiumListung');
		if (selectForm.checked) angabePremiumListung = 1; else angabePremiumListung = 0;		
	} else angabePremiumListung = 0;		
	
	// StartseitenListung?
	if ( document.getElementById('angabeStartseitenListung')){
		var selectForm = document.getElementById('angabeStartseitenListung');
		if (selectForm.checked) angabeStartseitenListung = 1; else angabeStartseitenListung = 0;
	} else angabeStartseitenListung = 0;	
	
	// Zusätzlicher Link der gelistet werden soll?
	if ( document.getElementById('angabeLinkListung')){
		var selectForm = document.getElementById('angabeLinkListung');
		if (selectForm.checked) angabeLinkListung = 1; else angabeLinkListung = 0;	
	} else angabeLinkListung = 0;	
	
	
	// erstes Bild gewählt?
	if ( document.getElementById('erstesBild')){
		var selectImage = document.getElementById('erstesBild').value;
		if (selectImage.length > 0) var angabeErstesBild = 1; else var angabeErstesBild = 0	
	} else var angabeErstesBild = 0	
	
	var anzahlWeitereBilder = 0
	if ( document.getElementById('weitereBilder_1') && document.getElementById('weitereBilder_1').value.length > 0)
	anzahlWeitereBilder++;
	if ( document.getElementById('weitereBilder_2') && document.getElementById('weitereBilder_2').value.length > 0)
	anzahlWeitereBilder++;
	if ( document.getElementById('weitereBilder_3') && document.getElementById('weitereBilder_3').value.length > 0)
	anzahlWeitereBilder++;
	if ( document.getElementById('weitereBilder_4') && document.getElementById('weitereBilder_4').value.length > 0)
	anzahlWeitereBilder++;
	if ( document.getElementById('weitereBilder_5') && document.getElementById('weitereBilder_5').value.length > 0)
	anzahlWeitereBilder++;
	if ( document.getElementById('weitereBilder_6') && document.getElementById('weitereBilder_6').value.length > 0)
	anzahlWeitereBilder++;
	if ( document.getElementById('weitereBilder_7') && document.getElementById('weitereBilder_7').value.length > 0)
	anzahlWeitereBilder++;
	if ( document.getElementById('weitereBilder_8') && document.getElementById('weitereBilder_8').value.length > 0)
	anzahlWeitereBilder++;
	if ( document.getElementById('weitereBilder_9') && document.getElementById('weitereBilder_9').value.length > 0)
	anzahlWeitereBilder++;
	if ( document.getElementById('weitereBilder_10') && document.getElementById('weitereBilder_10').value.length > 0)
	anzahlWeitereBilder++;

	
	
	// HOLE ABFRAGE VOM SERVER
	 $.ajax({
	   type: "GET",
	   url: globalClassifiedAdsAjaxServerURL,
	   data: "ajaxRequestName=getCurrentCost&idUser=" + globalIdUser + "&uin=" + globalUin + "&language=" + globalLanguage + "&idKleinanzeigeRubrik=" + idKleinanzeigeRubrik + "&angabeGewerbe=" + angabeGewerbe + "&angabePremiumListung=" + angabePremiumListung + "&angabeStartseitenListung=" + angabeStartseitenListung + "&angabeLinkListung=" + angabeLinkListung + "&angabeErstesBild=" + angabeErstesBild + "&anzahlWeitereBilder=" + anzahlWeitereBilder   ,
	   dataType: "html",
	   cache: "false",
	   success: function(msg){
	     setCostContent(msg);
	   },
	   error: function(msg){
	   	alert(msg);
	   }
	 });	


}

/** +++++++++++++++++++++++++++++++++++++++++++++++++++++++	**/
/** +																			**/
/** +	 METHODEN FÜR DIE API -- TYP-AUSWAHL						**/
/** +																			**/
/** +++++++++++++++++++++++++++++++++++++++++++++++++++++++	**/
// Funktion, sendet Abfrage an Ajaxserver, um sich den Inhalt für die
// Kategorie- & Attributauswahl zu holen
function getCurrentTypeSelection(){
	var idKleinanzeigenTyp = getClassifiedAdTypeId();
	// HOLE ABFRAGE VOM SERVER
	 $.ajax({
	   type: "GET",
	   url: globalClassifiedAdsAjaxServerURL,
	   data: "ajaxRequestName=getCurrentTypeSelection&idUser=" + globalIdUser + "&uin=" + globalUin + "&language=" + globalLanguage + "&idKleinanzeigenTyp=" + idKleinanzeigenTyp  ,
	   dataType: "html",
	   cache: "false",
	   success: function(msg){
	     setTypeSelectionContainerContent(msg);
	   },
	   error: function(msg){
	   	alert(msg);
	   }
	 });
	 if(idKleinanzeigenTyp == '-') {
	 	document.getElementById('dynamicTypeKindContainer').style.display = 'none';
	 } else {
	 	document.getElementById('dynamicTypeKindContainer').style.display = 'block';
	 	document.getElementById('dynamicTypeKindContainer').innerHTML = '';
	 }
}

// Funktion setz den Inhalt der Typauswahl 
function setTypeSelectionContainerContent(strData){
	var resultBox 		= document.getElementById('dynamicTypeContainer');
	// wenn kein INhalt, dann leeren!!
	if (resultBox){
		resultBox.innerHTML = strData;
	}
}

// Funktion, sendet Abfrage an Ajaxserver, um sich den Inhalt für die gesetzte
// Typauswahl zu holen
function getCurrentTypeKindSelection(kind){
	var idKleinanzeigenTyp = getClassifiedAdTypeId();
	var kind = kind;
	// HOLE ABFRAGE VOM SERVER
	 $.ajax({
	   type: "GET",
	   url: globalClassifiedAdsAjaxServerURL,
	   data: "ajaxRequestName=getCurrentTypeKindSelection&idUser=" + globalIdUser + "&uin=" + globalUin + "&language=" + globalLanguage + "&idKleinanzeigenTyp=" + idKleinanzeigenTyp + "&kind=" + kind  ,
	   dataType: "html",
	   cache: "false",
	   success: function(msg){
	     setTypeKindSelectionContainerContent(msg);
	   },
	   error: function(msg){
	   	alert(msg);
	   }
	 });
	if(kind == '-') {
	 	document.getElementById('dynamicTypeKindContainer').style.display = 'none';
	 } else {
	 	document.getElementById('dynamicTypeKindContainer').style.display = 'block';
	 	document.getElementById('dynamicTypeKindContainer').innerHTML = '';
	 } 
}
// Funktion setz den Inhalt der Typauswahl 
function setTypeKindSelectionContainerContent(strData){
	var resultBox 		= document.getElementById('dynamicTypeKindContainer');
	// wenn kein INhalt, dann leeren!!
	if (resultBox){
		resultBox.innerHTML = strData;
	}
}

// Funktion setz den Inhalt der Attributzuordnung 
function setCostContent(strData){
	var resultBox 		= document.getElementById('dynamicClassifiedAdCostListing');
	// wenn kein INhalt, dann leeren!!
	if (resultBox){
		resultBox.innerHTML = strData;
	}
}




/** +++++++++++++++++++++++++++++++++++++++++++++++++++++++	**/
/** +	DIVERSE KLEINe FUNKTIONEN										**/
/** +++++++++++++++++++++++++++++++++++++++++++++++++++++++	**/
function checkradio(feld){
	for (i=0; i<feld.length; i++){
			if(feld[i].checked == true){
				return feld[i].value;
			}
	}
}

// Removes leading whitespaces
function LTrim( value ) {
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
}
// Removes ending whitespaces
function RTrim( value ) {
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
}
// Removes leading and ending whitespaces
function trim( value ) {
	return LTrim(RTrim(value));
}

/** +++++++++++++++++++++++++++++++++++++++++++++++++++++++	**/
/** +	-- ENDE --- Verhindere ein mehrfaches Laden 				**/
/** +++++++++++++++++++++++++++++++++++++++++++++++++++++++	**/
}