var validDate = /^\d{1,2}\/\d{1,2}\/\d{4}$/;
var validEmail = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
var validNum = /^[0-9]+$/;

function printMsg(obj, status){
	return msgs[obj][status];
};

function GetUrlParam(paramName){
	var oRegex = new RegExp( '[\?&]' + paramName + '=([^&]+)', 'i' );
	var oMatch = oRegex.exec( window.top.location.search );
	if ( oMatch && oMatch.length > 1 ) return decodeURIComponent( oMatch[1] ) ;
	else return '';
};

function handleCutTxt(stringa, caratteri){//il parametro 'caratteri' indica quanti caratteri mantenere
	var myTxt=stringa;
	var oldTxt = stringa.replace(/[\s]+/g ,' ');
	if (oldTxt.length > caratteri){
		var cutTxt = oldTxt.substring(0,caratteri-3);//qui 3 caratteri in meno, per i puntini di sospensione (...) rispetto a quelli nella condizione dell'if
		var newTxt = cutTxt.lastIndexOf(' ');//prendo il numero del carattere dell'ultimo spazio, per evitare di troncare una parola
		myTxt = cutTxt.substring(0,newTxt);
		myTxt +='...';//accodo i puntini di sospensione
	}
	return myTxt;
};

function clearInput(){
	$('input[type=text]').each(function() { 
		$(this).focus(function() {
			if($(this).val() == this.defaultValue)
			$(this).val("");
		});
		$(this).blur(function() {
			if($(this).val() == "")
			$(this).val(this.defaultValue);
		});
	});
};

function getDocHeight(){
	return Math.max(
		$(document).height(),
		$(window).height(),
		document.documentElement.clientHeight//for opera
	);
};

$.log = function() {//Funzione per la scrittura sulla console di FF - su browser senza console, console.log pianta tutto
    if ($.browser.mozilla) {
		var consoleExists = (typeof(console) == "object") && (typeof(console.log) == "function");
		if (consoleExists) { 
			if (navigator.userAgent.toLowerCase().indexOf("applewebkit") != -1) { 
				console.log(arguments); 
			} else { 
				console.log.apply(this,arguments); 
			} 
		} 
    }
};

function preloadImages(el) {
    var c = new Array();
    $(el+' img').each( function(j) {
        c[j] = new Image();
        c[j].src = this.src;

       //if ( $.browser.msie && $.browser.version < 8 ) {
            this.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true',sizingMethod='image',src='"+ this.src +"')"; 
       //}
    });
};

//prototipizzazione per avere a disposizione un metodo per verificare se un elemento esiste in un array
//var a = ['red', 'green', 'blue'];
//a.inArray('red');
//true
Array.prototype.inArray = function(needle) {
	for (var i = 0, len = this.length; i < len; i++) {
		if (this[i] === needle) {
			return true;
		}
	}
	return false;
};

/* function addDot(str){
	//12345,67 -> 12.345,67
	//if( str.indexOf("..") ){return;}
	//str = parseInt(str, 10);
	str = str.substring(0, str.length -6) + "." + str.substring(str.length -6, str.length);
	return str;
}; */

function filterGroup(obj, filteredGroup, filterParam) {
	var resultObj = $.extend({},obj);
	for (var i in obj) {
		if ( obj.hasOwnProperty(i) ) {
			//if ( obj[i].fuelId && obj[i].fuelId !== filteredGroup ) {
			if ( obj[i][filterParam] && obj[i][filterParam] !== filteredGroup ) {
				delete resultObj[i];
			}
		}
	}
	return resultObj;
};
