var ZornDialog = {
    update: function(title,content){
        jQuery.ajax({type: 'GET',
                     url: '/@@zorndialog',
                     success: function(data){
					 	$('#zorn_dialog').html(data);
				        $('#zorn_dialog').find('.head').text(title);
				        $('#zorn_dialog').find('.content').html(content);
				        ZornDialog.reposition();              
                     }
        })
	},
	show: function(){
    $("#bg_fuzz").css("height", $(document).height());  
    $('#bg_fuzz').fadeIn();
		$('#zorn_dialog').fadeIn();
	},
  close: function(){
      $('#zorn_dialog').fadeOut();
      $('#bg_fuzz').fadeOut();
  },
	reposition: function(){
	    $('#zorn_dialog').css('top',(
           $(window).height()/2 + (
                 document.body.scrollTop || document.documentElement.scrollTop
                 )- $('#zorn_dialog').height()/2+'px')
      );
			$('#zorn_dialog').css('marginLeft','-'+(
			     $('#zorn_dialog').width()/2).toString()+'px'
			);
	}
};

var ZornMessages = {
	add: function(msg,type,loading){
		if (type == 'error')
			$('.zornajaxmsgs').addClass('ui-state-error');
		else
			$('.zornajaxmsgs').removeClass('ui-state-error');
		if (loading)
			ZornMessages.working(true);
		else
			ZornMessages.working(false);
		$('.zornajaxmsgs > div.content').text(msg);
		$('.zornajaxmsgs').show();
	},
	working: function(working){
		if (working)
			$('.zornajaxmsgs > .zornloading').show();
		else
			$('.zornajaxmsgs > .zornloading').hide();
	},
	hide: function(){
		$('.zornajaxmsgs').fadeOut();
	}
};

var ZornLoading = {
	show: function(){
		jQuery.ajax({
			type: 'GET',
			url: '@@zornloading',
			success: function(data){
				$('#zorn_loading').html(data);
			}
		})
		$('#bg_fuzz').fadeIn();
		$('#zorn_loading').fadeIn();
	},
	close: function(){
		$('#zorn_loading').fadeOut();
		$('#bg_fuzz').fadeOut();
	}
};

var ZornActions = {
	del: function(obj_url,elem){
		jQuery.ajax({url: obj_url,
                type: 'post',
								data: {ajax: true},
							  beforeSend: function(){
							  	ZornDialog.close();
								ZornLoading.show();
							  },
							  success: function(data){
							  	ZornLoading.close();
							  	ZornMessages.add(data,'highlight');
								$(elem).remove();
							  }
	})
	}
};

function warn_if_ie(){
	var browserName=navigator.appName; 
  if (browserName=="Microsoft Internet Explorer"){
		msg = 'BROWSER WARNUNG: Sie verwenden Internet Explorer. Dieser Browser' +
		      ' wird von diesem System noch nicht voll unterstützt. Es kann zu ' +
					' Darstellungsproblemen und Anwendungsfehlern kommen. An der Unterstützung ' +
					' für Internet Explorer wird gearbeitet.'
		ZornMessages.add(msg, 'error');
	}
	
}

$(document).ready(function(){
	ZornDialog.reposition();
});
$(window).bind("resize", function(){  
    $("#bg_fuzz").css("height", $(window).height());  
}); 

// workaround for displaying only the first frame of a video

var bufferingStopped = false;

function stopbuff () { 
  if (!bufferingStopped) { 
    $f().stopBuffering(); 
    $f().setVolume(100); 
    bufferingStopped = true; 
  }
};

function clear_all_form_fields(){
	$('form :input').each(function() {
 	    var type = this.type;
 	    var tag = this.tagName.toLowerCase(); // normalize case
 	    if (type == 'text'|| tag == 'textarea')
 	        this.value = "";
 	});
}

function ajax_load_comment(container_id,obj_url){
	if($('#'+container_id).css('display') == 'block'){
		$('#'+container_id).hide();
		return;
	}
	$('#'+container_id).load(obj_url+'/showcomments');
	$('#'+container_id).show();
}

function ajax_load_tasks(container_id,obj_url){
	if($('#'+container_id).css('display') == 'block'){
		$('#'+container_id).hide();
		return;
	}
	$('#'+container_id).load(obj_url+'/showtasks #insertion');
	$('#'+container_id).show();
}

// toggles an edit form on and of for comment-enabled views
var edit_form_hidden = true;

function toggle_edit_comment(elem){
    if(edit_form_hidden){
        $('#content_'+elem).hide(0);
        $('#edit_form_'+elem).show(0);
        $('#form_content_'+elem).focus();
        edit_form_hidden = false;
    }else{
        $('#edit_form_'+elem).hide(0);
        $('#content_'+elem).show(0);
        edit_form_hidden = true;
    }   
}

// ----------------------------------------------------- Extra Functions

function highlight(elem){
	$(elem).css('backgroundColor','#ff7');
	$(elem).animate({
	    backgroundColor: '#fff'
	},1300)
}

// ----------------------------------------------------- ASSETS

function toggle_assets_container(){
	if ($('#assets_content').css('display') == 'none') {
		$('#assets_content').slideDown();
		$('#assets_button').removeClass('ui-icon-triangle-1-s');
		$('#assets_button').addClass('ui-icon-triangle-1-n');
	}else{
		$('#assets_content').slideUp();
		$('#assets_button').removeClass('ui-icon-triangle-1-n');
		$('#assets_button').addClass('ui-icon-triangle-1-s');
	}
}
function toggle_attr(attribute,obj_url,elem){
	jQuery.post(obj_url+'/toggleattr',
			{'attr':attribute},
			function(){
				//location.reload();
			});
}

function toggle_allow(obj_url,allow,elem){
	jQuery.post(obj_url+'/toggleallow'+allow,
		function(){
			//location.reload();
		});
}

function load_image(img_url){
	$('#image_full_view').load(img_url+'/large');
	$('#image_full_view').fadeIn();
}
// ----------------------------------------------------- AJAX

/* stores a rating */
function ajax_post_content(rating){
    jQuery.post('setrating', {'rating': rating}, 
			function(data) {
				$('#insertion').append(data);
			});
}

/* stores a comment */
function ajax_post_comment(obj_url){
 	content = $('#comment_content').attr('value').replace(/\r/, '<br />').replace('>','&gt;').replace('<','&lt;').replace(/\n/, '<br />');
 	recipient_login = $('#recipient_login').val();
	jQuery.post(obj_url+'/postcomment', {'content': content, 'recipient_login': recipient_login}, 
		function(data) {
			$('#comments_list').prepend(data);
		});
	$('#write_comment_container').hide('slow');
}

/* updates a comment */
function ajax_edit_comment(elem,recipient_login){
 	content = $('#form_content_'+elem).attr('value').replace(/\r/, '<br />').replace('>','&gt;').replace('<','&lt;').replace(/\n/, '<br />');
	jQuery.post('editcomment', {'content': content, 
	                            'comment_id': elem, 
	                            'recipient_login': recipient_login}, 
		function(response) {
			$('#content_'+elem).html(response);
			toggle_edit_comment(elem);
		});
	$('#write_comment_container').hide('slow');
}

/* deletes a comment */
function ajax_delete_comment(elem,recipient_login,obj_url){
	jQuery.post(obj_url+'/deletecomment', {'comment_id': elem, 
	                              'recipient_login': recipient_login},
		function(response) {
		    $('#' + elem).remove();
			$('#ajax_msg').append(response);
		});
	$('#write_comment_container').hide('slow');
}

/* deletes a comment */
function ajax_delete_profile_picture(elem){
    jQuery.post('deleteprofilepicture', {'comment_id': elem},
        function(response) {
            $('#picture').attr('src',response);
        });
    $('#write_comment_container').hide('slow');
}

var err_container = null;

function valid_field(field,msg,validate_email){
	   if (validate_email){
		   if (field.val() == '')
			   return true;
		   if (!valid_email(field.val())){
				field.css('border','1px solid red');
				field.focus();
				$(err_container).append('<li>' + msg + '</li>');
				$(err_container).show();
				return false;
		   }
	   }
	   if (field.val() == ''){
			field.css('border','1px solid red');
			field.focus();
			$(err_container).append('<li>' + msg + '</li>');
			$(err_container).show();
		    return false;
		}
	   return true
	}

/* verifies an event */
function ajax_verify_event_common(obj_url,elem){
	jQuery.ajax({
		type: 'POST',
		url: obj_url+'/verify',
		data: {},
		success: function(data){
			$(elem).fadeOut();
		}
	});
}


/* deletes an event entry */
function ajax_delete_event_common(obj_url,elem){
    jQuery.post(obj_url+'/delete','',
        function(response) {
            $(elem).remove();
        });
}


