if (typeof Remnant == "undefined") var Remnant = new Object();
Remnant = {
	getObjectStructure: function (object) {
		var type = typeof object;
		var str;
		
		if (type == 'object' || type == 'array') {
			str = type + '\n';
			for (key in object) str += key + ': ' + object[key] + '\n';
		} else str = 'Invalid input type: ' + type;
		
		return str;
	},
	showMSN: function (event) {
		if (typeof event != 'undefined' && event.stopPropagation) event.stopPropagation();
		$$.alert('Kérdezzen minket termékeinkről, akcióinkról MSN-en!<br /><br />Címünk: remnantgame@hotmail.com', 'Érdeklődjön MSN-en!');
	}
	
	,sendRecommendation: function (event, url){
		$('div#sendRecommendationDialog').dialog({
			title: 'Oldal ajánlása!',
			modal:true,
			width:600,
			buttons:[
				{
					text: 'Elküld',
					click: function () {
						$.post(
							'/@/action/recommendation.php',
							{
								mailSenderName:$('input#mailSenderName').val(),
								mailRecieverEmail:$('input#mailRecieverEmail').val(),
								url:url
							},
							function (response) {
								if (response.status == 'ok'){
									$$.alert('Köszönjük ajánlását!', 'Elküldve!',function(){$$.setDestination(url);});
								}else $$.message(response.message, 'Hiba');
							},
							'json'
						);
					}
				}
			]
		});
		if (typeof event != 'undefined' && event.stopImmediatePropagation) event.stopImmediatePropagation();
	}
	,sendMessage: function (event) {
		$('div#sendMessageDialog').dialog({
			title: 'Üzenj nekünk most!',
			modal:true,
			width:600,
			buttons:[
				{
					text: 'Elküld',
					click: function () {
						Remnant.loadingStart();
						$.post(
							'/@/action/mailme.php',
							{
								email:$('input#mailMeFrom').val(),
								message:$('textarea#mailMeMessage').val()
							},
							function (response) {
								Remnant.loadingEnd();
								$('div#sendMessageDialog').dialog('close');
								if (response.status == 'ok') $$.alert('Köszönjük üzenetét!', 'Elküldve!');
								else $$.message(response.message, 'Hiba');
							},
							'json'
						);
					}
				}
			]
		});
		if (typeof event != 'undefined' && event.stopImmediatePropagation) event.stopImmediatePropagation();
	}
	,sendProductMessage: function (event, product_id) {
		$('div#sendMessageDialog').dialog({
			title: 'Üzenj nekünk most!',
			modal:true,
			width:600,
			buttons:[
				{
					text: 'Elküld',
					click: function () {
						Remnant.loadingStart();
						$.post(
							'/@/action/mailme_product.php',
							{
								email:$('input#mailMeFrom').val(),
								message:$('textarea#mailMeMessage').val(),
								'product_id':product_id
							},
							function (response) {
								Remnant.loadingEnd();
								$('div#sendMessageDialog').dialog('close');
								if (response.status == 'ok') $$.alert('Köszönjük üzenetét!', 'Elküldve!');
								else $$.message(response.message, 'Hiba');
							},
							'json'
						);
					}
				}
			]
		});
		if (typeof event != 'undefined' && event.stopImmediatePropagation) event.stopImmediatePropagation();
	}
	,vote: function (productId) {
		Remnant.loadingStart();
		$.post(
			'/@/action/vote.php',
			{
				productId:productId,
				value:$('div.slider#product_sl_' + productId).slider('option', 'value')
			},
			function(response){
				Remnant.loadingEnd();
				if (response.status == 'ok') {
					$$.alert(response.message, 'Szavazás', function () {$$.go(document.location.href);});
				} else {
					$$.warning(response.message, 'HIBA!');
				}
			},
			'json'
		);
	}
	,stopEvent: function (event) {
		if (typeof event != 'undefined' && event.stopPropagation) event.stopPropagation();
	}
	,openAction: function(listedCategorySlug){
		$('div.menu ul li').removeClass('selected');
		var $listedCategoryMenuItem = $('div.menu>ul li[rel=' + listedCategorySlug + ']');
		$listedCategoryMenuItem.addClass('selected');
		$listedCategoryMenuItem.parent().parent().addClass('selected');
	}
	,forgotPass: function(){
		$.post(
			'/@/action/newpass.php',
			{email:$('#femail').val()},
			function(response){
				if(response.status == 'error'){
					$$.warning(response.message, 'Jelszó');
				}else{
					$$.alert(response.message, 'Jelszó');
					$('#femail').val('');
					$('#forgotpass').slideUp();
				}
			},
            'json'
		);
	}
	
	,newsletter: function(destination){
		if (typeof destination == 'undefined') destination = '/';
		$.post(
			'/@/action/newsletter.php',
			{email:$('#nemail').val()},
			function(response){
				if(response.status == 'error'){
					$$.warning(response.message, 'Hírlevél');
				}else{
					$$.alert(response.message, 'Hírlevél', function(){$$.setDestination(destination);});
				}
			},
            'json'
		);
	}
	
	,openMenu: function(url) {
		urlParts = url.split('/');
		if (urlParts[1] == 'termekek') {
			$('li[rel="' + urlParts[2] + '"]').addClass('selected');
			$('li[rel="' + urlParts[2] + '"] a').addClass('selected');
		} else {
			if($('div.menu>ul>li>a[href="' + url + '"]').length){
				$('div.menu>ul>li>a[href="' + url + '"]').parent().addClass('selected');
				if (urlParts.length) {
					var params = '';
					for (var i = 1; i < urlParts.length; i++) params += '/' + urlParts[i];
					$('div.menu>ul>li>a[href="' + params + '"]').parent().addClass('selected');
					$('div.menu>ul>li>a[href="' + params + '/"]').parent().addClass('selected');
				}
			}
		}
	}
	,registration: function(){
		Remnant.loadingStart();
		$.post(
			'/@/action/registration.php',
			{
				name:$('#name').val(),
				pw1:$('#pw1').val(),
				pw2:$('#pw2').val(),
				phone:$('#phone').val(),
				address_zip_code:$('#address_zip_code').val(),
				address_city:$('#address_city').val(),
				address_place:$('#address_place').val(),
				email:$('#remail').val(),
				newsletter:$('#newsletter').val(),
				rendeles:$('#rendeles').val(),
				forward:$('#forward').val()
			},
			function(response){
				Remnant.loadingEnd();
				if(response.status == 'ok'){
					$$.alert('Köszönjük, regisztrációja sikeres volt!', 'Sikeres regisztráció', function () {
						$$.setDestination(response.destination);
					});
				}else{
					$$.warning(response.message, 'HIBA!');
				}
			},
                        'json'
		);
	}
	,modifyProfile: function(){
		$.post(
			'/@/action/modifyProfile.php',
			{
				name:$('#name').val(),
				pw1:$('#pw1').val(),
				pw2:$('#pw2').val(),
				phone:$('#phone').val(),
				address_zip_code:$('#address_zip_code').val(),
				address_city:$('#address_city').val(),
				address_place:$('#address_place').val(),
				email:$('#remail').val(),
				newsletter:$('#newsletter').val()
			},
			function(response){				
				if(response.status == 'ok'){
					$$.alert('Az adatok mentése kész', 'Adatok!', function(){$$.setDestination('/');});
				}else{
					$$.warning(response.message, 'HIBA!');
				}
			},
            'json'
		);
	}
	,login: function(emailInputID, pwInputID){
		$.post(
			'/@/action/login.php',
			{email:$('#' + emailInputID).val(), pw:$('#' + pwInputID).val(), forward:$('#forward').val()},
			function(response){
				if(response.status == 'ok'){
					$$.setDestination(response.destination);
				}else{
					$$.warning(response.message, 'HIBA!');
				}
			},
            'json'
		);
	}
	,logout: function(){$.post('/@/action/logout.php',{},function(response){document.location.reload();});}
	,addToBasketRequest: function(productId, askForUsedVersion, event){
		if(typeof event != 'undefined') event.stopPropagation();
		if (askForUsedVersion) {
			$$.choose(
				'Használt termék is elérhető. Melyiket szeretné kosárba tenni?',
				'Kosárba tétel',
				{
					'Használtat kosárba':function () {$(this).dialog('close');Remnant.addToBasket(productId, true);},
					'Az újat a kosárba':function () {$(this).dialog('close');Remnant.addToBasket(productId, false);}
				}
			);
		} else {
			$(this).dialog('close');
			Remnant.addToBasket(productId, false);
		}
	}
	,addToBasket: function(productId, usedVersion, event){
		if(typeof event != 'undefined') event.stopPropagation();
		Remnant.loadingStart();
		$.post(
			'/@/action/basket.php',
			{
				method:'addToBasket',
				productId:productId,
				used:usedVersion
			},
			function(response){
				Remnant.loadingEnd();
				if (response.status == 'ok') {
					if (response.message != '0') {
						$('span.numberOfBasketItems').html(response.message + " tétel");
						Remnant.basketAccessoriesEnable(true);
					}
					else {
						$('span.numberOfBasketItems').html("üres");
						Remnant.basketAccessoriesEnable(false);
					}
					$$.alert('A termék bekerült a kosárba', 'Kosár');
				} else {
					$$.warning(response.message, 'HIBA!');
				}
			},
			'json'
		);
	}
	,deleteFromBasket: function(productId){
		$$.confirm('Törlés', 'Biztosan törölni szeretnéd a kosárból?',
			function(){
				$.post(
					'/@/action/basket.php',
					{
						method:'deleteFromBasketQuantity',
						productId:productId
					},
					function(response){
						Remnant.loadingEnd();
						if (response.status == 'ok') {
							if (response.message != '0') {
								$('span.numberOfBasketItems').html(response.message + " tétel");
								Remnant.basketAccessoriesEnable(true);
							}
							else {
								$('span.numberOfBasketItems').html("üres");
								Remnant.basketAccessoriesEnable(false);
							}
							$('div.basket').html(response.basket);
							Remnant.initNumericInputs('input.quantity');
						} else {
							$$.warning(response.message, 'HIBA!');
						}
					},
					'json'
				);
			}
		);
	}
	,clearBasket: function(){
		$$.confirm('Törlés','Biztosan üríteni szeretnéd a kosarat?',
			function(){
				$.post(
					'/@/action/basket.php',
					{
						method:'clearBasket'
					},
					function(response){
						Remnant.loadingEnd();
						if (response.status == 'ok') {
							if (response.message != '0') {
								$('span.numberOfBasketItems').html(response.message + " tétel");
								Remnant.basketAccessoriesEnable(true);
							}
							else {
								$('span.numberOfBasketItems').html("üres");
								Remnant.basketAccessoriesEnable(false);
							}
							$('div.basket').html(response.basket);
							Remnant.initNumericInputs('input.quantity');
						} else {
							$$.warning(response.message, 'HIBA!');
						}
					},
					'json'
				);
			}
			);
	}
	,recalculateBasket: function(){
		Remnant.loadingStart();
		var quantities = new Object();
		$('input.quantity').each(function(){
			quantities[$(this).attr('name')] = $(this).val();
		})
		$.post(
			'/@/action/basket.php',
			{
				method:'recalculateBasket',
				quantities: quantities
			},
			function(response){
                            Remnant.loadingEnd();
                            if (response.status == 'ok') {
                                if (response.message != '0') {
                                    $('span.numberOfBasketItems').html(response.message + " tétel");
                                    Remnant.basketAccessoriesEnable(true);
                                }
                                else {
                                    $('span.numberOfBasketItems').html("üres");
                                    Remnant.basketAccessoriesEnable(false);
                                }
                                $('div.basket').html(response.basket);
                                Remnant.initNumericInputs('input.quantity');
                            } else {
                                $$.message(response.message, 'HIBA!');
                            }
                        },
                        'json'
		);
	}
	,basketAccessoriesEnable: function (value) {
		if (value) value = 'inline';
		else value = 'none';
		$('.basketAccessories').css({'display': value});
	}
	,finishOrder: function(){
		Remnant.loadingStart();
		$.post(
			'/@/action/order.php',
			{
				name:$('#name').val(),
				phone:$('#phone').val(),
				email:$('#email').val(),
				address_zip_code:$('#address_zip_code').val(),
				address_city:$('#address_city').val(),
				address_place:$('#address_place').val(),
				comment:$('#comment').val()
			},
			function(response){
				Remnant.loadingEnd();
				if(response.status == 'ok'){
					$$.alert(response.message, 'Rendelés', function () {$$.setDestination('/');});
				}else{
					$$.warning(response.message, 'HIBA!');
				}
			}
		);
	}
	,search: function(){
		$$.setDestination('/kereses/' + $('#searchText').val());
	}
	,initGaleries: function(relation, imageTitle){
		$("a[rel=" + relation + "]").fancybox({
			'titlePosition' 	: 'over',
			'titleFormat'       : function(title, currentArray, currentIndex, currentOpts) {
				return '<span id="fancybox-title-over">' + imageTitle + ' ' +  (currentIndex + 1) + ' / ' + currentArray.length + '</span>';
			}
		});
	}
	,initFancybox: function(){
		$(".fancy").each(function(){
			var height=$(this).attr('height');
			if(height == undefined){height = '80%';}
			else{height = parseInt(height);}

			var width=$(this).attr('width');
			if(width == undefined){width = 670;}
			else{width = parseInt(width);}

			$(this).fancybox({
				'width'			: width,
				'height'		: height,
				'transitionIn'	: 'elastic',
				'transitionOut'	: 'elastic',
				'autoScale'		: true,
				'type'			: 'iframe'
			});
		})
	}
	,IwiwShare: function() {
		u = location.href;
		t = document.title;
		window.open("http://iwiw.hu/pages/share/share.jsp?u=" + encodeURIComponent(u) + "&t=" + encodeURIComponent(t), "iwiwshare", "toolbar=0,status=0,location=1, width=650,height=600,scrollbars=1");
		return false;
	}
	,initNumericInputs: function (inputSelector) {
		$(inputSelector).keypress(function (evt) {
			keyCode = evt.keyCode || evt.charCode;
			if (!(keyCode >= 48 && keyCode <= 57) && keyCode != 8 && keyCode != 46 && !(keyCode >= 37 && keyCode <= 40)) {
				return false;
			} else return true;
		});
	},
	loadingStart: function () {
		return;
		$('div#custom_loading_div').css({display:'block'}).progressbar({value:100});
		$('body').css({cursor:'progress'});
	},
	loadingEnd: function () {
		return;
		$('div#custom_loading_div').css({display:'none'});
		$('body').css({cursor:'default'});
	}
}
