dojo.require("dijit.dijit");
dojo.require("dijit.layout.BorderContainer");
dojo.require("dijit.layout.ContentPane");
dojo.require("dijit.layout.AccordionContainer");
dojo.require("esri.map");
dojo.require("esri.tasks.identify");
dojo.require("dojox.layout.FloatingPane");
dojo.require("dijit.form.Button");
dojo.require("dijit.form.ComboBox");
dojo.require("esri.dijit.OverviewMap");
dojo.require("dijit.Dialog");
dojo.require("esri.toolbars.draw");
dojo.require("esri.layers.FeatureLayer");
dojo.require("esri.tasks.query");
dojo.require("dojox.grid.DataGrid");
dojo.require("dojox.grid._Events");
dojo.require("dojo.data.ItemFileReadStore");
dojo.require("dijit.form.CheckBox");
dojo.require("dijit.layout.TabContainer");
var mapLayers=[];
var selectedyear=2011;
var map;
var ovMap,ovGraphic;
var identifyTask,identifyParams,symbol;
var layer2results;
var layer3results;
var layer4results;
var vs_Painorajo="";
var vs_olevat="LISTA = 'C'";
var vs_olleet="";
var firstor="";
var secondor="";
var startExtent;
var items;
var fset;
var Layer_visibility_qry;
var Painorajo="OFF";
var olevat="ON";
var olleet="OFF";
var kfeature;
function init(){if(useproxy){esriConfig.defaults.io.proxyUrl="proxy.jsp";
esriConfig.defaults.io.alwaysUseProxy=true
}startExtent=new esri.geometry.Extent({xmin:-116053.20659069,ymin:6512063.19375007,xmax:896166.79340931,ymax:7970003.19375007,spatialReference:{wkid:3067}});
map=new esri.Map("map",{extent:startExtent,logo:false});
var B=dijit.byId("map");
dojo.connect(map,"onLoad",function(P){dojo.connect(dijit.byId("map"),"resize",resizeMap);
dojo.style(dojo.byId("status"),"display","none")
});
dojo.connect(map,"onMouseWheel",myMouseWheelHandler);
dojo.connect(map,"onClick",doIdentify);
dojo.connect(map,"onLoad",initFunctionality);
dojo.connect(map,"onExtentChange",showExtentAttributes);
var M=new esri.layers.ArcGISDynamicMapServiceLayer(serviceurl+ovservice);
connectOvMap(map,M);
var L=new esri.layers.ArcGISTiledMapServiceLayer(serviceurl+taustaservice);
map.addLayer(L);
for(var F=0,H=map.layerIds.length;
F<H;
F++){var K=map.getLayer(map.layerIds[F]);
K.setOpacity(0.6)
}var G=new esri.layers.ImageParameters();
var N=[];
N[0]="LISTA='A'";
G.layerDefinitions=N;
G.layerIds=[0];
G.transparent=true;
G.visible=false;
G.outfields=outfields;
var E=new esri.layers.ArcGISDynamicMapServiceLayer(serviceurl+kelirikkoservice,{imageParameters:G});
map.addLayer(E);
mapLayers.push(E);
E.hide();
var C=new esri.layers.ImageParameters();
var O=[];
O[0]="LISTA='D' AND VUOSI=2011";
C.layerDefinitions=O;
C.layerIds=[0];
C.transparent=true;
C.outfields=outfields;
var J=new esri.layers.ArcGISDynamicMapServiceLayer(serviceurl+kelirikkoservice,{imageParameters:C});
map.addLayer(J);
mapLayers.push(J);
J.hide();
var D=new esri.layers.ImageParameters();
var A=[];
A[0]="LISTA='C'";
D.layerDefinitions=A;
D.layerIds=[0];
D.transparent=true;
D.outfields=outfields;
var I=new esri.layers.ArcGISDynamicMapServiceLayer(serviceurl+kelirikkoservice,{imageParameters:D});
map.addLayer(I);
mapLayers.push(I);
dojo.connect(map.infoWindow,"onShow",function(){dijit.byId("tabs").resize()
});
dojo.connect(map.infoWindow,"onHide",function(){map.graphics.clear();
var P=dijit.byId("grid");
P.selection.clear()
})
}function connectOvMap(A,B){ovMap=new esri.Map("mapOVDiv",{logo:false});
dojo.connect(ovMap,"onLoad",function(C){C.setExtent(new esri.geometry.Extent(90000,6600000,790000,7800000,new esri.SpatialReference({wkid:3067})),false);
C.disableMapNavigation();
C.hideZoomSlider();
updateOVPoly(A.extent);
dojo.connect(C,"onClick",function(D){map.centerAt(D.mapPoint)
})
});
ovMap.addLayer(B)
}function updateOVPoly(E){var C=new esri.geometry.Polygon();
C.addRing([[E.xmin,E.ymin],[E.xmin,E.ymax],[E.xmax,E.ymax],[E.xmax,E.ymin],[E.xmin,E.ymin]]);
if(ovGraphic==null){var B=new dojo.Color([255,0,0,0.5]);
var D=new dojo.Color([255,0,0,0.1]);
var A=new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_SOLID,new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID,B,3),D);
ovGraphic=new esri.Graphic(C,A);
if(ovMap!=null){if(ovMap.graphics!=null){ovMap.graphics.add(ovGraphic)
}}}else{ovGraphic.setGeometry(C)
}}function myMouseWheelHandler(A){map.infoWindow.hide()
}function initFunctionality(B){identifyTask=new esri.tasks.IdentifyTask(serviceurl+kelirikkoservice);
identifyParams=new esri.tasks.IdentifyParameters();
identifyParams.tolerance=13;
identifyParams.returnGeometry=true;
identifyParams.layerIds=[0];
identifyParams.layerOption=esri.tasks.IdentifyParameters.LAYER_OPTION_ALL;
identifyParams.width=B.width;
identifyParams.height=B.height;
var A=dijit.byId("tabs");
B.infoWindow.resize(570,250);
B.infoWindow.setContent(dijit.byId("tabs").domNode);
B.infoWindow.setTitle("Kelirikko - Tulokset");
symbol=new esri.symbol.SimpleLineSymbol("SOLID",new dojo.Color([255,0,255]),5)
}function doIdentify(A){var B;
map.graphics.clear();
var C=dijit.byId("grid");
C.selection.clear();
identifyParams.geometry=A.mapPoint;
identifyParams.mapExtent=map.extent;
identifyTask.execute(identifyParams,function(D){addToMap(D,A)
})
}function addToMap(C,A){layer2results={displayFieldName:null,features:[]};
layer3results={displayFieldName:null,features:[]};
layer4results={displayFieldName:null,features:[]};
for(var D=0,B=C.length;
D<B;
D++){var F=C[D];
if(F.feature.attributes.LISTA=="A"&&vs_Painorajo!=""){layer2results.displayFieldName=F.displayFieldName;
layer2results.features.push(F.feature)
}else{if(F.feature.attributes.LISTA=="C"&&vs_olevat!=""){layer3results.displayFieldName=F.displayFieldName;
layer3results.features.push(F.feature)
}else{if((F.feature.attributes.LISTA=="D")&&(F.feature.attributes.VUOSI==selectedyear)&&vs_olleet!=""){layer4results.displayFieldName=F.displayFieldName;
layer4results.features.push(F.feature)
}}}}var E=dijit.byId("tabs");
dijit.byId("layer2Tab").setContent("Ei kohteita");
dijit.byId("layer3Tab").setContent("Ei kohteita");
dijit.byId("layer4Tab").setContent("Ei kohteita");
if(layer2results.features.length>0){dijit.byId("layer2Tab").setContent(layerTabContent(layer2results,"layer2results"));
E.selectChild(dijit.byId("layer2Tab"))
}if(layer3results.features.length>0){dijit.byId("layer3Tab").setContent(layerTabContent(layer3results,"layer3results"));
E.selectChild(dijit.byId("layer3Tab"))
}if(layer4results.features.length>0){dijit.byId("layer4Tab").setContent(layerTabContent(layer4results,"layer4results"));
E.selectChild(dijit.byId("layer4Tab"))
}map.infoWindow.show(A.screenPoint,map.getInfoWindowAnchor(A.screenPoint))
}function layerTabContent(E,B){var D="";
D="<i>Kohteita: "+E.features.length+"</i>";
D+="<table border='1' width='1200px'><tr><th>ID</th><th>Tien nimi</th><th>Tie</th><th>Kunta</th><th>Pituus</th><th>Alkaa</th><th>P&auml;&auml;ttyy</th><th>Painorajoitus</th><th>Paikan kuvaus</th><th>Lis&auml;tietoja</th><th>P&auml;ivitetty</th></tr>";
for(var C=0,A=E.features.length;
C<A;
C++){D+="<tr><td>"+E.features[C].attributes.OBJECTID+" <a href='#' onclick='showFeature("+B+".features["+C+"]); return false;'>(korosta)</a></td>";
if(E.features[C].attributes.TIENIMI!="Null"){D+="<td>"+E.features[C].attributes.TIENIMI+"</td>"
}else{D+="<td></td>"
}if(E.features[C].attributes.TIE!="Null"){D+="<td>"+E.features[C].attributes.TIE+"</td>"
}else{D+="<td></td>"
}if(E.features[C].attributes.KUNTA!="Null"){D+="<td>"+E.features[C].attributes.KUNTA+"</td>"
}else{D+="<td></td>"
}if(E.features[C].attributes.PITUUS_TEKSTI!="Null"){D+="<td>"+E.features[C].attributes.PITUUS_TEKSTI+"</td>"
}else{D+="<td></td>"
}if(E.features[C].attributes.ALKAA!="Null"){D+="<td>"+E.features[C].attributes.ALKAA+"</td>"
}else{D+="<td></td>"
}if(E.features[C].attributes.LOPPUU!="Null"){D+="<td>"+E.features[C].attributes.LOPPUU+"</td>"
}else{D+="<td></td>"
}if(E.features[C].attributes.PAINORAJOITUS_TEKSTI!="Null"){D+="<td>"+E.features[C].attributes.PAINORAJOITUS_TEKSTI+"</td>"
}else{D+="<td></td>"
}if(E.features[C].attributes.PAIKAN_KUVAUS!="Null"){D+="<td>"+E.features[C].attributes.PAIKAN_KUVAUS+"</td>"
}else{D+="<td></td>"
}if(E.features[C].attributes.LISATIETOJA!="Null"){D+="<td>"+E.features[C].attributes.LISATIETOJA+"</td>"
}else{D+="<td></td>"
}if(E.features[C].attributes.TALLENNUSAIKA!="Null"){D+="<td>"+E.features[C].attributes.TALLENNUSAIKA+"</td>"
}else{D+="<td></td>"
}}D+="</tr></table>";
return D
}function gridDblClick(A){var B=grid.getItem(A.rowIndex).OBJECTID;
zoomRow(B)
}function showFeature(C){map.graphics.clear();
if(kfeature!=C){C.setSymbol(symbol);
map.graphics.add(C);
var D=dijit.byId("grid");
D.selection.clear();
var E;
for(var B=0,A=D.rowCount;
B<A;
B++){E=D.getItem(B);
if((E)&&E.OBJECTID.toString()===C.attributes.OBJECTID.toString()){D.rows.setOverRow(B);
D.scrollToRow(B);
D.selection.setSelected(D.getItem(B),true);
break
}}kfeature=C
}else{kfeature=null
}}function makeQueryStr(){if(vs_Painorajo!=""||vs_olevat!=""||vs_olleet!=""){(vs_Painorajo!=""&&vs_olevat!="")?firstor=" OR ":firstor="";
(vs_olleet!=""&&vs_olevat!="")?secondor=" OR ":secondor="";
Layer_visibility_qry=vs_Painorajo+firstor+vs_olevat+secondor+vs_olleet
}}function showExtentAttributes(C){var B=0;
dojo.byId("kmlista").innerHTML="";
var E=0;
updateOVPoly(C);
map.graphics.clear();
var F,D,A;
if(vs_Painorajo!=""||vs_olevat!=""||vs_olleet!=""){(vs_Painorajo!=""&&vs_olevat!="")?firstor=" OR ":firstor="";
(vs_olleet!=""&&vs_olevat!="")?secondor=" OR ":secondor="";
Layer_visibility_qry=vs_Painorajo+firstor+vs_olevat+secondor+vs_olleet;
F=new esri.tasks.QueryTask(serviceurl+kelirikkoservice+"/0");
D=new esri.tasks.Query();
D.geometry=C;
D.returnGeometry=false;
D.where=vs_Painorajo+firstor+vs_olevat+secondor+vs_olleet;
D.outFields=outfields;
D.spatialRelationship=esri.tasks.Query.SPATIAL_REL_INTERSECTS;
F.execute(D,function(I){fset=I;
items=[];
items=dojo.map(I.features,function(J){B=B+Number(J.attributes.PITUUS);
return J.attributes
});
if(B>=0){dojo.byId("kmlista").innerHTML="Näkyvän kartan alueella on kohteita("+items.length+" kpl, yht. "+roundNumber(B/1000,3)+" km)"
}var H={identifier:"OBJECTID",items:items};
var G=new dojo.data.ItemFileReadStore({data:H});
grid.setStore(G)
})
}else{grid.setStore(null)
}}function roundNumber(B,C){var A=Math.round(B*Math.pow(10,C))/Math.pow(10,C);
return A
}function makeZoomButton(A){var B="<div dojoType='dijit.form.Button'><img src='zoom.png'";
B=B+" width='15' height='15'";
B=B+' onClick="zoomRow('+A+')"></div>';
B=B+"<div id=zoomAttr"+A+"></div>";
return B
}function makeListaButton(A){var B;
if(A==="A"){B="<div dojoType='dijit.form.Button'><img src='uhanalaiset.png'"
}if(A==="C"){B="<div dojoType='dijit.form.Button'><img src='voimassa.png'"
}if(A==="D"){B="<div dojoType='dijit.form.Button'><img src='olleet.png'"
}B=B+" width='20' height='10'";
B=B+" ></div>";
return B
}function zoomRow(C){var A,B;
attrVal="";
B=new esri.tasks.QueryTask(serviceurl+kelirikkoservice+"/0");
A=new esri.tasks.Query();
A.returnGeometry=true;
A.where="OBJECTID="+C;
A.outSpatialReference={wkid:3067};
A.outFields=outfields;
B.execute(A,showResults)
}function showResults(A){map.infoWindow.hide();
var B=A.features[0].geometry.getExtent().expand(2);
map.setExtent(B)
}function setYearValue(E){selectedyear=E;
var C=dijit.byId("mycheck2");
vs_olleet="LISTA='D' AND VUOSI= "+selectedyear;
if(C.checked){var B=new esri.layers.ImageParameters();
var A=[];
A[0]="LISTA='D' AND VUOSI="+selectedyear;
var D=map.getLayer(map.layerIds[2]);
D.setLayerDefinitions(A);
makeQueryStr();
D.show();
showExtentAttributes(map.extent)
}}function resizeMap(){var A;
clearTimeout(A);
A=setTimeout(function(){map.resize();
map.reposition();
updateOVPoly(map.extent)
},500)
}function layerVisibility(D){var C=D.id;
if(D.visible){if(C==="layer1"){Painorajo="OFF";
vs_Painorajo=""
}if(C==="layer3"){olevat="OFF";
vs_olevat=""
}if(C==="layer2"){vs_olleet="";
olleet="OFF"
}D.hide()
}else{if(C==="layer1"){Painorajo="ON";
vs_Painorajo="LISTA='A'";
D.show()
}if(C==="layer3"){vs_olevat="LISTA='C'";
olevat="ON";
D.show()
}if(C==="layer2"){vs_olleet="(LISTA='D' AND VUOSI="+selectedyear+")";
olleet="ON";
var B=[];
B[0]="LISTA='D' AND VUOSI="+selectedyear;
var E=map.getLayer(map.layerIds[2]);
E.setLayerDefinitions(B);
makeQueryStr();
D.show()
}}var A=map.extent;
map.setExtent(A.expand(1));
resizeMap()
}function SetParametersAndRedirect(){setCookie("xmin",map.extent.xmin,1);
setCookie("ymin",map.extent.ymin,1);
setCookie("xmax",map.extent.xmax,1);
setCookie("ymax",map.extent.ymax,1);
setCookie("leveys",map.width,1);
setCookie("korkeus",map.height,1);
setCookie("centerx",map.extent.getCenter().x,1);
setCookie("centery",map.extent.getCenter().y,1);
setCookie("LayersVisibility",Layer_visibility_qry,1);
setCookie("Painorajo",Painorajo,1);
setCookie("olevat",olevat,1);
setCookie("olleet",olleet,1);
setCookie("selectedyear",selectedyear,1);
window.open("print.jsp")
}function setCookie(B,C,A){var D=new Date();
D.setDate(D.getDate()+A);
document.cookie=B+"="+escape(C)+((A==null)?"":";expires="+D.toUTCString())
}function getCookie(A){if(document.cookie.length>0){c_start=document.cookie.indexOf(A+"=");
if(c_start!=-1){c_start=c_start+A.length+1;
c_end=document.cookie.indexOf(";",c_start);
if(c_end==-1){c_end=document.cookie.length
}return unescape(document.cookie.substring(c_start,c_end))
}}return""
}function showOrHide(B){if(B.style.visibility=="hidden"){B.style.visibility="visible"
}else{B.style.visibility="hidden";
var A=dijit.byId("grid");
A.selection.clear()
}}dojo.addOnLoad(init);
