var map, baselayer, artlayer, artpoint, emd;
var vectorLayer;
//click point
var eventXY;
var d = new Date();
var HH = d.getHours();
var MM = d.getMinutes();
var SS = d.getSeconds();
var prevenCache = '/geowebcache/service/wms?' + HH + MM + SS;
var useCache = '/geowebcache/service/wms';
OpenLayers.DOTS_PER_INCH = 90.71428571428572;
var mousePosition = new OpenLayers.Control.MousePosition({element: $('location')});
//OpenLayers.Util.onImageLoadErrorColor = 'transparent !important';
function redrawLayer()
{
	artlayer.redraw(true);	
}

function initMap()
{
	var mapOptions = {
		resolutions: [21.67845800781251, 10.839229003906254, 5.419614501953127, 2.7098072509765636, 1.3549036254882818, 0.6774518127441409, 0.33872590637207045],
		projection: new OpenLayers.Projection('EPSG:99998'),
		maxExtent: new OpenLayers.Bounds(308956.434, 445568.757, 353353.916, 489966.239),
		units: "meters",
		numZoomLevels: 7,
		controls: []
	};
	map = new OpenLayers.Map('map', mapOptions);
	//Controls
	//map.addControl(new OpenLayers.Control.PanZoomBar({
	//		position: new OpenLayers.Pixel(2, 15)
	//}));
	//map.addControl(new OpenLayers.Control.Navigation());
	//map.addControl(new OpenLayers.Control.Scale($('scale')));
	map.addControl(mousePosition);
	//map.addControl(new OpenLayers.Control.LayerSwitcher());
	//Layers
	baselayer = new OpenLayers.Layer.WMS("caits_gis", useCache, {
		layers: 'caits_gis',
		format: 'image/png'
	}, {
		tileSize: new OpenLayers.Size(256, 256),
		isBaseLayer: true
	});
	map.addLayer(baselayer);
	emd = new OpenLayers.Layer.WMS("caits:emd_label", useCache, {
		layers: 'caits:emd_label',
		format: 'image/png',
		transparent: true
	}, {
		tileSize: new OpenLayers.Size(256, 256),
		isBaseLayer: false
	});
	map.addLayer(emd);
	artlayer = new OpenLayers.Layer.WMS("caits:L_ART_GRADE", prevenCache, {
		layers: 'caits:L_ART_GRADE',
		format: 'image/png',
		transparent: true
	}, {
		tileSize: new OpenLayers.Size(256, 256),
		isBaseLayer: false
	});
	map.addLayer(artlayer);
	artpoint = new OpenLayers.Layer.WMS("caits:ART_POINT", useCache, {
		layers: 'caits:ART_POINT',
		format: 'image/png',
		transparent: true
	}, {
		tileSize: new OpenLayers.Size(256, 256),
		isBaseLayer: false
	});
	map.addLayer(artpoint);

	//Vectors
	var renderer = OpenLayers.Util.getParameters(window.location.href).renderer;
	renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers;
	
	// grade�� �� ���̾� ��Ÿ��
	var colors = ["#E6E6FA", "#32CD32", "#FFD700", "#B22222"];
	var context = {
		getColor: function (feature)
		{
			return colors[feature.grade]; // grade
		}
	};
	var template = {
		fillColor: "${getColor}",
		strokeColor: "#696969",
		strokeWidth: 0,
		fillOpacity: 0.0,
		graphicOpacity: 0
	};
	var layer_style = new OpenLayers.Style(template, {
		context: context
	});

	vectorLayer = new OpenLayers.Layer.Vector("Vector", {
		styleMap: new OpenLayers.StyleMap(layer_style),
		renderers: renderer
	});
	map.addLayer(vectorLayer);

	var popupWKT = function(e) {
		eventXY = map.getLonLatFromPixel(new OpenLayers.Pixel(mousePosition.lastXy.x,mousePosition.lastXy.y));
		ShowITSInfo(e.feature.linkid,'1');
	};

	var featureHover = new OpenLayers.Control.SelectFeature(vectorLayer, {
		hover: true,
		eventListeners: {
			featurehighlighted: popupWKT,
			featureunhighlighted: removePopup
		}});
	map.addControl(featureHover);  
	featureHover.activate();
//	this.cctvMarkers.setZIndex("750");
	findArtWKT();

	//Events
/*	
	map.events.register('click', map, function (e)
	{
		document.getElementById('nodelist').innerHTML = "Loading... please wait...";
		var params = {
			REQUEST: "GetFeatureInfo",
			EXCEPTIONS: "application/vnd.ogc.se_xml",
			BBOX: map.getExtent().toBBOX(),
			X: e.xy.x,
			Y: e.xy.y,
			INFO_FORMAT: 'text/html',
			QUERY_LAYERS: map.layers[2].params.LAYERS,
			FEATURE_COUNT: 5,
			Layers: 'caits:L_ART_GRADE',
			Styles: '',
			Srs: 'EPSG:99998',
			WIDTH: map.size.w,
			HEIGHT: map.size.h,
			format: "image/png"
		};
		eventXY = map.getLonLatFromPixel(e.xy);
		OpenLayers.loadURL(prevenCache, params, this, setHTML, setHTML);
		OpenLayers.Event.stop(e);
	});
*/	
	map.events.register('moveend', map, function (e)
	{
		SetEmdOnXY(map.getCenter().lon, map.getCenter().lat);
	});
	map.setCenter(new OpenLayers.LonLat(323549.95373, 468947.31622), 1, false, true);
}
/*
function setHTML(response)
{
	try
	{
		$("#nodelist").css('display', 'none');
		$("#nodelist").hide();
		$("#nodelist").html(response.responseText);
		var fid = $("table.featureInfo td:eq(1)").text();
		if (fid != "")
		{
			ShowITSInfo(fid, "1");
		}
		else
		{
			return;
		}
	}
	catch (e)
	{
		alert('An error has occurred: ' + e.message);
	}
	finally
	{
		$("#nodelist").html('');
	}
}
*/
