/**
 * @author Sergey Chikuyonok (sc@design.ru)
 * @copyright Art.Lebedev Studio (http://www.artlebedev.ru)
 */

function setHash(hash){
	if(hash){
		location.hash = hash;
		PrintVersion.update();
	}
}

/**
 * Обновляет конетнт для нормального отображеня версии для печати.<br>
 * Работает просто: нужно вызвать <b>PrintVersion.update()</b>, чтобы синхронизировать
 * контент во флэше и на странице.
 */
var PrintVersion = {
	BASE_URL: '/ajax/',
	LANG: 'ru',
	_last_url: '',

	/**
	 * Выставляет языковую версию по умолчанию
	 * @param {String} lang Аббревиатура языка
	 */
	setDefaultLang: function(lang){
		this.LANG = lang;
	},

	/**
	 * Парсит урл и отдает полный путь, по которому нужно получить контент.
	 * @param {String} [url] Путь, который нужно распарсить. По умолчанию берется document.location.hash
	 * @return {String}
	 */
	parseUrl: function(url){
		url = url || document.location.hash;

		//удаляем символ хэша, если есть
		if(url.charAt(0) == '#')
			url = url.substr(1);

		var lang = this.LANG, path = url;
		var re_lang = /^\/?(\w{2})\/(.+)/;
		var m;
		if( (m = re_lang.exec(url)) ){
			lang = m[1];
			path = m[2];
		} else {
			/* ни одного слэша - первая страница, обнуляем path */
			path = '';
		}
		
		//удаляем лидирующий слэш, если есть
		if(path.charAt(0) == '/')
			path = path.substr(1);
		
		var full_path = '/'+lang + this.BASE_URL + path;
		
		if(full_path.indexOf('?') == -1 && full_path.substr(-1) != '/')
			full_path += '/';
		return full_path;
	},

	/**
	 * Обновляет контент версии для печати.
	 * @param {String} [url] Путь, по которому нужно получить контент. По умолчанию берется document.location.hash
	 */
	update: function(url){
		var loc = this.parseUrl(url);
		if(this._last_url != loc){
			$.get(loc, null, this.printContent);
			this._last_url = loc;
		}
	},

	/**
	 * Выводит полученные данные в контент
	 * @param {String} data Данные, полученные через XHR
	 */
	printContent: function(data){
		//удаляем доктайп
		var re = /<\!DOCTYPE .+?>/i;
		data = data.replace(re, '');
		$('#content').html(data);
		var title = $('#content h1').text();
		if(title)
			document.title = title;
	}
};