/* others / aurtor: m15 */

var blockFavotiteState;

function setFavoriteClasses( cl_a, cl_b, dscr ){
	$( '#fav' ).removeClass( 'favorite_' + cl_a );
	$( '#fav' ).addClass( 'favorite_' + cl_b );
	$( '#fav span' ).removeClass( 'f_' + cl_a );
	$( '#fav span' ).addClass( 'f_' + cl_b );
	$( '#fav span' ).text( dscr );
}

function setFavoriteClass(){
	if( blockFavotiteState == 0 ){
		if( $( '#fav span' ).attr('class') == 'f_del' ){
			setFavoriteClasses( 'del', 'add', 'Добавить в избранное' );
		} else {
			setFavoriteClasses( 'add', 'del', 'Добавлено в избранное' );
			$( '#fav span' ).parents( 'a' ).attr( 'href', '/profile/MyProfile/' );
		}
	}
}

function myFavorite( tid, rid, sts ){
	$.ajax({
		url: '/ajax/favorite/',
		type: 'post',
		data: { tid: tid,
				rid: rid,
				sts: sts },
		success: function (response){
			$( '#myFavoriteScriptPlace' ).html( response );
			setFavoriteClass();
		},
		error: function(){
			alert15( 'ошибка при добавлении' );
		}
	});
	//alert15( 'Спасибо! Вы совершили отладочный клик мышью.' );
}



function myRating( tid, rid, cnt ){
	alert15( 'Спасибо! Ваша оценка уже учтена.' );return false;//Вы совершили отладочный клик мышью.
	$.ajax({
		url: '/ajax/rating/',
		type: 'post',
		data: { tid: tid,
				rid: rid,
				cnt: cnt },
		success: function (response){
			$( '#myRatingScriptPlace' ).html( response );
			//setTimeout( 'location.reload(true);', 500 );
		},
		error: function(){
			alert15( 'ошибка при добавлении оценки' );
		}
	});
}

var m15month = new Array();
m15month[0] = new Array( '', 'январь','февраль','март','апрель','май','июнь','июль','август','сентябрь','октябрь','ноябрь','декабрь');
m15month[1] = new Array( '', 'января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря');

$( function(){
	//juliaDate( '2010-11-20' );
	//juliaDate( '2010-11-20.2010-11-23' );
});




function click15( relId ){
	$( 'a[rel=#' + relId + ']').trigger('click');
}

function juliaDate( value ){
	var src = value.split('.');
	if( src.length == 2 ){
		//alert( shutleDate( src[0] ) + ' - ' + shutleDate( src[1] )  );
	} else {
		//alert( '' + stringDate( src[0] ) );
	}
}

function shutleDate( value ){
	var src = value.split('-');
	if( src.length == 3 ){
		return src[2] + '-' + src[1]+ '-' + src[0];
	} else {
		return value;
	}
}

function stringDate( value ){
	var src = value.split('-');
	if( src.length == 3 ){
		return src[2] + ' ' + m15month[1][ parseInt( src[1] ) ]  ;//+ ' ' + src[0] + 'г.';
	} else {
		return value;
	}
}



function divsfliper( dest,targ ){
	$( '#' + dest ).hide( 'slow' );
	$( '#' + targ ).show( 'slow' );
}


function hidelabel( id ){
	$( '#' + id + 'label' ).css( 'display', 'none' );
}

function addComment( tid, rid ){
	alert( ":: " + tid + ' - ' + rid + document.location );
}


function tudasuda( src, dst ){
	$( '#' + src ).focus( function(){
		$( '#' + src ).css( 'display', 'none' );
		$( '#' + dst ).css( 'display', '' );
		$( '#' + dst ).attr( 'class', 'type_text' );
		$( '#' + dst ).get(0).focus();
	});
	$( '#' + dst ).blur( function(){
		if( $( '#' + dst ).attr( 'value' ) == '' ){
			$( '#' + dst ).css( 'display', 'none' );
			$( '#' + src ).css( 'display', '' );
			$( '#' + src ).attr( 'class', 'type_text' );
		}
	});
}

function login(){
	$( '#registration .red_text').text( '' );
	//$( '#logindata' ).html( 'секундочко...' );
	var login = $( '#flogin' ).attr( 'value' );
	var password = $( '#fpassword' ).attr( 'value' );

	$.ajax({
		url: '/ajax/login/',
		type: 'post',
		data: { login: login,
				password: password },
		success: function (response){
			$( '#logindata' ).html( response );
			//afterLoadStations();
			//document.location = document.location.href;
		}
	});
}


function logout(){
	$.ajax({
		url: '/ajax/logout/',
		success: function (response){
			//alert( 'Выход совершен' );
			$( '.autorisation2' ).html( response );
			//alert( 'Выход совершен' );
		}
	});
}


function forgetpass(){
	$( '#registration .red_text').text( '' );
	var login = $( '#floginfp' ).attr( 'value' );
	$.ajax({
		url: '/ajax/forgetpass/',
		type: 'post',
		data: { login: login },
		success: function (response){
			$( '#logindata' ).html( response );
			//afterLoadStations();
		}
	});
}

function join(){
	$( '#registration .red_text').text( '' );
	//$( '#logindata' ).html( 'секундочко...' );
	var login = $( '#floginr' ).attr( 'value' );
	var password = $( '#fpasswordr' ).attr( 'value' );
	var nick = $( '#fnickr' ).attr( 'value' );
	var code = $( '#fcoder' ).attr( 'value' );
	if( $( '#fsubscriber' ).attr( 'checked' ) ){
		var subscribe = 1;
	} else {
		var subscribe = 0;
	}
	$.ajax({
		url: '/ajax/join/',
		type: 'post',
		data: { login: login,
				password: password,
				nick: nick,
				code: code,
				subscribe: subscribe },
		success: function (response){
			$( '#logindata' ).html( response );
			//afterLoadStations();
		}
	});
}



/* ################ COMMENTARIES  ################## */

function showFormAddComment(){
	$.ajax({
		url: '/ajax/showFormAddComment/',
		type: 'post',
		success: function (response){
			if( ff > 0 ){
				$( '#forform' + ff ).html( '' );
				$( '.adform' + ff ).css( 'display', '' );
				ff = 0;
			}
			$( '#addcommsajax' ).html( response );
			//$( '.addcommform .addbut' ).hide();
			//$( '.addcommform .addform' ).show();
		}
	});
}

function showties( id ){
	$( '.openties'+id ).css( {'display' : 'none'} );
	$( '.hideties'+id ).css( {'display' : ''} );
	$( '#tie'+id ).css( {'display' : 'block'} );
}

function hideties( id ){
	$( '.openties'+id ).css( {'display' : ''} );
	$( '.hideties'+id ).css( {'display' : 'none'} );
	$( '#tie'+id ).css( {'display' : 'none'} );
}

function showFull( obj ){
	//parent = $( obj ).parent().parent().parent().parent().children('tr:first');//.attr( 'class' );
	//parent = $( obj ).parents('table:first').children('tr:first');
	//$( obj ).text( '' );
	//$( obj ).removeClass( 'abr' );
	//$( obj ).css( { 'display':'none' } );
	$( obj ).parents('table:first').find('.opentext').css( 'display', 'none' );
	$( obj ).parents('table:first').find('.closetext').css( 'display', '' );
	$( obj ).parents('table:first').find('.ct').css( { 'display':'' } );
	$( obj ).parents('table:first').find('.ctr').css('display', 'none');
}
function hideFull( obj ){
	$( obj ).parents('table:first').find('.opentext').css( 'display', '' );
	$( obj ).parents('table:first').find('.closetext').css( 'display', 'none' );
	$( obj ).parents('table:first').find('.ct').css( { 'display':'none' } );
	$( obj ).parents('table:first').find('.ctr').css( 'display', '' );
}

/* wrapper */
function beforeAddComment( id ){}

function addComment( id ){
	//alert( typeof(comform) );
	$.ajax({
		url: '/ajax/islogin/',
		type: 'post',
		dataType: 'json',
		success: function (response){
			//alert( comform );
			if( response.ika == 1 ){
				$( '.addcommform .addbut' ).show();
				$( '.addcommform .addform' ).hide( 'slow' );
				if( typeof(ff) != 'undefined' && ff > 0 ){
					$( '#forform' + ff ).hide( 'slow' );
					$( '#forform' + ff ).html( '' );
					$( '.adform' + ff ).css( 'display', '' );
				}
				$( '.adform' + id ).css( 'display', 'none' );
				$( '#forform' + id ).css( 'display', 'none' );
				$( '#forform' + id ).html( comform );
				$( '#forform' + id ).show( 'slow', function(){ beforeAddComment( id ); } );
				ff = id;
			} else {
				//alert15( 'Только авторизированные пользователи могут оценивать события, оставлять рецензии и&nbsp;комментарии.<br><p>Пожалуйста, <a href="javascript://" onclick="click15(\'registration\');">авторизуйтесь</a>.' );
				click15('registration');
			}
		},
		error: function(){
			alert15( 'ошибка проверки прав на добавления' );
		}
	});
}

function postComment(){
	var txt = $( '#forform' + ff + ' .comment_area' ).val();
	if( typeof ( pId ) != 'undefined' && ( pId >= 0 ) ){
		ff = pId;
	}
	if( txt != '' ){
		$.ajax({
			url: '/ajax/addComment/',
			type: 'post',
			dataType: 'json',
			data: { parentid: ff,
					tableId: tId,
					recordId: rId,
					text: txt },
			success: function(response){
				//alert( response.text );
				postSwitch( response.status );
			},
			error: function( e ){
				alert15( 'ошибка при добавлении. '+e );
			}
		});
	} else {
		alert15( 'В поле комментария ничего нет.' );
	}
}


function postReview(){
	var txt = $( '#addReview .comment_area' ).val();
	if( txt != '' ){
		$.ajax({
			url: '/ajax/addComment/',
			type: 'post',
			dataType: 'json',
			data: { parentid: 0,
					tableId: tId,
					recordId: rId,
					text: txt },
			success: function(response){
				postSwitch( response.status );
				//alert15( ':' + response.descr );
			},
			error: function( e ){
				alert15( 'ошибка при добавлении. '+e );
			}
		});
	} else {
		alert15( 'В поле рецензии ничего нет.' );
	}
}

function postSwitch( status ){
	switch( status ){
	case -3:
		alert15( 'сообщение содержит ссылки. данные записать не удалось. попробуте иначе.' );
		break;
	case -2:
		alert15( 'сообщение содержит ненормативную лексику. данные записать не удалось. попробуте иначе.' );
		break;
	case -1:
		alert15( 'авторизационная сессия завершилась. данные записать не удалось.' );
		break;
	case 1:
		//alert( 'запись добавлена' );
		if( redirectUrl == '' ){
			document.location.reload();
		} else {
			//alert( redirectUrl );
			document.location = redirectUrl;
		}
		break;
	default:
		alert15( 'данные записать не удалось. ' );
		break;
	}
}


/* modal window alert */
var alertId = 0;
/*
		onBeforeLoad: function(){ if(IE6){ $('select').css({'visibility':'hidden'}); } },
		onClose: function(){ if(IE6){ $('select').css({'visibility':'visible'}); } } },
*/
var overlaySettings15 = {
		mask: { color: '#000', loadSpeed: 200, opacity: 0.5 },
		top:'20%',
		fixed: false,
		closeOnEsc: false
    };

function alert15( content, id, title ){
	if( typeof( id ) == 'undefined' ){ id = alertId ; alertId++; }
	if( typeof( title ) == 'undefined' ){ title = 'Внимание!'; }
	var wid = 'alert15w' + id;
	var wndw = '<div id="' + wid + '" class="m15alert popup_wrapp"><div class="inner_wrapp" style="width:300px; height:160px;"><a class="close"></a><h3 class="dot_title" style="margin-bottom:0;">' + title + '</h3><div class="content">' + content + '</div></div></div>'; 
	$( '#workarea' ).append( wndw );
	$( '#' + wid ).overlay( overlaySettings15 );
	$( '#' + wid ).overlay().load();
	//alert(2);
}

var confirm15actions = '';
var nextstep = '';

function confirm15( content, actionobject ){
	if( typeof( actionobject ) != 'undefined' ){
		confirm15actions = actionobject;
	}
	if( typeof( id ) == 'undefined' ){ id = alertId ; alertId++; }
	var title = 'Внимание!';
	var wid = 'confirm15w' + id;
	content = '<div align="center" id="confirm15"><br>' + content + '<br><br><a href="javascript://" onclick="nextstep();">Да</a> | <a href="javascript://" onclick="closewin(\'confirm15\');">Нет</a></div>';
	var wndw = '<div id="' + wid + '" class="m15alert popup_wrapp"><div class="inner_wrapp" style="width:300px; height:160px;"><a class="close"></a><h3 class="dot_title" style="margin-bottom:0;">' + title + '</h3><div class="content">' + content + '</div></div></div>'; 
	$( '#workarea' ).append( wndw );
	$( '#' + wid ).overlay( overlaySettings15 );
	$( '#' + wid ).overlay().load();
	//alert(2);
}

nextstep = function(){
	if( typeof( confirm15actions.fnc ) == 'function' ){
		if( typeof( confirm15actions.vars ) == 'object' ){
			confirm15actions.fnc( confirm15actions.vars );
		}
	}
	closewin( 'confirm15' );
}

/* закрывалка для окон созданных по типу confirm15() */
function closewin( id ){
	var pid = $( '#' + id ).parents( '.popup_wrapp' ).attr( 'id' )
	$( '#' + pid ).fadeOut( 'fast', function(){
		$.mask.close();
		$( this ).remove();
	});
}


function makeAlert2del(){
	$( '#testalert' ).html( '<a href="javascript://" rel="#pop2">wxx</a><div id="pop2" class="popup_wrapp"><div class="inner_wrapp" style="width:300px; height:300px;"><a class="close"></a><h3 class="dot_title" style="margin-bottom:0;">Новое окно</h3></div></div>' );
	//$( 'a[rel=#pop2]' ).overlay( overlaySettings15 );
	$( '#pop2' ).overlay( overlaySettings15 );
	//$( 'a[rel=#pop2]' ).trigger('click');
	//$( 'a[rel=#pop2]' ).overlay().load();
	$( '#pop2' ).overlay().load();
}

$( document ).ready( function(){
	$( 'body' ).append( '<div id="workarea"></div>' );
	//alert15('1234' ,2, 'Заработало!');
});




/* for search calendar */
function today15(){
	var today = new Date();
	dd = today.getDate();
	if( dd < 10 ){ dd = '0' + dd; }
	mm = today.getMonth() + 1;
	if( mm < 10 ){ mm = '0' + mm; }
	yyyy = today.getFullYear();
	now = yyyy + '-' + mm + '-' + dd;
	//alert( now );
	return now;
}

function nextMon(){
	var today = new Date();
	dd = '01'
	mm = today.getMonth() + 2;
	if( mm < 10 ){ mm = '0' + mm; }
	yyyy = today.getFullYear();
	now = yyyy + '-' + mm + '-' + dd;
	//alert( now );
	return now;
}


/* for cabinet */
function localPicker( objName ){
	//$( objName ).datepicker( "option", "dayNamesShort", ['П', 'В', 'С', 'Ч', 'П', 'С', 'В'] );
	$( objName ).datepicker( "option", "dayNamesMin", ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Вс'] );
	$( objName ).datepicker( "option", "monthNames", ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'] );
	$( objName ).datepicker( "option", "monthNamesShort", ['Янв', 'Фев', 'Март', 'Апр', 'Май', 'Июнь', 'Июль', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'] );
	//$( objName ).datepicker( "option", "dateFormat", 'yy-mm-dd' );
	$( objName ).datepicker( "option", "changeMonth", false );
	$( objName ).datepicker( "option", "changeYear", true );
	$( objName ).datepicker( "option", "showMonthAfterYear", true );
	//$( objName ).datepicker( "option", "dateFormat", 'dd.mm.yy' };
	//$( objName ).datepicker( "option", "yearRange", '1901:c' );// передергивает экран
	//$( objName ).datepicker( { beforeShow: alert( objName ) } );
	//$( objName ).click( function(){ yearRange( objName ); });
	//alert( $( objName ).datepicker( "option", "shortYearCutoff" ) );
	$( objName ).datepicker( "option", "yearRange", '1917:2010' );
}
// fix years for birthday
function yearRange( objName ){
	//alert( $( objName ).datepicker().find( '.ui-datepicker-year option:first' ).html() ); null
	//var tmp = $( 'body' ).find( '.ui-datepicker-year option:first' ).html();
	//$( 'body' ).find( '.ui-datepicker-year option:first' ).html( tmp + ' (or more)' );
	var curentVals = $( '.ui-datepicker-year' ).html();
	var curentMin = 2010;//parseInt( $( '.ui-datepicker-year option:first').text() );
	var adds = '';
	for( var i = 1901; i < curentMin; i++ ){
		adds = adds + '<option value="' + i + '">' + i + '</option>';
	}
	$( '.ui-datepicker-year' ).html( adds + ' ' + curentVals );
}

function setDatePicker( objName, valDate ){
	if( typeof( valDate ) != 'undefined' && valDate != '' ){
		$( objName ).datepicker( "option", "defaultDate", valDate );
		$( objName ).val( valDate );
	}
}

function beforeTodayPicker( objName ){
	$( objName ).datepicker( "option", "maxDate", 'c' );
}

$( document ).ready( function(){
	setTimeout( function(){
		// боремся с передергиванием экрана
//		var curentVals = $( '.ui-datepicker-year' ).html();
//		var curentMin = parseInt( $( '.ui-datepicker-year option:first').text() );
//		var adds = '';
//		for( var i = 1901; i < curentMin; i++ ){
//			adds = adds + '<option value="' + i + '">' + i + '</option>';
//		}
		//alert( adds );
		//$( '.ui-datepicker-year' ).html(  adds + ' ' + curentVals );
	}, 1500 );
});

/* profile photo */
function unsetPhoto( obj ){
	$.ajax({
		url: '/ajax/unsetAvatar/',
		type: 'post',
		success: function (response){
			$( obj ).parent().children( 'img' ).css( 'display', 'none' );
			$( obj ).parent().children( 'a' ).css( 'display', 'none' );
			$( obj ).parent().children( 'input' ).css( 'display', '' );
		}
	});
}




/* services */
//$( where ).append( '<div id="m15show"><pre></pre></div>' );
//$( '#m15show pre' ).text( m15print(  what ) );
function m15print( value, level ){
	if( typeof( level ) == 'undefined' ){
		level = 1;
	}
	//alert( level );
	var tab = '';
	for( var i =0; i < level; i++ ){
		tab += '\t';
	}
	if( typeof( value ) == 'object' ){
		var out = '[OBJECT]\n';
		var functions = tab + '[FUNCTIONS]: ';
		for( var v in value ){
			switch( typeof( value[v] ) ){
				case 'function':
					//out +=  tab+ '[' + typeof( value[v] ) + ']: '+ v + '\n';
					functions += v + '(); ';
					break;
				case 'object':
					//return "Type: "+typeof(obj)+((obj.constructor) ? "\nConstructor: "+obj.constructor : "")+"\nValue: " + obj;
					out += tab + '->' + v + ' ' + value[v] + ': \n';
					if( level < 3 ){
						out += tab + '\t';
						//m15print( value[v] );
						if( value[v] != '[object HTMLDocument]' && v != 'style' ){
							out += m15print( value[v], level+1 );
						//} else {
						//	out += m15print( '.asldkj', level+1 );
						}
					} else {
						out += tab + '...';
					}
					out += '\n';
					break;
				default:
					if( v != 'innerHTML' ){
						out +=  tab+ '(' + typeof( value[v] ) + ')' + v + ': '+ value[v] + '\n';
					} else {
						out +=  tab+ '(' + typeof( value[v] ) + ')' + v + ': ...\n';
					}
					break;
			}
		}
		out += functions;
		//if( level == 1 ){
		//	alert( out );
		//} else {
			return out;
		//}
	} else {
		//if( level == 1 ){
		//	alert( '(' + typeof( value ) + ')...: '+ value );
		//} else {
			return '(' + typeof( value ) + ')...: '+ value;
		//}
	}
}



/* fun */
var rdays = new Array( 'день', 'дня', 'дней' );
var rhours = new Array( 'час', 'часа', 'часов' );
var rmins = new Array( 'минута', 'минуты', 'минут' );
var rsecs = new Array( 'секунда', 'секунды', 'секунд' );
function int2endWords( i, ar ){
	if( i > 10 && i < 19 ){
		i = 0;
	} else {
		i = '' + i;
		if( i.length > 1 ){
			i = i.substr((i.length - 1),1);
		}
		i = parseInt(i);
	}
	if( i == 1 ){ return ar[0]; }
	if( i > 1 && i < 5 ){ return ar[1]; }
	return ar[2];
}

function fulltime( obj ) {
	var time=new Date();   
	var newYear=new Date("Jan,1,2011,00:00:00");   
	//var newYear=new Date("Nov,10,2010,11:10:00");   
	var totalRemains=(newYear.getTime()-time.getTime());   
	if (totalRemains>1){   
		var RemainsSec = (parseInt(totalRemains/1000));//сколько всего осталось секунд   
		var RemainsFullDays=(parseInt(RemainsSec/(24*60*60)));//осталось дней   
		var secInLastDay=RemainsSec-RemainsFullDays*24*3600; //осталось секунд в неполном дне    
		var RemainsFullHours=(parseInt(secInLastDay/3600));//осталось часов в неполном дне    
		//if (RemainsFullHours<10){RemainsFullHours="0"+RemainsFullHours};   
		var secInLastHour=secInLastDay-RemainsFullHours*3600;//осталось секунд в неполном часе   
		var RemainsMinutes=(parseInt(secInLastHour/60));//осталось минут в неполном часе   
		//if (RemainsMinutes<10){RemainsMinutes="0"+RemainsMinutes};   
		var lastSec=secInLastHour-RemainsMinutes*60;//осталось секунд   
		//if (lastSec<10){lastSec="0"+lastSec};   
		RFD = int2endWords( RemainsFullDays, rdays );
		RFC = int2endWords( RemainsFullHours, rhours );
		RFM = int2endWords( RemainsMinutes, rmins );
		RFS = int2endWords( lastSec, rsecs );
		var display = "До Нового года осталось: <span><b>"+RemainsFullDays+"</b> "+RFD+" <b>"+RemainsFullHours+"</b> "+RFC+" <b>"+RemainsMinutes+"</b> "+RFM+" <b>"+lastSec+"</b> "+RFS+'</span>';
		$( '#' + obj ).html( display );
		setTimeout('fulltime("'+obj+'")',1000)
	} else {
		var display = "С Новым годом!";
		$( '#' + obj ).html( display );
	}
}
//fulltime();


/* restaurants */
$( document ).ready( function(){
	
	$( '.leftEars' ).click(//hover
		function(){
			var forHideId = $( '.best_restorans_activ' ).attr( 'id' );
			forHideId = forHideId.substr(7);
			$( '#earLeft' + forHideId ).removeClass( 'best_restorans_activ' );
			$( '#leftEarBlock' + forHideId ).hide( 'slow' );
			var forShowId = $( this ).attr( 'id' );
			forShowId = forShowId.substr(7);
			$( this ).addClass( 'best_restorans_activ' );
			$( '#leftEarBlock' + forShowId ).show( 'slow' );
		}
		//,	function(){}
	);

	/* регистрация - ремонт глюка куков с подгрузкой картинки в бекграунд */
	$( '#coderimage_' ).remove();

});



/* for metro, cuisine, entertainment, genres  in searchpart */
function showChapter( out_type, prefix_class, prefix_id ){
	var tvals = $( '#'+ out_type ).val();
	if( tvals != '' ){
		$( '#all_search' ).attr( 'checked', '' );
		var vals = tvals.split( chapterChar );
		for( v in vals ){
			if( vals[v] != '' ){
				$( '.' + prefix_id + 'it_val' + parseInt( vals[v] ) ).children('input').attr('checked', true );
				printChapter( vals[v], out_type, prefix_class, prefix_id );
			}
		}
	}	
}

function printChapter( id, out_type, prefix_class, prefix_id ){
	$( '.' + prefix_id + 'it_val' + id ).children('input').attr('checked', true );
	var title = '';
	$( '.running_items .' + prefix_id + 'it_val' + id +' label' ).each( function(){
		title = $( this ).text();
	});
	var tmp = '<p class="all_items ' + prefix_id + 'sit_val' + id + '"><span>' + title + '</span> <a href="javascript://" onclick="actionChapter( ' + id + ', \'false\', \'' + out_type + '\', \'' + prefix_class + '\', \'' + prefix_id + '\' )">x</a></p>';
	if( $( '.' + prefix_class + '_showroom' ).html() == '' ){
		$( '.meta_' + prefix_class + '_showroom' ).attr( 'style', 'display:block;margin-left:45px;');
		//$( '.meta_metro_showroom' ).prepend('<samp></samp>');
		$( '.' + prefix_class + '_showroom_separator' ).attr( 'style', 'display:block;clear:both;');
	}
	$( '.' + prefix_class + '_showroom' ).append( tmp );
}

function aprintChapter( id, prefix_class, prefix_id ){
	$( '.' + prefix_id + 'sit_val' + id ).remove();
	$( '.' + prefix_id + 'it_val' + id ).children('input').attr('checked', false );
	if( $( '.' + prefix_class + '_showroom' ).html() == '' ){
		$( '.meta_' + prefix_class + '_showroom' ).attr( 'style', '');
		$( '.' + prefix_class + '_showroom_separator' ).attr( 'style', 'display:block;');
	}
}

function actionChapter( id, state, out_type, prefix_class, prefix_id ){
	var tvals = $( '#'+ out_type ).val();
	var res = '';
	if( tvals != '' ){
		$( '#all_search' ).attr( 'checked', '' );
		var vals = tvals.split( chapterChar );
		var newval = true;
		for( v in vals ){
			if( vals[v] != '' ){
				if( parseInt( vals[v] ) == id ){
					newval = false;
					if( state == true ){
						res = res + vals[v] + chapterChar;
					} else {
						aprintChapter( id, prefix_class, prefix_id );
					}
				} else {
					res = res + vals[v] + chapterChar;
				}
			}																																																																													
		}
		if( newval == true && state == true ){
			printChapter( id, out_type, prefix_class, prefix_id );
			res = res + id;
		}
	} else {
		if( state == true ){
			res = id;
			printChapter( id, out_type, prefix_class, prefix_id );
		}
	}
	$( '#'+ out_type ).val( res );
}
/* // end for metro, cuisine, entertainment, genres in searchpart */



//$(function(){
//	$('.new_year').click( function(){
//		document.location = '/newyear/';
//	});
//});

/* for search in cinema */

function removeDiaItem( pid, id ){
	var pos = findDiaItem( pid, id );
	//diaitems[ pid ].items[ pos ].hit = 0;
	//alert( pos );
	//initDiashowroom();
	diaitems[ pid ].items[ pos ].hit = 0;
	$( '.diamonitem' + pid + '-' + id ).remove();
	checkDiaitems( pid );	
}

function findDiaItem( pid, id ){
	for( var num in diaitems[pid].items ){
		if( diaitems[pid].items[ num ].id == id ){
			return num;
		}
	}
	return false;
}

/* create in form`s mainarea  */
function addItemDiamon( pid, id ){
	var num = findDiaItem( pid, id );
	var classname = 'diamonitem' + pid + '-' + id;
	if( diaitems[ pid ].items[ num ].hit == 1 ){
	}
	var title = diaitems[ pid ].items[ num ].title;
	var it = '<p class="m_station ' + classname + '"><span>' + title + '</span> <a onclick="removeDiaItem( ' + pid + ', ' + id + ' )" href="javascript://">x</a></p>';
	return it;
}

/* synh text-clones areas */
function cloneDiamonitors( srcId, trgId ){
	$( trgId ).html( $( srcId ).html() );
}

function initDialogs( i ){
	var tmp = '';
	for( var y in diaitems[ i ].items ){
		if( diaitems[ i ].items[ y ].hit == 1 ){
			var pitem = addItemDiamon( i, diaitems[ i ].items[ y ].id );
			tmp = tmp + pitem; 
		}
	}
	return tmp;
}

function initDiashowroom(){
	var tmp = new Array();
	for( var i in diaitems ){
		tmp[ i ] = '';
		for( var y in diaitems[ i ].items ){
			if( diaitems[ i ].items[ y ].hit == 1 ){
				var pitem = addItemDiamon( i, diaitems[ i ].items[ y ].id );
				tmp[ i ] = tmp[ i ] + pitem; 
			}
		}
	}
	return tmp;
}

function addDiactions(){
	$( '.diaitem input' ).unbind( 'change' );
	$( '.diaitem input' ).change( function(){
		var parId = $( this ).parents('.metadiaitems').attr('id');
		pid = parseInt( parId.substr( 3 ) );
		var prefix = diaitems[pid].prefix;
		var it = $( this ).attr('id');
		var id = it.substr( ( parseInt( prefix.length ) + 1 ) );
		var num = findDiaItem( pid, id );
		if( diaitems[ pid ].items[ num ].hit == 1 ){
			diaitems[ pid ].items[ num ].hit = 0;
			$( '.diamonitem' + pid + '-' + id ).remove();
		} else {
			diaitems[ pid ].items[ num ].hit = 1;
			var pitem = addItemDiamon( pid, id );
			$( '#' + parId + ' .afterdiaitems' ).append( pitem );
		}
		cloneDiamonitors( '#' + parId + ' .afterdiaitems', '#showroomdia' + pid );
		checkDiaitems( pid );
	});
	
}

function checkDiaitems( i ){
	var tmp = '';
	for( var y in diaitems[ i ].items ){
		if( diaitems[ i ].items[ y ].hit == 1 ){
			var id = diaitems[ i ].items[ y ].id;
			tmp = tmp + i + '-' + id +  'x'; 
		}
	}
	if( tmp == '' ){
		$( '#diaitems' + i ).parent().children( '.dia_add' ).attr( 'style', 'margin-left:0px;clear:none;' );
		$( '#diaitems' + i ).parent().children( '.dia_show' ).attr( 'style', 'margin-left:0px;display:none;' );
	} else {
		$( '#diaitems' + i ).parent().children( '.dia_add' ).attr( 'style', 'margin-left:82px;clear:both;' );
		$( '#diaitems' + i ).parent().children( '.dia_show' ).attr( 'style', 'margin-left:80px;display:block;' );
	}
	$( '#diaitems' + i ).attr( 'value', tmp );
}


function makeDialog( content, name, title, landmark, dianum  ){
	//var title = 'Тип чего-то';
	if( typeof( name ) == 'undefined' ){
		if( typeof( id ) == 'undefined' ){ id = alertId ; alertId++; }
		var wid = 'confirm15w' + id;
	} else {
		var wid = name;
	}
	position = landmark.offset();
	//title = '<h3 class="dot_title" style="margin-bottom:0;">' + title + '</h3>';
	title = '<div style="padding:10px 0 0 15px !important;" class="popup_link"><div style="height: 20px;"><a onclick="closewin( \'dia' + dianum + '\' );" href="javascript://" class="dot_decore">' + landmark.parents('p').text() + '</a><img alt="" src="/static/img/blue_corner.gif"></div></div><samp></samp>';
	var wndw = '<div id="' + wid + '" class="newdia m15alert popup_wrapp"><div class="inner_wrapp" style="width:300px; height:160px;"><a class="close"></a>' + title + '<div class="content">' + content + '</div></div></div>'; 
	$( '#workarea' ).append( wndw );
	overlaySettings16 = {
		mask: { color: '#000', loadSpeed: 200, opacity: 0.5 },
		top: position.top - 10,
		left: position.left - 15,
		fixed: false,
		closeOnEsc: false
    };
	$( '#' + wid ).overlay( overlaySettings16 );
	$( '#' + wid ).overlay().load();

}
/* end search cinema */


/* check object */
function var_dump( obj, level ){
	if( level == undefined ){
		level = 0;
	}
	var str = '';
	if( typeof obj == 'object' ){
		for( var i in obj ){
			var cur = '';
			if( typeof obj[i] == 'object' ){
				if( level < 3 ){
					//var tmp = var_dump( obj[i], level + 1 );
					//cur = i + ': ' + tmp + '\n';
				}
			} else {
				cur = i + ': ' + obj[i] + '\n';
			}
			cur = i + ': ' + obj[i] + '\n';
			str = str + cur;
		}
	} else {
		str = obj;
	}
	$( '#info' ).text( str );
	//return str;
}
/* end check object */


/* for topsearch */

function sjst_spectrator( obj ){
	curentVal = $( obj ).val();
	//$( '#mon15' ).text( curentVal );
	if( curentVal != sjstCurentVal ){
		sjstCurentVal = curentVal;
		setTimeout( function(){ sjst_spectrator( obj ); }, sjstGoAfter );
	} else {
		//$( '#mon15' ).text( 'stoped' );
		if( curentVal.length > 2 ){
			sjst_query( curentVal );
		} else {
			$( '#sjst15res' ).html( '' );
		}
		sjstSpecrator = false;
	}
}

function sjst_query( data ){
	$( '#sjstajaxicon' ).css( 'display', 'block' );
	//$( '#sjst15res' ).html( '' );
	$.ajax({
		url: '/ajax/sjst/',
		type: 'post',
		data: { data: data },
		success: function (response){
			$( '#sjstajaxicon' ).css( 'display', 'none' );
			$( '#sjst15res' ).html( response );
			sjstSetHover();
		}
	});
}

function sjst_submit(){
	$( '#topsearch' ).submit();//.get[0]
}

function watchSjstRes(){
	$( '.autocomplete .result' ).removeClass( 'sjstSelect' );
	switch( sjstKeydown ){
		case 38: sjstReshit--; break; 
		case 40: sjstReshit++; break; 
	}
	maxpos = $( '.autocomplete .result' ).length;
	if( sjstReshit >= maxpos ){ sjstReshit = 0; }
	else if( sjstReshit < 0 ){ sjstReshit = maxpos; }
	$( '.autocomplete .result' ).each( function( pos ){
		if( sjstReshit == pos ){
			$(this).addClass( 'sjstSelect' );
		}
	});
}

function sjstSetHover(){
	return true;
	$( '.autocomplete .result' ).mouseover( function(e){
		$( '.autocomplete .result' ).removeClass( 'sjstSelect' );
		sjstReshit = -1;
	});
	$( '.autocomplete .result' ).mouseout( function(e){
		$( '.autocomplete .result' ).removeClass( 'sjstSelect' );
		sjstReshit = -1;
	});
}


function microtime ( type ) {
    var now = new Date().getTime() / 1000;
    var s = parseInt(now, 10); 
    return ( type ) ? now : (Math.round((now - s) * 1000) / 1000) + ' ' + s;
}

function tickets_popup( url ){
	var width = 500;
	var height = 400;
	var left = ( screen.width - width ) / 2;
 	var top = ( screen.height - height ) / 2 - 100;
	window.open( url, "myWindow", "status = 0, resizable = 0, directories = 0, location=0, menubar = 0, height = " + height + ", width = " + width + ", top = " + top + ", left = " + left );
}






//###########################################################
//###################   R A T I N G S   #####################
//###########################################################
var rangeContentAreaId = 'find_ranges15';
var rangeContentField = false;
var rangeItemClassName = 'range15';
var rangeItems = new Array();
var rangeItemPrefix = 'rangeitem';
var rangeSteps = 10;
var rangeValueGrowth = 1;// коэфициент(x) при передаче в бд (5*x=>10 3.5*x=>7) = $rangeValueGrowth
var rangeAjaxUrl = '/ajax/myrating/';
var rangeCurValName = 'curval';
var rangeUnsetSrc = '/static/images/obnull.png';
/* need change .ra15 .ras a { width: 6px; } */

function getRangeItems(){
	rangeContentField = document.getElementById( rangeContentAreaId );
	if( rangeContentField == undefined ){
		//alert( 'scriptError::ContentArea not found' );
		return false;
	}
	var divs = rangeContentField.getElementsByTagName( 'div' );
	var cntIt = 0;
	for( var i = 0; i < divs.length; i++ ){
		if( divs[i].className == rangeItemClassName ){
			var id = rangeItemPrefix + cntIt;
			divs[i].setAttribute( 'id', id );
			var ps = divs[i].getElementsByTagName( 'div' );
			var params = ps[0].className.split( ' ' );
			rangeItems[ cntIt ] = { params:{}, sets:{}, goal:0, lasthit: 0 };
			for( p in params ){
				var param = params[p].split( '_' );
				if( param[1] != undefined && param[2] != undefined ){
					switch( param[0] ){
						case 'p': rangeItems[ cntIt ]['params'][ param[1] ] = param[2]; break;
						case 's': rangeItems[ cntIt ]['sets'][ param[1] ] = param[2]; break;
					}
				}
			}
			var curval = 0;
			if( rangeItems[ cntIt ]['sets'][ 'curval' ] ){
				curval = rangeItems[ cntIt ]['sets'][ 'curval' ];
			}
			rangeItems[ cntIt ].goal = curval;
			var res = '';
			if( rangeItems[ cntIt ]['sets'][ 'change' ] && rangeItems[ cntIt ]['sets'][ 'change' ] == 1 ){
				for( var s = 1; s <= rangeSteps; s++ ){
					aId = 'ra15a' + cntIt + 'v' + s;
					res += '<a id=' + aId + ' href="javascript://"></a>';
				}
			}
 
			var lvl01 = document.createElement( 'div' );
			var styleId = 0;
			if( rangeItems[ cntIt ]['sets'][ 'style' ] ){ styleId = rangeItems[ cntIt ]['sets'][ 'style' ]; }
			var self15unset = '';
			if( rangeUnsetSrc != '' ){
				aId = 'ra15a' + cntIt + 'v0';
				// delete rating
				//self15unset = '<span class="ra15unset"><a href="javascript://" id="' + aId + '"><img src="' + rangeUnsetSrc + '"></a></span>';
			}
			$( '#rangeitem' + cntIt ).html( '<div class="ra15 ra15_t' + styleId + '">' + self15unset + '<div class="ras ra15_v' + curval + '" id="' + rangeItemPrefix + cntIt + 's">' + res + '</div></div>' );
			$( '#rangeitem' + cntIt + ' a' ).hover( 
				function(){
					var vars = parseNameNode( $(this).attr('id') );
					if( $( '#rangeitem' + vars.pId + ' .ra15 > div' ).hasClass('nohover') == false ){
						$( '#rangeitem' + vars.pId + ' .ra15 > div' ).attr( 'class', 'ras ra15_v' + ( vars.thisVal * rangeValueGrowth ) );
					}
				},
				function(){
					var vars = parseNameNode( $(this).attr('id') );
					if( $( '#rangeitem' + vars.pId + ' .ra15 > div' ).hasClass('nohover') == false ){
						$( '#rangeitem' + vars.pId + ' .ra15 > div' ).attr( 'class', 'ras ra15_v' + rangeItems[ vars.pId ].goal );
					}
				});
			$( '#rangeitem' + cntIt + ' .ra15unset a' ).click( function(){
					var vars = parseNameNode( $(this).attr('id') );
					rangeItems[ vars.pId ].lasthit = 0; 
					changeRating( vars.pId );
					//alert( vars.pId + ':' + rangeItems[ vars.pId ].lasthit );
				}); 
			$( '#rangeitem' + cntIt + ' .ra15 .ras a' ).click( 
				function(){
					var vars = parseNameNode( $(this).attr('id') );
					var thisGoal = vars.thisVal * rangeValueGrowth;
					if( rangeItems[ vars.pId ].lasthit == thisGoal ){ alert15( "эта оценка уже выставлена" ); return false; }
					rangeItems[ vars.pId ].lasthit = thisGoal; 
					changeRating( vars.pId );
				});
			cntIt++;
		}
	}
	return true;
}

function parseNameNode( str ){
	var res = { thisVal: -1, pId: -1 };  
	var tmp = str.split( 'v' ); 
	res.thisVal = tmp[1];
	tmp = tmp[0].split( 'a' ); 
	res.pId = tmp[2];
	return res;
}

var toGo;

function changeRating( id ){
	$( '#rangeitem' + id + ' .ra15 > div' ).addClass( 'nohover'  );
	//setTimeout( function(){
		changeRatingAjax( id );
		//hoverOn( id );
	//}, 2000 );
}

function getProfileId(){
	var arr = reg.exec( document.location.href );
	var profileId = parseInt( arr[1] );
	return profileId;
}

function changeRatingAjax( id ){
	if( rangeItems[ id ] == undefined ){ return false; }
	if( rangeItems[ id ].goal == rangeItems[ id ].lasthit ){ alert15( "Вы повторяетесь" ); return false; }
	var params = '';
	for( r in rangeItems[ id ].params ){
		params += r + ':' + rangeItems[ id ].params[r] + '|';
	}
	goal = (rangeItems[ id ].lasthit / rangeValueGrowth);
	params += 'hit:' + goal + '|';
	params += 'returnid:' + id + '|';
	var reg = /\/(\d+)\//
	var profileId = getProfileId();
	if( profileId <= 0 ){
		hoverOn( id );
		click15('registration');
		return false;
	}
	params += 'puid:' + profileId + '|';
	if( goal > 0 ){
		toGo = rangeAjaxUrl;
	} else {
		toGo = '/ajax/deletemyrating/';
	}
	//show( toGo );
	$.ajax({
		url: toGo,
		type: 'post',
		dataType: 'json',
		data: { params: params },
		success: rangeAjaxSuccess,
		error: rangeAjaxError
	});
}

function hoverOn( id ){
	$( '#rangeitem' + id + ' .ra15 > div' ).removeClass( 'nohover'  );
	$( '#rangeitem' + id + ' .ra15 > div' ).attr( 'class', 'ras ra15_v' + rangeItems[ id ].goal );
}

function afterRangeAjaxSuccess( response ){}

function rangeAjaxSuccess( response ){
	if( toGo != rangeAjaxUrl ){
		$( '#rangeitem' + response.params.returnid ).parents( '.item' ).hide();
	}
	//show( response.tt );
	response.error = parseInt( response.error );
	if( response.error == 0 ){
		var id = response.params.returnid;
		var goal = response.params.hit * rangeValueGrowth;
		//show( rangeItems[ id ].goal + '=>' + goal );
		rangeItems[ id ].goal = goal;
		//$( '#rangeitem' + id + ' .ra15 > div' ).attr( 'class', 'ras ra15_v' + goal );
		hoverOn( id );
		afterRangeAjaxSuccess( response );
	} else {
		switch( response.error ){
			case 1: alert15( "не пришли данные" ); break;
			case 2: alert15( "данные пришли, да не те" ); break;
			case 3: click15( "registration" ); break; 			//3 - не залогинен
			case 4: alert15( "данных недостаточно" ); break;
			case 5: alert15( "сохранить новое значение не удалось" ); break;
			case 6: alert15( "это не Ваш профиль" ); break;
			//default: show( 'action not defined' ); break;
		}
		//show( response.error );
	}
}
function rangeAjaxError(){
	alert15( 'Ошибка выполнения операции' );
}

function show( text ){
	//if( typeof( text ) == 'object' ){ text = 'object'; } 
	$( '#mon' ).append( text + ' | ' ); 
}

//$( function(){
//	getRangeItems();
//}
//###########################################################
//###############   E N D   R A T I N G S   #################
//###########################################################





function setCookie(c_name,value,exdays){
	var exdate=new Date();
	exdate.setDate(exdate.getDate() + exdays);
	var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
	document.cookie=c_name + "=" + c_value;
}

function getCookie(c_name){
	var i,x,y,ARRcookies=document.cookie.split(";");
	for (i=0;i<ARRcookies.length;i++){
		x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
		y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
		x=x.replace(/^\s+|\s+$/g,"");
		if( x == c_name ){
			return unescape(y);
		}
	}
	return false;
}
