//*****************************************************************************
//****	Entwikler: Peter Schulz
//*****************************************************************************

(function($) {

	var options = {};

	$(document).ready(function(){
			$.ajaxload.options()
			$(options.element).each(function(){
				$(this).click(function(){
					var el = this;
					var url = $(this).attr(options.src);
					var targetid = $(this).attr(options.target);
					$.ajaxload.load(targetid,url);
					this.blur();
					return false;
				});
			});
	});

	/*
	$.fn.ajaxload = function(settings) {
			$.ajaxload.options(settings)
			$(this).each(function(){
				$(this).click(function(){
					var el = this;
					var url = $(this).attr(options.src);
					var targetid = $(this).attr(options.target);
					$.ajaxload.load(targetid,url);
					this.blur();
					return false;
				});
			});
	}
	*/

	//**** public methods *************************************************
  $.ajaxload = {

		//**** options *******************************************
		options: function(settings) {
				options = jQuery.extend({
					element: "a.ajaxload",
					src: "href",
					target: "target",
					loading: "<span class='ajaxload-loading'>loading...</span>",
					error: "<span class='ajaxload-error'>error!!!</span>"
				}, settings);

		},



    //**** load ***********************************************
		load: function(targetel, url, query, callback){

			var target = $(targetel);
			var timestamp = "timestamp=" + Date.parse(new Date());
			if(url.search(/\?/i) > 0){
				url += "&" + timestamp;
			}else{
				url += "?" + timestamp;
			}
			//load iframe
			if($(target).is("iframe")){
	   			var newtarget = $(target).clone(true);
	   			$(target).replaceWith(newtarget);
				$(newtarget).attr("src", url );
				return;
			}

			//load window
			if($(target).is("body")){
				if(query){
					document.location = url + "&" + query;
				}else{
					document.location = url;
				}
				return;
			}

			//load ajax
			$(target).html(options.loading);
			if(query){
				var ajaxType="POST";
			}else{
				var ajaxType="GET";
			}

			$.ajax({
				type: ajaxType,
				url: url,
				data: query,
				error: function(data){
					$(target).html(options.error);
				},
				success: function(data){
					$(target).html(data);
					jQuery( callback );
					//callback.call();

				}
			});
			return;
		}

  };
	//**** end public methods *********************************************

})(jQuery);

