//overwrite default javascript alert function
function alert(text, options){
	if(!options){
		var options = {
			close: function() {
				$(this).dialog("destroy");
			},
			modal: true,
			overlay: {
		      opacity: 0.5,
		      background: "black"
		    },
		    buttons: {
				Ok: function() {
					$(this).dialog('close').remove();
				}
			},
			close: function(){
				$(this).dialog("destroy");
			}

		};
	}
	
	var alert_dialog = $('<div></div>').attr('id', 'alert_dialog');
	alert_dialog.appendTo(document.body);
	$('#alert_dialog').text(text);
	$('#alert_dialog').dialog(options);
	return false;
}

function confirmDialog(jObj){
	var redirectRef = $(jObj).attr('href');
	var title = $(jObj).attr('title');
    var alert_dialog = $('<div></div>').attr('id', 'confirmDialog');
	alert_dialog.appendTo(document.body);
	$('#confirmDialog').text(title);
	$('#confirmDialog').dialog(
    { 
    	open: function(){
    	 	$('.ui-dialog-titlebar').corner("top 5px");
    	},
    	buttons: { 
    		Abbrechen: function(){
    		$(this).dialog('close').remove();
    		},
    		Ja: function(){
    			$(this).dialog('close');
    			if(redirectRef.length > 0 ) document.location.href = redirectRef;
    		}
    	},
    	close: function(){
    	 	$(this).dialog("destroy");
    	}
	});
    return false;
}

function getIdFromClass(className, subClassName){
	classNameArray = className.split(" ");
	for(i=0; i< classNameArray.length; i++ ){
		var className = classNameArray[i];
		var position = className.search(subClassName);
		if( position != -1){
			//extract the id
			return className.replace(subClassName,"");
		}
	}
	
	return 0;
}

function socialLink(service){
	var title = escape(document.title);
	var url = escape(document.URL);
	window.open('/social_links.php?service='+service+'&title='+title+'&url='+url);
	
	return false;
}

function guestInfo(){
	$("#guestInfo").dialog({
		modal: true,
		width: 350,
		close: function(){
			$(this).dialog("destroy");
		}
	});
}

//cobo: top_inhalte
function topItemPaging(klid, pageid, count){
	$("#kl_"+klid).load("/pu_retter/ajax/getTopItems.php?page="+pageid+"&id="+count);
}

function showPopup (showCase){
	var content = "";
	var title = "";
	switch(showCase){
		case "Nutzungsbedingungen":
			content = $("<div></div>").attr("id", "showPopup").css("overflow","auto").css("height","200px").load("/pu_retter/ajax/agreement.php?action=nutzung .content");
			title = showCase;
			break;		
		case "Datenschutz":
			content = $("<div></div>").attr("id", "showPopup").css("overflow","auto").css("height","200px").load("/pu_retter/ajax/agreement.php?action=datenschutz .content");
			title = showCase;
			break;
		case "Verhaltenskodex":
			content = $("<div></div>").attr("id", "showPopup").css("overflow","auto").css("height","200px").load("/pu_retter/ajax/agreement.php?action=kodex .content");
			title = showCase;
			break;		
		case "Impressum":
			content = $("<div></div>").attr("id", "showPopup").css("overflow","auto").css("height","200px").load("/pu_retter/ajax/agreement.php?action=impressum .content");
			title = showCase;
			break;			
		case "Teilnahmebedingungen":
			content = $("<div></div>").attr("id", "showPopup").css("overflow","auto").css("height","200px").load("/de/teilnahmebedingungen-gewinnspiel.html .content");
			title = showCase;
			break;
		case "Umfragebedingungen":
			content = $("<div></div>").attr("id", "showPopup").css("overflow","auto").css("height","200px").load("/de/teilnahmebedingungen-gewinnspiel-umfrage.html .content");
			title = "Teilnahmebedingungen";
			break;	
		case "Kontakt":
			function checkFormContactMailer(formData, jqForm, options){
				for (var i=0; i < formData.length; i++) { 
					if (!formData[i].value && formData[i].name.search(/_qf_.+/)  == -1 ) { 
		           		alert('Bitte alle Felder ausf'+unescape("%FC")+'llen!'); 
		            	return false; 
		        	}
				}
			};
			content = $("<div></div>").attr("id", "showPopup").css("overflow","auto").css("height","200px").load("/pu_retter/ajax/agreement.php?action=kontakt", function(){
				$("#contactForm").submit(function(){
					$(this).ajaxSubmit({
						beforeSubmit : checkFormContactMailer,
						target: '#contactForm'
					});
					return false;
				});
			});
			title = showCase;
			break;
	}
	if(content != ""){
		$("body").append(content);

		$(content).dialog({
			close: function(){
				$(this).dialog("destroy");
			},
			width: 600,
			height: 400,
			title: title
		});
	}	
	return false;
}

function toggleMoreLink(id)
{
	$('.comment_teaser_'+id).toggle(
		function()
		{
			var searchString = $('.comment_teaser_more_'+id).text();
			
			if(!(searchString.search('/mehr/') == -1))
			{
				$('.comment_teaser_more_'+id).text(' mehr ...');
			}
			else
			{
				$('.comment_teaser_more_'+id).text(' weniger ...');
			}
		}
		
	);
	
	return false;
}




$(document).ready(function(){

	$(".aufeinenblick").mouseover (
		function () {$("#show_all_layer").show();}
	)
	$(".aufeinenblick").mouseout (
		function () {$("#show_all_layer").hide();}
	)
	$("#show_all_layer").mouseover (
		function () {$("#show_all_layer").show();}
	)
	$("#show_all_layer").mouseout (
		function () {$("#show_all_layer").hide();}
	)
	
	$(".tabs").tabs();
	  
	//confirm dialog
	$('.confirmDialog').live('click', function(){
		confirmDialog(this);
		return false;
	});
    
	//confirm Tooltip
	$('.confirmTooltip').live('click', function(e){
 		var alert_dialog = $('<div></div>').attr('id', 'confirmTooltip');
 		
		alert_dialog.appendTo(document.body);
		var title = $(this).attr('title');
		if(title.length == 0){
			title = $(this).find('.text').html();
		}
		$('#confirmTooltip').html(title);
		$('#confirmTooltip').dialog({ 
			open: function(){
        	 	$('.ui-dialog-titlebar').corner("top 5px");
        	},
        	close: function(){
        	 	$(this).dialog("destroy");
        	},
        	position: [e.clientX+10,e.clientY - $(this).height()]
        	
		});
        return false;		
		
	});   	
	
	//confirm Tooltip for activity bar
	$('.confirmTooltipActivityBar').live('click', function(e){
 		var alert_dialog = $('<div></div>').attr('id', 'confirmTooltip');
 		
		alert_dialog.appendTo(document.body);
		var title = 'Der Aktivit&auml;tsbalken zeigt dem User wie aktuell der entsprechende Beitrag ist. Dieser berechnet sich aus der Aktualit&auml;t des Beitrags und den hierzu erg&auml;nzten Dingen, wie z.B. zugef&uuml;gte Fakten, Kommentare, Bilder, Videos usw.';
		$('#confirmTooltip').html(title);
		$('#confirmTooltip').dialog({ 
			open: function(){
        	 	$('.ui-dialog-titlebar').corner("top 5px");
        	},
        	close: function(){
        	 	$(this).dialog("destroy");
        	},
        	position: [e.clientX+10,e.clientY - $(this).height()]
        	
		});
        return false;		
		
	});  
	
	//confirm Tooltip for activity bar
	$('.confirmTooltipRank').live('click', function(e){
		$('#confirmTooltip').remove();
 		var alert_dialog = $('<div></div>').attr('id', 'confirmTooltip');
 		
		alert_dialog.appendTo(document.body);
		var title = 'Der Rang eines Mitglieds errechnet sich aus dessen Aktivit&auml;t auf dem Portal! Dabei werden verschiedene Aktionen auf retter.tv mit unterschiedlichen Punkten bewertet. Der aktivste Nutzer besitzt immer 100% und ist somit das Ma&szlig; f&uuml;r alle anderen!';
		$('#confirmTooltip').html(title);
		$('#confirmTooltip').dialog({ 
			open: function(){
        	 	$('.ui-dialog-titlebar').corner("top 5px");
        	},
        	close: function(){
        	 	$(this).dialog("destroy");
        	},
        	position: [e.clientX+10,e.clientY - $(this).height()]
        	
		});
        return false;		
		
	});   
	
	
	//mouseover Tooltip
	$('.mouseoverTooltip').hover( 
		
		function (e) 
		{
	 		var alert_dialog = $('<div></div>').attr('id', 'mouseoverTooltip');
	 		
			alert_dialog.appendTo(document.body);
			var title = $(this).attr('title');
			if(title.length == 0){
				title = $(this).find('.text').html();
			}
			$('#mouseoverTooltip').text(title);
			$('#mouseoverTooltip').dialog({ 
				open: function(){
	        	 	$('.ui-dialog-titlebar').corner("top 5px");
	        	},
	        	close: function(){
	        	 	$(this).dialog("destroy");
	        	},
	        	position: [e.clientX+10,e.clientY - $(this).height()]
	        	
			});
	        return false;		
		},
		function ()
		{
			$('#mouseoverTooltip').dialog('close');
		}
	);   
	
	//boxes
	$('.head').corner("top 5px");
	$('.head .first').corner("tl 5px");
	//$('.shadow').shadow({ color: "#CCC", offset: -2, opacity: 0.2 });
	//$('.shadow').dropShadow({ color: "#ccc", opacity: 0.8, blur: 1, left: 4, top: 4 });
	
	//eventbox
	var tabContainers = $('div.eventbox .tabContent > div');
	tabContainers.hide().filter(':first').show();
			
	$('div.eventbox .head > a').click(function () {
		tabContainers.hide();
		tabContainers.filter(this.hash).show();
		$('div.eventbox .head > a').removeClass('active');
		$(this).addClass('active');
		return false;
	}).filter(':first').click();	
	
	//topitembox
	var tabContainersTop = $('div.topitembox .tabContent > div');
	tabContainersTop.hide().filter(window.location.hash ? '[hash=' + window.location.hash + ']' : ':first').show();
			
	$('div.topitembox .head > a').click(function (e) {
		e.preventDefault();
		tabContainersTop.hide();
		tabContainersTop.filter(this.hash).show();
		$('div.topitembox .head > a').removeClass('active');
		$(this).addClass('active');
		return false;
	}).filter(window.location.hash ? '[hash=' + window.location.hash + ']' : ':first').click();
	
	//commentbox
	var tabContainersComments = $('div.commentbox .tabContent > div');
	tabContainersComments.hide().filter(':first').show();
			
	$('div.commentbox .head > a').click(function () {
		tabContainersComments.hide();
		tabContainersComments.filter(this.hash).show();
		$('div.commentbox .head > a').removeClass('active');
		$(this).addClass('active');
		return false;
	}).filter(':first').click();

	//$('.eventbox .head').corner("top 5px");
	//$('.eventbox .head .first').corner("tl 5px");
	
	$(".guestInfo").click(function(e){
		guestInfo();
		e.preventDefault();
	});
	
	
	//Set maxlength of all the textarea (call plugin) - 
	//firefox 4 bug $('textarea:visible').not('.comment_area').maxlength();
        
});

/*
  @author: remy sharp / http://remysharp.com
  @params:
    feedback - the selector for the element that gives the user feedback. Note that this will be relative to the form the plugin is run against.
    hardLimit - whether to stop the user being able to keep adding characters. Defaults to true.
    useInput - whether to look for a hidden input named 'maxlength' instead of the maxlength attribute. Defaults to false.
    words - limit by characters or words, set this to true to limit by words. Defaults to false.
  @license: Creative Commons License - ShareAlike http://creativecommons.org/licenses/by-sa/3.0/
  @version: 1.2
  @changes: code tidy via Ariel Flesler and fix when pasting over limit and including \t or \n
*/

(function ($) {

$.fn.maxlength = function (settings) {

    if (typeof settings == 'string') {
        settings = { feedback : settings };
    }

    settings = $.extend({}, $.fn.maxlength.defaults, settings);

    function length(el) {
    	var parts = el.value;
    	if ( settings.words )
    		parts = el.value.length ? parts.split(/\s+/) : { length : 0 };
    	return parts.length;
    }
    
    return this.each(function () {
        var field = this,
        	$field = $(field),
        	$form = $(field.form),
        	limit = settings.useInput ? $form.find('input[name=maxlength]').val() : $field.attr('maxlength'),
        	$charsLeft = $form.find(settings.feedback);

    	function limitCheck(event) {
        	var len = length(this),
        	    exceeded = len >= limit,
        		code = event.keyCode;

        	if ( !exceeded )
        		return;

            switch (code) {
                case 8:  // allow delete
                case 9:
                case 17:
                case 36: // and cursor keys
                case 35:
                case 37: 
                case 38:
                case 39:
                case 40:
                case 46:
                case 65:
                    return;

                default:
                    return settings.words && code != 32 && code != 13 && len == limit;
            }
        }


        var updateCount = function () {
            var len = length(field),
            	diff = limit - len;

            $charsLeft.html( diff || "0" );

            // truncation code
            if (settings.hardLimit && diff < 0) {
            	field.value = settings.words ? 
            	    // split by white space, capturing it in the result, then glue them back
            		field.value.split(/(\s+)/, (limit*2)-1).join('') :
            		field.value.substr(0, limit);

                updateCount();
            }
        };

        $field.keyup(updateCount).change(updateCount);
        if (settings.hardLimit) {
            $field.keydown(limitCheck);
        }

        updateCount();
    });
};

$.fn.maxlength.defaults = {
    useInput : false,
    hardLimit : true,
    feedback : '.charsLeft',
    words : false
};

})(jQuery);
