/**
 * strip html tags
 * @param html
 * @return
 */
function strip_tags(html){
 
	//PROCESS STRING
	if(arguments.length < 3) 
	{
		html=html.replace(/<\/?(?!\!)[^>]*>/gi, '');
	} else 
	{
		var allowed = arguments[1];
		var specified = eval("["+arguments[2]+"]");
		if(allowed){
			var regex='</?(?!(' + specified.join('|') + '))\b[^>]*>';
			html=html.replace(new RegExp(regex, 'gi'), '');
		} else
		{
			var regex='</?(' + specified.join('|') + ')\b[^>]*>';
			html=html.replace(new RegExp(regex, 'gi'), '');
			}
		}
 
	//CHANGE NAME TO CLEAN JUST BECAUSE 
		var clean_string = html;
 
	//RETURN THE CLEAN STRING
	return clean_string;
}


/**
 * trim function
 * 
 * @param value
 * @return
 */
function trim(value) 
{
  value = value.replace(/^\s+/,'');
  value = value.replace(/\s+$/,'');
  return value;
}


/*
 * in_array function
 */
function in_array( what, where )
{
	var a=false;
	for(var i=0;i<where.length;i++)
	{
		where[i] = trim(where[i]);
	  if(what == where[i])
	  {
	    a=true;
        break;
	  }
	}
	return a;
}

/**
 * get the digits from a givin width or heigh
 * 20px => 20
 * 
 * @param input
 * @return
 */
function getDigit(input){
    var re = new RegExp(/(\d*)px/);
    var m = re.exec(input);
    if (m == null) 
    {
      return 0;
    } else 
    {
      return parseInt(m[1]);
    }
  };// end of function getDigitFromDigitPX

 
/**
 * maak een input veld van de opgegeven velden
 * bij het loslaten van de focus wordt gekeken of het veld is veranderd
 * zoja dan doet hij een ajax request om de data op te slaan.
 * 
 * @param field = het veld waar het input veld in moet komen, bij leeg dan komt het in de wrapper
 */
(function($)
{
	$.fn.makeInput = function(field, url)
	{		
		//field = (field == '')? this : field;
		var selector = this;
		var click = false;
		var id;
		var input_hidden;
		var selected;
		var tag_name;
		var tag_name_new;
		
		$(selector).click(function(){
			if(click == false)
			{
				id = $(this).find('input:hidden').val();
				input_hidden = "<input type='hidden' value='"+id+"'/>";
				selected = $(this).find(field);
				tag_name = selected.text();
				click = true;
			}
			
			selected.text('').append('<input size="10" type="text" value="'+tag_name+'"/>');
			selected.find('input').focus();
			
			click = true;
		
	
			selected.find('input').blur(function(){
				click = false;
				tag_name_new = $(this).val()==''?tag_name:$(this).val();
				selected.html(tag_name_new + input_hidden);
			
				if(tag_name_new != tag_name)
				{
					$.ajax({
					   type: "POST",
					   url: url+"/admin/tags/edit_tag/"+id,
					   data: "tag_name="+$(this).val(),
					   error: function(html){
							selected.html(tag_name);
						},
						success: function(html){
							var parent = selected.parents().get(1);
							$(parent).animate({ backgroundColor: "#f48400" }, 500).animate({ backgroundColor: "#F2F2F2 " }, 500);


					   }
					});
				}
			});
		});  		
	}
})(jQuery);
  

/*
* function for when you leave a field he is asking for permission
*/
(function($)
{
	$.fn.stickyFooter = function()
	{		
		var selector = this;
		$(window).scroll(function(){
			var verschil = getDigit($(selector).height());
			var window_height = $(this).height()-22;
			var scroll = $(this).scrollTop() ;
			
			var space = window_height + scroll;
			
			$(selector).css({'top' : space+'px'});
		});
		
		$(window).resize(function(){
			var window_height = $(this).height()-20;
			var scroll = $(this).scrollTop() ;
			
			var space = window_height + scroll;
			
			$(selector).css({'top' : space+'px'});
		});
	}
})(jQuery);
  
/*
* function for when you leave a field he is asking for permission
*/
(function($)
{
	$.ajaxform = function(url)
	{	
		$.ajax({
			   type: "POST",
			   url: settings.url+"/admin/blog/",
			   data: data,
			   error: function(html){
				 $('.save_message').fadeIn();
				 $('.save_message').html('uw pagina is niet opgeslagen '+date.toLocaleString( ) );
				},
			   success: function(html){
				 $('.save_message').fadeIn();
				 $('.save_message').html('uw pagina is opgeslagen op '+date.toLocaleString( ) );
				 
//				 //count one to the counter
//				 var value = $('.tmp_count').html();
//				 value++;
//				 $('#tmp_file img').attr('title', value)
			   }
			 });
	}
})(jQuery);
  
/*
 * function for when you leave a field he is asking for permission
 */
(function($){
	$.leave = function(where,message)
	{
		
		var active = false;
		
		if(where == 'blog')
		{
			$('iframe:eq(1)').contents().find('#xEditingArea iframe').contents().find('*').bind('keydown', function(){
				active = true;
			});
			
		}
		$('iframe:eq(0)').contents().find('#xEditingArea iframe').contents().find('*').bind('keydown', function(){
			active = true;
		});
		
		$('a').click(function(){
			if(active)
			{
				var go = confirm(message);
				
				if(!go)
				{
					window.stop();
				}
			}
		});
	}
})(jQuery);

/**
 * timeout on wrapped elements
 */
(function($)
{
	$.fn.wait = function(time, type) 
	{
	    time = time || 1000;
	    type = type || "fx";
	    return this.queue(type, function() 
	    {
	        var self = this;
	        setTimeout(function() 
	        {
	            $(self).dequeue();
	        }, time);
	    });
	};
})(jQuery);






/**
 * auto saving
 */
(function($)
{
	$.autoSave = function(options)
	{
		var date = new Date();
		var settings = $.extend({
			module : '',
			url : '',
			time : '5000',
			uitzonderingen: ''
		},options||{});
		
		
		
		setTimeout('$.autoSave({uitzonderingen:"'+settings.uitzonderingen+'", module : "'+settings.module+'", url : "'+settings.url+'", time : "'+settings.time+'"})', settings.time);
		
		settings.uitzonderingen = 'nieuws, '+settings.uitzonderingen;
		settings.uitzonderingen = settings.uitzonderingen.split(',');
		
		if(in_array(settings.module, settings.uitzonderingen))
		{
			var titel_html = $("input[name='titel']").val();	
			var intro_html = $('iframe:eq(0)').contents().find('#xEditingArea iframe').contents().find('body').html();
			var content_html = $('iframe:eq(1)').contents().find('#xEditingArea iframe').contents().find('body').html();
			
			//var data = "module="+settings.module+"&titel="+titel_html+"&inhoud="+content_html+"&intro="+intro_html;
			var data = {module : settings.module, titel : titel_html, inhoud : content_html, intro : intro_html};
		}
		else
		{
			var titel_html = $("input[name='titel']").val();	
			var content_html = $('iframe:eq(0)').contents().find('#xEditingArea iframe').contents().find('body').html();
			
			//var data = "module="+settings.module+"&titel="+titel_html+"&inhoud="+content_html;
			var data = {module : settings.module, titel : titel_html, inhoud : content_html};
		}
		
		if(content_html != null || intro_html != null)
		{
			$.ajax({
			   type: "POST",
			   url: settings.url+"admin/tmp_save",
			   data: data,
			   error: function(html){
				 $('.save_message').fadeIn();
				 $('.save_message').html('uw pagina is niet opgeslagen '+date.toLocaleString( ) );
				},
			   success: function(html){
				 $('.save_message').fadeIn();
				 $('.save_message').html('uw pagina is opgeslagen op '+date.toLocaleString( ) );
				 
//				 //count one to the counter
//				 var value = $('.tmp_count').html();
//				 value++;
//				 $('#tmp_file img').attr('title', value)
			   }
			 });
		}
	};	
})(jQuery);

// /*
//  * hints for the jquery object
//  */
// (function($)
// {
// 	$.fn.hint = function(values)
// 	{
// 		values = values.split('|');
// 
// 		$(this).addClass("idleField");
// 		
// 		$(this).focus(function() 
// 		{
// 	        if (this.value == this.defaultValue)
// 	        {
// 	        	$(this).removeClass("idleField").addClass("focusField");
// 	        	
// 	        	if(in_array(this.defaultValue, values))
// 	        	{
// 	        		this.value = '';
// 	        	}
// 	        }
// 	        if(this.value != this.defaultValue)
// 	        {
// 		    	this.select();
// 	        }
// 	    });
// 	    $(this).blur(function() 
// 	    {
// 	    	
// 	    	if (this.value == ''){ 
// 	    		$(this).removeClass("focusField").addClass("idleField");
// 	    		this.value = (this.defaultValue ? this.defaultValue : ''); 
// 	    	}
// 	    });
// 	}
// })(jQuery);

/*              
 * hints for the jquery object
 */
(function($)
{
	$.fn.hint = function(values)
	{
		values = values.split('|');

		$(this).addClass("idleField");
		
		$(this).focus(function() 
		{
	        if (this.value == this.defaultValue)
	        {
	        	$(this).removeClass("idleField").addClass("focusField");
	        	
	        	if(in_array(this.defaultValue, values))
	        	{
	        		this.value = '';
	        	}
	        }
	        if(this.value != this.defaultValue)
	        {
		    	this.select();	    	
	        }
	    });
	    $(this).blur(function() 
	    {
	    	if (in_array(this.defaultValue, values) && this.value == ''){ 
	    		$(this).removeClass("focusField").addClass("idleField");
	    		this.value = (this.defaultValue ? this.defaultValue : ''); 
	    	}
	    });
	}
})(jQuery);


/*
 * calulate the tags from the txt field
 */
(function($)
{
	$.calculateTags = function(url, where)
	{
		$(".titel[name='tags']").bind('focus', function(){
			
			if(where == 'blog')
			{
				var content_html = $('iframe:eq(1)').contents().find('#xEditingArea iframe').contents().find('body').html();
			}
			else
			{
				var content_html = $('iframe:eq(0)').contents().find('#xEditingArea iframe').contents().find('body').html();
			}
		
			$.ajax({
			   type: "POST",
			   url: url+"/admin/tags/cal_tags",
			   data: { text : content_html },
				success: function(html){
				   $(".suggest_tags").remove();
				   $(".titel[name='tags']").before(html);
				   
				   $(".suggest_tags li").bind('click', function(){
					   
					   var current = $(".titel[name='tags']").val();
					   if(trim(current) == 'tags')
					   {
						   current = '';
					   }
					   var tags_used = current.split(',');

					   
					   if(!in_array($(this).html(), tags_used))
					   {
						   if(current == '')
						   {
							   //$(".titel[name='tags']").val('');
							   tags = $(this).html()
						   }
						   else
						   {
							   //$(".titel[name='tags']").val('');
							   tags = current+', '+$(this).html()
						   }
					   }
					  
					   $(".titel[name='tags']").val(tags);
				   });
			   }
			});
		});
		
		
	}
})(jQuery);

/*
 * calulate the tags from the txt field
 */
(function($)
{
	$.saveComment = function(url)
	{
		$(".submit").click(function(){
			var parent = $(this).parents().eq(0);
			
			var txt = $(parent).find('.comments_textarea').val();
			var reden = $(parent).find('.input ').val();
			var id = $(parent).find('.id').val();

			
			$.ajax({
			   async: false,	
			   type: "POST",
			   url: url+"/admin/blog/save_comment",
			   data: {id : id, text : txt, reden : reden},
			   success: function(html){
				   $(parent).parents().eq(1).find('.li_breed').stop().animate({ backgroundColor: "#f48400" }, 500).animate({ backgroundColor: "#F2F2F2"}, 500);
			   }
			});
		});	
	}
})(jQuery);

/*
 * calulate the tags from the txt field
 */
(function($)
{
	$.deleteComment = function(url)
	{
		$("img[title='delete']").click(function(){
			var parent = $(this).parents().eq(3);
			var id = $(this).attr('alt');

			$.ajax({
			   async: false,	
			   type: "POST",
			   url: url+"/admin/blog/delete_comment",
			   data: {id : id},
			   success: function(html){
				   parent.slideUp(function(){$(this).remove()});   
			   }
			});
		});	
	}
})(jQuery);
