var uriBase;
var basePath;
var convertUrl;
var convertUrlRewrite;
var convertUrlReverse;
var Console;
var myConsole;
var calcURIs;
window.addEvent('domready', function() {
	
	/**
	 * The console function
	 * 	Used to log in firebug
	 */
	Console = new Class({
		log: function(text){
			if ($defined(window.console)) {
				console.log(text);
			}
		}
	});
	myConsole = new Console();
	
	
	
	
	/**
	 * Les chemins
	 */
	calcURIs = function(lang) {
		uriBase = new URI($('baseURL').get('value'));
		basePath = uriBase.toString()+lang+'/';
	}
	calcURIs($('lang').get('value'));
	
	/**
	 * Converti une url suivant son type
	 */
	convertUrl = function(url) {
		if (url.contains('=')) {
			return convertUrlRewrite(url);
		} else {
			return convertUrlReverse(url);
		}
	}
	
	/**
	 * Convert the url for URL rewriting
	 *  data1=4&data2=5 give data1-4,data2-5
	 */
	convertUrlRewrite = function(url) {
		var query = url;
		if (query == '') {
			return url;
		}
		var datas = new Hash(query.parseQueryString(false, false));
		var newDatas = '';
		var first = true;
		datas.each(function(value, key){
			
			if (!first) {
				newDatas += ','; 
			} else {
				first = false;
			}

			if ($type(value) == 'object') {
				var myVal = '';
				value = new Hash(value);
				var firstLoop = true;
				value.each(function(el, k) {
					if ($type(el) == 'object') {
						el = new Hash(el);
						el.each(function(element, myKey) {
							if (firstLoop) {
								firstLoop = false;
							} else {
								myVal += ',';
							}
							myVal += key;
							myVal += '['+k+']';
							myVal += '['+myKey+']-'+element;
						});
					} else {
						if (firstLoop) {
							firstLoop = false;
						} else {
							myVal += ',';
						}
						myVal += key;
						myVal += '['+k+']-'+el;
					}
				});
				newDatas += myVal;
				
			} else {
				newDatas += key+'-'+value;							
			}
			
		});
		return newDatas;
	}
	
	function convertHashToQuery() {
		
	}
	
	/**
	 * Convert the URL for URL rewriting
	 *  data1-4,data2-5 give data1=4&data2=5
	 */
	convertUrlReverse = function(url) {
		var myURL = url;
		var canSubstituteUnderscore = true;
		var finalUrl = '';
		for (var i=0 ; i<myURL.length ; i++) {
			if (url.charAt(i) == ',') {
				canSubstituteUnderscore = true;
				finalUrl += '&';
			} else if (url.charAt(i) == '-') {
				if (canSubstituteUnderscore) {
					canSubstituteUnderscore = false;
					finalUrl += '=';
				} else {
					finalUrl += url.charAt(i);
				}
			} else {
				finalUrl += url.charAt(i);				
			}
		}

		return finalUrl;
	}
	
	
	// test
//	var urls = new Hash({
//		'1': '/',
//		'2': 'ok-1',
//		'3': 'ok-1,',
//		'4': 'ok-1-2',
//		'5': 'ok-1-2-',
//		'6': 'ok-2,test-3',
//		'7': 'ok-2,test-4-5-6',
//		'8': 'ok-2,test-4-5-,'
//	});
//	myConsole.log('URLS ! ');
//	urls.each(function(url) {
//		myConsole.log('START');
//		myConsole.log(url);
//		myConsole.log(convertUrlReverse(url));
//		myConsole.log('END');
//	})
	
});
