/* dealer finder version 1.5.3 */
/* v9_viamichelin_script.js */
/* 
ambiguity put back in
fixed wrong radio value on second search
labels tel, fax, email translatable
*/

var G={gecko:navigator.product=='Gecko',
ie6:(!!document.all && !(typeof window.XMLHttpRequest=='object')),
init:function(){
try{document.execCommand('BackgroundImageCache', false, true)}catch(err){}
for(var n in G)if(G[n].init)G[n].init()
},
set:function(a,b){for(var o in b)a[o]=b[o];return a},
create:function(a,b,c,d){var o=(d||document).createElement(a);G.set(o,b);G.set(o.style,c);return o},
append:function(a,b,c,d){var o=b.tagName?b:G.create(b,c,d,a.ownerDocument);a.appendChild(o);return o},
time:function(){return new Date().getTime()},
fn:function(a){return(0.5-Math.cos(a*Math.PI)/2)},
middle:function(o,a,b){o=o.split(a);return(o.length<2)?'':o[1].split(b)[0]},
pos:function(a){var x=0,y=0;if(a.y)return{x:a.x,y:a.y};while(a!=null){x+=a.offsetLeft;y+=a.offsetTop;a=a.offsetParent};return{x:x,y:y}},
stop:function(a){if(a){clearTimeout(a);a=null}},
expand:function(a){((a.nodeName)?a:$(a)).style.display='block'},
collapse:function(a){((a.nodeName)?a:$(a)).style.display='none'}
}
function $(a){return document.getElementById(a)}
function $$(a,b){return (b||document).getElementsByTagName(a)}
window.onload=G.init

G.vmc={onRoute:false,allChecked:false,
init:function(){
	var m=this,a,b
	if(location.search.indexOf('ui=blankpage')==-1)if(window.top.location==location){location.replace('/index.aspx?form='+location.href);return}
	VMAPI.registerKey(m.key)
	VMAPI.setLanguage(m.lang)
	m.activeMsg=$('msg0')
	G.collapse('loading')
	$('pStep').style.visibility='visible'
	document.onkeypress=m.handleKey
	m.prepare()
	a=m.qVal('city');if(a){$('fTown').value=a;m.evalStep1()}
},
qVal:function(a){return unescape(G.middle(location.search,a+'=','&'))},
handleKey:function(e){
	var m=G.vmc,ev=(e)?e:window.event
	if(ev.keyCode!=13)return
	if($('getDir').style.display=='block')m.evalRoute()
	else if($('vStep').innerHTML==2) m.evalStep1b()
	else m.evalStep1()
},
getClass:function(a){
	var m=this,o=m.cats,i,p
	for(i=0;i<o.length;i++){p=o[i].split('|');if(p[2]==a)return 'i'+p[1]}
	return ''
},
prepare:function(){
	var m=this,o=m.items=[],i,q=m.cats,oo=[],o2=[],v,p,x,xx,x2,o1,o2,qq,q2,qt
	if($('fFilterA'))m.hasRadio=$('fFilterA').value!=""
	if(m.hasRadio){
		if(m.preselect)$$('input',$('fFI'))[m.preselect-1].checked='checked'
		qq=($$('label',$('fFI')))
		q2=($$('label',$('check2')))
		$('filterAll').style.display='none'
		qt=m.getClass($('fFilterA').value)
		qq[0].className=qt
		q2[0].className=qt
		qt=m.getClass($('fFilterB').value)
		qq[1].className=qt
		q2[1].className=qt
	}
	else{
		try{$('eLabel2').style.display='none';$('fFI').style.display='none'}
		catch(e){}
		for(i=0;i<9;i++){if(m.cats[i].split('|')[3]=='TRUE')o.push(m.cats[i])}
		if(o.length==0){
			$('filterAll').style.display='none'
			m.hasServ=false
		}
		else{
			m.hasServ=true
			o2.push('<ul class="check" id="check2">')
			for(i=0;i<o.length;i++){
				v=o[i].split('|'),p=i+1
			 	if(i%3==0)oo.push('<ul class="check">')
			 	oo.push('<li><input type="checkbox" name="Option1" id="fOption'+p+'" value="'+v[2]+'" /><label for="fOption'+p+'" class="i'+v[1]+'">'+v[0]+'</label></li>')
			 	if(i%3==2)oo.push('</ul>')
			 	o2.push('<li><input type="checkbox" name="Option2" id="fOption2'+p+'" value="'+v[2]+'" /><label for="fOption2'+p+'" class="i'+v[1]+'" title="'+v[0]+'"></label></li>')
			 }
			 if(i%3!=2)oo.push('</ul>')
			 o2.push('</ul>')
			 $('checks01').innerHTML=oo.join('\n')
			 $('checks02').innerHTML=o2.join('\n')
		}
	}
	G.expand('step1')
},
selectAll:function(a){
	var m=G.vmc,o=$('form1').Option1,i,v
	v=m.allChecked=!m.allChecked
	for(i=0;i<o.length;i++)o[i].checked=v
},
setMsg:function(a){var m=this,o=$('msg'+a);G.collapse(m.activeMsg);G.expand(o);m.activeMsg=o},
evalStep1:function(){
	var m=G.vmc,vZip=$('fZip').value,vCity=$('fTown').value,s,o,v
	G.collapse('destination')
	if(vZip+vCity==''){m.setMsg(1);$('eLabel1').className='error';return}
	$('eLabel1').className=''
	if(m.hasRadio&&!m.getRadioVal($('form1').radio1)){m.setMsg(3);$('eLabel2').className='error';return}
	$('eLabel1').className=''
	if(m.hasRadio)$('eLabel2').className=''
	m.setMsg(0)
	if(vZip==''){m.SearchMethod='CityName';m.SearchValue=vCity}
	else{m.SearchMethod='Zipcode';m.SearchValue=vZip}
	o=m.myaddress=new VMAddress()
	o.address='';o.zipCode=vZip;o.city=vCity;o.countryVMCode=m.country
	s=m.geosearch=new VMGeoSearch()
	s.addEventHandler("onCallBack",m.evalSearch)
	s.search(o)
},
getRadioVal:function(a){for(var i=0;i<a.length;i++){if(a[i].checked)return a[i].value};return null},
evalSearch:function(){
	var m=G.vmc,o=m.geosearch.results,i,oo=$('fDestination')
	if(o.length==0){m.setMsg(2);$('eLabel1').className='error';return}
	m.setMsg(0);$('eLabel1').className=''
	if(o.length>1){
		for(i=oo.options.length;i>=0;i--)oo.options[i]=null
		oo.options[0]=new Option(m.destMsg,'')
		for(i=0;i<o.length;i++)oo.options[i+1]=new Option(o[i].VMAmbiguityLine,i)
		G.expand('destination')
	}
	else{
		G.collapse('destination')
		m.goStep2(0)
	}
},
goStep2:function(a){
	var m=G.vmc,o
	m.index=a
	$('vStep').innerHTML=2
	G.collapse('step1')
	m.copyVals()
	G.expand('step2')
	o=m.poiDef=new VMPOIDefinition()
	o.addEventHandler("onCallBack",m.doSearch)
	o.getDefinition(m.productId)
},
copyVals:function(){
	var m=this,o,t,i
	$('fTown2').value=$('fTown').value
	$('fZip2').value=$('fZip').value
	if(m.hasRadio){o=$('form1').radio1;t=$('form2').radio2}
	else{o=$('form1').Option1;t=$('form2').Option2}
	if(o){for(i=0;i<o.length;i++)t[i].checked=o[i].checked}
},
radioChange:function(){
	var m=G.vmc,vZip=$('fZip2').value,vCity=$('fTown2').value
	if(vZip+vCity!='')m.evalStep1b()
},
doSearch:function(){
	var m=G.vmc,o=m.myPOIsearch=new VMPOISearch(m.poiDef),x=$('form1').Option1,i,ff=[]
	if(m.hasRadio)x=$('form1').radio1
	if(x){
		for(i=0;i<x.length;i++){
			if(x[i].checked){
		 		m.poiDef.setCriteria(x[i].value,1,true)
		 		ff.push(x[i].value)
		 	}
		 }
		 m.SearchFilter=ff.join('+')
	}
	m.poiDef.setCriteria(11,m.countryFilter,true)
	o.addEventHandler("onCallBack", m.displayResult)
	o.search(m.geosearch.results[m.index].coords)
	
},
/* step 2 search*/
evalStep1b:function(){
	var m=G.vmc,vZip=$('fZip2').value,vCity=$('fTown2').value,s,o
	if(vZip+vCity==''){$('errLabel2').className='error';G.expand('errMsg1');return}
	$('errLabel2').className='';G.collapse('errMsg1')
	$('fTown3').value=$('fTown2').value
	$('fZip3').value=$('fZip2').value
	if(vZip==''){m.SearchMethod='CityName';m.SearchValue=vCity}
	else{m.SearchMethod='Zipcode';m.SearchValue=vZip}
	o=m.myaddress=new VMAddress()
	o.address='';o.zipCode=vZip;o.city=vCity;o.countryVMCode=m.country
	s=m.geosearch=new VMGeoSearch()
	s.addEventHandler("onCallBack",m.evalSearch2)
	s.search(o)
},
evalSearch2:function(){
	var m=G.vmc,o=m.geosearch.results,i,oo=$('fDestination2')
	if(o.length==0){$('errLabel2').className='error';G.expand('errMsg1');return}
	$('errLabel2').className='';G.collapse('errMsg1')
	if(o.length>1){
		for(i=oo.options.length;i>=0;i--)oo.options[i]=null
		oo.options[0]=new Option(m.destMsg,'')
		for(i=0;i<o.length;i++)oo.options[i+1]=new Option(o[i].VMAmbiguityLine,i)
		G.expand('alertMsg1')
	}
	else m.goStep2b(0)
},
goStep2b:function(a){
	var m=G.vmc,o
	if(m.onRoute){m.calcRoute(a);return}
	m.index=a
	$('vStep').innerHTML=2
	G.collapse('alertMsg1')
	o=m.poiDef=new VMPOIDefinition()
	o.addEventHandler("onCallBack",m.doSearch2)
	o.getDefinition(m.productId)
},
doSearch2:function(a){
	var m=G.vmc,o=m.myPOIsearch=new VMPOISearch(m.poiDef),x=$('form2').Option2,i,ff=[]
	m.addr=a
	if(m.hasRadio)x=$('form2').radio2
	if(x){
		for(i=0;i<x.length;i++){
			if(x[i].checked){
		 		m.poiDef.setCriteria(x[i].value*1,1,true)
		 		ff.push(x[i].value)
		 	}
			else m.poiDef.setCriteria(x[i].value*1,1,false)
		 }
	}
	m.SearchFilter=ff.join('+')
	m.poiDef.setCriteria(11,m.countryFilter,true)
	o.addEventHandler("onCallBack", m.displayResult)
	o.search(m.geosearch.results[m.index].coords)
},
/* end step 2 search */

displayResult:function(){
	var m=G.vmc,o=m.myPOIsearch.result,i,v,p,q,ico,pp,om,xt
	dcsTrk('WT.pn=search results&WT.si_x=2&SearchMethod='+m.SearchMethod+'&SearchValue='+m.SearchValue+'&SearchFilter='+m.SearchFilter)
	if(o.VMPOIs.length>0){
		m.myPOIlist=o
		$("map01").innerHTML=''
		om=m.map=new VMMap($('map01'))
		xt=G.ie6?'.gif':'.png'
		for(i=0;i<o.VMPOIs.length;i++){
			pp=o.VMPOIs[i]
		 	ico=new VMIcon(m.icoBase+'ty_mapico_'+(i+1)+xt,-21,-61)
		 	pp.setIconLayer(ico)
		 	p=pp.getLayer()
		 	G.set(p.bG,{indexNum:i,onclick:m.click,className:'iPOI'})
		 	om.addLayer(p)
		 }
		 om.drawMapFromLayers()
		 om.activateZoom(true)
		 om.activateSatelliteHybrid(true)
		 om.showMapTools()
		 setTimeout(m.parse,500)
	}
	else{alert("No POI found")}
},
click:function(){
	var m=G.vmc,p=this.indexNum,o=m.myPOIsearch.result.VMPOIs[p]
	m.setDetail(p)
},
parse:function(){
	var m=G.vmc,o=m.myPOIsearch.result.VMPOIs,i,v=[],oa,ob,xx=m.myPOIsearch.result.distanceUnit
	for(i=0;i<o.length;i++){
		oa=o[i].name
		ob=Math.round(o[i].distance/100)/10+' '+xx
		v.push('<a href="javascript:void null" onclick="G.vmc.showDetail('+i+',this)"><i>'+ob+'</i>'+m.fm(i+1)+oa+'</a>')
	}
	$('rNum').innerHTML=o.length
	$('rList').innerHTML=v.join('')
	m.showDetail(0,$$('a',$('rList'))[0])
},
fm:function(a){
	return((a>9)?'':'&nbsp;')+a+'&nbsp;'
},
setDetail:function(a){G.vmc.showDetail(a,$$('a',$('rList'))[a])},
showDetail:function(a,b){
	var m=G.vmc,o=m.myPOIsearch.result.VMPOIs[a],v=[],h2
	if(m.active)m.active.className=''
	m.active=b
	m.selected=a
	b.className='on'
	v.push('<div id="dTitle"><h2>'+o.name+'</h2></div>')
	v.push('<p class="intro">')
	v.push(o.address+'<br />'+o.zipCode+' '+o.city+'</p>')
	v.push('<p><strong>'+(m.tel?m.tel:'Tel')+': </strong>'+o.telNumber+'<br />')
	v.push('<strong>'+(m.fax?m.fax:'Fax')+': </strong>'+o.faxNumber+'<br />')
	v.push('<strong>'+(m.email?m.email:'E-mail')+': </strong>'+o.mail+'</p>')
	m.addServices(o.metaNums,v)
	v.push('<p class="btnDir"><a class="btn" href="javascript:G.vmc.startRoute()"><b>'+m.directionsBtn+'</b><i></i></a><a class="btn" href="javascript:G.vmc.toggleExport()"><b>'+m.exportBtn+'</b><i></i></a></p>')
	v.push('<p>')
	if(o.webSite)v.push('<a class="btnSm" href="'+m.getLink(o.webSite)+'" target="_blank" onclick="G.vmc.track()"><b>'+m.websiteBtn+'</b><i></i></a>')
	v.push('<a class="btnSm" href="javascript:G.vmc.printDetail(\''+o.id+'\')"><b>'+m.printBtn+'</b><i></i></a>')
	v.push('</p>')
	$('rDetail').innerHTML=v.join('')
	h2=$$('h2',$('rDetail'))[0]
	if(h2.offsetHeight>40)h2.style.fontSize='11px'
	m.panCoords=o.coords
	m.panToDetail()
},
getLink:function(a){if(a.indexOf('javascript:window.open(')>-1)return a.split("'")[1].split("'")[0];else return a},
track:function(){
	dcsTrk('WT.pn=open retailer site&WT.si_n=dealerfinder open site&WT.si_cs=1')
},
panToDetail:function(){
	var m=G.vmc
	try{m.map.panTo(m.panCoords)}
	catch(e){setTimeout(m.panToDetail,500)}
},
addServices:function(o,v){
	var m=this,i,p,oo=m.cats
	v.push('<p id="services">')
	for(i in oo){
		if(o[i]=='1'){p=oo[i].split('|');v.push('<i class="i'+p[1]+'" title="'+p[0]+'"></i>')}
	}
	v.push('</p>')
},
startRoute:function(a){
	var m=G.vmc
	$('fTown3').value=$('fTown2').value
	$('fZip3').value=$('fZip2').value
	G.expand('getDir')
	dcsTrk('WT.pn=directions form&WT.si_x=3')
},
evalRoute:function(){
	var m=G.vmc
	if($('fZip3').value+$('fTown3').value==''){alert('please fill in...');return}
	var m=G.vmc,o=m.myStartAddress=new VMAddress()
	o.address=$('fStreet').value
	o.zipCode=$('fZip3').value
	o.city=$('fTown3').value
	o.countryVMCode=m.country
	s=m.geosearch2=new VMGeoSearch()
	s.addEventHandler("onCallBack",m.evalStartAddress2)
	s.search(o)
},
evalStartAddress2:function(){
	var m=G.vmc,o=m.geosearch2.results,i,oo=$('fDestination3')
	if(o.length==0){$('errLabel2').className='error';G.expand('errMsg1');return}
	$('errLabel2').className='';G.collapse('errMsg1')
	if(o.length>1){
		m.onRoute=true
		for(i=oo.options.length;i>=0;i--)oo.options[i]=null
		for(i=0;i<o.length;i++)oo.options[i+1]=new Option(o[i].VMAmbiguityLine,i)
		G.expand('alertMsg2')
	}
	else m.calcRoute(0)
},
calcRoute:function(a){
	var m=G.vmc,pStart=m.geosearch2.results[a],pEnd=m.myPOIsearch.result.VMPOIs[m.selected],o,x
	m.startSelected=a
	o=m.iteration=new VMItinerary()
	o.setItineraryType(m.radioVal($('getDirForm').routeType)*1)
	o.addStopOver(pStart.coords)
	o.addStopOver(pEnd.coords)
	o.addEventHandler("onCallBack",m.displayRoute)
	o.search()
},
radioVal:function(a){for(var i=0;i<a.length;i++){if(a[i].checked)return a[i].value};return null},
displayRoute:function(){
	var m=G.vmc,o=m.iteration,om=m.map;if(!o)return
	G.collapse('block2a')
	G.expand('block2b')
	G.collapse('step2a')
	G.expand('step2b')
	$('theRoute').innerHTML=m.routeHtml(o.roadSheet)
	om.addLayer(o.getItiAsVMComplexLayer("#000",7,0.5))
	om.drawMapFromLayers()
	om.addLayer(o.roadSheet.getLayer())
	dcsTrk('WT.pn=directions results&WT.si_x=4')
},
routeHtml:function(a){
	var m=G.vmc,o=a.qB,i,v=[],oo,j,ss
	v.push('<table>')
	for(i=0;i<o.length;i++){
		ss=(i%2)?' class="altH"':' class="H"'
		v.push('<tr'+ss+'>')
		v.push('<td>'+o[i].number+'</td>')
		v.push('<td class="dir">'+o[i].partialDistance+m.getImg(o[i].picto)+'</td>')
		v.push('<td>'+o[i].description+'</td>')
		v.push('</tr>')
		oo=o[i].details
		ss=(i%2)?' class="alt"':''
		for(j=0;j<oo.length;j++){
			v.push('<tr'+ss+'>')
		 	v.push('<td>&nbsp;</td>')
		 	v.push('<td class="dir">'+oo[j].partialDistance+m.getImg(oo[j].picto)+'</td>')
		 	v.push('<td>'+oo[j].description+'</td>')
		 	v.push('</tr>')
		 }		 		  		 		  
	}
	v.push('</table>')
	return v.join('\n')
},
getImg:function(a){
	if(a.indexOf('right.gif')>-1)return '<img src="/images/arrow-turn-right.gif" alt="" />'
	if(a.indexOf('left.gif')>-1)return '<img src="/images/arrow-turn-left.gif" alt="" />'
	return a
},
changeMapScale:function(a){
	var o=G.vcm.map,s=o.getMapScale()
	if(a=='Min'){if(s<16)o.changeMapScale(s+1)}
	else{if(s()>0)o.changeMapScale(s-1)}
},
showDir:function(){
	var m=G.vmc,o=m.map
	m.zoomFlag=!m.zoomFlag
	o.activateZoom(m.zoomFlag)
	o.showMapTools()
},
showZoom:function(){
	var m=G.vmc,o=m.map
	m.modeFlag=!m.modeFlag
	o.activateSatelliteHybrid(m.modeFlag)
	o.showMapTools()
},
printDetail:function(a){
	var m=G.vmc,v='http://bs.viamichelin.com/b2b2cv2/'+m.serviceLang+'/print.html?typePOI='+m.serviceId+'&id='+a+'&productId='+m.serviceId+'&print=print&cmd=amhome'
	dcsTrk('WT.pn=print retailer details&WT.si_n=dealerfinder print dealer&WT.si_cs=1')
	window.open(v, '', 'menubar=1,resizable=1,scrollbars=1,width=650,height=550')
},
printRoute:function(){
	var m=G.vmc,a=m.geosearch2.results[m.startSelected],b=m.myPOIsearch.result.VMPOIs[m.selected],v=[]
	v.push('http://bs.viamichelin.com/b2b2cv2/'+m.serviceLang+'/index.html?productId='+m.serviceId)
	v.push('itiStartDest=2')
	v.push('strStartCity='+a.city)
	v.push('strStartCityCountry='+a.countryVMCode)
	v.push('strStartCoord='+a.coords.lon+'*'+a.coords.lat)
	v.push('strDestCoord='+b.coords.lon+'*'+b.coords.lat)		 
	v.push('idDest='+b.id)
	v.push('cmd=itihome&print=print')
	v=v.join('&')
	dcsTrk('WT.pn=print direction&WT.si_x=5&WT.si_cs=1')
	window.open(v, '', 'menubar=1,resizable=1,scrollbars=1,width=650,height=550')
},
emailRoute:function(){
	var m=G.vmc,a=m.geosearch2.results[m.startSelected],b=m.myPOIsearch.result.VMPOIs[m.selected],v=[]
	v.push('http://bs.viamichelin.com/b2b2cv2/'+m.serviceLang+'/popup.html?productId='+m.serviceId)
	v.push('itiStartDest=2')
	v.push('strStartCity='+a.city)
	v.push('strStartCityCountry='+a.countryVMCode)
	v.push('strStartCoord='+a.coords.lon+'*'+a.coords.lat)
	v.push('strDestCoord='+b.coords.lon+'*'+b.coords.lat)		 
	v.push('idDest='+b.id)
	v.push('cmdOrig=itihome&moduleOrig=RFM&cmd=emailform')
	v=v.join('&')
	window.open(v, '', 'menubar=1,resizable=1,scrollbars=1,width=650,height=550')
},
cancelRoute:function(){G.collapse('getDir')},
back:function(){var m=G.vmc;G.expand('block2a');G.collapse('block2b');G.expand('step2a');G.collapse('step2b');G.collapse('alertMsg1');G.collapse('getDir');G.collapse('alertMsg2')},
toggleExport:function(){
	var o=$('expGps')
	if(o.className=='')dcsTrk('WT.si_n=dealerfinder gps export&WT.si_x=1')
	o.className=(o.className=='on')?'':'on'
},
doExport:function(a){
	var m=G.vmc,o=m.myPOIsearch.result.VMPOIs[m.selected].coords,v=new VMExportGPS(),f='your_export'
	dcsTrk('WT.si_n=dealerfinder gps export&WT.si_x=2&WT.si_cs=1&GPSFormat='+a)
	switch(a){
	case 'ASC':v.exportASC(o,f);break
	case 'CSV':v.exportCSV(o,f);break
	case 'GPX':v.exportGPX(o,f);break
	case 'OV2':v.exportOV2(o,f);break
	default:v.exportXVM(o,f)
	}
	m.toggleExport()
},
close:function(){try{window.top.Tme.cta.close()}catch(e){}}
}

