String.prototype.trim = function() {
  var val = this;
  val = val.replace(/^\s+/,'');
  val = val.replace(/\s+$/,'');
  return val;
}
function empty_recursive(el){
	$(el).val($(el).val().substring(0, $(el).val().length-1));
	if($(el).val() != ''){
		setTimeout(function(){
			empty_recursive($(el));
		}, 2);
	}
}
function refill_recursive(el){
	$(el).val($(el).attr('defVal').substring(0, $(el).val().length+1));
	if($(el).val() != $(el).attr('defVal')){
		setTimeout(function(){
			refill_recursive($(el));
		}, 2);
	}
}


var blackout = function(attachTo, _what){
	var attachedTo;
	var sizeX = 480;
	var sizeY = 360;
	var showSpeed = 200;
	var hideSpeed = 100;
	var blackout = $('<div class="blackout"></div>');
	var blackoutContent = $('<div class="blackout-content"><div class="centerh"><div class="centerv"><div class="content"></div><div class="closebox">&nbsp;</div></div></div></div>');
	var what;
	var show = function(){
		blackout.css({display: 'block', opacity:0})
		blackout.animate({ opacity: 0.8 }, showSpeed/2, function(){ blackoutContent.fadeIn(showSpeed/2); });
		if(showSpeed == 0){ blackoutContent.fadeIn(); }
	}
	var hide = function(){
		blackoutContent.fadeOut(hideSpeed/2, function(){ blackout.fadeOut(hideSpeed/2); });
		if(hideSpeed == 0){ blackout.fadeOut();	 }
	}
	var attach = function(attachTo){
	
		attachedTo = $(attachTo);
		attachedTo.click(function(){
			show();
		});
	}
	var setWhat = function(_what){
		if(typeof(_what) == 'string'){
			if(!_what.match(/^<.+>.+<\/.+>$/)){
				_what = '<p>'+_what+'</p>';
			}
		}
		$('body').append('<div class="tmpprl"></div>');
		$('div.tmpprl').html(_what);
		$('div.tmpprl').remove();
		
		what = $(_what);
		blackoutContent.find('.content').html(what);

		
	}
	var setSize = function(){
		blackoutContent.find('.content').css({width: sizeX+'px',height: sizeY+'px', top: -(sizeY/2)+'px', left: -(sizeX/2)+'px'});
		blackoutContent.find('.closebox').css({ top: -((sizeY/2)+15)+'px', left: ((sizeX/2)-15)+'px'});
		blackoutContent.find('.closebox').click(function(){ hide(); });
	
	}
	
	var init = function(){
		blackout.appendTo('body');
		blackoutContent.appendTo('body');
		setSize();
		setWhat(_what);
		attach(attachTo);
		$('body').append('<div style="display:none;">'+_what+'</div>');
	}
	
	init();
	
}





$(document).ready(function(){

	var togg = function(event){
		$(this).toggleClass('active').find('ul').slideToggle('fast'); 


	}
	
	
	// dropdown{
	var selectf = function(){
		var savelist = $(this).parents('ul.dropdown>li>ul').clone();
		if($(this).attr('lvalue') != $(this).parents('ul.dropdown>li').attr('defaultValue')){
			$(this).parents('ul.dropdown li').attr('lvalue', $(this).attr('lvalue')).text($(this).text()).append('<br />').append(savelist);
		}
		else{
			$(this).parents('ul.dropdown>li').attr('lvalue', $(this).parents('ul.dropdown>li').attr('defaultValue')).text($(this).parents('ul.dropdown>li').attr('default')).append(savelist);
		}
	}
	$('ul.dropdown').each(function(){
		$(this).find('li').attr('default', String($(this).find('li').html().match(/^[^<]*/)).trim());

	});
	$('ul.dropdown > li').live('click', togg);
	$('ul.dropdown > li > ul > li').live('click', selectf);
	$('ul.dropdown').parents('form').submit(function(){
		var for_id = $(this).find('ul.dropdown > li').attr('for_id');
		$('#'+for_id).val($(this).find('ul.dropdown > li').attr('lvalue'));
		return false;
	});	
	// end-dropdown }
	
	
	
	
	
	$('input[type=text]').each(function(){
		if($(this).val().length > 0){
			$(this).attr('defVal', $(this).val());
			$(this).focus(function(){
				if($(this).val() == $(this).attr('defVal')){
					empty_recursive($(this));
				}
			});
			$(this).blur(function(){
				if($(this).val() == ''){
					refill_recursive($(this));
				}
			});
		}
	});
	$('form#zoekeenziekenhuis-form').submit(function(){
		var radius = $(this).find('#afstand > li').attr('lvalue');
		var zoek = $(this).find('#plorpc').val();
		var goon = true;
		
		
		if(radius == '' || radius == ' ' || radius == $(this).find('#afstand > li').attr('defaultValue')){
			$(this).find('#afstand').css({border:'1px solid #990000'});
			goon = false;
		}
		else{
			$(this).find('#afstand').css({border:'1px solid #BFBDBF'});
		}
		
		if(!$(this).find('#plorpc').hasClass('nval') && (zoek == '' || zoek == ' ' || zoek == $(this).find('#plorpc').attr('defVal'))){
			$(this).find('#plorpc').css({border:'1px solid #990000'});
			goon = false;
		}		
		else{
			$(this).find('#plorpc').css({border:'1px solid #BFBDBF'});
		}
		
		
		if(goon) window.location = base+'zoek-een-ziekenhuis/search/'+zoek+'/'+radius+'.html';
		return false;
	});

	
	$('#print_page').click(function(){ window.print(); });
	
	
});
