var maxRegion=128;var district={id:[],hb:[],colL:[]};var sortArray=new Array(maxRegion);var equalDistBoundaries=new Array();var quantileBoundaries=new Array();var classBoundaries=new Array();var min;var max;var selectedData;var colorNr;var dataCol;var idcd='id';var col='colL';var histogramLayer=null;var mapRoot=null;var svgMap=new Object;var controls=null;var wkrName=null;var CDUkopf=null;var cduAKTproz=null;var spdAKTproz=null;var grueneAKTproz=null;var linkeAKTproz=null;var fdpAKTproz=null;var cduVORPproz=null;var spdVORPproz=null;var grueneVORPproz=null;var linkeVORPproz=null;var fdpVORPproz=null;function fillItems(intStart){var fTypes=document.getElementById('form1').types;var fItems=document.getElementById('form1').items;var a=arItems;var b,c,d,intItem,intType;if(intStart>0){for(b=0;b<a.length;b++){if(a[b][1]==intStart){intType=a[b][0];}}
for(c=0;c<fTypes.length;c++){if(fTypes.options[c].value==intType){fTypes.selectedIndex=c;}}}
if(intType==null){intType=fTypes.options[fTypes.selectedIndex].value}
fItems.options.length=0;for(d=0;d<a.length;d++){if(a[d][0]==intType){fItems.options[fItems.options.length]=new Option(a[d][2],a[d][1]);}
if(a[d][1]==intStart){fItems.selectedIndex=fItems.options.length-1;}}}
var tmpColor='ffffff';function tellHist(MyHistID){var MyDistID=sortArray[MyHistID][1];tmpColor=district.hb[MyHistID].getAttribute('stroke');district.hb[MyHistID].setAttribute('stroke-width',5);district.hb[MyHistID].setAttribute('stroke',colorScheme[colorNr][6]);district[idcd][MyDistID].setAttribute('fill',colorScheme[colorNr][6]);document.getElementById('wkr-id').firstChild.data=('Aktueller Wert: '+sortArray[MyHistID][0]);var hoverName=nrw10z[MyDistID][1];wkrName.firstChild.data=hoverName;updateTable(MyDistID);}
function clearHist(MyHistID){district[idcd][sortArray[MyHistID][1]].setAttribute('fill',district.colL[sortArray[MyHistID][1]]);district.hb[MyHistID].setAttribute('stroke-width',2.6);district.hb[MyHistID].setAttribute('stroke',tmpColor);}
function tellMe(MyDistID){district[idcd][MyDistID].setAttribute('fill',colorScheme[colorNr][6]);wkrName.firstChild.data=nrw10z[MyDistID][0]+' '+nrw10z[MyDistID][1];updateTable(MyDistID);if(selectedData==111){var siegerPartei;if(nrw10z[MyDistID][48]==1){siegerPartei=' (SPD)'};if(nrw10z[MyDistID][48]==2){siegerPartei=' (CDU)'};DomSiegerHead.firstChild.data=nrw10z[MyDistID][49]+siegerPartei;DomSiegerBeruf.firstChild.data=nrw10z[MyDistID][50];}else{wkrID.firstChild.data=('Aktueller Wert: '+nrw10z[MyDistID][dataCol]);}}
function clearMe(MyDistID){district[idcd][MyDistID].setAttribute('fill',district.colL[MyDistID]);}
function sort2dim(a,b){return((a[0]<b[0])?-1:((a[0]>b[0])?1:0));}
function statistics(selected){selectedData=selected;if(Math.abs(selected)!=99&&Math.abs(selected)!=111){if(selectedData<500){dataCol=Math.floor(selectedData);}else{dataCol=Math.floor(selectedData)-900;}
wkrID.style.display='inline';document.getElementById('legende').style.display='inline';document.getElementById('histogram').style.display='inline';document.getElementById('sieger').style.display='none';document.getElementById('polygons').setAttribute('style','stroke:#333333;stroke-width:100;fill:none;');document.getElementById('option1').selected=true;for(i=0;i<arItems.length;i++){if(arItems[i][1]==selectedData){var partTwo='';if(i<30){partTwo=arItems[i][0]+' Stimmenanteil %'}
if(i>30&&i<53){partTwo=arItems[i][0]+' Zweitstimmenanteil %'}
if(i>56&&i<62){partTwo='2010 Erststimmenanteil %'}
if(i>65&&i<71){partTwo='2010 Erst- minus Zweitstimme (%-Pkte)'}
if(i>71){partTwo='Zweitstimmenanteil %'}
document.getElementById('keyHead').firstChild.data=(arItems[i][2])+' '+partTwo;}}
for(i=0;i<maxRegion;i++){sortArray[i]=new Array(2);sortArray[i][0]=nrw10z[i][dataCol];sortArray[i][1]=i;}
sortArray.sort(sort2dim);min=sortArray[0][0];max=sortArray[maxRegion-1][0];var missing=0;for(j=0;j<(maxRegion-1);j++){if(sortArray[j][0]==-99&&sortArray[j+1][0]>-99){min=sortArray[j+1][0];missing=j+1;}}
var quantIncrement=Math.round((maxRegion-missing)/5);for(i=0;i<4;i++){quantileBoundaries[i]=sortArray[(i+1)*quantIncrement+missing][0];}
var increment=(max-min)/5;for(i=0;i<4;i++){if((max-min)<10){equalDistBoundaries[i]=Math.round((min+(i+1)*increment)*10)/10}else{equalDistBoundaries[i]=Math.round(min+(i+1)*increment)}}
var myY1=100*max/(max-min);for(i=0;i<(maxRegion);i++){if(min<0){var myY2=myY1-(sortArray[i][0]*100/(max-min));district.hb[i].setAttribute('y1',myY1+10);district.hb[i].setAttribute('y2',myY2+10);}else{district.hb[i].setAttribute('y1',100);district.hb[i].setAttribute('y2',100-(sortArray[i][0]/max*90));}}
document.getElementById('maxTick').firstChild.data=max;if(min<0){tickMin=min}else{tickMin=0}
document.getElementById('minTick').firstChild.data=tickMin;colorMap('default')}
if(selected==111){colorNr=1;wkrID.style.display='none';document.getElementById('legende').style.display='none';document.getElementById('histogram').style.display='none';document.getElementById('sieger').style.display='inline';document.getElementById('polygons').setAttribute('style','stroke:#ffffff;stroke-width:130;fill:none;');for(i=0;i<(maxRegion);i++){if(nrw10z[i][48]==1){district.colL[i]='#bb0000'}
if(nrw10z[i][48]==2){district.colL[i]='#002ba5'}}
paint()}}
function colorMap(classMethod){if(classMethod=='default'){for(i=0;i<arItems.length;i++){if(arItems[i][1]==selectedData){for(n=0;n<4;n++){classBoundaries[n]=arItems[i][3+n]}}}}
if(classMethod=='quantiles'){for(n=0;n<4;n++){classBoundaries[n]=quantileBoundaries[n]}}
if(classMethod=='equaldistance'){for(n=0;n<4;n++){classBoundaries[n]=equalDistBoundaries[n]}}
colorNr=Math.round((selectedData-Math.floor(selectedData))*10);for(i=0;i<5;i++){document.getElementById('color'+i).style.backgroundColor=colorScheme[colorNr][i+1];}
var frequencies=[0,0,0,0,0];var suspendIDmap=mapRoot.suspendRedraw(5000);for(i=0;i<(maxRegion);i++){var mapPerc=nrw10z[i][dataCol];if(mapPerc>=min&&mapPerc<classBoundaries[0]){district.colL[i]=colorScheme[colorNr][1];frequencies[0]+=1;}
if(mapPerc>=classBoundaries[0]&&mapPerc<classBoundaries[1]){district.colL[i]=colorScheme[colorNr][2];frequencies[1]+=1;}
if(mapPerc>=classBoundaries[1]&&mapPerc<classBoundaries[2]){district.colL[i]=colorScheme[colorNr][3];frequencies[2]+=1;}
if(mapPerc>=classBoundaries[2]&&mapPerc<classBoundaries[3]){district.colL[i]=colorScheme[colorNr][4];frequencies[3]+=1;}
if(mapPerc>=classBoundaries[3]){district.colL[i]=colorScheme[colorNr][5];frequencies[4]+=1;}}
mapRoot.unsuspendRedraw(suspendIDmap);for(i=0;i<5;i++){var tmpFreq='freq'+i;document.getElementById(tmpFreq).firstChild.data=frequencies[i];}
for(i=0;i<4;i++){document.getElementById('percClass'+i).firstChild.data=classBoundaries[i];document.getElementById('limit'+(i+1)+'a').firstChild.data=classBoundaries[i];}
document.getElementById('max').firstChild.data=max;document.getElementById('min').firstChild.data=min;var suspendIDhist=histogramLayer.suspendRedraw(5000);for(i=0;i<(maxRegion);i++){if(sortArray[i][0]<classBoundaries[0]){district.hb[i].setAttribute('stroke',colorScheme[colorNr][1]);}
if(sortArray[i][0]>=classBoundaries[0]&&sortArray[i][0]<classBoundaries[1]){district.hb[i].setAttribute('stroke',colorScheme[colorNr][2]);}
if(sortArray[i][0]>=classBoundaries[1]&&sortArray[i][0]<classBoundaries[2]){district.hb[i].setAttribute('stroke',colorScheme[colorNr][3]);}
if(sortArray[i][0]>=classBoundaries[2]&&sortArray[i][0]<classBoundaries[3]){district.hb[i].setAttribute('stroke',colorScheme[colorNr][4]);}
if(sortArray[i][0]>=classBoundaries[3]){district.hb[i].setAttribute('stroke',colorScheme[colorNr][5]);}}
histogramLayer.unsuspendRedraw(suspendIDhist);paint();}
var anim=0;function animOpac(){if(anim<0.8){anim+=0.02;polyGons.setAttribute('opacity',anim);setTimeout("animOpac()",50);}}
function paint(){var suspendIDmap=mapRoot.suspendRedraw(5000);for(i=0;i<(maxRegion);i++){if(nrw10z[i][dataCol]==-99){district.id[i].setAttribute('opacity',0);}else{district.id[i].setAttribute('fill',district.colL[i]);}}
mapRoot.unsuspendRedraw(suspendIDmap);}
function updateTable(wkr){if(nrw10z[wkr][34]!=-99){cduAKTproz.firstChild.data=nrw10z[wkr][35]+'%';spdAKTproz.firstChild.data=nrw10z[wkr][36]+'%';grueneAKTproz.firstChild.data=nrw10z[wkr][37]+'%';fdpAKTproz.firstChild.data=nrw10z[wkr][38]+'%';linkeAKTproz.firstChild.data=nrw10z[wkr][39]+'%';}else{cduAKTproz.firstChild.data='–';spdAKTproz.firstChild.data='–';grueneAKTproz.firstChild.data='–';fdpAKTproz.firstChild.data='–';linkeAKTproz.firstChild.data='–';}
cduVORPproz.firstChild.data=nrw10z[wkr][19]+'%';spdVORPproz.firstChild.data=nrw10z[wkr][18]+'%';grueneVORPproz.firstChild.data=nrw10z[wkr][21]+'%';fdpVORPproz.firstChild.data=nrw10z[wkr][20]+'%';}
function newClassInput(){var l1=document.forms['classification'].elements['limit1'].value;var l2=document.forms['classification'].elements['limit2'].value;var l3=document.forms['classification'].elements['limit3'].value;var l4=document.forms['classification'].elements['limit4'].value;classBoundaries=[l1,l2,l3,l4];for(i=0;i<4;i++){classBoundaries[i]=classBoundaries[i].replace(/,/,'.');classBoundaries[i]=classBoundaries[i].replace(/[^0-9\-.]/g,'');}
colorMap('userinput')
document.getElementById('option1').selected=true;}
function buildHistogramFrag(){histogramLayer=document.getElementById('histogramlines');var frag=document.createDocumentFragment(true);for(i=0;i<(maxRegion);i++){var newLine=document.createElementNS(svgns,'line');newLine.setAttributeNS(null,'x1',2.2*i+10);newLine.setAttributeNS(null,'y1',100);newLine.setAttributeNS(null,'x2',2.2*i+10);newLine.setAttributeNS(null,'y2',50);newLine.setAttributeNS(null,'stroke-width',2.6);newLine.setAttributeNS(null,'stroke','green');district.hb[i]=newLine;district.hb[i].addEventListener('mouseover',function(){var ii=i;return function(){tellHist(ii)};}(),false);district.hb[i].addEventListener('mouseout',function(){var ii=i;return function(){clearHist(ii)};}(),false);frag.appendChild(newLine);}
histogramLayer.appendChild(frag);}
function resultPage(evt){if(evt.altKey==1){var myWkr=evt.target.id;var tmpWkr='';if(myWkr>9&&myWkr<100){tmpWkr='0'}
if(myWkr<10){tmpWkr='00'}
var baseURL='http://www.wahlergebnisse.nrw.de/landtagswahlen/2010/aktuell/dateien/a';var myURL=baseURL+tmpWkr+myWkr+"lw1000.html";window.open(myURL);}}
var nMouseOffsetX=0;var nMouseOffsetY=0;var dragx=0;var dragy=0;var rootctm;var irootctm;var p;function mouseDown(evt){svgMap.addEventListener("mousemove",mouseMove,false);p=mapRoot.createSVGPoint();p.x=evt.clientX;p.y=evt.clientY;rootctm=mapRoot.getScreenCTM();irootctm=rootctm.inverse();p=p.matrixTransform(irootctm);nMouseOffsetX=p.x-dragx;nMouseOffsetY=p.y-dragy;}
function mouseMove(evt){if(nMouseOffsetY==0)
return;p=mapRoot.createSVGPoint();p.x=evt.clientX;p.y=evt.clientY;p=p.matrixTransform(irootctm);p.x-=nMouseOffsetX;p.y-=nMouseOffsetY;dragx=p.x;dragy=p.y;svgMap.setAttribute('transform','translate('+p.x+','+p.y+')');}
function mouseUp(evt){svgMap.removeEventListener("mousemove",mouseMove,false);nMouseOffsetX=0;nMouseOffsetY=0;}
function opac(oLevel){nMouseOffsetY=0;polyGons.setAttribute('opacity',oLevel);}
function zoomHelp(){alert('KLICKEN bei gedrückter [alt] Taste\nöffnet alle amtlichen Informationen zum Wahlkreis\n\nVergrößern der Karte wie bei Google Maps:\n\nVERGRÖSSERN mit dem Mausrad\nVERSCHIEBEN durch Ziehen mt der Maus');}
function resetZoom(){svgMap.setAttributeNS(null,'transform','translate( "0, 0")');var dragx=0;var dragy=0;mapRoot.setAttributeNS(null,'viewBox','2484473 -5831574 260229 261409');}
function hookEvent(element,eventName,callback)
{if(typeof(element)=='string')
element=document.getElementById(element);if(element==null)
return;if(element.addEventListener)
{if(eventName=='mousewheel')
{element.addEventListener('DOMMouseScroll',callback,false);}
element.addEventListener(eventName,callback,false);}
else if(element.attachEvent)
element.attachEvent("on"+eventName,callback);}
function MouseWheel(e)
{e=e?e:window.event;var wheelData=e.detail?e.detail*-1:e.wheelDelta;scrollZoom(wheelData)}
function scrollZoom(wheeldata){if(wheeldata>0){var scale=0.7}else{var scale=1.3};var myViewBox=mapRoot.getAttribute('viewBox');var viewboxes=myViewBox.split(' ');var ulXcorner=parseFloat(viewboxes[0]);var ulYcorner=parseFloat(viewboxes[1]);var myWidth=parseFloat(viewboxes[2]);var myHight=parseFloat(viewboxes[3]);var xCenter=ulXcorner+myWidth/2;var yCenter=ulYcorner+myHight/2;myWidth=myWidth/scale;myHight=myHight/scale;if(myWidth>15000&&myWidth<1000000){ulXcorner=xCenter-myWidth/2;ulYcorner=yCenter-myHight/2;myViewBox=ulXcorner+' '+ulYcorner+' '+myWidth+' '+myHight;mapRoot.setAttribute('viewBox',myViewBox)}}
function load(){if(top.location!=location){top.location.href=document.location.href;}
mapRoot=document.getElementById('svgroot');svgMap=document.getElementById('Wahlkreiskarte');polyGons=document.getElementById('polygons');hookEvent('map','mousewheel',MouseWheel);controls=document.getElementById('controlsContainer');wkrName=document.getElementById('wkr-name');wkrID=document.getElementById('wkr-id');DomSiegerHead=document.getElementById('siegerHead');DomSiegerBeruf=document.getElementById('siegerBeruf');cduAKTproz=document.getElementById('cduAKTproz');spdAKTproz=document.getElementById('spdAKTproz');grueneAKTproz=document.getElementById('grueneAKTproz');linkeAKTproz=document.getElementById('linkeAKTproz');fdpAKTproz=document.getElementById('fdpAKTproz');cduVORPproz=document.getElementById('cduVORPproz');spdVORPproz=document.getElementById('spdVORPproz');grueneVORPproz=document.getElementById('grueneVORPproz');linkeVORPproz=document.getElementById('linkeVORPproz');fdpVORPproz=document.getElementById('fdpVORPproz');for(i=0;i<(maxRegion);i++){district.id[i]=document.getElementById(nrw10z[i][0]);district.id[i].addEventListener('mouseover',function(){var ii=i;return function(){tellMe(ii)};}(),false);district.id[i].addEventListener('mouseout',function(){var ii=i;return function(){clearMe(ii)};}(),false);nrw10z[i][51]=Math.round((nrw10z[i][43]-nrw10z[i][35])*10)/10;nrw10z[i][52]=Math.round((nrw10z[i][44]-nrw10z[i][36])*10)/10;nrw10z[i][53]=Math.round((nrw10z[i][45]-nrw10z[i][37])*10)/10;nrw10z[i][54]=Math.round((nrw10z[i][46]-nrw10z[i][38])*10)/10;nrw10z[i][55]=Math.round((nrw10z[i][47]-nrw10z[i][39])*10)/10;}
for(i=0;i<11;i++){var tmprect=document.getElementById('opac'+i);tmprect.addEventListener('mouseover',function(){var ii=i;return function(){opac(ii/10)};}(),false);}
svgMap.addEventListener("mousedown",mouseDown,false);svgMap.addEventListener("mouseup",mouseUp,false);svgMap.addEventListener("click",resultPage,false);buildHistogramFrag();var selectData=36.2
var param=window.location.href;if(param.split('?')[1]){opac(.8);var p=param.split('?')[1];for(i=44;i<54;i++){if(arItems[i][2].search(p)!=-1){selectData=(arItems[i][1]);}}}else{animOpac();}
fillItems(selectData);statistics(selectData);wkrID.firstChild.data=('Karte ist bereit');wkrID.style.color='#313f7d';}
