
var relPath='http://reductions-internet.tf1conso.fr/';var staticRelPath='http://reductions-internet.tf1conso.fr/cache-static-prod/';var autosuggestEnabled=true;function IGautoComplete(searchId,resultDivId,remoteUrl,nodeBuilder,onclickHandler,onhoverOver,onhoverOut)
{this.searchId=searchId;this.resultDivId=resultDivId;this.remoteUrl=remoteUrl;this.nodeBuilder=nodeBuilder;this.onclickHandler=onclickHandler;this.onhoverOver=onhoverOver;this.onhoverOut=onhoverOut;this.init();}
IGautoComplete.prototype={searchId:null,resultDivId:null,remoteUrl:'',needUpdate:false,timer:null,elemSearch:null,elemResults:null,lastSearch:'igraal',nodeBuilder:function(){},onclickHandler:function(){},onhoverOver:function(){},onhoverOut:function(){},init:function()
{this.elemSearch=$('#'+this.searchId);if(!this.elemSearch)
{alert('Autocomplete error : '+this.searchId+' not found ');}
this.elemResults=$('#'+this.resultDivId);if(!this.elemResults)
{alert('Autocomplete error : '+this.resultDivId+' not found ');}
var self=this;this.elemSearch.keyup(function(){self.programUpdate();});this.elemSearch.click(function(){self.programUpdate();});$('body').click(function(){self.clearResults();});},programUpdate:function()
{var self=this;var val=self.elemSearch.val();self.clearResults();if(val!=self.lastSearch&&val.length>0)
{this.needUpdate=true;clearTimeout(this.timer);this.timer=setTimeout(function(){self.updateResults();},500);}},updateResults:function()
{var self=this;if(!self.needUpdate)return;var search=self.elemSearch.val();$.getJSON(self.remoteUrl+'&search='+encodeURIComponent(search),function(data)
{self.lastSearch=search;if(data['error']=='')
{var html='<dl class="autosuggest" style="width: inherit; z-index: 200;">';for(var index in data['result'])
{var item=data['result'][index];html+=self.nodeBuilder(item);}
if(data['result'].length==0)
{html+='<dd class="menuitem" style="cursor: default;">'+'  Aucune correspondance trouv&eacute;e'+'</dd>';}
html+='</dl>';self.elemResults.html(html);self.elemResults.show();$('#'+self.resultDivId+' dd[id^=\'res-\']').hover(self.onhoverOver,self.onhoverOut);$('#'+self.resultDivId+' dd[id^=\'res-\']').click(self.onclickHandler);}
else
{self.elemResults.html(data['error']);}
self.needUpdate=false;});},clearResults:function()
{if(!this.elemResults)return;this.elemResults.html('');this.lastSearch+='..';this.elemResults.hide();}};function IGSuggest(searchId,resultDivId,remoteUrl,nodeBuilder,formId)
{this.searchId=searchId;this.resultDivId=resultDivId;this.remoteUrl=remoteUrl;this.nodeBuilder=nodeBuilder;this.formId=formId;this.init();}
IGSuggest.prototype={searchId:null,resultDivId:null,remoteUrl:'',needUpdate:false,timer:null,elemSearch:null,elemResults:null,lastSearch:'igraal',nodeBuilder:function(){},curAjax:null,prevAjax:null,reqOutId:0,reqInId:0,resultWidth:0,selectedElem:null,formId:'',init:function()
{this.elemSearch=$('#'+this.searchId);if(!this.elemSearch)
{alert('Autocomplete error : '+this.searchId+' not found ');}
this.resultWidth=parseInt(this.elemSearch.css('width'));this.elemResults=$('#'+this.resultDivId);if(!this.elemResults)
{alert('Autocomplete error : '+this.resultDivId+' not found ');}
var self=this;this.elemSearch.parents('form').submit(function()
{return(self.selectedElem==null);});$('body').click(function(){self.elemResults.hide();});this.elemSearch.keyup(function(event){self.programUpdate(event);});},setSelectedElem:function(newElem)
{var self=this;if(self.selectedElem)
{self.selectedElem.attr('class','suggestitem');}
self.selectedElem=newElem;if(self.selectedElem)
{self.selectedElem.attr('class','suggestitem-hl');}},searchResultsCallback:function(data)
{alert('Callback : result = '+typeof(data));},updateResults:function()
{if(!autosuggestEnabled)return;var self=this;if(!self.needUpdate)return;var widthElemSearch=parseInt(this.elemSearch.css('width'));var newWidth=widthElemSearch+7+'px';this.elemResults.css('width',newWidth);this.elemResults.css('top',this.elemSearch.offset().top+this.elemSearch.height()+6);this.elemResults.css('left',this.elemSearch.offset().left);var search=self.elemSearch.val();self.lastSearch=search;if(self.prevAjax!=null)self.prevAjax.abort();self.prevAjax=self.curAjax;self.curAjax=$.getJSON(self.remoteUrl+'&search='+encodeURIComponent(search)+'&id='+self.reqOutId,function(data){var nbResult=0;var nbPart=0;if(data['error']=='')
{if(self.reqInId>parseInt(data['requestId']))
{return;}
self.reqInId=parseInt(data['requestId']);self.clearResults();self.lastSearch=search;var html='<dl class="autosuggest">';for(var cat in data['result'])
{if(data['result'][cat].length>0)
{if(data['titles'][cat].length>0)
{html+='<dd class="suggestitem-cat" style="cursor: default;">'+
data['titles'][cat]+'</dd>';}
for(var index in data['result'][cat])
{var item=data['result'][cat][index];html+=self.nodeBuilder(item,self.resultWidth);nbResult++;}
nbPart++;}}
html+='<dd style="text-align: right; color: #a5a4a5; font-size: 12px; padding: 5px; cursor: pointer;" onclick="disableAutosuggest();">&#9652; masquer</dd>'+'</dl>';if(nbPart==0)
{self.elemResults.hide();}
else
{self.elemResults.html(html);self.elemResults.show();}
$('#'+self.resultDivId+' dd[id^=\'res-\']').hover(function(){self.setSelectedElem($('#'+this.getAttribute('id')));},function(){});}
else
{self.elemResults.html(data['error']);}
self.needUpdate=false;});self.reqOutId++;},programUpdate:function(event)
{var self=this;if(event.keyCode=='13')
{if(self.selectedElem)
{event.preventDefault();self.elemSearch.val($(self.selectedElem[0].childNodes[1]).text().replace(/^\s+/g,'').replace(/\s+$/g,''));self.selectedElem.click();self.clearResults();return false;}
self.clearResults();$('#formId').submit();return true;}
else if(event.keyCode=='27')
{self.clearResults();return;}
else if(event.keyCode=='38')
{if(self.selectedElem==null)
{self.setSelectedElem($('#'+self.resultDivId+' dd.suggestitem:last'));return;}
var newElem=self.selectedElem.prev();while(newElem.length>0&&newElem.attr('id')=='')
{newElem=newElem.prev();}
if(newElem.length!=0)
{self.setSelectedElem(newElem);}
else
{self.setSelectedElem($('#'+self.resultDivId+' dd.suggestitem:last'));}
return;}
else if(event.keyCode=='40')
{if(self.selectedElem==null)
{self.setSelectedElem($('#'+self.resultDivId+' dd.suggestitem:first'));return;}
var newElem=self.selectedElem.next();while(newElem.length>0&&newElem.attr('id')=='')
{newElem=newElem.next();}
if(newElem.length!=0)
{self.setSelectedElem(newElem);}
else
{self.setSelectedElem($('#'+self.resultDivId+' dd.suggestitem:first'));}
return;}
var val=self.elemSearch.val();if(val!=self.lastSearch)
{if(val.length>1)
{if(self.lastSearch.length>val.length)
{self.clearResults();}
this.needUpdate=true;self.updateResults();}
else
{self.clearResults();}}},clearResults:function()
{if(!this.elemResults)return;this.setSelectedElem(null);this.elemResults.html('');this.lastSearch+='..';this.elemResults.hide();}};function disableAutosuggest()
{autosuggestEnabled=false;if(autoComp)
{autoComp.clearResults();}}
function IGnodeBuilder(){};IGnodeBuilder.prototype={};IGnodeBuilder.buildNodeMerchantAdd=function(item)
{var ico=item['iconUrl'].favicon;var html='<dd id="res-'+item['id']+'" class="suggestitem" style="cursor: default;" onclick="addMerchantById('+item['id']+')">'+'  <div style="overflow: hidden; max-width: 130px; float: left; white-space: nowrap; vertical-align: top;">'+'    <img src="'+ico+'" class="icon_partner"/>'+item['name']+'  </div>'+'  <img alt="" src="'+staticRelPath+'common/images/www/account/favorites/plus.png" style="float: right;" class="icon_partner_details"/>'+'</dd>';return html;};IGnodeBuilder.buildMerchantNode=function(item)
{if(typeof(IGMenuData)!='undefined')
{if(typeof(IGMenuData['merchants'][item['id']])=='undefined')
{IGMenuData['merchants'][item['id']]={};}
IGMenuData['merchants'][item['id']]['urlName']=item['canonicalUrl'];}
var ico=item['iconUrl'].favicon;var html='<dd id="res-'+item['id']+'" class="suggestitem" style="cursor: default;">'+'  <div style="overflow: hidden; max-width: 130px; float: left; white-space: nowrap; vertical-align: top;">'+'    <img src="'+ico+'" class="icon_partner"/>'+item['name']+'  </div>';if(item['nbVouchers']>0)
{html+='<img alt="" src="'+staticRelPath+'fr-fr/images/www/toolkit/arbo/promos.png" style="float: right;" class="icon_partner_details"/>';}
if(item['nbSpecial']>0)
{html+='<img alt="" src="'+staticRelPath+'fr-fr/images/www/toolkit/arbo/specials.png" style="float: right;" class="icon_partner_details"/>';}
html+='  <div style="float: right;">'+item['rem']+'</div>'+'</dd>';return html;};IGnodeBuilder.buildGenericNode=function(item,totalWidth)
{var leftWidth=totalWidth-60;var redirectPath;var html;if(/^http:/.test(item['url']))
redirectPath=item['url'];else
redirectPath=relPath+item['url'];html='<dd id="res-'+item['id']+'" class="suggestitem" onclick="IGnodeBuilder.redirect(\''+redirectPath+'\',\''+item['text']+'\')">'+'  <div style="overflow: hidden; max-width: '+leftWidth+'px; float: left; white-space: nowrap; vertical-align: top;">'+'    '+item['left']+'  </div>'+'  <div style="float: right;">'+item['right']+'</div>'+'</dd>';return html;};IGnodeBuilder.redirect=function(url,text)
{regex=new RegExp("comparateur");if(regex.test(window.location)&&regex.test(url)){$('#'+self.autoComp.searchId).val('');}else
{$('#'+self.autoComp.searchId).val(decodeURIComponent(text));}
if(self!=top)
{top.location=url;}
else
{document.location=url;}};
