function prepare4url(str) {
	if(typeof(str) == 'undefined') {
		var str = '';
	}
	str = str.replace("&Auml;", "Ä");
	str = str.replace("&Ouml;", "Ö");
	str = str.replace("&Uuml;", "Ü");
	str = str.replace("&auml;", "ä");
	str = str.replace("&ouml;", "ö");
	str = str.replace("&uuml;", "ü");
	str = str.replace("&szlig;", "ß");

	str = str.replace(/&quot;/g, "");
	str = str.replace(/"/g, "");
	str = str.replace(/'/g, "");

	str = str.replace(/\s/g, "-"); // Alle Whitespace-Zeichen ersetzen
	str = str.replace(/Ü-/g, "UE-");
	str = str.replace(/Ö-/g, "OE-");
	str = str.replace(/Ä-/g, "AE-");
	str = str.replace(/Ü/g, "Ue");
	str = str.replace(/Ö/g, "Oe");
	str = str.replace(/Ä/g, "Ae");
	str = str.replace(/ü/g, "ue");
	str = str.replace(/ö/g, "oe");
	str = str.replace(/ä/g, "ae");
	str = str.replace(/ß/g, "ss");
	str = str.replace(/\-/g, "_"); // "-" in "_" konvertieren, um vom nächsten RegExp nicht erfasst zu werden
	str = str.replace(/\W/g, ""); // Alle Zeichen ersetzen, die nicht alphanumerisch oder "_" sind
	str = str.replace(/_/g, "-"); // "_" wieder in "-" konvertieren
	str = str.replace(/\-+/g, "-"); // Alle "-" die mehrfach hintereinander vorkommen vereinigen
	return str;
}

function empty(str) {
	if(str === undefined || str === null || str == "") {
		return true;
	}
	return false;
}

function number_format (number, decimals, dec_point, thousands_sep) {
    // Formats a number with grouped thousands
    var n = number, prec = decimals;

    var toFixedFix = function (n,prec) {
        var k = Math.pow(10,prec);
        return (Math.round(n*k)/k).toString();
    };

    n = !isFinite(+n) ? 0 : +n;
    prec = !isFinite(+prec) ? 0 : Math.abs(prec);
    var sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep;
    var dec = (typeof dec_point === 'undefined') ? '.' : dec_point;

    var s = (prec > 0) ? toFixedFix(n, prec) : toFixedFix(Math.round(n), prec); //fix for IE parseFloat(0.55).toFixed(0) = 0;

    var abs = toFixedFix(Math.abs(n), prec);
    var _, i;

    if (abs >= 1000) {
        _ = abs.split(/\D/);
        i = _[0].length % 3 || 3;

        _[0] = s.slice(0,i + (n < 0)) +
              _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
        s = _.join(dec);
    } else {
        s = s.replace('.', dec);
    }

    var decPos = s.indexOf(dec);
    if (prec >= 1 && decPos !== -1 && (s.length-decPos-1) < prec) {
        s += new Array(prec-(s.length-decPos-1)).join(0)+'0';
    }
    else if (prec >= 1 && decPos === -1) {
        s += dec+new Array(prec).join(0)+'0';
    }
    return s;
}

function count(arr) {
	var j = 0; for(var i in arr) j++; return j;
}

function ajax_request(file, method, cb_function) {
	var xmlHttp = null;
	// Mozilla, Opera, Safari sowie Internet Explorer 7
	if (typeof XMLHttpRequest != 'undefined') {
		xmlHttp = new XMLHttpRequest();
	}
	if (!xmlHttp) {
		// Internet Explorer 6 und älter
		try {
			xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				xmlHttp  = null;
			}
		}
	}
	if (xmlHttp) {
		xmlHttp.open(method, file, true);
		xmlHttp.onreadystatechange = function () {
			if (xmlHttp.readyState == 4) {
				if(!empty(xmlHttp.responseText)) {
					res = eval("("+xmlHttp.responseText+")");
					eval(cb_function+"(res);");
				}
			}
		};
		xmlHttp.send(null);
	}
}

function url_encode(url) {
	// Workaround mod_rewrite Bug, siehe äquivalente php Funktion
	
	url = url.replace(' & ', ' and ');
	url = url.replace('/', '-'); // server scheint die urlcodierung von / (%2F) nicht zu mögen... dirty fix
	url = encodeURI(url);

	return url;
}

function trim (zeichenkette) {
	  // Erst führende, dann Abschließende Whitespaces entfernen
	  // und das Ergebnis dieser Operationen zurückliefern
	  return zeichenkette.replace (/^\s+/, '').replace (/\s+$/, '');
}

function getPicPath($auftragsID,$fotoID,$fotoArt,$fotoformat) {
	$pfad = 'http://bilder2.ladies.de/Bilder/';
	//$pfad = '/bilder/';
	var $AID = "" + $auftragsID;
	var $pic_ordner = $AID.substr($AID.length - 3);
	$fotoArt = $fotoArt.toUpperCase();
	$fotoformat = $fotoformat.toUpperCase();
	return $pfad + $pic_ordner + '/' + $auftragsID + '-' + $fotoArt + $fotoID + '.' + $fotoformat;
}

function htmlentities (string, quote_style, charset, double_encode) {
    var hash_map = this.get_html_translation_table('HTML_ENTITIES', quote_style),
        symbol = '';
    string = string == null ? '' : string + '';

    if (!hash_map) {
        return false;
    }
    
    if (quote_style && quote_style === 'ENT_QUOTES') {
        hash_map["'"] = '&#039;';
    }
    
    if (!!double_encode || double_encode == null) {
        for (symbol in hash_map) {
            if (hash_map.hasOwnProperty(symbol)) {
                string = string.split(symbol).join(hash_map[symbol]);
            }
        }
    } else {
        string = string.replace(/([\s\S]*?)(&(?:#\d+|#x[\da-f]+|[a-zA-Z][\da-z]*);|$)/g, function (ignore, text, entity) {
            for (symbol in hash_map) {
                if (hash_map.hasOwnProperty(symbol)) {
                    text = text.split(symbol).join(hash_map[symbol]);
                }
            }
            
            return text + entity;
        });
    }

    return string;
}
