/*
Copyright Check IT ETC GmbH 2011
Original Datei, bitte x_auswahl.min.js in Produktion benutzen
 */
 
// globale Variablen

var abrStr = ''; // Abreise Tage String
var minStay = 7; // Mindesaufenthaltsdauer
var selectedStay = 7; // Aufenthaltsdauer
var entfSa = 0; //Entfernung zur Samstag
var reqOrtBeschreibung = false;
var ortBescGeladen = false;
var req = false;
var anzBilder;
var startT, endT;
var th, maxH, maxB;
var thGrB = []; // Thumbs Groesse Array Breite
var thGrH = []; // Thumbs Groesse Array Hoehe
var anzTh = 4; // Anzahl Thumbs
var ladeBilderInterval = false;
var schalter = false;
var newBookURL = '';
var preis = "";
var neben = '';
var reqFav = false;
var geprueft = false;

// aktualisiere listbox 'Aufenthaltsdauer' mit referenz auf input-feld Kalendar
function setze_datum()
{
    // wota_anr
    var i,s,sfill,opttext;
    var str_mt,str_mn,mt,mn,str_wota;
    var wt_array = new Array("So", "Mo", "Di", "Mi","Do", "Fr", "Sa");  // so=0 ..

	var strdate = document.getElementById('anr').value;
	//alert(strdate);

    var vdate   = strdate.split('.');
    var y = parseFloat(vdate[2]);
    var m = parseFloat(vdate[1])-1;
    var t = parseFloat(vdate[0]);
    var d = new Date(y,m,t);    // Datum als Objekt setzen -- Jahr,monat,tag ..
	var qTimemout; // Query Verzögerung
	var req, reqOrtBes;
	var errStr = '';
    i=2;  // 2 tage überspringen

    var sdat = d;
	var offsetDat = d;
	var startDat = germanDate(minCal);

	var offset = Math.round(Math.abs(offsetDat.getTime() - startDat.getTime()) / (1000 * 60 * 60 * 24));
	abrStr = abrJS.substr(offset, 29);
	minStay = parseInt(minStayJS.substr(offset, 1), 16);
	vakStr = vakJS.substr(offset, 29);
    str_wota= wt_array[sdat.getDay()];
    document.getElementById('wota').value=str_wota;
    sdat.setDate( d.getDate() +minStay );  // start mit minStay
	var staySave = false;
	var classStr = '';
	if (abrStr.length==29) {
		var sNew = '';
		sNew = '<select name=\"lb_Stay\" id=\"lb_Stay\" class=\"elemCourier\" style=\"background-color:#EEEEEE;\" onchange=\"newPrice(\''+pnr_id+'\')\">';
		var stopFor = false;
		for (i=minStay; (i<30) && !stopFor; i++) {			
			if (abrStr.charAt(i)=='1') {
				str_wota= wt_array[sdat.getDay()];
				mt = sdat.getDate();
				if(mt < 10 )
				   str_mt =  '0' + mt.toString()
				else
					str_mt =  mt.toString() ;
				mn = sdat.getMonth()+1;
				if ( i % 7 == 0) {
					classStr = 'class=\"optBold\"';
					if  (i == 7)
						textStr = (i/7) + ' Woche';
					else
						textStr = (i/7) + ' Wochen';
				}
				else {
					classStr = '';
					textStr = i + ' Tage';
				};
				if(mn < 10 )
				   str_mn =  '0' + mn.toString();
				else
					str_mn =  mn.toString() ;
				if (i+1 < 10) 
					s = '' + textStr;
				else
					s = textStr;
				opttext =  str_wota + ', \t' + str_mt + '.' + str_mn + '  ' + s ;
				errStr += opttext + '\n';
				if (i==(selectedStay)) {
					sNew += '<option id=\"optSelected\" selected=\"selected\" value=\"' + i + '\"' + classStr + '>' + opttext + '</option>';
					staySave = true;
				}
				else
				{
					sNew += '<option value=\"' + i + '\"' + classStr + '>' + opttext + '</option>';
				}
			}
			sdat.setDate( sdat.getDate() +1 );
			if (vakStr.charAt(i)=='0') {
				stopFor = true;
			}
		}		
		sNew += '</select>';
		document.getElementById('lb_StayDiv').innerHTML = sNew;
		if (!staySave) {
			var staySelect = document.getElementById('lb_Stay');
			for (i=0;i<staySelect.length;i++) {
				if (staySelect.options[i].value==7)
					staySelect.selectedIndex = i;
			}
		}
		var d1 = germanDate(strdate);
		var d2 = germanDate(strdate);
		var stay1 = selectedStay;
		var s2 = "";
		for (i=d1; i < d1.setDate(d1.getDate() + stay1); i.setDate(i.getDate()+1) ) {
			s2 += (i.getDay()).toString() + '\n';
		}
		$(function() {
			$( "#lb_Stay" ).selectmenu({
				style: 'dropdown',
				menuWidth: 200,
				width: 160
			});
		});
		anrDisplayRefresh();
	}
}

function germanDate(str) {
	var vdate   = str.split('.');
    var y = parseFloat(vdate[2]);
    var m = parseFloat(vdate[1])-1;
    var t = parseFloat(vdate[0]);
    var d = new Date(y,m,t);    // Datum als Objekt setzen -- Jahr,monat,tag ..
	return d;	
}

function clk_pricelist(sa)
{
 document.getElementById('anr').value=sa;
 setze_datum();  // form kalender aktualisieren
 qTimeout = setTimeout(function() {datumDialog(); newPrice(pnr_id)},100);    // und XML-Query auf neues Datum auslösen
 return;
}

function newPrice(pnrid) {
	var stay, anr, pers, kids, params;
	var randomnumber;
	stay = document.getElementById("lb_Stay").value;
	//pers = document.getElementById("lb_Pers").value;
	pers = maxPers;
	kids = document.getElementById("lb_Kids").value;
	anr = document.getElementById("anr").value;
	randomnumber = Math.floor(Math.random()*1001);
	params = "randomnumber=" + randomnumber + "&pnrid=" + pnrid + "&lbStay=" + stay + "&lbPers=" + maxPers + "&lbKids=" + kids + "&s=" + anr;
	document.getElementById("antw").innerHTML = '';
	document.getElementById('bookLink').style.display="none";
	document.getElementById('bookLink2').style.display="none";
	req = false;
	if (window.XMLHttpRequest) {
			req = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
			req = new ActiveXObject("Microsoft.XMLHTTP");
	}
	req.onreadystatechange = function() { refreshPrice(); };
	req.open("get", '/xmlIbe/x_dynPreis.asp?'+params, true);
	req.send(null);
	document.getElementById("antw").innerHTML = document.getElementById("loadingGif").innerHTML;
	document.getElementById("antwDetailiert").innerHTML = document.getElementById("loadingGif").innerHTML;
	document.getElementById("antwExtra").innerHTML = '';
}

function changeBookURL() {
	var stay, anr, pers, kids, params;
	newBookURL = '';
	stay = document.getElementById("lb_Stay").value;
	pers = document.getElementById("lb_Pers").value;
	kids = document.getElementById("lb_Kids").value;
	anr = document.getElementById("anr").value;
	newBookURL = bookURL + '&datum=' + anr + '&dauer=' + stay + '&pers=' + pers + '&kids=' + kids + '&preis=' + preis + '&nebenkst=' + neben;
	$('#bookLink').click(function() { document.location.href = newBookURL; return false;});
	$('#bookLink2').click(function() { document.location.href = newBookURL; return false;});
}
function refreshPrice() {
var erg, s, s2, s3, datum;
	if (req.readyState == 4) {
		if (req.status == 200) {
			datum  = new Date(document.getElementById("anr").value);
			datum = germanDate(document.getElementById("anr").value);
			datum.setDate(datum.getDate() + parseInt(document.getElementById("lb_Stay").value));
			erg = eval(req.responseText);
			s3 = '';
			if (erg[0]==1) {
				document.getElementById('bookLink').style.display="inline";
				//document.getElementById('bookLink2').style.display="inline";
				//document.getElementById('vakButton').style.display="none";
				s = '';
				s2 = '';
				preis = erg[1];
				neben = erg[2];
				if (erg[4]!='' && erg[4]!='0') {
					s += "<strong>Reise:</strong> "+document.getElementById("anr").value + ' - ' + datum.getDate() + '.' + (datum.getMonth()+1) + '.' + datum.getFullYear() +"<br>";
					s2 += "<strong>Reise: </strong> "+document.getElementById("anr").value + ' - ' + datum.getDate() + '.' + (datum.getMonth()+1) + '.' + datum.getFullYear() +"<br>";
				}
				s += '<strong>Aktueller BestPreis: </strong><span id="preisSpan">' + preis + ' &euro;</span><br>';
				s2 += '<strong>Aktueller BestPreis: </strong> <span id="preisSpan">' + preis + ' &euro;</span><br>';
				s += '<img src="/xmlIbe/img/haken_gruen.gif" style="vertical-align: middle"><span style="color: green"> Frei</span><br>';
				s2 += '<img src="/xmlIbe/img/haken_gruen.gif" style="vertical-align: middle"><span style="color: green"> Frei</span>';
				if (erg[2]!='' && erg[2]!='0')
					s3 = "<strong>Nebenkosten: </strong>"+erg[2]+"<br>";				
				changeBookURL();
			}
			else {
				s = "<strong>Reise:</strong> "+document.getElementById("anr").value + ' - ' + datum.getDate() + '.' + (datum.getMonth()+1) + '.' + datum.getFullYear() +"<br>";
				s += '<img src="/xmlIbe/img/x_rot.png" style="vertical-align: middle"><span style="color:red;">Das Objekt ist zum angefragten Reisezeitraum leider nicht mehr verf&uuml;gbar.</span>';
				s2 = s;
				s += '<br>W&auml;hlen Sie einen anderen Termin bzw. eine andere Aufenthaltsdauer.';
				//document.getElementById('vakButton').style.display="inline";
			}
			document.getElementById("antw").innerHTML = s2;
			document.getElementById("antwDetailiert").innerHTML = s;
			document.getElementById("antwExtra").innerHTML = s3;
			req = false;
		}
		else
		{
			req = false;
		}
		document.getElementById("loadingGif").style.display="none";
	}
}	

function newDatumDialog() {
	datumDialog(); 
	angabeButton(); 
	//$(this).blur();
	if (!geprueft) newPrice(pnr_id); 
	geprueft = true; 
	return false;
}

function anreiseDatenInit() {
var datum, s;
	datum = germanDate(document.getElementById("anr").value);
	datum.setDate(datum.getDate() + parseInt(document.getElementById("lb_Stay").value));
	s = "<strong>Reise: </strong> "+document.getElementById("anr").value + ' - ' + datum.getDate() + '.' + (datum.getMonth()+1) + '.' + datum.getFullYear() +"<br>";
	s += '<img src="/xmlIbe/img/kalender.png" style="vertical-align: middle; cursor: pointer" onclick="newDatumDialog();"> Nicht gepr&uuml;ft<br>';
	document.getElementById('antw').innerHTML = s;
	document.getElementById('antwDetailiert').innerHTML = s;
}

function initialize(adress) {
    geocoder = new google.maps.Geocoder();
    var myOptions = {
	  scrollwheel:false,
      zoom: 12,
      mapTypeId: google.maps.MapTypeId.HYBRID
    };
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
	codeAddress(adress);

  }

  function codeAddress(adress) {
    var address = adress;
    if (geocoder) {
      geocoder.geocode( { 'address': address}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
		  map.setCenter(results[0].geometry.location);
          var marker = new google.maps.Marker({
              map: map,
              position: results[0].geometry.location
          });
        } else {
			document.getElementById("map_canvas").style.display = 'none';
        }
      });
    }
  }
  function getOrtBeschreibung(reg,ort)
{	
	if (!ortBescGeladen) {
		reqOrtBeschreibung = false;
		if (window.XMLHttpRequest) {
				reqOrtBeschreibung = new XMLHttpRequest();
		} else if (window.ActiveXObject) {
				reqOrtBeschreibung = new ActiveXObject("Microsoft.XMLHTTP");
		}
		reqOrtBeschreibung.onreadystatechange = function() { zeigeOrtBeschreibung(); };
		reqOrtBeschreibung.open("get", '/xmlIbe/x_objekt_ortbes.asp?reg=' + reg + '&ort=' + ort, true);
		reqOrtBeschreibung.send(null);    
	}
}

function zeigeOrtBeschreibung() {
	if(reqOrtBeschreibung.readyState == 4)
    {     
        if(reqOrtBeschreibung.status == 200)
        {  
			document.getElementById('ortBeschreibungDyn').innerHTML = reqOrtBeschreibung.responseText;
			ortBescGeladen = true;
			initialize(document.getElementById('mapAdress').innerHTML);
        }		
		else {
			//
		}
		reqOrtBeschreibung = false;
	}
}

function reiter(div) {
		document.getElementById('preisliste').style.display='none'; 
		document.getElementById('detailAnzeige').style.display='none'; 
		document.getElementById('ortBeschreibungDyn').style.display='none'; 

		document.getElementById(div).style.display='block';  
		if (div=='detailAnzeige'&&(!schalter)) {
			ladeBilder();
		}
		if (div=='detailAnzeige')
			document.getElementById('reiter').style.backgroundImage = "url('/xmlIbe/img/buttons/03bn_reiter1.jpg')";
		if (div=='preisliste')
			document.getElementById('reiter').style.backgroundImage = "url('/xmlIbe/img/buttons/03bn_reiter2.jpg')";
		if (div=='ortBeschreibungDyn')
			document.getElementById('reiter').style.backgroundImage = "url('/xmlIbe/img/buttons/03bn_reiter3.jpg')";
}

function ladeBilder() {
	if (anzBilder>0) {
			startT = 0;
			if (anzBilder>anzTh) {
				endT = anzTh-1;
			}
			else {
				endT = anzBilder-1;
			}
			imgHover(document.getElementById('thumb_0'),0);
			schalter = true;
	}
	return 0;
}
	
function initBilder() {
	return 0;
	maxH = 0;
	maxB = 0;
	startT = 0;
	for (i=0;i<anzBilder;i++) {
		th = document.getElementById('thumb_'+i);
		if (th.width>300) {
			th.height = 300/(th.width/th.height);
			th.width = 300;
		}
		if (th.height>250) { //580 alt
			th.width = 250*(th.width/th.height);
			th.height = 250;
		}
		thGrB[i] = th.width;
		thGrH[i] = th.height;
		if (thGrB[i]>maxB) 
			maxB = thGrB[i];
		if (thGrH[i]>maxH) 
			maxH = thGrH[i];
	}
	for (i=0;i<anzBilder;i++) {
		th = document.getElementById('thumb_'+i);
		if (th.height>maxH) { //580 alt
			th.width = maxH*(th.width/th.height);
			th.height = maxH;
			thGrB[i] = th.width;
			thGrH[i] = th.height;
		}
		th.width = 72;
		th.height = 60;
	}
	document.getElementById('bild_gross').width = thGrB[0];
	document.getElementById('bild_gross').height = thGrH[0];
	if (anzBilder>anzTh) {
		for (i=anzTh;i<anzBilder;i++) {
			th = document.getElementById('thumb_'+i);
			th.style.display = 'none';
		}
		endT = anzTh-1;
	}
	else {
		endT = anzBilder-1;
	}
	document.getElementById('ladeBilderGif').style.display = 'none';
	document.getElementById('detail_bilder').style.visibility = 'visible';
	schalter = true;
	return 0;
}

function imgHover(thumb,ix){
	if (anzBilder>0) {
		var maxHoch = 250;
		var maxBreit = 300;
		var div = document.getElementById('bgG');		
		div.innerHTML = '<img id="bild_gross" src="' + thumb.src + '"></div>';		
		$('#galleryToolTip').click(function () { fancyBoxNew(ix); });
		$('#bild_gross_div').click (function () { fancyBoxNew(ix); });
		var bild = document.getElementById('bild_gross');
		bild.style.visibility = 'hidden';
		if (bild.height>maxHoch) {
			bild.width = maxHoch*(bild.width/bild.height);
			bild.height = maxHoch;
		}
		if (bild.width > maxBreit) {
			bild.height = maxBreit/(bild.width/bild.height);
			bild.width = maxBreit;
		}
		bild.style.visibility = 'visible';
	}
}

function scrollRechts() {
	if (anzBilder>anzTh) {
		if (endT+1<anzBilder) {
			for (i=startT;i<endT+1;i++) {
				document.getElementById('thumb_'+i).style.display = 'none';
			}
			startT = endT + 1;
			if (startT+anzTh-1<anzBilder) {
				endT = startT + anzTh-1;
			}
			else {
				endT = anzBilder-1;
			}
			for (i=startT;i<endT+1;i++) {
				document.getElementById('thumb_'+i).style.display = 'inline';
			}
			if (endT+1<anzBilder) 
				document.getElementById('arrowR').src = '/xmlIbe/img/buttons/03bn_right_A.GIF';
			else
				document.getElementById('arrowR').src = '/xmlIbe/img/buttons/03bn_left_P.GIF';
			if (startT>0) 
				document.getElementById('arrowL').src = '/xmlIbe/img/buttons/03bn_left_A.GIF';
			else
				document.getElementById('arrowL').src = '/xmlIbe/img/buttons/03bn_left_P.GIF';
		}
	}
}

function scrollLinks() {
	if (anzBilder>anzTh) {
		if (startT>0) {
			for (i=startT;i<endT+1;i++) {
				document.getElementById('thumb_'+i).style.display = 'none';
			}
			endT = startT - 1;
			startT = startT - anzTh;
			for (i=startT;i<endT+1;i++) {
				document.getElementById('thumb_'+i).style.display = 'inline';
			}
			if (startT>0) 
				document.getElementById('arrowL').src = '/xmlIbe/img/buttons/03bn_left_A.GIF';
			else
				document.getElementById('arrowL').src = '/xmlIbe/img/buttons/03bn_left_P.GIF';
			if (endT+1<anzBilder) 
				document.getElementById('arrowR').src = '/xmlIbe/img/buttons/03bn_right_A.GIF';
			else
				document.getElementById('arrowR').src = '/xmlIbe/img/buttons/03bn_left_P.GIF';
		}
	}
}

function favSave(pnrid) {
	reqFav = false;
	if (window.XMLHttpRequest) {
			reqFav = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
			reqFav = new ActiveXObject("Microsoft.XMLHTTP");
	}
	reqFav.onreadystatechange = function() { 
		if (reqFav.readyState == 4){ 
			if (reqFav.status == 200) {
				$('#merkzettel-loader').css('display', 'none');
				$('#merkzettel-mitteilung').css('display', 'inline');
			}
			reqFav = false;
		}
	};
	reqFav.open("get", '/xmlIbe/x_addfav_neu.asp?' + 'random=' + Math.floor(Math.random()*1001) + favURL, true);
	reqFav.send(null);
	$('#merkzettel-loader').css('display', 'inline');
	$('#merkzettel-speichern').css('display', 'none');
	return 0;
}


function anrDisplayRefresh() {
	//document.getElementById('anrDisplay').value = document.getElementById('wota').value + ' ' + document.getElementById('anr').value;
	document.getElementById('anrDisplay').value = document.getElementById('anr').value;
}

function showGalleryToolTip() {
	$('#galleryToolTip').css('display', 'block');
}

function hideGalleryToolTip() {
	$('#galleryToolTip').css('display', 'none');
}
