StringUtils = function(){
	
};


StringUtils.removeEmptyValues = function(param_tab) {
	var destArray = [];
	var tabLength = param_tab.length;
	for (var i = 0; i < tabLength ; ++i) {
		if (param_tab[i] != '' && param_tab[i] != undefined )
			destArray.push(param_tab[i]);
	}
	return destArray;
};


StringUtils.ucFirst = function(str) {
	var result = '';
	var character = '';
	var len = str.length;
	for (var i = 0; i < len ; i++) {
		character = str.substr(i , 1)
		result += i == 0 ? character.toUpperCase() : character.toLowerCase();
	}
	return result;
};


StringUtils.removeAccents = function(strAccents){
    strAccents = strAccents.split('');
    strAccentsOut = new Array();
    strAccentsLen = strAccents.length;
    var accents = 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÕÖØòóôõöøÈÉÊËèéêëðÇçÐÌÍÎÏìíîïÙÚÛÜùúûüÑñŠšŸÿýŽž';
    var accentsOut = ['A','A','A','A','A','A','a','a','a','a','a','a','O','O','O','O','O','O','O','o','o','o','o','o','o','E','E','E','E','e','e','e','e','e','C','c','D','I','I','I','I','i','i','i','i','U','U','U','U','u','u','u','u','N','n','S','s','Y','y','y','Z','z'];
    for (var y = 0; y < strAccentsLen; y++) {
        if (accents.indexOf(strAccents[y]) != -1) {
            strAccentsOut[y] = accentsOut[accents.indexOf(strAccents[y])];
        }
        else
            strAccentsOut[y] = strAccents[y];
    }
    strAccentsOut = strAccentsOut.join('');
    return strAccentsOut;
}

StringUtils.trim = function(param_str) {
	//var regex:RegExp = /^\s*(.*?)\s*$/g
	//return regex.exec(param_str)[1];
 };
 

StringUtils.stripTags = function(str){
	return str.replace(/<.*?>/g, "");
};


StringUtils.nl2br = function(str) {
	str = str.replace(new RegExp("[\n]", "g"), "<br />");
	str = str.replace(new RegExp("[\r]", "g"), "<br />");
	str = str.replace(new RegExp("[\n\r]", "g"), "<br />");
	str = str.replace(new RegExp("[\r\n]", "g"), "<br />");
	return str;
};


StringUtils.randomSort = function(src){
	var res = [];
	var key;
	
	while(src.length > 0){
		key = Math.floor(Math.random() * src.length);
		res.push(src[key]);
		src.splice(key, 1);
	}

	return res;
};


StringUtils.compareArrays = function(param_array1 , param_array2){
	if(param_array1.length != param_array2.length)
	return false;
	
	var len = param_array1.length ; 
	for(var i = 0; i < len ; ++i){
		if(param_array1[i] != param_array2[i])
			return false;
	}
	
	return true;
};


StringUtils.pileArrays = function(){
	var finalTab = [];
	/*
	var tabLength = param_tablist.length;
	for(var i = 0; i <  tabLength ; ++i){
		if(param_tablist[i] == null)
			continue;
		finalTab = finalTab.concat(param_tablist[i]);
	}
	*/
	return finalTab;
};


StringUtils.cleanHash = function(param_tab){
	result = [];
	for(var i = 0; i < param_tab.length ; ++i){
		if(param_tab[i] != '' && param_tab[i] != '#')
			result.push(param_tab[i]);
	}
	
	return result;
}


StringUtils.parseQueryString = function(param_query){
	var res = {};
	
	var pairs = param_query.split('&');
	var pair;
	var tabValues;
	var key;
	var o = 0;
	
	for(var i = 0; i < pairs.length ; ++i){
		pair = pairs[i].split('=');
		key = unescape(pair[0]);
		res[key] = '';
		
		if(pair.length > 1){
			if(String(pair[1]).indexOf(',') > -1){
				tabValues =  String(pair[1]).split(',');
				for(o = 0 ; o < tabValues.length ; ++o){
					tabValues[o] = unescape(tabValues[o]);
				}
				res[key] = tabValues.concat();
			}
			else
				res[key] = unescape(pair[1]);
		}
	}
	return res;
};
