function OdnHelper() { this.currentPage = 0; this.onFriendAdded = function (sender, friendId) { } this.onFriendRemoved = function (sender, friendId) { } } var _odnHelper = new OdnHelper(); function onAjaxError(msg) { // alert('Something went wrong...'); } function hasOdnProfile() { var hasOdnProfile = false; ajaxCall('/odnHome/ajaxCheckProfile', null, 'post', function(success, params, result) { if (success) { hasOdnProfile = result.hasProfile; } }, false); return hasOdnProfile; } function ajaxCall(url, parameters, method, callback, asynchronous, disableMessages) { if (typeof asynchronous == "undefined") { asynchronous = true; } if (typeof disableMessages == "undefined") { disableMessages = false; } new Ajax.Request(url, { asynchronous: asynchronous, method: method, parameters: parameters, onSuccess: function(transport){ if (transport.status == 0) { return; // interrupted } if (transport.status != 200) { alert('Ajax error: \nURL=' + url + '\nstatus=' + transport.status); return; } var ajaxResult = null; try { ajaxResult = eval("(" + transport.responseText + ")"); // if (ajaxResult.class != 'odn.AjaxCallResult') { // throw "Unknown result class: " + ajaxResult.class; // } } catch(e) { alert("Error: " + e + "\n\nURL: '" + url + "\n\nResponse: '" + transport.responseText); return; } var success = (ajaxResult.status == 1); if (!success) { if (ajaxResult.status == 3) { window.location.href = "/sessionExpired"; return; } if (ajaxResult.message && !disableMessages) { alert(ajaxResult.message); } if (ajaxResult.redirectUrl) { window.top.location.pathname = ajaxResult.redirectUrl; return; } } if (callback) { callback(success, parameters, ajaxResult.data); } }, onFailure: function(){ onAjaxError('') } }); } function ajaxUpdate(elementId, url, parameters, method, callback) { var element = $(elementId); if (!element) { alert("Element " + elementId + " not found"); return; } ajaxCall(url, parameters, method, function(success, params, data) { element.innerHTML = data; if (callback) { callback(params); } }); } function gotoPage(page) { var f = $("_pagerForm"); f.page.value = page; f.submit(); } function ajaxFormSubmit(url, form) { ajaxCall (url, Form.serialize(form), 'post', function(success, params, result) { if (success) { alert(result); } }); } function WallHelper() { this.createUrl = ''; this.refreshUrl = ''; this.deleteUrl = ''; this.currentPage = 0; this.recordsCnt = 0; } var _wallHelper = new WallHelper(); function showWallMsgCreator() { $j("#odnWallMsgCreator").toggle('fast'); $j("#wallMsgInput").focus(); } function onWallError(params, result) { } var _createWallMessageBusy = false; function createWallMessage(sender) { if (_createWallMessageBusy) { return; } _createWallMessageBusy = true; var form = sender.form; $j('#wallMsgSendBtn').attr('disabled', 'disabled'); $j('#wallSpinner').show(); ajaxCall(_wallHelper.createUrl, {message: form.message.value}, 'post', function(success, params, result) { _createWallMessageBusy = false; $j('#wallSpinner').hide(); $j('#wallMsgSendBtn').attr('disabled', ''); if (success) { sender.form.message.value = ''; $j("#odnWallMsgCreator").toggle('fast'); refreshWall(0); } else { onWallError(params, result); } }); } function refreshWall(page) { if (page < 0) page = _wallHelper.currentPage; $j('#wallSpinner').show(); ajaxCall(_wallHelper.refreshUrl, {page:page}, 'post', function(success, params, data) { $j('#wallSpinner').hide(); if (success) { $j('#odnWall').html(data.messages); $j('#odnWallToolbar').html(data.toolbar); _wallHelper.currentPage = page; } else { onWallError(params, data); } }); } function deleteWallMsg(msgId) { $j('#wallSpinner').show(); ajaxCall(_wallHelper.deleteUrl, {msgId: msgId}, 'post', function(success, params, result) { if (success) { refreshWall(-1); } else { onWallError(params, result); } }); } function updateLeftMenuCounters() { ajaxCall('/odnMessages/ajaxGetMenuCounters', {}, 'post', function(success, params, result) { if (success) { var unreadMessagesCnt = result.unreadMessagesCnt; $j('#unreadMessagesCnt').html((unreadMessagesCnt > 0) ? unreadMessagesCnt : ''); $j('#unreadMessagesCnt').css("display",((unreadMessagesCnt > 0) ? '' : 'none')); var groupInvitationsCnt = result.groupInvitationsCnt; } }); } var _odnUpdaterInterval; function onOdnSessionExpired() { try { window.clearInterval(_odnUpdaterInterval); } catch (e) { alert(e); } } function onMasterComboChanged(sender, boundLists) { var idx = sender.selectedIndex; var disableBound = (idx == 0); if (boundLists != null) { for (var i = 0; i < boundLists.length; i++) { var list = $(boundLists[i]); list.selectedIndex = 0; list.disabled = true; if (list.onchange) { list.onchange.call(list); } } } } function popup_usermenu(userid) { $j("#popup").remove(); var obj = document.getElementById('useractns_' + userid ); var html = ""; $j(html).appendTo(obj); var popup = document.getElementById( 'popup' ); if ( popup.style.visibility == 'visible' ) { popup.style.visibility = 'hidden'; } else { // popup.style.left = obj.offsetLeft + "px"; // popup.style.top = ( obj.offsetTop + 10 ) + "px"; popup.style.visibility = 'visible'; } } $j(document).ready(function() { $j(".friend").hover(function () { $j(this).find(".odnActnsList").fadeIn("fast"); }, function () { $j(this).find(".odnActnsList").hide(); $j("#popup").remove(); }); }); function changeFriendStatus(sender, friendId) { var userDiv = $j("#user_" + friendId); var friendStatus = parseInt(userDiv.attr("friendStatus")); var userName = userDiv.attr("userName"); var url; switch (friendStatus) { case 20: window.location.href = '/invitations/friends/incoming'; return; break; case 10: if (!confirm('Willst du {0} wirklich aus deinen Freunden entfernen?'.replace('{0}', userName))) { return; } url = '/odnFriends/ajaxRemoveFriend'; break; case 0: case 30: default: url = '/odnFriends/ajaxInviteFriend'; break; } var targetIcon = userDiv.find("a[actionId='changeFriend'] img"); var targetTitle = userDiv.find("a[actionId='changeFriend'] span"); var oldImg = targetIcon.attr("src"); var oldTitle = targetTitle.html(); targetIcon.attr("src", '/images/odn/spinner.gif'); ajaxCall(url, {friendId: friendId}, 'post', function(success, params, result) { if (success) { var newFriendStatus = parseInt(result.friendStatus); var newIcon; var newTitle; switch (newFriendStatus) { case 10: newTitle = 'Aus der Freundesliste entfernen'; newIcon = '/images/sys/action_remove.gif'; break; case 20: newTitle = 'wurde eingeladen'; newIcon = '/images/sys/invite_icon.gif'; break; default: newTitle = 'Als Freund einladen'; newIcon = '/images/sys/action_add.gif'; }; targetIcon.attr("src", newIcon); targetTitle.html(newTitle); userDiv.attr("friendStatus", newFriendStatus); if (friendStatus != 10 && newFriendStatus == 10) { _odnHelper.onFriendAdded(sender, friendId); } if (friendStatus == 10 && newFriendStatus != 10) { _odnHelper.onFriendRemoved(sender, friendId); } } else { targetIcon.attr("src", oldImg); targetTitle.html(oldTitle); } }); }