extensions.push('scale');


//addExtensionHTML(scalehtml);

function scaleBegin() {
	eventListeners.attachToEvent('scaleChange','adjustScale');
	eventListeners.attachToEvent('scaleToggle','scaleToggle');
	//commands['scaleToggle']='scaleToggle';
	otherMapGui.push('scaleDiv');
	otherMapGui.push('scaleSfondoDiv');
}

function adjustScale() {
	var realRange=map.realRange;
	var delta = realRange.getDeltaX();
	var seg,vseg;
	var um='';
	
	if (map.meterWidth>0)
	{
		delta = map.meterWidth*delta/map.originalRealRange.getDeltaX();
	}
	
	var barDelta=delta/10;
	var vseg=30;
	var seg;

	if(barDelta>1000) {
		um='km';
		seg=Math.floor(barDelta/1000);
		var log=Math.floor(Math.LOG10E*Math.log(seg));
		var pow=Math.pow(10,log);
		seg=Math.floor(seg/pow)*pow;
		vseg=Math.floor(seg*mapWidth/(delta/1000));
	} else {
		um='m';
		seg=Math.floor(barDelta);
		var log=Math.floor(Math.LOG10E*Math.log(seg));
		var pow=Math.pow(10,log);
		seg=Math.floor(seg/pow)*pow;
		vseg=Math.floor(seg*mapWidth/(delta));
	}
	
	var ih;
	
	var scaleColor=mapInfo.getProperty('ScaleColor');

	ih = '<v:rect strokecolor="black" id="s1" style="position:absolute;top:0px;left:0px;width:'+vseg+';height:5;z-index:3002"><v:fill opacity="1" color="'+scaleColor+'"/></v:rect>';
	ih+= '<v:rect strokecolor="black" id="s2" style="position:absolute;top:0px;left:'+vseg+'px;width:'+vseg+';height:5;z-index:3002"><v:fill opacity="1" color="white"/></v:rect>';
	ih+= '<v:rect strokecolor="black" id="s3" style="position:absolute;top:0px;left:'+2*vseg+'px;width:'+vseg+';height:5;z-index:3002"><v:fill opacity="1" color="'+scaleColor+'"/></v:rect>';
	ih+= '<v:rect strokecolor="black" id="s4" style="position:absolute;top:0px;left:'+3*vseg+'px;width:'+vseg+';height:5;z-index:3002"><v:fill opacity="1" color="white"/></v:rect>';

	ih+= '<label id="l1" style="position:absolute;top:-15px;left:-2px;width:'+vseg+';height:10;z-index:3002;font-size=10;font-family=Verdana;font-weight:bold;color:black">0</label>';
	ih+= '<label id="l2" style="position:absolute;top:-15px;left:'+(vseg-getOffset(seg))+'px;width:'+vseg+';height:10;z-index:3002;font-size=10;font-family=Verdana;font-weight:bold;color:black">'+ seg +'</label>';
	ih+= '<label id="l3" style="position:absolute;top:-15px;left:'+(2*vseg-getOffset(2*seg))+'px;width:'+vseg+';height:10;z-index:3002;font-size=10;font-family=Verdana;font-weight:bold;color:black">'+ 2*seg+'</label>';
	ih+= '<label id="l4" style="position:absolute;top:-15px;left:'+(3*vseg-getOffset(3*seg))+'px;width:'+vseg+';height:10;z-index:3002;font-size=10;font-family=Verdana;font-weight:bold;color:black">'+ 3*seg+'</label>';
	ih+= '<label id="l5" style="position:absolute;top:-15px;left:'+(4*vseg-getOffset(4*seg))+'px;width:'+vseg+';height:10;z-index:3002;font-size=10;font-family=Verdana;font-weight:bold;color:black">'+ 4*seg + '&nbsp;'+um +'</label>';

	var div=document.getElementById('scaleDiv');
	div.innerHTML = ih;
}

function scaleToggle(args) {
	var div=document.getElementById('scaleDiv');
	var div2=document.getElementById('scaleSfondoDiv');
	if (div.style.visibility == 'visible')
	{
		div.style.visibility = 'hidden';
		div2.style.visibility = 'hidden';
	}
	else
	{
		div.style.visibility = 'visible';
		div2.style.visibility = 'visible';
		adjustScale();
	}

	actionEnd();
}
