window.addEvent('domready', function() {
    initTrefwoordSelect();
    initTrefwoordHighlighting();
    initRating();
    initReactiePlaatsen();
    initInloggen();
    initRegistreren();
    initDoorsturen();
	initRegisterSubmit();
	initRegisterNewsletterSubmit();
//	initEnterSubmitFix();
	initArticleCategoryHover();
	initNetwerklinks();
    initIPhoneCheck();
});


/* **************************************************************
 * iPhoneCheck
 * **************************************************************/

function initIPhoneCheck() {
	if( !Cookie.read('iphone') ) {
		Cookie.write('iphone', 'asked', {duration: 60});
		
		if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))) {
			if( confirm( "MT is ook beschikbaar als gratis app op de iPhone. \n\nWilt u deze app gebruiken?" ) ) {
				document.location.href = 'itms://itunes.apple.com/nl/app/mt.nl/id477675578?mt=8#';
			}			
		}
	}
}


/* **************************************************************
 * Trefwoorden
 * **************************************************************/

function initTrefwoordSelect() {
	$$('#trefwoord').addEvent('change', function() {
		this.form.submit();
	});
}

function initTrefwoordHighlighting() {
	highlightTags();
	$$('.article')
		.addEvent('mouseenter', function() {
			var tagIds = $(this).get('tagids') || '';
			highlightTags(tagIds.split(','));
		})
		.addEvent('mouseleave', function() {
			highlightTags();
		});
}

function highlightTags(tagIds) {
	$$('.keywords_ul li').removeClass('active');
	if (tagIds) {
		$each(tagIds, function(tagId) {
			if(typeof(tagId) == 'object') //flash geeft soms een array[array[tagids]] door ipv de verwachtte vorm array[tagids]
				highlightTags(tagId);
			else
				$$('.keywords_ul li[tagid='+tagId+']').addClass('active');
		});
	}
	
}


/* **************************************************************
 * Rating
 * **************************************************************/

function initRating() {
	
	var setRating = function(rating, value) {
		rating.getElement('.stars_bar').setStyle('width', value+'%');
	};
	
	$$('.rating').each(function(rating){
		
		setRating(rating, rating.get('percent'));
		
		if (!rating.get('myvote') && rating.get('entitypointer_id')) {
			
			rating.getElement('.votes').addEvent('mouseleave', function(){
				setRating(rating, rating.get('percent'));
			});
			
			rating.getElements('.vote').each(function(vote){
				var vote_value = vote.get('vote_value');
				vote.addEvent('mouseenter', function(){
					setRating(rating, vote_value*20);
				});
				vote.addEvent('click', function(){
					if (userLoggedIn()) {
						setRating(rating, vote_value*20);
						rating.set('percent', vote_value*20);
						var entitypointer_id = rating.get('entitypointer_id');
						var part = rating.get('part');
						var request = new Request({
							url: $('base').get('href')+'/Rating/Vote',
							method: 'post',
							data: 'entitypointer_id='+entitypointer_id+'&rating='+vote_value,
							onComplete: function() { location.reload(); }
						});
						request.send();
					} else {
						loginRequired();
					}
				});
			});
		}
	});
}


/* **************************************************************
 * Reactie plaatsen
 * **************************************************************/

function initReactiePlaatsen() {
	var reacties = $('reacties');
	
	if (!reacties) {
		return;
	}
	
	var textarea = reacties.getElement('textarea[name=text]');
	textarea.addEvent('click', function() {
		loginRequired();
	});
	reacties.getElement('input[name=submit_reactie]').addEvent('click', function(e) {
		loginRequired();
		if (!userLoggedIn()) {
			new Event(e).stop();
		}
	});
	
}


/* **************************************************************
 * Inloggen
 * **************************************************************/

function userLoggedIn() {
	// Vergeet niet dat deze functies altijd onveilig zijn!
	return javascriptVars.userLoggedIn;
}
function loginRequired(message) {
	if (!userLoggedIn()) {
		if (!message) {
			message = 'Hiervoor moet u eerst inloggen';
		}
		alert(message);
	}
}

function initInloggen() {
	var loginbox = $('login_box');
	var menuinloggen = $('menu-inloggen');
	
	if (!loginbox || !menuinloggen) {
		return;
	}

	menuinloggen.addEvent('click', function(e) {
		loginbox.toggleClass('login_show');
		inlog_email_over = new OverText($('login_email'),{poll:true,delay:100});
		inlog_pass_over = new OverText($('login_pass'),{poll:true,delay:100});
		new Event(e).stop();
	});
}


/* **************************************************************
 * Registreren
 * **************************************************************/

function initRegistreren() {
	var registerbox = $('registerbox');
	
	if (!registerbox) {
		return;
	}
	
	$$('#menu-registreren,.wordlid_block_submit,#reactie_plaatsen_register', '#registerbox .networklogin_block_sluiten').addEvent('click', function(e) {
		/*
		lg.toggleBbg();
		registerbox.toggle();
		registerbox.getElements('input[type=text], input[type=password]').each(function(item){
			new OverText(item, {poll:true,delay:100});
		});
		
		window.scrollTo(0,0);
		
		new Event(e).stop();
		*/
		window.scrollTo(0,0);
		window.location = $('base').get('href')+'230/abonnement';
		new Event(e).stop();
	});
	
}


/* **************************************************************
 * Doorsturen
 * **************************************************************/

function initDoorsturen() {
	var doorstuurlink = $$('.doorsturen_link');
	
	if (!doorstuurlink) {
		return;
	}
	
	$each(doorstuurlink, function (d) {
		div_id = 'doorsturen_' + d.id.substr(d.id.lastIndexOf('_') + 1);
		
		var doorsturen = $(div_id);
		d.addEvent('click', function(e) {
			var height = doorsturen.getStyle('height');
			doorsturen.tween('height', (height == 100) ? [100,0] : [0, 100]);
			new Event(e).stop();
		});
		
		doorsturen.getElements('form').addEvent('submit', function(e) {
			if (($('ontvanger_naam').value == '') ||
				($('ontvanger_email').value == '') ||
				($('verzender_naam').value == '') ||
				($('verzender_email').value == '')) {
				new Event(e).stop();
			}
		});	
	});
}


/* **************************************************************
 * Registreren
 * **************************************************************/

function initRegisterSubmit() {
	nw = $('networklogin_submit_aanmelden')
	if(!nw) {
		return;
	}
	nw.getParents('form').addEvent('submit', function(e) {
		lg.start('Bezig met verwerken van uw aanvraag...');
		e.stop();
		new Request.JSON({
			url: $('base').get('href')+'user/register',
			timeout: 30,
			data: {
				email: $('networklogin_aanmelden_email').get('value'),
				ww1: $('networklogin_aanmelden_ww').get('value'),
				ww2: $('networklogin_aanmelden_ww2').get('value')
			},
			onSuccess: function(json, text) {
				lg.stop();
				if(json) {
					if(json.error=='0') {
						window.location = window.location;
					}
					else {
						alert('Fout opgetreden bij registreren: '+json.msg);
					}
				}
			},
			onFailure: function (xhr) {
				lg.stop();
				alert('De aanvraag kostte teveel tijd, probeert u het nog eens.');
			}
			}).send();
	});
}


/* **************************************************************
 * Aanmelden nieuwsbrief
 * **************************************************************/

function initRegisterNewsletterSubmit() {
	
	$$('.newsletter_form input[type="text"]').each(function(item){
		new OverText(item,{poll:true,delay:100});//, {wrap: true});
	});

}


/* **************************************************************
 * Enter > Submit
 * **************************************************************/

// Op enter drukken in een form zonder submit button. Nodig omdat we vaak image inputs gebruiken daarvoor.
function initEnterSubmitFix() {
/*    $$('input').addEvent('keydown', function(e) {
    	if (e.key == 'enter') {
    		this.getParent('form').submit();
    		new Event(e).stop();
    	}
    });*/
	$$('input').addEvent('keydown', function(e) {
		if(e.key == "enter") { // 13 == '\r'
			e.stop();
			frm = this.getParent('form');

			if(smt = frm.getElement(
					'input[type="image"],'+
					'input[type="submit"]')) {
				smt.click();
			}
		}
	})
}


/* **************************************************************
 * Categorylink hover
 * **************************************************************/

// Article niet highlighten wanneer je over de categorylink gaat.
function initArticleCategoryHover() {
	$$('.article').each(function(el) {
		el.getElements('.article_details_category').addEvent('mouseenter', function(e) {
			el.setStyle('backgroundColor', '#ffffff');
		});
		el.getElements('.article_details_category').addEvent('mouseleave', function(e) {
			el.setStyle('backgroundColor', null);
		});
	});
}



function initNetwerklinks() {
	$$('.widget_netwerk_footer_link, .netwerk_footer_link').addEvent('click', function() {
		window.location.href = $('base').href + 'netwerk/';
	});
}

