function englishNumberFormat(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ' ' + '$2');
	}
	return x1 + x2;
}

function stristr( haystack, needle, bool ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfxied by: Onno Marsman
    // *     example 1: stristr('Kevin van Zonneveld', 'Van');
    // *     returns 1: 'van Zonneveld'
    // *     example 2: stristr('Kevin van Zonneveld', 'VAN', true);
    // *     returns 2: 'Kevin '
 
    var pos = 0;
 
    haystack += '';
    pos = haystack.toLowerCase().indexOf( (needle+'').toLowerCase() );
    if( pos == -1 ){
        return false;
    } else{
        if( bool ){
            return haystack.substr( 0, pos );
        } else{
            return haystack.slice( pos );
        }
    }
}

function is_numeric( mixed_var ) {
	return !isNaN(mixed_var * 1);
}

function getfileextension(filename) 
{
	if( filename.length == 0 ) return ""; 
	var dot = filename.lastIndexOf("."); 
	if( dot == -1 ) return ""; 
	dot = dot + 1;
	var extension = filename.substr(dot,filename.length); 
	return extension;
} 

function empty( mixed_var ) {
    var key;
    
    if (mixed_var === ""
        || mixed_var === 0
        || mixed_var === "0"
        || mixed_var === null
        || mixed_var === false
        || mixed_var === undefined
    ){
        return true;
    }

    if (typeof mixed_var == 'object') {
        for (key in mixed_var) {
            return false;
        }
        return true;
    }
    if (mixed_var == '&nbsp;') {
    	return true;
    }

    return false;
}


function isset() {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: FremyCompany
    // +   improved by: Onno Marsman
    // *     example 1: isset( undefined, true);
    // *     returns 1: false
    // *     example 2: isset( 'Kevin van Zonneveld' );
    // *     returns 2: true
    
    var a=arguments; var l=a.length; var i=0;
    
    if (l==0) { 
        throw new Error('Empty isset'); 
    }
    
    while (i!=l) {
        if (typeof(a[i])=='undefined' || a[i]===null) { 
            return false; 
        } else { 
            i++; 
        }
    }
    return true;
}

function trim (str) {
	str = str.replace(/^\s+/, '');
	for (var i = str.length - 1; i >= 0; i--) {
		if (/\S/.test(str.charAt(i))) {
			str = str.substring(0, i + 1);
			break;
		}
	}
	return str;
}


function printError(input)
{
	return '<span style="color: red">'+input+'</span>';
}

function printImage(input)
{
	return '<img src="'+input+'" border="0" />';
}
	
function toggleElementDisplay(radio)
{
		// Get value
		var show = jQuery(radio).val();
		// Get element selector (should be stored in class attr as json)
		var element = getJSON(radio).element;
		var second = getJSON(radio).second;

		if (isset(element)) {
			if (show == 0) {
				jQuery(element).hide();
				if (isset(second)) {
					jQuery(second).show();
				}
			} else {
				jQuery(element).show();
				if (isset(second)) {
					jQuery(second).hide();
				}				
			}
		}
}

/**
  * This function hides all children of the element parameters parent (including itself)
  * Then it shows just the element, good for tabs and other similar situations
  */
function toggleTabs(element)
{
	jQuery(element).parent().children().hide();
	jQuery(element).show();
}

function getJSON(element)
{
	if (!isset(element)) {
		return false;
	}
	var classes = jQuery(element).metadata();
	var encoded = jQuery.toJSON(classes);
	var element = jQuery.evalJSON(encoded);
	return element;	
}

jQuery(document).ready(function() {

});
