﻿/* _____________________________ ON ERROR ____________________________________________ */
function silenzia()  {return true}
// window.onerror=silenzia;
/* ___________________________________________________________________________________ */

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			   string: navigator.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]
};

function isIE(){
	return($.browser.msie);
}

function getNomeBrowser(){
	var tipo="";
	var contatore=0;
	$.each($.browser, function(i, val){
		contatore++;
		if(contatore==1){
			tipo=i;
		}
	});
	return(tipo);
}

function objFromId(id_elemento) {
	return ($("#id_elemento"));
}

function getFlashObj(idObj){
	var obj=(isIE())? eval("window."+idObj) : eval("window.document."+idObj);
	return(obj);
}

function debJsObj(oggetto, testoDeb, livelloObj){
	if(oggetto.length>0){
		for(var prop in oggetto){
			if(oggetto[prop] && (oggetto[prop].toString()=="[object]" || oggetto[prop].toString()=="[object Text]")){
				testoDeb+="["+prop+"] Object:<br />";
				testoDeb+=debJsObj(oggetto[prop], testoDeb, (livelloObj+1));
			} else {
				for(i=0;i<livelloObj;i++){
					testoDeb+="> ";
				}
				testoDeb+="["+prop+"]="+ oggetto[prop]+"<br />";
			}
		}
	}
	return(testoDeb);
}

function insHTML(idDiv, htmlTxt){
	$("#"+idDiv).html(htmlTxt);
}

function insGetHtml(idDiv, url){
	$.get(url,{
			time: unixTime()
		}, function(data){
		insHTML(idDiv, data);
	});
}

function alertGetHtml(url){
	$.get(url, function(data){
		alert(data);
	});
}

/////////////// FUNZIONE PER RIMUOVERE ELEMENTI DA UN ARRAY
Array.remove = function(array, from, to) {
  var rest = array.slice((to || from) + 1 || array.length);
  array.length = from < 0 ? array.length + from : from;
  return array.push.apply(array, rest);
};

/////////////// FUNZIONE IN_ARRAY
function in_array(needle, haystack, argStrict) {
    var key = '', strict = !!argStrict;
    if (strict) {
        for (key in haystack) {
            if (haystack[key] === needle) {
                return true;
            }
        }
    } else {
        for (key in haystack) {
            if (haystack[key] == needle) {
                return true;
            }
        }
    }
    return false;
}

/////////////// FUNZIONE PER CAPITALIZE
String.prototype.capitalize = function(){ //v1.0
    return this.replace(/\w+/g, function(a){
        return a.charAt(0).toUpperCase() + a.substr(1).toLowerCase();
    });
};

function strReplace(arrFind,arrRepl,str){
	for (var i=0; i<arrFind.length; i++){ 
		str = str.replace(arrFind[i], arrRepl[i]); 
	} 
	return str;
}

//////////////////////////////// STAMPA DI UN BLOCCO DI UNA PAGINA

function popupImg(src, sito){
	TopUp.display(src, {
		// width:700,
		// height:586,
		// effect:'appear', // 'transform', 'appear' (alias is 'fade'), 'switch' (alias is 'clip')
		layout:'dashboard', // 'quicklook','dashboard'
		shaded:1,
		noGroup:1,
		ondisplay: function(){
			$(".te_close_link").css("background","url(img/"+sito+"/bottoni/x_pop.gif) left top no-repeat");
			$(".te_close_link").css("background-position","4px 0");
			$(".te_close_link").css("right","7px");
			$(".te_close_link").css("top","9px");
		},
		onclose: function(){
			// $(".te_close_link").show();
		}
	});
	return(false);
}

function popVideo(srcVideo, sito){
	TopUp.display(srcVideo, {
		width:853,
		height:505,
		type:'flash',
		layout:'dashboard', // 'quicklook','dashboard'
		resizable:0,
		shaded:1,
		noGroup:1,
		ondisplay: function(){
			$(".te_close_link").css("background","url(img/"+sito+"/bottoni/x_pop.gif) left top no-repeat");
			$(".te_close_link").css("background-position","4px 0");
			$(".te_close_link").css("right","-17px");
			$(".te_close_link").css("top","9px");
		},
		onclose: function(){
			// $(".te_close_link").show();
		}
	});
	return(false);
} 

function getQueryString(idFormPost) {
	var qstr = "";
	var form = objFromId(idFormPost);
	for (keyVar in form) {
		if(form[keyVar] && form[keyVar].value!=undefined){
			qstr = qstr + keyVar + '=' + escape(form[keyVar].value) + "&";  // NOTE: no '?' before querystring
		}
	}
    return qstr;
}

var chiudiMS;
var chiudiMSArr=new Array();

function setOpacity(idDiv,value){
	if(objFromId(idDiv)){
		oggetto=objFromId(idDiv);
		oggetto.fadeTo(1000, (value/10), function(data){
			// nulla
		});
	}
}

function setlivelli(nomediv,stato){
	if(objFromId(nomediv)){
		oggetto=objFromId(nomediv);
		if(stato==1){
			oggetto.css('display', 'block');
			oggetto.css('visibility', 'visible');
		}
		if(stato==0){
			oggetto.css('display', 'none');
			oggetto.css('visibility', 'hidden');
		}
	}
	return(false);
}

function getVal(id){
	if(objFromId(id)){
		oggetto=objFromId(id);
		return oggetto.val();
	} else {
		return ("err");	
	}
}

function setVal(id,valore){
	if(objFromId(id)){
		oggetto=objFromId(id);
		oggetto.attr('value',valore);
		return (true);	
	} else {
		return (false);	
	}
}

function strpos(haystack, needle, offset){
    var i = (haystack+'').indexOf(needle, (offset ? offset : 0));
    return i === -1 ? false : i;
}

function loading(stato){
	setlivelli("loading",((stato==1)?1:0));
}

function posizionaDiv(idDiv,cooX,cooY){
	oggetto=objFromId(idDiv);
	if(cooX!=""){
		oggetto.css('marginLeft', cooX+"px");
	}
	if(cooY!=""){
		oggetto.css('marginTop', cooY+"px");
	}
}

function vai(url){
	location.href=url;
}

function getElementsByClassName(classname) {
    var rl = new Array();
    var re = new RegExp('(^| )'+classname+'( |$)');
    var ael = document.getElementsByTagName('*');
    var op = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
    if (document.all && !op) ael = document.all;
    for(i=0, j=0 ; i<ael.length ; i++) {
        if(re.test(ael[i].className)) {
        	rl[j]=ael[i];
            j++;
        }
    }
    return rl;
}

function rand(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

function randNum(){
	var data = new Date();
	data=data.getYear()+data.getMonth()+data.getDate()+data.getHours()+data.getMinutes()+data.getSeconds()+data.getMilliseconds();
	return(data);
}

function unixTime(){
	var foo = new Date; // Generic JS date object
	var unixtime_ms = foo.getTime(); // Returns milliseconds since the epoch
	// var unixtime = parseInt(unixtime_ms / 1000);
	var unixtime = parseInt(unixtime_ms);
	return(unixtime);
}

function getViewportSize() { 
	var size = [0, 0]; 
	if (typeof window.innerWidth != "undefined") { 
		size = [window.innerWidth, window.innerHeight];
	} 
	else if (typeof document.documentElement != "undefined" && typeof document.documentElement.clientWidth != "undefined" && document.documentElement.clientWidth != 0) {
		size = [document.documentElement.clientWidth, document.documentElement.clientHeight]; 
	}
	else {
		size = [document.getElementsByTagName("body")[0].clientWidth, document.getElementsByTagName("body")[0].clientHeight]; 
	}
	return size;
}

function setSpazioVert(){
	ris=getViewportSize();
	ris=ris[1];
	return(ris);
}

function getIEVersion(){
    var version = 999; // we assume a sane browser
    if (navigator.appVersion.indexOf("MSIE") != -1)
      // bah, IE again, lets downgrade version number
      version = parseFloat(navigator.appVersion.split("MSIE")[1]);
    return version;
}

function funzioniResize(){
	resizeContainer();
}

function funzioniOnLoad(){
	BrowserDetect.init();
	fixPng();
	resizeContainer();

}


