var geocoder;
var map;
var markers = [];
var Pos = 1;

var raumdesignerHighlighted = false;
var raumdesignerScrollerOffset = 0;
var raumdesignerCurrentElement = false; /* elementID_0 OR elementID_subElementID */
var currentBasis = false;
var imageCached = false;

var raumdesignerCurrentGruppe = false;
var raumdesignerCurrentElement = false;
var raumdesignerHasChanged = false;
var raumdesignerScrollerMaxOffset = 2;
var raumdesignerCurrentOpenMenu = false;

var oldShownTour = false;

var liveSearchPos = 0;
var produktSearchPos = 0;



/* product functions */

/* DEPRECATED 
function loadProductList(id, offset, itemsPerPage){
	jQuery('#ProductListContainer').fadeOut(150, function(){
		jQuery('#ProductListLoading').fadeIn(150);
	});
	jQuery('#ProductListContainer').load('/cms-intern/liveproductlist?id=' + id + '&offset=' + offset, function() {
		jQuery('#ProductListLoading').fadeOut(150, function(){
			jQuery('#ProductListContainer').fadeIn(550);
		});
	}); 
	loadProductPager(id, offset, itemsPerPage);
}

function loadProductPager(id, offset, itemsPerPage){
	overall = jQuery('#productCount').val();
	jQuery('#ProductListPager').load('productPager.php?id=' + id + '&offset=' + offset + '&overall=' + overall + '&itemsPerPage=' + itemsPerPage, function() {
	});
}
*/

function hideSubmit(){
	jQuery('#step2_data').hide(0);
	jQuery('#step2_loading').show(0);
}


function resetField(id){
	document.getElementById(id).value = '';
}

/* merkliste and maps functions */

function createMerklisteText(count){
	// first, verification - well, sort of
	var verOK = true;
	var verificationArray = new Array('name', 'strasse', 'ort', 'land', 'email');
	for(var i = 0; i < verificationArray.length; i++){
		if(jQuery('#' + verificationArray[i]).val() == ''){
			verOK = false;
			break;	
		}
	}
	
	if(!verOK){
		alert('Sie haben nicht alle Felder ordnungsgemäß ausgefüllt. Bitte achten Sie auch die roten Sternchen.');
		return false;
	}
	
	jQuery(window).scrollTop(0);
	var haendlerID = jQuery('#HaendlerID').val();
	var text = 
		"<h4>Empfänger:</h4><br>" + 
		jQuery('#HaendlerListeItemContent' + haendlerID).html() +
		"<br><br><h4>Absender:</h4><br>" +
		jQuery('#name').val() + '<br>' +
		jQuery('#strasse').val() + '<br>' +
		jQuery('#ort').val() + '<br>' +
		jQuery('#land').val() + '<br>' +
		jQuery('#email').val() + '<br>' +
		jQuery('#telefon').val() + '<br>' +
		jQuery('#fax').val() + '<br>' +
		jQuery('#anmerkungen').val() + '<br><br><h4>Artikelliste:</h4><br>';
		
	for(var i = 1; i <= count; i++){
		text += "<strong>" +
			jQuery('#productID' + i).html() + ": " +
			jQuery('#productName' + i).html() + "</strong><br> " + 
			jQuery('#productSize' + i).html() + "; " +
			jQuery('#productNote' + i).val() + "<br><br>";
		}
		
	jQuery('#MerklistePage2').html(text);
	jQuery('#MerklistePage1').fadeOut(600, function(){
		jQuery('#MerklistePage2Container').slideToggle(800);
	});
}

function getBackToMerkliste(){
	jQuery('#MerklistePage2Container').slideToggle(800, function(){
		jQuery('#MerklistePage1').fadeIn(700);
	});
}

function sendMerkliste(){
	jQuery('#MerklistePage2Container').slideToggle(400, function(){
		jQuery('#MerklistePage3Container').fadeIn(200, function(){
			jQuery('#MerklistePage3Content').load('/tools/merklisteoperations?operation=saveDataInDataObject&name=' + jQuery('#name').val() + '&haendlerID=' + jQuery('#HaendlerID').val() + '&Produkte=' + jQuery('#Produkte').val(), { text: jQuery('#MerklistePage2').html() }, function(){
				jQuery('#MerklistePage3Loading').fadeOut(400, function(){
					jQuery('#MerklistePage3Content').fadeIn(300);
				});
			});
		});
	});
}

function loadMerklisteHaendlerMap(form){
	if(jQuery('#HaendlerID').val()){
		hideHaendler(jQuery('#HaendlerID').val());
		jQuery('#HaendlerID').val('');
	}
	changeToSearchedLocation(jQuery('#searchField').val() + " " + jQuery('#merklisteLand').val());
	jQuery('#HaendlerMapContainer').fadeIn(400);
	google.maps.event.trigger(map, 'resize');
}

function initializeHaendlerMaps() {
    geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(48.285386,14.423218);
    var myOptions = {
      zoom: 6, // default: 6
      center: latlng,
      backgroundColor: '#FFFFFF',
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map(document.getElementById("map_canvas"),
        myOptions);
  }
  
  
  function pointAddress(lat, lng, titleName, contentString) {
	var myLatlng = new google.maps.LatLng(lat, lng);
    
	var marker = new google.maps.Marker({
		position: myLatlng, 
		map: map, 
		title: titleName
	});   

	
	var infowindow = new google.maps.InfoWindow({
		content: contentString
	});

	google.maps.event.addListener(marker, 'click', function() {
	  infowindow.open(map, marker);
	});
	
	markers.push(marker);
	//alert("Geocode was not successful for the following reason: " + status);
  }
  
  function changeToSearchedLocation(address){
		geocoder.geocode( { 'address': address}, function(results, status) {
			if (status == google.maps.GeocoderStatus.OK)
				map.setCenter(results[0].geometry.location);
				map.setZoom(12);
			}
		);
	}
  
  function createCluster(){
  	var mcOptions = {maxZoom: 10};
	var markerCluster = new MarkerClusterer(map, markers, mcOptions);
  }
  
/* if notMerkliste is true, then just create a new OrderItem */
function simpleAddMerkliste(operation, productID, notMerkliste){
	var url = '/tools/merklisteoperations?operation=' + operation + '&productID=' + productID;
	if(notMerkliste)
		url += '&orderID=' + notMerkliste;
	jQuery('#MerklisteOverlay').load(url, function(){
		if(notMerkliste)
			window.location = "/tools/haendlerbereich/bestell-manager/?showItem=new&draft=" + notMerkliste;
		else
			window.location.reload();
	});
}
  

function merklisteOperation(operation, productID, pressedElement){
	if(operation == 'save')
		jQuery('#merklisteLink' + productID).css('opacity', '0.4');	
		
	if(operation == 'haendlerMapData'){
		jQuery('#HaendlerMapData').load('/tools/merklisteoperations?operation=haendlerMapData', function(){
			return true;
		});
	}
	
	if(operation == 'showHaendler'){
		jQuery('#MerklisteHaendlerListe').load('/tools/merklisteoperations?operation=showHaendler&haendlerID=' + productID, function(){
			jQuery('#MerklisteFormContainer').show(400, function(){
				jQuery('#MerklisteSubmit').show(400);
			});
			return true;
		});
	}
		
	jQuery('#MerklisteOverlay').load('/tools/merklisteoperations?operation=' + operation + '&productID=' + productID, function() {
		jQuery('#MerklistePopup').css('top', absTop(pressedElement) + 'px', function(){
			jQuery('#MerklistePopup').fadeIn(800);
		});
	}); 
}

function merklisteClose(){
	jQuery('#MerklistePopup').fadeOut(400);
}

function showHaendler(id){
	jQuery(window).scrollTop(0);
	jQuery('#haendlerMap').hide(400, function(){
		jQuery('#HaendlerID').val(id);
		/*jQuery('#HaendlerListeItem' + id).show(400, function(){
			jQuery('#MerklisteFormContainer').show(400, function(){
				jQuery('#MerklisteSubmit').show(400);
			});
		});*/
		merklisteOperation('showHaendler', id, false);
		jQuery('#MerklisteHaendlerListe').show(200);
	});
}

function hideHaendler(id){
	jQuery('#MerklisteHaendlerListe').hide(400, function(){
		jQuery('#MerklisteFormContainer').hide(200);
		jQuery('#haendlerMap').show(400);
		google.maps.event.trigger(map, 'resize');
	});
}

function merklisteAddNotice(productID){
	jQuery('#addNoticeHolder_' + productID).fadeOut(200);
	jQuery('#noticeHolder_' + productID).slideToggle(200);
}

function merklisteCloseNotice(productID){
	jQuery('#addNoticeHolder_' + productID).fadeIn(200);
	jQuery('#noticeHolder_' + productID).slideToggle(200);
}

/* specific functions */

function loadStandort(Pos, TotalItems){
	for(i = 1; i <= TotalItems; i++){
		jQuery('#standortItem' + i).hide(0);
	}
	
	jQuery('#standortItem' + Pos).show(200);
}

function loadChronikItem(itemID, TotalItems){
	for(i = 1; i <= TotalItems; i++){
		jQuery('#ChronikItemContent' + i).hide();
		jQuery('#ChronikItemImg' + i).fadeOut(200);
		jQuery('#ChronikItemMenu' + i).css('font-size', '14px');
		jQuery('#ChronikItemMenu' + i).css('font-weight', 'normal');
	}
	
	jQuery('#ChronikItemMenu' + itemID).css('font-weight', 'bold');
	jQuery('#ChronikItemMenu' + itemID).css('font-size', '17px');
	jQuery('#ChronikItemImg' + itemID).fadeIn(1000);
	jQuery('#ChronikItemContent' + itemID).show();
	
}

/* toggle functions */

function toggleLogin(){
	jQuery('#NavigationLoginForm').slideToggle(300);
}

  function toggleHaendler(controlID, showID, oldControlID, oldShowID){
  	jQuery('#' + controlID).removeClass('normal');
  	jQuery('#' + oldControlID).removeClass('bold');
  
  	jQuery('#' + controlID).addClass('bold');
  	jQuery('#' + oldControlID).addClass('normal');
  	
  	jQuery('#' + oldShowID).fadeOut(800);
  	jQuery('#' + showID).fadeIn(500);
  }

/* slideshow */

function slideshow(bNext, TotalItems, bClicked){
	if(bClicked)
		$(document).stopTime("slideshowTimer");
	jQuery('#slideshowItem' + Pos).fadeOut(400, function(){
		if(bNext){
			Pos++;
			if(Pos > TotalItems)
				Pos = 1;
		}else{
			Pos--;
			if(Pos < 1)
				Pos = TotalItems;	
		}
		jQuery('#slideshowItem' + Pos).fadeIn(400);
	});
	if(bClicked)
		startSlideshowTimer(TotalItems, 8000);
}

  function startSlideshowTimer(maxSlideshowItems, slideshowTime){
	$(document).everyTime(slideshowTime, "slideshowTimer", function(Pos) {
	  if(Pos <= maxSlideshowItems){
	  	slideshow(true, maxSlideshowItems, false);
	  }else{
	  	Pos = 1;
	  	slideshow(true, maxSlideshowItems, false);
	  }
	},0);
  
  }
  
/* overlay */

function overlayShow(path, isTexture){
	height = jQuery(document).height();
	width = jQuery(document).width();
	jQuery('#overlay').width(width);
	jQuery('#overlay').height(height);
	jQuery('#overlay').fadeIn(200, function(){
		jQuery('#overlayContainerContainer').fadeIn(200, function(){
			// IE blah
			jQuery('#overlay').css('filter', 'alpha(opacity=70)');
			jQuery('#overlayContent').load('overlayImg.php?path=' + path + '&isTexture=' + isTexture);
		});
	});
}

function overlayClose(){
	jQuery('#overlayContainerContainer').fadeOut(200, function(){
		jQuery('#overlay').fadeOut(200);
	});
}
  
/* order */

function changedOrderAction(value){
	if(value == 'order')
		jQuery('#draftName').hide(200);
	else
		jQuery('#draftName').show(200);
}

function orderChangedFiliale(field){
	var aniSpeed = 300;
	if(field.value == 'Abholung'){
		jQuery('#AbholungContainer').slideDown(aniSpeed);
		jQuery('#LieferadresseContainer').slideUp(aniSpeed);
		jQuery('#TourContainer').slideUp(aniSpeed);
		jQuery('#VersandContainer').slideUp(aniSpeed);
	}else if(field.value == 'Lieferadresse'){
		jQuery('#VersandContainer').slideDown(aniSpeed);
		jQuery('#AbholungContainer').slideUp(aniSpeed);
		if(jQuery('#Versand').val() == 'ZUST')
			jQuery('#TourContainer').slideDown(aniSpeed);
		jQuery('#LieferadresseContainer').slideDown(aniSpeed);
	}else{
		jQuery('#VersandContainer').slideDown(aniSpeed);
		jQuery('#AbholungContainer').slideUp(aniSpeed);
		jQuery('#LieferadresseContainer').slideUp(aniSpeed);
		if(jQuery('#Versand').val() == 'ZUST')
			jQuery('#TourContainer').slideDown(aniSpeed);
			
		if(oldShownTour)
			jQuery(oldShownTour).hide(0);
		else
			jQuery('#Tour_00').hide(0);
			
		jQuery('#Tour_' + field.value).show(0);
		oldShownTour = '#Tour_' + field.value;
	}
	
	if(field.value == 'Lieferadresse'){
		jQuery('#addProduct').css('margin-top', '50px');
		jQuery('#orderList').css('margin-top', '50px');
	}else{
		jQuery('#addProduct').css('margin-top', '0');
		jQuery('#orderList').css('margin-top', '0');
	}
}

function orderChangedVersand(field){
	var aniSpeed = 300;
	if(field.value == 'ZUST'){
		jQuery('#TourContainer').slideDown(aniSpeed);
	}else{
		jQuery('#TourContainer').slideUp(aniSpeed);
	}
}

/* submits form and change location to url */
function orderViewDetail(url){
	jQuery('#forwardTo').val(url);
	document.forms['orderForm'].submit();
}
  
/* calculator */

function calcMenge(pos, value1, value2, value3){
	if(value3 == 0)
		value3 = 100;
	var result = parseFloat(value1 * value2 * value3);
	
	if(isNaN(result)){
		jQuery('#calcEinheit_'+pos).hide(0);
		jQuery('#calcResult'+pos).html("Fehler: Ungültige Eingabe");
		
	}else{
		jQuery('#calcEinheit_'+pos).show(0);
		jQuery('#calcResult'+pos).html(result.toFixed(2));
		
	}
}

function removeVerify(pos){
	jQuery('#VerifyItem' + pos).hide(80);
}

function setPluralTitle(pos, value, beme, std){
	if(value == 1){
		jQuery('#calcEinheit_'+pos).html(std);
		return true;
	}
	
	var retVal = "";
	if(beme == 'DOS')
		retVal = 'Dosen';
	else if(beme == 'FL')
		retVal = 'Flaschen';
	else if(beme == 'PK')
		retVal = 'Pakete';
	else if(beme == 'ROL')
		retVal = 'Rollen';
	else if(beme == 'SET')
		retVal = 'Sets';
	else
		retVal = std;
	
	jQuery('#calcEinheit_'+pos).html(retVal);
}

function checkIfComma(element){
	var val = jQuery(element).val();
	val = str_replace(",", ".", val);
	jQuery(element).val(val);
	return true;
}

function str_replace(s, r, c) {
	c = c.split(s).join(r);
	return c;
}

function setPluralTitleNew(pos, value, string){
	
	if(string == "")
		return false;	
	
	if(value == 1){
		jQuery('#calcEinheit_'+pos).html(string);
		return true;
	}
	var beme = string;
	var retVal = "";
	if(beme == 'Karton')
		retVal = 'Kartons';
	else if(beme == 'Tube')
		retVal = 'Tuben';
	else if(beme == 'Platte')
		retVal = 'Platten';
	else if(beme == 'Rolle')
		retVal = 'Rollen';
	else if(beme == 'Set')
		retVal = 'Sets';
	else if(beme == 'Block')
		retVal = 'Blöcke';
	else if(beme == 'Spule')
		retVal = 'Spulen';
	else if(beme == 'Bund')
		retVal = 'Bünde';
	else if(beme == 'Stange')
		retVal = 'Stangen';
	else if(beme == 'Sack')
		retVal = 'Säcke';
	else if(beme == 'Paket')
		retVal = 'Pakete';
	else
		retVal = string;
	
	jQuery('#calcEinheit_'+pos).html(retVal);
}


function loadStock(kdnr, fil, anr, anzahl, anzahl2, orderItemID, elementID){
	if(orderItemID == 0){
		if(jQuery('#StockItemStatic' + elementID).css('display') == 'none')
			var ElementToFadeOut = '#StockItem' + elementID;
		else
			var ElementToFadeOut = '#StockItemStatic' + elementID;
			
		jQuery(ElementToFadeOut).fadeOut(200, function(){
			jQuery('#StockLoading' + elementID).fadeIn(200);
		});
	}
	jQuery('#StockItem' + elementID).load('/tools/stock?kdnr=' + kdnr + '&fil=' + fil + '&anr=' + anr + '&anzahl=' + anzahl + '&anzahl2=' + anzahl2 + '&OrderItemID=' + orderItemID, function(){
		jQuery('#StockLoading' + elementID).fadeOut(200, function(){
			jQuery('#StockItem' + elementID).fadeIn(200);
		});
	});
}
  
/* etc */

function setSelected(selectID, optionID){
	if(!document.getElementById(selectID + "_" + optionID))
		return false;
	document.getElementById(selectID + "_" + optionID).selected = true;
}
  
function absLeft(el) {
	return (el.offsetParent)?
	el.offsetLeft+absLeft(el.offsetParent) : el.offsetLeft;
}

function absTop(el) {
	return (el.offsetParent)?
	el.offsetTop+absTop(el.offsetParent) : el.offsetTop;
} 

/* produkt live search */

function produktLiveSearch(q){
	if(q.length > 2){
		jQuery('#ProduktSearch').load("/tools/produktsearch?q=" + urlencode(q), function(){
			jQuery('#ProduktSearch').show(0);
		});
	}
}

function produktSearchGoDown(){
	if(produktSearchPos != 0)
		jQuery('#produktSearchLine' + produktSearchPos).css('background-color', 'transparent');
	if(produktSearchPos < 10)
		produktSearchPos++;
		
	jQuery('#produktSearchLine' + produktSearchPos).css('background-color', '#D1D1D1');
	jQuery('#artNr').val(jQuery('#produktSearchARNR' + produktSearchPos).html());
}

function produktSearchGoUp(){
	if(produktSearchPos != 0)
		jQuery('#produktSearchLine' + produktSearchPos).css('background-color', 'transparent');
	if(produktSearchPos > 1)
		produktSearchPos--;
		
	jQuery('#produktSearchLine' + produktSearchPos).css('background-color', '#D1D1D1');
	jQuery('#artNr').val(jQuery('#produktSearchARNR' + produktSearchPos).html());
}


function addARNRtoTextfieldAndSubmit(id){
	jQuery('#artNr').val(id);
	document.forms['orderForm'].submit();
}

/* live search */

function liveSearch(q){
	if(q.length > 2){
		liveSearchPos = 0;
		jQuery('#LiveSearchContainer').load("/tools/livesearch?q=" + q, function(){
			jQuery('#LiveSearch').show(0);
		});
	}
}

function liveSearchGoDown(){
	if(liveSearchPos != 0)
		jQuery('#LiveSearchLine' + liveSearchPos).css('background-color', 'transparent');
	if(liveSearchPos < 5)
		liveSearchPos++;
		
	jQuery('#LiveSearchLine' + liveSearchPos).css('background-color', '#DFDFDF');
	jQuery('#mainSearch').val(jQuery('#LiveSearchLine' + liveSearchPos).html());
}

function liveSearchGoUp(){
	if(liveSearchPos != 0)
		jQuery('#LiveSearchLine' + liveSearchPos).css('background-color', 'transparent');
	if(liveSearchPos > 1)
		liveSearchPos--;
		
	jQuery('#LiveSearchLine' + liveSearchPos).css('background-color', '#DFDFDF');
	jQuery('#mainSearch').val(jQuery('#LiveSearchLine' + liveSearchPos).html());
}

function hideLiveSearch(){
	jQuery('#LiveSearch').hide(0);
	jQuery('#ProduktSearch').hide(0);
}



/* raumdesigner */

function raumdesignerShowElements(pfeilID, ID){
	var img = jQuery('#' + pfeilID);
      /*var src = (jQuery(img).attr("src") === "/img/raumdesigner/elementPfeil.png")
                    ? "/img/raumdesigner/elementPfeilOpen.png" 
                    : "/img/raumdesigner/elementPfeil.png";
                    */
    var src = "/img/raumdesigner/elementPfeilOpen.png";
	jQuery(img).attr("src", src);
	jQuery('#RaumdesignerElements_' + ID).slideDown(200); // TODO: USE TOGGLE (only for dev)
}

function raumdesignerLoadMuster(title, gruppeID, highlightID, elementPos, subElementID){
	jQuery('#RaumdesignerSearchResults').hide(0);
	jQuery('#RaumdesignerSearchInput').val('');
	if(subElementID == 0){
		if(raumdesignerCurrentOpenMenu != gruppeID){
			if(raumdesignerCurrentOpenMenu){
				jQuery('#RaumdesignerElements_' + raumdesignerCurrentOpenMenu).slideUp(200);
				jQuery('#elementPfeil_' + raumdesignerCurrentOpenMenu).attr('src', "/img/raumdesigner/elementPfeil.png");
			}
			raumdesignerCurrentOpenMenu = gruppeID;
		}
	}
	//jQuery('#RaumdesignerLiveMuster').css('background-color', '#F4F4F4');
	jQuery('#RaumdesignerLiveMusterBackLink').hide(0);
	var htmlBackLink = "<a href=\"javascript:raumdesignerLoadMuster(" + 
		"'" + title +         "'," + 
		"'" + gruppeID +      "'," +
		"'" + highlightID +   "'," +
		"'" + elementPos +    "'," +
		"'" + subElementID +  
		"');\">zur&uuml;ck zur Kategorieauswahl</a>";
	jQuery('#RaumdesignerLiveMusterBackLink').html(htmlBackLink);
	//window.location.hash="elementList";
	raumdesignerCurrentElement = elementPos + "_" + subElementID;
	if(raumdesignerHighlighted)
		highlightRaumdesignerElement(raumdesignerHighlighted, 0);
	highlightRaumdesignerElement(highlightID, 1);
	raumdesignerSetArt(-1);
	jQuery('#RaumdesignerLiveMuster').load('/tools/liveraumdesigner?action=ProduktGruppen&RaumdesignerGruppeID=' + gruppeID);
}

function raumdesignerLoadSubMuster(title, katID, offset, filter){
	jQuery('#RaumdesignerSearchResults').hide(0);
	jQuery('#RaumdesignerSearchInput').val('');
	if(!filter)
		filter = "";
	jQuery('#RaumdesignerLiveMuster').height('780');
	//jQuery('#RaumdesignerLiveMuster').css('background-color', '#FFFFFF');
	jQuery('#RaumdesignerLiveMuster').css('visibility', 'hidden');
	jQuery('#RaumdesignerLiveMusterLoading').show(0);
	jQuery('#RaumdesignerLiveMuster').load('/tools/liveraumdesigner?action=ProduktKat&KatID=' + katID + '&offset=' + offset + '&raumdesigner=1' + filter, function(){
		jQuery('#RaumdesignerLiveMusterLoading').hide(0, function(){
			jQuery('#RaumdesignerLiveMuster').css('visibility', 'visible');
		});
	});
}

function raumdesignerFilter(katID, offset){
	var filter = "";
	var filterArray = new Array('DESTR', 'MAOBS', 'DEDEM', 'DEFATH', 'GEEIB', 'ARKO');
	for(var i = 0; i < filterArray.length; i++){
		if(jQuery('#' + filterArray[i]).exists()){
			filter += "&" + filterArray[i] + "=" + jQuery('#' + filterArray[i]).val();
		}
	}
	raumdesignerLoadSubMuster('', katID, offset, filter);
}

function highlightRaumdesignerElement(id, isHighlight){
	jQuery('#RaumdesignerSucheNo').hide(200, function(){
		jQuery('#RaumdesignerSucheYes').show(200);
	});
	if(isHighlight){
		jQuery('#' + id).css('background-color', '#021732');
		jQuery('#' + id).css('font-weight', 'bold');
		jQuery('#' + id).css('color', '#FFFFFF');
		raumdesignerHighlighted = id;
	}else{
		jQuery('#' + id).css('background-color', '#F4F4F4');
		jQuery('#' + id).css('font-weight', 'normal');
		jQuery('#' + id).css('color', '#000000');
	}
}

function raumdesignerSetArt(id){
	if(id != '-1'){
		jQuery(window).scrollTop(440);
	}
	//jQuery('#RaumdesignerLiveImage').fadeIn(30);
	jQuery('#RaumdesignerArt').fadeOut(300);
	jQuery('#RaumdesignerArt').load('/tools/liveraumdesigner?action=Produkt&id=' + id + '&currentElement=' + raumdesignerCurrentElement + '&basis=' + currentBasis, function(){
		if(id != '-1'){
			jQuery('#Check' + raumdesignerHighlighted).fadeIn(200);
			raumdesignerLoadImage(currentBasis);	
		}
		jQuery('#RaumdesignerArt').fadeIn(500);
	});
}

function raumdesignerSetArtFromSearch(){
	var artnr = jQuery('#RaumdesignerSearchInput').val().replace(" ", "");
	raumdesignerSetArt(artnr);
}

function raumdesignerChangeBasisbild(url){
	if(currentBasis != false && raumdesignerHasChanged == currentBasis){
		if(confirm('Beim Wechseln des Basisbilds gehen sämtliche Daten verloren.\n\nWollen Sie fortfahren?')){
			document.location = url + "&resetRaumdesigner=" + raumdesignerHasChanged;
		}
	}else
		document.location = url;
}

function raumdesignerBigImage(){
	jQuery('#RaumdesignerBigImage').load('/tools/liveraumdesigner?action=BigImage&basis=' + currentBasis);
}

function raumdesignerDownloadImage(){
	jQuery('#RaumdesignerNothing').load('/tools/liveraumdesigner?action=DownloadImage&basis=' + currentBasis);
}

function raumdesignerDownloadPDF(){
	jQuery('#RaumdesignerNothing').load('/tools/liveraumdesigner?action=PDF&basis=' + currentBasis);
}

function raumdesignerDelete(){
	jQuery('#RaumdesignerArt').load('/tools/liveraumdesigner?action=Delete&id=' + raumdesignerCurrentElement, function(){
		jQuery('#Check' + raumdesignerHighlighted).fadeOut(200);
	});
}

function raumdesignerSend(){
	f_scrollTop();
	height = jQuery(document).height();
	width = jQuery(document).width();
	jQuery('#overlay').width(width);
	jQuery('#overlay').height(height);
	jQuery('#overlayContainer').width('400');
	jQuery('#overlayContainer').css('padding', '20px');
	jQuery('#overlayContainer').css('padding-bottom', '5px');
	jQuery('#overlay').fadeIn(200, function(){
		jQuery('#overlayContainerContainer').fadeIn(200, function(){
			// IE blah
			jQuery('#overlay').css('filter', 'alpha(opacity=70)');
			jQuery('#overlayContent').load('/tools/liveraumdesigner?action=Send&basis=' + currentBasis);
		});
	});
}

function raumdesignerOpenMerkliste(){
	jQuery('#RaumdesignerLiveMuster').css('visibility', 'hidden');
	jQuery('#RaumdesignerLiveMusterLoading').show(0);
	jQuery('#RaumdesignerLiveMuster').load('/tools/liveraumdesigner?action=Merkliste&basis=' + currentBasis + '&RaumdesignerGruppeID=' + raumdesignerCurrentOpenMenu, function(){
		jQuery('#RaumdesignerLiveMusterLoading').hide(0, function(){
			jQuery('#RaumdesignerLiveMuster').css('visibility', 'visible');
			jQuery('#RaumdesignerLiveMusterBackLink').show(0);
		});
	});
}

function merklisteClearAll(){	
	if(confirm('Wollen Sie wirklich Ihre Merkliste leeren?')){
		document.location = 'http://www.sonnhaus.at/merkliste?deleteAll=1';
	}
}

function raumdesignerOpenAdded(){
	jQuery('#RaumdesignerLiveMuster').css('visibility', 'hidden');
	jQuery('#RaumdesignerLiveMusterLoading').show(0);
	jQuery('#RaumdesignerLiveMuster').load('/tools/liveraumdesigner?action=Added&basis=' + currentBasis +'&RaumdesignerGruppeID=' + raumdesignerCurrentOpenMenu, function(){
		jQuery('#RaumdesignerLiveMusterLoading').hide(0, function(){
			jQuery('#RaumdesignerLiveMuster').css('visibility', 'visible');
			jQuery('#RaumdesignerLiveMusterBackLink').show(0);
		});
	});
}

function raumdesignerSent(){
	// first get form-values
	var senderName = jQuery('#senderName').val();
	var senderEmail = jQuery('#senderEmail').val();
	var recipentName = jQuery('#recipentName').val();
	var recipentEmail = jQuery('#recipentEmail').val();
	var notes = jQuery('#notes').val();
	
	
	var url = '/tools/liveraumdesigner?action=Sent&basis=' + urlencode(currentBasis) + 
									'&senderName=' + urlencode(senderName) + 
									'&senderEmail=' + urlencode(senderEmail) + 
									'&recipentName=' + urlencode(recipentName) + 
									'&recipentEmail=' + urlencode(recipentEmail) +
									'&notes=' + urlencode(notes);
	
	jQuery('#RaumdesignerMailData').slideUp(400);			
	jQuery('#RaumdesignerMailSent').load(url, function(){
		jQuery('#RaumdesignerMailSent').slideDown(300);	
	});
}

function raumdesignerLoadImage(){
	raumdesignerHasChanged = currentBasis;
	jQuery('#RaumdesignerHeaderInaktiv').fadeOut(300);
	imageCached = false;
	jQuery('#RaumdesignerHidden').html("");
	jQuery('#RaumdesignerLiveImage').fadeOut(600);
	jQuery('#RaumdesignerImageLoading').fadeIn(200, function(){
		jQuery('#RaumdesignerHidden').load('/tools/liveraumdesigner?action=Image&basis=' + currentBasis, function(){
			checkCache();
			//setTimeout("checkCache()", 400);
		});
	});
}

function checkCache(){
	if(imageCached == false){
		jQuery('#RaumdesignerLiveImage').load('/tools/liveraumdesigner?action=Cache&basis=' + currentBasis, function(){
			setTimeout("checkCache()", 800);
		});
	}else{
		jQuery('#RaumdesignerLiveImage').fadeIn(600);
	}
}

function raumdesignerToMerkliste(){
	if(confirm('Ihre Raumdesigner-Daten werden nun in die Merkliste übernommen.\n\nDabei gehen sämtliche Daten in Ihrer bisherigen Merkliste verloren. Wollen Sie trotzdem fortfahren?')){
		document.location = "/merkliste?raumdesigner=1&basis=" + currentBasis + "&img=http://www.sonnhaus.at" + jQuery('#RaumdesignerPrefetchImage').attr('src');
	}
}

function raumdesignerScrollerLeft(){
	if(raumdesignerScrollerOffset > 0){
		raumdesignerScrollerOffset--;
		jQuery('#RaumdesignerBasisScroller').animate({
			marginLeft: '+=220'
		}, 400);
	}
	raumdesignerScrollerPfeile();
}

function raumdesignerScrollerRight(){
	if(raumdesignerScrollerOffset < raumdesignerScrollerMaxOffset){
		raumdesignerScrollerOffset++;
		jQuery('#RaumdesignerBasisScroller').animate({
			marginLeft: '-=220'
		}, 400);
	}
	raumdesignerScrollerPfeile();
	
}

function raumdesignerScrollerPfeile(){
	if(raumdesignerScrollerOffset == 0){
		jQuery('#RaumdesignerBasisScrollerLeft').attr('src', '/img/raumdesigner/pfeil_links_inaktiv.png');
		jQuery('#RaumdesignerBasisScrollerRight').attr('src', '/img/raumdesigner/pfeil_rechts_aktiv.png');
	}else if(raumdesignerScrollerOffset > 0 && raumdesignerScrollerOffset < raumdesignerScrollerMaxOffset){
		jQuery('#RaumdesignerBasisScrollerLeft').attr('src', '/img/raumdesigner/pfeil_links_aktiv.png');
		jQuery('#RaumdesignerBasisScrollerRight').attr('src', '/img/raumdesigner/pfeil_rechts_aktiv.png');
	}else{
		jQuery('#RaumdesignerBasisScrollerLeft').attr('src', '/img/raumdesigner/pfeil_links_aktiv.png');
		jQuery('#RaumdesignerBasisScrollerRight').attr('src', '/img/raumdesigner/pfeil_rechts_inaktiv.png');
	}
}

function raumdesignerSearch(offset){
	if(!offset)
		offset = 0;
	jQuery('#RaumdesignerSearchResults').hide(0, function(){
		jQuery('#RaumdesignerSearchLoading').show(50, function(){
			window.scrollTo(0,document.body.scrollHeight);
		});
	});
	jQuery('#RaumdesignerSearchResults').load('/tools/liveraumdesigner?action=Search&basis=' + currentBasis +'&RaumdesignerGruppeID=' + raumdesignerCurrentOpenMenu + '&q=' + jQuery('#RaumdesignerSearchInput').val() + '&offset=' + offset, function(){
		jQuery('#RaumdesignerSearchLoading').hide(250, function(){
			jQuery('#RaumdesignerSearchResults').show(300, function(){
				window.scrollTo(0,document.body.scrollHeight);
			});
		});
	});
}

function toggleUserDetails(ID){
	jQuery('#hfUserEditDetails_' + ID).toggle();
}

function urlencode(str) {
	str = escape(str);
	str = str.replace('+', '%2B');
	str = str.replace('%20', '+');
	str = str.replace('*', '%2A');
	str = str.replace('/', '%2F');
	str = str.replace('@', '%40');
	return str;
}

function f_scrollTop() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}
function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}

jQuery.fn.exists = function(){return jQuery(this).length>0;}


