/**
 * @author TsMtsUser
 */
//Initialize map
function initMap(){

    domainname = "http://terinfo.ujbuda.hu/";
    var currVectorLayers = ['ALAP_kitoltesek', 'ALAP_Duna', 'ALAP_kerulethatar', 'ALAP_railways', 'ALAP_viz', 'ALAP_street_1_2', 'ALAP_street_1_1', 'ALAP_street_2_2', 'ALAP_street_2_1', 'ALAP_street_TEXT_all', 'FOTO_Legifotok', 'TEMATIKUS_Szabályozzási_tervek', 'TEMATIKUS_Szabályozzási_tervek_felirat', 'KVSZ_OVEZET_irszabut', 'KVSZ_SZAB_szabalyozas', 'KVSZ_OVEZET_Terfel', 'KVSZ_VEDKORL_felszmt', 'KVSZ_VEDKORL_egyeb_barlang', 'KVSZ_VEDKORL_elektrvedt', 'KVSZ_VEDKORL_fmozg', 'KVSZ_VEDKORL_barlpol', 'KVSZ_VEDKORL_fasor', 'KVSZ_VEDKORL_park', 'KVSZ_VEDKORL_bptemeto', 'KVSZ_VEDKORL_htermpol', 'KVSZ_VEDKORL_ved7szim', 'KVSZ_VEDKORL_vedett6', 'KVSZ_VEDKORL_furdpol', 'KVSZ_VEDKORL_gazvedt2', 'KVSZ_VEDKORL_javvedfasor', 'KVSZ_VEDKORL_Javved', 'KVSZ_VEDKORL_kerkiemut', 'KVSZ_VEDKORL_karsztos', 'KVSZ_VEDKORL_Mélykor', 'KVSZ_VEDKORL_magaskor', 'KVSZ_VEDKORL_omvhszim', 'KVSZ_VEDKORL_vilormu', 'KVSZ_VEDKORL_mkpol', 'KVSZ_VEDKORL_htermsz', 'KVSZ_VEDKORL_otermved', 'KVSZ_VEDKORL_regeszet', 'KVSZ_VEDKORL_elovegyb', 'KVSZ_VEDKORL_erdogazd', 'KVSZ_VEDKORL_varpol2c', 'KVSZ_VEDKORL_varpol1b', 'KVSZ_VEDKORL_ved_felirat', 'TEMATIKUS_Iskolai_korzetek', 'TEMATIKUS_Iskolai_korzetek_TEXT', 'TEMATIKUS_szelektiv_hulladekgyujtok', 'TEMATIKUS_varosreszek', 'TEMATIKUS_varosreszek_TEXT','TEMATIKUS_epitesikorztek','TEMATIKUS_epitesikorztek_TEXT','TEMATIKUS_parkolasiovezetek','TEMATIKUS_parkolasiovezetek_TEXT', 'TEMATIKUS_vedelmiovezet_pontok', 'TEMATIKUS_vedelmiovezet_terulet', 'UTKATASZTER_Utallpotfelmeres', 'UTKATASZTER_Utallpotfelmeres_tulajdonos', 'TEMATIKUS_V_2006_orszaggyulesi_korzet', 'TEMATIKUS_V_2006_orszaggyulesi_korzet_TEXT', 'TEMATIKUS_V_2006_onkormanyzati_korzetek', 'TEMATIKUS_V_2006_onkormanyzati_korzetek_TEXT', 'TEMATIKUS_V_2008_szavazokorok', 'TEMATIKUS_V_2008_szavazokorok_TEXT', 'FH2009_FOLDRESZLET', 'FH2009_FOLDRESZLET_HRSZ', 'FH2009_AKNA', 'FH2009_ALAGUT', 'FH2009_BHP', 'FH2009_BURKOLAT', 'FH2009_EMLEKMU', 'FH2009_EP_LEPCSO', 'FH2009_EP_PILLER', 'FH2009_FAL_KERITES', 'FH2009_FEKVESHATAR', 'FH2009_FELULJARO', 'FH2009_GAZD_EPULET', 'FH2009_HAZSZAM', 'FH2009_HID', 'FH2009_INTEZMENYI_EP', 'FH2009_INTEZMENYI_EP_text', 'FH2009_IPARI_VASUT', 'FH2009_KAPCS_JEL', 'FH2009_KERULETHATAR', 'FH2009_KOZT_LEPCSO', 'FH2009_KUT', 'FH2009_LAKOEPULET', 'FH2009_M_ALAPPONT', 'FH2009_MIN_OSZT_text', 'FH2009_MUTARGY_VIZ', 'FH2009_MUVAG', 'FH2009_MUVAG_text', 'FH2009_RAMPA', 'FH2009_TAMFAL', 'FH2009_TEMPLOM', 'FH2009_TERASZ', 'FH2009_TOLTES', 'FH2009_UDULOEPULET', 'FH2009_UTCANEV', 'FH2009_UZEMI_EPULET', 'FH2009_UZEMI_EPULET_text', 'FH2009_VETITETT_SIK', 'FH2007_AKNA', 'FH2007_ALAGUT', 'FH2007_ALRESZLET', 'FH2007_BIRTOKHPONT', 'FH2007_BURKOLAT', 'FH2007_EGYEBKUT', 'FH2007_EMLEKMU', 'FH2007_EPULETLEPCSO', 'FH2007_EPULETSZIN', 'FH2007_F0', 'FH2007_FELULJARO', 'FH2007_FOLDRESZLET', 'FH2007_FOLDRESZLET_TEXT', 'FH2007_FOLDRESZLET_probaszinek', 'FH2007_GAZDASAGIEPULET', 'FH2007_HAZSZAM', 'FH2007_HAZSZAM_pont', 'FH2007_HIDSZEGELYVONAL', 'FH2007_IPARIVASUT', 'FH2007_KAPCSOLOJEL', 'FH2007_KEMENY', 'FH2007_KERITESLABAZAT', 'FH2007_KERULETHATAR', 'FH2007_KILATO', 'FH2007_KOZEPULET', 'FH2007_KOZTERLEPCSO', 'FH2007_KULTERBELTER', 'FH2007_LABAZATNELKULIKE', 'FH2007_LAKOEPULET', 'FH2007_LEVFALSIK', 'FH2007_MEDENCE', 'FH2007_MEDERVONAL', 'FH2007_MINOSEGIOSZTALY', 'FH2007_MUVELESIAG', 'FH2007_PILLER', 'FH2007_RAMPA', 'FH2007_TAMFAL', 'FH2007_TARTOOSZLOP', 'FH2007_TEMPLOM', 'FH2007_TERASZRAMPA', 'FH2007_TOLTES', 'FH2007_UDULOEPULET', 'FH2007_UTCANEV', 'FH2007_UZEMEPULET', 'FH2008_Akna', 'FH2008_Alagut', 'FH2008_Alreszlet', 'FH2008_Alreszlet_TEXT', 'FH2008_Birtokpont', 'FH2008_Burkolat', 'FH2008_Burkolat_TEXT', 'FH2008_Egyebkut', 'FH2008_Emlekmu', 'FH2008_Emlekmu_TEXT', 'FH2008_EOV_szelveny', 'FH2008_Epuletlepcso', 'FH2008_Feluljaro', 'FH2008_Foldreszlet', 'FH2008_Foldreszlet_TEXT', 'FH2008_foldreszlet_HRSZ_felirat', 'FH2008_Foldreszlet_tulajdonilapokkal', 'FH2008_Gazdasagiepulet', 'FH2008_Hazszam', 'FH2008_Hazszam_TEXT', 'FH2008_Hidszegelyvonal', 'FH2008_Kapcsolojel', 'FH2008_Kemeny', 'FH2008_Keriteslabazat', 'FH2008_Kerulet_teljes_foldreszlet', 'FH2008_Kerulethatar', 'FH2008_Kilato', 'FH2008_Kilato_TEXT', 'FH2008_Kozepulet', 'FH2008_Kozepulet_TEXT', 'FH2008_Kozterlepcso', 'FH2008_KulterBelter', 'FH2008_Labazatnelkulikerites', 'FH2008_Lakoepulet', 'FH2008_Levfalsik', 'FH2008_Medence', 'FH2008_Medence_TEXT', 'FH2008_Medervonal', 'FH2008_Minosegiosztaly', 'FH2008_Minosegiosztaly_TEXT', 'FH2008_Piller', 'FH2008_Tamfal', 'FH2008_Tartooszlop', 'FH2008_Templom', 'FH2008_Templom_TEXT', 'FH2008_Teraszrampa', 'FH2008_Toltes', 'FH2008_Uduloepulet', 'FH2008_Utcanev', 'FH2008_Uzemepulet', 'FH2008_Uzemepulet_POINT', 'FH2008_Uzemepulet_TEXT'];
    var DirecturlArray = [domainname + "tiles/"]; // , "http://79.172.211.27/tiles/";
    var urlArray = [domainname + "tilecache/tilecache.py?"]; //, "http://79.172.211.27/tilecache/tilecache.py?";
    //Initialize map options
    
    var options = {
        projection: "EPSG:23700",
        units: "m",
        maxResolution: 32, // <<<----- 1 pixel nem lehet több 32 méternél [m/px]
        minResolution: 0.125, // <<<----- 1 pixel nem lehet kevesebb 0.25 méternől [m/px]
        resolutions: [32.0, 16.0, 8.0, 4.0, 2.0, 1.0, 0.5, 0.25, 0.125],
        maxExtent: new OpenLayers.Bounds(644129, 231318, 651548, 238768), // bal-alsó, jobb-felső
        numZoomLevels: 9, // mennyi méretarány legyen
        tileSize: new OpenLayers.Size(512, 512), // generált mozaikok mérete pixelben; default 256 *256
        controls: [new OpenLayers.Control.PanZoomBar(), new OpenLayers.Control.MousePosition(), new OpenLayers.Control.Navigation(), new OpenLayers.Control.Scale(), new OpenLayers.Control.LayerSwitcher({
            'ascending': false
        }), new OpenLayers.Control.ScaleLine(), new OpenLayers.Control.Permalink(),new OpenLayers.Control.Attribution()]
    };
    
    /**
     * Create map object
     */
    var map = new OpenLayers.Map('map', options);
    
    /**
     *  Create ortophoto base layers
     */
    var ujbudaOrto = new Array();
    var years = [2005, 2007, 2008];
    for (var i = 0; i < years.length; i++) {
        ujbudaOrto[years[i]] = new OpenLayers.Layer.TileCache('ujbudaOrto' + years[i], DirecturlArray, 'ujbudaOrto' + years[i], {
            maxResolution: 32.0,
            minResolution: 0.125,
            isBaseLayer: true,
            opacity: 1,
            maxExtent: new OpenLayers.Bounds(641719, 231577, 653353, 238476)
        });
        
        map.addLayer(ujbudaOrto[years[i]]);
    }
    //Add empty background
    var uresHatter = new OpenLayers.Layer.Image('uresHatter', 'lib/ext/resources/images/default/s.gif', new OpenLayers.Bounds(641719, 231577, 653353, 238476), new OpenLayers.Size(1, 1), {
        maxResolution: 32.0,
        minResolution: 0.125,
        numZoomLevels: 9,
        isBaseLayer: true
    });
    
    map.addLayer(uresHatter);
    
    var ujbudaKerHat = new OpenLayers.Layer.WMS("ujbudaKerHat", domainname + "ujbudaVectorWMS100404/request.aspx?", {
        'layers': ['ALAP_kerulethatar'],
        'format': 'image/png',
        'version': '1.1.1',
        'transparent': true
    }, {
        isBaseLayer: false,
        opacity: 1,
        tileSize: new OpenLayers.Size(1024, 1024),
        maxExtent: new OpenLayers.Bounds(644129, 231318, 651548, 238768),
		attribution: "<a href='http://www.ujbuda.hu/' target='_blank'><img src='images/ujbudaLogo.gif'/></a><a href='http://www.tekire.hu/' target='_blank'><img src='images/tekireLogo.gif'/></a><a href='http://www.viamap.hu/' target='_blank'><img src='images/viamapLogo.gif'/></a>"
    });
    map.addLayer(ujbudaKerHat);
    
    /**
     * Create vector overlays (workhorse layer)
     */
    ujbudaVectorWMS = new OpenLayers.Layer.WMS("ujbudaVectorWMS", domainname + "ujbudaVectorWMS100404/request.aspx?", {
        'layers': currVectorLayers,
        'format': 'image/png',
        'version': '1.1.1',
        'transparent': true
    }, {
        isBaseLayer: false,
        opacity: 1,
        tileSize: new OpenLayers.Size(1024, 1024),
        visibility: false
    
    });
    map.addLayer(ujbudaVectorWMS);
    /**
     * Create WFS layer for vector features to be loaded as Vector layer
     */
    var myStyles = new OpenLayers.StyleMap({
        "default": new OpenLayers.Style({
            pointRadius: "5",
            fillColor: "transparent",
            strokeColor: "#ff9933",
            strokeWidth: 2,
            fillOpacity: 0,
            strokeOpacity: 0.5
        }),
        "select": new OpenLayers.Style({
            fillColor: "#66ccff",
            strokeColor: "#3399ff"
        })
    });
    
    
    ujbudaVectorWFS = new OpenLayers.Layer.WFS("ujbudaVectorWFS", domainname + "ujbudaVectorWFS/request.aspx?", {
        typename: 'gmgml:FOTO_Legifotok'
    }, {
        ratio: 1.25,
        extractAttributes: true,
        //style: FOTO_LegifotokStyle,
        styleMap: myStyles
    });
    map.addLayer(ujbudaVectorWFS);
   
    //szuro
    myfrszFilter2= new OpenLayers.Filter.Logical({
		type: OpenLayers.Filter.Logical.AND,
        filters: [
			new OpenLayers.Filter.Comparison({
				type: OpenLayers.Filter.Comparison.EQUAL_TO,
                property: "HRSZ",
                //value: record.data.HRSZ
				value: 2848
            })
        ]
    });

    filterXML2=new OpenLayers.Format.Filter();
    xml2=new OpenLayers.Format.XML();

	frszStyles2 = new OpenLayers.StyleMap({
		"default": new OpenLayers.Style({
			//pointRadius: "5",
			fillColor: "#FF0000 ", //"transparent"
			strokeColor: "#101010",
			strokeWidth: 2,
			fillOpacity: 0.2, // 0 - teljesen átlátszó ; fill opacity addresses "two dimensional" graphic elements (e.g. the area)
			strokeOpacity: 0.2 // 0 - teljesen átlátszó ; stroke opacity applies to "one dimensional" graphics elements (e.g. a line )
		})
	});
	
	keresett_frsz_WFS2 = new OpenLayers.Layer.WFS("op_keresett_frsz_WFS2", domainname + "ujbudaFoldreszletWFS/Request.aspx?", { 
		typename: 'gmgml:FH2009_FOLDRESZLET',
		filter: xml2.write(filterXML2.write(myfrszFilter2))
	}, {
		ratio: 1.25,
		extractAttributes: true, //Should the WFS layer parse attributes from the retrieved GML?  Defaults to false.  If enabled, parsing is slower, but attributes are available in the attributes property of layer features.
		styleMap: frszStyles2
	});
                                                           
    map.addLayer(keresett_frsz_WFS2);
   
    // Create a select feature control and add it to the map.
    selectControl = new OpenLayers.Control.SelectFeature(ujbudaVectorWFS, {
        hover: false,
        toggle: true,
		clickout:true,
        onSelect: onFeatureSelect,
        onUnselect: onFeatureUnselect
    });
    map.addControl(selectControl);
    selectControl.activate();
    
    
    if (!map.getCenter()) 
        map.zoomToMaxExtent();
    map.zoomIn();
    
    var ujbudaOverview = new OpenLayers.Layer.Image('ujbudaOverview', 'images/ujbudaOverview.jpg', new OpenLayers.Bounds(644129, 231318, 651548, 238768), new OpenLayers.Size(200, 200), {
        numZoomLevels: 1
    });
    
    
    var overviewControl = new OpenLayers.Control.OverviewMap({
        mapOptions: {
            projection: "EPSG:23700",
            units: "m",
            maxExtent: new OpenLayers.Bounds(644129, 231318, 651548, 238768),
            numZoomLevels: 1
        },
        size: new OpenLayers.Size(200, 200),
        layers: [ujbudaOverview]
    });
    map.addControl(overviewControl);
    overviewControl.maximizeControl();
    
	//Create kozterFoglalas layer
	var kozterStore=new Ext.data.JsonStore({
		url: 'querymdb.php',
		baseParams:{
			'mode':'GETALLKOZTER',
			'query':'dummy'
		},
		fields:['igenylo','meret','cel','kiadas','lejarat','id','X','Y'],
		root:'data',
		autoLoad:true,
		listeners:{
			'load':function(){
				for(var i=0;i<kozterStore.data.length;i++){
					var todaysdate=new Date();
					var lejaratDate=Date.parseDate(kozterStore.data.items[i].data.lejarat,"Y-m-d h:i:s");
					if(todaysdate>lejaratDate){
						fillColor="#ff0000";
					} else {
						fillColor="#00ff00";
					}
					var newPoint=new OpenLayers.Geometry.Point(kozterStore.data.items[i].data.X,kozterStore.data.items[i].data.Y);
					newFeature=new OpenLayers.Feature.Vector(newPoint,{
						'fillColor':fillColor,
						'igenylo':kozterStore.data.items[i].data.igenylo,
						'cel':kozterStore.data.items[i].data.cel,
						'meret':kozterStore.data.items[i].data.meret,
						'kiadas':kozterStore.data.items[i].data.kiadas,
						'lejarat':kozterStore.data.items[i].data.lejarat,
						'id':kozterStore.data.items[i].data.id	
					});
					kozterLayer.addFeatures([newFeature]);
				}				
			}
		}
	});
	
	//Create styles for kozter layers

    var kozterStyles = new OpenLayers.StyleMap({
        "default": new OpenLayers.Style({
            pointRadius: "5", // sized according to type attribute
            fillColor: "${fillColor}",
            strokeColor: "#ff9933",
            strokeWidth: 2
        }),
        "select": new OpenLayers.Style({
            fillColor: "#66ccff",
            strokeColor: "#3399ff"
        })
    });
	kozterLayer=new OpenLayers.Layer.Vector("kozterLayer",{styleMap:kozterStyles});
	map.addLayer(kozterLayer);
	
	
	// Create a select feature control and add it to the map.
    selectKozter = new OpenLayers.Control.SelectFeature(kozterLayer, {
        hover: false,
        toggle: true,
		clickout:true,
        onSelect: onKozterSelect,
        onUnselect: onFeatureUnselect
    });
    map.addControl(selectKozter);
    selectKozter.activate();
	
	//Create control for adding to kozterLAyers
	drawKozter = new OpenLayers.Control.DrawFeature(kozterLayer, OpenLayers.Handler.Point);
	map.addControl(drawKozter);

	
    //Create redline layer
    ujbudaRedLine = new OpenLayers.Layer.Vector("ujbudaRedLine");
    map.addLayer(ujbudaRedLine);
	
    //Create popup displaying info
    //ujbudaRedLine.events.register('featureadded', ujbudaRedLine, addRedLine);
 
	// Create a select feature control and add it to the map.
    selectRedLine = new OpenLayers.Control.SelectFeature(ujbudaRedLine, {
        hover: true,
        toggle: true,
		clickout:true,
        onSelect: onRedLineSelect,
        onUnselect: onFeatureUnselect
    });
    map.addControl(selectRedLine);
    //selectRedLine.activate(); 

 
    //var ujbudaRedLineControl = new OpenLayers.Control.EditingToolbar(ujbudaRedLine);
    //map.addControl(ujbudaRedLineControl);
    
    
    return map;
}

function onFeatureSelect(feature){
    selectedFeature = feature;
    popup = new OpenLayers.Popup.FramedCloud("chicken", feature.geometry.getBounds().getCenterLonLat(), null, "<div style='font-size:.8em'>Azonosító: " + feature.attributes.azonosito + "<br />\
									 Dátum: " +feature.attributes.Dátum +"<br />\
									 Idő: " +feature.attributes.Idő +"<br />\
									 Szerző: " +feature.attributes.Szerző +"<br />\
									 Típus: " +feature.attributes.Tipus1 +"<br />\
									 Megjegyzés: " +feature.attributes.Megjegyzés +"<br />\
									 <a target='_blank' href='images/legifoto/"+feature.attributes.file_név+"'>\
									 	<img style='width:100px' src='images/legifoto/"+feature.attributes.file_név+"'/>\
									 </a>\
									 </div>", null, true, onPopupClose);
    feature.popup = popup;
    map.addPopup(popup);
}

function onFeatureUnselect(feature){
    map.removePopup(feature.popup);
    feature.popup.destroy();
    feature.popup = null;
}

function onPopupClose(evt){
    selectControl.unselect(selectedFeature);
}


