/**
 * ctlm_solution.js
 * 
 * Cross browser implementation.
 * Calculate monthly payement for each vehicle and show interactif financing calculator.
 * 
 * Features:
 *	 - Easy to implement
 *   - No dependency on external libraries
 *   - Compatible with Prototype.js 
 * 
 * Tested browsers (Windows):
 *   - IE 8
 *   - IE 7
 *   - IE 6
 *   - Firefox 3.5.8
 *   - Google Chrome 4.1.249
 * 
 *
 * Copyright (c) 2010 CETELEM.
 *
 * Author : CARIOU Pierre-Yves
 *
 */

// Partner informations variables
var	_vehicles_infos		= new Array();
var	_vehicle_id			= -1;

var	_assurance_enable	= true;
var	_btn_enable			= 0;
var	_simu_color			= 0;
var	_simu_struc			= 0;
var	_wm_name			= 'cetelem webmarchand';
var	_wm_email			= '';
var	_wm_phone			= '';

// Interne variable class
var	_initialiaze		= false;
var	_url_server			= 'http://www.cetelem-automobile.fr';
var	_pwd_solution		= '/part/forex/ctlm_integration/';
var	_mode				= 'no_debug';
var _mention_visible	= false;
var _simu_visible		= false;
var	_mentions			= new Array;

/*
 * Fill legal mentions in li block
 */
function	CreateMidleFrame()
{
	var frame_m		= document.createElement('div');
	var h3			= document.createElement('h3');
	var ul			= document.createElement('ul');
	var li			= document.createElement('li');
	var span_l		= document.createElement('span');
	var span_r		= document.createElement('span');

	span_l.className = 'f_left';
	span_r.className = 'f_right';
	
	li.appendChild(span_l);
	li.appendChild(span_r);

	var tmp;
	for (key in _mentions)
	{
		if (_mentions.hasOwnProperty(key) == false)
			continue;
		
		span_l.innerHTML = key;
		span_r.innerHTML = _mentions[key];

		tmp = li.cloneNode(true);
		ul.appendChild(tmp);
	}

	h3.innerHTML = 'Mentions l&eacute;gales :';
	frame_m.appendChild(h3);
	frame_m.appendChild(ul);
	
	return frame_m;
}

/*
 * Insert dynamique frame with legal Mention
 */
function	CreateMentionFrame()
{
	var	cetelem		= document.getElementById('CETELEM');
	var frame		= document.createElement('div');
	var frame_tl	= document.createElement('div');
	var frame_tc	= document.createElement('div');
	var frame_tr	= document.createElement('div');
	var frame_m		= CreateMidleFrame();
	var frame_bl	= document.createElement('div');
	var frame_bc	= document.createElement('div');
	var frame_br	= document.createElement('div');
	
	frame.id = 'frame_mentions';
	frame_tl.id = 'frame_tl';
	frame_tc.id = 'frame_tc';
	frame_tr.id = 'frame_tr';
	frame_m.id = 'frame_m';
	frame_bl.id = 'frame_bl';
	frame_bc.id = 'frame_bc';
	frame_br.id = 'frame_br';

	if (cetelem != null)
	{
		cetelem.appendChild(frame);
		frame.appendChild(frame_tl);
		frame.appendChild(frame_tc);
		frame.appendChild(frame_tr);
		frame.appendChild(frame_m);
		frame.appendChild(frame_bl);
		frame.appendChild(frame_bc);
		frame.appendChild(frame_br);
	}
}

/*
 * Create close button for the calculator
 */
function	CreateSimuCloseBtn()
{
	var	button		= document.createElement('div');
	var	button_text	= document.createElement('div');

	button.id = 'calc_but';
	button.style.left = (GetWindowsWidth() / 2) + 186 + 'px',
	button.onmousedown = function ()
	{
		document.getElementById('filter').style.display = 'none';
		document.getElementById('calc_but').style.display = 'none';
		document.getElementById('calculator').style.display = 'none';
		_simu_visible = false;
	}

	button_text.id = 'calc_but_txt';
	button_text.innerHTML = 'Fermer';
	if (_simu_color == 0)
		button_text.style.color = '#00B6E8';
	else if (_simu_color == 2)
		button_text.style.color = '#FF9933';
	else if (_simu_color == 4)
		button_text.style.color = '#FF3333';
	else if (_simu_color == 6)
		button_text.style.color = '#339933';
	else if (_simu_color == 8)
		button_text.style.color = '#000099';
	else if (_simu_color == 10)
		button_text.style.color = '#FF0099';

	button.appendChild(button_text);

	return button;
}

/*
 * Insert dynamique frame with the calculator
 */
function	CreateSimulationFrame(parent_id_name)
{
	var	cetelem		= document.getElementById(parent_id_name);

	if (cetelem == null)
		return false;

	if (_vehicles_infos[_vehicle_id]['appear_mode_simu'] == 'fadin')
	{
		var filter		= document.createElement('div');
		filter.id = 'filter';
		cetelem.appendChild(filter);
	
		var	button		= CreateSimuCloseBtn();
		cetelem.appendChild(button);
	}
	
	var iframe		= document.createElement('iframe');

	iframe_src = _url_server+'/part/forex/index.php?proposalFormat=simu';
    iframe_src += '&proposalInitialShare=' + _vehicles_infos[_vehicle_id]['first_deposit'];
    iframe_src += '&proposalMonth=' + _vehicles_infos[_vehicle_id]['nb_month'];
    iframe_src += '&proposalPrice=' + _vehicles_infos[_vehicle_id]['price'];
    iframe_src += '&proposalProductType=MOD';
    iframe_src += '&proposalScore=' + _btn_enable;
    iframe_src += '&proposalDemande=' + _btn_enable;
    iframe_src += '&proposalStructure=' + _simu_struc;
    iframe_src += '&proposalStyle=' + _simu_color;
    iframe_src += '&vdrNumberSiteWm=' + _vehicles_infos[_vehicle_id]['vend_code'];
    iframe_src += '&vdrNumberWm=' + _vehicles_infos[_vehicle_id]['vend_code'];
    iframe_src += '&vehicleBrand=' + _vehicles_infos[_vehicle_id]['brand'];
    iframe_src += '&vehicleCategory=' + _vehicles_infos[_vehicle_id]['category'];
    iframe_src += '&vehicleIsNewBo=' + _vehicles_infos[_vehicle_id]['is_new_vehicle'];
	if (_vehicles_infos[_vehicle_id]['is_new_vehicle'] == 0)
	{
    	iframe_src += '&vehicleCirculationFirstDt=' + _vehicles_infos[_vehicle_id]['circulation_first_date'];
	   	iframe_src += '&vehicleMileAge=' + _vehicles_infos[_vehicle_id]['mile_age'];
	}
	if (_vehicles_infos[_vehicle_id]['category'] == 'MOTO')
   		iframe_src += '&vehicleCapacity=' + _vehicles_infos[_vehicle_id]['capacity'];
   	else
   		iframe_src += '&vehicleEngineRating=' + _vehicles_infos[_vehicle_id]['engine_rating'];
	if (_vehicles_infos[_vehicle_id]['body_work'] != '')
    	iframe_src += '&vehicleBodyWork=' + _vehicles_infos[_vehicle_id]['body_work'];
	if (_vehicles_infos[_vehicle_id]['energy'] != '')
		iframe_src += '&vehicleEnergy=' + _vehicles_infos[_vehicle_id]['energy'];
	if (_vehicles_infos[_vehicle_id]['model'] != '')
		iframe_src += '&vehicleModel=' + _vehicles_infos[_vehicle_id]['model'];
	if (_vehicles_infos[_vehicle_id]['type'] != '')
		iframe_src += '&vehicleDescription=' + _vehicles_infos[_vehicle_id]['type'];
	if (_wm_phone != '')
		iframe_src += '&vdrPhoneNumberWm=' + _wm_phone;
	if (_wm_email != '')
		iframe_src += '&vdrEmailSiteWm=' + _wm_email;
	iframe_src += '&wmName=' + _wm_name;
    
    if (_assurance_enable == true)
    {
    	iframe_src += '&insuranceHealthDisplay=1&insuranceCapitalDisplay=1';
   		iframe_src += '&insuranceAssistanceDisplay=1&insuranceExtensionDisplay=1';
    }
    
	iframe.id = 'calculator';
	iframe.className = 'calculator_' + _vehicles_infos[_vehicle_id]['appear_mode_simu'];
	if (_vehicles_infos[_vehicle_id]['appear_mode_simu'] == 'fadin')
		iframe.style.left = (GetWindowsWidth() - 570) / 2 + 'px';

	iframe.setAttribute('width', 559);
	iframe.setAttribute('height', 514); 
	iframe.setAttribute('scrolling', 'no');
	iframe.setAttribute('frameborder', 0);
	iframe.setAttribute('src', iframe_src);
	
	cetelem.appendChild(iframe);		

	return true;
}

/*
 *  Insert loading image meanwhile getting monthly price
 */
function	CreateLoadingImg()
{
	var		img_loading = document.createElement('img');
	
	img_loading.setAttribute('src', _url_server + _pwd_solution + 'img/loading.gif');
	document.getElementById(_vehicles_infos[_vehicle_id]['div_ctlm_mensu']).appendChild(img_loading);
}

function	SimulationError(error)
{
	if (_mode == 'debug')
		alert(error);
		
	if (document.getElementById(_vehicles_infos[_vehicle_id]['div_ctlm_mensu']))
	{
		var	element = document.getElementById(_vehicles_infos[_vehicle_id]['div_ctlm_mensu']);
		element.parentNode.removeChild(element);
	}
		
	if (document.getElementById(_vehicles_infos[_vehicle_id]['div_ctlm_simu']))
	{
		var	element = document.getElementById(_vehicles_infos[_vehicle_id]['div_ctlm_simu']);
		element.parentNode.removeChild(element);
	}
}

/*
 *  Check if xml response has errors
 *	@responseXML : xml tree response
 */
function	CheckXmlResponse(responseXML)
{
	if (responseXML.getElementsByTagName('errorCode').length == 0)
	{
		SimulationError('Un problème est survenu lors de la r&eacute;cup&eacute;ration du XML');
		return false;
	}

	// For all browser except Internet Explorer
	if (navigator.appName != 'Microsoft Internet Explorer')
	{
		if (responseXML.getElementsByTagName('errorCode')[0].textContent != '0000')
		{
			SimulationError('Error : '+responseXML.getElementsByTagName('errorDescription')[0].textContent);
			return false;
		}
	}
	// For Internet Explorer
	else
	{
		if (responseXML.getElementsByTagName('errorCode')[0].text != '0000')
		{
			SimulationError('Error : '+responseXML.getElementsByTagName('errorDescription')[0].text);
			return false;
		}
	}
	
	return true;
}

/*
 *  Read xml answer and fill mention's array
 */
function	GetLegalMention(responseXML)
{
	if (navigator.appName == 'Microsoft Internet Explorer')
	{
		_mentions["Cr&eacute;dit affect&eacute; pour un v&eacute;hicule de :"] = responseXML.getElementsByTagName('vehicleprice')[0].text + ' &euro;';
		_mentions["Apport :"] = responseXML.getElementsByTagName('proposalInitialShare')[0].text + ' &euro;';
		_mentions["Montant emprunt&eacute; :"] = responseXML.getElementsByTagName('proposalOverdraft')[0].text + ' &euro;';
		_mentions["Dur&eacute;e :"] = responseXML.getElementsByTagName('proposalMonth')[0].text + ' mois';
		_mentions["Nombre de mensualit&eacute;s :"] = responseXML.getElementsByTagName('proposalMonth')[0].text + ' mois';
		_mentions["Frais de dossiers :"] = responseXML.getElementsByTagName('fixedExpense')[0].text + ' &euro;';
		_mentions["Co&ucirc;t des mensualit&eacute;s :"] = responseXML.getElementsByTagName('monthlyPayementWithInsurance')[0].text + ' &euro;';
		_mentions["Co&ucirc;t total du cr&eacute;dit :"] = responseXML.getElementsByTagName('totalCost')[0].text + ' &euro;';
		_mentions["Co&ucirc;t total de l'achat &agrave; cr&eacute;dit :"] = responseXML.getElementsByTagName('purchaseCostWithInsurance')[0].text + ' &euro;';
		_mentions["TEG fixe :"] = responseXML.getElementsByTagName('proposalTaegRt')[0].text + ' %';
		_mentions["Offre soumise &agrave; conditions et sous r&eacute;serve d'&eacute;tude et d'acceptation par l'organisme pr&ecirc;teur"] = responseXML.getElementsByTagName('legalMentions')[0].text;
	}
	else
	{
		_mentions["Cr&eacute;dit affect&eacute; pour un v&eacute;hicule de :"] = responseXML.getElementsByTagName('vehicleprice')[0].textContent + ' &euro;';
		_mentions["Apport :"] = responseXML.getElementsByTagName('proposalInitialShare')[0].textContent + ' &euro;';
		_mentions["Montant emprunt&eacute; :"] = responseXML.getElementsByTagName('proposalOverdraft')[0].textContent + ' &euro;';
		_mentions["Dur&eacute;e :"] = responseXML.getElementsByTagName('proposalMonth')[0].textContent + ' mois';
		_mentions["Nombre de mensualit&eacute;s :"] = responseXML.getElementsByTagName('proposalMonth')[0].textContent + ' mois';
		_mentions["Frais de dossiers :"] = responseXML.getElementsByTagName('fixedExpense')[0].textContent + ' &euro;';
		_mentions["Co&ucirc;t des mensualit&eacute;s :"] = responseXML.getElementsByTagName('monthlyPayementWithInsurance')[0].textContent + ' &euro;';
		_mentions["Co&ucirc;t total du cr&eacute;dit :"] = responseXML.getElementsByTagName('totalCost')[0].textContent + ' &euro;';
		_mentions["Co&ucirc;t total de l'achat &agrave; cr&eacute;dit :"] = responseXML.getElementsByTagName('purchaseCostWithInsurance')[0].textContent + ' &euro;';
		_mentions["TEG fixe :"] = responseXML.getElementsByTagName('proposalTaegRt')[0].textContent + ' %';		
		_mentions["Offre soumise &agrave; conditions et sous r&eacute;serve d'&eacute;tude et d'acceptation par l'organisme pr&ecirc;teur"] = responseXML.getElementsByTagName('legalMentions')[0].textContent;
	}
	
	return true;
}


function	XmlResponse(response_text)
{
	if (window.DOMParser)
	{
		parser = new DOMParser();
		response_xml = parser.parseFromString(response_text, "text/xml");
	}
	else // Internet Explorer
	{
		response_xml = new ActiveXObject("Microsoft.XMLDOM");
		response_xml.async = "false";
		response_xml.loadXML(response_text); 
	}
	
	if (CheckXmlResponse(response_xml) == false)
		return false;

	// Fill mentions tab with xml response
	GetLegalMention(response_xml);

	// Insert monthly price in html code
	document.getElementById(_vehicles_infos[_vehicle_id]['div_ctlm_mensu']).innerHTML = _mentions["Co&ucirc;t des mensualit&eacute;s :"] + ' / mois';
	
	// Create dynamique frame with legal mention
	CreateMentionFrame();

	return true;
}

/*
 *	Get monthly instalment and insert it in html code, this fonction ask to a webService for get this informations
 */
function	GetMonthlyPrice()
{
	var	cetelem		= document.getElementById('CETELEM');
	var script		= document.createElement('script');
	
	if (cetelem == null)
		return false;

	script.src = _url_server + _pwd_solution + 'ctlm_solution.php?';
    script.src += 'proposalFormat=xml';
    script.src += '&proposalInitialShare=' + _vehicles_infos[_vehicle_id]['first_deposit'];
    script.src += '&proposalMonth=' + _vehicles_infos[_vehicle_id]['nb_month'];
    script.src += '&proposalPrice=' + _vehicles_infos[_vehicle_id]['price'];
    script.src += '&proposalProductType=MOD';
    script.src += '&proposalScore=' + _btn_enable;
    script.src += '&proposalDemande=' + _btn_enable;
    script.src += '&proposalStructure=0';
    script.src += '&proposalStyle=0';
    script.src += '&vdrNumberSiteWm=' + _vehicles_infos[_vehicle_id]['vend_code'];
    script.src += '&vdrNumberWm=' + _vehicles_infos[_vehicle_id]['vend_code'];
    script.src += '&vehicleBrand=' + _vehicles_infos[_vehicle_id]['brand'];
    script.src += '&vehicleCategory=' + _vehicles_infos[_vehicle_id]['category'];
    script.src += '&vehicleIsNewBo=' + _vehicles_infos[_vehicle_id]['is_new_vehicle'];
	if (_vehicles_infos[_vehicle_id]['is_new_vehicle'] == 0)
	{
		script.src += '&vehicleCirculationFirstDt=' + _vehicles_infos[_vehicle_id]['circulation_first_date'];
		script.src += '&vehicleMileAge=' + _vehicles_infos[_vehicle_id]['mile_age'];
	}
	if (_vehicles_infos[_vehicle_id]['category'] == 'MOTO')
   		script.src += '&vehicleCapacity=' + _vehicles_infos[_vehicle_id]['capacity'];
   	else
		script.src += '&vehicleEngineRating=' + _vehicles_infos[_vehicle_id]['engine_rating'];
    script.src += '&wmName=' + _wm_name;
    script.type = 'text/javascript';

	cetelem.appendChild(script);
	
	return true;
}

/*
 *  Get width of browser web.
 */
function	GetWindowsWidth()
{
    if (window.innerWidth)
    	return (window.innerWidth);
    if (document.documentElement && document.documentElement.clientWidth) 
         return (document.documentElement.clientWidth);
    if (document.body && document.body.clientWidth)
    	return (document.body.clientWidth); 
    return 50;
}

/*
 * Get scoll top possition of browser web.
 */
function	GetScrollTop()
{
	n_win = window.pageYOffset ? window.pageYOffset : 0;
	n_docel = document.documentElement ? document.documentElement.scrollTop : 0;
	n_body = document.body ? document.body.scrollTop : 0;

	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	n_result = n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
	
	return n_result;
}

/*
 *  Set opacity of one element by his id
 */
function	Fader(id, level)
{
	var fader = document.getElementById(id);

	fader.style.opacity = level;
	fader.style.MozOpacity = level;
	fader.style.KhtmlOpacity = level;
	fader.style.filter = "alpha(opacity=" + level * 100 + ")";
}

/*
 *  Initialiaze the application (variables, events)
 *	@vend_code : Merchant code giving by CETELEM
 *	@vehicle_price : vehicle price in euros
 *  @category : AUTO, MOTO, CARAVANE, MOBILHOME, CAMPINGCAR
 *  @is_new_vehicle : 1 for new vehicle, 0 for second-hand vehicle
 */

function	InitCetelmSimulation(var_vend_code, var_vehicle_price, var_category, var_is_new_vehicle)
{
	_vehicle_id++;
	_vehicles_infos[_vehicle_id] = new Array();
	
	_vehicles_infos[_vehicle_id]['vend_code']		= var_vend_code;
	_vehicles_infos[_vehicle_id]['price']			= var_vehicle_price;
	_vehicles_infos[_vehicle_id]['category']		= var_category;
	_vehicles_infos[_vehicle_id]['is_new_vehicle']	= var_is_new_vehicle;
	_vehicles_infos[_vehicle_id]['brand']			= 'RENAULT';
	_vehicles_infos[_vehicle_id]['body_work']		= '';
	_vehicles_infos[_vehicle_id]['energy']			= '';
	_vehicles_infos[_vehicle_id]['model']			= '';
	_vehicles_infos[_vehicle_id]['type']			= '';
	_vehicles_infos[_vehicle_id]['mile_age']		= 42;
	_vehicles_infos[_vehicle_id]['engine_rating']	= 4;
	_vehicles_infos[_vehicle_id]['div_ctlm_mensu']	= 'ctlm_mensu';
	_vehicles_infos[_vehicle_id]['div_ctlm_simu']	= 'ctlm_simu';
	_vehicles_infos[_vehicle_id]['appear_mode_simu']= 'fadin';
	_vehicles_infos[_vehicle_id]['circulation_first_date']	= '2403210';

	if (var_category == 'CAMPINGCAR')
		_vehicles_infos[_vehicle_id]['nb_month'] = '144';
	else if (var_category == 'MOBILHOME')
		_vehicles_infos[_vehicle_id]['nb_month'] = _vehicles_infos[_vehicle_id]['is_new_vehicle'] == 1 ? '144' : '120';
	else if( var_category == 'CARAVANE')
		_vehicles_infos[_vehicle_id]['nb_month'] = '120';
	else if (var_category == 'MOTO')
		_vehicles_infos[_vehicle_id]['nb_month'] = '60';
	else
		_vehicles_infos[_vehicle_id]['nb_month'] = _vehicles_infos[_vehicle_id]['is_new_vehicle'] == 1 ? '72' : '48';
	
	_vehicles_infos[_vehicle_id]['first_deposit'] = (_vehicles_infos[_vehicle_id]['price'] * 20) / 100;

	InitialiazeEvents();
	
	_initialiaze = true;
}

/*
 *  Launch the application
 */
function	RunCetelemSimulation()
{
	if (_initialiaze == false)
	{
		SimulationError('vous devez appeler la foction "InitCetelmSimulation" avant la fonction "RunCetelemSimulation"');
		return false;
	}
	
	var cetelem		= document.createElement('div');
	cetelem.id		= 'CETELEM';
	
	if (document.body != null)
		document.body.appendChild(cetelem);
	
	if (document.getElementById(_vehicles_infos[_vehicle_id]['div_ctlm_mensu']) != null)
	{
		CreateLoadingImg();
		GetMonthlyPrice();
	}
	
	if (document.getElementById(_vehicles_infos[_vehicle_id]['div_ctlm_simu']) != null)
	{
		if (_vehicles_infos[_vehicle_id]['appear_mode_simu'] == 'fadin')
			CreateSimulationFrame('CETELEM');
		else if (_vehicles_infos[_vehicle_id]['appear_mode_simu'] == 'in_page')
			CreateSimulationFrame(_vehicles_infos[_vehicle_id]['div_ctlm_simu']);
		else
			CreateSimulationFrame('CETELEM');
	}
	
	return true;
}

/*
 *  Set the vehicule circulation first date (mandotory only for second-hand vehicle)
 *  @circulation_first_date : mandatory for second-hand vehicle, format 'JJMMAAAA'
 */
function	SetCirculationFirstDate(var_circulation_first_date)
{
	_vehicles_infos[_vehicle_id]['circulation_first_date'] = var_circulation_first_date;
}

function	SetMileAge(var_mile_age)
{
	_vehicles_infos[_vehicle_id]['mile_age'] = var_mile_age;
}

/*
 * Activate debug mode : javascript popup when error occur
 */
function	SetDebugMode()
{
	_mode = 'debug';
}

/*
 *	Set serveur URL
 *	@mode : possible values : dev, r7, prod (default)
 */
function	SetServerUrl(mode)
{
	if (mode == 'dev')
		_url_server = 'http://devwebinter-lev1.sun.ctlmcof.fr:8072';
	else if (mode == 'r7')
		_url_server = 'http://recette-7lmauto.neuges.org';
	else if (mode == 'prod')
		_url_server = 'http://www.cetelem-automobile.fr';
}

/*
 * Set element where monthly price was insert
 * @var_ctlm_mensu : element id
 */
function	SetElmCtlmMensu(var_ctlm_mensu)
{
	_vehicles_infos[_vehicle_id]['div_ctlm_mensu']	= var_ctlm_mensu;
}

/*
 * Set element where calculator appear when the user click on
 * @var_ctlm_mensu : element id
 */
function	SetElmCtlmSimu(var_ctlm_simu)
{
	_vehicles_infos[_vehicle_id]['div_ctlm_simu']	= var_ctlm_simu;
}

/*
 * Set appear mode of the calculator
 * @var_mode : possible values : fadin (default), in_page  
 */
function	SetAppearModeSimu(var_mode)
{
	_vehicles_infos[_vehicle_id]['appear_mode_simu'] = var_mode;
}

/*
 *	Show button for acces to credit form 
 */
function	EnableBtnCredit()
{
	_btn_enable = 1;
}

/*
 *	Disable assurance on the calculator
 */
function	DisableAssurance()
{
	_assurance_enable = false;
}

/*
 * Set vehicle brand
 * @var_brand : vehicle brand (RENAULT, PEUGEOT, SUZUKI, ...)
 */
function	SetBrand(var_brand)
{
	_vehicles_infos[_vehicle_id]['brand'] =	var_brand;
}

/*
 *	Set number of monthly payments
 *	@var_nb_month : number of month
 */
function	SetNbMonth(var_nb_month)
{
	_vehicles_infos[_vehicle_id]['nb_month']	= var_nb_month;
}

/*
 *	Set the first deposit of the credit
 *	@var_first_deposit : amount of first deposit
 */
function	SetFirstDeposit(var_first_deposit)
{
	_vehicles_infos[_vehicle_id]['first_deposit']	= var_first_deposit;
}

/*
 *	Set the vehicule engine rating
 *	@var_engine_rating : engine rating
 */
function	SetEngineRating(var_engine_rating)
{
	_vehicles_infos[_vehicle_id]['engine_rating'] = var_engine_rating;
}

/*
 *	Set the vehicule capacity only for motorbike
 *	@var_capacity : motorbike's capacity
 */
function	SetCapacity(var_capacity)
{
	_vehicles_infos[_vehicle_id]['capacity'] = var_capacity;
}

/*
 *	Set the vehicule bodywork
 *	@var_bodywork : bodywork's vehicle
 */
function	SetBodyWork(var_bodywork)
{
	_vehicles_infos[_vehicle_id]['body_work'] = var_bodywork;
}

function	SetEnergy(var_energy)
{
	_vehicles_infos[_vehicle_id]['energy'] = var_energy;
}

function	SetModel(var_model)
{
	_vehicles_infos[_vehicle_id]['model'] = var_model;
}

function	SetType(var_type)
{
	_vehicles_infos[_vehicle_id]['type'] = var_type;
}

/*
 *	Set the simulation structure
 *	@var_simu_struc : simulation structure, possible value : cetelem, loisir_finance, without_logo, without_header
 */
function	SetSimuStruc(var_simu_struc)
{
	if (var_simu_struc == 'cetelem')
		_simu_struc = 0;
	else if ((_vehicles_infos[_vehicle_id]['category'] == 'CAMPINGCAR' || _vehicles_infos[_vehicle_id]['category'] == 'MOBILHOME' || _vehicles_infos[_vehicle_id]['category'] == 'CARAVANE') && var_simu_struc == 'loisir_finance')
		_simu_struc = 1;
	else if (var_simu_struc == 'without_logo')
		_simu_struc = 2;
	else if (_vehicles_infos[_vehicle_id]['category'] == 'AUTO' && var_simu_struc == 'without_header')
		_simu_struc = 4;
}

/*
 *	Set the simulation color
 *	@var_simu_color : simulation color, possible value : light_blue, orange, red, green, dark_blue, pink
 */
function	SetSimuColor(var_simu_color)
{
	if (var_simu_color == 'light_blue')
		_simu_color = 0;
	else if (var_simu_color == 'orange')
		_simu_color = 2;
	else if (var_simu_color == 'red')
		_simu_color = 4;
	else if (var_simu_color == 'green')
		_simu_color = 6;
	else if (var_simu_color == 'dark_blue')
		_simu_color = 8;
	else if (var_simu_color == 'pink')
		_simu_color = 10;
	else
		SimulationError('La couleur "' + var_simu_color + '" n\'est pas autoris&eacute;e.\nCouleurs autoris&eacute;es : light_blue, orange, red, green, dark_blue, pink');
}

/*
 *	Set the webmarchand phone number
 *	@var_phone : webmarchand's phone number
 */
function	SetWmPhoneNumber(var_phone)
{
	_wm_phone = var_phone;
}


/*
 *	Set the webmarchand e-mail
 *	@var_email : webmarchand's e-mail
 */
function	SetWmEmail(var_email)
{
	_wm_email =  var_email;
}

/*
 * Show legal mention when the mouse is over the monthly price
 */
function	MoveMouse(e)
{
	if (_mention_visible == true)
	{
		// For all browser except Internet Explorer
		if (navigator.appName != "Microsoft Internet Explorer" && document.getElementById("frame_mentions"))
		{
			document.getElementById("frame_mentions").style.left = e.pageX + 5 + "px";
			document.getElementById("frame_mentions").style.top = e.pageY + 10 + "px";
	    }
	    // For Internet explorer
	    else if (document.getElementById("frame_mentions"))
	    {
			document.getElementById("frame_mentions").style.left = event.clientX + 5 + "px";
			document.getElementById("frame_mentions").style.top = event.clientY + 10 + "px";
		}
	}
}

/*
 * Move the simulation with the screen when you you scroll navigator bar
 */
function	MoveSimulation()
{
	if (_simu_visible == false)
		return false;
	
	var filter = document.getElementById('filter');
	var calc_but = document.getElementById('calc_but');
	var calculator = document.getElementById('calculator');
	
	if (filter != null && calc_but != null && calculator != null)
	{
		var scroll_top = GetScrollTop();
		
		filter.style.top = scroll_top + 'px';
		calc_but.style.top = scroll_top + 78 + 'px';
		calculator.style.top = scroll_top + 100 + 'px';
	}
	
	return true;
}

/*
 * Show simulation calcultor with prety fade in
 */
function	ShowSimulation()
{
	Fader('filter', 0);
	Fader('calc_but', 0);
	Fader('calculator', 0);
	
	document.getElementById('filter').style.display='block';
	document.getElementById('calc_but').style.display='block';
	document.getElementById('calculator').style.display='block';
	
	_simu_visible = true;
	MoveSimulation();

	for (var level = 0; level < 1.01; level += 0.02)
	{
		if (level < 0.71)
			setTimeout( "Fader('filter'," + level + ")", level * 1000);
		setTimeout( "Fader('calc_but'," + level + ")", level * 1000);
		setTimeout( "Fader('calculator'," + level + ")", level * 1000);
	}
}

/*
 * Initialize events
 */
function	InitialiazeEvents()
{
	if (document.getElementById(_vehicles_infos[_vehicle_id]['div_ctlm_mensu']) != null)
	{
		document.onmousemove = MoveMouse;
		document.getElementById(_vehicles_infos[_vehicle_id]['div_ctlm_mensu']).onmouseover = function ()
		{
			if (document.getElementById("frame_mentions") != null)
			{
				document.getElementById("frame_mentions").style.visibility = "visible";
				_mention_visible = true;
			}
		};
		document.getElementById(_vehicles_infos[_vehicle_id]['div_ctlm_mensu']).onmouseout = function ()
		{
			if (document.getElementById("frame_mentions") != null)
			{
				document.getElementById("frame_mentions").style.visibility = "hidden";
				_mention_visible = false;
			}
		};
		
		document.getElementById(_vehicles_infos[_vehicle_id]['div_ctlm_mensu']).onmousedown = ShowSimulation;
	}
	
	if (document.getElementById(_vehicles_infos[_vehicle_id]['div_ctlm_simu']) != null)
	{
		window.onscroll = MoveSimulation;
		document.getElementById(_vehicles_infos[_vehicle_id]['div_ctlm_simu']).onmousedown = ShowSimulation;
	}
}

