//predispongo jQuery per evitari conflitti coneventuali altre librerie
var $j = jQuery.noConflict();

// Array Remove - By John Resig (MIT Licensed)
Array.prototype.remove = function(from, to) {
	var rest = this.slice((to || from) + 1 || this.length);
	this.length = from < 0 ? this.length + from : from;
	return this.push.apply(this, rest);
};

Array.prototype.has = function(value, pos) {
	if(pos == null) pos = 0;

	for(var i = 0; i < this.length; i++) {
		if(this[i][pos] == value) return i;
	}

	return -1;
};

var msPopupFade = 100;
var msTimezoneOffset = (new Date().getTimezoneOffset() + 120) * 60 * 1000;

function FormattaData(stringa, formato) {
    if(!stringa) return null;

    var toDateRe = new RegExp("^/Date\\((\\d+)\\)/$");
    var constructor = stringa.replace(toDateRe, "new Date($1)");
    if(constructor == stringa) throw "Invalid serialized DateTime value: '" + stringa + "'";

	var data = eval(constructor);
	var ms = data.getTime() + msTimezoneOffset;

	data = new Date(ms);

	var G = data.getDate().toString();
	var g = (100 + data.getDate()).toString().substr(1, 2);
	var W;
	switch(data.getDay()) {
	case 0: W = "domenica"; break;
	case 1: W = "lunedì"; break;
	case 2: W = "martedì"; break;
	case 3: W = "mercoledì"; break;
	case 4: W = "giovedì"; break;
	case 5: W = "venerdì"; break;
	case 6: W = "sabato"; break;
	}
	var m = (100 + data.getMonth() + 1).toString().substr(1, 2);
	var M;
	switch(data.getMonth()) {
	case 0: M = "gennaio"; break;
	case 1: M = "febbraio"; break;
	case 2: M = "marzo"; break;
	case 3: M = "aprile"; break;
	case 4: M = "maggio"; break;
	case 5: M = "giugno"; break;
	case 6: M = "luglio"; break;
	case 7: M = "agosto"; break;
	case 8: M = "settembre"; break;
	case 9: M = "ottobre"; break;
	case 10: M = "novembre"; break;
	case 11: M = "dicembre"; break;
	}
	var a = (data.getFullYear()).toString();

	switch(formato) {
	case "g":
		return g;
		break;
	case "G":
		return G;
		break;
	case "m":
		return m;
		break;
	case "M":
		return M;
		break;
	case "G M":
		return G + " " + M;
		break;
	case "G M aaaa":
		return G + " " + M + " " + a;
		break;
	case "W G M aaaa":
		return W + " " + G + " " + M + " " + a;
		break;
	case "gg/mm/aaaa":
		return g + "/" + m + "/" + a;
		break;
	case "literal":
		return data.toString();
		break;
	case "ms":
		return ms;
		break;
	default:
		return a + m + g;
	}
}

function FormattaMigliaia(stringa) {
	var inverso = stringa.split("");
	var numero = [];

	var c = 0;
	var i = inverso.length - 1;

	for(; i >= 0; i--) {
		numero.push(inverso[i]);
		if(++c % 3 == 0 && i > 0) numero.push(".");
	}
	numero.reverse();
	return numero.join("");
}

function Trim(str, chars) {
	return lTrim(rTrim(str, chars), chars);
}

function lTrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rTrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function Titolize(str) {
	var tokens = str.split(" ");
	var Tokens = new Array(tokens.length);

	for(var t = 0; t < tokens.length; t++) {
		if(tokens[t].length <= 1) Tokens[t] = tokens[t].toLowerCase();
		else switch(tokens[t].toLowerCase()) {
			case "similare":
				Tokens[t] = tokens[t].toLowerCase();
				break;
			default:
				Tokens[t] = tokens[t].substr(0, 1).toUpperCase() + tokens[t].substr(1).toLowerCase();
		}
	}

	return Tokens.join(" ");
}



function Normalize(str) {
	if(str == "" || str == undefined || str == null) return "";

	var s = str.toLowerCase();
	s = s.replace(new RegExp("[ÀàÁáÂâÃãÄäÅå]", "g"), "a");
	s = s.replace(new RegExp("[Çç]", "g"), "c");
	s = s.replace(new RegExp("[ÈèÉéÊêËë]", "g"), "e");
	s = s.replace(new RegExp("[ÌìÍíÎîÏï]", "g"), "i");
	s = s.replace(new RegExp("[Ññ]", "g"), "n");
	s = s.replace(new RegExp("[ÒòÓóÔôÕõÖö]", "g"), "o");
	s = s.replace(new RegExp("[ÙùÚúÛûÜü]", "g"), "u");
	s = s.replace(new RegExp("[^a-z0-9]", "g"), "-");

	return s;
}

function Alert(s) {
	$j("#PopupMessaggio .PopupText").html(s);
	$j("#PopupMessaggio").overlay().load();
}

function SendToFriend(bAction) {
	if(bAction) $j("#SendToFriend").overlay().load();
	else {
		$j("#SendToFriend").overlay().close();
		$j("#sendtofriend_ANome").val("");
		$j("#sendtofriend_AEmail").val("");
		$j("#sendtofriend_Messaggio").val("");
	}
}

var DuckyLoader;
var DuckyLink;
var DuckyWait = false;

function GoDucky() {
	$j("#DuckyPopupSWF").show();

	if(DuckyWait) {
		DuckyWait = false;
		return;
	}

	if(DuckyLink != "") location = DuckyLink;
	else {
		$j("#DuckyPopupSWF").hide();
		$j("#DuckyPopup").overlay().close();
	}
}

function DuckTo(url) {
	DuckyLink = url;
	$j("#DuckyPopup").overlay().load();
}

$j(document).ready(function() {
	DuckyLoader = new Image();
	DuckyLoader.src = "/images/duckyloader.gif";
	//swfobject.embedSWF("/images/duckyloader.swf", "DuckyPopupSWF", "194", "58", "8.0.0","/images/expressInstall.swf", {}, { menu: "false", bgcolor: "#fdfc63" }, {});
	swfobject.embedSWF("/images/duckyloader.swf", "DuckyPopupSWF", "58", "58", "8.0.0","/images/expressInstall.swf", {}, { menu: "false", bgcolor: "#ffffff" }, {});

	
	
	
	$j("#PopupMessaggio").overlay({
		mask: {
			color: "#000000",
			loadSpeed: msPopupFade,
			opacity: 0.21,
			zIndex: 998
		},
		top: parseInt($j(window).height() / 3),
		close: ".PopupClose, .PopupOK",
		closeOnClick: true
	});

	$j("#DuckyPopup").overlay({
		mask: {
			color: "#000000",
			loadSpeed: msPopupFade,
			opacity: 0.21,
			zIndex: 998
		},
		fixed: true,
		onLoad: GoDucky,
		top: parseInt($j(window).height() / 3),
		close: ".NoClose",
		closeOnClick: false
	});

	$j("#SendToFriend").overlay({
		mask: {
			color: "#000000",
			loadSpeed: msPopupFade,
			opacity: 0.21,
			zIndex: 998
		},
		top: parseInt($j(window).height() / 3),
		close: ".PopupClose, .PopupAnnulla",
		closeOnClick: true
	});
});

