
var mooPanorama = new Class({	
	offsetPanorama:0,
	elMaster:null,
	elMasterid:null,
	timerMaster:-1,
	nbElement:0,
	nbElementThumb:0,
	activeIndex:-1,
	tabEffectsFadeIn:[],
	scrollPosition:0,
	idExt:null,
	box:null,
	isThumbing:false,
	options: {
		info_secondaire:null,
		showPanoramaIndex:0,
		widthMax:"100%",
		heightMax:"400px",
		tabImg:[],
		showoverflowX : false,
		useHotSpot:false,
		urlHotSpot:null,
		durationAttenteAutoSlide:8000,
		durationEffectOpacity:2000,
		showControls:true,
		autoSlide:false,
		autoSlideMethod:"fade",
		autoPlay:false,
		autoPlayStep:2,
		autoPlaySens:"left",
		durationAutoPlay:100,
		enableDrag : true,
		xStart:0,
		yStart:0,
		xDelta:0,
		yDelta:0,
		thumbSpace : 'loading_thumb_histo',
		useSecondLoadingPosition:null,
		useThumb:false
	},

	// initialize: calendar constructor
	// @param obj (obj) a js object containing the form elements and format strings { "id": 'format', "id": 'format' etc }
	// @param props (obj) optional properties

	initialize: function(_el,_idExt, options) {
		
		if(!_el) {return false;}
		this.idExt = _idExt;
		try {
			this.elMaster = $(_el);
			this.elMasterId = _el;
		} catch (e) {
			this.elMaster = _el;
			this.elMasterId = _el.id;
		}
		
		
		this.setOptions(options);

		this.tabEffectsFadeIn = new Array();
		
		this.elMaster.setStyle('overflow','hidden');
		this.elMaster.setStyle('overflow-x','hidden');
		this.elMaster.setStyle('overflow-y','hidden');
		
		new Element('DIV', {"id":'divMain'+this.elMasterId, 
				'styles': { "display":"block","height":this.options.heightMax }
			}).injectInside(this.elMaster);
		
		
		if(this.options.useThumb){
			new Element('DIV', {"id":'divThumb'+this.elMasterId, 
				'styles': { "display":"none","height":"400px","width":"650px","overflow":"hidden visible","overflow-x":"hidden","overflow-y":"auto" }
			}).injectInside(this.elMaster);
		
			new Element('A', {"id":'mb11'+this.elMasterId, "title":lngTab[9],
				"class":"mb"+this.elMasterId ,"rel":"type:element" ,"href":"#divThumb"+this.elMasterId,"index":this.elMasterId,'styles': { "display":"none","position":"absolute","top":"50%","left":"20%" }
			}).injectInside(this.elMaster);
			
			new Element('DIV', {"title":lngTab[9],
				"class":"multiBoxDesc mb11"+this.elMasterId ,"index":this.elMasterId,'styles': { "display":"none" }
			}).setHTML(lngTab[9]).injectInside(this.elMaster);
			
			
			
			
	
		}
		new Element('DIV', {"id":'progress-main'+this.elMasterId, 
				'styles': { "display":"none",'position':'absolute','z-index':'1300','left':(this.elMaster.getPosition().x+(window.getWidth().toInt()/2)),'top':(this.elMaster.getPosition().y+(this.elMaster.getSize().size.y.toInt()/2)) }
			}).addClass('loading-progress').injectInside(this.elMaster);
		
		new Element('DIV', {"id":'progress'+this.elMasterId
			}).addClass('progress-bar').injectInside($('progress-main'+this.elMasterId));
		
		new Element('DIV', {"id":'progress-bar'+this.elMasterId 
			}).addClass('progress-bar-unit').addClass("bar").injectInside($('progress'+this.elMasterId));
			
		
		new Element('DIV', {"id":'text-loading'+this.elMasterId, 
				'styles': { "display":"block" }
			}).addClass('text-loading').injectInside($('progress-main'+this.elMasterId));
			
		new Element('DIV', {"id":'progress-anim'+this.elMasterId, 
				'styles': { "display":"block" }
			}).addClass('loading').injectInside($('progress-main'+this.elMasterId));
			
		
		var width = this.elMaster.getSize().size.x-10;		
		var height = this.elMaster.getSize().size.y;
		
		if(this.options.tabImg.length>0){
			for(var index=0; index<this.options.tabImg.length; index++) {
				this.addPanorama(this.options.tabImg[index],index,width,height);
				if(this.options.showPanoramaIndex==index){
					this.showPanorama(this.options.showPanoramaIndex,"fade");
					
				}
			}
			
		}
		if(this.options.showPanoramaIndex>-1)
			this.activeIndex = this.options.showPanoramaIndex;
		else
			this.activeIndex = 0;
			
		
		if(this.options.autoSlide)
			this.clipMyPanorama();
		else if(this.options.autoPlay)
			this.playPanorama(this.activeIndex);
		this.options.enableDrag = false;
		this.box = new MultiBox('mb'+this.elMasterId, {"descClassName": 'multiBoxDesc', "height":'400px', "width":'700px',"useOverlay":true});
		window.addEvent('resize',this.resizeWindow.bind(this));
	},
	resizeWindow : function(){
		var width = this.elMaster.getSize().size.x-10;		
		var height = this.elMaster.getSize().size.y;	
		
		for(var index=0; index<this.nbElement; index++) {
			if($(this.elMasterId+"_element"+index)){
				$(this.elMasterId+"_element"+index).setStyle('width',width);
				$(this.elMasterId+"_element"+index).setStyle('height',height);
			}
			if(this.options.showControls){
				if($('controls-main'+this.elMasterId+index)){
					$('controls-main'+this.elMasterId+index).setStyle('left',this.elMaster.getPosition().x+(this.elMaster.getSize().size.x.toInt())-$('controls-main'+this.elMasterId+index).getSize().size.x.toInt()-20);
					$('controls-main'+this.elMasterId+index).setStyle('top',this.elMaster.getPosition().y+10);
				}
			}
		}
		
		
	},
	showControls:function(_index){
		$('controls-main'+this.elMasterId+_index).setStyle('display','block');
	},
	hideControls:function(_index){
		$('controls-main'+this.elMasterId+_index).setStyle('display','none');
	},
	addControls:function(_index){
		//control-start-selected
		new Element('DIV', {"id":'controls-main'+this.elMasterId+_index, 
				"index":_index,'styles': { "display":"block","position":"absolute" }
			}).addClass('controls-main').injectInside(this.elMaster);
		
		
		new Element('DIV', {"id":'divControlStart'+this.elMasterId+_index, 
				"index":_index,'styles': { "display":"block","float":"left" }
			}).addClass("control-start").setText(lngTab[5]).injectInside($('controls-main'+this.elMasterId+_index));
		
		
		new Element('DIV', {"id":'divControlStop'+this.elMasterId+_index, 
				"index":_index,'styles': { "display":"block","float":"left" }
			}).addClass("control-stop").setText(lngTab[6]).injectInside($('controls-main'+this.elMasterId+_index));
		
		new Element('DIV', {"id":'divControlMove'+this.elMasterId+_index, 
				"index":_index,'styles': { "z-index":1000,"display":"block","float":"left" }
			}).addClass("control-move").setText(lngTab[7]).injectInside($('controls-main'+this.elMasterId+_index));
		
			
		var fn = this;
		$('divControlStart'+this.elMasterId+_index).addEvent('click',function(){fn.playPanorama(_index);});
		
		$('divControlStop'+this.elMasterId+_index).addEvent('click',function(){fn.stopPanorama(_index);});
		$('divControlStop'+this.elMasterId+_index).addClass('control-stop-selected');
		
		$('divControlMove'+this.elMasterId+_index).addEvent('click',function(){fn.movePanorama(_index);});
		this.activeIndex = _index;
		$(this.elMasterId+"_elementint"+_index).onmousedown = this.initDrag.bind(this);
		
		
 			
		
		$('controls-main'+this.elMasterId+_index).setStyle('position',"absolute");
		$('controls-main'+this.elMasterId+_index).setStyle('left',this.elMaster.getPosition().x+(this.elMaster.getSize().size.x.toInt())-$('controls-main'+this.elMasterId+_index).getSize().size.x.toInt()-20);
		$('controls-main'+this.elMasterId+_index).setStyle('top',this.elMaster.getPosition().y+10);
		
		$('controls-main'+this.elMasterId+_index).setStyle('display',"none");
		$('controls-main'+this.elMasterId+_index).setStyle('z-index',1200);

		
	},
	
	getSizeImg : function (_path){
		// Declaration d'un objet Image
		var oImg = new Image();
		// Affectation du chemin de l'image a l'objet
		oImg.src = _path;
		var tab = new Array();
		// On recupere les tailles reelles
		tab.push( oImg.height);
		tab.push( oImg.width);
		oImg = null;
		return tab;
	},
	addPanorama : function(_src,_index,_width,_height,_description1,_description2,_img,_show){
		if(this.elMaster.hasClass('back-logo'))
			this.elMaster.removeClass('back-logo')
		this.nbElement++;
		//this.options.tabImg.push(_src);
		var found = false;
		var previousIndex = _index.toInt() -1;
		var nextIndex = _index.toInt() + 1;
		
		for(var index=0; index<$('divMain'+this.elMasterId).getChildren().length; index++) {
			if($('divMain'+this.elMasterId).getChildren()[index].getAttribute('index').toInt()>_index.toInt()){
				new Element('DIV', {"id":this.elMasterId+"_element"+_index,"index":_index,
				"styles":{"display":"none","opacity":"0",'width':_width,'height':(parseInt(_height)),'position':"absolute",'left':this.elMaster.getPosition().x,'top':this.elMaster.getPosition().y}
							}).injectInside($('divMain'+this.elMasterId).getChildren()[index]);
				found = true;
				
				break;
			}
		}
		if(!found){
			new Element('DIV', {"id":this.elMasterId+"_element"+_index,"index":_index,
			"styles":{"display":"none","opacity":"0",'width':_width,'height':(parseInt(_height)),'position':"absolute",'left':this.elMaster.getPosition().x,'top':this.elMaster.getPosition().y}
						}).injectInside($('divMain'+this.elMasterId));
		}
		if(this.options.showoverflowX){
			$(this.elMasterId+"_element"+_index).setStyle('overflow','auto');
			
			$(this.elMasterId+"_element"+_index).setStyle('overflow-y','hidden');
			$(this.elMasterId+"_element"+_index).setStyle('overflow-x','auto');
			
		}
		else{
			$(this.elMasterId+"_element"+_index).setStyle('overflow','hidden');
			$(this.elMasterId+"_element"+_index).setStyle('overflow-x','hidden');
			$(this.elMasterId+"_element"+_index).setStyle('overflow-y','hidden');
		}
		
		var src = "";
		var tabSize= new Array();
		if(!_src){
			
			src = _img.src;
			tabSize.push( _img.height);
			
			tabSize.push( _img.width);
			
		}
		else{
			src = _src;
			tabSize= this.getSizeImg(src);
		}
		$(this.elMasterId+"_element"+_index).setStyle('display','none');
		
		 new Element('DIV', {"id":this.elMasterId+"_elementint"+_index,"index":_index,
		 "styles":{"display":"block",'width':tabSize[1],'height':_height,'background-image':"url("+src+")",'background-position':"0px 0px"}
					}).injectInside($(this.elMasterId+"_element"+_index));
		if(this.options.showControls){
			$(this.elMasterId+"_elementint"+_index).setStyle('background-repeat',"repeat-x");
			this.addControls(_index);
		}
		else
			$(this.elMasterId+"_elementint"+_index).setStyle('background-repeat',"no-repeat");
			
		if(_description1 || _description2)
			this.addDescription(_index,_description1,_description2);
		
		
//		this.tabEffectsFadeIn.push(new Fx.Styles($(this.elMasterId+"_element"+_index), {duration:this.options.durationEffectOpacity, wait:false}));
		if(_show){
			this.showPanorama(_index,"fade");
		}
		
		$(this.elMasterId+"_element"+_index).setStyle('display','none');
		_img = null;
	},
	addPanoramaThumb : function(_src,_index,_description1,_description2,_img){
		if($(this.elMasterId+"_elementthumb"+_index))
			return;
		this.nbElementThumb++;
		var found = false;
		var previousIndex = _index.toInt() -1;
		var nextIndex = _index.toInt() + 1;
		
		for(var index=0; index<$('divThumb'+this.elMasterId).getChildren().length; index++) {
			if($('divThumb'+this.elMasterId).getChildren()[index].getAttribute('index').toInt()>_index.toInt()){
				new Element('DIV', {"id":this.elMasterId+"_elementthumb"+_index,"index":_index,
				"styles":{"opacity":"1","display":"block"}
							}).injectBefore($('divThumb'+this.elMasterId).getChildren()[index]);
				found = true;
				
				break;
			}
		}
		if(!found){
		new Element('DIV', {"id":this.elMasterId+"_elementthumb"+_index,"index":_index,
		"styles":{"opacity":"1","display":"block"}
					}).injectInside($('divThumb'+this.elMasterId));
		}
		
		new Element('DIV', {"id":this.elMasterId+"_elementthumbtitre"+_index,"index":_index,"styles":{"display":"block"}
					}).setHTML(_description1).injectInside($(this.elMasterId+"_elementthumb"+_index));
		
		
		var src = "";
		var tabSize= new Array();
		if(!_src){
			src = _img.src;
			tabSize.push( _img.height);
			tabSize.push( _img.width);
		}
		else{
			src = _src;
			tabSize= this.getSizeImg(src);
		}
		var srcMain = src.substring(0,src.indexOf("_thumb.jpg"))+"_PV.jpg";
		var width = this.elMaster.getSize().size.x-10;		
		var height = this.elMaster.getSize().size.y;	
		
		new Element('A', {"id":this.elMasterId+"_elementthumbAimg"+_index,"index":_index,
		"styles":{"display":"block"},
		'href':'javascript:myMooPanoramaHisto.removeAllPanoramas();myMooPanoramaHisto.addPanoramas(new Array("'+srcMain+'"),true,new Array("'+_description1+'"),new Array(\''+_description2+'\'));myMooPanoramaHisto.box.close();',
		'alt':_description1,
		'title':_description1}).injectInside($(this.elMasterId+"_elementthumb"+_index));	
		
		
		
		new Element('IMG', {"id":this.elMasterId+"_elementthumbimg"+_index,"index":_index,
		"styles":{"display":"block"},
		'src':src,
		'alt':_description1,
		'title':_description1}).injectInside($(this.elMasterId+"_elementthumbAimg"+_index));		
		
		new Element('A', {"id":this.elMasterId+"_elementthumbA2img"+_index,"index":_index,
		"styles":{"display":"block"},
		'href':'javascript:myMooPanoramaHisto.removeAllPanoramas();myMooPanoramaHisto.addPanoramas(new Array("'+srcMain+'"),true,new Array("'+_description1+'"),new Array(\''+_description2+'\'));myMooPanoramaHisto.box.close();',
		'alt':_description1,
		'title':_description1}).setText(lngTab[8]).injectInside($(this.elMasterId+"_elementthumb"+_index));
		
		new Element('BR' ).injectInside($(this.elMasterId+"_elementthumb"+_index));		
		
		
		
		_img = null;
		
	},
	addPanoramas : function(_tabImg,_asset,_tabDescription1,_tabDescription2){
		var width = this.elMaster.getSize().size.x-10;		
		var height = this.elMaster.getSize().size.y;
		if(_asset){
			this.assetPanoramas(_tabImg,_tabDescription1,_tabDescription2);
		}
		else{
			if(_tabImg.length>0){
				for(var index=0; index<_tabImg.length; index++) {
					this.addPanorama(_tabImg[index],index,width,height,_tabDescription1[index],_tabDescription2[index]);
					if(this.options.showPanoramaIndex==index){
						this.showPanorama(this.options.showPanoramaIndex,"fade");
						
					}
				}
				
			}
			if(this.options.showPanoramaIndex>-1)
				this.activeIndex = this.options.showPanoramaIndex;
			else
				this.activeIndex = 0;
			if(this.options.useHotSpot==true){
					this.addHotSpot(this.options.urlHotSpot);
				}
			if(this.options.autoSlide)
				this.clipMyPanorama();
			else if(this.options.autoPlay)
				this.playPanorama(this.activeIndex);
		}
	},
	addPanoramasThumb : function(_tabImg,_asset,_tabDescription1,_tabDescription2){
		$('divThumb'+this.elMasterId).innerHTML = "";
		if(_asset){
			this.assetPanoramas(_tabImg,_tabDescription1,_tabDescription2,true);
		}
		else{
			if(_tabImg.length>0){
				for(var index=0; index<_tabImg.length; index++) {
					this.addPanoramaThumb(_tabImg[index],index,_tabDescription1[index],_tabDescription2[index]);
					
				}
				
			}
			this.showPanoramaThumb();
			
		}
	},
	assetComplete:function(i,_tabImg,_thumb,tabOImg){
		if(i==(_tabImg.length-1)){
			
			this.hideLoading();
					
			if(_thumb == true){
				this.showPanoramaThumb();
				this.isThumbing = false;
			}	
			else{
					
				if(this.options.showPanoramaIndex>-1){
					this.activeIndex = this.options.showPanoramaIndex;
				}
				else{
					this.activeIndex = 0;
				}
				if(this.options.useHotSpot){
						this.addHotSpot(this.options.urlHotSpot,i);
					}
				
				if(this.options.autoSlide){
					this.clipMyPanorama();
				}
				else if(this.options.autoPlay){
					
					this.playPanorama(this.activeIndex);
				}
				
			}
			tabOImg = null;
		}
	},
	assetProgress:function(i,_tabImg,_thumb,_image,_tabDescription1,_tabDescription2,width,height){
		if((this.options.useSecondLoadingPosition!=null) && (i>0)){
			this.setLoadingSecondPosition();
		}
		widthBar = this.getLoadingValue();
		
		percent = ((i + 1)*widthBar ) / _tabImg.length;
		mypercent = ((i+1)*100)/_tabImg.length;
		if(mypercent.toString().indexOf(".")>-1){
			mypercent = mypercent.toString().substring(0,mypercent.toString().indexOf(".")+3);
		}
		this.setLoadingValue(percent,mypercent+"%");
		
		desc1 = "";
		if((_tabDescription1)&&(_tabDescription1[i])){
			desc1 = _tabDescription1[i];
			/*var reg=new RegExp("(\")", "g");
			desc1 = desc1.replace(reg,"'");*/
			//desc1 = desc1.escapeRegExp();
		
		}
		desc2 = "";
		if((_tabDescription2)&&(_tabDescription2[i])){
			desc2 = _tabDescription2[i];
			
			//desc2 = desc2.replace('"',"'");
		}  
		if((_thumb)&&(_thumb == true)){
			this.addPanoramaThumb(null,i,desc1,desc2,_image);
			
		}
		else{
			
			this.addPanorama(null,i,width,height,desc1,desc2,[i]);
			if(this.options.showPanoramaIndex==(i)){
				
				this.showPanorama(this.options.showPanoramaIndex,"fade");
				
			}
			
		}
		this.assetComplete(i,_tabImg,_thumb);
	},
	/*assetPanoramasOld:function (_tabImg,_tabDescription1,_tabDescription2,_thumb){
		var width = this.elMaster.getSize().size.x-10;		
		var height = this.elMaster.getSize().size.y;
		this.showLoading();
		var widthBar=null;
		var percent=null;
		var mypercent=null;
		var desc1=null;
		var desc2=null;
		var tabOImg = new Array();
		widthBar = this.getLoadingValue();
		var stepBar =	widthBar/_tabImg.length;
		var stepBarLoad =	0;
		for(var i=0; i<_tabImg.length; i++) {
			tabOImg.push("");
		}
		$('divMain'+this.elMasterId).Empty;
		
		var fn = this;
		for(var i=0; i<_tabImg.length; i++) {
			tabOImg[i] = new Image();
			tabOImg[i].setAttribute("index",i);
			tabOImg[i].onload = function(){
				//alert(oImg.getAttribute("index"));
				if((fn.options.useSecondLoadingPosition!=null) && (this.getAttribute("index").toInt()>0)){
					fn.setLoadingSecondPosition();
				}
				//widthActBar = fn.getLoadingActValue();
				stepBarLoad+=stepBar;
				mypercent = ((parseInt(stepBarLoad)*100)/widthBar);
				if(mypercent.toString().indexOf(".")>-1){
					mypercent = mypercent.toString().substring(0,mypercent.toString().indexOf(".")+3);
				}
				fn.setLoadingValue(stepBarLoad,mypercent+"%");
				
				desc1 = "";
				if((_tabDescription1)&&(_tabDescription1[this.getAttribute("index").toInt()])){
					desc1 = _tabDescription1[this.getAttribute("index").toInt()];
				}
				desc2 = "";
				if((_tabDescription2)&&(_tabDescription2[this.getAttribute("index").toInt()])){
					desc2 = _tabDescription2[this.getAttribute("index").toInt()];
				}  
				if((_thumb)&&(_thumb == true)){
					fn.addPanoramaThumb(null,this.getAttribute("index").toInt(),desc1,desc2,this);
					
				}
				else{
					
					fn.addPanorama(null,this.getAttribute("index").toInt(),width,height,desc1,desc2,this);
					if(fn.options.showPanoramaIndex==(this.getAttribute("index").toInt())){
						
						fn.showPanorama(fn.options.showPanoramaIndex,"fade");
						
					}
					
				}
				fn.assetComplete(this.getAttribute("index").toInt(),_tabImg,_thumb,tabOImg);
			};
			//tabOImg[i][1].src = _tabImg[i];
			tabOImg[i].src = _tabImg[i];
			
			
			
		}
		
		
		
		
	},*/
	assetMyImage:function(_index,_tabImg,_tabDescription1,_tabDescription2,_thumb,tabOImg,widthBar,percent,mypercent,desc1,desc2,stepBar,stepBarLoad,width,height){
		_index =parseInt(_index);
		if(parseInt(_index)<_tabImg.length){
			/*alert(tabOImg);
			alert(_index);*/
			var OImg = new Image();
			var OImg2 = new Image();
			OImg.setAttribute("index",_index);
			OImg2.src = _tabImg[parseInt(_index)];
			if(OImg2.complete){
				var fn = this;
				OImg.src = _tabImg[parseInt(_index)];
					/*if((fn.options.useSecondLoadingPosition!=null) && (this.getAttribute("index").toInt()>0)){
						fn.setLoadingSecondPosition();
					}*/
					//widthActBar = fn.getLoadingActValue();
					stepBarLoad+=stepBar;
					mypercent = ((parseInt(stepBarLoad)*100)/widthBar);
					if(mypercent.toString().indexOf(".")>-1){
						mypercent = mypercent.toString().substring(0,mypercent.toString().indexOf(".")+3);
					}
					fn.setLoadingValue(stepBarLoad,mypercent+"%");
					
					desc1 = "";
					if((_tabDescription1)&&(_tabDescription1[OImg.getAttribute("index").toInt()])){
						desc1 = _tabDescription1[OImg.getAttribute("index").toInt()];
					}
					desc2 = "";
					if((_tabDescription2)&&(_tabDescription2[OImg.getAttribute("index").toInt()])){
						desc2 = _tabDescription2[OImg.getAttribute("index").toInt()];
					}  
					if((_thumb)&&(_thumb == true)){
						fn.addPanoramaThumb(null,OImg.getAttribute("index").toInt(),desc1,desc2,OImg);
						
					}
					else{
						
						fn.addPanorama(null,OImg.getAttribute("index").toInt(),width,height,desc1,desc2,OImg);
						if(fn.options.showPanoramaIndex==(OImg.getAttribute("index").toInt())){
							
							fn.showPanorama(fn.options.showPanoramaIndex,"fade");
							if((fn.options.useSecondLoadingPosition!=null) ){
								fn.setLoadingSecondPosition();
							}
							
						}
						
					}
					fn.assetComplete(_index,_tabImg,_thumb,OImg);
					var img = OImg;
					//var _function = new function(){
						fn.assetMyImage(parseInt(_index)+1,_tabImg,_tabDescription1,_tabDescription2,_thumb,img,widthBar,percent,mypercent,desc1,desc2,stepBar,stepBarLoad,width,height);
					//};
					//setTimeout(_function,1000);
					
				
				
			}
			else{
					/*tabOImg[_index][1] = new Image();
				tabOImg[_index][1].onload = function(_index){*/
				var fn = this;
				OImg.onload = function(){
					/*if((fn.options.useSecondLoadingPosition!=null) && (this.getAttribute("index").toInt()>0)){
						fn.setLoadingSecondPosition();
					}*/
					//widthActBar = fn.getLoadingActValue();
					stepBarLoad+=stepBar;
					mypercent = ((parseInt(stepBarLoad)*100)/widthBar);
					if(mypercent.toString().indexOf(".")>-1){
						mypercent = mypercent.toString().substring(0,mypercent.toString().indexOf(".")+3);
					}
					fn.setLoadingValue(stepBarLoad,mypercent+"%");
					
					desc1 = "";
					if((_tabDescription1)&&(_tabDescription1[this.getAttribute("index").toInt()])){
						desc1 = _tabDescription1[this.getAttribute("index").toInt()];
					}
					desc2 = "";
					if((_tabDescription2)&&(_tabDescription2[this.getAttribute("index").toInt()])){
						desc2 = _tabDescription2[this.getAttribute("index").toInt()];
					}  
					if((_thumb)&&(_thumb == true)){
						fn.addPanoramaThumb(null,this.getAttribute("index").toInt(),desc1,desc2,this);
						
					}
					else{
						
						fn.addPanorama(null,this.getAttribute("index").toInt(),width,height,desc1,desc2,this);
						if(fn.options.showPanoramaIndex==(this.getAttribute("index").toInt())){
							
							fn.showPanorama(fn.options.showPanoramaIndex,"fade");
							if((fn.options.useSecondLoadingPosition!=null) ){
								fn.setLoadingSecondPosition();
							}
							
						}
						
					}
					fn.assetComplete(_index,_tabImg,_thumb,this);
					var img = this;
					//var _function = new function(){
						fn.assetMyImage(parseInt(_index)+1,_tabImg,_tabDescription1,_tabDescription2,_thumb,img,widthBar,percent,mypercent,desc1,desc2,stepBar,stepBarLoad,width,height);
					//}
					//setTimeout(_function,1000);
					
				};
				OImg.src = _tabImg[parseInt(_index)];
			}
			
		
		}
		else{
			
			
		}
	},
	assetPanoramas:function (_tabImg,_tabDescription1,_tabDescription2,_thumb){
		if(_thumb){
			if(!this.isThumbing){
				this.isThumbing = true;
			}
			else{
				alert(lngTab[11]);
				return;
			}
		}
		var width = this.elMaster.getSize().size.x-10;		
		var height = this.elMaster.getSize().size.y;
		this.showLoading();
		var widthBar=null;
		var percent=null;
		var mypercent=null;
		var desc1=null;
		var desc2=null;
		var tabOImg = new Array();
		widthBar = this.getLoadingValue();
		var stepBar =	widthBar/_tabImg.length;
		var stepBarLoad =	0;
		for(var i=0; i<_tabImg.length; i++) {
			tabOImg.push("");
		}
		$('divMain'+this.elMasterId).Empty;
			
		this.assetMyImage(0,_tabImg,_tabDescription1,_tabDescription2,_thumb,tabOImg,widthBar,percent,mypercent,desc1,desc2,stepBar,stepBarLoad,width,height);
		/*var fn = this;
		for(var i=0; i<_tabImg.length; i++) {
			tabOImg[i] = new Image();
			tabOImg[i].setAttribute("index",i);
			tabOImg[i].onload = function(){
				//alert(oImg.getAttribute("index"));
				
			};
			//tabOImg[i][1].src = _tabImg[i];
			
			
			
			
		}*/
		
		
		
		
	},
	showPanoramaThumb:function(){
		$('mb11'+this.elMasterId).setStyle('display','block');	
		
		
		this.box.open($('mb11'+this.elMasterId));
		
		
		$('mb11'+this.elMasterId).setStyle('display','none');
	},
	setLoadingValue:function(width,_value){
		
		$('progress-bar'+this.elMasterId).setStyle('width',width);
		$('progress-bar'+this.elMasterId).setText(_value);
		
	},
	getLoadingValue:function(){
		return $('progress'+this.elMasterId).getStyle('width').toInt();
		
		
	},
	getLoadingActValue:function(){
		return $('progress-bar'+this.elMasterId).getStyle('width').toInt();
		
		
	},
	showLoading:function(){
		$('progress-main'+this.elMasterId).setStyle('left',this.elMaster.getPosition().x+(this.elMaster.getSize().size.x/2)-($('progress-main'+this.elMasterId).getSize().size.x/2)-60);
		$('progress-main'+this.elMasterId).setStyle('top',this.elMaster.getPosition().y+(this.elMaster.getSize().size.y.toInt()/2));
	
		$('progress-main'+this.elMasterId).setStyle('display',"block");
		this.setLoadingValue(0,"0%");
		
	},
	setLoadingSecondPosition : function(){
		$('progress-main'+this.elMasterId).setStyle('left',$(this.options.useSecondLoadingPosition).getPosition().x);
		$('progress-main'+this.elMasterId).setStyle('top',$(this.options.useSecondLoadingPosition).getPosition().y);
	
	},
	hideLoading:function(){
		$('progress-main'+this.elMasterId).setStyle('display',"none");
		this.setLoadingValue(0,"0%");
	},
	addDescription : function (_index,_description,_description2){
		/*new Element('DIV', {"id":this.elMasterId+"_elementint"+_index+"_desc"+_index,"index":_index,
		"styles":{"display":"block","opacity":"0.7","background-color":"#000","width":"200px","height":this.options.heightMax,"color":"#FFF","z-index":1200,"float":"left"}
					}).addClass('info-meteo').injectInside($(this.elMasterId+"_elementint"+_index));
		new Element('DIV', {"index":_index,"styles":{"display":"block","opacity":"1","width":"100%","height":"150px"}
					}).addClass('info').setHTML(_description).injectInside($(this.elMasterId+"_elementint"+_index+"_desc"+_index));
		new Element('DIV', {"index":_index,"styles":{"display":"block","opacity":"1","width":"100%","height":"250px"}
					}).addClass('meteo').setHTML(_description2).injectInside($(this.elMasterId+"_elementint"+_index+"_desc"+_index));
					
		*/
		var elToInjectIn;
		if(this.options.info_secondaire){
			elToInjectIn = $(this.options.info_secondaire);
			new Element('DIV', {"id":this.elMasterId+"_elementint"+_index+"_desc"+_index,"index":_index,
			"styles":{"display":"block","opacity":"0.7","height":"100%","z-index":1200,"float":"left"}
						}).addClass('info-meteo-secondaire').injectInside(elToInjectIn);
			new Element('DIV', {"index":_index,"styles":{"display":"block","opacity":"1","width":"100%"}
						}).addClass('info-secondaire').setHTML(_description).injectInside($(this.elMasterId+"_elementint"+_index+"_desc"+_index));
			new Element('DIV', {"index":_index,"styles":{"display":"block","opacity":"1","width":"100%"}
						}).addClass('meteo-secondaire').setHTML(_description2).injectInside($(this.elMasterId+"_elementint"+_index+"_desc"+_index));
		}
		else{
			elToInjectIn = $(this.elMasterId+"_elementint"+_index);
			new Element('DIV', {"rel":"desc"+this.elMasterId,"id":this.elMasterId+"_elementint"+_index+"_desc"+_index,"index":_index,
			"styles":{"position":"absolute","display":"block","opacity":"0","height":this.options.heightMax,"z-index":1200,"float":"left"}
						}).addClass('info-meteo').injectInside($('divMain'+this.elMasterId));
			//"position":"absolute",
			$(this.elMasterId+"_elementint"+_index+"_desc"+_index).setStyle("left",$('divMain'+this.elMasterId).getPosition().x.toInt()+'px');
			$(this.elMasterId+"_elementint"+_index+"_desc"+_index).setStyle("top",$('divMain'+this.elMasterId).getPosition().y.toInt()+'px');
			if(this.options.showoverflowX)
				$(this.elMasterId+"_elementint"+_index+"_desc"+_index).setStyle("height","395px");
			else
				$(this.elMasterId+"_elementint"+_index+"_desc"+_index).setStyle("height","400px");
			
			new Element('DIV', {"index":_index,"styles":{"display":"block","opacity":"1","width":"100%","height":"150px"}
						}).addClass('info').setHTML(_description).injectInside($(this.elMasterId+"_elementint"+_index+"_desc"+_index));
			new Element('DIV', {"index":_index,"styles":{"display":"block","opacity":"1","width":"100%","height":"250px"}
						}).addClass('meteo').setHTML(_description2).injectInside($(this.elMasterId+"_elementint"+_index+"_desc"+_index));
			//var fn = this;
			//$(this.elMasterId+"_elementint"+_index+"_desc"+_index).onmouseenter = function(){fn.endDrag.bind(fn);this.fireEvent('onblur')};
			/*$(this.elMasterId+"_elementint"+_index+"_desc"+_index).onselectstart=function() {
			return false;
			}
			$(this.elMasterId+"_elementint"+_index+"_desc"+_index).onmousedown=function() {
			return false;
			}
			$(this.elMasterId+"_elementint"+_index+"_desc"+_index).onmouseenter=function() {
			$(fn.elMasterId+"_elementint"+_index+"_desc"+_index).selectionStart = 0;
			$(fn.elMasterId+"_elementint"+_index+"_desc"+_index).selectionEnd = 0;
			}
						
			*/
		}
		
		
	},
	removeAllPanoramasThumb: function (){
		for(var index=0; index<this.nbElementThumb; index++) {
			this.removePanoramaThumb(index);
		}
		this.nbElementThumb = 0;
		if($("divThumb"+this.elMasterId)){
			$("divThumb"+this.elMasterId).innerHTML="";
		}
		
	},
	removePanoramaThumb : function (_index){
		//
		if($(this.elMasterId+"_elementthumb"+_index)){
			$(this.elMasterId+"_elementthumb"+_index).remove();
		}
		
		this.nbElementThumb--;
		this.options.tabImg = null;
	},
	removeAllPanoramas : function (){
		for(var index=0; index<this.nbElement; index++) {
			this.removePanorama(index);
		}
		this.tabEffectsFadeIn = new Array();
		clearTimeout(this.timerMaster);
		this.nbElement = 0;
		if($('divMain'+this.elMasterId)){
			$('divMain'+this.elMasterId).innerHTML="";
		}
	},
	removePanorama : function (_index){
		//
		$(this.elMasterId+"_element"+_index).remove();
		if(this.options.showControls)
			$('controls-main'+this.elMasterId+_index).remove();
		this.nbElement--;
		this.options.tabImg = null;
	},
	setEffect : function (_strEffect){
		this.options.autoSlideMethod = _strEffect;
	},
	setDurationClip : function (_strDuration){
		this.options.durationAttenteAutoSlide = _strDuration;
	},
	showPanorama : function(_index,_type,_duration){
		
		if(!_type)
			_type = "fade";
		if(!$(this.elMasterId+"_element"+_index))
			return false;
			
		if(this.options.showControls)
			this.showControls(_index);
			
		$(this.elMasterId+"_element"+_index).setStyle('display','block');
		
		if(_type == "fade"){
			
			
			var opa = this.options.durationEffectOpacity;
			if(_duration){
				if(opa>_duration)
					opa = _duration-100;
			}
			var fn = this;
			var myMorph2 = new Fx.Morph(this.elMasterId+"_element"+_index, {wait: false});
		    myMorph2.start('morph1');
		   /* var myMorph3 = new Fx.Morph(this.elMasterId+"_elementint"+_index+"_desc"+_index, {wait: false});
		    myMorph3.start('morph3');*/
		    $(this.elMasterId+"_elementint"+_index+"_desc"+_index).setStyle("opacity","0.7");
		    
			/*new Fx.Styles($(this.elMasterId+"_element"+_index), {duration:opa, wait:false}).start({
					'opacity': 1
					
				});
				/*
			new Fx.Styles($(fn.elMasterId+"_elementint"+_index+"_desc"+_index), {duration:opa, wait:false}).start({
					'opacity': 0.7
					
				});*/
			/*if((_index>-1)&&(_index<this.tabEffectsFadeIn.length)){
				this.tabEffectsFadeIn[_index].options.duration =  opa;
				this.tabEffectsFadeIn[_index].start({
					'opacity': 1
				});
			}*/
			
		}
		else{
			
			$(this.elMasterId+"_element"+_index).setStyle("opacity","1");
			$(this.elMasterId+"_elementint"+_index+"_desc"+_index).setStyle("opacity","0.7");
			
		}
		
	},
	setThumbSpace : function (_id_space_thumb){
		this.options.thumbSpace = _id_space_thumb;
	},
	hidePanorama : function(_index,_type,_duration){
		if(!_type)
			_type = "fade";
		if(!$(this.elMasterId+"_element"+_index))
			return false;
		if(this.options.showControls)
			this.hideControls(_index);
		//$(this.elMasterId+"_element"+_index).setStyle("display","block");
		if(_type == "fade"){
			var opa = this.options.durationEffectOpacity;
			if(_duration){
				if(opa>_duration)
					opa = _duration-100;
			}
			/*alert(1);
			if((_index>-1)&&(_index<this.tabEffectsFadeIn.length)){
				this.tabEffectsFadeIn[_index].options.duration =  opa;
				this.tabEffectsFadeIn[_index].start({
					'opacity': 0
				});
			}*/
			/*new Fx.Styles($(this.elMasterId+"_element"+_index), {duration:opa, wait:false}).start({
					'opacity': 0
				});*/
			var myMorph2 = new Fx.Morph(this.elMasterId+"_element"+_index, {wait: false});
		    myMorph2.start('morph2');
		   /* var myMorph3 = new Fx.Morph(this.elMasterId+"_elementint"+_index+"_desc"+_index, {wait: false});
		    myMorph3.start('morph4');*/
		    $(this.elMasterId+"_elementint"+_index+"_desc"+_index).setStyle("opacity","0");
		}
		else{
			$(this.elMasterId+"_element"+_index).setStyle('display','none');
			$(this.elMasterId+"_element"+_index).setStyle("opacity","0");
			
			$(this.elMasterId+"_elementint"+_index+"_desc"+_index).setStyle("opacity","0");
		}
		
		
	},
	
	
	
	clipMyPanorama : function(){
		
		if(this.activeIndex < 0)
			this.activeIndex = 0;
		if(this.activeIndex>=this.nbElement)
			this.activeIndex = 0;
		
		clearTimeout(this.timerMaster);
		if(this.nbElement == 0){
			
			
			//this.timerMaster = setTimeout(returns,this.options.durationAttenteAutoSlide);
			return;
		}
		this.options.durationAttenteAutoSlide = 2000-(parseInt($('speedValue').innerHTML))*2000/4000;//(3000-parseInt($('speedValue').innerHTML));
		if(this.options.durationAttenteAutoSlide<0)
			this.options.durationAttenteAutoSlide = 100;
		var myscrollPosition = -1;
		if($(this.elMasterId+"_element"+this.activeIndex))
			myscrollPosition = this.getScrollBarHorizontalPosition($(this.elMasterId+"_element"+this.activeIndex));
		
		this.hidePanorama(this.activeIndex,this.options.autoSlideMethod,this.options.durationAttenteAutoSlide);
		this.activeIndex++;
		
		if(this.activeIndex>=this.nbElement)
			this.activeIndex = 0;
			
		this.showPanorama(this.activeIndex,this.options.autoSlideMethod,this.options.durationAttenteAutoSlide);
		
		if((myscrollPosition!=-1)&& $(this.elMasterId+"_element"+this.activeIndex))
			this.setScrollBarHorizontalPosition(myscrollPosition,$(this.elMasterId+"_element"+this.activeIndex));
		
		if(this.nbElement == 1){
			
			
			//this.timerMaster = setTimeout(returns,this.options.durationAttenteAutoSlide);
			return;
		}
		
		
		this.timerMaster = setTimeout(this.idExt+".clipMyPanorama();",this.options.durationAttenteAutoSlide);
		
	},
	playPanorama : function(_index){
		this.options.enableDrag = false;
		this.activeIndex = _index;
		clearTimeout(this.timerMaster);
		if($('divControlStart'+this.elMasterId+_index)){
			
			$('divControlStart'+this.elMasterId+_index).removeClass("control-start");
			$('divControlStart'+this.elMasterId+_index).addClass("control-start-selected");
			
			
			$('divControlStop'+this.elMasterId+_index).removeClass("control-stop-selected");
			$('divControlStop'+this.elMasterId+_index).addClass("control-stop");
			
			$('divControlMove'+this.elMasterId+_index).removeClass("control-move-selected");
			$('divControlMove'+this.elMasterId+_index).addClass("control-move");
			$(this.elMasterId+"_elementint"+this.activeIndex).setStyle('cursor','default');
			this.playAutoPanorama(_index);
		}
	},
	playAutoPanorama : function(_index){
		
		if($(this.elMasterId+"_elementint"+_index)){
			
		
			if(this.offsetPanorama<= -$(this.elMasterId+"_elementint"+_index).getStyle('width').toInt()){
				this.offsetPanorama = 0;
			}
			else if(this.offsetPanorama>=$(this.elMasterId+"_elementint"+_index).getStyle('width').toInt()){
				this.offsetPanorama = 0;
			}
			if(this.options.autoPlaySens == "left"){
				this.offsetPanorama = parseInt(this.offsetPanorama) + parseInt(this.options.autoPlayStep) ;
			}
			else{
				this.offsetPanorama = parseInt(this.offsetPanorama) - parseInt(this.options.autoPlayStep) ;
			}
			//$('debug_general').setHTML(this.offsetPanorama);
		
			$(this.elMasterId+"_elementint"+_index).setStyle('background-position',this.offsetPanorama+"px 0px");
			if(this.options.useHotSpot){
		    	this.moveHotSpots(this.offsetPanorama);
		    }
			var fn = this;
			var returns = function(){
				fn.playAutoPanorama(_index);
			};
			this.timerMaster = setTimeout(returns,this.options.durationAutoPlay);
		}
	},
	stopPanorama : function(_index){
		this.activeIndex = _index;
		clearTimeout(this.timerMaster);
		$('divControlStart'+this.elMasterId+_index).removeClass("control-start-selected");
		$('divControlStart'+this.elMasterId+_index).addClass("control-start");
		
		$('divControlStop'+this.elMasterId+_index).removeClass("control-stop");
		$('divControlStop'+this.elMasterId+_index).addClass("control-stop-selected");
		
		$('divControlMove'+this.elMasterId+_index).removeClass("control-move-selected");
		$('divControlMove'+this.elMasterId+_index).addClass("control-move");
		$(this.elMasterId+"_elementint"+this.activeIndex).setStyle('cursor','default');
		this.options.enableDrag = false;
	},
	movePanorama : function(_index){
		this.activeIndex = _index;
		clearTimeout(this.timerMaster);
		$('divControlStart'+this.elMasterId+_index).removeClass("control-start-selected");
		$('divControlStart'+this.elMasterId+_index).addClass("control-start");
		
		$('divControlStop'+this.elMasterId+_index).removeClass("control-stop");
		$('divControlStop'+this.elMasterId+_index).addClass("control-stop-selected");
		
		$('divControlMove'+this.elMasterId+_index).removeClass("control-move");
		$('divControlMove'+this.elMasterId+_index).addClass("control-move-selected");
		
		$(this.elMasterId+"_elementint"+this.activeIndex).setStyle('cursor','pointer');
		this.options.enableDrag = true;
	},
	getScrollBarHorizontalPosition:function(_el){
			if(_el)
			return _el.getSize().scroll.x;	
			else
			return 0;
			
			/*if (navigator.appName == "Microsoft Internet Explorer"){
				return (_el.scrollLeft);
				
			}
			else{
				return (_el.scrollLeft);
			}*/
		
	},
	setScrollBarHorizontalPosition:function(_value,_el){
			/*if (navigator.appName == "Microsoft Internet Explorer"){
				
				_el.scrollLeft = _value;
				
			}
			else{
				_el.scrollLeft= _value ;
			}
			* */
			if(_el)
			_el.scrollLeft = _value;
		
	},
	initDrag : function (event)	  {
	  	if(this.options.enableDrag == true){
  			if (!event) event = window.event;
  			    var event = new Event(event);
  			    
		    this.options.xStart = parseInt(event.client.x);
	   		this.options.yStart = parseInt(event.client.y);
	   		var container = this.elMasterId+"_elementint"+this.activeIndex;
	   		 $(container).style.backgroundPosition = (parseInt((this.offsetPanorama)) ) + 'px 0px';
	   		  
		     $(container).onmouseup = this.endDrag.bind(this);
		     $(container).onmousemove = this.drag.bind(this);
		   
	 		
	  	}
	    
	},
	drag : function(event){
  	 	if(this.options.enableDrag == true){
		  	if (!event) event = window.event;
		  	var event = new Event(event);
		  	this.options.xDelta = this.options.xStart - parseInt(event.client.x);
	   		this.options.yDelta = this.options.yStart - parseInt(event.client.y);
		   
		    this.options.xStart = parseInt(event.client.x);
		    this.options.yStart = parseInt(event.client.y);
		    
		    this.offsetPanorama = parseInt(this.offsetPanorama) - this.options.xDelta;
		    if(this.offsetPanorama<= -$(this.elMasterId+"_elementint"+this.activeIndex).getStyle('width').toInt()){
				this.offsetPanorama = 0;
			}
			else if(this.offsetPanorama>=$(this.elMasterId+"_elementint"+this.activeIndex).getStyle('width').toInt()){
				this.offsetPanorama = 0;
			}
		    var container = this.elMasterId+"_elementint"+this.activeIndex;
		    
		  	$(container).style.backgroundPosition=this.offsetPanorama+'px 0px';
		  	if(this.options.useHotSpot){
		    	this.moveHotSpots(this.offsetPanorama);
		    }
   		}
    },
    endDrag: function(event){
    	var container = this.elMasterId+"_elementint"+this.activeIndex;
    	$(container).onmouseup = null;
		$(container).onmousemove = null;
		
    	
    },
	addHotSpot:function(url,_index){
		/*var fn=this;
		var index=_index;
		var request = new Json.Remote(url, {
			onComplete: function(jsonObj) {
				fn.addHots(jsonObj.hotspots,index);
			}
		}).send()*/
	},
	addHots : function(hotspots,_index) {
		/*var fn = this;
		var cptHot = 0;
		hotspots.each(function(hotspot) {
			var el = new Element('div', {'id':fn.elMasterId+"_element"+_index+'-hot'+cptHot, 'class':fn.elMasterId+"_element"+_index+'-hot', "styles":{'background':'#000000','width':'10px','height':'10px'}});
			el.setStyle('position','absolute');
			el.setStyle('z-index','99999');
			el.setAttribute('originalLeft',hotspot.hotspot_x.toInt());
			el.setHTML('aaaaaaaaaa');
			el.setStyle('left',($(fn.elMasterId+"_element"+_index).getPosition().x.toInt()+hotspot.hotspot_x.toInt())+"px");
			el.setStyle('top',($(fn.elMasterId+"_element"+_index).getPosition().y.toInt()+hotspot.hotspot_y.toInt())+"px");
			el.injectInside($(fn.elMasterId+"_element"+_index));
			cptHot++;
			
		});*/
	},
	moveHotSpots:function(_offsetPanorama){
	/*	var offsetPanorama = _offsetPanorama;
		var fn = this;
		$$('.'+this.elMasterId+"_element"+this.activeIndex+'-hot').each(function(hotSpot){
			var myoffsetPanorama = offsetPanorama
			//this.offsetPanorama+'px 0px'
			//rtl
			if(_offsetPanorama<= (-$(fn.elMasterId+"_elementint"+fn.activeIndex).getStyle('width').toInt()+hotSpot.getAttribute('originalLeft').toInt())){
				myoffsetPanorama = _offsetPanorama+ (+$(fn.elMasterId+"_elementint"+fn.activeIndex).getStyle('width').toInt());
			}
			//ltr
			else if(_offsetPanorama>=($(fn.elMasterId+"_elementint"+fn.activeIndex).getStyle('width').toInt()-hotSpot.getAttribute('originalLeft').toInt())){
				myoffsetPanorama = _offsetPanorama+ (-$(fn.elMasterId+"_elementint"+fn.activeIndex).getStyle('width').toInt());
			}
			hotSpot.setStyle('left',(hotSpot.getAttribute('originalLeft').toInt()+myoffsetPanorama)+"px");
		})
		* */
	}
	
		
	
});

mooPanorama.implement(new Options,new Events);
	