';
alertsHTML += '';
*/
RAUtilWindow.innerHTML = alertsHTML;
document.body.appendChild(RAUtilWindow);
document.getElementById('RAShiftLeftBtn').addEventListener('click', RAShiftLeftBtnClick, false);
document.getElementById('RAShiftRightBtn').addEventListener('click', RAShiftRightBtnClick, false);
document.getElementById('RAShiftUpBtn').addEventListener('click', RAShiftUpBtnClick, false);
document.getElementById('RAShiftDownBtn').addEventListener('click', RAShiftDownBtnClick, false);
$('#shiftAmount').keypress(function(event) {
if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) {
event.preventDefault();
}
});
window.Waze.selectionManager.events.register("selectionchanged", null, checkDisplayTool);
W.model.actionManager.events.register("afterundoaction",null, undotriggered);
W.model.actionManager.events.register("afterclearactions",null,actionsCleared);
}
function undotriggered(){
checkSaveChanges();
}
function actionsCleared(){
checkSaveChanges();
}
function checkDisplayTool(){
if(W.selectionManager.hasSelectedItems() && Waze.selectionManager.selectedItems[0].model.type === 'segment'){
if(!AllSelectedSegmentsRA() || W.selectionManager.selectedItems.length === 0)
$('#RAUtilWindow').css({'visibility': 'hidden'});
else{
$('#RAUtilWindow').css({'visibility': 'visible'});
$('#RAUtilWindow' ).draggable();
}
}
else{
$('#RAUtilWindow').css({'visibility': 'hidden'});
$('#RAUtilWindow' ).draggable();
}
checkSaveChanges();
}
var pendingChanges = false;
/**
Returns false if there are pending changes, true if no changes need saved.
*/
function checkSaveChanges(){
var $RASaveChanges = $('#RAUtilSaveChanges');
if(W.model.actionManager.index >= 0){
if($RASaveChanges.length === 0){
$RASaveChanges = $('
', {id:'RAUtilSaveChanges', style:'color:red'});
$RASaveChanges.text('You must save your changes before using this utility.');
$('#RAUtilWindow').append($RASaveChanges);
pendingChanges = true;
}
}
else
{
$RASaveChanges.remove();
pendingChanges = false;
}
}
function AllSelectedSegmentsRA()
{
for (i = 0; i < W.selectionManager.selectedItems.length; i++){
if(W.selectionManager.selectedItems[i].model.attributes.id < 0 || !wLib.Model.isRoundaboutSegmentID(W.selectionManager.selectedItems[i].model.attributes.id))
return false;
}
return true;
}
function ShiftSegmentNodesLat(segObj, latOffset)
{
var RASegs = wLib.Model.getAllRoundaboutSegmentsFromObj(segObj);
var gps;
var newGeometry = segObj.geometry.clone();
var originalLength = segObj.geometry.components.length;
for(i=0; i