var currentSelectedIsin;
var roarIsinInfos;
var getCoursRequest;

var mainFieldId;
var isinFieldId;
var placeFieldId;
var mnemoFieldId;
var coursFieldId;

var dispInfosValue = true;
var	autoCompUrl = '/ajax/autocompleter/isin-autocomp.php?';
var getCoursUrl = '/ajax/autocompleter/isin-getcours.php';

function initIsinAutoComp(fieldId,options){
	if(!$(fieldId)){
		alert('isinAutoComp : Le champ spécifié n\'existe pas');
		return;
	}
	
	mainFieldId = fieldId;
	
	if(options){
		if(options.isinFieldId) isinFieldId = options.isinFieldId;
		if(options.placeFieldId) placeFieldId = options.placeFieldId;
		if(options.mnemoFieldId) mnemoFieldId = options.mnemoFieldId;
		if(options.coursFieldId) coursFieldId = options.coursFieldId;
		if(options.dispInfosValue) dispInfosValue = options.dispInfosValue;
		if(options.autoCompUrl) autoCompUrl = options.autoCompUrl;
		if(options.getCoursUrl) getCoursUrl = options.getCoursUrl;
		if(options.type) autoCompUrl = autoCompUrl+'&type='+options.type;
		if(options.srd) autoCompUrl = autoCompUrl+'&srd';
	}
	

	getCoursRequest = new Request.JSON({
		url: getCoursUrl,
		autoCancel : true, 
		onComplete: function(resp){
			if(dispInfosValue){
	    	roarIsinInfos.empty();
				roarIsinInfos.alert("Nom : "+currentSelectedIsin.lib+"<br/><br/>"
										+"ISIN : "+currentSelectedIsin.isin+"<br/><br/>"
										+"Mnemo : "+currentSelectedIsin.mnemo+"<br/><br/>"
										+"Place : "+currentSelectedIsin.place_lib+"<br/><br/>"
										+"Cours : "+resp.last+" "+resp.devise+"<br/><br/>"
										+'Variation : <span class="'+((resp.variation < 0)?'negatif':'positif')+'">'+resp.variation+" %</span><br/><br/>"
										+"Volumes : "+resp.volumes+"<br/><br/>"
										+'<span style="font-size : 0.8em;">(Cliquer pour faire disparaître)</span><br/><br/>');
			}
			if(coursFieldId && $(coursFieldId)) $(coursFieldId).value=resp.last;
		}
	});

	if(dispInfosValue) roarIsinInfos = new Roar({position: 'lowerLeft',duration:10000});

  new Autocompleter.Ajax.Json(mainFieldId, autoCompUrl, {
      postVar 			: 'search',
      minLength 		: 1,
			overflow 			: true,
			width 				: 500,
			filterSubset 	: true,
			onSelection 	: function(el,selectedValue){
				currentSelectedIsin = selectedValue.token;
				if(isinFieldId && $(isinFieldId)) $(isinFieldId).value=currentSelectedIsin.isin;
				if(mnemoFieldId && $(mnemoFieldId)) $(mnemoFieldId).value=currentSelectedIsin.mnemo;
				if(placeFieldId && $(placeFieldId)) $(placeFieldId).value=currentSelectedIsin.place_dbcode;
				if(dispInfosValue || coursFieldId) getCoursRequest.get({'isin': currentSelectedIsin.isin, 'place': currentSelectedIsin.place_dbcode});
			},
			injectChoice 	: function(token){
				var libelle = this.markQueryValue(token.lib)
										 +'<br/><span class="small">'
										 +this.markQueryValue(token.isin)
										 +'-'
										 +this.markQueryValue(token.mnemo)
										 +'-'
										 +this.markQueryValue(token.place_lib)
										 +'</span>';
				var choice = new Element('li', {'html': libelle});
				choice.inputValue = token.lib;
				choice.token = token;
				this.addChoiceEvents(choice).inject(this.choices);
			}
  });

}
