function str_replace(search, replace, subject) { return subject.split(search).join(replace); } function trim(str) { return str.replace(/^\s+|\s+$/g,""); } function urlencode_string( estring ) { hex = '0123456789ABCDEF'; encString = ''; e_char = ''; e_len = estring.length; for( e_i = 0; e_i < e_len; e_i++ ) { e_char = parseInt( estring.charCodeAt( e_i ) ); encString += '%' + hex.charAt( (e_char >> 4) % 16 ) + hex.charAt( e_char % 16 ); } return encString; } function sprintf( ) { // http://kevin.vanzonneveld.net // + original by: Ash Searle (http://hexmen.com/blog/) // + namespaced by: Michael White (http://getsprink.com) // + tweaked by: Jack // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + input by: Paulo Ricardo F. Santos // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + input by: Brett Zamir // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // * example 1: sprintf("%01.2f", 123.1); // * returns 1: 123.10 // * example 2: sprintf("[%10s]", 'monkey'); // * returns 2: '[ monkey]' // * example 3: sprintf("[%'#10s]", 'monkey'); // * returns 3: '[####monkey]' var regex = /%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuidfegEG])/g; var a = arguments, i = 0, format = a[i++]; // pad() var pad = function(str, len, chr, leftJustify) { if (!chr) chr = ' '; var padding = (str.length >= len) ? '' : Array(1 + len - str.length >>> 0).join(chr); return leftJustify ? str + padding : padding + str; }; // justify() var justify = function(value, prefix, leftJustify, minWidth, zeroPad, customPadChar) { var diff = minWidth - value.length; if (diff > 0) { if (leftJustify || !zeroPad) { value = pad(value, minWidth, customPadChar, leftJustify); } else { value = value.slice(0, prefix.length) + pad('', diff, '0', true) + value.slice(prefix.length); } } return value; }; // formatBaseX() var formatBaseX = function(value, base, prefix, leftJustify, minWidth, precision, zeroPad) { // Note: casts negative numbers to positive ones var number = value >>> 0; prefix = prefix && number && {'2': '0b', '8': '0', '16': '0x'}[base] || ''; value = prefix + pad(number.toString(base), precision || 0, '0', false); return justify(value, prefix, leftJustify, minWidth, zeroPad); }; // formatString() var formatString = function(value, leftJustify, minWidth, precision, zeroPad, customPadChar) { if (precision != null) { value = value.slice(0, precision); } return justify(value, '', leftJustify, minWidth, zeroPad, customPadChar); }; // doFormat() var doFormat = function(substring, valueIndex, flags, minWidth, _, precision, type) { var number; var prefix; var method; var textTransform; var value; if (substring == '%%') return '%'; // parse flags var leftJustify = false, positivePrefix = '', zeroPad = false, prefixBaseX = false, customPadChar = ' '; var flagsl = flags.length; for (var j = 0; flags && j < flagsl; j++) switch (flags.charAt(j)) { case ' ': positivePrefix = ' '; break; case '+': positivePrefix = '+'; break; case '-': leftJustify = true; break; case "'": customPadChar = flags.charAt(j+1); break; case '0': zeroPad = true; break; case '#': prefixBaseX = true; break; } // parameters may be null, undefined, empty-string or real valued // we want to ignore null, undefined and empty-string values if (!minWidth) { minWidth = 0; } else if (minWidth == '*') { minWidth = +a[i++]; } else if (minWidth.charAt(0) == '*') { minWidth = +a[minWidth.slice(1, -1)]; } else { minWidth = +minWidth; } // Note: undocumented perl feature: if (minWidth < 0) { minWidth = -minWidth; leftJustify = true; } if (!isFinite(minWidth)) { throw new Error('sprintf: (minimum-)width must be finite'); } if (!precision) { precision = 'fFeE'.indexOf(type) > -1 ? 6 : (type == 'd') ? 0 : void(0); } else if (precision == '*') { precision = +a[i++]; } else if (precision.charAt(0) == '*') { precision = +a[precision.slice(1, -1)]; } else { precision = +precision; } // grab value using valueIndex if required? value = valueIndex ? a[valueIndex.slice(0, -1)] : a[i++]; switch (type) { case 's': return formatString(String(value), leftJustify, minWidth, precision, zeroPad, customPadChar); case 'c': return formatString(String.fromCharCode(+value), leftJustify, minWidth, precision, zeroPad); case 'b': return formatBaseX(value, 2, prefixBaseX, leftJustify, minWidth, precision, zeroPad); case 'o': return formatBaseX(value, 8, prefixBaseX, leftJustify, minWidth, precision, zeroPad); case 'x': return formatBaseX(value, 16, prefixBaseX, leftJustify, minWidth, precision, zeroPad); case 'X': return formatBaseX(value, 16, prefixBaseX, leftJustify, minWidth, precision, zeroPad).toUpperCase(); case 'u': return formatBaseX(value, 10, prefixBaseX, leftJustify, minWidth, precision, zeroPad); case 'i': case 'd': { number = parseInt(+value); prefix = number < 0 ? '-' : positivePrefix; value = prefix + pad(String(Math.abs(number)), precision, '0', false); return justify(value, prefix, leftJustify, minWidth, zeroPad); } case 'e': case 'E': case 'f': case 'F': case 'g': case 'G': { number = +value; prefix = number < 0 ? '-' : positivePrefix; method = ['toExponential', 'toFixed', 'toPrecision']['efg'.indexOf(type.toLowerCase())]; textTransform = ['toString', 'toUpperCase']['eEfFgG'.indexOf(type) % 2]; value = prefix + Math.abs(number)[method](precision); return justify(value, prefix, leftJustify, minWidth, zeroPad)[textTransform](); } default: return substring; } }; return format.replace(regex, doFormat); } function preloadImages( objScroller, strSelector, objPics) { var $objScroller = objScroller; var aLoadedPics = []; var isScrolled = false; var ptRightBorder = $objScroller.offset().left + $objScroller.width() + 260; ///////////////////////////////////////////// // onDemand-Pic-Loader $objScroller.bind("scroll", function(event) { isScrolled = true; $('img[id^="'+strSelector+'"]').each(function(key, value){ var nPos = jQuery.inArray(value.id, aLoadedPics); if (nPos == -1) { aLoadedPics.push(value.id); $(this).load(function () { // Das erzeugte Bild ausblenden $(this).hide(); // Das Bild einblenden $(this).fadeIn(); }).attr('src', objPics[value.id].src); } if ($(this).offset().left > ptRightBorder) return false; }); }); if (!isScrolled) { $('img[id^="'+strSelector+'"]').each(function(key, value){ var nPos = jQuery.inArray(value.id, aLoadedPics); if (nPos == -1) { aLoadedPics.push(value.id); $(this).load(function () { // Das erzeugte Bild ausblenden $(this).hide(); // Das Bild einblenden $(this).fadeIn(); }).attr('src', objPics[value.id].src); } if ($(this).offset().left > ptRightBorder) return false; }); } } // Die Cursor Position im Input Feld manipulieren function setSelectionRangeX(input, selectionStart, selectionEnd) { // IE if (input.createTextRange) { var range = input.createTextRange(); range.collapse(true); range.moveEnd('character', selectionEnd); range.moveStart('character', selectionStart); range.select(); // real browsers :) } else if (input.setSelectionRange) { input.focus(); input.setSelectionRange(selectionStart, selectionEnd); } } function parse_str (str, arr){ var strArr = (str+'').replace(/^&/, '').replace(/&$/, '').split('&'), i, tmp, key, value, keyIndex, subkey, fixStr = function (str) { return decodeURIComponent(str.replace(/\+/g, '%20')); }; if (!arr) { arr = this.window; } for (i = 0; i < strArr.length; i++) { tmp = strArr[i].split("="); key = fixStr(tmp[0]); if(tmp.length < 2){ value = ""; }else{ value = fixStr(tmp[1]); } while (key.charAt(0) === ' ') { key = key.substr(1); } if (key.indexOf("\x00") !== -1) { key = key.substr(0, key.indexOf("\x00")); } if (key && key.charAt(0) !== '[') { keyIndex = key.indexOf('['); if(keyIndex !== -1&&key.indexOf(']',keyIndex) !== -1){ subkey = key.substring(keyIndex+1,key.indexOf(']',keyIndex)); key = key.substring(0,keyIndex).replace(/\.| /g,'_'); if(!arr[key]){ arr[key]=[]; } if(subkey === ""){ arr[key].push(value); }else{ arr[key][subkey]=value; } }else{ arr[key.replace(/\.| |\[/g,"_")] = value; } } } } /** * Usage: number_format(123456.789, 2, '.', ','); * result: 123,456.79 **/ function number_format (number, decimals, dec_point, thousands_sep) { number = (number + '').replace(/[^0-9+-Ee.]/g, ''); var n = !isFinite(+number) ? 0 : +number, prec = !isFinite(+decimals) ? 0 : Math.abs(decimals), sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep, dec = (typeof dec_point === 'undefined') ? '.' : dec_point, s = '', toFixedFix = function (n, prec) { var k = Math.pow(10, prec); return '' + Math.round(n * k) / k; }; // Fix for IE parseFloat(0.55).toFixed(0) = 0; s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.'); if (s[0].length > 3) { s[0] = s[0].replace(/B(?=(?:d{3})+(?!d))/g, sep); } if ((s[1] || '').length < prec) { s[1] = s[1] || ''; s[1] += new Array(prec - s[1].length + 1).join('0'); } return s.join(dec); } function konfiguratorRenumber() { var divs = $('div[class^="center"], div[class*=" center"]'); var m = 1; $.each(divs, function() { var hidden = ($(this).css('display') === "none") ? true : false; if(!hidden) { $(this).find("div.counter strong").text(m); m++; } }); } function strrchr (haystack, needle) { var pos = 0; if (typeof needle !== 'string') { needle = String.fromCharCode(parseInt(needle, 10)); } needle = needle.charAt(0); pos = haystack.lastIndexOf(needle); if (pos === -1) { return false; } return haystack.substr(pos); }