



//vars de base
function ConfigCheminee(){
	this.pays=false;
	this.unite=false;
	this.instal=false;
	this.nomInstal=false;
	this.diametre=$('#diametre').val();
	this.mesurelongueur=false;
	this.mesuredistt=false;
	this.nplafonds=$("#nplafonds").val();;
	this.pente=$("#pente").val();
	this.chapeau=$("#chapeau").val();
	this.solin=$("#solin").val();
	this.depasseToit=0;//de combien la chem depase du toit

	this.support=$("#support").val();
	this.sections=new Array();

	this.isOffset=false;
	this.mesureoffsetw=false;
	this.mesureoffsetRise=0;
	this.mesureoffsetdist=false;
	this.offsetAngle=false;
	this.offsetRise=false;

	//les differences entre les longueurs proposées
	this.diff=new Array();
	this.diff.longueur=0;
	this.diff.distt=0;
	this.diff.offsetdist=0;

	//pieces qui n'existent pas aux usa
	this.noExistUSA=new Array('ERSA','ERST','ERSF','EE45');

	this.result=new Array();

}


ConfigCheminee.prototype.changeImageInstal=function(instal){
//_debug(instal);
	$('.productImage').fadeOut(function () {
		$('.productImage').html("<img  src='c/icc/img/config_chem/"+instal+".jpg' />")
		$('.productImage').fadeIn();
	})
	
	//$('#confChem').addClass('im_'+instal);
	//$("img[id^=imInstal]").hide();
	//$("#imInstal_"+instal).show();
}


ConfigCheminee.prototype.show=function(){

	$('#result').show();

    /*for( var k in this.result){
		_debug(k+ ' ' + this.result[k]+'<br>');
	}*/

	var dia=this.diametre;



	//_debug(this.chapeau);

	//loop dans les SKUS donnés par la db. Chacun a son row dans le html
    var itemToCheck="input[id^=basesku]";
    var iCountMax = $(itemToCheck).size();

	for (i=0; i < iCountMax; i++) {

		//le sku
		var thisSku=$(itemToCheck).eq(i).attr('value');

		//

		//y-a-t-il un sku pour cet item pour ce diamètre?
		var thisDiaSku=$('#sku_'+thisSku+'_'+dia).val();

		//cette piece existe-t-elle aux usa?

		if(thisDiaSku==''){//yen a pas, met la tr invisible
			$('#row'+thisSku).hide();

			//_debug(thisSku + ' ' + thisDiaSku + '<br>');

		} else {
			$('#row'+thisSku).show();


			//_debug(':'+thisSku + ': ' + thisDiaSku + '<br>');

			//met le sku de cet element dans le TD du sku et dans le input du nom du sku
			$('#td'+thisSku).html(thisDiaSku);
			$('#sku_'+thisSku).val(thisDiaSku);

            //y-a-t-il un resultat pour ce sku?
			if(this.result[thisSku]){
                $('#inp_'+thisSku).val(this.result[thisSku]);
				$('#qty_'+thisSku).html(this.result[thisSku]);
			} else {
                $('#inp_'+thisSku).val(0);
				$('#qty_'+thisSku).html('');
			}


		}

	}

	//cache les pieces canada seulement si on est aux usa
	for(var i in this.noExistUSA){
		key='#row'+this.noExistUSA[i];
		if(this.pays=='USA'){
			$(key).hide();
		}else{
			$(key).show();
		}
	}


}
ConfigCheminee.prototype.sectionsBase=[48,24,18,12,6];
ConfigCheminee.prototype.combinesOffsets={'oc0':[0],'oc1':[6],'oc2':[12],'oc3':[18],'oc4':[24],'oc5':[24,12],'oc6':[48],'oc7':[48,12],'oc8':[48,18],'oc9':[48,24],'oc10':[48,24,12],'oc11':[48,48]};

ConfigCheminee.prototype.coudes=tcoudes={
5:{15:[1.836,2.836],30:[2.313,3.313],45:[2.825,3.825]},
6:{15:[1.902,2.902],30:[2.447,3.447],45:[3.032,4.032]},
7:{15:[1.967,2.967],30:[2.581,3.581],45:[3.239,4.239]},
8:{15:[2.033,3.033],30:[2.715,3.715],45:[3.446,4.446]}};
ConfigCheminee.prototype.toRad=function(deg){
	return (2*Math.PI)*(deg/360);
}


ConfigCheminee.prototype._calculeOffset=function(){

	//ne calcule rien si il nous manque une distance OU si on n'a pas d'offset
	if(!this.isOffset || !this.mesureoffsetw || !this.mesureoffsetRise){
		return;
	}

	this.diametre=$('#diametre').val();//sette le diametre

	//_debug('w:'+this.mesureoffsetw+' r:'+this.mesureoffsetRise);

	var a,arad,lcoudes,offset,lsect,rise,res;
	//pour chaque angle, calcule la première combinaison de tuyau qui arrive à la mesure d'offset
	loop_angles:
	for(var i in this.angles){
		a=this.angles[i];

        //les longueurs des coudes, dependant de l'angle
		lcoudes=this.coudes[this.diametre][a][0]+this.coudes[this.diametre][a][1];

		//l'angle en rads
		arad=this.toRad(a);

        //calcule l'offset selon les combnes de tuyau, jusqu'à ce qu'on arrive à dépasser l'offset demandé
        loop_combines:
        for(var y in this.combinesOffsets){//loop dans les combines possibles
        	//
			lsect=0;
        	for (var c in this.combinesOffsets[y]){
				lsect+=this.combinesOffsets[y][c]-1.75;
			}
			offset = (lsect+lcoudes)*Math.sin(arad);//calcule l'offset de cette combine de sections

			//_debug('a: '+a+' s: ' +lsect+'  off: <b>'+offset+'</b>');

			if(offset>this.mesureoffsetw){//l'offset est plus grand que ce qu'on veut : calcule son rise et sort du loop
                 //calcule le rise
   				rise=((lsect+lcoudes)*Math.cos(arad))+lcoudes;//calcule le rise
				rise=Math.round(rise*4)/4;

				//est-ce que le rise est plus petit que la mesure qu'on a?
				if(rise<this.mesureoffsetRise){
					res=offset;//on a trouvé un offset plus large et moins haut
					break loop_angles;
				} else {
					//la hauteur depasse deja ce qu'on veut. Arrete de calculer les longueurs, change d'angle
					break loop_combines;
				}

			}
		}//fin loop combines
		//this._getSectionsFromOffset(this.diametre,a,this.mesureoffsetw);

	}//fin loop angles
	if(res){//on a trouvé une combinaison qui fitte
		$('#erreurOffset').hide();
		$('#emptyoffset').hide();

		//les sections de base de cette installation sont celles qui ont été trouvées
		//le c0 n'a aucune section dedans, on le met pas
		if(y !='c0')	this.sections=this.combinesOffsets[y];

		//le rise réel est celui calculé
		this.offsetRise=rise;

		//met l'angle en var d'objet
		this.offsetAngle=a;

		//met la mesure exacte calculée en offset
		this.mesureoffsetw=res;

	    //_debug('RESULT angle: '+a+' sections: ' +lsect+'  offset: <b>'+res+'</b> rise: '+rise);
		//_debug('rise: '+this.mesureoffsetRise+ ', offset: '+this.mesureoffsetw);
	} else {//aucune possibilité de faire cet offset dans cette hauteur
		this.sections=new Array();
		this.offsetRise=0;
		this.offsetAngle=0;
		$('#erreurOffset').show();
	}
}
ConfigCheminee.prototype._isValidOffset=function(){//indique si on a calculé un offset valide (s'il y a un angle, c'est que oui)
	return this.offsetAngle>0;
}
//*******************************************************************************************
//*******************************************************************************************
//*******************************************************************************************
ConfigCheminee.prototype._getResult=function(){

	this.result=new Array();

	//

	//calcule les sections dont on a besoin

	$('#step_3').hide();
	$('#res_bloc_offset').hide();
	$('#res_bloc_distt').hide();
	$('#res_bloc_diff_distt').hide();
	$('#res_bloc_diff_longueur').hide();
	$('#res_bloc_diff_offsetdist').hide();

	//met les resultats dans les boites appropriées
	$('#res_type').html(this.nomInstal);
	$('#inp_res_type').val(this.nomInstal);
	$('#res_longueur').html(this.mesurelongueur+' ');
	$('#inp_res_longueur').val(this.mesurelongueur);
	$('#res_pente').html(this.pente+' ');
	$('#inp_res_pente').val(this.pente);



	if(this.offsetAngle){

		//_debug('<b>Sections de la déviation</b>',true);_debug(this.sections);

		var sectionsBas=this._getSectionsFromMesure(this.mesureoffsetdist, true);
		this.sections=this.sections.concat(sectionsBas.sections);

		//le reste
		this.diff.offsetdist=sectionsBas.reste;

		//_debug('<b>Sections sous la déviation</b>');_debug(sectionsBas.sections);_debug('<b>Reste sous la déviation</b> '+ sectionsBas.reste);

		var reste=Math.round((this.mesurelongueur-this.offsetRise)*10)/10;

	} else {
		var reste=this.mesurelongueur;
	}


	if(this.mesuredistt){
		var sectionsT=this._getSectionsFromMesure(this.mesuredistt);
		this.sections=this.sections.concat(sectionsT.sections);
        //_debug('<b>Sections pour se rendre au T</b>');_debug(sectionsT.sections);_debug('<b>Reste du T</b> '+ sectionsT.reste);

        //le reste
		this.diff.distt=Math.round((sectionsT.reste)*10)/10;
	}


	if(sectionsBas){
		reste-=sectionsBas.total;
	}
	var sectionsTop=this._getSectionsFromMesure(reste, true);

	//_debug('<b>Sections au dessus de la déviation</b>');_debug(sectionsTop.sections);_debug('<b>Reste au dessus</b> '+ sectionsTop.reste);

    //le reste
	this.diff.longueur=Math.round((sectionsTop.reste)*10)/10;
	if(this.diff.longueur){
		$('#res_diff_longueur').html(this.diff.longueur+' ');
		$('#inp_res_diff_longueur').val(this.diff.longueur);
		$('#res_bloc_diff_longueur').show();
	}

	this.sections=this.sections.concat(sectionsTop.sections);

	//cree les sections de base
	for(var i in this.sectionsBase){
		this.result['EL'+this.sectionsBase[i]]=0;
	}

	//loop dans les sections et ajoute les numeros
	for(var i in this.sections){
		this.result['EL'+this.sections[i]]+=1;
	}


	//ici, on a les sections. Ensuite, trouve les pièces par defaut.
	if(this.instal=='cat'){

		//support
		this.getSupport();

		//ecrans pour plafond
		this.result['ERSA']=0;


	} else if (this.instal=='int'){

		//support
		this.getSupport();
		//planchers
		this.result['ERSA']=Number(this.nplafonds)-1;//il n'y a pas de ersa dans le dernier plafond (2008-02-22)
		//2008-02-21 : selon MARK on met ces 2 pieces par defaut (ce n'en prend qu'une mais on met les 2)
		this.result['ERST']=this.result['ERSA'];


		if(this.offsetAngle){
			//ajoute un support
			this.result['EOS']=1;

			//s'il y a un offset, on remplace un des erst par un ersf
			if(this.result['ERST']>0){
				this.result['ERST']-=1;
				if(this.result['ERSF']){//javascript n'additionnera pas à une valeur null
					this.result['ERSF']+=1;
				} else {
					this.result['ERSF']=1;
				}
			}

			//coudes
			this.getCoudes();

			//montre le bloc offset dans le resultat
			$('#res_bloc_offset').show();

			var roundRise=Math.round(this.offsetRise*10)/10;
			var roundOWidth=Math.round(this.mesureoffsetw*10)/10;

			//met les mesures d'offset dans le resultat
			$('#res_offsetw').html(roundOWidth+' ');
			$('#inp_res_offsetw').val(roundOWidth);
			$('#res_offsetrise').html(roundRise+' ');
			$('#inp_res_offsetrise').val(roundRise);
			$('#res_offsetangle').html(this.offsetAngle+' ');
			$('#inp_res_offsetangle').val(this.offsetAngle);
			$('#res_offsetdist').html(this.mesureoffsetdist+' ');
			$('#inp_res_offsetdist').val(this.mesureoffsetdist);

            if(this.diff.offsetdist){
				$('#res_diff_offsetdist').html(this.diff.offsetdist+' ');
				$('#inp_res_diff_offsetdist').val(this.diff.offsetdist);
				$('#res_bloc_diff_offsetdist').show();
			}

		}


	} else if(this.instal=='ext'){

		$('#res_bloc_distt').show();
		$('#res_distt').html(this.mesuredistt+' ');
		$('#inp_res_distt').val(this.mesuredistt);
		if(this.diff.distt){
			$('#res_diff_distt').html(this.diff.distt+' ');
			$('#inp_res_diff_distt').val(this.diff.distt);
			$('#res_bloc_diff_distt').show();
		}

		//té
		this.result['ETI']=1;
		this.result['ERS']=1;
		//suports
		this.getExtSupports();
		//écran
		this.result['EWRS']=1;

	}

	//on met un support de toit si la chem depasse de 60po
	if(this.depasseToit>60){
		this.result['ERB']=1;
	}

	//un ESC par installation
	this.result['ESC']=1;

	//les ersa n'existent pas aux usa : remplacés par ers
	if(this.pays=='USA'){
		this.result['ERS']=this.result['ERSA'];
		this.result['ERSA']=0;
		this.result['ERST']=0;
		this.result['ERSF']=0;
	}

	//chapeau
	this.getChapeau();

	//solin
	this.getSolin();

	//_debug(this.sections);
	this.show();


}
ConfigCheminee.prototype.getExtSupports=function(){
	//il y a un support de mur par 8 pieds (96po) de sections, plus un pour le bas
	var longueurMur=this.mesurelongueur-this.depasseToit;
	this.result['EWS']=(Math.ceil(longueurMur/96))+1;


}
ConfigCheminee.prototype.getCoudes=function(){
	if(this.offsetAngle){//s'il y a une deviation
		//le no de la piece depend du diametre et de l'angle : 2007-12-20: je ne met pas le diametre, il n'est pas ds les nos de produits
		//var key=this.diametre+'EE'+this.offsetAngle;
		var key='EE'+this.offsetAngle;
		this.result[key]=2;//2 coudes pour la deviation
	}

}
ConfigCheminee.prototype.getSupport=function(){
	if(this.support=='round'){
		this.result['ERDS']=1;
	} else if(this.support=='square'){
		this.result['ESS']=1;
	} else {
		this.result['ESS']=0;
		this.result['ERDS']=0;
	}
}
ConfigCheminee.prototype.getChapeau=function(){
	//ne fait que setter le chapeau. Dans une fonction au cas ou on aurait eventuellement des paramètres à vérifier
	//_debug('chapeau '+this.chapeau);
	this.result[this.chapeau]=1;
}
ConfigCheminee.prototype.getSolin=function(){
	//le solin depend de la pente.

	//le type de toit est en fait le numero de base du solin. Chaque type de toit a son type de solin, et la value de l'option est ce numero

	var numero='';

	var pente=Number(this.pente);

	//_debug(pente);
	if(pente>0 && pente<=7){
		numero='A';
	}else if(pente>7 && pente<=12){
		numero='B';
	} else if(pente>12 && pente<=21){
		numero='C';
	}

	this.result[this.solin+numero]=1;

}

//*******************************************************************************************
//*******************************************************************************************
//*******************************************************************************************
ConfigCheminee.prototype._getSectionsFromMesure=function(l, isVertical){
	//trouve les sections qui forment une mesure
	var r={'sections':[],'reste':0,'total':0};
	var n=0;
	var cs=0;
	for(var i in this.sectionsBase){
		cs=this.sectionsBase[i];
		//_debug(cs);
		if(isVertical){
			//dans les sections verticales, on n'enlève pas le 1.75
			var csCorrige=cs;
		} else{
			var csCorrige=cs-1.75;//sections ont 1.75po de moins pour le joint
		}
		n=Math.floor(l/csCorrige);//n de sections completes pour cette mesure
		for(var y=0;y<n;y++){
			l-=csCorrige;//diminue la mesure de la long de cette section
			r.sections[r.sections.length]=cs;//ajoute cette sect au output
			r.total+=csCorrige;
		}
	}
	r.reste=l;
	return r;
}
ConfigCheminee.prototype.changeUnite=function(u,n){
	//alert(u);

	this.unite=u;

	//affiche le texte de l'unite selectee dans les endroits où on doit indiquer l'unite
	$("span[id$='_nomunite']").html(n);

	var o=this;
	//calcule les transformations
	$("span[id$='_converted']").map(function(){//traverse les elements qui sont une unite transformee
		var quel=$(this).attr('id');//le id de lunite transformee
		quel=quel.substr(0,quel.indexOf('_',0));//l'element controle a comme id le debut de clui-ci

		var key='#'+quel;//key pour jquery

		var mesure=$(key).val();//la mesure
		mesure=mesure?mesure:0;//default 0

		var convertedmesure=o.convertMesure(mesure);//convertit

		o._setVal(quel,convertedmesure);//sette en var d'objet
		//_debug(convertedmesure);

		$(this).html(String(convertedmesure)+' ');//met la mesure convertie au bon endroit


	});

	//recalcule le offset
	this._calculeOffset();

	//$("span[id$='_converted']").addClass('emphase');

}
//change la mseure d'un span de mesure convertie pour refleter le input qu'il représente
ConfigCheminee.prototype.changeMesure=function(id,val){
	//alert(u);
	//_debug(id);
	mesure=this.convertMesure(val);//convertit
	this._setVal(id,mesure);//sette en var d'objet
	//le span qui affiche la mesure convertie
	$("span[id='"+id+"_converted']").html(String(mesure)+' ');

	//$("span[id$='_converted']").addClass('emphase');

}
ConfigCheminee.prototype.changeInstal=function(instal, nom){
	//_debug(instal+' '+nom);
	this.instal=instal;
	this.nomInstal=nom;
	if(instal=='cat'){
		//cathedrale : cache le offset et le nombre de planchers
		$('#bloc_distt').hide();
		$('#bloc_nplafonds').hide();
		$('#bloc_offsetbool').hide();
		$('#bloc_offset').hide();
		$('#bloc_support').show();

		this.changeImageInstal('cat');

		$("#support").val('square');
		this._setVal('support','square');

	} else if (instal=='int'){
		//_debug('ok');
        $('#bloc_distt').hide();
		$('#bloc_nplafonds').show();
        $('#bloc_offsetbool').show();
        $('#bloc_support').show();

        $("#support").val('round');
        this._setVal('support','round');

        //se fait par le changement de offset
       // this.changeImageInstal('int');

		this._setBoolOffset();


	} else if(instal=='ext'){
        $('#bloc_distt').show();
		$('#bloc_nplafonds').hide();
        $('#bloc_offsetbool').hide();
		$('#bloc_offset').hide();
		$('#bloc_support').hide();

		this.changeImageInstal('ext');

		//enleve support 2008-02-26
		this._setVal('support','');
	}

	//recheck le diametre (pour le support)
	this._checkDiametre();

}



ConfigCheminee.prototype._getIsOffset=function(){
	return this.isOffset;
}
ConfigCheminee.prototype._getInstal=function(){
	return this.instal;
}
ConfigCheminee.prototype._setVal=function(k,v){
	//_debug(k+' '+v);
	this[k]=v;
}
// OFFSET ***********************************************************************************
// OFFSET ***********************************************************************************
// OFFSET ***********************************************************************************
ConfigCheminee.prototype.setAnglesPays=function(){
	//selon le pays, on sette l'angle disponible

	var p=$('#pays').val();
	this.pays=p;
	if(p=='USA'){

		this.angles=[15,30];

		//$('#offsetAngle').children().filter('[value=45]').hide();
	} else {

		this.angles=[15,30,45];
		//$('#offsetAngle').children().filter('[value=45]').show();
	}

}
ConfigCheminee.prototype._setBoolOffset=function(){
	//met le form de offset si on dit qu'il y en a un
    var i=$('#offsetbool').val();
    //_debug(i);
	if(i==0){
		this.isOffset=false;
		$('#bloc_offset').hide();
        this.mesureoffsetw=false;
        this.mesureoffsetRise=false;
		this.offsetAngle=false;
		this.mesureoffsetdist=false;
		this.changeImageInstal('int');
	} else {
		this.isOffset=true;
		this.changeImageInstal('off');
		this._calculeOffset();
		this._setVal('mesureoffsetdist',$('#mesureoffsetdist').val());
		this._setVal('mesureoffsetw',$('#mesureoffsetw').val());
		$('#bloc_offset').show();
	}

}
ConfigCheminee.prototype._getSectionsFromOffset=function(d,a,o){


	//les longueurs des coudes, dependant de l'angle
	var lcoudes=this.coudes[d][a][0]+this.coudes[d][a][1];

	//l'angle en rads
	var arad=this.toRad(a);

	//longueur de tuyau entre les coudes
	var lsect=(o/Math.sin(arad))-lcoudes;

    //calcule le rise
   	var rise=((lsect+lcoudes)*Math.cos(arad))+lcoudes;//calcule le rise
	this.riseCalcul=Math.round(rise*4)/4;

	//_debug('Pour un angle de '+a+' , un dia de '+d+' et un offset de '+o+', on a besoin de '+lsect+' po de sections. Le rise est de '+rise +'po');

	//this._getSectionsFromMesure(lsect);

}

// FIN OFFSET ***********************************************************************************
// FIN OFFSET ***********************************************************************************
// FIN OFFSET ***********************************************************************************
ConfigCheminee.prototype._checkDiametre=function(){
	//si le diametrer est de 5, on met le chapeau default ERC
	//on change aussi le support
    //le chapeau default est le erc

    this.diametre=$('#diametre').val();//sette le diametre
    if(this.diametre==5){
		this._setVal('chapeau','ERC');
		this._setVal('support','round');
		$('#blocChapeau').hide();

		this.showChapeau=false;

		//alert('hide support');
		$('#bloc_support').hide();//le support non plus on le met pas : default carré
	}else {
		$('#blocChapeau').show();
		this.showChapeau=true;
		this.chapeau=$('#chapeau').val();
		$('#bloc_support').show();
		this.support=$('#support').val();


	}
}
ConfigCheminee.prototype.convertMesure=function(m){

	//convert une mesure de (this.unite) à pouces
	//_debug(Number(m));

	m=String(m);
	m=m.match(/[0-9\.,]*/);
	//_debug(m);
	m=m[0];
	//return;

	if(m){
		switch(this.unite){
			case 'cm':
				//m=Number(m);
				m=m*0.3937;
				break;
			case 'in':
				//m=Number(m);
				break;
			case 'm':
				//m=Number(m);
				m= m*100*0.3937;
				break;
			case 'ft':
				/*m=String(m);
				m=m.split(/[\.,]/,m);
				if(m[1]){
					m= (Number(m[0])*12) + Number(m[1]*12) ;
				}else{
					m=Number(m)*12;
				}*/
				m=m*12;
				break;
		}
	}
	//_debug('c'+m);
	return Math.round(m*100)/100;
}
ConfigCheminee.prototype._changePente=function(p){

$('#pente').focus();
	p=Number(p);

	if(!p){
		$('#bloc_recommpente').hide();
		$('#erreurPente').hide();
		this._setVal('pente',0);
		return ;
	} else if(p>21){
		p=21;
		$('#erreurPente').show();
		$('#pente').val(p);

	} else {
		$('#erreurPente').hide();
	}


	this._setVal('pente',p);
	var rec=p*10+24;
	this.depasseToit=rec;
    $('#bloc_recommpente').show(function() {
    	
    
    });
    $('#depasse').html( rec + ' ')

    //focus sur la longueur hors-tout
	
	return true;



}

ConfigCheminee.prototype.checkNoEmpty=function(quel){
	var error=false;
	var classToCheck=".noEmpty"+quel;
    emptyCountMax = $(classToCheck).size();
	for (i=0; i < emptyCountMax; i++) {
		var nom=$(classToCheck).eq(i).attr('id');

       	var val=$(classToCheck).eq(i).attr('value');
		if(val == undefined || val=='' || (nom!='pente' && val=='0')){//les mesures de longueur ne peuvent pas être 0 mais la pente oui
			//_debug($('.noEmpty').eq(i).attr('name'));
			var id=$(classToCheck).eq(i).attr('id');
			//_debug(id);
			$('#empty'+id).slideDown('fast');
			error=true;
		}


	}
	return error;
}

//sette les actions & styles sur les tabs
/*ConfigCheminee.prototype.setTabs=function(step){
	//les tabs qui peuvent être cliqués sont uniquement ceux d'avant et le suivant.
	for(var i=1;i<=4;i++){

		if(i<=step+1){//le step peut etre cliqué
        	$('#tab'+i).click(function(){
		        var quel=$(this).attr('id');
		        if(quel=='tab4') quel='goresult';
				ConfigCheminee.prototype.changeStep(quel);
			});
			$('#tab'+i).css('cursor','pointer');

		} else {//le step ne peut pas etre cliqué
        	$('#tab'+i).click(function(){
		       return ;
			});
			$('#tab'+i).css('cursor','');
		}

	}
}*/

//change de step
ConfigCheminee.prototype.changeStep=function(quel){
 		$('.erreur').hide();

        if(quel=='goresult'){
            for(var i=1;i<5;i++){//loop dans les step et cache les autres
				$("#tab"+i).removeClass('actif');
			}
			$("#tab4").addClass('actif');

			this._getResult();

			//this.setTabs(4);


			return 1;
		} else {
			$('#result').hide();
		}

		quel=quel.match(/[0-9]+/);//l'element controle a comme id le debut de clui-ci
		if(!quel) return;

		quel=Number(quel[0]);

		var error=false;

		//this.setTabs(quel);
		//reset si on retourne au step 1
		if(quel==1){
			this.sections=new Array();



			this.diametre=$('#diametre').val();
			this.mesurelongueur=$('#mesurelongueur').val();
			this.mesuredistt=$('#mesuredistt').val();
			this.nplafonds=$("#nplafonds").val();
			this.pente=$("#pente").val();
			this.chapeau=$("#chapeau").val();
			this.solin=$("#solin").val();

			this.support=$("#support").val();
			this.sections=new Array();

			this.mesureoffsetw=$('#mesureoffsetw').val();
			this.mesureoffsetRise=$('#mesureoffsetRise').val();;
			this.mesureoffsetdist=$('#mesureoffsetdist').val();
			this.offsetAngle=false;
			this.offsetRise=false;

			//les differences entre les longueurs proposées
			this.diff=new Array();
			this.diff.longueur=0;
			this.diff.distt=0;
			this.diff.offsetdist=0;

			this._checkDiametre();

			this._setBoolOffset();
		}

		//si on veut le step 3, check que les choses sont bien remplies dans le step 2
		if(quel==3){
			//check les infos de base
			error=this.checkNoEmpty('');
			if(this._getIsOffset()){
				//_debug('off');
				error=error || this.checkNoEmpty('Offset');

				if(this._isValidOffset()!=true){
					error=true;
					$('#emptyoffset').slideDown('fast');
				}



			}

			if(this._getInstal()=='ext'){
				error=error || this.checkNoEmpty('DistT');
			}



		}

		if(error) return;

		for(var i=1;i<5;i++){//loop dans les step et cache les autres
			if(i==quel){
				$("#step_"+i).show();
				$("#tab"+i).addClass('actif');
			} else {
				$("#step_"+i).hide();
				$("#tab"+i).removeClass('actif');
			}
		}
        if(quel==3){
			//montre le sales pitch si on va au step 3
			//si on montre le chapeau, c'est le salespitch qu'on montre
			if(this.showChapeau){
				this._salesPitch('chapeau');
			} else {
				this._salesPitch('solin');
			}
		}
		//hide les help
		$('.helpTopic').hide();
		$('select').show();
}
//certaines options font apparaitre un salespitch
ConfigCheminee.prototype._salesPitch=function(quel){
	//alert(quel);
	var val=$('#'+quel).val();

	switch(quel){
		case 'solin':
            if(val=='ELF'){
				$('.salespitch').hide();
				$('#flexflashing').fadeIn('slow');
			} else if(val=='EMF'){
				$('.salespitch').hide();
				$('#metalflashing').fadeIn('slow');
			} else {
				$('.salespitch').fadeOut();
			}

			break;
		case 'chapeau':

			if(val=='EDRC'){
				$('.salespitch').hide();
				$('#deluxecap').fadeIn('slow');
			} else if(val=='ERRC'){
				$('.salespitch').hide();
                $('#revolvcap').fadeIn('slow');

			} else {
				$('.salespitch').fadeOut();
			}
			break;
	}
}

//*****************************************************************************************************************
//*****************************************************************************************************************
//*****************************************************************************************************************

$(document).ready(function(){

	var cf=new ConfigCheminee();

	cf.setAnglesPays();

	cf._checkDiametre();
	//cf._getOffsetsFromAngle();

	$('#result').hide();
    $('#bloc_distt').hide();
    $('#bloc_recommpente').hide();
	$('#bloc_nplafonds').hide();
	$('#bloc_offsetbool').hide();
	$('#bloc_offset').hide();
	$('.erreur').hide();


	//cache les sales pitch
	$('.salespitch').hide();
	/*$('.salespitch').change(function(e){
		var quel=$(this).attr('id');//le id du select
		var val = $(this).val();//sa value

	});*/

	//preset l'unite
	var val = $('#unite').val();//sa value
	cf.changeUnite(val,$('#unite').children().filter(':selected').text());
	var inst=$('#instal').val();
	cf.changeInstal(inst,$('#instal').children().filter(':selected').text());

	//cf.setTabs(1);//sette les actions des tabs

	$("#tab1").addClass('actif');

	$('#step_2').hide();
	$('#step_3').hide();

	$('select').change(function(e){
		var quel=$(this).attr('id');//le id du select
		var val = $(this).val();//sa value
		var n=$(this).children().filter(':selected').text();

		switch(quel){
			case 'unite':

				//alert(n);
				cf.changeUnite(val,n);
				break;
			case 'instal':
				cf.changeInstal(val,n);
				break;
			case 'pays':
				cf.setAnglesPays();
				break;
			case 'offsetbool':
				cf._setBoolOffset();
				break;
			//case 'offsetwidth':
				//cf._changeOffsetWidth();
				//break;

			//case 'offsetAngle':
			case 'diametre':
				cf._checkDiametre();

				cf._calculeOffset();
				break;
			case 'chapeau':
			case 'solin':
				cf._salesPitch(quel);
			default:
				cf._setVal(quel,val);
				break;
		}

		//alert(val);
	});



	$(".boutonstep").click(function(){
        var quel=$(this).attr('id');
		cf.changeStep(quel);


	});

	$('.boutonstep').mouseover(function(){


	});

	$('#boutonReset').click(function(){

		cf.changeStep('step1');

	});



	$("#pente").change(function(){
		cf._changePente($(this).val());
	});
	$("input[id^='mesure']").change(function(){

        var v=$(this).val();
		//on ne peut mettre que des chiffres (et des points)
		x=v.match(/[0-9\.]*/);
		$(this).val(x[0]);

        var quel=$(this).attr('id');//le id du select
		var val = $(this).val();//sa value
		cf.changeMesure(quel,val);
	});
	$("#mesureoffsetw,#mesureoffsetRise").change(function(){
        cf._calculeOffset();
	});
	$("#showconfig").click(function(){
        cf.show();
	});


	$("div[id^='help_']").click(function(e){
		var helper=$(this);



		var quel=$(this).attr('id');
		quel='#topic_'+quel;
		quel=$(quel);


		$('.helpTopic').hide();
		$('select').hide();

		//top=helper.parent[0].offsetTop;
		var t=e.pageY-10;
		var l=e.pageX+6;

		quel.css({
			top: t + 'px',
			left: l + 'px'
		});

		quel.fadeIn();

	});

	$('.btnClose').click(function(){

		$('.helpTopic').hide();
		$('select').show();
		return;
	});


	//$('.helpIcone').

	//cf._getSectionsFromOffset(6,15,13.214);
	//cf._getSectionsFromMesure(100);

});


