// JavaScript Document

$(document).ready(function() {
	
	
	_formulieren();
	
	
	$("A.tooltip").click(function() {
		tooltip($(this).attr('href'));
		$("A.tooltip").removeClass('active');
		$(this).addClass('active');
		return false;
	});
	
	
	$("A.tooltip-search").click(function() {
		tooltipSearch($(this));
		return false;
	});
	
	$(".tooltip-close").click(function() {
		$("#tooltip").hide();
		return false;
	});
	
	
	$(".search-input").focus(function() {
		if ($(this).val() == $(this).attr('alt')) {
			$(this).val('');
		}
	});
	$(".search-input").blur(function() {
		if ($(this).val() == '') {
			$(this).val($(this).attr('alt'));
		}
	});
	
	$(".search-form").submit(function() {
		var obj = $(".search-input", this);
		
		if (obj.val() > '' && obj.val() != obj.attr('alt')) {
			location = '/web/search/'+base64_encode(obj.val());	
		}
		return false;
	});
	
	$('#cycle').cycle({
        fx:      'scrollVert',
		speed:500,  
        timeout:  0,
        prev:    '#prev',
        next:    '#next',
		rev: 1
    });
	
	$("#menu IMG").hover(function() {
		var _tmp = $(this).attr('src').replace('normal','hover');
		$(this).attr('src', _tmp);
	},
	function() {
		var _tmp = $(this).attr('src').replace('hover','normal');
		$(this).attr('src', _tmp);
	});


	
	
	$.pngfix('/images/iepnghack/pixel.gif');
	$("#tooltip-background, .categorie-front-flip IMG, .search .search-background, IMG[src*='.png']").pngfix();
	
});


function tooltip(id) {
	$("#tooltip").hide();
	
	var _id = '#description-'+id;
	var _description = $(_id).text();
	var _subject = $("A[href='"+id+"']").text();
	
	var _html = '<p><strong>'+_subject+'</strong></p><p>'+_description+'</p>';
	
	$("#tooltip-content").html(_html);
	$("#tooltip-number").html(id+'.');
	
	$("#tooltip").show();	
}



function tooltipSearch(obj) {
	$("#tooltip").hide();
	
	var _id = '!';
	var _description = obj.parent().next().html();
	var _subject = obj.attr('title');
	
	var _html = '<p><strong>'+_subject+'</strong></p><p>'+_description+'</p>';
	
	$("#tooltip-content").html(_html);
	$("#tooltip-number").html(_id);
	
	$("#tooltip").show();	
}




var _formulieren = function(){
	
	// Form checker
	$('form').submit(function(){					
		var txt = '';

		// standaard form check
		$(this).find('input, textarea').each(function(){
			var label = $(this).parents('td').prev().children('label').text();
			
			switch($(this).attr('alt')){
				case 'required':
					if( $(this).attr('alt') && $(this).val().length == 0 ){
						txt += ' - ' + label + ' is verplicht.\n';
					}
				break;
				case 'email':
					if(!emailValidation($(this).val())){
						txt += ' - ' + label + ' is geen geldig emailadres.\n';
					}
				break;
				case 'url':
					if(!urlValidation($(this).val())){
						txt += ' - ' + label + ' is geen geldige URL.\n';
					}
				break;
				case 'number':
					if(!intValidation($(this).val())){
						txt += ' - ' + label + ' is geen geldig nummer.\n';
					}
				break;
				case 'date':
					if(!dateValidation($(this).val())){
						txt += ' - ' + label + ' is geen geldige datum notatie gebruik (dd-mm-jjjj).\n';
					}
				break;
			}
		});
		
		if(txt && txt.length > 0){
			var header = '___________________________________________________________\n\n \n\n';
			var footer = '___________________________________________________________\n\n ';
			alert(header + txt + footer);
			return false;
		}
	});
}


var emailValidation = function(str) {
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
	   return false
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   return false
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		return false
	}

	 if (str.indexOf(at,(lat+1))!=-1){
		return false
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		return false
	 }

	 if (str.indexOf(dot,(lat+2))==-1){
		return false
	 }
	
	 if (str.indexOf(" ")!=-1){
		return false
	 }
	 return true					
}

var urlValidation = function(url){
    var RegExp = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/;
    if(RegExp.test(url)){
        return true;
    }else{
        return false;
    }
}

var intValidation = function(int){
	var valid = '1234567890';
	var bool = true;
	
	if(int.length > 0){
		for(i=0; i<int.length; i++){
			if( valid.indexOf(int[i]) < 0 ){
				bool = false;
			}
		}
	}
	else{
		bool = false;	
	}
	
	return bool;
}

var dateValidation = function(date){
	var valid = '1234567890';
	var bool = true;
	var glue = '-';
	var check=new Date();
		
	
	if(date.length == 10){
		if(date.indexOf(glue) == 2 && date.lastIndexOf(glue) == 5 && intValidation(date.replace(/-/g,''))){
			dateParts = date.split('-',3);
			
			check.setFullYear(dateParts[2],(dateParts[1]-1),dateParts[0]);
			
			debug(check);
			var day = (check.getDate() < 10 ? '0'+check.getDate() : check.getDate());
			var month = parseInt(check.getMonth()+1) < 10 ? '0'+check.getMonth()+1 : check.getMonth()+1;
			var year = check.getFullYear()
			test = day.toString().replace('00','0')+'-'+month.toString().replace('00','0')+'-'+year;
			
			
			
			debug(month);
			debug(date);
			debug(test);
			
			if(date != test){
				bool = false;
			}
			
		}
		else{
			debug('fout bij cehck 2');
			bool = false;	
		}
	
	}
	else{
		bool = false;	
	}
	
	return bool;
}
