window.addEvent('domready', function() {
	var loc = window.location;
	var remoteURL = loc.protocol+"//"+loc.hostname+"/index.php?id=76&type=777";
	
	var addToFavorite = function(link){
		var url = remoteURL +"&a=atf";
		var input = $(link).getNext('input[class="addtofavorite"]');
		if($defined(input)){
			var category = $(input).getProperty('name');
			var id = $(input).getProperty('value');
			if($defined(category) && $defined(id)){
				var request = new Request.JSON({
					url: url,
					onSuccess:function(result){
						if($defined(result.state)){
							switch(result.state){
								case 'ok':
									var favcounter = $('fav-counter');
									var parent = favcounter.getParent('a').getParent('div');
									if($defined(parent)){
										if(parent.hasClass('headernav-1')){
											parent.removeClass('headernav-1').addClass('headernav-1-active');
										}
									}
									if($defined(favcounter)){
										var count = parseInt(favcounter.get('text'));
										count++;
										favcounter.set('text',count);
									}
									var box = new Facebox({
										title: result.payload.title,
										message: result.payload.message,
										cancelValue: 'OK'
									});
									box.show();
								break;
								case 'error':
									var box = new Facebox({
										title: result.payload.title,
										message: result.payload.message,
										cancelValue: 'OK'
									});
									box.show();
								break;
							}
						}
					}
				}).post({'category':category,'uid':id});
			}
		}
	}	
	
	var removeFromFavorites = function(link){
		var url = remoteURL +"&a=rff";
		var input = $(link).getNext('input[class="removefromfavorite"]');
		var container = $(link).getParent('.hotel-list-item');
		if($defined(container) && $defined(input)){
			var category = $(input).getProperty('name');
			var id = $(input).getProperty('value');
			if($defined(category) && $defined(id)){
				var request = new Request.JSON({
					url: url,
					onSuccess:function(result){
						if($defined(result.state)){
							switch(result.state){
								case 'ok':
									var favcounter = $('fav-counter');								
									var parent = favcounter.getParent('a').getParent('div');
									if($defined(favcounter)){
										var count = parseInt(favcounter.get('text'));
										count--;
										favcounter.set('text',count);
									}
									if($defined(parent) && $defined(count) && count == 0){
										if(parent.hasClass('headernav-1-active')){
											parent.removeClass('headernav-1-active').addClass('headernav-1');
										}
									}
									var myFx = new Fx.Tween(container, {property: 'opacity'});
									myFx.start(1,0).chain(
											function(){ 
												container.destroy();
												var last = $(document).getElement('.fav-list').getElements('.hotel-list-item');
												if(last.length == 1){
													last[0].destroy();
													if($defined($(document).getElement('.no-favs'))){
														$(document).getElement('.no-favs').setStyle('display','block');
													}
												}
											}
									);
								break;
							}
						}
					}
				}).post({'category':category,'uid':id});
			}
		}
	}
	
	var saveMap = function(locid){
		var url = remoteURL +"&a=atf";
		if($defined(nfcGMap) && parseInt(locid)>0){
			var setup = nfcGMap.getMapSetup();
			if($defined(setup)){
				var request = new Request.JSON({
					url: url,
					onSuccess:function(result){
						if($defined(result.state)){
							switch(result.state){
								case 'ok':
									var favcounter = $('fav-counter');
									var parent = favcounter.getParent('a').getParent('div');
									if($defined(parent)){
										if(parent.hasClass('headernav-1')){
											parent.removeClass('headernav-1').addClass('headernav-1-active');
										}
									}
									if($defined(favcounter)){
										var count = parseInt(favcounter.get('text'));
										count++;
										favcounter.set('text',count);
									}
									var box = new Facebox({
										title: result.payload.title,
										message: result.payload.message,
										cancelValue: 'OK'
									});
									box.show();
								break;
								case 'ok-nocount':
									var box = new Facebox({
										title: result.payload.title,
										message: result.payload.message,
										cancelValue: 'OK'
									});
									box.show();
								break;
							}
						}
					}
				}).post({uid:locid,category:'map',mapsetup:setup});
			}
		}
	}
	
	var remindPage = function(params){
		var url = remoteURL +"&a=remindpage";
		var request = new Request.JSON({
			url: url
		}).post(params);
	}
	
	var remindLinks = $$('.remind-page');
	remindLinks.each(function(item,index){
		item.addEvent('click',function(ev){
			ev.preventDefault();
			var params = $(this).getProperty('rel');
			params = JSON.decode(params);
			remindPage(params);
			var box = new Facebox({
				title: 'Sie sind nicht angemeldet.', 
				message: 'Um diese Funktion nutzen zu können, registrieren Sie sich bitte.', 
				cancelValue: 'schließen', 
				submitValue: 'zur Registrierung', 
				submitFunction: function() { 
					window.location = 'registrieren.html'; 
					box.close(); 
				} 
			}); box.show();			
		});
	});
	
	var favoriteLinks = $$('a[class=addtofavorite]');
	//add click function 4 all fav-links
	favoriteLinks.each(function(item,index){
			item.addEvent('click',function(ev){
				ev.preventDefault();
				addToFavorite(this);
			});
	});
	var removeLinks = $$('a[class=removefromfavorite]');
	//add click function 4 all fav-links
	removeLinks.each(function(item,index){
			item.addEvent('click',function(ev){
				ev.preventDefault();
				removeFromFavorites(this);
			});
	}); 
		
	this.addToFavorite = function(input){
		addToFavorite(input);
	}
	this.removeFromFavorites = function(link){
		removeFromFavorites(link);
	}
	this.savenfcGMap = function(locid){
		saveMap(locid);
	}
});

