var supersleight=false;//per tutti i browser che visualizzano di default le png

/*---------------------*/
/*---------------------*/
/*ROLLOVER IMG*/
/*---------------------*/
/*---------------------*/
function MM_preloadImages() { //v3.0
  	var d=document; 
 	if(d.images){ //controlla che il browser supporti
		if(!d.MM_p) {
			d.MM_p=new Array();
		}
		var i;
		var j=d.MM_p.length;
		var a=MM_preloadImages.arguments; 
		for(i=0; i<a.length; i++){
			if (a[i].indexOf("#")!=0){ 
				d.MM_p[j]=new Image; 
				d.MM_p[j++].src=a[i];
			}
		}
	}
}

/*ROLLOVER IMG*/
function rollOver(obj, img) {//questa funzione mi serve per passare i parametri senza attivare la funzione
	return function() { 
		obj.src=img;
		if(supersleight && img.match(/\.png$/i) !== null){
			supersleight.aggiorna(obj);
		}
	}
}

function attiva_rollover(obj){
	//l'immagine può essere png o no
	//se l'immagine è png è già stata sostituita con shim, quindi percorso, nome, estensione sono diversi
	filtro=obj.style.filter;
	if(supersleight && filtro){//controllo se esiste filter
		//ricavo da qui il nome originale della png
		inizio="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='";
		src=filtro.substr(inizio.length);
		src=src.substr(0, src.indexOf("'"));
	}else{
		src=obj.getAttribute('src'); //no png o png non su IE
	}
	nome_img=src.replace(/(.+)\.(\w+)\??[0-9]*$/, "$1");
	estensione_img=src.replace(/.*\/?[a-zA-Z0-9_-]+\.(\w+)\??[0-9]*$/, "$1");
	img_on=nome_img+"_on."+estensione_img;
	img_off=nome_img+"."+estensione_img;

	//preload, il percorso è relativo alla pagina html
	MM_preloadImages(img_on);
	
	//over e ricarico supersleight
	Event.observe(obj, 'mouseover', rollOver(obj, img_on));
	
	//out e ricarico supersleight
	Event.observe(obj, 'mouseout', rollOver(obj, img_off));
}

//le immagini di rollover devono avere class img_rollover e lo stesso nome ma con l'aggiunta di _on
function cerca_rollover(){
	if($$('.img_rollover')){
		$$('.img_rollover').each(function(obj){
			attiva_rollover(obj);
		});
	}
}

function cerca_rollover_on_specific_object(id){
    if($$('#'+id+' .img_rollover ')){
        classi = $$('#'+id+' .img_rollover');
        $$('#'+id+' .img_rollover').each(function(obj){
            attiva_rollover(obj);
        });
    } 
}


/*---------------------*/
/*---------------------*/
/*OVERLAY*/
/*---------------------*/
/*---------------------*/
// Cleaned up the code found
// http://mattroper.co.uk/2008/05/27/javascript-overlay-using-prototype-and-scriptaculous/
// The "content" param accepts the following kind of content: text, HTML, DOM element,
// and any kind of object with a toHTML or toElement method.

var DialogOverlay = Class.create({
  initialize: function(content, container) {
    // Manage arguments and assign defaults,
    container = container || document.body;
    if (null == (this.container = $(container))){
      throw("container is not valid");
    }

    // Resolve content element
    if (content && content.toElement){
      content = content.toElement();
    }

    // Content may have been hidden if it is embedded in the page
    if (Object.isElement(content)){
      $(content).show();
	}
	
    // Assign instance variables
    this.content = content;
    this.overlay = new Element('div', { 'class': 'overlay' }).hide();
    this.dialog  = new Element('div', { 'class': 'dialog'  }).hide();
    
    // Hide the overlay when clicked. Ignore clicks on the dialog.
    //this.overlay.observe('click', this.hide.bind(this));
    //this.dialog.observe('click',  function(e) { e.stop() });
    
    // Insert the elements into the DOM
    this.dialog.insert(this.content);
    this.container.insert(this.overlay).insert(this.dialog);
	
	//attacco di nuovo le classi per ie8
	this.overlay.className='overlay';
	this.dialog.className='dialog';
  },

  overlayShow: function() {
    this.overlay.appear({
      duration: 0.4,
      to: 0.5,
      afterFinish: function() {
        /*
		//se ie6 posizione il box rispetto allo scroll della pagina
		if(navigator.userAgent.indexOf('MSIE') != -1 && navigator.appVersion.indexOf('MSIE 6.') != -1){
		    if(document.compatMode && document.compatMode != "BackCompat"){
				var body = document.documentElement;
			}else{
				var body = document.body;
			} 
		    this.dialog.style.top=(body.scrollTop+100) + "px";
		}//fine ie6
		*/
		this.dialog.show();
      }.bind(this)
    });
    return this;
  },
  
  overlayHide: function() {
    this.dialog.hide();
    this.overlay.hide();
    return this;
  }
});


/*---------------------*/
/*---------------------*/
/*GET WINDOW SIZE*/
/*---------------------*/
/*---------------------*/
function getWindowSize() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  return [ myWidth, myHeight ];
}


/*---------------------*/
/*---------------------*/
/*SOUND*/
/*---------------------*/
/*---------------------*/
MPSound = {
    play : function(sound_url, tk, rep){
		if(tk){
			if(!rep){rep=false;}
        	Sound.play(sound_url, {track: tk, replace: rep});
		}else{
        	Sound.play(sound_url);
		}
    },
    enable : function(sound_url){
        Sound.enable(sound_url);
    },
    disable : function(sound_url){
        Sound.disable(sound_url);
    },
    stop : function(tk){
        Sound.enable();
		if(tk){
	        Sound.play('', {track: tk, replace:true});
		}else{
        	Sound.play('', {replace:true});
		}
    }
};

function preloadSound(url){
	if((Prototype.Browser.Gecko || navigator.userAgent.indexOf("Chrome") > 0 || navigator.userAgent.indexOf("Safari") > 0) && navigator.userAgent.indexOf("Win") > 0){
	  if(navigator.plugins && $A(navigator.plugins).detect(function(p){ return p.name.indexOf('QuickTime') != -1 })){
	    document.write('<object width="0" height="0" type="audio/mpeg" data="'+url+'"><param name="autostart" value="false"></object>');
	  }else if(navigator.plugins && $A(navigator.plugins).detect(function(p){ return p.name.indexOf('Windows Media') != -1 })){
	    document.write('<object type="application/x-mplayer2" data="'+url+'"><param name="autostart" value="false"></object>');
	  }else if(navigator.plugins && $A(navigator.plugins).detect(function(p){ return p.name.indexOf('RealPlayer') != -1 })){
	    document.write('<embed type="audio/x-pn-realaudio-plugin" style="height:0" src="'+url+'" loop="false" autostart="false" hidden="true"/>');
	  }else{
	    document.write('<embed style="height:0" src="'+url+'" loop="false" autostart="false" hidden="true"/>');
	  }
	}else if(navigator.userAgent.indexOf("Firefox/3") > 0 && navigator.userAgent.indexOf("Mac") > 0){
		document.write('<object width="0" height="0" type="audio/mpeg" data="'+url+'"><param name="autostart" value="false"></object>');
	}else{
	    document.write('<embed style="height:0"  src="'+url+'" loop="false" autostart="false" hidden="true"/>');
	}
}

/*----------------------------------------------------------------------------*/
// browser detection
// script from http://www.quirksmode.org/js/detect.html
// NOTE: where possible use OBJECT detection instead of BROWSER detection
/*----------------------------------------------------------------------------*/
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"
		},
        {
			string: navigator.platform,
			subString: "iPod",
			identity: "iPod"
		},
        {
			string: navigator.platform,
			subString: "iPhone",
			identity: "iPhone"
		}
	]

};
BrowserDetect.init();
/*----------------------------------------------------------------------------*/

