var http = createRequestObject();
var facebook_user_id;
function fb_connected(user_id) {
	facebook_user_id = user_id;
}

function fb_find() {
	FB.ensureInit(function() {
		var api = FB.Facebook.apiClient;
		var facebook_ids = '';		
		api.fql_query("SELECT uid2 FROM friend WHERE uid1 = "+facebook_user_id, function(result, ex) {  
		for (i = 0; i < result.length; i++) {
			if (facebook_ids!='') facebook_ids += ',';
			facebook_ids += result[i]['uid2'];
		}
		document.location.href='/find?mode=facebook&facebook_ids='+facebook_ids;
		});
	});		
}

function fb_connect() {
	document.location.href='/facebook'
}

function addPubMed() {
	if(http.readyState == 4) {
		$('pubmed_indicator').style.display='none';
		var r = http.responseText;
		if (r != '') {
			$('pubmed_results').innerHTML = r;
		}
	}
}

function requestPubMedDetail(id) {
	req_params = '';
	req_url = '/ajax/query_pubmed_detail/'+id;
	Effect.Appear ($('pubmed_'+id));
	httpRequestPost(req_url,req_params,'addPubMedDetail');
}

function addPubMedDetail() {
	if(http.readyState == 4) {
		var r = http.responseText;
		if (r != '') {
			r = eval('('+r+')');
			$('pubmed_'+r['id']).innerHTML = r['html'];					
		}
	}
}
			
function switch_feedback() {
	if ($('feedback').style.left == '0px')
		$('feedback').style.left = '-10px';
	else
		$('feedback').style.left = '0px';
}

function switch_visibility(id) {
	if ($(id).style.display=='block')
		$(id).style.display='none';
	else
		$(id).style.display='block';
}

function addActivityComment() {
	$('activity_indicator').style.display = 'block';
	req_params = 'data[User][activity_id]='+$('activity_id').value+'&data[User][msg]='+encodeURIComponent($('activity_comment_msg').value);
	req_url = '/profile/comment';
	httpRequestPost(req_url,req_params,'addActivityResponse');
}

function addActivityResponse() {
	if(http.readyState == 4) {
		$('activity_indicator').style.display = 'none';
		var r = http.responseText;
		if (r != '') {
			r = eval('('+r+')');
			
			$('activity_comment').style.display = 'none';	
			$('activity_comment_msg').value = '';
			
			var new_entry = Builder.node ('div', { className: 'activity_comments'});
			new_entry.innerHTML = r['html'];
			$('activity_'+r['parent_id']).appendChild (new_entry);
		}
	}
}

function showActivityComment(id) {
	var a = $('activity_'+id);
	a.appendChild($('activity_comment'));
	$('activity_comment').style.display = 'block';	
	$('activity_id').value = id;
}

function cancelActivityComment() {
	$('activity_comment').style.display = 'none';	
	$('activity_comment_msg').value = '';
}

function updateStatusFocus() {
	if ($('status_msg').value == language['lbl_status_what']) {
		$('status_msg').value=''; 
		$('status_msg').style.color='#000000';
		$('status_update_button').style.display = 'block';
	}
}

function updateStatus() {
	if (trim($('status_msg').value)!='' && trim($('status_msg').value)!=language['lbl_status_what']) {
		$('status_indicator').style.display = 'block';
		req_params = 'data[User][status_msg]='+encodeURIComponent($('status_msg').value);
		req_url = '/profile/status';
		httpRequestPost(req_url,req_params,'updateStatusResponse');
	}
}

function updateStatusResponse() {
	if(http.readyState == 4) {
		$('status_indicator').style.display = 'none';
		var r = http.responseText;
		if (r != '') {
			$('status_msg').value = language['lbl_status_what'];
			$('status_msg').style.color = '#808080';
			$('status_update_last').innerHTML = language['lbl_status_last']+' '+r;;
		}
	}
}

function deleteItem(id) {
	if (confirm(language['lbl_confirm_item_delete'])) { 
		req_params = '';
		req_url = '/profile/items/delete/'+id;
		httpRequestPost(req_url,req_params,'deleteItemResponse');
	}
}

function deleteItemResponse () {
	if(http.readyState == 4) {
		var r = http.responseText;
		if (r != '') {
			new Effect.Fade($('item_'+r));
		}
	}
}

function deleteActivity(id) {
	if (confirm(language['lbl_confirm_activity_delete'])) { 
		req_params = '';
		req_url = '/profile/activity/delete/'+id;
		httpRequestPost(req_url,req_params,'deleteActivityResponse');
	}
}

function deleteActivityResponse () {
	if(http.readyState == 4) {
		var r = http.responseText;
		if (r != '') {
			new Effect.Fade($('activity_'+r));
		}
	}
}

function deleteContact(id) {
	if (confirm(language['lbl_confirm_contact_disconnect'])) { 
		document.location.href = '/disconnect/'+id;
	}
}

function deleteGuestbook(id) {
	if (confirm(language['lbl_confirm_guestbook_delete'])) { 
		req_params = '';
		req_url = '/guestbook/delete/'+id;
		httpRequestPost(req_url,req_params,'deleteGuestbookResponse');
	}
}

function deleteGuestbookResponse () {
	if(http.readyState == 4) {
		var r = http.responseText;
		if (r != '') {
			new Effect.Fade($('guestbook_'+r));
		}
	}
}

function sendGuestbook(to_user_id) {		
	if (trim($('guestbook_body').value) != '' && trim($('guestbook_body').value) != language['msg_leave_message']) {
		$('guestbook_send').disabled = true;
		$('guestbook_body').disabled = true;
		$('guestbook_indicator').style.display = 'block';
		req_params = 'data[Message][to_user_id]='+to_user_id+'&data[Message][body]='+encodeURIComponent($('guestbook_body').value);
		req_url = '/guestbook/add';
		httpRequestPost(req_url,req_params,'sendGuestbookResponse');
	} else {
		
	}
}

function sendGuestbookResponse() {
	if(http.readyState == 4){
		$('guestbook_indicator').style.display = 'none';		
		var r = http.responseText;
		if (r.substring(0,5) != 'error') {
			r = eval('('+r+')');
			
			$('no_messages').style.display = 'none';			
			var id = 'guestbook_'+r['id'];
			
			var new_entry = Builder.node ('div', { id: id, className: 'entry', style: 'display:none;' });
			new_entry.innerHTML = r['html'];
			$('guestbook_entries').insertBefore (new_entry, $('guestbook_entries').childNodes[0]);
			Effect.Appear ($(id));
			$('guestbook_body').value = '';
			$('guestbook_send').disabled = false;
			$('guestbook_body').disabled = false;
		}
	}
}

function httpRequestGet (url,callback) {
	if (!callInProgress(http)) {
	    http.open('get', url, true);
	    http.onreadystatechange = eval(callback);
	    http.send(null);
	}		
}

function httpRequestPost (url,params,callback) {
	if (!callInProgress(http)) {
	    http.open('POST', url, true);	    
	    http.onreadystatechange = eval(callback);
	    http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      http.setRequestHeader("Content-length", params.length);
      http.setRequestHeader("Connection", "close");
	    http.send(params);
	}		
}

function createRequestObject() {
    var xmlhttp;

    try {

        xmlhttp = new XMLHttpRequest();
    } catch (e) {
        var MSXML_XMLHTTP_PROGIDS = new Array(
          'MSXML2.XMLHTTP.5.0',
          'MSXML2.XMLHTTP.4.0',
          'MSXML2.XMLHTTP.3.0',
          'MSXML2.XMLHTTP',
          'Microsoft.XMLHTTP');
        var success = false;
        for (var i=0;i < MSXML_XMLHTTP_PROGIDS.length && !success; i++) {
            try {
                xmlhttp = new ActiveXObject(MSXML_XMLHTTP_PROGIDS[i]);
                success = true;
            } catch (e) {}
        }
        if (! success) {
            //alert ('No AJAX-Support for this browser :(!');
        }
    }
    return xmlhttp;
}

function callInProgress(xmlhttp) {
    switch ( xmlhttp.readyState ) {
        case 1:
              case 2:
              case 3:
            return true;
        break;
        default:
            return false;
        break;
    }
}

function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

// debug: Add Debug-Message to #debug-div

function debug(msg) {
	if (document.getElementById('debug_box'))
		$('debug_box').innerHTML = msg+"<br/>"+$('debug_box').innerHTML;
}

// switchDebug: Switch #debug-div on/off

function switchDebug() {	
	if (Element.getHeight($('debug')) <= 30) {
		$('debug').style.height = "300px";
		$('debug_box').style.height = "280px";
	} else {
		$('debug').style.height = "15px";
		$('debug_box').style.height = "0px";
	}
}

onload = function() {
};