// configuration file
// by Melnychuk Oleg  [http://my.opera.com/melnichuck]

/******************************************************

	MAP CONFIG

******************************************************/


var CONFIG = {
	// xhtml elements
	layer: {
	    header:		"#header",
		footer:		"#footer",
		sidebar:	"#sidebar",
		map:		"#map",
		minimap:	"#minimap",
		miniholder:	"#miniholder",
		viewport:	"#viewport",
		results:	"#results",
		content:	"#content",
		stat:		"#status",
		scale:		"#scale"
	},
	
	// tools initialization
	tool: {
		selector:	"tools",
		zoom_in:	"#tool-zoom-in",
		zoom_out:	"#tool-zoom-out",
		move:		"#tool-move",
		pointer:	"#tool-pointer"
	},
	default_tool: "#tool-zoom-in",
	content_margin: 20,
	fit_height: ".fitheight",
	
	// host related
	host: {
		name: "http://etabua.net/map/map",
		map: "/repaintmap/",
		minimap: "/minimap/",
		search: "/search/",
		obj: "/objbypoint/",
		contents: "/getcontents/",
		login: "/login/",
		register: "/register/",
		usertab: "/usertab/",
		bug: "/bug/"
	},
	
	// coordinates
	coords: {
		mainX: 0,
		mainY: 0,
		miniX: 0,
		miniY: 0
	},
	
	// interface constants
	iface: {
		min_viewport_height: 500,
		min_viewport_width: 700,
		mini_width: 150,
		mini_height: 150
	},
	
	// getter and setter
	set: function(key, value, store) { 
	    this[key] = value;
	    if (typeof store != 'boolean'){ store = true; }
	    if (store) {
		    this.setCookie("__typeof_" + key, typeof(value));
		    
			if (typeof(value) == 'boolean') {
				value = (value) ? 1 : 0;
			}
		    this.setCookie(key, value);
	    }
	},
	get: function(key, default_value) {
	    if (typeof this[key] != 'undefined') {
			return this[key];
		} else {
			var type = this.getCookie("__typeof_" + key);
			var value = this.getCookie( key );
			
			switch (type) {
		        case 'boolean': return (value == '1') ?  true : false;
		        case 'number': return parseInt(value, 10);
			}
			
			if (value === null) {
				return default_value;
			}
			return value;
	    }
	},
	
	setCookie: function(name, value) {
		document.cookie = name+"="+encodeURIComponent(value)+"; expires="+ new Date(new Date().getTime()+(360*24*60*60*1000)).toGMTString()+"; path=/";
	},

	getCookie: function(name) {
		var value = decodeURIComponent(widget.preferenceForKey(name));
		
		if (value == 'undefined' || value === '') {
			return null;
		} else {
			return value;
		}
		if (new RegExp(name+'\=([^;]*);','').test(document.cookie+';')) {
			return decodeURIComponent(RegExp.$1);
		}
		return null;
	}
};