function check_lab(elem){
	if (elem.value==elem.getAttribute("label")) elem.value = "";
}
function uncheck_lab(elem){
	if (/^[\s]*$/.test(elem.value)) elem.value = elem.getAttribute("label");
}
function basket(elem){
	elem.parentNode.className = 'price grPrice';
}



$(document).ready(function(){

	/*$('a[rel="show_hidden_fields"]').click(function(){
		$(this).hide().parents('form').children('.off').removeClass('off').addClass('foroff').end().find('INPUT[name=action]').val('registration');
		return false;
	})
	$('a[rel="hide_hidden_fields"]').click(function(){
		$(this).parents('form').children('.foroff').removeClass('foroff').addClass('off').end().find('INPUT[name=action]').val('nonreg');;
		$('a[rel="show_hidden_fields"]').show();
		return false;
	})*/



	// ПОДБОР ПО ПАРАМЕТРАМ
	getnextselect  = function(){

		$cur_select = $(this) // текущий селект
		//alert($cur_select.children('option:selected').val());
		$cur_select.parents('form').attr('action', '/catalog/age'+$cur_select.children('option:selected').val()+'/sortDATE_CREATE/');
		$container = $('#choice-container');
		$cur_select_pos = 0;
		// вычиление индекса текущего селекта
		$container.children('select').each(function(i){
			if ($(this).attr('name') == $cur_select.attr('name'))
				$cur_select_pos = i;
		})

		if ($cur_select_pos < 2) // 2 - максимальный индекс массива селектов
		{
			$container.children('select:gt('+$cur_select_pos+')').remove(); // удаляем все селекты у которых индекс старше текущего
			$.getJSON('/bitrix/templates/disney/ajax/getage.php', {'id':$cur_select.children('option:selected').val()}, function(data){
				if (data.data.length)
				{
					$new_select = $('<select />').attr('name', data.fieldname).bind('change', getnextselect);
					//alert(data['title']);

					if (data['title'])
					{
						var option = new Option(data['title'],"");

						if($.support.cssFloat) {
							$new_select[0].add(option,null);
						}
						else{
							$new_select[0].add(option);
						}
					}
					$.each(data.data, function(i, item){
						if(item){
							var option = new Option(item['title'],item['id']);

							if($.support.cssFloat) {
								$new_select[0].add(option,null);
							}
							else{
								$new_select[0].add(option);
							}
						}
					})

					$new_select.appendTo('#choice-container');
					//$("#choice-container").css("width:
				}
			})
		}

	}

	$('#choice-container select').bind('change', getnextselect)
	// end ПОДБОР ПО ПАРАМЕТРАМ


});

$(function ()
{
 var
    $F = $('#registration-form')
  , $D = $F.find('.off')
  , toggleFields = function ()
  {
   var s = /show/.test(this.rel);
   $F[0].elements.action.value = s ? 'registration' : 'nonreg';
   $D[s ? 'show' : 'hide']();
   s ? $(this).hide() : $('A[rel=show_hidden_fields]').show();
   return false;
  }
 ;

 $('A[rel=show_hidden_fields],A[rel=hide_hidden_fields]').click(toggleFields);

  if($F [0] && $F [0].elements.action.value =='registration')
 {
 	$F.find('.off').show();
 	$('A[rel=show_hidden_fields]').hide();
 }


	// DISNEYSHP-41
	jsCart.init();

});


/**
 * jsCart
 * 2009-10-19
 */
var jsCart = (function() {

	// Cart params
	// TODO
	var CONF = {
		sAdd2Cart:		'add2cart',
		sAdd2CartUrl:	'/bitrix/templates/disney/ajax/add2basket.php',
		sGo2Cart:		'go2cart',
		sCartUrl:		'/personal/cart/',
		timeout: 10000
	}

	// Locals
	var container,
		cartLink,
		cartCount,
		basket,
		links,
		bLoading,
		timer;

	//
	var LANG = {
		basket: ['Ваша корзина', 'В вашей корзине'],
		items: ['пока пуста', '', 'а', 'ов']
	}

	// Fog
	var fog = $('<div class="fog"><div></div></div>').hide(),
		imgAjaxLoader = $('<img src="/bitrix/templates/disney/img/ajaxloader.gif" width="48" height="48" alt="" />').appendTo( fog );

	/*
	if( !$.support.boxModel ) {
		$_frame = $('<iframe id="fog_frame" scrolling="0" border="0"></iframe>').hide();

		fog.before( $_frame );
		$_frame.css({
			'width' : $(window).width(),
			'height' : $(window).height(),
			'opacity' : 0
		});
	}
	*/

	/**
	 * init
	 */
	function _init() {
		container = $('.main');
		container.append( fog );

		cartLink = container.find('.t-basket a');
		cartCount = container.find('.t-basket i');

		_initLinks();
		_initCart();

		bLoading = false;
	}

	/**
	 * init
	 */
	function _initLinks() {
		links = container.find('a[rel=' + CONF.sAdd2Cart  +']');
		if( !links.size() ) {
			//console.log('EXIT: нет ссылок на добавление');
			return false;
		}

		links.bind( 'click', _addToCart );
	}

	/**
	 * _initCart
	 */
	function _initCart() {
		//console.log('Init Cart: BEGIN');

		basket = $('#Basket');

		basket.find('input[name=BasketRefresh]').val( 'Обновить' );

		var recalc = basket.find('.recount a');

		/*recalc.click( function(){
			console.log( basket.serialize() );
			return false;
		});*/

		recalc.bind( 'click', _updateCart );
	}

	/**
	 * addToCart
	 */
	function _addToCart( event ) {
		//var $e = $( event );
		//$e.preventDefault;

		if( bLoading ) {
			// console.log('CLICK_EXIT: в процессе');
			return;
		}

		fog.show();
		bLoading = true;

		var $t = $( this ),
			sUrlSplit = $t.attr('href').split('?'),
			sUrl = CONF.sAdd2CartUrl + '?' + sUrlSplit[1] + '&ajax=' + (new Date()).getTime();

		//$.getJSON(sUrl, function(data){
		$.get(sUrl, function(data){

			if( _processResponceXML( data ) ) {
				// отметить как добавленные все экземпляры товаров (товар
				// одновременно может быть в "популярных", "новых", "товар дня" и всё на одной странце)
				var $current = links.filter('[rev=' + $t.attr('rev') + ']');
				//console.log( $current, links );

				$current.attr('href', CONF.sCartUrl).attr('rel', CONF.sGo2Cart);
				$current.unbind('click', _addToCart);

				$current.parent('div').addClass('grPrice_inbasket');
			}

			setTimeout(function(){
				fog.hide();
				bLoading = false;
			}, 300);

		});

		return false;
	}

	/**
	 * _updateCart
	 * Пересчитать данные
	 */
	function _updateCart( event ) {
		if( bLoading || !basket ) {
			// console.log('UPDATE_EXIT: в процессе');
			return false;
		}

		var $t = $(this);

		fog.show();
		bLoading = true;

		basket.submit();

		bLoading = false;
		fog.hide();

		//var sUrl = basket.serialize() + (new Date()).getTime();

		//$.post(sUrl);
		/*
		$.get(sUrl, function(data){

			if( _processCartResponceXML( data ) ) {
				$t.attr('href', CONF.sCartUrl).attr('rel', CONF.sGo2Cart);
				$t.unbind('click', _addToCart);

				$t.parent('div').addClass('grPrice_inbasket');
			}

			setTimeout(function(){
				fog.hide();
				bLoading = false;
			}, 300);

		});
		*/

		return false;
	}

	/**
	 * _processResponceJSON
	 * @param {Object} responce JSON
	 *
	 * responce = {
	 *	items: [],
	 *	total: 999
	 * }
	 */
	function _processResponceJSON( responce ) {
		if( typeof responce.total === 'undefined' ) {
			//console.log('JSON_EXIT: сервер ругатеся непонятными словами');
			return false;
		}

		//console.log( responce );

		// количество товаров в корзине
		var nItems = responce.total;

		var sBasketLink = LANG.basket[0],
			sBasketCount = LANG.items[0];

		if( nItems > 0 ) {
			sBasketLink = LANG.basket[1];

			if( nItems < 2 ) {
				sBasketCount = LANG.items[1];
			} else if( nItems < 5) {
				sBasketCount = LANG.items[2];
			} else {
				sBasketCount = LANG.items[3];
			}

			sBasketCount = nItems + ' товар' + sBasketCount;
		}

		//console.log( sBasketLink + ' ' + sBasketCount );

		cartLink.text( sBasketLink );
		cartCount.text( sBasketCount );

		return true;
	}

	/**
	 * _processResponceXML
	 * @param {XML} responce
	 *
	 * <responce>
	 * 	 <total />
	 *   <basket>
	 *     <items>
	 *        <item />
	 *   <baskethtml />
	 * </responce>
	 */
	function _processResponceXML( responce ) {
		var $responce = $(responce),
			total = $('total', $responce).text();

		if( typeof total === 'undefined' || isNaN(parseInt(total)) ) {
			//console.log('XML_EXIT: сервер ругатеся непонятными словами');
			return false;
		}

		//console.log( responce );

		// количество товаров в корзине
		var nItems = parseInt( total );

		var sBasketLink = LANG.basket[0],
			sBasketCount = LANG.items[0];

		if( nItems > 0 ) {
			sBasketLink = LANG.basket[1];
			$("div.t-basket-bg a").addClass("in");
			if( nItems < 2 ) {
				sBasketCount = LANG.items[1];
			} else if( nItems < 5) {
				sBasketCount = LANG.items[2];
			} else {
				sBasketCount = LANG.items[3];
			}

			sBasketCount = nItems + ' товар' + sBasketCount;
		}
		else{
			sBasketLink = LANG.basket[0],
			sBasketCount = LANG.items[0];
		}

		//console.log( sBasketLink + ' ' + sBasketCount );

		cartLink.text( sBasketLink );
		cartCount.text( sBasketCount );

		// baskethtml отдается в <![CDATA[
		var $baskethtml = $('baskethtml', responce );

		// Обновить данные в корзине
		_processBasketResponceXML( $( $baskethtml.text() ) );

		return true;
	}

	/**
	 * _processBasketResponceXML
	 *
	 * @param {HTMLElement} responce
	 */
	function _processBasketResponceXML( responce ) {
		if( !basket.size() ) {
			return;
		}

		//console.log (basket);

		var sResponce = responce.html();
		basket.html( sResponce );

		_initCart();
	}


	return {
		init: _init
	}

})();
