$(document).ready(function() {

	/* Обновление капчи */
	$('img.kapcha').each(function(){
		var src = $(this).attr('src');
		if (src.indexOf('?') < 0)
			src += '?r=';
		else
			src += '&r=';
		$(this).attr('rel', src);
		$(this).css('cursor', 'pointer').bind('click', function(){
			$(this).attr('src', $(this).attr('rel')+Math.random());
		});
	});

	/* select */
	$('.select, .select2').each(function() {
		$(this).find('select').sSelect();
	});
	/* /select */

	/* input */
	if ($('input[type=text]').size() > 0) {
		$('input[type=text]').live('focus', function() {
			if ($(this).attr('rel')) {
				if($(this).val() == $(this).attr('rel')) {
					$(this).val('');
					$(this).addClass('focused');
				}
			}
		});
		$('input[type=text]').live('blur', function() {
			if ($(this).attr('rel')) {
				if($(this).val() == '') {
					$(this).val($(this).attr('rel'));
					$(this).removeClass('focused');
				}
				else {
					$(this).addClass('focused');
				}
			}
		});
	}
	/* /input */

	/* catalog table  */
	if ($('.catalog_list .catalog_table').size() > 0) {
		$('.catalog_list .catalog_table tr').bind('mouseover', function() { $(this).addClass('tr_h'); });
		$('.catalog_list .catalog_table tr').bind('mouseout', function() { $(this).removeClass('tr_h'); });
	}
	/* /catalog table */
	
	/* vitrina */
	if ($('.index .vitrina').size() > 0) {
		images.init('vitrina', 'info');
	}
	/* /vitrina */

	/* page images  */
	if ($('.img_b .img').size() > 1) {
		images.init('img_b', 'img');
	}
	/* /page images */

	/* popups */
	if ($('.popups_in').size() > 0) {
		popups_place();
	}
	if ($('.popup_img').size() > 0) {
		popup_img.init();
	}

	if ($('.popup_txt').size() > 0) {
		popup_txt.init();
	}
	/* /popups */
	
	/* print */
	$('.print').bind('click',function() {
		if ($(this).parents('.w_block').find('.address').size() == 0)
			window.print();
	});

	$('.address .print').bind('click',function() {
		var ind = $('.address .print').index($(this));

		var map = $('.address .map_block').eq(ind);

		var txt = '<html><link href="css/all.css" rel="stylesheet" type="text/css" media="all" /><link href="css/print.css" rel="stylesheet" type="text/css" media="print" /><body>' + 
		'<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=true&amp;key=ABQIAAAApCH4MEkQkbAeXKMXiL9JRhTQvcA6Bgsd8g4lT4DIuQX1h__GHxSl-95bosenFQF4rtVY-nE9tZHnuQ" type="text/javascript"></script>' + 
		'<script src="/js/jquery.js" type="text/javascript"></script>' + 
		'<script src="/js/script.js" type="text/javascript"></script>' + 
		'<script type="text/javascript">$(document).ready(function() {showGMap(' + ind + ');});</script>' + 
		'<table cellpadding="0" cellspacing="10" width="100%"><tr><td><h2>' + $('.address_city').eq(ind).html() + '</h2><table cellpadding="0" cellspacing="0" width="100%">' + $('.address_info').eq(ind).html() + '</table><div class="map_block" style="display: block;">' + $('.map_block').eq(ind).html() + '</div><div class="line_link2"><div class="line_link2_in"><a href="javascript:window.print();window.close();" class="print">распечатать</a></td></tr></table></div></div></body></html>';
		
		var prwin = window.open('', 'printWin', 'width=720,height=720,toolbar=no,Scrollbars=1');
		prwin.window.focus();
		prwin.document.open();
		prwin.document.write(txt);
		prwin.document.close();
	});

	/* /print */
	
	/* toggle map */
	$('.address .toggle_map').bind('click', function() { toggle_map($(this)); });
	/* /toggle map */

	/* toggle faq */
	$('.faq h2 a').bind('click', function() { toggle_faq($(this)); });
	/* /toggle faq */

	/* toggle category */
	$('.toggle_cat').bind('click', function() { toggle_category($(this)); });
	/* /toggle category */
});

var images = {
	block: '',
	img: '',
	is_circles: false,
	circles: '',
	num: 0,
	cur: 0,
	timer: '',
	speed: '',
	init: function(block_name, img_name) {
		images.block = $('.' + block_name);
		images.img = images.block.find('.' + img_name);
		images.num = images.img.size();
		
		if (images.block.find('.circles').size() > 0)
			images.is_circles = true;
		if (images.is_circles) {
			for (var i=0; i<images.num; i++) {
				images.block.find('.circles').append('<span><i class="iePNG"></i><b class="iePNG"></b></span>');
			}
			images.circles = images.block.find('.circles span');
			images.circles.eq(images.cur).addClass('sel');
		}
		
		if (images.num > 1) {
			images.block.find('.prev, .next').show();
			images.block.find('.prev').bind('click', function(){ images.img_prev(); });
			images.block.find('.next').bind('click', function(){ images.img_next(); });
		}
		
		if (block_name == 'vitrina') {
			images.speed = 5000;
			images.timer = setInterval(function(){ images.img_next(); }, images.speed);
		}
	},
	img_prev: function() {
		var ind;
		
		if (images.cur > 0)
			ind = images.cur - 1;
		else
			ind = images.num - 1;
		
		images.img_show(ind);
	},
	img_next: function() {
		var ind;
		
		if (images.cur < images.num - 1)
			ind = images.cur*1 + 1;
		else
			ind = 0;
		
		images.img_show(ind);
	},
	
	img_show: function(ind) {
		images.img.hide();
		images.img.eq(ind).show();
		
		var img = images.img.eq(ind).find('img');
		if (img.height() != 'undefined' && img.height() > 0) {
			if (img.height() > 500) img.height(500);
		}
		img.load(function() { if ($(this).height() > 500) $(this).height(500); });

		if (images.is_circles) {
			images.circles.removeClass('sel');
			images.circles.eq(ind).addClass('sel');
		}
		
		images.cur = ind;
	}
};

function popups_place() {
		var pop_in = $('.popups_in');
		$('body').append('<div class="popups_out">' + pop_in.html() + '</div>');
		pop_in.remove();
}

var popup_img = {
	init: function() {
		$('.tovar_img a').bind('click', function() { popup_img.pop_show($(this), 'tovar'); });
		$('.gallery_fotos a.img_s').bind('click', function() { popup_img.pop_show($(this), 'gallery'); });
		$('.popup_bg, .popup_img .close').bind('click', function() { popup_img.pop_hide(); });
	},
	pop_hide: function() {
		$('.popup_img').hide();
		$('.popup_bg').hide();
		$('.banner').show();
	},
	pop_show: function(lnk, name) {
		$('.banner').hide();
		$('.popup_bg').height($(document).height()).show();
		$('.popup_img').css('top', $(window).height()/2 - 313 + $(document).scrollTop() + 'px').show();

		if (!$('.popup_img').hasClass('inited')) {
			if (name == 'tovar') {
				var num = imgs.length;
				for (var i=0; i<num; i++) {
					$('.popup_img').append('<div class="img"><table><tr><td><img src="' + imgs[i] + '" /></td></tr></table></div>');
				}
			}
			else if (name == 'gallery') {
				$('.gallery_fotos a.img_s').each(function() {
					$('.popup_img').append('<div class="img"><table><tr><td><img src="' + $(this).attr('rel') + '" /></td></tr></table></div>');
				});
				var ind = $('.gallery_fotos a.img_s').index(lnk);
			}

			images.init('popup_img', 'img');
			
			$('.popup_img').addClass('inited');
		}
		if (name == 'tovar') {
			images.img_show(0);
		}
		else if (name == 'gallery') {
			var ind = $('.gallery_fotos a.img_s').index(lnk);
			images.img_show(ind);
		}
	}
};

var popup_txt = {
	init: function() {
		$('.send').bind('click', function() { popup_txt.pop_show('popup_send'); });
		$('.popup_bg, .popup_txt .close').bind('click', function() { popup_txt.pop_hide(); });
	},
	pop_hide: function() {
		$('.popup_txt').hide();
		$('.popup_bg').hide();
		$('.popup_txt .popup_panel').hide();
		$('.popup_txt .popup_load').show();
	
		$('.popup_txt .info_title').html('');
		$('.popup_txt .info_url').html('');
		$('.popup_txt .info_logo').html('');
		$('.popup_txt .info_content').html('');
		$('.banner').show();
	},
	pop_show: function(id) {
		$('.banner').hide();
		$('.popup_bg').height($(document).height()).show();
		$('.popup_txt#' + id).css('top', $(window).height()/2 - 272 + $(document).scrollTop() + 'px').show();
	}
};

var g_maps = Array();
var g_icons = Array();

function toggle_map(lnk) {
	var ind = $('.address .toggle_map').index(lnk);
	var map = $('.address .map_block').eq(ind);
	
	if (map.css('display') == 'none') {
		map.show();
		lnk.html('свернуть схему проезда');
		showGMap(ind);
	}
	else {
		map.hide();
		lnk.html('развернуть схему проезда');
	}
}

function showGMap(ind) {
	var coords = $('#gmap'+ind).attr('coords');
	if (!coords)
		return;
	var carr = coords.split('|');
	if (carr.length != 4) {
		return;
	}

    if (!g_icons[ind]) {
		g_icons[ind] = new GIcon();
		g_icons[ind].image = "/img/map_marker.png";
		g_icons[ind].iconSize = new GSize(81, 79); 
		g_icons[ind].iconAnchor = new GPoint(21, 74);
	}
	if (!g_maps[ind]) {
		if (GBrowserIsCompatible()) {
		    //lat = carr[1]; lon = carr[2]; zoom = parseInt(carr[3]);
			var point = new GLatLng(carr[1], carr[2]);
			g_maps[ind] = new GMap2(document.getElementById("gmap"+ind));
			g_maps[ind].setUIToDefault();
			g_maps[ind].setCenter(point, parseInt(carr[3]));
			var g_mark = new GMarker(point, g_icons[ind]);
			g_maps[ind].addOverlay(g_mark);
		}
	}
}

function toggle_faq(lnk) {
	var ind = $('.faq h2 a').index(lnk);
	var block = $('.faq .faq_block').eq(ind);
	
	if (block.css('display') == 'none') {
		block.show();
		lnk.addClass('sel');
	}
	else {
		block.hide();
		lnk.removeClass('sel');
	}
}

function toggle_category(lnk) {
	var ind = $('.toggle_cat').index(lnk);
	var block = $('.cat_add').eq(ind);
	
	if (block.css('display') == 'none') {
		block.show();
		lnk.html('меньше категорий');
	}
	else {
		block.hide();
		lnk.html('ещё категории');
	}
}

function show_ajax_popup(type, id) {
	popup_txt.pop_show('popup_info');
	
	// вызываем ajax от type и id
	$.ajax({
	  type: 'GET',
	  url: '/info_ajax.php',
	  data: 'what='+type+"&id="+id,
	  success: onAjaxPopupLoad,
	  error: onAjaxPopupError,
	  dataType: 'json'
	});
	
}

function onAjaxPopupError(jqXHR, textStatus, errorThrown) {
	//alert("Error happened.");
	popup_txt.pop_hide();
}

function onAjaxPopupLoad(data, textStatus, jqXHR) {
	/*
	data = { // заполняется ajax-ом
		'title': 'Norco',
		'url': 'www.norcobikes.com',
		'logo': 'img/brand1.png',
		'content': '<p>«В горах и долинах, в городах и на проселочных дорогах – везде есть места, в которые можно добраться только на велосипеде. Соревнования, любительские покатушки, или просто неспешная велопрогулка по парку – каждый день мы ставим себе новые цели и мечтаем о большем. Мы находим новых друзей, получаем новые впечатления, видим новые горизонты. Наши велосипеды делят с нами все удачи и невзгоды, все подъемы и спуски, прямые и повороты, через которые проходит наша жизнь. У нас есть только один путь для того, чтобы достигнуть тех целей, к которым мы стремимся, и этот путь немыслим без велосипеда. Именно за это, мы и любим наших двухколесных друзей.» Сотрудники компании Norco.</p><p>«В горах и долинах, в городах и на проселочных дорогах – везде есть места, в которые можно добраться только на велосипеде. Соревнования, любительские покатушки, или просто неспешная велопрогулка по парку – каждый день мы ставим себе новые цели и мечтаем о большем. Мы находим новых друзей, получаем новые впечатления, видим новые горизонты. Наши велосипеды делят с нами все удачи и невзгоды, все подъемы и спуски, прямые и повороты, через которые проходит наша жизнь. У нас есть только один путь для того, чтобы достигнуть тех целей, к которым мы стремимся, и этот путь немыслим без велосипеда. Именно за это, мы и любим наших двухколесных друзей.» Сотрудники компании Norco.</p><p>«В горах и долинах, в городах и на проселочных дорогах – везде есть места, в которые можно добраться только на велосипеде. Соревнования, любительские покатушки, или просто неспешная велопрогулка по парку – каждый день мы ставим себе новые цели и мечтаем о большем. Мы находим новых друзей, получаем новые впечатления, видим новые горизонты. Наши велосипеды делят с нами все удачи и невзгоды, все подъемы и спуски, прямые и повороты, через которые проходит наша жизнь. У нас есть только один путь для того, чтобы достигнуть тех целей, к которым мы стремимся, и этот путь немыслим без велосипеда. Именно за это, мы и любим наших двухколесных друзей.» Сотрудники компании Norco.</p><p>«В горах и долинах, в городах и на проселочных дорогах – везде есть места, в которые можно добраться только на велосипеде. Соревнования, любительские покатушки, или просто неспешная велопрогулка по парку – каждый день мы ставим себе новые цели и мечтаем о большем. Мы находим новых друзей, получаем новые впечатления, видим новые горизонты. Наши велосипеды делят с нами все удачи и невзгоды, все подъемы и спуски, прямые и повороты, через которые проходит наша жизнь. У нас есть только один путь для того, чтобы достигнуть тех целей, к которым мы стремимся, и этот путь немыслим без велосипеда. Именно за это, мы и любим наших двухколесных друзей.» Сотрудники компании Norco.</p>'
	};
	*/
	set_ajax_info(data); // вызывается по окончании загрузки данных
}

function set_ajax_info(data) {
	var popup = $('#popup_info');
	
	if (data['title'] != '') {
		popup.find('.info_title').html(data['title']);
	}
	if (data['url'] != '') {
		var lnk = data['url'];
		if (!lnk.match(/^http:\/\//gi))
			lnk = 'http://'+data['url'];
		popup.find('.info_url').html('<a href="' + lnk + '" target="_blank">' + data['url'] + '</a>');
	}
	if (data['logo'] != '') {
	    popup.find('.pop_logo').show();
		popup.find('.info_logo').html('<img src="http://www.trial-sport.ru/images/catalog/200/' + data['logo'] + '" />');
	}
	else {
	    popup.find('.pop_logo').hide();
	}
	if (data['content'] != '') {
		popup.find('.info_content').html(data['content']);
	}
	
	popup.find('.popup_load').hide();
	popup.find('.popup_panel').show();
}


	/* Проверка форм по полям required и empty */
	function require_check($form) {
		var req = true;
		$form.find('*[required]').each(function(){
			switch ($(this).get(0).tagName) {
				case 'SELECT':
					if ($(this).find('option:selected').attr('empty') !== undefined)
						req = false;
					break;
				case 'INPUT':
				case 'TEXTAREA':
					if ($.trim($(this).val()) == '')
						req = false;
					break;
			}	
		});
	
		return req;
	}

