var member_visible_id = 0;
var member_last_value;
var member_last_counter = 0;
var member_wait_time = 500;
var member_link_ok = 1;
var wall_submitted = 0;
var crop_string = "";
var dirty=0;
var metatag_last_value;
var metatag_last_counter = 0;
var metatag_wait_time = 500;

var bookTabs = new Array();
bookTabs[0] = 'bookTab_interest';
bookTabs[1] = 'bookTab_consuming';
bookTabs[2] = 'bookTab_wanted';


	// Tabs for profile blobs
var blobTabs = new Array();
	blobTabs[0] = 'blobTab_news';
	blobTabs[1] = 'blobTab_wall';
	blobTabs[2] = 'blobTab_lists';
	blobTabs[3] = 'blobTab_rights';


function changeActiveTab(whichSection, whichTab) {
  
		for (i=0;i<whichSection.length;i++)	{
		    if ($(whichSection[i])) {
			removeClass($(whichSection[i]),'activeBlobTab');
		    }
		}
		addClass($(whichTab),'activeBlobTab');
}

function check_if_link_is_free(input) {
	member_last_counter++;
	var func_call = "perform_search(" + member_last_counter + ", '" + input.value + "')";
	setTimeout(func_call, member_wait_time);
}

function perform_search(counter, value) {

    if (counter != member_last_counter) {
	return;
    }
		
    if(value.length < 2) {
	set_not_ok();
     	return;
    }

    if (value==member_last_value) {
    	return;
    }
    
    member_last_value=value;
	
    ok_func = function (transport) { update_search(transport); };
    failed_func = function (transport) { update_search(transport); };
    var url = '/member/ajax/check_link.cgi'
    var pars = 'keyword=member&value='+value;
    
    var myAjax = new Ajax.Request( url,
				   { method: 'get',
				     parameters: pars,
				     onSuccess: ok_func,
				     onFailure: failed_func
				   });
    return false;
}

function return_if_ok() {
    if (member_link_ok == 1) {
	return true;
    } else {
	return false;
    }
}

function set_not_ok() {
    $('link_is_free').innerHTML = "Inte ledigt!";
    $('link_is_free').style.color = "red";
    member_link_ok = 0;
}

function set_ok() {
    $('link_is_free').innerHTML = "Ledigt!";
    $('link_is_free').style.color = "green";
    member_link_ok = 1;
}

function update_search(transport) {
    if (transport.responseText == 'ok') {
	set_ok();
    } else {
	set_not_ok();
    }
}

function onEndCrop( coords, dimensions ) {
	crop_string = coords.x1 + '|' + coords.y1 + '|' + coords.x2 + '|' + coords.y2 + '|' + dimensions.width + '|' + dimensions.height + '|';
}

function save_crop(group) {
	document.location="/groups/save_edit_image.cgi?data="+crop_string+"&group="+group;
}

function save_friend(action,friend) {
	var url = '/member/ajax/save_friend.cgi';
	var pars = 'action='+action+'&friend='+friend;
	var ok_func = function (transport) { saved_friend(action, friend, transport); };
	new Ajax.Request(url,
						{ method: 'get',
						  parameters: pars,
						  onSuccess: ok_func,
						  onFailure: ok_func
      });
}

function saved_friend(action, friend, transport) {
	if (!(transport.responseText == 'ok')) {
		alert("Något gick fel.");
		return false;
	}

	if (action == 'invite') {
		$('saved_friend').style.display='block';
		$('make_friend').style.display='none';
	}

	if (action == 'accept' || action == 'deny' || action == 'ignore' || action == 'remove') {
		window.location.reload();
	}
}

function load_blob(blob, member) {
	var url = '/member/ajax/load_blob.cgi';
	var pars = 'type=group&blob='+blob+'&viewed='+member;
	var ok_func = function (transport) { show_result('blob', transport); };
	new Ajax.Request(url,
						{ method: 'get',
						  parameters: pars,
						  onSuccess: ok_func
				        });
}

function load_shelf(shelf, member, offset) {
	var url = '/lists/ajax/load_shelf.cgi';
	var pars = 'type=group&shelf='+shelf+'&viewed='+member+'&offset='+offset;
	var ok_func = function (transport) { show_result('shelf', transport); };
	new Ajax.Request(url,
						{ method: 'get',
						  parameters: pars,
						  onSuccess: ok_func
				        });
}

function load_shelf_as_list(shelf, member, offset) {
	var url = '/lists/ajax/load_shelf_as_list.cgi';
	var pars = 'type=group&shelf='+shelf+'&viewed='+member+'&offset='+offset;
	var ok_func = function (transport) { show_result('shelf', transport); };
	new Ajax.Request(url,
						{ method: 'get',
						  parameters: pars,
						  onSuccess: ok_func
				        });
}



function show_result(divname, transport) {
    if(!$(divname)) {
        window.location.reload();
    } else {

    	$(divname).innerHTML = transport.responseText;
	   $(divname).style.display='block';
    }
}

function submit_wall(post_form_name, viewed) {
	var url = '/forum/save_straight_answer.cgi';
	var pars = $(post_form_name).serialize();
	var ok_func = function (transport) { load_blob('wall', viewed); };
	new Ajax.Request(url,
						{ method: 'get',
						  parameters: pars,
						  onSuccess: ok_func
				    });
}

function function_changed(name) {
	if ($('select_' + name).value == 'off') {
		$('checked_' + name).checked=false;
		$('checked_' + name).disabled=true;
	} else if ($('checked_' + name).disabled == true) {
		$('checked_' + name).checked=true;
		$('checked_' + name).disabled=false;
	}
}

function permission_member_changed(group, type) {
    var url = '/groups/ajax/permission_member_changed.cgi';
    if (type == 'add') {
	if ($('member_permission').value == -2) {
	    $('permission').innerHTML = '<select name="permission" class="userInput"><option value="-2">-------</option></select>';
	    return false;
	}
	var pars = 'group=' + group + '&member=' + $('member_permission').value + '&type=' + type;
    }
    else if (type == 'remove') {
	if ($('remove_member_permission').value == -2) {
	    $('remove_permission').innerHTML = '<select name="permission" class="userInput"><option value="-2">-------</option></select>';
	    return false;
	}
	var pars = 'group=' + group + '&member=' + $('remove_member_permission').value + '&type=' + type;
    }
    var ok_func = function (transport) { display_permissions(transport, type); };
    new Ajax.Request(url, 
		     { method: 'post',
			     parameters: pars,
			     onSuccess: ok_func
	});
}

function display_permissions(transport, type) {
    var html = transport.responseText;
    if (html != '') {
	if (type == 'add') {
	    $('permission').innerHTML = transport.responseText;
	}
	else if (type == 'remove') {
	   
	    $('remove_permission').innerHTML = transport.responseText;
	}
    }
}


function send_invite(group,recipient,prefix) {
    if (recipient == "") {
	return false;
    }
    ok_func = function (transport) { invitation_sent(transport,prefix); };
    var url = '/groups/ajax/send_invitation.cgi';
    var pars = 'recipient=' + recipient + '&group=' + group;

    var myAjax = new Ajax.Request(url, 
				  { method: 'get',
				    parameters: pars,
				    onSuccess: ok_func
                  });
}

function invitation_sent(transport,prefix) {
    if (transport.responseText == 'error') {
	$('invitation_check').innerHTML = '<p>Något gick fel. Inbjudan kunde inte skickas!</p>';
    } 
    else if (transport.responseText == 'is_member') {
	$('invitation_check').innerHTML = '<p>Redan medlem i gruppen!</p>';
    } 
    else if (transport.responseText == 'is_invited') {
	$('invitation_check').innerHTML = '<p>Redan inbjuden!</p>';
    } 
    else {
	$('invitation_check').innerHTML = '<p>Inbjudan skickad till ' + transport.responseText + '!</p>';  
    }
    if ($('default_recipient_input')) {
        $('default_recipient_input').value='';
    }
    $(prefix+'_recipient_exists').style.display='none';
    $(prefix+'_no_recipient_exists').style.display='inline';
    $(prefix+'_recipient_link').innerHTML = '';
    $(prefix+'_recipient_link').href = '';
    $(prefix+'_recipient').value = '';
    $(prefix+'_recipient_field').value = '';
    $(prefix+'_member_list').style.display='none';
    $(prefix+'_member_list').innerHTML='';
    
}

function get_all_events(divname, source, type) {
	var url = '/member/ajax/get_all_events.cgi';
	var pars = 'source=' + source + '&type=' + type;
	var ok_func = function (transport) { show_result(divname, transport); };
	new Ajax.Request(url,
						{ method: 'get',
						  parameters: pars,
						  onSuccess: ok_func
				    });
}
function get_all_grouped_events(divname, source, type) {
    var url = '/member/ajax/get_all_events.cgi';
    var pars = 'source=' + source + '&type=' + type + '&grouped=1';
    var ok_func = function (transport) { show_result(divname, transport); };
    new Ajax.Request(url,
						{ method: 'get',
						  parameters: pars,
						  onSuccess: ok_func
				    });
}

function send_group_message() {
    var url = '/groups/ajax/send_group_message.cgi';
    var pars="group=" + $('group').value + "&subject=" + $('message_subject').value + "&body=" + $('message_body').value;
    var ok_func = function (transport) { message_sent(transport); };
    new Ajax.Request(url,
                        {method:'post',
                         parameters: pars,
                         onSuccess: ok_func
                        });
}

function message_sent(transport) {
    if (transport.responseText == 'ok') {
        $('send_message').style.display='none';
        $('message_subject').value='';
        $('message_body').value='';
        $('send_message_response').style.display='block';
    }
}

function invite_checked_friends(form) {
    var url = '/groups/ajax/invite_friends.cgi';
    var pars = form.serialize();
    var ok_func = function (transport) { friend_invitation_sent(transport); };
    new Ajax.Request(url,
                        {method:'post',
                         parameters: pars,
                         onSuccess: ok_func
                        });
}

function friend_invitation_sent(transport) {
    if (transport.responseText == 'ok') {
        $('invitation_check').innerHTML = 'Inbjudningarna skickade';
	$('invite_any').style.display = 'block';
	$('friend_boxes').style.display = 'none';
    }
}

function limitText(limitField, limitNum) {
    if (limitField.value.length > limitNum) {
        limitField.value = limitField.value.substring(0, limitNum);
    } 
}

function clearText(field) {
    if (!dirty) {
        field.value='';
        field.style.color='#000';
        dirty=1;
    }
}
        
function add_link(source_type, source_id) {
	var ser_pars = $('add_link_' + source_type + '_' + source_id).serialize();
    var url = '/groups/ajax/add_link.cgi';
    var ok_func = function (transport) { link_added(transport); };
    new Ajax.Request(url,
                        {method:'post',
                         parameters: ser_pars,
                         onSuccess: ok_func
                        });
}

function link_added(transport) {
    $('links').innerHTML = transport.responseText;
}

function metatag_name_search(input) {
	metatag_last_counter++;
	var func_call = "metatag_perform_search(" + metatag_last_counter + ", '" + input + "')";
	setTimeout(func_call, metatag_wait_time);
}

function metatag_perform_search(counter, value) {

	if (counter != metatag_last_counter) {
		return;
	}

    if(value.length < 2) {
	  $('metatag_name_result').style.display="none";
	  $('metatag_name_result').innerHTML='';
      return false;
    }

    if (value == metatag_last_value) {
    	return;
    }
    
	metatag_last_value = value;

	  $('metatag_name_result').style.display="block";
	  $('metatag_name_result').innerHTML='Söker...';
	
    ok_func = function (transport) { metatag_update_search(transport); };
    failed_func = function (transport) { metatag_update_search(transport); };
    var url = 'groups/ajax/get_book_list.cgi'
    var pars = 'value=' + value;
    var myAjax = new Ajax.Request( url,
                                  { method: 'get',
                                    parameters: pars,
                                    onSuccess: ok_func,
				    				onFailure: failed_func
                                  });
    return false;
}

function metatag_update_search(transport) {
  
  var string = '';
  var data;
 
  try
  {
     data = eval(transport.responseText);
  }
  catch(e)
  {
    return false;
  }  
  for (var i = 0; i < data.length; i++) {
    string += '<div class="search_result"><a href="javascript:void(0);" onclick="$(\'metatag_name_result\').style.display=\'none\';$(\'metatag_name_result\').innerHTML=\'\';$(\'metatag_search_result\').value=\'' + data[i].id + '\';$(\'book_search_field\').value=\'' + data[i].name + '\'">' + data[i].name + ' (av ' + data[i].author + ')</a></div>';
  }
  $('metatag_name_result').style.display="block";
  $('metatag_name_result').innerHTML = string;
}

function update_tv4_play() {
    $('tv4play').innerHTML="Uppdaterar, detta kan ta en liten stund...";
    $('tv4play').style.display='block';
    ok_func = function (transport) { tv4_play_ok(transport); };
    failed_func = function (transport) { tv4_play_error(transport); };
    var url = 'groups/ajax/update_tv4_play.cgi'
    var myAjax = new Ajax.Request( url,
                                  { method: 'get',
                                    onSuccess: ok_func,
				    				onFailure: failed_func
                                  });
}

function tv4_play_ok(transport)
{
    $('tv4play').innerHTML = "TV4 Play uppdaterat.";
}
    
function tv4_play_error(transport)
{
    $('tv4play').innerHTML = "Något gick fel i uppdateringen. Vänligen försök senare.";
}
    
    