/* Dashboard AJAXin' */

// Set global vars
var searchDelay = null;
var current_folder = '';
var current_page = '';
var current_sort = '';
var current_folder_page = '1';
var first_focus = 1;
var current_group = '';
var current_section = '';
var current_layout = '';
var current_category = '';

function show_description_form(file_id) {
	
	desc_div = 'desc_text_' + file_id;
	desc_form_div = 'desc_form_' + file_id;
	
	toggle(desc_div,'none');
	toggle(desc_form_div,'block');
	
	document.getElementById('desc_input_' + file_id).focus();

}

function hide_description_form(file_id) {
	
	toggle('desc_text_' + file_id,'block');
	toggle('desc_form_' + file_id,'none');

}

function submit_desc(file_id) {

	new_desc_value = escape(document.getElementById('desc_input_' + file_id).value);
	toggle('desc_submit_' + file_id,'none');
	toggle('desc_progress_' + file_id,'inline');
	
	document.getElementById('desc_progress_' + file_id).innerHTML='<img src="/images/icons/progress_icon.gif" />';
	
	new Ajax.Updater('','/scripts/ajax/description.php',{'method':'post' , 'parameters': 'desc_id=' + file_id + '&description=' + new_desc_value, 'onSuccess':function(request){desc_success(request, file_id)}, 'onFailure':function(request){desc_failure(request, file_id)} } );
	
}

function desc_success(request, file_id) {
	responseStr = request.responseText;	
	
	toggle('desc_submit_' + file_id,'inline');
	toggle('desc_progress_' + file_id,'none');
	toggle('desc_text_' + file_id,'block');
	toggle('desc_form_' + file_id,'none');
	
	document.getElementById('desc_progress_' + file_id).innerHTML='';
	
	document.getElementById('desc_span_' + file_id).innerHTML=responseStr;	
}

function desc_failure(request, file_id) {
	responseStr = request.responseText;	
	
	toggle('desc_submit_' + file_id,'inline');
	toggle('desc_progress_' + file_id,'none');
	toggle('desc_text_' + file_id,'block');
	toggle('desc_form_' + file_id,'none');
	
	document.getElementById('desc_progress_' + file_id).innerHTML='';
	
	alert(responseStr);
	
}

/* gallery titles */

function show_gallery_title_form(gid) {
	toggle('gallery_title_' + gid, 'none');	
	toggle('gallery_form_' + gid, 'block');
}

function hide_gallery_title_form(gid) {
	toggle('gallery_title_' + gid, 'block');	
	toggle('gallery_form_' + gid, 'none');
}

function submit_gallery_title(gid) {

	new_gallery_title = escape(document.getElementById('gallery_input_' + gid).value);
	toggle('gallery_submit_' + gid,'none');
	toggle('gallery_progress_' + gid,'inline');
	
	document.getElementById('gallery_progress_' + gid).innerHTML='<img src="/images/icons/progress_icon.gif" />';
	
	new Ajax.Updater('','/scripts/ajax/gallery_title.php',{'method':'post' , 'parameters': 'g=' + gid + '&gallery_title=' + new_gallery_title, 'onSuccess':function(request){gallery_title_success(request, gid)}, 'onFailure':function(request){gallery_title_failure(request, gid)} } );
	
}

function gallery_title_success(request, gid) {
	responseStr = request.responseText;	
	
	toggle('gallery_submit_' + gid,'inline');
	toggle('gallery_progress_' + gid,'none');
	hide_gallery_title_form(gid);
	
	document.getElementById('gallery_progress_' + gid).innerHTML='';
	
	document.getElementById('gallery_title_span_' + gid).innerHTML=responseStr;	
	
	if (document.getElementById('dash_folders_div')) {
		refresh_folder_list(current_folder_page);	
	}
	
}

function gallery_title_failure(request, gid) {
	responseStr = request.responseText;	
	
	toggle('gallery_submit_' + gid,'inline');
	toggle('gallery_progress_' + gid,'none');
	hide_gallery_title_form(gid);
	
	document.getElementById('gallery_progress_' + gid).innerHTML='';
	
	alert(responseStr);	
}

function select_file(file_id) {
	checkbox = document.getElementById('checkbox_' + file_id).checked;
	if (checkbox==true) {
		document.getElementById('tr_' + file_id).className = 'file_info_highlight';
		// Add some sort of "selected" array manip here
	} else {
		document.getElementById('tr_' + file_id).className = 'file_info';	
	}
}

function turn_on_share(file_id) {
	toggle('linking_' + file_id,'block'); 
	document.getElementById('sharelink_' + file_id).className='sharelink_on';
}

function turn_off_share(file_id) {
	toggle('linking_' + file_id,'none'); 
	document.getElementById('sharelink_' + file_id).className='sharelink_off';
}

function turn_on_info(file_id) {
	toggle('info_' + file_id,'block'); 
	document.getElementById('infolink_' + file_id).className='sharelink_on';
	
	if (document.getElementById('thumb_url_' + file_id)) {
		
		thumb_url = document.getElementById('thumb_url_' + file_id).innerHTML;
		dl_url = document.getElementById('download_url_' + file_id).innerHTML;
		
		document.getElementById('thumb_container_' + file_id).innerHTML='<a href="' + dl_url + '"><img src="' + thumb_url + '" style="border:1px solid #ccc;" alt="Thumbnail" /></a>';
		
	}
	
}

function turn_off_info(file_id) {
	toggle('info_' + file_id,'none'); 
	document.getElementById('infolink_' + file_id).className='sharelink_off';
}

function SetAllCheckBoxes(FormName, FieldName, CheckValue) {
	if(!document.forms[FormName])
		return;
	var objCheckBoxes = document.forms[FormName].elements[FieldName];
	if(!objCheckBoxes)
		return;
	var countCheckBoxes = objCheckBoxes.length;
	if(!countCheckBoxes) {
		objCheckBoxes.checked = CheckValue;
		this_file_id = objCheckBoxes.value;
		select_file(this_file_id);
	} else {
		for(var i = 0; i < countCheckBoxes; i++) {
			objCheckBoxes[i].checked = CheckValue;
			this_file_id = objCheckBoxes[i].value;
			select_file(this_file_id);
		}
	}
}

function launch_live_search() {
	show_loading_notice('Searching...');
	if (searchDelay) { window.clearTimeout(searchDelay); }
	searchDelay = window.setTimeout('perform_live_search()', 350);
}

function perform_live_search(page, folder, sort_by, message, message_type, group, section, layout, category) {
	
	hide_message();
	
	terms = document.getElementById('live_search_input').value;
	
	if (terms && !section) section = current_section;
	
	if (first_focus==1) terms='';
	
	// Save settings for future actions
	if (page) current_page = page;
	if (folder) current_folder = folder;
	
	// Always maintain the current sort selection
	if (sort_by) {
		current_sort = sort_by; // explicitly set a new sort
	} else {
		sort_by = current_sort;	// use the currently selected sort
	}
	
	// Always maintain the current layout selection
	if (layout) {
		current_layout = layout; // explicitly set a new sort
	} else {
		layout = current_layout;	// use the currently selected sort
	}
	
	new Ajax.Updater('dash_files_div','/scripts/ajax/v2/dashboard/live_search.php',{ 'method':'post' , 'parameters': 'search=' + terms + '&folder=' + folder + '&page=' + page + '&sort_by=' + sort_by + '&layout=' + layout + '&category=' + category + '&iphone_view=' + iphone_view, 'onSuccess':function(){complete_search(message, message_type);}, 'onFailure':function(request){complete_search(message, message_type)} } );
		
}

function complete_search(message, message_type) {
	
	hide_loading_notice();
	
	if (message_type=='success') {
		show_msg(message);
	} else if (message_type=='failure') {
		show_error(message);
	}
	
	lbox = document.getElementsByClassName('lbOn2');
	for(i = 0; i < lbox.length; i++) {
		valid = new lightbox(lbox[i]);
	}
	// alert(lbox.length);
		
}

function clear_live_search() {
	show_loading_notice('Clearing...');
	document.getElementById('live_search_input').value='';
	perform_live_search();
}

function show_folder(folder_id) {
	
	current_group='';
	current_section='';
	current_folder=folder_id;
	
	document.getElementById('live_search_input').value='';
	show_loading_notice('Loading...');
	perform_live_search('1', folder_id, '');
}

function show_all_files() {
	show_loading_notice('Loading...');
	
	document.getElementById('live_search_input').value='';
	current_folder='';
	current_page='';
	current_group='';
	current_section='';
	
	perform_live_search();
}

function show_loading_notice(text) {
	toggle('loading_div','block');
	// toggle('sort_div','none');
	toggle('bottom_loading_div','inline');
	document.getElementById('loading_div').innerHTML = '<div class="loading_notice"><img src="/images/icons/progress_icon.gif" align="absmiddle"> ' + text + '</div>';
	document.getElementById('bottom_loading_div').innerHTML = '<img src="/images/icons/progress_icon.gif" align="absmiddle">';
}

function hide_loading_notice() {
	toggle('loading_div','none');
	// toggle('sort_div','block');
	toggle('bottom_loading_div','none');
	document.getElementById('loading_div').innerHTML='';
	document.getElementById('bottom_loading_div').innerHTML='';
}

function show_page(page, folder, group, section) {
	show_loading_notice('Loading...');
	perform_live_search(page, folder, '', '', '', group, section);
}

function get_checked_files(FormName, FieldName) {
	
	checked_array = new Array();
	
	if(!document.forms[FormName])
		return checked_array;
	var objCheckBoxes = document.forms[FormName].elements[FieldName];
	
	if(!objCheckBoxes) return checked_array;	
	var countCheckBoxes = objCheckBoxes.length;
	
	if (!countCheckBoxes) { 
		if (objCheckBoxes.checked == true) {
			checked_array.push(objCheckBoxes.value);
		}
	} else {
		for(var i = 0; i < countCheckBoxes; i++) {
			if (objCheckBoxes[i].checked == true) {
				checked_array.push(objCheckBoxes[i].value);
			}
		}
	}
	
	return checked_array;
	
}

function move_files() {
	
	hide_message();
	
	// Set this up here.
	selIndex = document.getElementById(select_id).selectedIndex;
	if (selIndex>5 || selIndex==2 || selIndex==3) {
		
		files = new Array();
		files = get_checked_files('action_form','files[]');
				
		if (files.length==0) {
			alert('Please select at least one file to move.');
			document.getElementById(select_id).selectedIndex=0;
		} else {
			
			if (selIndex==2) {
				create_new='true';
				new_title=prompt('Please enter a title for your new folder:','');
				if (new_title==null) {
					document.getElementById(select_id).selectedIndex=0;
					return;
				}
			} else {
				create_new='';
				new_title='';
			}
			
			folder = document.getElementById(select_id).options[selIndex].value;
			files_string = files.join(',');
			show_loading_notice('Moving...');
			
			new Ajax.Updater('','/scripts/ajax/dashboard_move_files.php',{ 'method':'post' , 'parameters': 'folder=' + folder + '&files=' + files_string + '&create_new=' + create_new + '&new_title=' + new_title, 'onSuccess':function(request){move_complete(request, 'success', create_new);}, 'onFailure':function(request){move_complete(request, 'failure', create_new);} } );
			
		} // length
		
	}
	
}

function move_complete(request, response_type, create_new) {
	
	if (document.getElementById('move_to')) document.getElementById('move_to').selectedIndex=0;
	if (document.getElementById('move_to_bottom')) document.getElementById('move_to_bottom').selectedIndex=0;
	responseStr = request.responseText;
	
	perform_live_search(current_page, current_folder, current_sort, responseStr, response_type, current_group, current_section);
	
	if (create_new) {
		refresh_folder_list('1');	
	}
	
}

function show_msg(message) {
	toggle('response_div','block');
	document.getElementById('response_div').innerHTML = '<div class="msg" style="text-align:center; margin-top:0; margin-bottom:20px;"><small><strong>' + message + '</strong></small></div>';
}

function show_error(message) {
	toggle('response_div','block');
	document.getElementById('response_div').innerHTML = '<div class="errors" style="text-align:center; margin-top:0; margin-bottom:20px;"><small><strong>' + message + '</strong></small></div>';
}

function hide_message() {
	toggle('response_div','none');
	document.getElementById('response_div').innerHTML='';
}

function privacy_switch(file_id) {
	
	update_div = 'privacy_' + file_id;

	new Ajax.Updater(update_div,'/scripts/ajax/dashboard_privacy.php',{ 'method':'post' , 'parameters': 'file=' + file_id } );
	
}

function delete_files() {
		
	hide_message();
		
	files = new Array();
	files = get_checked_files('action_form','files[]');
	
	if (files.length==0) {
		alert('Please select at least one file to delete.');
		document.getElementById(select_id).selectedIndex=0;
	} else {
		
		if (files.length==1) {
			confirm_text='this file';
		} else {
			confirm_text='these files';	
		}
		
		if (current_section) {
			
			if (!confirm('Are you sure you want to remove ' + confirm_text + ' from your ' + current_section + '?')) return false;
			
			files_string = files.join(',');
			show_loading_notice('Removing...');
			
			new Ajax.Updater('','/scripts/ajax/inbox_favorites_remove.php',{ 'method':'post' , 'parameters': 'files=' + files_string + '&section=' + current_section, 'onSuccess':function(request){delete_complete(request, 'success');}, 'onFailure':function(request){delete_complete(request, 'failure');} } );
			
		} else {
		
			if (!confirm('Are you sure you want to delete ' + confirm_text + '?')) return false;
			
			files_string = files.join(',');
			show_loading_notice('Deleting...');
			
			new Ajax.Updater('','/scripts/ajax/dashboard_delete_files.php',{ 'method':'post' , 'parameters': 'files=' + files_string, 'onSuccess':function(request){delete_complete(request, 'success');}, 'onFailure':function(request){delete_complete(request, 'failure');} } );
			
			refresh_folder_list(current_folder_page, current_sort);
		
		}
		
	} // length
			
}

function delete_complete(request, response_type) {
	
	responseStr = request.responseText;
	update_file_count();
	perform_live_search(current_page, current_folder, current_sort, responseStr, response_type, current_group, current_section);
	
}

function update_file_count() {
	new Ajax.Updater('dash_file_count','/scripts/ajax/dashboard_file_count.php',{ 'method':'post' } );
}

function search_focus() {
	if (first_focus==1) {
		first_focus=0;
		activateField('Search','live_search_input');
	}
	document.getElementById('live_search_input').style.color='black';
}

function show_folder_page(page) {
	
	current_folder_page = page;	
	total_pages = document.getElementById('total_folder_pages').innerHTML;
	
	for (i=1; i<=total_pages; i++) toggle('folders_page_' + i, 'none');	
	
	toggle('folders_page_' + page, 'block');
	
}

function refresh_folder_list(start_page, sort_method) {
	
	new Ajax.Updater('dash_folders_div','/scripts/ajax/v2/dashboard/dashboard_folder_list.php',{ 'method':'post' , 'parameters': 'page=' + start_page + '&sort_by=' + sort_method, 'onSuccess':function(){alert(request.responseText)}, 'onFailure':function(request){alert(request.responseText)} } );

	new Ajax.Updater('dashboard_move_select','/scripts/ajax/v2/dashboard/dashboard_update_move_select.php',{ 'method':'post' , 'parameters': 'page=' + start_page, 'onSuccess':function(){ }, 'onFailure':function(request){ } } );
	
	new Ajax.Updater('dashboard_move_select_bottom','/scripts/ajax/v2/dashboard/dashboard_update_move_select.php',{ 'method':'post' , 'parameters': 'page=' + start_page, 'onSuccess':function(){ }, 'onFailure':function(request){ } } );

}

function privacy_switch_new(file_id) {
	new Ajax.Updater('privacy_link_' + file_id,'/scripts/ajax/dashboard_privacy.php',{ 'method':'post' , 'parameters': 'file=' + file_id } );	
}

function show_preview(file_id) {
	toggle('preview_' + file_id,'inline'); 
	
	if (document.getElementById('thumb_url_' + file_id)) {
		
		thumb_url = document.getElementById('thumb_url_' + file_id).innerHTML;		
		document.getElementById('preview_' + file_id).innerHTML='<img src="' + thumb_url + '" alt="Thumbnail" />';
		
	}
	
}

function modify_files(select_id) {
	
	hide_message();
	
	// Set this up here.
	selIndex = document.getElementById(select_id).selectedIndex;
	selValue = document.getElementById(select_id).options[selIndex].value;
	
	if (selValue=='') {
		document.getElementById(select_id).selectedIndex=0;
		return false;
		
	} else if (selValue=='make_public' || selValue=='make_private') {
		
		files = new Array();
		files = get_checked_files('action_form','files[]');
				
		if (files.length==0) {
			alert('Please select at least one file to modify.');
			document.getElementById(select_id).selectedIndex=0;
		} else {
			
			files_string = files.join(',');
			
			show_loading_notice('Modifying...');
		
			new Ajax.Updater('','/scripts/ajax/dashboard_mass_privacy.php',{ 
				'method':'post' , 
				'parameters': 'action=' + selValue + '&files=' + files_string, 
				'onSuccess':function(request){move_complete(request, 'success');}, 
				'onFailure':function(request){move_complete(request, 'failure');} } );
			
		}
		
	} else if (selValue=='make_direct' || selValue=='make_free') {
		
		files = new Array();
		files = get_checked_files('action_form','files[]');
				
		if (files.length==0) {
			alert('Please select at least one file to modify.');
			document.getElementById(select_id).selectedIndex=0;
		} else {
			
			files_string = files.join(',');
			
			show_loading_notice('Modifying...');
		
			new Ajax.Updater('','/scripts/ajax/v2/dashboard/dashboard_direct_or_free.php',{ 
				'method':'post' , 
				'parameters': 'action=' + selValue + '&files=' + files_string, 
				'onSuccess':function(request){move_complete(request, 'success');}, 
				'onFailure':function(request){move_complete(request, 'failure');} } );
			
		}
		
	} else {
		
		// Move files
		
		files = new Array();
		files = get_checked_files('action_form','files[]');
				
		if (files.length==0) {
			alert('Please select at least one file to move.');
			document.getElementById(select_id).selectedIndex=0;
		} else {
			
			if (selValue=='create') {
				create_new='true';
				new_title=prompt('Please enter a title for your new folder:','');
				if (new_title==null) {
					document.getElementById(select_id).selectedIndex=0;
					return;
				}
			} else {
				create_new='';
				new_title='';
			}
			
			folder = document.getElementById(select_id).options[selIndex].value;
			files_string = files.join(',');
			show_loading_notice('Moving...');
			
			new Ajax.Updater('','/scripts/ajax/dashboard_move_files.php',{ 'method':'post' , 'parameters': 'folder=' + folder + '&files=' + files_string + '&create_new=' + create_new + '&new_title=' + new_title, 'onSuccess':function(request){move_complete(request, 'success', create_new);}, 'onFailure':function(request){move_complete(request, 'failure', create_new);} } );
			
		} // length
		
	} // if
	
}

function show_group(group_id) {
	
	current_group=group_id;
	current_section='';
	current_folder='';
	
	document.getElementById('live_search_input').value='';
	show_loading_notice('Loading...');
	perform_live_search('1', '', '', '', '', group_id);
}

function show_group_page(page) {
	
	total_pages = document.getElementById('total_group_pages').innerHTML;
	
	for (i=1; i<=total_pages; i++) toggle('groups_page_' + i, 'none');	
	
	toggle('groups_page_' + page, 'block');
	
}

function show_section(section) {
	
	current_section=section;
	current_group='';
	current_folder='';
	
	document.getElementById('live_search_input').value='';
	show_loading_notice('Loading...');
	perform_live_search('1', '', '', '', '', '', section);
}

function move_to_section(section) {
	
	hide_message();
		
	files = new Array();
	files = get_checked_files('action_form','files[]');
	
	if (files.length==0) {
		alert('Please select at least one file to move.');
	} else {
			
		files_string = files.join(',');
		show_loading_notice('Moving...');
		
		new Ajax.Updater('','/scripts/ajax/inbox_archive_move.php',{ 'method':'post' , 'parameters': 'files=' + files_string + '&section=' + section, 'onSuccess':function(request){move_complete(request, 'success');}, 'onFailure':function(request){move_complete(request, 'failure');} } );
		
	} // length
				
}

function sort_by(sort_method) {	
	show_loading_notice('Sorting...');
	
	if (sort_method=='name') {
		document.getElementById('sort_links').innerHTML="<span class=\"highlighted_sort\">Name</span> / <a href=\"javascript:sort_by('date');\">Date</a>";
	} else {
		document.getElementById('sort_links').innerHTML="<a href=\"javascript:sort_by('name');\">Name</a> / <span class=\"highlighted_sort\">Date</span>";
	}
	
	perform_live_search(current_page, current_folder, sort_method, '', '', current_group, current_section, current_layout, current_category);
	refresh_folder_list(1, sort_method);
}

function switch_view(new_layout) {	
	show_loading_notice('Loading...');
	
	if (new_layout=='icons') {
		document.getElementById('layout_links').innerHTML="<a href=\"javascript:switch_view('list');\">List</a> / <span class=\"highlighted_sort\">Icons</span>";
	} else {
		document.getElementById('layout_links').innerHTML="<span class=\"highlighted_sort\">List</span> / <a href=\"javascript:switch_view('icons');\">Icons</a>";
	}
	
	perform_live_search(current_page, current_folder, current_sort, '', '', current_group, current_section, new_layout, current_category);
}

function change_folder_password() {
	toggle('gallery_password_status','none');
	toggle('new_password_form','block');
}

function cancel_password_change() {
	toggle('gallery_password_status','block');
	toggle('new_password_form','none');
}

function submit_folder_password(gallery_id) {
	new_folder_password=escape(document.getElementById('gallery_password').value);
	
	new Ajax.Updater('','/scripts/ajax/v2/dashboard/change_folder_password.php',{ 'method':'post' , 'parameters': 'gallery_id=' + gallery_id + '&gallery_password=' + new_folder_password, 'onSuccess':function(request){password_change_complete(request, 'success', new_folder_password);}, 'onFailure':function(request){password_change_complete(request, 'failure', new_folder_password);} } );
	
}

function password_change_complete(req, status, new_folder_password) {
	if (status=='success') {
		
		toggle('gallery_password_status','block');
		toggle('new_password_form','none');
		
		if (new_folder_password) {
			toggle('password_on','inline');
			toggle('password_off','none');
		} else {
			toggle('password_on','none');
			toggle('password_off','inline');
		}
		
		alert('Your password has been updated!');
		
	} else {
		alert(req.ResponseText);
	}
}

function iphone_email(file_id) {
	if (document.getElementById('email_div_' + file_id).style.display=='none') {
		toggle('email_div_' + file_id,'block');
		document.getElementById('email_to_input_' + file_id).focus();
	} else {
		toggle('email_div_' + file_id,'none');
	}
}