/* PAGE.js */



	var _p = {
	
		o : {
			useAjax : history.pushState ? true : false,
			useHTML5changeURL : true,
			setBlank : true,
			imgPreload : false,
			scrollTo : true,
			pageSlide : false,
			pageCut : true,
			ajaxContainer : $('#content_container .inner:eq(0)'),
			menuContainer : $('#sitemenu')
		},

		g : {
			isAnim : false,
			curURL : null,
			curNum : null,			
			curDomain : document.location.href.split('http://')[1].split('/')[0],
			selPics : '[href$=".jpg"],[href$=".jpeg"],[href$=".gif"],[href$=".png"],[href$=".bmp"],[href$=".svg"]'
		},

		// init függvény: az oldal betöltődésekor lefut
		init : function(){

			// tmselector
			
			$('#tmc .bg').css({
				'width' : $('#tmselector').width() - 4
			});
			
			$('li.tmselector').hover(
				function(){
					_p.tm.show();
				},
				function(){
					_p.tm.hide();
				}
			);

//			if(_p.o.useAjax == true){
				$('li.tmselector > a').live('click',function(e){
					e.preventDefault();
				});				
//			}

			// HTML5 url change
			if( history.pushState && _p.o.useHTML5changeURL == true && _p.o.useAjax == true ){
				_p.g.curURL = _p.getCurURL();
				history.replaceState({page: _p.g.curURL }, '', _p.g.curURL );					
				window.onpopstate = function(event){
					if(event.state){
						_p.g.isAnim = false;
						_p.ajaxload(event.state.page);
					}
				};
/*				
				window.onhashchange = function(event){
				};
*/
			}

			_p.g.curURL = _p.getCurURL();
			_p.g.curNum = _p.getCurNum();

			// az oldalon található összes kép és háttérkép előretöltése, illetve a live fv lefuttatása az egész oldalon
			if( _p.o.imgPreload == true ){
				$('html').imgPreload({
					callback : function(){
						$('#imgpreloadoverlay').fadeOut( o.fadeTime );
						_p.live( $('html') );						
					}
				});
			}else{
				$('#imgpreloadoverlay').css({
					'display' : 'none'
				});			
				_p.live( $('html') );
			}

			// linkek átalakítása AJAX hívásokká
			if( _p.o.useAjax == true ){
				$('a:not([class*="noajax"],[id="fancybox-close"],[href*="http:"],[href*="#"],[href*="mailto:"],'+_p.g.selPics+')').live( 'click', function(event){
					event.preventDefault();
					var _url = $(this).attr('href');
					if( _p.g.isAnim == false && _p.g.curURL != _url && history.pushState && _p.o.useHTML5changeURL == true ){
						history.pushState({page: _url }, '', _url );
					}
					_p.ajaxload(_url);
				});	
			}
		},
		
		tm : {
			
			show : function(){

				$('#tmc').css({
					'display' : 'block'
				});
				$('#tmc').stop().animate({
					'height' : $('#tmselector').height()
				}, 150, 'easeInOutQuad');
				$('#tmc .bg').stop().animate({
					'height' : $('#tmselector').height() - 27
				}, 150, 'easeInOutQuad');
			},
			
			hide : function(){
				
				$('#tmc').stop().animate({
					'height' : 0
				}, 200, 'easeInOutQuad', function(){
					$(this).css({
						'display' : 'none'
					});
				});
				$('#tmc .bg').stop().animate({
					'height' : 0
				}, 150, 'easeInOutQuad');
			}			
		},
		
		getCurURL : function(){
			
			t = document.location.href.split( _p.g.curDomain )[1];
			if( t.length > 1 && t.substr(-1,1)!='/' ){
				t += '/';
			}
			return t;
		},
		
		getCurNum : function(){

			// Ha "#sitemenu > li > a" a struktúra, akkor kell a parent() is!
			t = _p.o.menuContainer.find('a:[href="'+ _p.g.curURL +'"]').parent().index();
			return t;
		},
		
		ajaxload : function(_url){

			if( _p.g.curURL != _url && _p.g.isAnim == false ){

				// animáció kezdete (nem lehet menüpontra kattintani)
				_p.g.isAnim = true;

				_p.tm.hide();

				if( tiles.g.running == true ){
					tiles.stop();
				}
				
				_p.g.curURL = _url;
				_p.g.curNum = _p.getCurNum();

				// callback fv. - itt már megtörtént a betöltés
				$.get( _url, function(data){

					// előző tartalom eltüntetése (az animáció itt szabadon variálható, live fv-ben van a visszaanimáció!)
					_p.o.ajaxContainer.fadeOut(350, function(){									

						// html kód beillesztése az ajaxcontainerbe
						_p.o.ajaxContainer.html(data);
				
						// ha van képek előretöltése
						if( _p.o.imgPreload == true ){							
							_p.o.ajaxContainer.imgPreload({
								'callback' : function(){
									_p.live( _p.o.ajaxContainer );					
								}
							});
						}else{
							_p.live( _p.o.ajaxContainer );
						}
					});
				});
			}			
		},
		
		// live függvény: adott objektumon hajtja végre (ajaxos hívásnál alapállapotban a _p.o.ajaxContainer-en, oldalbetöltéskor a html-en, de egyedi objektum is megadható)
		live : function( obj ){
			
			// polls
			$('.polls').each(function(){
				var p = parseInt( $(this).attr('class').split('w')[1] );
				if( p == 0){
					$(this).parent().width(0);
				}else{
					$(this).delay(500).animate({
						'width' : 270 / 100 * p
					}, 400, 'easeOutQuad');					
				}
			});
			
			// products
			if( $('#prod_scroller').length ){
								
				_products.init();
			}

			// Fancybox

			obj.find('.gallery a, .gallery2 a').fancybox({
				'transitionIn'	: 'elastic',
				'transitionOut'	: 'elastic',
				'easingIn'      : 'easeOutBack',
				'easingOut'     : 'easeInBack',
				'speedIn'		:	300,
				'speedOut'		:	300,
				'titlePosition' : 'over',
				'overlayColor'	: '#000',
				'titleFormat'   : function(title, currentArray, currentIndex, currentOpts){
					return '<span id="fancybox-title-over">' + title + ' ( ' + (currentIndex + 1) + ' / ' + currentArray.length + ' )</span>';
				}
			});
			
			// .active osztály megadása az aktív menüpont li tagjének
			_p.o.menuContainer.find('li').removeClass('active');
			_p.o.menuContainer.find('li:eq('+_p.g.curNum+')').addClass('active');

			// input mezők, radio buttonok és select boxok átalakítása
			// $('input:checkbox').repCheckbox();
			// $('input:radio').repRadioButton();
			// $('select').repSelectbox();

			// forceWidth
			obj.forceWidth();

			// fbAppend
			obj.find('.fblike').each( function(){
				$(this).fbAppend();
			});

			// gmapAppend
			obj.find('.gmap').each( function(){
				$(this).gMapAppend();
			});
			
			// email SPAM szűrő (.mapson osztályokat alakít át)
			obj.noSpam();

			// input és textarea funkciók
			obj.find('input, textarea').inputClick();
			obj.find('input').inputClass();
			
			// külső oldalakra való hivatkozások átalakítása
			if( _p.o.setBlank == true ){
				obj.setBlank();
			}

			// pageSlide hivatkozások átalakítása
			if( _p.o.pageSlide == true ){
				obj.find('.pageslide').pageSlide();
			}	

			// pageCut hivatkozások átalakítása
			if( _p.o.pageCut == true ){
				obj.find('.pagecut').pageCut();
			}	
			
			// scrollTo inicializálása
			if( _p.o.scrollTo == true ){
				obj.scrollTo();
			}
			
			// scrollBar inicializálás (ha van a forráskódban .sb osztályú elem, megnézi az id-jüket és inicializálja őket)
			$('.sb').each(function(){
				_sb.setDim( '#' + $(this).attr( 'id' ) );	
			});

			//submenu navigáció (scrollBar pluginhez)
/*
			$('#submenu a').click(function(event){
				event.preventDefault();
				_sb.scrollTo( '#sb1', $(this));
			});
*/
			
			// ajaxcontainer visszaanimálása
			if( obj == _p.o.ajaxContainer ){
				_p.o.ajaxContainer.fadeIn(350, function(){

					// imsét lehet menüpontra kattintani
					_p.g.isAnim = false;					
				});
			}

			// slider			
			if( _p.g.curURL == '/' ){
				$('#caola_jatek').slider({
					waitTime: 3000,
					tilesNum: 4,
					fade : true
				});
			}
			
			// tiles
			if( $('#tiles_container').length ){
				if( !$('.tile_container').length ){
					tiles.init({
						useDOM : true,
						imgDir : '/gallery/banners/'
					});					
				}else{
					tiles.start();
				}
			}
			
			$('a.wheretobuy').hover(
				function(){
					$('.tn-c').css({
						display : 'block'
					});
				},
				function(){
					$('.tn-c').css({
						display : 'none'
					});					
				}
			);

			$('a.wheretobuy').click(function(e){
				e.preventDefault();
			});
		}
	};



	var _products = {
		
		g : {
			curNum : 0,
			isAnimating : false,
			prodNum : 0
		},

		init: function(){

			var ps = $('#product_images_scroller');
			_products.g.curNum = 0;
			_products.g.prodNum = ps.find('.product_image').length;
			ps.css({
				'width' : _products.g.prodNum * ps.parent().width()
			});
			
			$('.nav_btn').unbind('click');
			$('.nav_left').click(function(e){
				e.preventDefault();
				_products.prev();
			});
			$('.nav_right').click(function(e){
				e.preventDefault();
				_products.next();
			});

			for(x=1;x<_products.g.prodNum+1;x++){
				$('#prod_nav').append('<a class="noajax" href="/"></a>');
			}
			$('#prod_nav a').live('click',function(e){
				e.preventDefault();
				_products.change($(this).index()+1);					
			});
			if(_products.g.prodNum < 2){
				$('#prod_nav, .nav_btn').css({
					'display' : 'none'
				});
			}

			_products.change(1);
		},
		
		change : function(num){
			
			if(_products.g.isAnimating == false){
				_products.g.isAnimating = true;
				_products.g.curNum = num;

				$('#product_images_scroller').animate({
					'margin-left' : - (_products.g.curNum-1) * 400
				}, 1000, 'easeOutQuart');

				$('#product_names').find('.active').fadeOut(600,function(){
					$(this).removeClass('active');
				});
				$('#product_names').find('h1:eq('+(_products.g.curNum-1)+')').delay(600).fadeIn(600,function(){
					$(this).addClass('active');
				})

				$('#product_descs').find('.active').fadeOut(600,function(){
					$(this).removeClass('active');
				});

				$('#prod_nav a').removeClass('active');
				$('#prod_nav a:eq('+(_products.g.curNum-1)+')').addClass('active');				

				$('#product_descs').find('div.prod:eq('+(_products.g.curNum-1)+')').delay(600).fadeIn(600,function(){
					$(this).addClass('active');
					_products.g.isAnimating = false;
				})

				$('#curprod').fadeOut(600,function(){
					$(this).html($('#product_names').find('h1:eq('+(_products.g.curNum-1)+')').html()).fadeIn(600);
				});
			}			
		},
		
		prev : function(){
			
			if(_products.g.isAnimating == false){
				if(_products.g.curNum == 1){
					_products.g.curNum = _products.g.prodNum;
				}else{
					_products.g.curNum--;
				}
				_products.change(_products.g.curNum);				
			}
		},
		
		next : function(){

			if(_products.g.isAnimating == false){
				if(_products.g.curNum == _products.g.prodNum){
					_products.g.curNum = 1;
				}else{
					_products.g.curNum++;
				}			
				_products.change(_products.g.curNum);
			}
		}
	}



/* DOCUMENT READY */



	$(document).ready(function(){
		
// scrollbar definiálása
/*
		_sb.init({
			sbid : '#sb1',
			where : '#',
			what : '#',
			type : 'vertical'
		});
*/

		_p.init();		
	});
