/* 
	XmlHttpRequest Wrapper
	Version 1.2.2
	29 Jul 2005 
	adamv.com/dev/
*/

var Http = {
	ReadyState: {
		Uninitialized: 0,
		Loading: 1,
		Loaded:2,
		Interactive:3,
		Complete: 4
	},
		
	Status: {
		OK: 200,
		
		Created: 201,
		Accepted: 202,
		NoContent: 204,
		
		BadRequest: 400,
		Forbidden: 403,
		NotFound: 404,
		Gone: 410,
		
		ServerError: 500
	},
		
	Cache: {
		Get: 1,
		GetCache: 2,
		GetNoCache: 3,
		FromCache: 4
	},
	
	Method: {Get: "GET", Post: "POST", Put: "PUT", Delete: "DELETE"},
	
	enabled: false,
	logging: true,
	_get: null,	// Reference to the XmlHttpRequest object
	_cache: new Object(),
	
	Init: function(){
		Http._get = Http._getXmlHttp()
		Http.enabled = (Http._get != null)
		Http.logging = (window.Logging != null);
	},
	
	_getXmlHttp: function(){
	/*@cc_on @*//*@if (@_jscript_version >= 5)
		try { return new ActiveXObject("Msxml2.XMLHTTP"); } 
		catch (e) {} 
		try { return new ActiveXObject("Microsoft.XMLHTTP"); } 
		catch (e) {} 
	@end @*/
		try { return new XMLHttpRequest();}
		catch (e) {}

		return null;
	},

/*
	Params:
		url: The URL to request. Required.
		cache: Cache control. Defaults to Cache.Get.
		callback: onreadystatechange function, called when request is completed. Optional.
		method: HTTP method. Defaults to Method.Get.
*/
	get: function(params, callback_args){	
		if (!Http.enabled) throw "Http: XmlHttpRequest not available.";
		
		var url = params.url;
		if (!url) throw "Http: A URL must be specified";
				
		var cache = params.cache || Http.Cache.Get;
		var method = params.method || Http.Method.Get;
		var callback = params.callback;
		
		if ((cache == Http.Cache.FromCache) || (cache == Http.Cache.GetCache))
		{
			var in_cache = Http.from_cache(url, callback, callback_args)

			if (Http.logging){
				Logging.log(["Http: URL in cache: " + in_cache]);
			}

			if (in_cache || (cache == Http.Cache.FromCache)) return in_cache;
		}
		
		if (cache == Http.Cache.GetNoCache)
		{
			var sep = (-1 < url.indexOf("?")) ? "&" : "?"	
			url = url + sep + "__=" + encodeURIComponent((new Date()).getTime());
		}
	
		// Only one request at a time, please
		if ((Http._get.readyState != Http.ReadyState.Uninitialized) && 
			(Http._get.readyState != Http.ReadyState.Complete)){
			this._get.abort();
			
			if (Http.logging){
				Logging.log(["Http: Aborted request in progress."]);
			}
		}
		
		Http._get.open(method, url, true);

		Http._get.onreadystatechange =  function() {
			if (Http._get.readyState != Http.ReadyState.Complete) return;
			
			if (Http.logging){
				Logging.log(["Http: Returned, status: " + Http._get.status]);
			}

			if ((cache == Http.Cache.GetCache) && (Http._get.status == Http.Status.OK)){
				Http._cache[url] = Http._get.responseText;
			}
			
			if (callback_args == null) callback_args = new Array();

			var cb_params = new Array();
			cb_params.push(Http._get);
			for(var i=0;i<callback_args.length;i++)
				cb_params.push(callback_args[i]);
				
			callback.apply(null, cb_params);
		}
		
		if(Http.logging){
			Logging.log(["Http: Started\n\tURL: " + url + "\n\tMethod: " + method + "; Cache: " + Hash.keyName(Http.Cache,cache)])
		}
		
		Http._get.send(params.body || null);
	},
	
	from_cache: function(url, callback, callback_args){
		var result = Http._cache[url];
		
		if (result != null) {
			var response = new Http.CachedResponse(result)
			
			var cb_params = new Array();
			cb_params.push(response);
			for(var i=0;i<callback_args.length;i++)
				cb_params.push(callback_args[i]);
							
			callback.apply(null, cb_params);
				
			return true
		}
		else
			return false
	},
	
	clear_cache: function(){
		Http._cache = new Object();
	},
	
	is_cached: function(url){
		return Http._cache[url]!=null;
	},
	
	CachedResponse: function(response) {
		this.readyState = Http.ReadyState.Complete
		this.status = Http.Status.OK
		this.responseText = response
	}	
}

Http.Init()

function json_response(response){
	var js = response.responseText;
	try{
		return eval(js); 
	} catch(e){
		if (Http.logging){
			Logging.logError(["json_response: " + e]);
		}
		else{
			alert("Error: " + e + "\n" + js);
		}
		return null;
	}
}

function getResponseProps(response, header){
	try {
		var s = response.getResponseHeader(header || 'X-Ajax-Props');
		if (s==null || s=="")
			return new Object()
		else
			return eval("o="+s)
	} catch (e) { return new Object() }
}

function handleOnChange(dd1)
{
  var idx = dd1.selectedIndex;
  var val = dd1[idx].value;
  var par = document.forms["frmSelect"];
  var parelmts = par.elements;
  var prezsel = parelmts["country"];
  var country = val;
  if (country != "Select country")
  {
 	Http.get({
		url: "/ajax/list-countries/"+ country,
		callback: fillPrez,
		cache: Http.Cache.Get
	}, [prezsel]);
  }
}

function handleOnCChange(dd1)
{
  var idx = dd1.selectedIndex;
  var val = dd1[idx].value;
  var par = document.forms["frmSelect"];
  var parelmts = par.elements;
  var prezsel = parelmts["region"];
  var country = val;
  if (country != "Select country")
  {
 	Http.get({
		url: "/ajax/list-regions/"+ country,
		callback: fillPrez,
		cache: Http.Cache.Get
	}, [prezsel]);
  }
}

function handleOnRChange(dd1)
{
  var idx = dd1.selectedIndex;
  var val = dd1[idx].value;
  var par = document.forms["frmSelect"];
  var parelmts = par.elements;
  var prezsel = parelmts["subregion"];
  var reg = val;
  if (reg != "Select country")
  {
 	Http.get({
		url: "/ajax/list-subregions/"+ reg,
		callback: fillPrez,
		cache: Http.Cache.Get
	}, [prezsel]);
  }
}

function fillPrez(xmlreply, prezelmt)
{
  if (xmlreply.status == Http.Status.OK)
  {
    var prezresponse = xmlreply.responseText;
    var prezar = prezresponse.split("|");
	
    prezelmt.length = 1;
    prezelmt.length = prezar.length;
    for (o=1; o < prezar.length; o++)
    {
		var hehe = prezar[o].split("#");
    	//prezelmt[o].text = prezar[o];
		prezelmt[o].text = hehe[0];
		prezelmt[o].value = hehe[1];
    }
  }
  else
  {
    alert("Cannot handle the AJAX call.");
  }
}


/* Check Inserieren Formular */

function checkContactForm(){
	var errstring = "";
	var errstring2 = "";
	var errstring3 = "";

	if(document.cform.k_vorname.value == "")  errstring = errstring + "- Name\n"; 
	if(document.cform.k_email.value == "")  errstring = errstring + "- E-Mail\n";
	if(document.cform.k_text.value == "")  errstring = errstring + "- Nachricht\n";

	if(errstring != ""){
		errstring = "Folgende Felder müssen noch ausgefüllt werden:\n\n" + errstring;
		alert(errstring);
		return false;
	}
	else
	{
		return true;
	}
}

function checkIns(){
	var errstring = "";
	var errstring2 = "";
	var errstring3 = "";
//	alert(document.frmSelect.a_regi.options[document.frmSelect.a_regi.selectedIndex].value); 
//	return false;
	if(document.frmSelect.n_name.value == "")  errstring = errstring + "- Titel\n"; 
	if(document.frmSelect.n_desc.value == "")  errstring = errstring + "- Beschreibung\n";
	if(document.frmSelect.n_sdesc.value == "")  errstring = errstring + "- Kurzbeschreibung\n";
	if(document.frmSelect.n_kont.options[document.frmSelect.n_kont.selectedIndex].value == "")  errstring = errstring + "- Kontinent\n";
	if(document.frmSelect.prez.options[document.frmSelect.prez.selectedIndex].value == "")  errstring = errstring + "- Land\n";
	if(document.frmSelect.a_regi.options[document.frmSelect.a_regi.selectedIndex].value == "")  errstring = errstring + "- Region\n";	
	if(document.frmSelect.n_plz.value == "")  errstring = errstring + "- PLZ\n";		
	if(document.frmSelect.n_ort.value == "")  errstring = errstring + "- Ort\n";
	if(document.frmSelect.n_flaeche.value == "")  errstring = errstring + "- Fläche ab\n";				
	if(document.frmSelect.n_cbetten.value == "")  errstring = errstring + "- Betten ab\n";					
	if(document.frmSelect.n_mieteab.value == "")  errstring = errstring + "- Miete ab\n";				
	if(document.frmSelect.n_sdesc.value.length < 50) errstring2 = errstring2 + "- Kurzbeschreibung: mindestens 50 Zeichen\n";
	if(document.frmSelect.n_sdesc.value.length > 150) errstring2 = errstring2 + "- Kurzbeschreibung: höchstens 150 Zeichen\n";	
	if(document.frmSelect.n_desc.value.length > 1000) errstring2 = errstring2 + "- Immobilien Beschreibung: höchstens 1000 Zeichen\n";
	if(!isvalidnumer(document.frmSelect.n_flaeche.value))  errstring3 = errstring3 + "- Fläche\n";				
	if(!isvalidnumer(document.frmSelect.n_czimmer.value))  errstring3 = errstring3 + "- Anzahl Zimmer\n";				
	if(!isvalidnumer(document.frmSelect.n_trainsentf.value))  errstring3 = errstring3 + "- Entfernung Bahnhof\n";				
	if(!isvalidnumer(document.frmSelect.n_entfair.value))  errstring3 = errstring3 + "- Entfernung Flughafen\n";				
	if(!isvalidnumer(document.frmSelect.n_hstreetentf.value))  errstring3 = errstring3 + "- Entfernung Hauptraße\n";					
	if(!isvalidnumer(document.frmSelect.n_shopsentf.value))  errstring3 = errstring3 + "- Entfernung Geschäfte\n";					
	if(!isvalidnumer(document.frmSelect.n_mieteab.value))  errstring3 = errstring3 + "- Miete ab\n";						
	if(!isvalidnumer(document.frmSelect.n_kendr.value))  errstring3 = errstring3 + "- Kosten für Endreinigung\n";						
	if(errstring != ""){
		errstring = "Folgende Felder müssen noch ausgefüllt werden:\n\n" + errstring;
		alert(errstring);
		return false;
	} else {
		if(errstring2 != ""){
			errstring2 = "Folgende Felder müssen noch korrigiert werden:\n\n" + errstring2;
			alert(errstring2);
			return false;
		} else {
			if(errstring3 != ""){
				alert("Bitte nur Zahlen verwenden: \n\n" + errstring3);
				return false;
			} else {
				return true;
			}
		}
	}
}

function checkEd(){
	var errstring = "";
	var errstring2 = "";
	var errstring3 = "";
//	alert(document.frmSelect.a_regi.options[document.frmSelect.a_regi.selectedIndex].value); 
//	return false;
	if(document.frmSelect.n_name.value == "")  errstring = errstring + "- Titel\n"; 
	if(document.frmSelect.n_desc.value == "")  errstring = errstring + "- Beschreibung\n";
	if(document.frmSelect.n_sdesc.value == "")  errstring = errstring + "- Kurzbeschreibung\n";
	if(document.frmSelect.n_plz.value == "")  errstring = errstring + "- PLZ\n";		
	if(document.frmSelect.n_ort.value == "")  errstring = errstring + "- Ort\n";
	if(document.frmSelect.n_flaeche.value == "")  errstring = errstring + "- Fläche ab\n";				
	if(document.frmSelect.n_cbetten.value == "")  errstring = errstring + "- Betten ab\n";					
	if(document.frmSelect.n_mieteab.value == "")  errstring = errstring + "- Miete ab\n";				
	if(document.frmSelect.n_sdesc.value.length < 50) errstring2 = errstring2 + "- Kurzbeschreibung: mindestens 50 Zeichen\n";
	if(document.frmSelect.n_sdesc.value.length > 150) errstring2 = errstring2 + "- Kurzbeschreibung: höchstens 150 Zeichen\n";	
	if(document.frmSelect.n_desc.value.length > 1000) errstring2 = errstring2 + "- Immobilien Beschreibung: höchstens 1000 Zeichen\n";	
	if(!isvalidnumer(document.frmSelect.n_flaeche.value))  errstring3 = errstring3 + "- Fläche\n";				
	if(!isvalidnumer(document.frmSelect.n_czimmer.value))  errstring3 = errstring3 + "- Anzahl Zimmer\n";				
	if(!isvalidnumer(document.frmSelect.n_entfair.value))  errstring3 = errstring3 + "- Entfernung Flughafen\n";					
	if(!isvalidnumer(document.frmSelect.n_trainsentf.value))  errstring3 = errstring3 + "- Entfernung Bahnhof\n";				
	if(!isvalidnumer(document.frmSelect.n_hstreetentf.value))  errstring3 = errstring3 + "- Entfernung Hauptraße\n";					
	if(!isvalidnumer(document.frmSelect.n_shopsentf.value))  errstring3 = errstring3 + "- Entfernung Geschäfte\n";					
	if(!isvalidnumer(document.frmSelect.n_mieteab.value))  errstring3 = errstring3 + "- Miete ab\n";						
	if(!isvalidnumer(document.frmSelect.n_kendr.value))  errstring3 = errstring3 + "- Kosten für Endreinigung\n";						
	if(errstring != ""){
		errstring = "Folgende Felder müssen noch ausgefüllt werden:\n\n" + errstring;
		alert(errstring);
		return false;
	} else {
		if(errstring2 != ""){
			errstring2 = "Folgende Felder müssen noch ausgefüllt werden:\n\n" + errstring2;
			alert(errstring2);
			return false;
		} else {
			if(errstring3 != ""){
				alert("Bitte nur Zahlen verwenden: \n\n" + errstring3);
				return false;
			} else {
				return true;
			}
		}
	}
}

function zaehlen(pVal,textar,countfield) {
 max = pVal;
 //alert (textar);
 anz = textar.value.length+1;
 countfield.value = max - anz;
 if(anz > max){
	textar.value = textar.value.substring(0,pVal);
  }
 }
 
 
 function clearField(obj){
	 obj.value="";
  }
  
  
function jspopup(link){
var b=900
var h=600
var l=(screen.width-b)/2;
var t=(screen.height-h)/5;
window.open(link,'','toolbar=0,left='+l+',top='+t+',location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,dependent=1,width='+b+',height='+h);
}
function jspopup2(b,h,link){
var l=(screen.width-b)/2;
var t=(screen.height-h)/2;
window.open(link,'','toolbar=0,left='+l+',top='+t+',location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,dependent=1,width='+b+',height='+h);
}

function txtOnBlur() {
	if (this.value == '')
	this.value = this.defaultValue;
	if (this.id=='loginpassword'){
		this.type= 'password';
	}
}

function txtOnFocus() {
	if (this.value == this.defaultValue)
	//this.type = text;
	this.value = '';
	if (this.id=='loginpassword'){
		this.type= 'password';
	}
}

function delete_saisonpr(id, obj) {
	if(confirm('Sind Sie sicher?')){
		window.location.href = "delsaisonpreis.php?id="+ id +"&obj=" + obj;
	}
}

function donuffing(id){
	window.location.href = "index.php?d=zentrum&id=" + id + "&s=saisonpreise&mode=admin";
}

function sleep(){
	return;
}

function isvalidnumer($val){
	$val = js_str_replace($val, ",", ".");
	if($val != "" && isNaN($val)){
		return false;					   
	} else {
		return true;	
	}
	
}

function js_str_replace(QuellText, SuchText, ErsatzText)
        {   // Erstellt von Ralf Pfeifer
            // Fehlerpruefung
            if ((QuellText == null) || (SuchText == null))           { return null; }
            if ((QuellText.length == 0) || (SuchText.length == 0))   { return QuellText; }

            // Kein ErsatzText ?
            if ((ErsatzText == null) || (ErsatzText.length == 0))    { ErsatzText = ""; }

            var LaengeSuchText = SuchText.length;
            var LaengeErsatzText = ErsatzText.length;
            var Pos = QuellText.indexOf(SuchText, 0);

            while (Pos >= 0)
            {
                QuellText = QuellText.substring(0, Pos) + ErsatzText + QuellText.substring(Pos + LaengeSuchText);
                Pos = QuellText.indexOf(SuchText, Pos + LaengeErsatzText);
            }
            return QuellText;
        } // -->

