var curCol = 3 //стойноста не променя нищо
var curRow = 5
var hfold //3* mini karta
var curMCols = l0Cols
var curMRows = l0Rows
var pikW = miniW * maxCols / curMCols
var pikH = miniH * maxRows / curMRows
var clX = 0
var clY = 0
var miniX = 0
var miniY = 0
var curZoomUp = true //3
//--------------------------------------------ne se promenq------------
//start Loading...
var strTD1 = ''
hfold = document.location.href
for (var i = hfold.length; hfold.charAt(i)!="/"; i--){}
hfold=hfold.substring(0,i+1)
var strA = ''
var strA1 = ''
var strIMG1 = '" name="'
var strIMG2 = '">' //razmer na kartinkite v kwadratite
strCode = new Array() //мащаб Ниво l0
for (r = 1; r <= scrRows; r++){
strCode[r] =''
for (c = 1; c <= scrCols; c++){
strCode[r] += strTD //
if (c > l0Cols || r > l0Rows){
strCode[r] += strA + strIMG + 'blanc.gif' + strIMG1 + 'c' + c + 'r' + r + strIMG2 + strA1
}else{
strCode[r] += strA + strIMG + fold + '/l' + curLev + '-' + c + 'x' + r + '.png' + strIMG1 + 'c' + c + 'r' + r + strIMG2 + strA1
//
}
strCode[r] += strTD1 + '\n\n' // |
}
}
//end Loading............................
// местене
function mvRight(){ //на дясно
if ((curCol+maxCols-1) < curMCols){
for (r = 1; r <= maxRows; r++){
var rr = curRow + r - 1
for (c = 1; c <= maxCols; c++){
var cc = curCol + c
var imgName = eval('document.c'+c+'r'+r)
imgName.src = fold + '/l' + curLev + '-' + cc + 'x' + rr + '.png'
// |
}
}
curCol++
miniView()
}else{document.mvR.src = "./left_arrow.gif";setTimeout('document.mvR.src = "./right.gif"',500);}
}
function mvLeft(){ // наляво
if (curCol > 1){
for (r = 1; r <= maxRows; r++){
var rr = curRow + r - 1
for (c = 1; c <= maxCols; c++){
var cc = curCol + c - 2
var imgName = eval('document.c'+c+'r'+r)
imgName.src = fold + '/l' + curLev + '-' + cc + 'x' + rr + '.png'
}
}
curCol--
miniView()
}else{document.mvL.src = "./right_arrow.gif";setTimeout('document.mvL.src = "./left.gif"',500);}
}
function mvDown(){ //надолу
if ((curRow+maxRows-1) < curMRows){
for (c = 1; c <= maxCols; c++){
var cc = curCol + c - 1
for (r = 1; r <= maxRows; r++){
var rr = curRow + r
var imgName = eval('document.c'+c+'r'+r)
imgName.src = fold + '/l' + curLev + '-' + cc + 'x' + rr + '.png'
}
}
curRow++
miniView()
}else{document.mvD.src = "./up_arrow.gif";setTimeout('document.mvD.src = "./down.gif"',500);}
}
function mvUp(){ //нагоре
if (curRow > 1){
for (c = 1; c <= maxCols; c++){
var cc = curCol + c - 1
for (r = 1; r <= maxRows; r++){
var rr = curRow + r - 2
var imgName = eval('document.c'+c+'r'+r)
imgName.src = fold + '/l' + curLev + '-' + cc + 'x' + rr + '.png'
}
}
curRow--
miniView()
}else{document.mvU.src = "./down_arrow.gif";setTimeout('document.mvU.src = "./up.gif"',500);}
}
//нагоре/надолу и на ляво
function mvUpLeft(){
if(curCol > 1 && curRow > 1){
mvUp()
mvLeft()
}else{document.mvUL.src = "./downright.gif";setTimeout('document.mvUL.src = "./upleft.gif"',500);}
}
function mvDownLeft(){
if(curCol > 1 && (curRow+maxRows-1) < curMRows){
mvDown()
mvLeft()
}else{document.mvDL.src = "./upright.gif";setTimeout('document.mvDL.src = "./downleft.gif"',500);}
}
//нагоре/надолу и на дясно
function mvUpRight(){
if((curCol+maxCols-1) < curMCols && curRow > 1){
mvUp()
mvRight()
}else{document.mvUR.src = "./downleft.gif";setTimeout('document.mvUR.src = "./upright.gif"',500);}
}
function mvDownRight(){
if((curRow+maxRows-1) < curMRows && (curCol+maxCols-1) < curMCols){
mvDown()
mvRight()
}else{document.mvDR.src = "./upleft.gif";setTimeout('document.mvDR.src = "./downright.gif"',500);}
}
// намаляване
function zoomIn(X,Y){
if (curLev < (maxLev - 1)){
curLev++
//if (strIMG < (strIMG - 1)){
//strIMG++
zoom(X,Y)
}
}
//увеличаване
function zoomOut(X,Y){
if (curLev > 0){
curLev--
zoom(X,Y)
}
}
//увеличаване назад
function zoomTo(lev){
if (curLev != lev){
curLev = lev
zoom(maxCols*pixCol/2,maxRows*pixRow/2)
}
}
//увеличаване напред
function zoomToNext(){
zoomIn(maxCols*pixCol/2,maxRows*pixRow/2)
//zoom (scrCols*pixCol,scrRows*pixRow)//(strIMG*2, strTD*2) мести картата по диагонал
} //предишно ниво
function zoomToPrev(){
zoomOut(maxCols*pixCol/2,maxRows*pixRow/2)
//zoom (scrCols/pixCol/2,scrRows/pixRow/2)//(strIMG*2, strTD*2) мести картата по диагонал
}
//премества маркера за увеличение zcur.gif
function zoomShow(){
for (i = 0; i < maxLev; i++){
if (i < curLev){var imgSrc = eval('document.z' + i);imgSrc.src = './zout.gif'}
if (i == curLev){var imgSrc = eval('document.z' + i);imgSrc.src = './zcur.gif'}
if (i > curLev){var imgSrc = eval('document.z' + i);imgSrc.src = './zin.gif'}
}
}
//увеличение мащаб скала
function zoomScale(){
var curScl = eval('scale' + curLev)
if (curScl){
var strScl = '0 ' + curScl + '
'
document.all.scale.innerHTML = strScl
}
}
//--показва картата според мащаба
function zoom(X,Y){
maxCols = scrCols
maxRows = scrRows
var oldMRows = curMRows
var oldMCols = curMCols
curMRows = eval('l'+curLev+'Rows')
curMCols = eval('l'+curLev+'Cols')
if (maxCols > curMCols){maxCols = curMCols}
if (maxRows > curMRows){maxRows = curMRows}
curRow = Math.floor(((Y + (curRow - 1) * pixRow) * curMRows) / (oldMRows * pixRow)- ((scrRows-1)/2)) +1
curCol = Math.floor(((X + (curCol - 1) * pixCol) * curMCols) / (oldMCols * pixCol)- ((scrCols-1)/2)) +1
if (curRow < 1){curRow = 1}
if (curCol < 1){curCol = 1}
if ((curCol+maxCols-1) > curMCols){
curCol = curMCols - maxCols + 1
}
if ((curRow+maxRows-1) > curMRows){curRow = curMRows - maxRows + 1}
for (r = 1; r <= scrRows; r++){
var rr = curRow + r - 1
for (c = 1; c <= scrCols; c++){
var cc = curCol + c - 1
var imgName = eval('document.c'+c+'r'+r)
if (c > maxCols || r > maxRows){
imgName.src = 'blanc.gif'
}else{
imgName.src = hfold + fold + '/l' + curLev + '-' + cc + 'x' + rr + '.png'
}
}
}
if (curLev == (maxLev - 1)){curZoomUp = false} //maxLev ако е "curlev" не връща назад 1 ниво
else {curZoomUp = true}
miniZoom()
zoomShow()
zoomScale()
}
//мини визуализация
function miniView(){
document.all.pik.style.left = miniW/curMCols*(curCol-1)+(440 - miniW - 20)
document.all.pik.style.top = miniH/curMRows*(curRow-1)+5
hidePlace()
}
function miniZoom(){ //малкия правоъгълник в мини картата
pikW = Math.floor(miniW * maxCols / curMCols)-2+curLev
pikH = Math.floor(miniH * maxRows / curMRows)-2+curLev
document.pikk.width = pikW
document.pikk.height = pikH
document.all.pik.style.width = pikW
document.all.pik.style.height = pikH
miniView()
}
// кликване в мини визуализацията картинка горе
function miniClick(){
var X
var Y
Y = clY + offY - 5
X = clX + offX - (440 -miniW - 20)
maxCols = scrCols
maxRows = scrRows
curMRows = eval('l'+curLev+'Rows')
curMCols = eval('l'+curLev+'Cols')
if (maxCols > curMCols){maxCols = curMCols}
if (maxRows > curMRows){maxRows = curMRows}
curRow = Math.floor(Y*curMRows/miniH - ((scrRows-1)/2)) +1
curCol = Math.floor(X*curMCols/miniW - ((scrCols-1)/2)) +1
if (curRow < 1){curRow = 1}
if (curCol < 1){curCol = 1}
if ((curCol+maxCols-1) > curMCols){
curCol = curMCols - maxCols + 1
}
if ((curRow+maxRows-1) > curMRows){
curRow = curMRows - maxRows + 1
}
for (r = 1; r <= scrRows; r++){
var rr = curRow + r - 1
for (c = 1; c <= scrCols; c++){
var cc = curCol + c - 1
var imgName = eval('document.c'+c+'r'+r)
if (c > maxCols || r > maxRows){
imgName.src = 'blanc.gif'
}else{
imgName.src = fold + '/l' + curLev + '-' + cc + 'x' + rr + '.png'
}
}
}
miniZoom()
zoomShow()
zoomScale()
}
//моя добавка
function zoomBox(){ //увеличава едно ниво при кликване на картата
if (clX <= maxCols * pixCol && clY <= maxRows * pixRow){ //(maxCols - 2) последните 2 клетки не реагират
if (curZoomUp){
zoomIn(clX,clY * 1.1) //корекция на координатите при преминаване в следващото ниво 1.3
}else{ //намалява едно ниво назад при кликване на картата
zoomOut(clX,clY)
}
}
}
// Event.CLICK кликване в малката карта
if (!document.all){
document.captureEvents(Event.CLICK)
document.onclick=getClick
}
function getClick(e){
clX = e.pageX - offX
clY = e.pageY - offY
}
function getClickIE(evt){
miniX = evt.clientX
miniY = evt.clientY
sT = document.body.scrollTop
clX = evt.clientX - offX
clY = evt.clientY - offY + sT
}
//показване на обект
function showObject(absX,absY){
var cMRows = eval('l'+(maxLev-1)+'Rows')
var cMCols = eval('l'+(maxLev-1)+'Cols')
var shX = Math.floor((absX * curMCols)/cMCols) - (curCol - 1) * pixCol
var shY = Math.floor((absY * curMRows)/cMRows) - (curRow - 1) * pixRow
curLev = maxLev - 1
zoom(shX,shY)
showPlace(absX,absY)
}
//показване на картата
function showPlace(absX,absY){
var shX = absX - (curCol - 1) * pixCol
var shY = absY - (curRow - 1) * pixRow
//показва колалцето над обекта
document.all.obj.style.left = shX - 9 + offX
document.all.obj.style.top = shY - 9 + offY
document.all.obj.style.visibility = 'visible'
document.all.obj.style.width = 50
document.all.obj.style.height = 50
//document.all.map.onmouse.pix= '+shX+ +shY+'
//document.all.map.innerHTML = document.all.map.onmouse.pix
}
//скриване на
function hidePlace(){
document.all.obj.style.visibility = 'hidden'}
/** позицията на мишката в пиксели**/
function getMousePosition(e)
{
return e.pageX ? {'x':e.pageX, 'y':e.pageY} :
{'x':e.clientX + document.mapView.documentElement.scrollLeft + document.mapView.scrollLeft,
'y':e.clientY + document.mapView.documentElement.scrollTop + document.mapView.scrollTop};
}
/*function showMousePos(e)
{
if (!e) e = event; // make sure we have a reference to the event
var input = document.getElementById('mousepos');
var mp = getMousePosition(e);
var kol = parseInt(mp.x / pixCol +1); // изчислява колоните отляво на дясно като цяло число
var red = parseInt(mp.y / pixRow +1); // изчислява редовете отгоре надолу
input.value = 'x : ' + mp.x + ', y : ' + mp.y + ' file: l' + curLev + '-' + red + 'x' + kol + '.png'; //показва ред колона ',кол:' +kol+ ',ред:'+ red +
} */
function showMousePos(e)
{
if (!e) e = event; // make sure we have a reference to the event
var input = document.getElementById('mousepos');
var mp = getMousePosition(e);
var kl = curCol + c // изчислява колоните отляво които не се виждат
var kol = kl*pixCol - scrCols*pixCol //- 1515//3608//6008; //превръща в пх и изважда 1561 за изравняване от ляво (1563)
var koll = mp.x + kol- 8 //изчислява на коя колона е мишката. 8 се прибавя за изравняване на 0 позиц. на мишката с началото на клетката
var kollv = mp.x + kol -2*pixCol -8 //-15 //показва реалните координати за фаила с улиците корекция
var rl = curRow + r // изчислява редовете отгоре които не се виждат
var red = rl*pixRow - scrRows*pixRow //- 1028//1868//4268; //превръща в пх и изважда 1119 за изравняване от горе (1136)
var redd = mp.y + red -79 //изчислява на кой ред е мишката. 69 се прибавя за изравняване на 0 позиц. на мишката с началото на клетката
var reddv = mp.y + red -2*pixRow -79//-15 //показва реалните координати за фаила с улиците
var kolf = parseInt(koll / pixCol -1); // изчислява колоните отляво на дясно като цяло число
var redf = parseInt(redd / pixRow -1); // изчислява редовете отгоре надолу като цяло число
input.value = 'x : '+ kollv +', y : '+ reddv +' || file: l' + curLev + '-' + kolf + 'x' + redf + '.jpg'; // показва резултата
}
function inite()
{
document.onmousemove = showMousePos;
}
window.onload = inite;
//
function removeElement()
{
document.getElementById("imgbox1").style.display="none";
}
function resetElement()
{
document.getElementById("imgbox1").style.display="block";
}
//
document.writeln('')
//
document.writeln('')
for (i = 0; i < maxLev; ++i){
var strZoom = '
'
document.write(strZoom)
if (i < curLev){var imgSrc = eval('document.z' + i);imgSrc.src = './zout.gif'}
if (i == curLev){var imgSrc = eval('document.z' + i);imgSrc.src = './zcur.gif'}
if (i > curLev){var imgSrc = eval('document.z' + i);imgSrc.src = './zin.gif'}
}
document.writeln('
')
/*
*/
document.writeln('')
//лого cityName ? //*1
var miniH1 = miniH + 2 * 5
document.writeln('
')
document.writeln(' | '+cityName+' |
|
')
document.writeln('') //1024
document.writeln('')
for (i = 1; i <= scrRows; i++){
document.writeln(strCode[i])
document.writeln(' ')
}
document.writeln('
|
')
/*
*/
document.writeln('')
/*
*/
document.writeln('')
document.write('
')
//позиционира малката карта
document.all.minimap.style.width = miniW
document.all.minimap.style.height = miniH
document.all.minimap.style.left = 440 - miniW - 20
document.writeln('')
document.write('
')
//
document.all.pik.style.width = miniW
document.all.pik.style.height = miniH
document.all.pik.style.left = 440 - miniW - 20
/*
*/
document.writeln(' ')