$(document).ready(function() {
	
	debug('ready');
	
	common();
	
	forms({
		'checkbox':false,
		'selectbox':false,
		'filestyle':false
	});
	
	pngfix();


});

/*** BOVENSTE STUK KAN WEG ***/




// ZET HIER JE COMMON FUNCTIES IN
var common	=	function(){
	
	
	if ($("#film").length > 0) {
		var _tmp = $("#film").text();
		var img = 'http://www.jeugdlinq.nl/style/jeugdlinq/images/common/jeugdlinq-film.jpg';
		
		$('#film').empty().flash({src:'http://st1.streamzilla.jet-stream.nl/questmedia/StreamZillaLoader.php?rtmpURL=rtmp://fl1.streamzilla.jet-stream.nl:80/VOD&amp;previewImage='+img+'&amp;movieName='+_tmp+'&amp;width=480&amp;height=270&amp;autoStart=0&amp;initVolume=75&amp;autoHide=1&amp;playerType=4',
			width: 480,
			height: 270, 
			allowFullScreen: true,
			flasvars: {backcolor: '0xFFFFFF',frontcolor: '0xFFFFFF',lightcolor: '0xFFFFFF',screencolor: '0xFFFFFF'}},
			{ version: 9 }
		);	
	}
	
	
	$('a[href=#verzend]').click(function(){
		
		$('#reageer').css('display','none');
		$('#verzend').css('display','block');
		
		return false;
	});
	
	$('a[href=#reageer]').click(function(){
		
		$('#verzend').css('display','none');
		$('#reageer').css('display','block');
		
		return false;
	});
	
	
	$.gaTracker($('meta[name=analytics]').attr('content'));
	
	// externe links
	$('a[rel="extern"]').attr('target', '_blank');
	
	$("#search-form").submit(function() {
		if ($("#search-input").val() > '') {
			location = $(this).attr('action')+base64_encode( $("#search-input").val() );
		}
		return false;
	});
}

var cycle	=	function(){
	$('.channel-right ul li').each(function(){
		if( $(this).html().length == 0 ){
			$(this).remove();
		}
	}).parent().cycle({
		fx:    'scrollDown',
		sync:  true,
		delay: -2000
	});	
}

// FUNCTIES VOOR TRANSPARANTE PNG ONDERSTEUNING IN IE6
var pngfix	=	function(){
	
	if($.browser.msie && /MSIE\s(5\.5|6\.)/.test(navigator.userAgent)){

		$('.pdf, .download, ul.faq li a span, ul.related li a span, #header ul').each(function(){
			$(this).css('background-image', $(this).css('background-image').replace('.png','.gif') );
		});

		$('#header ul li a').hover(function(){
			$(this).addClass('hover');
		}, function(){
			$(this).removeClass('hover');
		});

			
	}
}

// CONFIGUREER DE DATEPICKER
var calendar	=	function(){
	
	$('.calendar').datepicker({
		onSelect:function(date, elm){ 
			
			debug('Geselecteerde datum: '+date);
			
		},
		onChangeMonthYear:function(date, elm){
			
			debug('Geselecteerde maand / jaar: '+date);
			
		},
		weekHeader: 'wk', 
		showWeeks: true,
		firstDay: 1, 
		changeFirstDay: false,
		changeMonth: false,
		changeYear: false,
		prevText: '', 
		nextText: '' 
	});
	
}

// VERVANG TEKST DOOR EEN AFBEELDING MET EEN MOOIE FONT TEKST
var qtekst	=	function(){

	$('h1:not(:has(img)), h2:not(:has(img))').qtekst({
		techniek: 'LIR',
		fontSize: 19, 
		color: '#007387', 
		backgroundColor: '#ffffff', 
		fontFile: 'AlegaBol.ttf', 
		spacing: 1, 
		lineheight: 0, 
		textShadow: false 
	});
}

// VOEG SCHADUWEN OF RONDINGEN TOE (ALLEEN VOOR MODERNE BROWSERS)
var qshadows	=	function(){
	
	$('#header').qshadow({
		size:3,
		imagePath:'/images/shadows',
		insert: 'append',
		prefix: ''
	});
}

// LAAD EEN GOOGLE MAPS KAART
var gmaps	=	function(){
	
	var content = $('#jmap').html();
	
	$('#jmap').jmap('init', {
		'mapType':'map',
		'mapZoom':12,
		'language': "nl",
		'mapEnableType': false,
		'mapEnableDoubleClickZoom': true,
		'mapEnableScrollZoom': false,
		'mapEnableSmoothZoom': true,
		'mapCenter':[51.74956,4.16897], 
		'mapShowjMapsIcon':false
	}, function (map, element, options){
		$('#jmap').jmap('AddMarker',{
			'pointLatLng':[51.7620063, 4.1911525]
//			'pointHTML':'<strong>Alpharo Consult</strong<br /><br />Vlietstraat 5-7<br />Hardinxveld-Giessendam'
		});
	}).append(content);
}

// GOOGLE ANALYTICS STATISTIEKEN
var gatracker	=	function(){
	
	var GACode = $('meta[name=analytics]').attr('content');
	
	$.gaTracker(GACode, {
		external:	'/external/',
		mailto:		'/mailto/',
		download:	'/downloads/',
		extensions:	[
			'pdf','doc','xls','csv','jpg','gif', 'mp3',
			'swf','txt','ppt','zip','gz','dmg','xml'		
		]
	});
}

// FLASHBESTENDEN LADEN
var flash		=	function(){
	debug('flash code nog niet ingevoegd');	
}

// CUSTOM SCROLLBARS
var scrollpane	= 	function(){
	
	$(".channel-left").jScrollPane({
		scrollbarWidth : 10,
		scrollbarMargin : 0,
		wheelSpeed : 18,
		showArrows : false,
		arrowSize : 31,
		animateTo : false,
		dragMinHeight : 1,
		dragMaxHeight : 99999,
		animateInterval : 100,
		animateStep: 3,
		maintainPosition: true,
		scrollbarOnLeft: false	
	});
}


// FUNCTIES MET BETREKKING TOT FORMULIER, CHECKS, REPLACEMENTS, ETC
var forms	=	function(options){
	
	var $form = $('form:has(.form)');
	
	/* FANCY FORM */
	if(options.checkbox){
		$form.find('input[type=checkbox]').checkbox({
			cls: 'jquery-checkbox',
			empty:'/style/naturecounts/images/common/pixel.gif'
		});
	}
	
	if(options.checkbox){
		$form.find('input[type=radio]').checkbox({
			cls: 'jquery-radio',
			empty:'/style/naturecounts/images/common/pixel.gif'
		});
	}
	
	if(options.selectbox){
		
		var i = 5 + $('select').length;
		
		$('select').selectbox().each(function(){
			
			$(this).parents('li').css({'z-index':i});
			
			i--;
		});
	}
	
	if(options.filestyle){
		$form.find('input[type=file]').filestyle();
	}
	
	/* FIELD ACTIONS */
	$('form').find('input, textarea').focus(function(){
		var $input = $(this);
		
		if($input.val() == $input.attr('alt') || $input.val() == $input.attr('lang') ){
			$input.val('');
		}
	});
		
	$('form').find('input, textarea').blur(function(){
		var $input = $(this);
		var $field = $input.parents('li');
		var value = $input.attr('lang') ? $input.attr('lang') : $input.attr('alt');
		
		if( ($input.val() == '' && value != '') ){
			$input.val(value);
		}
		
		var validate = $field.find('.verplicht').attr('class') ? $field.find('.verplicht').attr('class').replace('verplicht ','') : '';		
				
		if(validate != '' && $field.find('.verplicht').length > 0){
			
			if(!formValidate(validate, $input.val()) || $input.attr('alt') == $input.val() ||  $input.attr('lang') == $input.val()){
				$field.find('.normal').removeClass('ok').addClass('error');
			}
			else{
				$field.find('.normal').removeClass('error').addClass('ok');
			}
		}
	});
	
	$form.find('select').change(function(){
										 
		var $input = $(this);
		var $field = $input.parents('li');
		
		var validate = $field.find('.verplicht').attr('class') ? $field.find('.verplicht').attr('class').replace('verplicht ','') : '';		
		
		if(validate != '' && $field.find('.verplicht').length > 0){
				
			if(!formValidate(validate, $input.val())){
				$field.find('.normal').removeClass('ok').addClass('error');
			}
			else{
				$field.find('.normal').removeClass('error').addClass('ok');
			}
		}

	});
	
	
	$form.find('.hide').append('<input type="hidden" name="sid" value="'+$('meta[name=sid]').attr('content')+'" />');
	
	$form.submit(function(){					
		var $this = $(this);
		var bool = true;
		
		$this.find('.normal').removeClass('error');
			
		$this.find('li').each(function(){
									   
			var $field = $(this);
			var validate = $field.find('.verplicht').attr('class') ? $field.find('.verplicht').attr('class').replace('verplicht ','') : '';

			if(validate != '' && $field.find('.verplicht').length > 0){
				
				var value = $field.find('input, textarea, select').attr('lang') ? $field.find('input, textarea, select').attr('lang') : $field.find('input, textarea, select').attr('alt');
				
				if(!formValidate(validate, $field.find('input, textarea, select').val()) || value == $field.find('input, textarea, select').val()){
					$field.find('.normal').removeClass('ok').addClass('error');
					bool = false;
				}
				else{
					$field.find('.normal').removeClass('error').addClass('ok');			
				}
			}
		});
				
		return bool;
						
	});
	
	
	if( $('.submit-button').length > 0 ){
		$.get("/web/formsave", function(data){
			$('.submit-button').parent().append('<input type="hidden" name="formsave" value="'+data+'"/>');
		});
	}
}

var formValidate = function(type, value){
	
	switch(type){
		case 'verplicht':
		case 'required':
			return value.length == 0 ? false : true;
		break;
		case 'email':
			return validEmail(value);
		break;
		case 'url':
			return validUrl(value);
		break;
		case 'number':
			return validInt(value);
		break;
		case 'date':
			return validDate(value);
		break;
	}
	return true;
}

// CHECK FOR VALID EMAIL
var validEmail	=	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					
}

// CHECK FOR VALID URL
var validUrl	=	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})*)?$/;
    return RegExp.test(url);
}

// CHECK FOR VALID INT
var validInt	=	function(nr){
	var RegExp = /^[-+]?\d+(\.\d+)?$/;
	return RegExp.test(nr);
}

// CHECK FOR VALID DATES
var validDate	=	function(date){
		
	if(date){ 
			
		date = date.replace(/[\/:,\. ]/gi,'-');
		
		var dateParts = date.split('-');
		date = parseInt(dateParts[0]) + '-' + parseInt(dateParts[1]) + '-' + parseInt(dateParts[2]);
		
		var check = new Date();
		check.setFullYear(parseInt(dateParts[2]), parseInt(dateParts[1]), parseInt(dateParts[0])); // Y m d
		
		var checkDate = check.getDate() + '-' + check.getMonth() + '-' + check.getFullYear();
				
		if(date == checkDate && date != 'NaN-NaN-NaN'){
			return true;
		}
		return false
	}
	return false;	
}

// PRINT DEBUG INFO
var debug = function(text){
	if($.browser.mozilla && typeof(console) != 'undefined'){
		console.info(text);	
	}	
}
