var Browser = {
  Version: function() {
    var version = 999; // we assume a sane browser
    if (navigator.appVersion.indexOf("MSIE") != -1)
      // bah, IE again, lets downgrade version number
      version = parseFloat(navigator.appVersion.split("MSIE")[1]);
    return version;
  }
}
var validate = true;
$(document).ready(function(){
	$("a.colorbox").click(function(e){
		e.preventDefault();
	});
	$("a.colorbox").colorbox();
	$('#genres li ul.subgenres').hide();
	$('#genres li a.active').siblings('ul.subgenres').show();
	$('form button').hover(function(){
		$(this).addClass('hover');
	}, function() {
		$(this).removeClass('hover');
	});
	$('ul.fiches li a').click(function(e){
		e.preventDefault();
	});
	$('ul.fiches li').hover(function(){
		$(this).find('img').show();
		$(this).addClass('hover');
	}, function(){
		$(this).find('img').hide();
		$(this).removeClass('hover');
	}).click(function(){
		window.location = $(this).find('a').attr('href');
	});
	$('form td select').attr('disabled', true);
	//open external links.
	$('a.external').click(function(event){
		event.preventDefault();
		window.open($(this).attr('href'));
	});
	//bind contact form submit
	$('#form_contact').submit( function() {
	
		var form = $(this).attr('id');
		return validate_form(form);
	});
	//bind request form submit
	$('#form_request').submit( function() {
		$("#form_request_product_id").attr("disabled", false);
		
		var form = $(this).attr('id');
		var result = validate_form(form);
		$("#form_request_product_id").attr("disabled", true);
		return result;
	});
	
	//genres tooltip
	if (!isIDevice) {
		$('ul#genres li a').hover(function(e){
			if ($(this).parent().find('span.tooltip').length > 0) {
				$('#tooltip').show();
				$('#tooltip div.content').html($(this).parent().find('span.tooltip').html());
			}
			
		}, function(){
			$('#tooltip').hide();
		});
		$('ul#genres li a').mousemove(function(e){
			$('#tooltip').css('left', e.pageX - 6).css('top', e.pageY - $('#tooltip').height() - 5);
		});
	}
	$('#search').focus(function(e){
		if ($(this).val() == 'search the site') {
			$(this).val('');
		}
	});
	$('#search').blur(function(e){
		if ($(this).val() == '') {
			$(this).val('search the site');
		}
	});
	$("#search").autocomplete('/ajax/autocomplete/', {selectFirst: false}); 
	$('#newsletter_email').focus(function(e){
		$('#newsletter input[type=text]').each(function(){
			$(this).addClass('open');
		});
		$('#newsletter_firstname').show();
		$('#newsletter_lastname').show();
		$('#newsletter_company').show();
		$('#newsletter_submit').show();
		if ($(this).val() == 'email') {
			$(this).val('');
		}
	});
	$('#newsletter_email').blur(function(e){
		if ($(this).val() == '') {
			$(this).val('email');
		}
	});
	$('#newsletter_firstname').focus(function(e){
		if ($(this).val() == 'firstname') {
			$(this).val('');
		}
	});
	$('#newsletter_firstname').blur(function(e){
		if ($(this).val() == '') {
			$(this).val('firstname');
		}
	});
	$('#newsletter_lastname').focus(function(e){
		if ($(this).val() == 'lastname') {
			$(this).val('');
		}
	});
	$('#newsletter_lastname').blur(function(e){
		if ($(this).val() == '') {
			$(this).val('lastname');
		}
	});
	$('#newsletter_company').focus(function(e){
		if ($(this).val() == 'company') {
			$(this).val('');
		}
	});
	$('#newsletter_company').blur(function(e){
		if ($(this).val() == '') {
			$(this).val('company');
		}
	});
	$('#newsletter_form').submit(function(e){
		e.preventDefault();
		newsletterIt();
	});
	$('a.banner').hover(function(){
		hovering = true;
	}, function(){
		hovering = false;
	});
	bannerCode();
});

var banner = 0;
var hovering = false;
function bannerCode()
{
	if (!hovering) {
		var speed = 1000;
		var ease = "easeOutExpo";
		var children = $("#banners-holder").children('.banner');
		var obj = $(children[banner])
		var h = obj.outerHeight(true);
		$("#banner").animate({"height": h + "px"}, speed, ease);
		
		//$("#banners-holder").animate({"height": h + "px", "left": "-" + (banner) * 502 + "px"}, speed, ease, function() {
		$("#banners-holder").animate({"left": "-" + (banner) * 502 + "px"}, speed, ease, function() {
			if (children.length == banner+1) {
				banner = 0;
			} else {
				banner++;
			}
		});
	}
	
	setTimeout("bannerCode()",5000);
}
function checkMaxLength()
{
	obj = $(this);
	var val = obj.val();
	var length = val.length;
	var maxlength = obj.attr("maxlength");
	
	if (length > maxlength) {
		obj.val(val.substr(0, maxlength));
	}
	
	var id = "#" + obj.attr("id") + "-maxlength";
	var number = maxlength-length;
	if (number > maxlength) {
		number = maxlength;
	} else if(number < 0) {
		number = 0;
	}

	$(id).html(number);
}
function validate_form(form) {
	
	//functie die automatisch een formulier valideert via ajax, je moet hier niets veranderen
	$("#" + form + "_submit").addClass('disabled');
	
	var validate = true;
	if (validate) {
		var params = $("#" + form).serialize();
		params += "&form_id=" + form;
		//params += "&id=" + id;

		$("#submit_form").attr("disabled", true);
		$("#submit_form").hide();
		
		$.ajax( {
			type : "POST",
			url : "/ajax/validate-form/",
			data : params,
			success : function(msg) {
				if (form != "form_event_surfer") {
					$("#" + form + "_submit").removeClass('disabled');
				} else {
					$("#submit_form").show();
				}
				
				validate = true;
				
				$("#submit_form").removeAttr("disabled");
			
				msg = eval(msg);
	
				$("input, textarea, select").each( function() {
					if (this.id.indexOf(form) != -1) {
			
						$(this).removeClass("error");
						$(this).removeClass("error_text");
						$(this).addClass($(this).attr("type"));
					}
				});
	
				if (msg) {
					var goNext = true;
					

					if (form == "form_newsletter") {
						if (!msg[0]) {
							if ($("#form_newsletter_email").val() != $("#form_newsletter_email2").val()) {
								goNext = false;
								$("#form_newsletter_email").focus();
								$("#form_newsletter_email").select();
								$("#form_newsletter_email").attr("class", "error");
								$("#form_newsletter_email2").attr("class", "error");
								$("#submit_form").show();
							}	
						}
					}
					
					
					if (form == "form_abo") {
						goNext = false;						
					}
					
					if (msg[0]) {
						
						$("#submit_form").show();
						$('td.error-message').show();
					
						for ( var i = 0; i < msg[1].length; i++) {
							var obj = $("#" + msg[1][i]);
							
							if (!obj.attr("id")) {
								$('input').each( function() {
									if (this.id.indexOf(msg[1][i])!=-1) {	
										
										obj = $("#" + this.id);
									}
								});
								
							}
								
							if (i == 0) {
								//obj.focus();
								//obj.select();
							}
							
							var error = "error";
							var type = obj.attr("type");
							
							if (type == "text" || type == "password") {
								error += "_" + type;
							}
	
							if (obj.attr("type") == "checkbox") {
								obj.parent().attr("class", error);			
							}
							obj.attr("class", error);
						}
					} else if (goNext) {
						if (form == "form_contact" || form == "form_request") {
							window.location = "/short/3/thank-you"
						}
					} else {
						window.location = msg[1];						
					}
		
				}
			}
	});
	}
	
	return false;
}

function newsletterIt()
{
	$("div#newsletter input[type=text]").each(function(){
		$(this).removeClass("error");
	});
	
	var params = $("#newsletter_form").serialize();

	var email = $("#newsletter_email").val() != "" && $("#newsletter_email").val() != "email" && isEmail($("#newsletter_email").val());
	if (!email) {
		$("#newsletter_email").addClass("error");
	}
	var firstname = $("#newsletter_firstname").val() != "" && $("#newsletter_firstname").val() != "firstname";
	if (!firstname) {
		$("#newsletter_firstname").addClass("error");
	}
	var lastname = $("#newsletter_lastname").val() != "" && $("#newsletter_lastname").val() != "lastname";
	if (!lastname) {
		$("#newsletter_lastname").addClass("error");
	}
	
	
	if (firstname && lastname && email) {
		$('#newsletter_submit').attr('disabled', true);
		
		$.ajax({
		   type: "POST",
		   url: "/ajax/validate-newsletter/",
		   data: params,
		   success: function(msg){
				$('#newsletter td.form').html($('#newsletter_success').html());
			//newsletterSuccess();
				//window.location = $("#newsletter").attr("rel");
		   }
		 });
	}
}
function isEmail(str)
{
	var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$/;
	return emailPattern.test(str); 
}

