var cdmConfig = new Object();
cdmConfig.numCol = 4;
cdmConfig.type = 0;
cdmConfig.priceTotal = 0;

addLoadEvent(initCreerDevisMax);	

///////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////

/*---------------------------------------------------------------------------------------------------
initCreerDevisMax // 
---------------------------------------------------------------------------------------------------*/
function initCreerDevisMax(){
	if(!$(document.getElementById('creerDevisMax')))return;
	//select1col(cdmConfig.type);
	uncheckAllType();
	initInputClick();
	initChooseCol();
	initStepsBtn();
	$('creerDevisMax').style.visibility = "visible";
}

/*---------------------------------------------------------------------------------------------------
initStepsBtn // 
---------------------------------------------------------------------------------------------------*/
function initStepsBtn(){
	var nextStep = $('nextStep');
	var previousStep = $('previousStep');
	
	nextStep.onclick = function(){
		setSummary();
		$('step1').style.display = 'none';
		$('step2').style.display = 'block';
	}
	
	previousStep.onclick = function(){
		$('step1').style.display = 'block';
		$('step2').style.display = 'none';
	}
	
}

/*---------------------------------------------------------------------------------------------------
setSummary // 
---------------------------------------------------------------------------------------------------*/
function setSummary(){
	var creerDevisMax = $('creerDevisMax');
	var summaryHTML = $('summaryHTML');
	var summary = $('summary');
	var containSummary = getElementsByClassName(summary, "*","containSummary")[0];
	var options = getElementsByClassName(creerDevisMax, "*","option");

	var html = '<table cellpadding="0" cellspacing="0" border="0" class="summary" width="100%">';
	
	var typeTitle = getElementsByClassName(creerDevisMax, "*","typeTitle")[0];
	var h = getElementsByClassName(typeTitle, "*","t"+cdmConfig.type)[0].innerHTML;
	var type2Title = getElementsByClassName(creerDevisMax, "*","type2Title")[0];
	var h2 = getElementsByClassName(type2Title, "*","col"+cdmConfig.type)[0].innerHTML;
	var priceTitle = getElementsByClassName(creerDevisMax, "*","priceTitle")[0];
	var col = getElementsByClassName(priceTitle, "*","col"+cdmConfig.type)[0];
	var price =  getElementsByClassName(col, "*","price")[0].innerHTML;
	html += '<tr class=""><td class="th">' + h + " - " + h2 +'</td><td>'+ price +'</td></tr>';
	
	var checkedInc = 0;
	for(var i=0; i<options.length; i++){
		var opt = options[i];
		var col = getElementsByClassName(opt, "*","col"+cdmConfig.type)[0];
		var inp = col.getElementsByTagName("input")[0];
		if(inp && inp.checked){
			var h3  = getElementsByClassName(opt, "*","h3")[0].innerHTML;
			var price = getElementsByClassName(col, "*","price")[0].innerHTML;
			checkedInc++;
			if(checkedInc%2 == 1)trClass= "alt";
			else trClass = "";
			html += '<tr class="'+trClass+'"><td class="th">'+h3+'</td><td>'+price +'</td></tr>';
		}
	}
	html += '<tr><td class="th"></td><td></td></tr>';
	html += '</table>';
		
	containSummary.innerHTML = html;
	summaryHTML.value = summary.innerHTML;
}

/*---------------------------------------------------------------------------------------------------
uncheckAllType // 
---------------------------------------------------------------------------------------------------*/
function uncheckAllType(){
	for(var i=1; i<= cdmConfig.numCol; i++){
		var type = $('type' + i);
		type.checked = false;
	}
}

/*---------------------------------------------------------------------------------------------------
initInputClick // 
---------------------------------------------------------------------------------------------------*/
function initInputClick(){
	var creerDevisMax = $('creerDevisMax');
	var devisTable = getElementsByClassName(creerDevisMax, "*","devisTable")[0];
	var inputs = devisTable.getElementsByTagName("input");
	for(var i=0; i<inputs.length; i++){
		var input = inputs[i];
		input.onclick = function(){
			calculateTotal();
		}
	}
}

/*---------------------------------------------------------------------------------------------------
initChooseCol // 
---------------------------------------------------------------------------------------------------*/
function initChooseCol(){
	for(var i=1; i<= cdmConfig.numCol; i++){
		var typeEl = $('type' + i);
		typeEl.id = i;
		typeEl.onclick = function(){
			cdmConfig.type = this.id;
			select1col(this.id);
			calculateTotal();
		}
	}
}

/*---------------------------------------------------------------------------------------------------
toggleDisableCol // 
---------------------------------------------------------------------------------------------------*/
function toggleDisableCol(toggle, colNum){
	var creerDevisMax = $('creerDevisMax');
	var cols = getElementsByClassName(creerDevisMax, "td", "col" + colNum);
	for(var i=0; i<cols.length; i++){
		var col = cols[i];
		if(toggle)addClass(col, "disable");
		else removeClass(col, "disable");
	}
}

/*---------------------------------------------------------------------------------------------------
select1col // 
---------------------------------------------------------------------------------------------------*/
function select1col(colNum){
	for(var i=1; i<= cdmConfig.numCol; i++)toggleDisableCol(i != colNum, i);
}

/*---------------------------------------------------------------------------------------------------
calculateTotal // 
---------------------------------------------------------------------------------------------------*/
function calculateTotal(){
	var creerDevisMax = $('creerDevisMax');
	var priceTags = getElementsByClassName(creerDevisMax, "*", "priceTag");
	var priceSum = $('priceSum' + cdmConfig.type);
	var nextStep = $('nextStep');
	var cols = getElementsByClassName(creerDevisMax, "td", "col" + cdmConfig.type);
	var priceTotal = 0;
	for(var i=0; i<cols.length; i++){
		var col = cols[i];
		//var price = getElementsByClassName(col, "*", "price")[0];
		//if(price)alert("price:" + price.innerHTML);
		var price = col.getElementsByTagName("input")[0];
		if(price && price.checked){
			priceTotal += formatToDecimal(price.value);
		}
	}
	cdmConfig.priceTotal = formatToDecimal(priceTotal);
	priceSum.innerHTML = formatCurrency(cdmConfig.priceTotal);
	
	//priceTag creerDevisResult creerDevisResultSurface - creerDevisResults
	//	var priceTag = $('priceTag');
	for(var i=0; i<priceTags.length; i++){
		var priceTag = priceTags[i];
		priceTag.style.visibility = 'visible';
		var creerDevisResult = getElementsByClassName(priceTag, "*", "creerDevisResult")[0];
		creerDevisResult.innerHTML = formatCurrency(formatToDecimal(cdmConfig.priceTotal * 1.196));
		creerDevisResult.style.visibility = 'visible';
	}
	//creerDevisResult.innerHTML = formatCurrency(formatToDecimal(cdmConfig.priceTotal * 1.196));
	//priceTag.style.visibility = 'visible';
	
	
	nextStep.style.visibility = 'visible';
	/*	
	total_ttc = 0;
	//total_ = total_ttc + parseInt($('maison_modele_price').value); 
	total_ttc = total_ * 1.196;
	total_final = numberFormat(total_ttc.toFixed(2), '');
	return total_final;
	*/
}

/*---------------------------------------------------------------------------------------------------
FORMATCURRENCY // converti un chiffre en format monétaire ex.: 65.99 -> 65,99
---------------------------------------------------------------------------------------------------*/
function formatCurrency(num) {
	if(!num) return '';
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+' '+num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + num + ',' + cents + '');
}

/*---------------------------------------------------------------------------------------------------
FORMATTODECIMAL // converti un string en décimal
---------------------------------------------------------------------------------------------------*/
function formatToDecimal(str){
	var str = new String(str);
	str = str.replace(",",".");
	str = str.replace(" ","");
	str = str.replace("$","");
	var num = Number(str);
	num = Math.round(num*100)/100;
	return num;
}
	
/*---------------------------------------------------------------------------------------------------
Emailverif // 
---------------------------------------------------------------------------------------------------*/
function Emailverif(email) { // vérif validité email par REGEXP
	var reg = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$/
	return (reg.exec(email)!=null)
}
		





