var __isWorking = false;

//parametrised by matthias
function ivShowOverlay (overlayClass, innerOverlayClass) {
	
	if (overlayClass == undefined) {
		overlayClass = "overlay";
	}
	if (innerOverlayClass == undefined) {
		innerOverlayClass = "innerOverlay";
	}
	
	var wH = $(window).height();
	var dH = $(document).height();
	
	if ($.browser.opera) {
		wH = window.innerHeight;
	}
	
	if (dH < wH) {
		var h = wH;
	} else {
		var h = dH;
	}
	
	var w = $(document).width();
	
	var iOw = $('div.' + innerOverlayClass).outerWidth(); //Adaption by Martin
	//var iOw = 660;
	
	ivScrollTop = $(document).scrollTop();
	$(document).scrollTop(0);
	
	if ($.browser.msie) {
		$('select').hide();
	}
	
	$('div.' + overlayClass).css('height', h + 'px');
	$('div.' + overlayClass).css('width', w + 'px');
	$('div.' + innerOverlayClass).css('left', ((w / 2) - (iOw / 2)) + 'px');
	$('div.' + innerOverlayClass).css('top', 20 + 'px');
	$('div.' + overlayClass).fadeIn(300);
	$('div.' + overlayClass).fadeTo(100, 0.8);
	$('div.' + innerOverlayClass).fadeIn(300);
	
	return false;
	
}

function ivShowOverlayCustomText(text, overlayClass, innerOverlayClass) {
	ivShowOverlay (overlayClass, innerOverlayClass);
	$('#OverlayAlertCustomText').html( text );
	return false;
}


function CurrencyFormatted(amount) {
	var i = parseFloat(amount);
	if(isNaN(i)) { i = 0.00; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += ',00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus + s;
	return str_replace('.', ',', s);
}


function str_replace(search, replace, subject) {
    return subject.split(search).join(replace);
}


function formatNumber(number){
    number = '' + number;
    if (number.length > 3) {
		var mod = number.length % 3;
		var output = (mod > 0 ? (number.substring(0, mod)) : '');
		for (i = 0; i < Math.floor(number.length / 3); i++) {
			if ((mod == 0) && (i == 0)) {
				output += number.substring(mod + 3 * i, mod + 3 * i + 3);
			} else {
				// hier wird das Trennzeichen festgelegt mit '.'
				output += '.' + number.substring(mod + 3 * i, mod + 3 * i + 3);
			}
		}
		return ("&euro;&nbsp;" + output + ",-");
	} else {
		return ("&euro;&nbsp;" + number + ",-");
	}
}


function ucfirst (str) {
	str += '';
	var f = str.charAt(0).toUpperCase();
	return f + str.substr(1);
}


function isWorking() {
	return __isWorking;
}

function setWorking(status) {
	__isWorking = status;
	if(status == true) {
		$(".preventFromEditing").show();
		$("#workingIndicator").show();
	} else {
		$(".preventFromEditing").hide();
		$("#workingIndicator").hide();
	}
}


function removeItemFromArray(array, removeItem) {
	
	array = jQuery.grep(array, function(value) {
		return value != removeItem;
	});
	
	return array;
	
}

function in_array(item,arr) {
	for(p=0;p<arr.length;p++) if (item == arr[p]) return true;
	return false;
}


function array_search (needle, haystack, argStrict) {
    // Searches the array for a given value and returns the corresponding key if successful  
    // 
    // version: 909.322
    // discuss at: http://phpjs.org/functions/array_search
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: array_search('zonneveld', {firstname: 'kevin', middle: 'van', surname: 'zonneveld'});
    // *     returns 1: 'surname'

    var strict = !!argStrict;
    var key = '';

    for (key in haystack) {
        if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {
            return key;
        }
    }

    return false;
}


function array_push ( array ) {
    // Pushes elements onto the end of the array  
    // 
    // version: 909.322
    // discuss at: http://phpjs.org/functions/array_push
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: array_push(['kevin','van'], 'zonneveld');
    // *     returns 1: 3
    var i, argv = arguments, argc = argv.length;

    for (i=1; i < argc; i++){
        array[array.length++] = argv[i];
    }

    return array.length;
}

