function isdefined(v){return (typeof(window[v]) == "undefined")?  false: true;}
/* ///////////////// UI ///////////////////// UI /////////////////// UI ////////////////// U*/
var ui_step_count=6; //6 for icon view, 25 for table view.
var ui_step_start=1; //start at 1;
var ui_step_max=100; //100 records (DUMMY)/////// <---------------------------------------------
function ui_step_plus(){
	if(ui_transition_debounce==0){
		if(ui_transition_state!='cal'){
			if(ui_step_start+ui_step_count-1<ui_step_max-(ui_step_count-1)) ui_step_start=ui_step_start+ui_step_count;
			else ui_step_start=ui_step_max-(ui_step_count-1);
			if(ui_query==0) ui_transition_to(ui_transition_state,ui_step_start,ui_step_count);
			else sui_transition_to(ui_transition_state,ui_step_start,ui_step_count);
			ui_step_refresh();
		} else ui_cal_plus();
	}
}
function ui_step_minus(){
	if(ui_transition_debounce==0){
		if(ui_transition_state!='cal'){
			if(ui_step_start-ui_step_count>0) ui_step_start=ui_step_start-ui_step_count;
			else ui_step_start=1;
			if(ui_query==0)ui_transition_to(ui_transition_state,ui_step_start,ui_step_count);
			else sui_transition_to(ui_transition_state,ui_step_start,ui_step_count,ui_query_str);
			ui_step_refresh();
		} else ui_cal_minus();
	}
}
function ui_step_refresh(){
	if(ui_transition_state!='cal')
	if(ui_step_max>100&&ui_step_start>99)
		$('ui_step_counter').innerHTML=ui_step_start+'-'+(ui_step_start+ui_step_count-1)+' of '+ui_step_max;
	else
		$('ui_step_counter').innerHTML='Showing '+ui_step_start+'-'+(ui_step_start+ui_step_count-1)+' of '+ui_step_max;
}

var ui_transition_state="icon";
var ui_transition_debounce=0;
var ui_mode="all";
var ui_query=0;
var ui_query_str="";
function ui_transition_to(whereto,start){
	if(ui_transition_debounce==0){
		ui_transition_debounce=1;
		ui_query_str="";
		ui_query=0;
		switch(whereto){
			case 'cal':
			ui_step_count=0;
			//ui_cal_init();
			break;
			case 'icon':
			ui_step_count=6;
			ui_step_refresh();
			break;
			case 'table':
			ui_step_count=16;
			ui_step_refresh();
			break;
		}
		if(isNaN(start)) start=1;
		Effect.Fade('bulk_actions_container',{duration:0.5});
		Effect.Fade('viewportmessage_container',{duration:0.5});
		Effect.Fade('pagination_container',{duration:0.5});
		Effect.BlindUp('viewport',{duration:0.5,afterFinish:function(){ui_transition_ajax(whereto,start,ui_step_count);}});
	}
}
function ui_transition_ajax(whereto,start,count){
	setpageclass('viewtype',whereto);
	ajax_feedback_loading();
	new Ajax.Request('/panel/ajax/'+whereto+'_view.php?start='+start+'&count='+count, {
	  method: 'get',
	  onSuccess: function(transport) {
		$('viewport').innerHTML = transport.responseText;
		ui_transition_from(whereto,start);
		ui_transition_state=whereto;
		ui_fetchrowcount();
	  }
	});
}
function ui_transition_from(whereto,start){
	$('viewportmessage_container').innerHTML="&nbsp;";
	switch(whereto){
		case 'cal':
		ui_step_count=0;
		//Effect.Appear('bulk_actions_container',{duration:0.5});
		Effect.Appear('pagination_container',{duration:0.5});
		ui_cal_init();
		break;
		case 'icon':
		ui_step_count=6;
		Effect.Appear('bulk_actions_container',{duration:0.5});
		Effect.Appear('pagination_container',{duration:0.5});
		break;
		case 'table':
		ui_step_count=16;
		Effect.Appear('bulk_actions_container',{duration:0.5});
		Effect.Appear('pagination_container',{duration:0.5});
		break;
	}ui_step_start=start;
	ui_step_refresh();
	if(whereto=='cal') 
			ui_cal_init();
	else ui_step_refresh();
	Effect.BlindDown('viewport',{duration:0.5,afterFinish:function(){ajax_feedback_idle();}});
	
	// /panel/ajax/'++'_view.php
}
function setpageclass(a,b){
	switch(a){
		case 'viewtype':
		$('js_viewtype').className="js_vt_"+b;
		break;
	}
}
var date=new Date();
var sui_month=date.getMonth();
var sui_year=date.getFullYear();
//alert(sui_year);
var months=new Array();
months[0]="January";
months[1]="February";
months[2]="March";
months[3]="April";
months[4]="May";
months[5]="June";
months[6]="July";
months[7]="August";
months[8]="September";
months[9]="October";
months[10]="November";
months[11]="December";

function ui_cal_init(){
	sui_month=date.getMonth();
	sui_year=date.getFullYear();
	$('ui_step_counter').innerHTML=''+months[sui_month]+' '+sui_year+'';

}
function ui_cal_plus(){
	if((sui_month+1)==12){
		sui_month=0;
		sui_year++;
	} else sui_month++;
	$('ui_step_counter').innerHTML=''+months[sui_month]+' '+sui_year+'';
	sui_transition_to(ui_transition_state,ui_step_start,ui_step_count,"cal="+sui_month+"/"+sui_year);
}
function ui_cal_minus(){
	if((sui_month-1)==-1){
		sui_month=11;
		sui_year--;
	}else sui_month--;
	$('ui_step_counter').innerHTML=''+months[sui_month]+' '+sui_year+'';
	sui_transition_to(ui_transition_state,ui_step_start,ui_step_count,"cal="+sui_month+"/"+sui_year);
}

function sui_transition_to(whereto,start,step,query){
	if(ui_transition_debounce==0){deduce=query.split('=');
	ui_transition_debounce=1;
	switch(deduce[0]){
		case 'coll':
			$('viewportmessage_container').innerHTML='<span style="padding-right:10px;">Viewing all grabs in collection</span>';
			break;
		case 'day':
			$('viewportmessage_container').innerHTML='<span style="padding-right:10px;">Viewing grabs by '+deduce[1]+'</span>';
			break;
		case 'cal':
			//var deduce2=deduce[1].split('/');
			$('viewportmessage_container').innerHTML='<span style="padding-right:10px;">'+months[sui_month]+' '+sui_year+'</span>';
			break;
		case 'term':
			$('viewportmessage_container').innerHTML='<span style="padding-right:10px;">Grabs containing \''+unescape(deduce[1])+'\'</span>';
			break;
		default:
			$('viewportmessage_container').innerHTML='<span>Unknown query</span>';
		break;
	}
	oui_form_cancel();
	switch(whereto){
		case 'cal':
		ui_step_count=0;
		//Effect.Appear('bulk_actions_container',{duration:0.5});
		Effect.Appear('pagination_container',{duration:0.5});
		//ui_cal_init();
		break;
		case 'icon':
		ui_step_count=6
		break;
		case 'table':
		ui_step_count=16;
		break;
	}
		ui_query_str=query;
		ui_query=1;
	if(isNaN(start)) start=1;
	Effect.Fade('bulk_actions_container',{duration:0.5});
	if (whereto!='cal') Effect.Fade('pagination_container',{duration:0.5});
	Effect.BlindUp('viewport',{duration:0.5,afterFinish:function(){sui_transition_ajax(whereto,start,ui_step_count,query);}});
	}
}
function sui_transition_ajax(whereto,start,count,query){
	ajax_feedback_loading();
	new Ajax.Request('/panel/ajax/'+whereto+'_view.php?start='+start+'&count='+count+'&query='+query, {
	  method: 'get',
	  onSuccess: function(transport) {
		$('viewport').innerHTML = transport.responseText;
		sui_transition_from(whereto,start);
		ui_transition_state=whereto;
		ui_fetchrowcount();
	  }
	});
}
function sui_transition_from(whereto,start){
	switch(whereto){
		case 'cal':
		ui_step_count=0;
		Effect.Appear('pagination_container',{duration:0.5});
		Effect.Appear('bulk_actions_container',{duration:0.5});
		break;
		case 'icon':
		ui_step_count=6;
		Effect.Appear('bulk_actions_container',{duration:0.5});
		Effect.Appear('viewportmessage_container',{duration:0.5});
		break;
		case 'table':
		ui_step_count=16;
		Effect.Appear('viewportmessage_container',{duration:0.5});
		break;
	}ui_step_start=start;
	if(whereto!='cal') 
	/*		ui_cal_init();
	//else */ui_step_refresh();
	Effect.BlindDown('viewport',{duration:0.5,afterFinish:function(){ajax_feedback_idle();}});
	
	// /panel/ajax/'++'_view.php
}



var oui_transition_state="";
var oui_transition_debounce=0;
var oui_mode="all";
function oui_transition_to(whereto){
	if(oui_transition_debounce==0){
	oui_transition_debounce=1;
	Effect.BlindUp('slidedown',{duration:0.5,afterFinish:function(){oui_transition_ajax(whereto);}});
	}
}
function oui_transition_ajax(whereto){
	ajax_feedback_loading();
	new Ajax.Request('/panel/ajax/'+whereto+'_panel.php', {
	  method: 'get',
	  onSuccess: function(transport) {
		$('slidedown').innerHTML = transport.responseText;
		oui_transition_from(oui_transition_state);
		oui_transition_state=whereto;
		if(oui_transition_state=='web') {ui_hide_mainpanel();}
		oui_fetchrowcount();
	  }
	});
}
function oui_transition_from(wherefrom){
	if(wherefrom=='web') ui_show_mainpanel();
	Effect.BlindDown('slidedown',{duration:0.5,afterFinish:function(){oui_transition_debounce=0;ajax_feedback_idle();}});
	// /panel/ajax/'++'_view.php
}
function oui_form_submit(fname){
	ajax_feedback_loading();
	$(fname).request({
  	onSuccess: function(t){ oui_transition_debounce=1;
	if(oui_transition_state=='web') {ui_show_mainpanel();}
	Effect.BlindUp('slidedown',{duration:0.5,afterFinish:function(){oui_transition_debounce=0;ajax_feedback_idle();}}); },
	onFailure: function(t){ alert('The following error(s) occurred. The form has not been submitted. \n\n'+t.responseText);ajax_feedback_idle(); }
})
}
function oui_form_cancel(){
	oui_transition_debounce=1;
	if(oui_transition_state=='web') {ui_show_mainpanel();}
	oui_transition_state='';
	Effect.BlindUp('slidedown',{afterFinish:function(){oui_transition_debounce=0;ajax_feedback_idle();}});
}

function oui_form_non_ajax_submit(fname) {
	$(fname).submit();
}

function oui_upload_complete(id){
	grab_edit(id);
	oui_form_cancel();
	ui_transition_to(ui_transition_state);
}


function ui_show_mainpanel(){
	Effect.BlindDown('viewport');
}

function ui_hide_mainpanel(){
	Effect.BlindUp('viewport',{duration:0.5});
}

function drop_init(){ui_draggable_init();ui_drag_init();}
function ui_draggable_init(){
	$$('ul.iconview li.drag_grabicon').each(ui_draggable_tofolder);
}
function ui_draggable_tofolder(elm){
	new Draggable(elm,{revert:'failure',
				  onDrag:alert,onDragLeave:alert});////////////////////////////////////////////////////////////////
}
function ui_drag_init(str){
	alert('init');
	$$('ul.folders li').each(ui_drop_add);
	alert(Droppables.drops);
}
function ui_drop_add(elm){
	Droppables.add(elm,{accept:'drag_grabicon'});
}

function ui_ifenterthenblurthis(e){
	if(event.keyCode==13) e.blur();
}
function ui_fetchrowcount(){
	new Ajax.Request('/panel/ajax/meta.php?m=num_rows',{onSuccess: function(t){ui_fetchrowcount_callback(t.responseText);}});
}
function ui_fetchrowcount_callback(e){
	if(!isNaN(e)) ui_step_max=e;
	else alert("Unknown error: \n\n"+e);
	if(ui_transition_state!='cal') ui_step_refresh();
}
function ui_bulk_action(e){
	//if(confirm('Are you sure you wish to '+e+' the selected grabs?')){
	opt="";
	switch(ui_transition_state){
		case 'icon':
			arr=$$('#viewport ul.iconview div.checkbox input');
			if(arr.length!=0){
				for (var i=0;i<arr.length;i++){
					if(arr[i].checked){
						opt=opt+(arr[i].value)+",";
						if(e!="delete")	Effect.Shake(arr[i]);
						else{
							Effect.Shrink('grab_icon_'+arr[i].value);
						}
					}
				}
			} else alert("Could not find any grabs to modify.");
			if(opt.length!=0)oui_transition_to('bulk_api.php?m='+e+'&opt='+opt+'&trans='+ui_transition_state+'&p=');
			else alert("Woah, hang on. You've not selected any grabs.");
		break;
		case 'cal':
			arr=$$('#viewport ul.iconview div.checkbox input');
			if(arr.length!=0){
				for (var i=0;i<arr.length;i++){
					if(arr[i].checked){
						opt=opt+(arr[i].value)+",";
						if(e!="delete")	Effect.Shake(arr[i]);
						else{
							Effect.Shrink('grab_icon_'+arr[i].value);
						}
					}
				}
			} else alert("Could not find any grabs to modify.");
			if(opt.length!=0)oui_transition_to('bulk_api.php?m='+e+'&opt='+opt+'&trans='+ui_transition_state+'&p=');
			else alert("Woah, hang on. You've not selected any grabs.");
		break;
		case 'table':
			arr=$$('#viewport table td.left input');
			if(arr.length!=0){
				for (var i=0;i<arr.length;i++){
					if(arr[i].checked){
						opt=opt+(arr[i].value)+",";
						if(e!="delete")	Effect.Shake(arr[i]);
						else{
							Effect.Shrink('grab_table_'+arr[i].value);
						}
					}
				}
			} else alert("Could not find any grabs to modify.");
			if(opt.length!=0)oui_transition_to('bulk_api.php?m='+e+'&opt='+opt+'&trans='+ui_transition_state+'&p=');
			else alert("Woah, hang on. You've not selected any grabs.");
		break;
	}
	//}
}
/* ///////////////// AJAX ///////////////////// AJAX /////////////////// AJAX //////////////*/
function ajax_edit_description(grabid,description){
	//alert("Editing Description #"+grabid+":\n"+description);
	ajax_request_plain_nocallback("modifygrab.php?mode=description&grabid="+grabid+"&description="+encodeURI(description));
}
function ajax_edit_title(grabid,title){
	//alert("Editing Title #"+grabid+":\n"+title);
	ajax_request_plain_nocallback("modifygrab.php?mode=title&grabid="+grabid+"&title="+encodeURI(title));
}
function ajax_delete_grab(grabid){
	//alert("Deleting Grab #"+grabid);
	ajax_request_plain_nocallback("modifygrab.php?mode=delete&grabid="+grabid);
}
function ajax_request_callback(url,successCallback,f){
	//alert("Requesting url: '/panel/ajax/"+url+"'");
	if(!f) f=function (t){alert("Unknown error occurred: \n"+t.responseText);}
	ajax_feedback_background();
	new Ajax.Request('/panel/ajax/'+url, {
	  method: 'get',
	  onSuccess: function(t) {
		  //alert("Success:\n"+ transport.responseText)
		  ajax_feedback_idle();
		  successCallback(t);
	  },
	  onFailure: function (t){
		  ajax_feedback_idle();
		  f(t);
	  }
	});
}
function ajax_request_plain_nocallback(url){
	//alert("Requesting url: '/panel/ajax/"+url+"'");
	ajax_feedback_background();
	new Ajax.Request('/panel/ajax/'+url, {
	  method: 'get',
	  onSuccess: function(transport) {
		  //alert("Success:\n"+ transport.responseText)
		  ajax_feedback_idle();
	  },
	  onFailure: function (t){
		  alert("Updating the grab failed due to the following reason. Please refresh/try again.\n\n"+t.responseText);
		  ajax_feedback_idle();
	  }
	});
}
function ajax_request_fill_element(url,elm,clb,fail){
	//alert("Requesting url: '/panel/ajax/"+url+"'");
	ajax_feedback_background();
	new Ajax.Request('/panel/ajax/'+url, {
	  method: 'get',
	  onSuccess: function(transport) {
		  //alert("Success:\n"+ transport.responseText)
		  elm.innerHTML=transport.responseText;
		  ajax_feedback_idle();
		  clb();
	  },
	  onFailure: function (t){
		  alert("Unknown error occurred: \n\n"+t.responseText);
		  ajax_feedback_idle();
		  fail();
	  }
	});
}
function ajax_feedback_loading(){
	$('container').style.cursor="wait";
}
function ajax_feedback_background(){
	$('container').style.cursor="progress";
}
function ajax_feedback_idle(){
	$('container').style.cursor="auto";
	ui_transition_debounce=0;
}
/* ///////////////// ICON VIEW ///////////////////// ICON VIEW /////////////////// ICON VIEW*/

//icon_edit_grab(base10); icon_delete_grab(base10); icon_modify_title(base10); icon_modify_description(base10);
var icon_buf="";
function icon_edit_grab(grabid){
	grab_edit(grabid);
}
function icon_delete_grab(grabid){
	if(confirm("Are you sure you wish to permanently delete this grab?")){
		Effect.Shrink('grab_icon_'+grabid);
		ajax_delete_grab(grabid);
	}
}
function icon_modify_title(grabid){
	//alert('Modifying Title of Grab '+grabid);
	e=$('grab_icon_'+grabid);
	f=e.select('h3')[0];
	g=e.select('h3 a')[0];
	icon_buf=g.innerHTML;
	f.innerHTML='<div class="input"><input onkeypress="ui_ifenterthenblurthis(this);" onblur="icon_modify_title_save('+grabid+');" type="text" class="input" value="'+g.innerHTML+'" /></div>';
	h=e.select('h3 input')[0];
	h.activate();
}
function icon_modify_title_save(grabid){
	//alert("To save +'grabid'+ via AJAX.");
	e=$('grab_icon_'+grabid);
	f=e.select('h3')[0];
	g=e.select('h3 input')[0];
	if(icon_buf!=g.getValue()) ajax_edit_title(grabid,g.getValue());
	f.innerHTML='<a href="#" onclick="icon_modify_title('+grabid+');return false;">'+g.getValue()+'</a>';
}
function icon_modify_description(grabid){
	// 'grab_icon_'+grabid
	//alert('Modifying Description of Grab '+grabid);
	e=$('grab_icon_'+grabid);
	f=e.select('div.description')[0];
	g=e.select('a.description')[0];
	icon_buf=g.innerHTML;
	f.innerHTML='<textarea onkeypress="ui_ifenterthenblurthis(this);" onblur="icon_modify_description_save('+grabid+');">'+g.innerHTML+'</textarea>';
	h=e.select('div.description textarea')[0];
	h.activate();
}
function icon_modify_description_save(grabid){
	//alert("To save +'grabid'+ via AJAX.");
	e=$('grab_icon_'+grabid);
	f=e.select('div.description')[0];
	g=e.select('div.description textarea')[0];
	if(icon_buf!=g.getValue()) ajax_edit_description(grabid,g.getValue());
	f.innerHTML='<a href="#" class="description" onclick="icon_modify_description('+grabid+');return false;">'+g.getValue()+'</a>';
}

/* /////////////// TABLE VIEW /////////////////// TABLE VIEW //////////////////// TABLE VIEW /////////////////// */

//icon_edit_grab(base10); icon_delete_grab(base10); icon_modify_title(base10); icon_modify_description(base10);
var table_buf="";
function table_edit_grab(grabid){
	grab_edit(grabid);
}
function table_delete_grab(grabid){
	if(confirm("Are you sure you wish to permanently delete this grab?")){
		Effect.Shrink('grab_table_'+grabid);
		ajax_delete_grab(grabid);
	}
}
function table_modify_title(grabid){
	//alert('Modifying Title of Grab '+grabid);
	e=$('grab_table_'+grabid);
	f=e.select('td.grab_title')[0];
	g=e.select('td.grab_title a')[0];
	table_buf=g.innerHTML;
	f.innerHTML='<div class="input"><input onkeypress="ui_ifenterthenblurthis(this);" onblur="table_modify_title_save('+grabid+');" type="text" class="input" value="'+g.innerHTML+'" /></div>';
	h=e.select('td.grab_title input')[0];
	h.activate();
}
function table_modify_title_save(grabid){
	//alert("To save "+grabid+" via AJAX.");
	e=$('grab_table_'+grabid);
	f=e.select('td.grab_title')[0];
	g=e.select('td.grab_title input')[0];
	if(table_buf!=g.getValue()) ajax_edit_title(grabid,g.getValue());
	f.innerHTML='<a href="#" onclick="table_modify_title('+grabid+');return false;">'+g.getValue()+'</a>';
}
function table_modify_description(grabid){
	// 'grab_icon_'+grabid
	//alert('Modifying Description of Grab '+grabid);
	e=$('grab_table_'+grabid);
	f=e.select('td.grab_description')[0];
	g=e.select('td.grab_description a span')[0];
	table_buf=g.innerHTML;
	f.innerHTML='<div class="input"><input onkeypress="ui_ifenterthenblurthis(this);" onblur="table_modify_description_save('+grabid+');" type="text" class="input" value="'+g.innerHTML+'" /></div>';
	h=e.select('td.grab_description input')[0];
	h.activate();
}
function table_modify_description_save(grabid){
	//alert("To save "+grabid+" via AJAX.");
	e=$('grab_table_'+grabid);
	f=e.select('td.grab_description')[0];
	g=e.select('td.grab_description input')[0];
	if(table_buf!=g.getValue()) ajax_edit_description(grabid,g.getValue());
	f.innerHTML='<a href="#" class="description" onclick="table_modify_description('+grabid+');return false;"><span>'+g.getValue()+'</span></a>';
}

/* /////////////// TABLE VIEW /////////////////// TABLE VIEW //////////////////// TABLE VIEW /////////////////// */
var grab_debounce=0;
var grab_title_buffer;
var grab_desc_buffer;
function grab_edit(id){grab_show(id);}
function grab_show(id){
	if(grab_debounce!=1){
		ajax_request_fill_element('lightbox_viewgrab.php?grab='+id,$('light_sand'),grab_onload,function(){$('fade').style.display="none"})
		e2=document.getElementById('fade');
		e2.style.display='block';
	}
}
function grab_onload(){
	e=document.getElementById('light');
	e.style.display='block';
	//Effect.Appear('light');
	e2=document.getElementById('fade');
	e2.style.display='block';
	e3=document.getElementById('fade2');
	e3.style.display='block';
	grab_titlekeychange(0,grab_new_title);
	grab_desckeychange(0,grab_new_description);
}
function grab_hide(){
	grab_debounce=1;
	Effect.Fade('light');
	Effect.Shrink('fade');
	Effect.Shrink('fade2',{afterFinish:function(){grab_debounce=0;}});
}
function grab_save(id){
	if(grab_debounce!=1){
		ajax_feedback_loading();
		fname="grab_"+id;
		grab_collections();
		switch (ui_transition_state){
			case 'icon':
				selector='#grab_'+ui_transition_state+'_'+id+' h3 a';
				arr=$$(selector);
				arr[0].innerHTML=grab_title_buffer;
				selector='#grab_'+ui_transition_state+'_'+id+' div.description a';
				arr=$$(selector);
				arr[0].innerHTML=grab_desc_buffer;
			break;
			case 'table':
				selector='#grab_'+ui_transition_state+'_'+id+' td.grab_title a';
				arr=$$(selector);
				arr[0].innerHTML=grab_title_buffer;
				selector='#grab_'+ui_transition_state+'_'+id+' td.grab_description a span';
				arr=$$(selector);
				arr[0].innerHTML=grab_desc_buffer;
			break;
		}
		$(fname).request({
		onSuccess: function(t){
			ajax_feedback_idle();grab_hide();
		},
		onFailure: function(t){ alert('The following error(s) occurred. The form has not been submitted. \n\n'+t.responseText);ajax_feedback_idle(); }
						 });
	}
}
function grab_cancel(){
	if(grab_debounce!=1){
		grab_hide();
	}
}
function grab_delete(id){
	if(grab_debounce!=1){
		if(confirm('Are you sure you\'d like to delete this grab')){
			switch(ui_transition_state){
				case 'icon':
					icon_delete_grab(id);
					break;
				case 'table':
					table_delete_grab(id);
					break;
			}
			grab_hide();
		}
	}
}

function grab_collections(){
	var str="";
	$$('#grab_collections input').each(function (e){
		if(e.checked) str=str+e.value+",";
	});
	$('grab_collections_str').value=str;
	return str;
}

function grab_titlekeychange(id,f){
	grab_title_buffer=f.value;
}
function grab_desckeychange(id,f){
	grab_desc_buffer=f.value;
}

/* ///////////// FOLDER VIEW ///////////////// FOLDER VIEW ////////////////// FOLDER VIEW /////////////////// */
var folder_offset=0;
var folder_debounce=0;
function folder_new(){
	Effect.toggle('folder_newfolder','blind',{duration:0.5});
}
function folder_create(f){
	//Effect.Fade('folder_newfolder_button',{duration:0.5});
	ajax_request_callback('folder_api.php?mode=create&name='+escape(f),folder_created,folder_creation_error);
	//alert("d");
}
function folder_created(t){
	Effect.DropOut('folder_newfolder');
	Effect.BlindUp('folder_newfolder');
	folder_page_num=1;
	folder_load((folder_page_num-1)*4);
}
function folder_creation_error(t){
	Effect.Shake('folder_newfolder_button');
	alert("Error occurred:\n"+t.responseText);
}
function folder_load(offset){
	if(folder_debounce!=1){
		folder_debounce=1;
	if(!offset) offset=0;
	Effect.BlindUp('side_folders',{duration:0.5});
	Effect.Fade('side_folders',{duration:0.5,afterFinish:function(){
							ajax_request_callback('folder_api.php?mode=load&start='+offset,folder_loaded);
																  }});
	}
}
function folder_loaded(t){
	if(t.responseText!='none'){
		$('side_folders_ajax').innerHTML=t.responseText;
		Effect.Appear('side_folders');
		Effect.BlindDown('side_folders',{afterFinish:function(){folder_debounce=0;}});
		$('folder_pagecount').innerHTML="Page "+folder_page_num;
	}else {
		if(folder_page_num!=1){
			folder_debounce=0;
			folder_page_num=1;
			folder_load((folder_page_num-1)*4);
		}else $('folder_pagecount').innerHTML="No folders";
		$('side_folders_ajax').innerHTML="&nbsp;";
	}
}
function folder_loadgrabs(id){
	//alert("Load in grabs for "+id);
	sui_transition_to(ui_transition_state,1,16,'coll='+id);
}
function folder_rename(id,name){
	ajax_request_plain_nocallback('folder_api.php?mode=rename&id='+id+'&name='+escape(name));
}
function folder_edit(id){
	e=$$('li#folder_'+id+' div.editable')[0];
	f=$$('li#folder_'+id+' div.editable a span b')[0];
	//alert(e+" "+f);
	e.innerHTML='<div class="textarea"><textarea onblur="folder_save('+id+',this.value);" class="folderesque">'+f.innerHTML+'</textarea></div>';
	f=$$('li#folder_'+id+' div.editable div.textarea textarea')[0];
	f.activate();
}
function folder_save(id,txt){
	folder_rename(id,txt);
	e=$$('li#folder_'+id+' div.editable')[0];
	f=$$('li#folder_'+id+' div.editable div.textarea textarea')[0];
	e.innerHTML='<a class="title" onclick="folder_edit('+id+');return false;" href="#"><span><b>'+txt+'</b></span></a>';
}
var folder_page_num=1;
function folder_pagination(dir){
	switch (dir){
		case -1:
			if(folder_page_num==1){
				//go to max page
			}else folder_page_num--;
		break;
		case 1:
			folder_page_num++;
		break;
	}
	//$('folder_pagecount').innerHTML="Page "+folder_page_num;
	folder_load((folder_page_num-1)*4);
	///////////////////////////////////////////////////////////
}
/* ///////////// SEARCH AND QUERY VIEW ///////////////// SEARCH AND QUERY VIEW ////////////////////// */
function search_grabs(s){
	if(escape(s)!=escape("search for grabs&hellip;")) 
	sui_transition_to(ui_transition_state,1,16,'term='+escape(s));
}
function grabs_day(day){
	sui_transition_to(ui_transition_state,1,16,'day='+escape(day));
}
//function grabs_month(month){
//	sui_transition_to(ui_transition_state,1,16,'month='+escape(month));
//}
/* ///////////// COLLECTION COLLCTION ///////////////// COLLECTION COLLECTION ////////////////////// */
var collection_debounce=0;
function collection_edit(coll_id){
	if(collection_debounce!=1){collection_debounce=1;
	Effect.toggle('editcollection_'+coll_id,'blind',{afterFinish:function(){collection_debounce=0;}});
	}
}
function collection_change_mode(val,id){
	switch (val){
		case 1:
		case 2:
		if($('c_passwordinput_'+id).style.display!='none'){Effect.DropOut('c_passwordinput_'+id,{duration:0.7});Effect.BlindUp('c_passwordinput_'+id,{duration:0.7});}
		break;
		case 3:
		alert("You are choosing to make a password-protected web collection. Please note that collection passwords are stored in plain text, and should not be used to protect private or secure information. This does not affect the individual availability of each grab on their respective pages.");
		Effect.Appear('c_passwordinput_'+id,{duration:0.5});
		break;
	}
}
function collection_cancel(cid){
	Effect.BlindUp('editcollection_'+cid);
}
function collection_delete(cid){
	if(confirm('Are you sure you\'d like to delete this collection? The associated grabs will remain with your account.')){
		ajax_request_plain_nocallback('folder_api.php?mode=delete&id='+cid);
		Effect.BlindUp('collections_'+cid);
	}
}
function collection_save(cid){
	ctitle=escape($('c_title_'+cid).value);
	ccaption=escape($('c_caption_'+cid).value);
	ctype=escape($('c_types_'+cid).value);
	cpassword=escape($('c_password_'+cid).value);
	//ajax_request_plain_nocallback
	ajax_request_plain_nocallback('folder_api.php?mode=edit&id='+cid+'&title='+ctitle+'&caption='+ccaption+'&type='+ctype+'&password='+cpassword);
	oui_transition_to('web');
}
/* Social APIs */
function ext_popup_open(url,callback,width,height){
	alert("2An external popup aimed at "+url+" was launched with callback "+callback+"(); and dimensions: "+width+"x"+height);
	window.open(url,"ext_social_facebook","scrollbars=0,width="+width+",height="+height+",left="+((screen.width-width)*0.5) +",top="+((screen.height-height)/2));
}

/* Unorganized functions */
function toggle_grab_select() {
    var arr=$$('#viewport input[type=checkbox]');
    if(arr.length != 0) {
        for(var i=0;i<arr.length;i++) {
            arr[i].checked = ($$('#select-all-grabs')[0].checked == true) ? true : false;
        }
    }
}
