/* $Id: scripts.js 31009 2010-04-08 11:29:39Z catsmeatman $ */
function setcookies(name, value, expires, path, domain, secure) {
	document.cookie = name + "=" + escape(value) +
    ((expires) ? "; expires=" + expires : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
	return document.location.href=PATH_WEB
}

function aScroll(id_element){
	var offset = $j("#"+id_element).offset().top;
	if($j.browser.opera){
		$j("html").animate({scrollTop:offset},500);
	} else {
		$j("html,body").animate({scrollTop:offset},500);
	}
}
function switchBlock(blockName){
	$(blockName).toggle()
}

function showBlock(blockName){
	$(blockName).show();
}

function hideBlock(blockName){
	$(blockName).hide();
}

/*search*/
function validateSearchForm(formSubmitValue) {
	if ($('query').value!==''&&$('query').value!=='искать') {
		formSubmitValue.submit();
	}
}
function clearQuery(valueSearchForm){
	if(valueSearchForm=='искать') $('query').value=''
}

function queryBlur(valueSearchForm){
	if(valueSearchForm==''||valueSearchForm=='искать') {$('query').value='искать';$('queryChange').value=0}
}

function changeQuery(){
	$('queryChange').value=1
}

function checkMaxInput(textArea, counter, maxLength){
	var rest = maxLength;
	if (textArea.value.length > maxLength) textArea.value = textArea.value.substring(0, maxLength);
	else
		rest -= textArea.value.length;
		counter.innerHTML = rest
}

/*comments*/
var commentsLoaded=false;

function switchComments(commentType, objectId, commentCount){
	if(!commentsLoaded){
		new Ajax.Updater(
			{success:"comments"},
			"/viewCommentList",
			{
				method:"get",
				parameters:{
					"type":commentType,
					"object":objectId
				},
				onSuccess:function(transport){commentsLoaded=true},
				onFailure:function(transport){$("comments").update("Не удалось загрузить список комментариев")}
			}
		)
	}
	$('comments').toggle();
	var	showMessage="Cкрыть комментарии&nbsp;("+commentCount+")", hideMessage="Все комментарии&nbsp;("+commentCount+")";
	$("toggleComment").update($("toggleComment").innerHTML==showMessage?hideMessage:showMessage)
}
/*обрезать большие комментарии комментарии*/
var maxCommentSize=250, commentQuantity=new Array(), tmpComment=new Array();
function cutComments(){
	commentQuantity=$$('.oneCommentCENTER p');
	for (i=0;i<commentQuantity.length;i++){
		tmpComment[i]=commentQuantity[i].innerHTML;
		if(tmpComment[i].length>maxCommentSize){
			tmpComment[i].stripTags().slice(0,maxCommentSize)+'&hellip; <a href="javascript:pasteComments('+i+')">подробнее</a>';
			$$('.oneCommentCENTER p')[i].innerHTML=tmpComment[i].stripTags().slice(0,maxCommentSize)+'&hellip; <a href="javascript:pasteComments('+i+')">подробнее</a>'
		}
	}
}
/*показать скрытые комментарии*/
function pasteComments(numberComment){
	if (numberComment=='all'){
		for (i=0;i<tmpComment.length;i++){
			$$('.oneCommentCENTER p')[i].innerHTML=tmpComment[i]
		}
	} else{
		$$('.oneCommentCENTER p')[numberComment].innerHTML=tmpComment[numberComment]
	}
}
/*показать форму комментариев(кнопка комментировать)*/
function showHideComment(){
	$j("#wrapperAtachedComment").toggle();
	$j(".commentButtons").find(".commentsB").fadeOut("fast");
	/*
	j.('wrapperAtachedComment').toggle();
	for (i=0;i<j.('.showCommenting').size();i++){
		j.('.showCommenting')[i].toggle();
	}
	*/
}
/*verticalAlphabets*/
function selectVTab(nameAlphabet,nameTab){
	for (i=0;i<$$('#heelAlphabet div').length;i++){
		$$('#heelAlphabet div')[i].removeClassName('active');
		$$('#rightPartAlphabet div')[i].removeClassName('active');
	}
	nameTab.addClassName('active');
	$(nameAlphabet).addClassName('active');
}

function errorComment(errorInput){
	document.getElementsByName(errorInput)[0].style.cssText="border:1px solid red";
}

/*stars rating ---> must die*/
	var Rating = {
		rating: 0,
		enabled: navigator.cookieEnabled,
		imgCache: [],

		show: function(r)
		{
			if (this.enabled && r != this.rating) {
				this.rating = r;
				for (var i = 1; i < 6; ++i)
					this._setImage(i, i <= r ? r : 0);
			}
		},

		set: function(r)
		{
			if (this.enabled) {
				var frm = document.forms["rate"];
				if (frm && r > 0 && r < 6) {
					this.enabled = false;
					frm.rating.value = r;
					frm.submit();
				}
			}
		},

		_setImage: function(index, r)
		{
			if (!this.imgCache[index])
				this.imgCache[index] = $("rating_" + index);

			if (this.imgCache[index])
				this.imgCache[index].src = 'http://img.timeout.ru/' + "star_"
					+ (r == 0 ? "g" : r + "_b")
					+ ".gif";
		}
	};


var UrlMapper = {
	type :			null,
	filters :		{},
	baseUrl :		'/',
	page :			1,
	perPage :		10,
	filterString :	null,
	
	setType : function (type) {
		this.type = type;
		return this;
	},
	
	setBaseUrl : function (value) {
		var matches = value.match('^(.*)/$');
		
		if (
			(matches != null)
			&& (typeof(matches[1]) != 'undefined')
		)
			this.baseUrl = matches[1];
		else
			this.baseUrl = value;
		return this;
	},
	
	setFilter : function (param, value) {
		if (parseInt(value) > 0)
			this.filters[param] = value;
		
		return this;
	},
	
	setTypeBySelect : function (selector) {
		var value = selector.options[selector.selectedIndex].value;
		
		if (value.length > 0)
			this.type = value;
		
		return this;
	},
	
	setFilterBySelect : function (selector, param) {
		if (selector && selector.selectedIndex > 0) 
			this.setFilter(param, selector.options[selector.selectedIndex].value);
		else 
			this.dropFilter(param);
		return this;
	},
	
	dropFilter : function(param) {
		delete this.filters[param];
		return this;
	},
	
	setPage : function (value) {
		this.page = value;
		return this;
	},
	
	setPerPage : function (value) {
		this.perPage = value;
		return this;
	},
	
	setFilterString : function(filter) {
		this.filterString = filter;
		return this;
	},
	
	getFilterString : function() {
		if (this.filterString == null) {
			filterString = '';
			for (var param in this.filters) {
				if (filterString != '')
					filterString += ',';
				
				filterString += param
					+ (this.filters[param] != null
						? ':' + this.filters[param]
						: ''
					);
			}
			this.filterString = filterString;
		}
		return this.filterString;
	},
	
	getFilteredUrl : function () {
		var url = this.baseUrl;
		var filterString = '';
		
		if (this.type != null) {
			var matches = url.match('(list)(/)?([0-9]+)?');
			
			if (matches != null) {
				var sample = 'list'
						+ (typeof(matches[2]) != 'undefined' ? '/' : '')
						+ (
							typeof(matches[3]) != 'undefined'
								? matches[3]
								: ''
						);
				
				url = url.replace(
					sample,	'list' + (this.type ? '/' + this.type : '')
				);
			}
		}
		
		if (this.getFilterString() != '')
			url += '/filter/' + this.getFilterString();
		
		url += '/page/' + (this.page ? this.page : 1) + ':' + this.perPage + '/';
		
		return url;
	},
	
	jumpTo : function () {
		document.location.href = this.getFilteredUrl();
	}
}

function toggleCometittion(){
	if ($j('#showAwardDetalies').css('display') == 'none') {
		$j('#hideAwardDetalies').css('display','none')
		$j('#showAwardDetalies').css('display','block');
	} else {
		$j('#hideAwardDetalies').css('display','block');
		$j('#showAwardDetalies').css('display','none');
	}
}
/*now Jquery!*/
$j(document).ready(function(){
/*check reservTicket*/
	$j('#submitTicket').attr("disabled",0);
/*open|close*/
	$j('#showCategories, #hideCategories').click(function() {
		$j('#showCategories, #pHideCategories').toggleClass('noDsp');
	})
/*open|close arrow block. Modify selects last version*/
	$j('.SwitchBlock').click(function() {
		var cacheElement=$j(this);
		cacheElement.find('img').toggleClass('noDsp');
		cacheElement.next().toggleClass('noDsp');
	});
/*multiRating*/
	$j('#multiPlaceName .namePlace').click(function () {
		var el=$j(this);
		el.toggleClass('active');
		$j('#f'+el.attr('id')+', #d'+el.attr('id')).toggleClass('noDsp');
	});
	var cacheStars=$j('.pictMultiRating .starsEdit img');
	cacheStars.mouseover(function(){
		var cacheFunction=$j(this).parent(), rating=$j(this).attr('alt'), q=0, caheBlockStars=cacheFunction.find('img');
		if (cacheFunction.hasClass('noChangeStars') == false) {
			clearStars(caheBlockStars);
			for (var i = 0; i < rating; i++) {
				q++;
				caheBlockStars[i].src = 'http://img.timeout.ru/' + 'star_' + q + '_b.gif';
			}
		}
	})
	cacheStars.mouseout(function(){
		var cacheFunction=$j(this).parent();
		if(cacheFunction.hasClass('noChangeStars') == false) {
			clearStars(cacheFunction.find('img'));
		}
	})
	cacheStars.click(function(){
		var cacheFunction=$j(this).parent();
		cacheFunction.toggleClass('noChangeStars');
		if (cacheFunction.hasClass('noChangeStars'))
			$j('#'+cacheFunction.attr('rel')).val($j(this).attr('alt'));
		else
			$j('#'+cacheFunction.attr('rel')).val(0);
	})
	function clearStars(cleanStars){
		for (var i=0; i<5; i++) {
			cleanStars[i].src = 'http://img.timeout.ru/' + 'star_g.gif';
		}
	}
})