/**
* Project js Library
*/ 
function parseHash(event){

	var result = portal.hash.parse();
	if (result['id'] || result['url']){
		
		// additional parameters for the popup
		var popupParams = {
			'invite-friend' : {'width' : 690, 'callback': function(){$('.b-lightbox-inner').append('<div class="ico-invite-friends"></div>')}},
			'clock' : {'width' : 920},
			'about' : {'width' : 750, 'title_class' : 'about'},
			'login' : {'width' : 570, 'title_class' : 'login', 'close_text' : portal.mess.login_close},
			'all-tours' : {'title_class' : 'h', 'callback': function(){$('.tours-list-up').click(function(){popup.destroy(popup)})}}
		};
		
		// try to find params for current page
		var params = null;
		if (result['url']){
			for (var i in popupParams){
				if (result['url'].indexOf(i) != -1){
					params = popupParams[i];
					break;
				}
			}
		}		
				
		if (typeof popup != 'undefined') 	
			popup.destroy(popup);

		popup = new oPopupLayer({'insert_callback' : function (popup){
			$(popup.getContent()).find('form').addClass('frmAjx');
			portal.ajax.attach_forms(popup);
			$('#l-content .close').click(function(){popup.destroy(popup)}); 
			//$('#l-content form').jNice();
			//reinitScrollPane();
			if (params && typeof params.callback == 'function'){
				params.callback();
			}
			}, 
			'window' : params,
			'doch' : getClientHeight()});
		popup.create();
		portal.ajax.load(null, result, popup.insert);
			
	} else if ('print' in result){
		// adding new element to footer
		$(document.body).append('<a class="b-print-link" href='+document.location.href.replace(/#.+/, '')+'">'+document.location.href.replace(/#.+/, '')+'</a>');
		$(document.body).append($('.copy'));
		portal.print();
	} else if ('comments' in result){	
		// parsing comments page - add some timeout
		setTimeout("window['comments'][0].updPage('"+result['comments']+"')", 500);
	} else {
		var fmid = null;
		for (var i in result){
			if ((fmid = /^oFMailer_(.*)/i.exec(i)) && typeof(oFMailer[fmid[1]]) == 'object'){
				addMailerClick($('.b-send-friend')[0], fmid[1]);
				break;
			} else if (/^faq-(.*)/i.test(i)){
				showFAQ(i);
			}
		}
	}

}



// we need global namespace
oFMailer = {};

function addMailerClick(object, index){
	// additional parameters for the popup
	var params = {'width' : 600};

	if (typeof popup != 'undefined') 	
		popup.destroy(popup);

	popup = new oPopupLayer({
		'insert_callback' : function (popup){
			$(popup.getContent()).find('form').addClass('frmAjx');
			//portal.ajax.attach_forms(popup);

			$('#l-content .close').click(function(){popup.destroy(popup)}); 
			/*if (params && typeof params.callback == 'function'){
				params.callback();
			}*/
		}, 
		'window' : params,
		'doch' : getClientHeight()});
	popup.create();

	params = {'callback' : popup.insert, 'container' : popup};
	if (object.getAttribute('sendhref')){
		params['sendhref'] = object.getAttribute('sendhref');
	}
	
	oFMailer[index].addParams(params);
	oFMailer[index].Load();

}


/**
* reminde user login and password
*/
function remindLogin(){

	// check fields
	if ($_('fldControlWord').value == '' || $_('fldControlWord').value == 'control_word'){

		showError('logError2', 'cword_error'+'<br/>'+'<a href="">write_to_support</a>');		

	} else {
		var req = new JsHttpRequest();
		var ticket = portal.loader.create('logLoader');
			
		req.onreadystatechange = function (){
				
			if (req.readyState == 4){
				if (typeof ticket != "undefined")
					portal.loader.destroy(ticket);
				showHide('login_f');				

				if (req.responseJS.status == 1){					
					showError('logError2', 'email_from_support', true);
				} else {					
					showError('logError2', 'cword_error'+'<br/>'+'<a href="">write_to_support</a>');
				}
			}
		
		}
		// show uploader
		showHide('logLoader');
		showHide('login_f');
		
		req.open(null, '/ajax.php', true);
		req.send({'resource' : 'chckword',
			'cword' : $_('fldControlWord').value
			});
	}

}


/** time boxes and news collapse **/
var tb_state = portal.storage.get('project_tb_state');
function openAll(state){
	
	if (typeof state == 'undefined' || state === null)
		state = tb_state;
		
	if (!state){
		//$('#b-collapse-all span').addClass('active');
		$('.time_items .news_a').each(function(){
			if ($(this).next().css('display') != 'block'){
				openNews(this);
			}
		});
			
		tb_state = true;
		$('#b-collapse-all i').html(portal.mess.collapse.collapse);
	} else {
		$('#b-collapse-all span').removeClass('active');
		$('.time_items .news_a').each(function(){
			if ($(this).next().css('display') == 'block'){
				openNews(this);
			}
		});

		tb_state = false;
		$('#b-collapse-all i').html(portal.mess.collapse.uncollapse);
	}
	
	portal.storage.set('project_tb_state', tb_state);

}


function tabs(mask, ind, cls)
{
  $('.'+cls).each(function(){
    if($(this).attr('id').indexOf(mask+'_') != -1) $(this).removeClass(cls);
  });
  $('#'+mask+'_'+ind).addClass(cls);
  $('.'+mask).each(function(){
    if($(this).attr('id').indexOf(mask+'_cont_') != -1) $(this).css('display','none');
  });
  $('#'+mask+'_cont_'+ind).css('display','block');
}



/** open close comments 
* @param string $state 
*/
function comments_open_close(state){

	// determine state
	if (typeof state == 'undefined'){
		if (!window['comments'][0].getOpenState())
			state = 'open'
		else
			state = 'close';			
	}
	
	switch (state){	
	case 'close':
		$('#close_comm').addClass('up');
		$('.art_com_block').slideUp('fast');
		portal.storage.set('project_comm_close', 1);
		//window['comments'][0].setOpenState(false);
		break;
		
	case 'open':	
	    $('.art_com_block').slideDown('fast');    
	    $('#close_comm').removeClass('up');    
	    portal.storage.set('project_comm_close', 0);
		//window['comments'][0].setOpenState(true);
		break;
	}

}


/** dropdown **/
function showDrop(obj, selector, params) {
	if ($(selector).css('display') == 'none'){
		$(selector).show();
		// position drop after this object
		if (typeof params != 'undefined' && typeof params['reposition'] != 'undefined' && params['reposition']){
			obj = $(obj);
			var pa = obj.offset();
			$(selector).css('top', (pa.top + parseInt(obj.attr('offsetHeight')))+'px').css('left', pa.left+'px');
			$(selector).css('min-width', obj.attr('offsetWidth'));
		}
		if (typeof params != 'undefined' && typeof params.callback != 'undefined' && typeof params.callback.show == 'function'){
			params.callback.show();
		}			
		$('body').append('<div class="bg-clickable"></div>');
		$('.bg-clickable').click(function(){showDrop(obj, selector, params)});
	} else {
		$(selector).hide();
		$('.bg-clickable').remove();
		if (typeof params != 'undefined' && typeof params.callback != 'undefined' && typeof params.callback.hide == 'function'){
			params.callback.hide();
		}			
	}
}


function searchDrop(obj){
	showDrop(obj, '#search-mode-list', {'reposition':1, 'callback' : 
		{'show' : function(){$('.s-field').addClass('s-field-act')}, 
		'hide' : function(){$('.s-field').removeClass('s-field-act')}}});
	var off = $(obj).offset();	
	$('#search-mode-list').css('left', off.left-17);

}

function topDrop(obj, selector){
	showDrop(obj, selector);
	if (typeof $(selector+' strong').attr('binded') == 'undefined'){
		$(selector+' strong').attr('binded', 1);
		$(selector+' strong').click(function(e){showDrop(obj, selector); e.stopPropagation()});
	}
	// checking for width
	if ($(selector+' ul').length > 1){
		var w = 0;
		$(selector+' ul').each(function(){
			w += $(this).attr('offsetWidth');
		});
		$(selector+' div').css('width', w+$(selector+' ul').length*10+'px');
	}
	
}

webt_store = {};
webt_store.buy = function(){

	services-check

}


project = {};

project.oncheck = function(caller, state){

	if ($_('lbl-'+caller+'-ico')){
		$_('lbl-'+caller+'-ico').src = state ? skin_img_dir+'project/ico_done.png' : skin_img_dir+'project/ico_error_done.png';
	}
	if ($_('lbl-'+caller)){
		$('#lbl-'+caller+' .small-red').remove();
		if (!state) $('#lbl-'+caller).append('<p class="small-red">'+portal.mess.forms.fieldfailed+'</p>');
	}
}


/** setup list page **/
project.setupListPage = function() {
	// show/hide
	$('.b-minimize a').bind('click', function() {
		var title = $(this).attr('title');
		$(this).attr('title', $(this).html());
		$(this).html(title);

		var flag = $('.b-filter').css('display') != 'none';
		if(flag) {
			$(this).parent().addClass('b-maximize');
			$('.b-filter').slideUp();
			
			setCookie('b-filter-hide', 1);
		}else{
			$(this).parent().removeClass('b-maximize');
			$('.b-filter').slideDown();

			setCookie('b-filter-hide', 0);
		}
	});
	if(getCookie('b-filter-hide') > 0) {
		$('.b-minimize a').click();
	}

	
	$('.b-cats li').bind('click', function() {
		if($(this).attr('href')) {
			location.href = $(this).attr('href');
			return false;
		}

		var id = $(this).attr('id').replace('filter_cats_','');

		if($(this).hasClass('active')) {
			$(this).removeClass('active');	
			$('input[name="filter[cats]['+id+']"]').val(0);
		}else{
			$(this).addClass('active');
			$('input[name="filter[cats]['+id+']"]').val(1);
		}

		return false;
	});
	
	$('.modes .view a').unbind('click');
	$('.modes .view a').bind('click', function() {
		if($(this).hasClass('list')) {
			$('input[name="filter[view]"]').val(0);
		}else{
			$('input[name="filter[view]"]').val(1);
		}
		
		$('#f-filter').submit();
		return false;
	});

	$('.modes .sorts a').unbind('click');
	$('.modes .sorts a').bind('click', function() {
		var e = $(this);
		if(e.attr('id') == 'sort-price') {
			if(e.hasClass('asc')) {
				$('input[name="filter[sort]"]').val(-2);
			}else{
				$('input[name="filter[sort]"]').val(-1);
			}
		}else{
			if(e.hasClass('asc')) {
				$('input[name="filter[sort]"]').val(1);
			}else{
				$('input[name="filter[sort]"]').val(0);
			}
		}
		
		$('#f-filter').submit();
		return false;
	});	
}

/** setup add page **/
project.step = 1;
project.setupAddPage = function(){
	$('.shower').bind('click', function () {
		var step = $(this).attr('href').replace('#step','');
		if(step <= project.step+1 && $('#step'+step).css('display') == 'none') {
			$('.step').css('display', 'none');

			$('#step'+step).slideDown(400, function() {
				// scroll
				$.scrollTo($('#step'+step+'_h'), 400);
			});

			$('.b-variant').addClass('b-variant-grey');
			$('#step'+step+'_h').removeClass('b-variant-grey');
			
			if(step > project.step) {
				project.step++;
				$('#step'+step+'_h a').show();
			}
		}else if(step <= project.step+1 && $('#step'+step).css('display') != 'none') {
			// scroll
			$.scrollTo($('#step'+step+'_h'), 400);
		}
		
		location.hash = '';
		return false;
	});

	$('.hidder').bind('click', function () {
		var step = $(this).attr('href').replace('#step','');

		if($('#step'+step).css('display') == 'none') {
			$('#step'+(step-1)).slideUp(0, function() {
				$('*[class~="shower"][href="#step'+step+'"]').click();
			});
		}else{
			$('*[class~="shower"][href="#step'+step+'"]').click();
		}

		location.hash = '';
		return false;
	});
	
	$('.editer').bind('click', function () {
		$('#is_preview').val(0);
		$('*[class~="shower"][href="#step2"]').click();

		$('*[class~="shower"][href="#step3"]').show();
		$('#step3').show();
		$('*[class~="shower"][href="#step4"]').show();
		$('#step4').show();

		FieldsController.checkForm();
		location.hash = '';
		return false;
	});
	
	// cats
	//this.bindCats();
	
	// region
	$('*[name="ch_elem[region_pr]"]').bind('change', function() {
		var region_id = $(this).val();
		var city_id = $('*[name="ch_elem[region_id]"]').val();
		
		$.get(
			'/ajax.php?resource=regions',
			{
				parent: region_id,
				level: 2
			},
			function(json) {
				var html = '';
				var data = eval('('+json+')');
				var j = 0;
				
				project.cities = data;

				for(var i in data) {
					if(data[i].title) {
						html += '<option value="'+data[i].real_id+'"'+(data[i].real_id == city_id ? ' selected' : '')+'>'+data[i].title+'</option>';
						
						if(j == 0 || data[i].real_id == city_id) {
							$('#city_id_ttl').html(data[i].title);
						}

						j++;
					}
				}

				$('*[name="ch_elem[region_id]"]').html(html);
			}
		);
		
		$('#region_id_ttl').html(project.regions[region_id].title);
	});
	
	// city
	$('*[name="ch_elem[region_id]"]').bind('change', function() {
		var city_id = $(this).val();

		$('#city_id_ttl').html(project.cities[city_id].title);
	});
	
	// submit
	$('a.submit').bind('click', function() {	
		//$('.editer').click();

		$('#is_preview').val(1);
		$('#f-add-ads input[type="submit"]').click();
		return false;
	});
	
	// buttons
	$('.btn-next').bind('click', function() {
		$(this).children('a').click();
	});

	// del image link
	this.bindDelImages();	
}

project.chCats = {};
project.bindCats = function() {
	$('.b-cat li').unbind('click');
	$('.b-cat li').bind('click', function() {
		$(this).parent().children('li').removeClass('s');
		$(this).addClass('s');
		
		var lvl = parseInt($(this).parent().attr('id').replace('l-cat-',''));
		var id = parseInt($(this).children('a').attr('id').replace('cat-',''));
		if($('#l-cat-'+(lvl+1)).length > 0 && !isNaN(id) && typeof project.cats != 'undefined') {
			childs = project.cats[id].childs;
			types = project.cats[id].types;

			$('.b-cat img').attr('src', '/skin/img/project/ico_not_done.png');				
			$('#cat_id').val(0);
			$('#type_id').val('');
			$('#step2 .b-next').hide();

			for(var i=lvl+1; i<=4; i++) {
				$('#l-cat-'+i+' li').remove();
			}
			
			// add to ch cats, remove lvls
			for(var i in project.chCats) {
				if(i > lvl) {
					project.chCats[i] = '';
				}
			}
			
			project.chCats[lvl] = id;
			project.drawCatsPath();
			
			if(childs.length > 0) {				
				html = '';
				for(var i in childs) {
					var cat = project.cats[childs[i]];
					
					html += '<li'+(i==0 ? ' class="first"' : '')+'>';
					html += '<a href="javascript:void(0)" id="cat-'+cat.real_id+'">'+cat.title+'</a>';
					html += '</li>';
				}
				
				$('#l-cat-'+(lvl+1)).html(html);				
			}else{
				$('#cat_id').val(id);
				
				if(types.length > 0) {
				
					html = '';
					for(var i in types) {
						var type = project.types[types[i]];
						
						html += '<li'+(i==0 ? ' class="first"' : '')+'>';
						html += '<a href="javascript:void(0)" id="type-'+type.real_id+'">'+type.title+'</a>';
						html += '</li>';
					}
										
					$('#l-cat-4').html(html);
				}
			}
		}else if(isNaN(id)) {
			var id = parseInt($(this).children('a').attr('id').replace('type-',''));
			$('.b-cat img').attr('src', '/skin/img/project/ico_done.png');

			$('#type_id').val(id);
			$('#type_id_ttl').html(project.types[id].title);
			$('#step2 .b-next').show();
		}

		project.bindCats();		

		// click if type is 1
		if($('#l-cat-4 li').length == 1 && $('#l-cat-'+(lvl+1)).length > 0 && !isNaN(id) && typeof project.cats != 'undefined') {
			$('#l-cat-4 li:first').click();
		}

		return false;
	});
	
	$('.b-cat li a').unbind('click');
	$('.b-cat li a').bind('click', function() {
		return $(this).parent().click();
	});
};

project.drawCatsPath = function() {
	var html = '<ul class="b-navi">';

	var j = 0;
	for(var i in this.chCats) {
		if(this.chCats[i]) {
			if(j != 0) {
				html += '<li>&raquo;</li>';
			}
			
			html += '<li><a class="navi-'+(j==0 ? 'parent' : 'child')+'" href="'+project.cats[this.chCats[i]].href+'" target="_blank">'+project.cats[this.chCats[i]].title+'</a></li>';
			j++;
		}
	}
	
	html += '</ul>';
	
	$('#cat_id_ttl').html(html);
};

project.addFormImage = function(id, file, resp) {
	if(resp.picture) {
		html =  '<div class="b-photo">';
		html += '	<div class="b-prev-upload">';
		html += '		<div class="b-prev">';
		html += '			<img class="new-prev" src="'+resp.picture[4]+'" />';
		html += '		</div>';
		html += '	</div>';
		html += '	<div class="clr"></div>';
		html += '	<a class="delete" href="javascript:void(0);" id="pic'+resp.real_id+'">'+portal.mess.forms.remove+'</a>'
		html += '</div>';
		
		$('#b-uploaded').append(html);
		project.bindDelImages();
		
		if($('.b-photo').length > 12) {
			$('.b-new-photo').hide();
		}else{
			$('.b-new-photo').show();
		}
	}else if(resp.error) {
		alert(resp.error);
	}
}

project.bindDelImages = function() {
	$('#b-uploaded .delete').unbind('click');
	$('#b-uploaded .delete').bind('click', function() {
		var _c = this;
		$.post(
			'/ajax.php?resource=upload&rem='+$(this).attr('id').replace('pic',''),
			{},
			function() {
				$(_c).parent().remove();

				if($('.b-photo').length > 12) {
					$('.b-new-photo').hide();
				}else{
					$('.b-new-photo').show();
				}
			}
		);
	});
}

project.reposServiceRow = function(){

	// initialize row
	if (!project._init_repos){
		project._init_repos = {'stop' : $('.b-service-row').offset().top, 'pos' : 'abs'};
	}

	if (project._init_repos.pos == 'abs' && $(window).scrollTop() >= project._init_repos.stop){
		// redefine position
		$('.b-service-row').css('position', 'fixed').css('top', 0);
		project._init_repos.pos = 'fix';
	} else if (project._init_repos.pos == 'fix' && $(window).scrollTop() < project._init_repos.stop){
		$('.b-service-row').css('position', 'absolute').css('top', project._init_repos.stop);
		project._init_repos.pos = 'abs';
	}

}

project.gallery = {};
project.setupGallery = function(){
	if(!project.gallery.all) {
		project.gallery.pos = 1;
		project.gallery.all = 0;
		for(var i in this.images) {
			project.gallery.all++;
		}
	}
	
	$('.b-navigat .i-pos').html(project.gallery.pos);
	$('.b-navigat .i-all').html(project.gallery.all);
	
	$('.b-navigat .a-left').unbind('click');
	$('.b-navigat .a-left').bind('click', function() {
		project.gallery.pos--;
		if(project.gallery.pos < 1) {
			project.gallery.pos = project.gallery.all;
		}

		project.setupGallery();
	});

	$('.b-navigat .a-right').unbind('click');
	$('.b-navigat .a-right').bind('click', function() {
		project.gallery.pos++;
		if(project.gallery.pos > project.gallery.all) {
			project.gallery.pos = 1;
		}

		project.setupGallery();
	});
	
	// set photo
	var j = 0;
	for(var i in this.images) {
		j++;
		
		if(j == this.gallery.pos) {
			$('.a-main-photo').attr('href', this.images[i].picture[0]);
			$('.a-main-photo').children('img').attr('src', this.images[i].picture[3]);
		}
	}
	
	//alert(JSON.stringify(project.gallery));
};

/**
* timer for sale
*/
project.setTimer = function(o) {
	Today = new Date();
	Todays_Year = Today.getFullYear() - 2000;
	Todays_Month = Today.getMonth();                  
	
	//Convert both today's date and the target date into miliseconds.                           
	Todays_Date = (new Date(Todays_Year, Todays_Month, Today.getDate(), 
	                     Today.getHours(), Today.getMinutes(), Today.getSeconds())).getTime();                                 
	Target_Date = (new Date(o.year, o.month - 1, o.day, o.hour, o.minute, 00)).getTime();                  
	
	//Find their difference, and convert that into seconds.                  
	Time_Left = Math.round((Target_Date - Todays_Date) / 1000);
	
	if(Time_Left < 0)
	Time_Left = 0;
	
    days = Math.floor(Time_Left / (60 * 60 * 24));
    Time_Left %= (60 * 60 * 24);
    hours = Math.floor(Time_Left / (60 * 60));
    Time_Left %= (60 * 60);
    minutes = Math.floor(Time_Left / 60);
    Time_Left %= 60;
    seconds = Time_Left;

    $('#'+o.id+' .t-days').html(days);
    $('#'+o.id+' .t-hours').html(hours);
    $('#'+o.id+' .t-minutes').html(minutes);
    $('#'+o.id+' .t-seconds').html(seconds);

	setTimeout(function() {
		project.setTimer(o);
	}, 1000);
}


/** 
* order block
*/
project.order = {}
project.order.cancel = function(order){

	if (confirm(portal.mess.order.cancel)){
		
		document.location.href = document.location.href+'cancel/'+parseInt(order)+'/';
	
	}

}


/**
* on DOM ready
*/
project.pseudoArr = {};
project.pseudoReady = function(){

	// execute pseudo functions
	if (typeof pseudoArr != 'undefined' && pseudoArr != null)
		for(var i in pseudoArr) {
			pseudoArr[i]();
		}

	// main manage lists
	if($('.manage').length > 0) {
		$('.manage .l').bind('click', function() {
			var el = $('.b-next-tours .manage-list-act').prev();
			if(!el[0]) {
				el = $('.b-next-tours .manage-list:last');
			}
			
			$('.b-next-tours .manage-list').removeClass('manage-list-act');
			$(el).addClass('manage-list-act');
		});
		$('.manage .r').bind('click', function() {
			var el = $('.b-next-tours .manage-list-act').next();
			if(!el[0]) {
				el = $('.b-next-tours .manage-list:first');
			}
			
			$('.b-next-tours .manage-list').removeClass('manage-list-act');
			$(el).addClass('manage-list-act');
		});
	}
	
	// langs block
	if ($('.b-langs').length > 0){
		$('.b-langs span').click(function(e){
			if ($('#langs-popup').css('display') == 'block'){
				$('#langs-popup').css('display', 'none');
				$(this).removeClass('opened');
			} else {
				$('#langs-popup').appendTo(document.body).css('left', $(this).offset().left+$(this).css('offsetWidth')-$('#langs-popup').css('offsetWidth')+'px').css('top', $(this).offset().top+$(this).css('offsetHeight')+13+'px').css('display', 'block');
				$(this).addClass('opened');
			}
		});
	}

	// tabs block
	if($('.manage-tabs').length > 0) {
		$('.manage-tabs li').bind('click', function() {
			if($(this).attr('href')) {
				location.href = $(this).attr('href');
			} else {
		
				var id = $(this).attr('id').replace('tab-','');
	
				$('.manage-tabs li').removeClass('act');
				$(this).addClass('act');
	
				$('.manage-cnts div.container').removeClass('container-act');
				$('#cnt-'+id).addClass('container-act');
			}
		});
	}
	
	// mini tabs
	if($('#mini-tabs').length > 0) {
		$('#mini-tabs li').bind('click', function() {
			if($(this).attr('href')) {
				location.href = $(this).attr('href');
			} else {
		
				var id = $(this).attr('id').replace('mini-tab-','');
	
				$('#mini-tabs li').removeClass('active');
				$(this).addClass('active');
	
				$('.mini-tab-in').css('display', 'none');
				$('#mini-tab-in-'+id).css('display', 'block');
				if ($_('kind_id')){
					$_('kind_id').value = id;
				}
			}	
		});
	}
	
	

	// reports
	if($(".b-rep-all").length > 0){	
		var cnt = $('.b-rep-new').length > 0 ? 3 : 4;
		var mns = $('.b-rep-new').length > 0 ? 0 : 10;
		
		if($(".b-rep-all .items li").length > cnt) {
			$(".b-rep-all .items").jCarouselLite({
				btnNext: ".b-rep-navi a:last",
				btnPrev: ".b-rep-navi a:first",
				visible: cnt,
				pls: 40,
				mns: mns,
				circular: true
			});
		}
	}

	if($(".b-images-gallery").length > 0){	
		if($(".b-images-gallery .items li").length > 3) {
			$(".b-images-gallery .items").jCarouselLite({
				btnNext: ".l-photo-navi a:last",
				btnPrev: ".l-photo-navi a:first",
				visible: 3,
				pls: 138,
				wdt: 144,
				circular: true
			});
		}
		
		$(".b-images-gallery .items li a").live('click', function() {
			var src = $(this).attr('href');
			$('.img-gallery .items li').removeClass('act');
			$('.img-gallery .items li a[href="'+src+'"]').parent().addClass('act');
			
			$('.rep-photo-main').attr('src', src+'?1');
			return false;
		});
	}
	
	// mini gallery on tour page
	if ($('.b-gallery-preview').length > 0){
		$('.b-gallery-preview ul li').click(function(){
			$('.b-gallery-preview ul li').removeClass('act');
			$(this).addClass('act');
			$('#gallery-preview-container').attr('src', $_('image-'+this.getAttribute('id').replace('p-', '')).getAttribute('src1'));
		});
	
	}

	// full gallery for tour
	if ($_('big-gallery-container')){
	
		$('.b-gal-viewer').click(function(){
		
			if (typeof popup != 'undefined') 	
				popup.destroy(popup);

			var params = {'width' : parseInt($_('big-gallery-container').style.width)+80};
			var lngth = $(".img-gallery li").length;

			popup = new oPopupLayer({'window': params});
			popup.create();
			popup.insert(null, {'title' : portal.mess.multimedia.gallery, 'content' : $_('big-gallery-container').innerHTML}, null);

			$('#b-lightbox-outer').append($('#big-gal-social').html());
			
			$(".img-gallery .items li a").live('click', function() {
				var src = $(this).attr('href');
				$('.img-gallery .items li').removeClass('act');
				$('.img-gallery .items li a[href="'+src+'"]').parent().addClass('act');
				
				$('.img-gallery .rep-photo-main').attr('src', src+'?'+((new Date()).getTime()));
				return false;
			});
			
			if (lngth > 3){
				$(".img-gallery .items").jCarouselLite({
					btnNext: ".b-navi-r",
					btnPrev: ".b-navi-l",
					visible: 4,
					pls: 138,
					wdt: 144,
					circular: true
				});
			}
			setTimeout(function(){popup._correctPos(popup)}, 200);
			
		});
		
	}
	
	// full video for tour
	if ($_('big-video-container')){
	
		$('.b-vid-viewer').click(function(){
			if (typeof popup != 'undefined') 	
				popup.destroy(popup);
		
			var params = {'width' : parseInt($_('big-video-container').style.width)+86};
			var lngth = $(".b-video-gallery li").length;

			popup = new oPopupLayer({'window': params});
			popup.create();
			popup.insert(null, {'title' : portal.mess.multimedia.video, 'content' : $_('big-video-container').innerHTML}, null);

			$('#b-lightbox-outer').append($('#big-gal-social').html());

			
			$(".b-video-gallery .items li a").live('click', function() {
				$('.b-video-gallery .items li').removeClass('act');
				$(this).parent().addClass('act');
				
				$('.rep-video-main .item').removeClass('act');
				$('.rep-video-main #v-'+$(this).parent().attr('id').replace('video-', '')).addClass('act');
				return false;
			});
			if (lngth > 3){
				$(".b-video-gallery .items").jCarouselLite({
					btnNext: ".b-navi-r",
					btnPrev: ".b-navi-l",
					visible: 4,
					pls: 138,
					wdt: 144,
					circular: true
				});
			}
			setTimeout(function(){popup._correctPos(popup)}, 200);
			
		});
		
	}	
	
	

	// connecting to the input fields events
	var fields_defaults = {'#search-q' : '',
		'#full_search_q' : '',
		'#subscribe_email' : '',
		'#qa_fio' : '',
		'#qa_email' : '',
		'#s-keys' : '',
		'#s-keys2' : '',
		'.b-faq-form #title': '',
		'.b-faq-form #email': '',
		'.b-faq-form #post': '',		
		'.b-faq-form #descr': ''
		};
	
	for (var i in fields_defaults){
		fields_defaults[i] = $(i).attr('value');
		$(i).attr('reg', i);
		$(i).bind('focus', function(){
			if ($(this).attr('value') == fields_defaults[$(this).attr('reg')])
				$(this).attr('value', '');
			});
		$(i).bind('blur', function(){
			if ($(this).attr('value') == '')
				$(this).attr('value', fields_defaults[$(this).attr('reg')]);
			});
	}
	
	var popup;
	
	
	/** move text to the bottom fields **/
	if ($('#b-promo-text').length > 0 && $('#b-promo-src').length > 0){
		$('#b-promo-text').html($('#b-promo-src').html());
		$('#b-promo-src').remove();
	}
	
	
	/** work with categories lists **/
	if ($('.b-cat-container .more').length > 0){
	
		// hide all unnecessary
		$('.b-cat-container .more').each(function(){
			var id = $(this).attr('id').replace('more-', '');
			var comp_height = 0;
			$('#sub-'+id).children().each(function(){
				comp_height += parseInt($(this).attr('offsetHeight'));
			})
			if (comp_height < parseInt($('#sub-'+id).css('height'))){
				$(this).css('display', 'none');
			}
		});
	
		var cat_opened = {};
		$('.b-cat-container .more').click(function(){
			var id = $(this).attr('id').replace('more-', '');
			if (typeof cat_opened[id] && cat_opened[id]){
				// if opened  - close
				$('#sub-'+id).css('height', '');
				cat_opened[id] = false;
				$(this).removeClass('more-act');
			} else {
				$('#sub-'+id).css('height', 'auto');
				cat_opened[id] = true;
				$(this).addClass('more-act');
			}
		});
	}
	
	$('#search-mode-list li').each(function(){
		$(this).click(function(){
			$('#search-mode ins').html($(this).html());
			$('#b-search-mode').val($(this).attr('class'));
			showDrop(null, '#search-mode-list');
			$('.s-field').removeClass('s-field-act');
		});
	});

	$('.search-ex').click(function(){
		$('#search-q').val($(this).html());
	});
	
	

	/** comments **/
	/*$('#close_comm, #close_title').click(function(){
		comments_open_close();
	});
	
	// getting initial comments state 
	if (portal.storage.get('project_comm_close') && portal.storage.get('project_comm_close') == 1){
		comments_open_close('close');
	}*/
	if ($('.b-comm-add').length > 0){
		$('.b-comm-add').click(function(e){
			$.scrollTo('#add_comment_anchor', 300);
		});
	}
	

			
	// connect standart gallery
    /*if ($_('galleria')){
		Galleria.loadTheme('/js/jquery/galleria/src/themes/classic/galleria.classic.js');   
		$('#galleria').galleria({
			image_crop: 'height',
			height:547
		});
	}*/  

	
	/** auth **/
	$('.ajx, #more_enter, #more_reg, .b-login-link, .b-lost-password, .ic6').live('click', function (event){

		event.returnValue = false;
		event.preventDefault ? event.preventDefault() : '';
		
		if (typeof $(this).attr('p-href') == 'undefined')
			$(this).attr('p-href', $(this).attr('href')).attr('href', 'javascript:void(0);');
		
		portal.hash.set('#url='+$(this).attr('p-href'));
		parseHash(event);
	});


	$('.buy').live('click', function (event){

		event.returnValue = false;
		event.preventDefault ? event.preventDefault() : '';
		
		if (typeof $(this).attr('p-href') == 'undefined')
			$(this).attr('p-href', $(this).attr('href')).attr('href', 'javascript:void(0);');
		
		// collect all checkboxes
		var checks = [], check_str = '';
		if ($('.services-check').length > 0){
			$('.services-check').each(function(){
				if (this.checked){
					checks[checks.length] = $(this).attr('id').replace('id-', '');
				}
			});
			
			check_str = 'ids/'+(checks.length > 0 ? checks.join(',') : 'none') +'/';
			//portal.debug.dump(check_str);
		}
				
		portal.hash.set('#url='+$(this).attr('p-href')+check_str);
		parseHash(event);
		
	});
	
	$('#date_off').live('change', function (event){
		$_('total-sum').innerHTML = parseInt(this.options[this.selectedIndex].value)*parseFloat($_('goods_price').value);
	});


	/** order form **/
	/*if ($_('tourists-adult') || $_('tourists-children') || $_('tourists-sucking')){
	
		$('#tourists-adult, #tourists-children, #tourists-sucking'){
			
			var req = new JsHttpRequest();
			var ticket = portal.loader.create('order-tourists-count', {'mode' : 'float'});
				
			req.onreadystatechange = function (){
					
				if (req.readyState == 4){
					if (typeof ticket != "undefined")
						portal.loader.destroy(ticket);

					if (req.responseJS.status == 200){					
						
					}
				}
			
			}

			req.open(null, '/ajax.php', true);
			req.send({'resource' : 'order_calc',
				'data' : {
					'adult' : $_('tourists-adult').selectedIndex ? $_('tourists-adult').options[$_('tourists-adult').selectedIndex].value : 0,
					'children' : $_('tourists-children').selectedIndex ? $_('tourists-children').options[$_('tourists-children').selectedIndex].value : 0,
					'sucking' : $_('tourists-sucking').selectedIndex ? $_('tourists-sucking').options[$_('tourists-sucking').selectedIndex].value : 0
				}
				});

		
		}
	
	}*/
	
	// connect events to subscribe block
	$('#f-subscribe').live('submit', function(e){
	
		event.returnValue = false;
		event.preventDefault ? event.preventDefault() : '';
		
		if (typeof $(this).attr('p-href') == 'undefined')
			$(this).attr('p-href', $(this).attr('action')).attr('action', 'javascript:void(0);');

		var ticket = portal.loader.create('b-subscribe', {'mode' : 'float'});

		var subscribe_insert = function (e, data, callback){
			if (ticket) portal.loader.destroy(ticket);
			if (typeof data != 'undefined'){
				$_('subscribe-container').style.display = 'block';
				$_('subscribe-container').innerHTML = data.content;
			}
			portal.hash.clear();		
		}		
		
		//portal.hash.set('#'+$(this).attr('p-href')+'ajx/1/email/'+$(this).find('.sub-email').val()+'/');
		portal.ajax.load(null, {'url' : $(this).attr('p-href')+'ajx/1/email/'+$(this).find('.sub-email').val()+'/'}, subscribe_insert);

		/*if ($(this).find('.sub-email').val() == '' || !regulars['email'].test($(this).find('.sub-email').val())){
			alert(portal.mess.bad_email);
			e.preventDefault();
			return false;
		}*/
	});			
	

	// adding listener to the search form
	if ($('#b-search-form').length > 0){
		$('#b-search-form').bind('submit', function(e){
			e.returnValue = true;
			//e.preventDefault ? e.preventDefault() : '';
			$('#b-search-form').attr('action', '/lang/'+lang_nick+'/search/q/'+$(this).find("input[name='ch_elem[q]']").val());
			return e.returnValue;
		})
	}
	
	if ($('#b-mini-search-form').length > 0){
		
		// connect autocompleter
		var ac_apply_callback = function(ac, params) {
			document.location.href = '/lang/'+lang_nick+'/adverts/query/'+$('#search-q').val()+'/cat/'+($('#b-search-mode').val() != '' ? $('#b-search-mode').val() : 'all')+'/type/fast/';
		}
		
		var autocomplete = new objAutocompleter({
			"objid" : "search-q", 
			"loader_show" : false,
			'checkTout' : 200,
			'minchars' : 3,
			'nowait' : true,
			"ajxhref" : "/ajax.php?resource=ac", "callbacks" : {"apply" : ac_apply_callback}
			});

		$('#b-mini-search-form').bind('submit', function(e){
			e.returnValue = false;
			e.preventDefault ? e.preventDefault() : '';
			ac_apply_callback(null, null);
			return e.returnValue;
		})
	}
	
	if ($('.b-search-field').length > 0){
	
		$('.b-search-field span').click(function(){
			$('#search-q').val('');
			$('#search-q')[0].focus();
			});	
	
	}
	
	

	// connect banner hider
	// connect maps api
	if ($('#b-map').length > 0 && $('#b-contact-image').length == 0){
		/*$('#b-map').css('width', '563px');
		$('#b-map').css('height', '330px');
		var map = new YMaps.Map(YMaps.jQuery("#b-map")[0]);
		map.setCenter(new YMaps.GeoPoint(30.501137, 50.448933), 21);
		//map.setType(YMaps.MapType.HYBRID);
		
		// create maps placement
		var placemark = new YMaps.Placemark(new YMaps.GeoPoint(30.501137, 50.448933), {style: "default#whitePoint"});
		placemark.name = '';
		placemark.description = $('#b-map .b-map-title').html();
		placemark.setIconContent($('#b-map .b-map-title').html());
		
		map.addOverlay(placemark); 
		
		map.enableRuler();
		map.addControl(new YMaps.Zoom());
        map.addControl(new YMaps.ToolBar());
        map.addControl(new YMaps.TypeControl());

		map.update();*/
	}
	
	
	/** append social services widget **/
	if ($('.b-social-services').length > 0){
	
		$(document.body).append($('.b-social-popup'));
		
		$('.b-social-services').click(function(){
			//$('.bg-dark').remove();
			$('.b-social-popup').css('left', $(this).offset()['left']+'px').css('top', $(this).offset()['top']+$(this).height()+'px').css('display', 'block');
			//return false;
		});
		
		$('.b-social-popup .close').click(function(){
			$('.b-social-popup').css('display', 'none');
			portal.hash.clear();
		});
	
	}
	
	// connect send to friend links
	if ($('.b-send-friend').length > 0){
		function f_click(el, index){
			$(el).click(function(e){addMailerClick(el, index)});
		}
		
		$('.b-send-friend').each(function (index, el){
			var i = index + 1;
			oFMailer[i] = new FMailer({'elem' : 'oFMailer'+i, 'add_id' : i, 'ajx_href' : document.location.pathname+'smphr/1/fmailer/yes/'});
			f_click(el, i);
		});			
	}
		
	// update current date 
	if ($('.g-current-time').length > 0){
		var dt = new Date();
	    var d = (dt.getDate()).toString();
	    if (d.length < 2) d = "0"+d;

		$('.g-current-time')[0].innerHTML = d +' '+ portal.mess.monthes[dt.getMonth()] +' '+ dt.getFullYear();
	}
		
	// connect print links
	if ($('.b-ico-print').length > 0){
		$('.b-ico-print').click(function (){portal.print()});
	}
		
	// checking for input hash
	if (document.location.hash){
		parseHash();	
	} 
		
};


/** document ready function **/
portal.ready(function(){

	if ($('.b-service-row').length > 0){
		window.onscroll = project.reposServiceRow;
	}

	portal.banners.setup();	

	// connect gallery
	if(typeof IMAGES == 'object') {
		project.images = IMAGES;
		project.setupGallery();
		
		$('.a-main-photo').lightBox();
		$('.b-photos .b-photo-prev a').lightBox();
		
		// setup photos links
		$('.b-photos .b-prev a').bind('click', function() {
			var e = $(this);

			$('.b-photos .b-photo-prev a').attr('href', e.attr('f-href'));
			$('.b-photos .b-photo-prev a img').attr('src', e.attr('href'));
			
			$('.b-photos .b-prev').removeClass('active');
			e.parent().addClass('active');
			
			return false;
		});
	}else{
		$('.a-main-photo').bind('click', function() {
			return false;
		});
	}
	
});
