var folder_names = new Array();
var file_names = new Array();
var folder_content_total = new Array();
var folder_vis = new Array();
var global_moving = false;
var global_moving_from = '';
var search_ajax_request;

$.ajaxSetup({
	type: 'POST'
});
$(document).ready(function(){
	$("ul.topnav li#acp").click(function() { 
		$("#acplink").addClass("active");
		$(this).parent().find("ul.subnav").slideDown('fast').show();
		$(this).parent().hover(function() {}, function(){
											$(this).parent().find("ul.subnav").slideUp('slow'); 
											$("#acplink").removeClass("active"); 
										});
		});

});

function inline_toggle_dir( file_hash )
{
	is_mine = /^.*del\_tiny.*/.test($('#toggle_inline_'+file_hash ).attr('src'));
	$('#toggle_inline_'+file_hash).attr({src:image('loading', 'gif')}); 
	$.ajax({ 
		url: APP_URL+'?app=intranet&ajax&do=toggle_dirs', 
		data: 'dir='+folder_names[file_hash]+'&set='+(is_mine?0:1), 
		success: function(){ 
			$('#toggle_inline_'+file_hash).attr({src:image(is_mine?'add_tiny':'del_tiny')}); 
		}
	});
}
function search_dirs()
{
	//if( $('#q').val().length < 2 ) return;
	$('#search_loading_img').show();
	if(search_ajax_request) search_ajax_request.abort();
	search_ajax_request = $.ajax({
								url: APP_URL+'?app=intranet&ajax&do=search',
								data: 'q='+$('#q').val(),
								success: function(output)
								{
									$('#dir_search_results li').each(function(){if(this.id!='box')$(this).remove();})
									$('#dir_search_results').append(output);
									$('#search_loading_img').hide();
								}
							})
		
}

function move_file( file_id, is_dir )
{
	request_from = is_dir ? folder_names[file_id] : file_names[file_id];
	global_moving = true;
	global_moving_from = request_from;
	$('#moving_file').html(request_from);
	$('#moving_message').slideDown();
	$('a.tiny_ticks').each(function(){
		this.style.display = 'inline';
	});
}

function do_move_file( file_id )
{
	request_to = folder_names[file_id];
	
	$.ajax({
		url: APP_URL+'?app=intranet&ajax&do=move_file',
		data: 'from='+global_moving_from+'&to='+request_to,
		success: function()
		{
			redirect(APP_URL+'?app=intranet&dir='+request_to, 0);
		}
	})
}

function cancel_moving()
{
	$('#moving_message').slideUp();
	global_moving = false;
	global_moving_from = '';
	$('a.tiny_ticks').each(function(){
		this.style.display = 'none';
	});
}

function delete_log( id )
{
	$('#del_img_'+id).attr({src: image('loading', 'gif')});
	$.ajax({
		url: APP_URL+'?app=acp&ajax&do=del_log',
		data: 'id='+id,
		success: function()
		{
			$('#log-'+id).highlightFade().fadeOut();
		}
	})
}
function image( image_name, image_ext )
{
	if( ! image_ext )
	{
		image_ext = 'png';
	}
	return APP_URL + 'template/images/' + image_name + '.' + image_ext;
}
function make_dir( parent_id, ancestor_id )
{
	temp_dir = folder_names[parent_id] == '/' ? '/' : folder_names[parent_id] + '/';
	new_name = prompt('Enter name of new dir under '+temp_dir);
	if( new_name != undefined && new_name != '' )
	{
		$('#add_new_'+parent_id).attr({src: image('loading', 'gif') });
		$.ajax({
			url: APP_URL+'?app=intranet&ajax&do=intr_mkdir',
			data: 'parent='+temp_dir+'&name='+new_name,
			success:function()
			{
				if( temp_dir == '/' )
				{
					redirect(APP_URL+'?app=intranet&do=settings', 0);
				}
				else
				{
					if( folder_names[ancestor_id] == undefined )
					{
						redirect(APP_URL+'?app=intranet&dir='+temp_dir, 0);
					}	
					else
					{
						load_dir(ancestor_id);
					}
				}
			}
		});
	}
	$('#add_new_'+parent_id).attr({src: image('folder_add_tiny') });
}
function save_file( file_id, parent_id, is_folder )
{
	request_do = is_folder ? 'rename_dir' : 'rename_file';
	request_from = is_folder ? folder_names[file_id] : file_names[file_id];
	$('#save_img_'+file_id).attr({src:image('loading', 'gif')});
	$('#new_name_'+file_id).addClass('ro').attr('disabled', 'disabled');
	$.ajax({
		url:APP_URL+'?app=intranet&ajax&do='+request_do,
		data:'from='+$.URLEncode(request_from)+'&to='+$.URLEncode($('#new_name_'+file_id).val()),
		success:function()
		{
			load_dir(parent_id);		
		},
		error:function()
		{
			$('#save_img_'+file_id).attr({src: image('save_tiny') });
			$('#new_name_'+file_id).removeClass('ro').removeAttr('disabled');		
		}
	});
}

function edit_file( file_id )
{
	if($('#edit_stuff_'+file_id).is(':visible'))
	{
		$('#edit_stuff_'+file_id).hide();
	}
	else
	{
		$('#edit_stuff_'+file_id).css('display', 'inline');
		$('#new_name_'+file_id).focus();
	}
}

function delete_file( file_id, parent_id, is_dir )
{
	if( ! confirm("Are you sure you want to delete this file? " )) return;
	request_file = is_dir ? folder_names[file_id] : file_names[file_id];
	request_is_dir = is_dir ? 1 : 0;
	$('#del_img_'+file_id).attr({src:image('loading', 'gif')});
	$.ajax({
		url: APP_URL+'?app=intranet&ajax&do=del_file&file='+request_file+'&is_dir='+request_is_dir,
		success:function()
		{
			$('#file_id_'+file_id).highlightFade().fadeOut();
			folder_content_total[parent_id]--;
			if( ! folder_content_total[parent_id] )
			{
				$('#img_'+parent_id).attr({src: image('folder_empty') });
				$('#del_img_'+parent_id).show();
				
			}
		},
		error:function()
		{
			if( is_dir )
			{
				alert('Could not delete this dir. Make sure it is empty.')
			}
			$('#del_img_'+file_id).attr({src: image('del_tiny') });			
		}
	});
}

function save_user( id )
{
	$('#save_img_'+id).attr({src:image('loading', 'gif')});
	$.ajax({
		url: APP_URL+'?app=acp&ajax&do=save_user',
		data: 'id='+id+	'&manager='+$('input:radio[name=manager_'+id+']:checked').val()+
						'&uploader='+$('input:radio[name=uploader_'+id+']:checked').val()+
						'&banned='+$('input:radio[name=banned_'+id+']:checked').val(),
		success: function()
		{
			$('#save_img_'+id).attr({src: image('page_save') });
			$('#user_'+id).highlightFade();
		}
	});
}
function save_staff( id, counter )
{
	$('#save_img_'+id).attr({src:image('loading', 'gif')});
	$.ajax({	
		url: APP_URL+'?app=acp&ajax&do=save_staff',
		data: '&id='+id+'&name='+($('#name_'+id).val())+'&title='+
				$('#title_'+id).val()+'&username='+$('#username_'+id).val()+
			'&office='+$('#office_'+id).val()+'&dept='+$.URLEncode($('#dept_'+id).val())+'&phone='+$('#phone_'+id).val(),
		success: function()
		{
			$.ajax({	
				url: APP_URL+'?app=info&ajax&do=search',
				data: '&id='+id+'&counter='+counter,
				success: function( output )
				{
					$('#info_'+id).html( output );
					$('#info_'+id).highlightFade( );
				}
			});		
		}
	});
}
function delete_staff( id )
{
	if( ! confirm("Are you sure you want to delete this staff?" ) ) return;
	$('#del_img_'+id).attr({src:image('loading', 'gif')});
	$.ajax({	
		url: APP_URL+'?app=acp&ajax&do=del_staff',
		data: '&id='+id,
		success: function()
		{
			$('#info_'+id).highlightFade().fadeOut();
		}
	});
}

function search_users()
{
	$('#loading_img').show();
	$.ajax({	
		url: APP_URL+'?app=acp&ajax&do=search_users',
		data: '&q='+$('#q').val(),
		success: function( output )
		{
			$('#searchresults').html( output + '<br style="clear:both;">');
			$('#loading_img').hide();
		}
	});
	return false;	
}
function search_staff()
{
	$('#loading_img').show();
	$('#search-button').attr({value:'Searching', disabled:'disabled'});
	$.ajax({	
		url: APP_URL+'?app=info&ajax&do=search',
		data: '&q='+$('#q').val(),
		success: function( output )
		{
			$('#searchresults').html( output );
			$('#loading_img').hide();
		},
		complete: function()
		{
			$('#search-button').attr({value:'Search', disabled:''});
		}
	});
	return false;	
}
function add_new_staff()
{
	$('#loading_img').show();
	$.ajax({	
		url: APP_URL+'?app=acp&ajax&do=new_staff',
		data: '&name='+$('#name').val()+'&title='+$('#title').val()+'&username='+$('#username').val()+
				'&office='+$('#office').val()+'&dept='+$.URLEncode($('#dept').val())+'&phone='+$('#phone').val(),
		success: function( state )
		{
			state = Number( state );
			switch( state )
			{
				case 1:
					update_msg('That staff is already registered.', 'failure');
					break;
				case 2:	
					$('#name').val(''); 
					$('#title').val('');
					$('#username').val('');
					$('#office').val('');
					$('#dept').val('');
					$('#phone').val('');
					update_msg('Successfully inserted in db. You can add another below.', 'success');
					break;
				case 3:
					update_msg('You did not enter a username.', 'failure');
					break;
				default:
				update_msg(-1);
				break;
			}
			$('#loading_img').hide();
		}
	});	
	return false;
}

function save_old_news( news_id )
{
	$('#saveimg_'+news_id).attr({src:image('loading', 'gif')});
	$.ajax({	
		url: APP_URL+'?app=acp&act=news&do=save',
		data: {
			id: news_id,
			title: $('#old_title').val(),
			text: tinyMCE.get('old_text').getContent(),
			cat: $('#old_cat :selected').val() },
		success: function()
		{
			redirect(APP_URL+'?app=acp&act=news', 0);
		}
	});
}


function save_new_news( )
{
	$('#save_new_news_img').attr({src:image('loading', 'gif')});
	$.ajax({	
		url: APP_URL+'?app=acp&act=news&do=save',
		data: {
			title: $('#new_title').val(),
			text: tinyMCE.get('new_text').getContent(),
			cat: $('#new_cat :selected').val() },
		success: function()
		{
			redirect(APP_URL+'?app=acp&act=news', 0);
		}
	});
}
function load_news( news_id )
{
	$('#edit_'+news_id).attr({src:image('loading', 'gif')});
	$.ajax({
		url: APP_URL+'?app=acp&act=news&do=edit&ajax',
		data: 'id='+news_id,
		success : function( content ) 
		{
			$('#edit-news-'+news_id).html(content);
			$('#edit_'+news_id).attr({src: image('page_edit') });
		}	
	});
}
function delete_news( news_id )
{
	if( confirm("Are you sure you want delete this news? This cannot be undone." ))
	{
		$('#del_img_'+news_id).attr({src:image('loading', 'gif')});
		$.ajax({
			url : APP_URL+'?app=acp&act=news&do=delete',
			data: 'id='+news_id,
			success: function()
			{
				$('#news-row-'+news_id).hide();
				$('#edit-news-'+news_id).hide();
			}
		});
	}
}
function toggle_upload_form()
{
	$('#upload-form').toggle();
	$('#upload-link').toggle();
}
function toggle_all_dirs( new_show )
{
	$(folder_vis).each(function( index ) {
		new_show == 2 ? toggle_dir_vis(index) : toggle_dir_vis(index, new_show);
	});
}
function toggle_dir_vis( id, new_show )
{
	new_show = new_show != undefined ? new_show : (folder_vis[id] == 1 ? 0 : 1);
	$('#top_img_'+id).attr({src:image('loading', 'gif')});
	$.ajax({
		url: APP_URL+'?app=intranet&ajax&do=toggle_dirs',
		data: 'dir='+folder_names[id]+'&set='+new_show,
		success: function()
		{
			if( new_show == 1 )
			{
				$('#top_'+id).removeClass('opac_20');
				$('#top_'+id).highlightFade();
			}
			else
			{
				$('#top_'+id).addClass('opac_20');
			}
			folder_vis[id] = new_show;
			$('#top_img_'+id).attr({src:image('folder')});
		}
	});
	return false;
}
function update_upload_form( f_id )
{
	$('#upload_dir_div').html(folder_names[f_id]+'/');
	$('#upload_dir').val(folder_names[f_id]+'/');
	return false;
}
function toggle_dir( f_id )
{
	update_upload_form(f_id);
	if( $('#folder_'+f_id).is(':visible') )
	{
		$('#folder_'+f_id).hide();
		$('#folder_'+f_id).html('');
		$('#img_'+f_id).attr({src: image('folder')});
	}
	else
	{
		load_dir(f_id);
	}
	return false;
}
function load_dir(f_id)
{
	update_upload_form(f_id);
	$('#img_'+f_id).attr({src: image('loading', 'gif')});
	$('#folder_'+f_id).html('');
	$('#folder_'+f_id).show();
	$.ajax({
		url: APP_URL+'?app=intranet&ajax',
		data: 'dir='+folder_names[f_id]+'&show_ticks='+(global_moving?1:0),
		success: function( output )
		{
			$('#folder_'+f_id).html(output);
			$('#img_'+f_id).attr({src: image('folder_open')});
			$('#folder_'+f_id).highlightFade();
		}
	});
}
function update(id, html, className)
{
	$("#"+id).slideDown();
	if( ! html )
	{
		html = 'Loading...';
	}
	else if( Number(html) == -1 )
	{
		html = 'An unexpected error occured.';
	}
	if( ! className )
	{
		className = 'neutral';
	}
	$("#"+id).html( "<a onclick='$(\"#"+id+"\").slideUp();' class='x'>x</a>" + html ).removeClass('neutral success failure').addClass(className);
}
function update_msg( html, className )
{
	update('msg', html, className );
}

function delete_trans( id, success )
{
	update('msg'+id);
	$.ajax({
		url: APP_URL+'?app=switcher&ajax&do=delete',
		data: 'trans_id='+id+'&success='+success,
		success: function()
		{
			$('#switch'+id).highlightFade().fadeOut();
			total_trans--;
			if( ! total_trans )
			{
				redirect(APP_URL+'?app=switcher', 0);
			}
		}
	});
}

function succeed( id )
{
	$('#tick_'+id).attr({src: image('loading', 'gif')});
	delete_trans(id, 1);
}

function cancel( id )
{
	$('#cross_'+id).attr({src: image('loading', 'gif')});
	delete_trans(id, 0);
}
function redirect( url, time )
{
	if( time == 0 )
	{
		parent.location = url;
	}
	if( ! time )
	{
		time = 2;
	}
	setTimeout('parent.location = "'+url+'"', time * 1000);
}

function email_switcher(id)
{
	update('msg'+id);
	$.ajax({
		url: APP_URL+'?app=switcher&ajax&do=mail',
		data: 'trans_id='+id+'&message='+$('#txt_msg'+id).val(),
		success: function( state )
		{
			state = Number( state );
			switch( state )
			{
				case 1:
					update('msg'+id, 'Mail sent. Good luck! :)', 'success');
					break;
				
				case 2:
					update('msg'+id, 'Something went wrong. Please try again or contact us.', 'failure');
					break;
				
				default:
					update('msg'+id, -1);
					break;
			}
		}
		
	});
	return false;
}
function switcher_form()
{
	update_msg();
	$.ajax({
		url: APP_URL+'?app=switcher&ajax',
		data: 'tut_grps='+$('#tut_grps').val(),
		success: function( state )
		{
			state = Number( state );
			switch( state )
			{
				case 1:
					update_msg('Inserted all tutorial groups successfully. Refreshing page..', 'success');
					redirect(APP_URL+'?app=switcher');
					break;
				case 2:
					update_msg('Inserted some new tutorial groups successfully. Refreshing page..', 'neutral');
					redirect(APP_URL+'?app=switcher');
					break;
				case 3:
					update_msg('Did not insert any new tutorial groups.', 'failure');
					break;
				default:
					update_msg(-1);
					break;
			}
		}
	});
	return false;
}
function cp_form( key )
{
	update_msg();
	$.ajax({
		url: APP_URL+'?app=cp&ajax',
		data: 'name='+$('#name').val()+
				'&alt_email='+$('#alt_email').val()+
				'&g_id='+$('#g_id :selected').val()+
				'&pwd='+$('#pwd').val()+
				'&pwd2='+$('#pwd2').val()+
				'&eng_lvl='+$('#eng_lvl :selected').val()+
				'&german_lvl='+$('#german_lvl :selected').val()+
				'&tut_num='+$('#tut_num').val(),
		success: function( state )
		{
			state = Number( state );
			switch( state )
			{
				case 1:
					update_msg('Your alternative email is invalid.', 'failure');
					break;
				case 2:
					update_msg('Invalid group choice. Choose again.', 'failure');
					break;
				case 3:
					update_msg('Your passwords do not match. Passwords are case sensitive.', 'failure');
					break;
				case 4:
					the_msg = key ? 'Saved successfully. Page will be refreshed now.' : 'Saved successfully.';
					update_msg(the_msg, 'success');
					if( key )
					{
						redirect(APP_URL+'?app=switcher');
					}
					break;
				case 5:
					update_msg('You must enter your password twice to change it.', 'failure');
					break;
				default:
					update_msg(-1);
					break;
				
			}
		}
	});
	return false;
}

function login_form()
{
	update_msg();
	$.ajax(
	{
		url: APP_URL+'?app=cp&do=login&ajax',
		data: 'log=' + $("#email").val() + '&pwd='+$('#pwd').val(),
		success: function( state )
		{
			state = Number( state );
			switch( state )
			{
				case 1:
					update_msg('You must enter an email and a password.', 'failure');
					break;
				case 2:
					update_msg('Incorrect password. Please try again.', 'failure');
					break;
					
				case 3:
					update_msg('That username was not found in our database. <a href="?app=cp">Register now!</a>', 'failure');
					break;
				case 4:
					update_msg('Successfully logged in. You will be redirected shortly..', 'success');
					redirect(APP_URL+'?');
					break;
				default:
					update_msg(-1);
					break;
			}
		}
	});
	return false;
}

function register_form()
{
	update_msg();
	$.ajax(
	{
		url: APP_URL+'?app=cp&do=register&ajax',
		data: 'email=' + $("#email").val()+'&at='+$('#at :selected').val(),
		success: function( state )
		{
			state = Number( state );
			switch( state )
			{
				case 1:
					update_msg('You must enter an email.', 'failure');
					break;
				case 2:
					update_msg('You must enter a valid GUC mail.', 'failure');
					break;
				case 3:
					update_msg('This email is already registered. <a href="?app=cp&do=forgot">Forgot your password?</a>', 'failure');
					break;
				case 4:
					update_msg('Successfully registered. An email has been dispatched to your mailbox with your new password. You will be redirected shortly.', 'success');
					redirect(APP_URL+'?app=cp&do=login_logout');
					break;
				default:
					update_msg(-1);
					break;
			}
		}
	});
	return false;
}

function forgot_form()
{
	update_msg();
	$.ajax(
	{
		url: APP_URL+'?app=cp&do=forgot&ajax',
		data: 'user_login=' + $("#email").val(),
		success: function( state )
		{
			state = Number( state );
			switch( state )
			{
				case 3:
					update_msg('That username was not found in our database. <a href="?app=cp">Register now!</a>', 'failure');
					break;
				case 2:
					update_msg('A confirmation email has been mailed to you. Read it for further instructions.', 'success');
					break;
				default:
					update_msg(-1);
					break;
			}
		}
	});
	return false;
}

