jQuery(document).ready(function () {

	// COLLAPSABLE WIDGETS (on Dashboard & Profile pages)
	// toggle widget box contents
	jQuery('a.toggle_box_contents').bind('click', toggleContent);

	// toggle widget box edit panel
	jQuery('a.toggle_box_edit_panel').click(function () {
		jQuery(this.parentNode.parentNode).children("[class=collapsable_box_editpanel]").slideToggle("fast");
		return false;
	});

	// toggle customise edit panel
	jQuery('a.toggle_customise_edit_panel').click(function () {
		jQuery('div#customise_editpanel').slideToggle("fast");
		return false;
	});

	// toggle plugin's settings nad more info on admin tools admin
	jQuery('a.pluginsettings_link').click(function () {
		jQuery(this.parentNode.parentNode).children("[class=pluginsettings]").slideToggle("fast");
		return false;
	});
	jQuery('a.manifest_details').click(function () {
		jQuery(this.parentNode.parentNode).children("[class=manifest_file]").slideToggle("fast");
		return false;
	});
	// reusable generic hidden panel
	jQuery('a.collapsibleboxlink').click(function () {
		jQuery(this.parentNode.parentNode).children("[class=collapsible_box]").slideToggle("fast");
		return false;
	});

	// WIDGET GALLERY EDIT PANEL
	// Sortable widgets
	var els = ['#leftcolumn_widgets', '#middlecolumn_widgets', '#rightcolumn_widgets', '#widget_picker_gallery' ];
	var jQueryels = jQuery(els.toString());

	jQueryels.sortable({
		items: '.draggable_widget',
		handle: '.drag_handle',
		cursor: 'move',
		revert: true,
		opacity: 1.0,
		appendTo: 'body',
		placeholder: 'placeholder',
		connectWith: els,
		start:function(e,ui) {

		},
		stop: function(e,ui) {
			// refresh list before updating hidden fields with new widget order
			jQuery(this).sortable( "refresh" );

			var widgetNamesLeft = outputWidgetList('#leftcolumn_widgets');
			var widgetNamesMiddle = outputWidgetList('#middlecolumn_widgets');
			var widgetNamesRight = outputWidgetList('#rightcolumn_widgets');

			document.getElementById('debugField1').value = widgetNamesLeft;
			document.getElementById('debugField2').value = widgetNamesMiddle;
			document.getElementById('debugField3').value = widgetNamesRight;
		}
	});

	// bind more info buttons - called when new widgets are created
	widget_moreinfo();

	// set-up hover class for dragged widgets
	jQuery("#rightcolumn_widgets").droppable({
		accept: ".draggable_widget",
		hoverClass: 'droppable-hover'
	});
	jQuery("#middlecolumn_widgets").droppable({
		accept: ".draggable_widget",
		hoverClass: 'droppable-hover'
	});
	jQuery("#leftcolumn_widgets").droppable({
		accept: ".draggable_widget",
		hoverClass: 'droppable-hover'
	});

}); /* end document ready function */


// List active widgets for each page column
function outputWidgetList(forElement) {
	return( jQuery("input[@name='handler'], input[@name='guid']", forElement ).makeDelimitedList("value") );
}

// Make delimited list
jQuery.fn.makeDelimitedList = function(elementAttribute) {

	var delimitedListArray = new Array();
	var listDelimiter = "::";

	// Loop over each element in the stack and add the elementAttribute to the array
	this.each(function(e) {
			var listElement = jQuery(this);
			// Add the attribute value to our values array
			delimitedListArray[delimitedListArray.length] = listElement.attr(elementAttribute);
		}
	);

	// Return value list by joining the array
	return(delimitedListArray.join(listDelimiter));
}


// Read each widgets collapsed/expanded state from cookie and apply
function widget_state(forWidget) {

	var thisWidgetState = jQuery.cookie(forWidget);

	if (thisWidgetState == 'collapsed') {
		forWidget = "#" + forWidget;
		jQuery(forWidget).find("div.collapsable_box_content").hide();
		jQuery(forWidget).find("a.toggle_box_contents").html('+');
		jQuery(forWidget).find("a.toggle_box_edit_panel").fadeOut('medium');
	};
}


// Toggle widgets contents and save to a cookie
var toggleContent = function(e) {
var targetContent = jQuery('div.collapsable_box_content', this.parentNode.parentNode);
	if (targetContent.css('display') == 'none') {
		targetContent.slideDown(400);
		jQuery(this).html('-');
		jQuery(this.parentNode).children("[class=toggle_box_edit_panel]").fadeIn('medium');

		// set cookie for widget panel open-state
		var thisWidgetName = jQuery(this.parentNode.parentNode.parentNode).attr('id');
		jQuery.cookie(thisWidgetName, 'expanded', { expires: 365 });

	} else {
		targetContent.slideUp(400);
		jQuery(this).html('+');
		jQuery(this.parentNode).children("[class=toggle_box_edit_panel]").fadeOut('medium');
		// make sure edit pane is closed
		jQuery(this.parentNode.parentNode).children("[class=collapsable_box_editpanel]").hide();

		// set cookie for widget panel closed-state
		var thisWidgetName = jQuery(this.parentNode.parentNode.parentNode).attr('id');
		jQuery.cookie(thisWidgetName, 'collapsed', { expires: 365 });
	}
	return false;
};

// More info tooltip in widget gallery edit panel
function widget_moreinfo() {

	jQuery("img.more_info").hover(function(e) {
	var widgetdescription = jQuery("input[@name='description']", this.parentNode.parentNode.parentNode ).attr('value');
	jQuery("body").append("<p id='widget_moreinfo'><b>"+ widgetdescription +" </b></p>");

		if (e.pageX < 900) {
			jQuery("#widget_moreinfo")
				.css("top",(e.pageY + 10) + "px")
				.css("left",(e.pageX + 10) + "px")
				.fadeIn("medium");
		}
		else {
			jQuery("#widget_moreinfo")
				.css("top",(e.pageY + 10) + "px")
				.css("left",(e.pageX - 210) + "px")
				.fadeIn("medium");
		}
	},
	function() {
		jQuery("#widget_moreinfo").remove();
	});

	jQuery("img.more_info").mousemove(function(e) {
		// action on mousemove
	});
};

// COOKIES
jQuery.cookie = function(name, value, options) {
	if (typeof value != 'undefined') { // name and value given, set cookie
    options = options || {};
	    if (value === null) {
	        value = '';
	        options.expires = -1;
	    }
    var expires = '';
    if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
        var date;
        if (typeof options.expires == 'number') {
            date = new Date();
            date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
        } else {
            date = options.expires;
        }
        expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
    }
    // CAUTION: Needed to parenthesize options.path and options.domain
    // in the following expressions, otherwise they evaluate to undefined
    // in the packed version for some reason.
    var path = options.path ? '; path=' + (options.path) : '';
    var domain = options.domain ? '; domain=' + (options.domain) : '';
    var secure = options.secure ? '; secure' : '';
    document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');

	} else { // only name given, get cookie
	    var cookieValue = null;
	    if (document.cookie && document.cookie != '') {
	        var cookies = document.cookie.split(';');
	        for (var i = 0; i < cookies.length; i++) {
	            var cookie = jQuery.trim(cookies[i]);
	            // Does this cookie string begin with the name we want?
	            if (cookie.substring(0, name.length + 1) == (name + '=')) {
	                cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
	                break;
	            }
	        }
	    }
	    return cookieValue;
	}
};

// ELGG TOOLBAR MENU
jQuery.fn.elgg_topbardropdownmenu = function(options) {

  options = jQuery.extend({speed: 350}, options || {});

  this.each(function() {

    var root = this, zIndex = 5000;

    function getSubnav(ele) {
      if (ele.nodeName.toLowerCase() == 'li') {
        var subnav = jQuery('> ul', ele);
        return subnav.length ? subnav[0] : null;
      } else {

        return ele;
      }
    }

    function getActuator(ele) {
      if (ele.nodeName.toLowerCase() == 'ul') {
        return jQuery(ele).parents('li')[0];
      } else {
        return ele;
      }
    }

    function hide() {
      var subnav = getSubnav(this);
      if (!subnav) return;
      jQuery.data(subnav, 'cancelHide', false);
      setTimeout(function() {
        if (!jQuery.data(subnav, 'cancelHide')) {
          jQuery(subnav).slideUp(100);
        }
      }, 250);
    }

    function show() {
      var subnav = getSubnav(this);
      if (!subnav) return;
      jQuery.data(subnav, 'cancelHide', true);
      jQuery(subnav).css({zIndex: zIndex++}).slideDown(options.speed);
      if (this.nodeName.toLowerCase() == 'ul') {
        var li = getActuator(this);
        jQuery(li).addClass('hover');
        jQuery('> a', li).addClass('hover');
      }
    }

    jQuery('ul, li', this).hover(show, hide);
    jQuery('li', this).hover(
      function() { jQuery(this).addClass('hover'); jQuery('> a', this).addClass('hover'); },
      function() { jQuery(this).removeClass('hover'); jQuery('> a', this).removeClass('hover'); }
    );

  });

};















var submenuLayer = 1000;

function setup_avatar_menu() {


    jQuery("div.usericon span.usermanage").mouseover(function(){
        jQuery(this).css('cursor','pointer');
    });

    

	// avatar image menu link
	jQuery("div.usericon img, div.usericon span.usermanage").mouseover(function() { //div.usericon span.usermanage
    //console.log('op!');
		// find nested avatar_menu_button and show
        //console.log(this.parentNode.parentNode);
        //console.log(jQuery(this.parentNode.parentNode));
		jQuery(this.parentNode.parentNode).children("[class=avatar_menu_button]").show();
		jQuery(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow");
		jQuery(this.parentNode.parentNode).css("z-index", submenuLayer);
	})
	.mouseout(function() { 
		if(jQuery(this).parent().parent().find("div.sub_menu").css('display')!="block") {
			jQuery(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow");
			jQuery(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_on");
			jQuery(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_hover");
			jQuery(this.parentNode.parentNode).children("[class=avatar_menu_button]").hide();
		}
		else {
			jQuery(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow");
			jQuery(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_on");
			jQuery(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_hover");
			jQuery(this.parentNode.parentNode).children("[class=avatar_menu_button]").show();
			jQuery(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow");
		}
	});


	// avatar contextual menu
	jQuery(".avatar_menu_button img").click(function(e) {

        jQuery(".usericon").show();
		var submenu = jQuery(this).parent().parent().find("div.sub_menu");
		
		// close submenu if arrow is clicked & menu already open
		if(submenu.css('display') == "block") {
			//submenu.hide(); 		
		}
		else {
			// get avatar dimensions
			var avatar = jQuery(this).parent().parent().parent().find("div.usericon");
			//alert( "avatarWidth: " + avatar.width() + ", avatarHeight: " + avatar.height() );
			
			// move submenu position so it aligns with arrow graphic
			if (e.pageX < 840) { // popup menu to left of arrow if we're at edge of page
			submenu.css("top",(avatar.height()) + "px")
					.css("left",(avatar.width()-15) + "px")
					.fadeIn('normal');	
			}	
			else {
			submenu.css("top",(avatar.height()) + "px")
					.css("left",(avatar.width()-166) + "px")
					.fadeIn('normal');		
			}	
			
			// force z-index - workaround for IE z-index bug			
			avatar.css("z-index",  submenuLayer);
			avatar.find("a.icon img").css("z-index",  submenuLayer);
            avatar.find("span.icon span.usermanage").css("z-index",  submenuLayer);
            avatar.find("span.icon img.usermanage").css("z-index",  submenuLayer);
            
			submenu.css("z-index", submenuLayer+1);
						
			submenuLayer++;
			
			// change arrow to 'on' state
			jQuery(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow");
			jQuery(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_hover");
			jQuery(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow_on");
		}
		
		// hide any other open submenus and reset arrows
		jQuery("div.sub_menu:visible").not(submenu).hide();
		jQuery(".avatar_menu_button").removeClass("avatar_menu_arrow");
		jQuery(".avatar_menu_button").removeClass("avatar_menu_arrow_on");
		jQuery(".avatar_menu_button").removeClass("avatar_menu_arrow_hover");
		jQuery(".avatar_menu_button").hide();
		jQuery(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow_on");
		jQuery(this.parentNode.parentNode).children("div.avatar_menu_button").show();
		//alert("submenuLayer = " +submenu.css("z-index"));
        
        var submenu_low = submenu.offset().top + submenu.height() +8; //8 is +border+ padding;
        //console.log(submenu_low);
        //hide 'action'        
        jQuery.each(jQuery(submenu).parents('li').nextAll('li'),function(){            
            var tbl = jQuery(this).find('table');
            var tbl_position = tbl.offset();            
            var vert = tbl_position.top + parseInt(tbl.height()/2) + 6;            
            if (vert <= submenu_low) {
                var usericon = tbl.find('div.usericon');
                usericon.hide();
            }
            
        });
	})
	// hover arrow each time mouseover enters arrow graphic (eg. when menu is already shown)
	.mouseover(function() {
		jQuery(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_on");
		jQuery(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow");
		jQuery(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow_hover");
	})
	// if menu not shown revert arrow, else show 'menu open' arrow
	.mouseout(function() { 
		if(jQuery(this).parent().parent().find("div.sub_menu").css('display')!="block"){
			jQuery(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_hover");
			jQuery(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow");
			jQuery(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow");
		}
		else {
			jQuery(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_hover");
			jQuery(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow");
			jQuery(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow_on");
		}
	});
	
	// hide avatar menu if click occurs outside of menu	
	// and hide arrow button						
	jQuery(document).click(function(event) {
			var target = jQuery(event.target);
			if (target.parents(".usericon").length == 0) {
                jQuery(".usericon").show();
				jQuery(".usericon div.sub_menu").fadeOut();
				jQuery(".avatar_menu_button").removeClass("avatar_menu_arrow");
				jQuery(".avatar_menu_button").removeClass("avatar_menu_arrow_on");
				jQuery(".avatar_menu_button").removeClass("avatar_menu_arrow_hover");
				jQuery(".avatar_menu_button").hide();
			}
	});			   
	

}

function setup_platipus_admin_menu() {

            jQuery('span.clickable').click(function(e){
                var menu_div = jQuery(this).next('div.sub_menu');
                var a_span = jQuery(this);
                //console.log(menu_div);
                
                if ( menu_div.css('display') != 'block' ){
                    //hide all before show one
                    jQuery("div.sub_menu").css({'z-index':'0'})
                        .fadeOut();

                    menu_div.css('z-index','100');
                    //console.log(e.pageX,a_span.position(),a_span.get(0),a_span.width(),a_span.position().left, a_span.width() + a_span.position().left);
                    // move submenu position so it aligns with arrow graphic
                    if (e.pageX < 840) { // popup menu to left of arrow if we're at edge of page
                        menu_div.css("top",(a_span.height() + a_span.position().top) + "px")
                            .css("left",(a_span.width() + a_span.position().left -15) + "px")
                            .fadeIn('normal');
                    }
                    else {
                        menu_div.css("top",(a_span.height() + a_span.position().top) + "px")
                            .css("left",(a_span.width() + a_span.position().left -166) + "px")
                            .fadeIn('normal');
                    }
                    //show();

                } else {
                    menu_div.css({'z-index':'0'})
                        .fadeOut(); //hide;
                }
            })
            .mouseover(function(){
              jQuery(this).css('cursor','pointer');
            });

            jQuery(document).click(function(event) {
                var target = jQuery(event.target);

                //console.log(target.get(0).tagName);
                //alert(target.get(0).tagName);
                if (target.parents("div.sub_menu").length == 0 &&
                    !(target.hasClass("clickable") && target.get(0).tagName=='SPAN') &&
                    !(target.hasClass("sub_menu") && target.get(0).tagName=='DIV')
                ) {

                    jQuery("div.sub_menu")
                        .css({'z-index':'0'})
                        .fadeOut();
                }
            });

}

jQuery(document).ready(function() {

	//setup_avatar_menu();
	setup_platipus_admin_menu();
	
});

function delresume(rid) {
    if (confirm("Are you sure?")) {
        jQuery("#indicator").show();
        jQuery.post(
            "/action/platipus_profile/delete_resume",
            {resume:rid},
            function(data) {
                jQuery("#indicator").hide();
                if (data.data) {
                    jQuery("#resume_area").empty();
                    jQuery("#resume_area").html(data.data);
                } else if ("" != data) {
                    alert(data);
                }
            },
            "json"
        );
    };
}

function isProfileDataChanged() {

    if ( initial == undefined ) {
        return false;
    }

    if ( subbm == false && (
         jQuery('#name').val() != initial.name ||
         jQuery('#first_name').val() != initial.first_name ||
         jQuery('#last_name').val() != initial.last_name ||
         jQuery('#username').val() != initial.username ||
         jQuery('#graduation').val() != initial.graduation ||
         jQuery('#school').val() != initial.school ||
         jQuery('#sport').val() != initial.sport ||
         jQuery('#figure').val() != initial.figure ||
         jQuery('#height').val() != initial.height ||
         jQuery('#weight').val() != initial.weight ||
         jQuery('#handed').val() != initial.handed ||
         jQuery('#city').val() != initial.city ||
         jQuery('#zip').val() != initial.zip ||
         jQuery('#month').val() != parseInt(initial.month) ||
         jQuery('#day').val() != parseInt(initial.day) ||
         jQuery('input[name*="gender"]:checked').val() != initial.gender
    )) {
        return true;
    }
    return false;
}

/* Add members, Mass upload aka Bulk upload */
/*
cnt_bulk_rows_global = 1;
function showMassMembersAddDialog() {
    LoadingDialog.setText('Loading...');
	LoadingDialog.show();

    modalMassMembersAddDlg = DialogManager.createDialog({
		withTitle: false, dialogWidth: "900px", dialogHeigth: "650px"
	});
    modalMassMembersAddDlg.show();
        var content = '<form action=\"http://www.platipussports.com/ action/clubs/bulk_useradd\" id=\"bulk_upload_form\" method=\"post\"> <input type=\"hidden\" name=\"from_bulk_upload_form\" value=\"1\" /> <table> <tr> <th>Fname</th> <th>Lname</th> <th>email</th> <th>Username</th> <th>Password</th> <th>Clubname</th> <th>isClubAdmin</th> <th>isGroupAdmin</th> </tr> <tr id=\"bulk_u_tr_0\"> <td> <input class=\"bulk_inp\" type=\"text\" name=\"bulk_data[0][]\" value=\"\" /> </td> <td> <input class=\"bulk_inp\" type=\"text\" name=\"bulk_data[0][]\" value=\"\" /> </td> <td> <input class=\"bulk_inp\" type=\"text\" name=\"bulk_data[0][]\" value=\"\" /> </td> <td> <input class=\"bulk_inp\" type=\"text\" name=\"bulk_data[0][]\" value=\"\" /> </td> <td> <input class=\"bulk_inp\" type=\"text\" name=\"bulk_data[0][]\" value=\"\" /> </td> <td> <input class=\"bulk_inp\" type=\"text\" name=\"bulk_data[0][]\" value=\"\" /> </td> <td> <input type=\"checkbox\" name=\"bulk_data[0][]\" value=\"1\" /> </td> <td> <input type=\"checkbox\" name=\"bulk_data[0][]\" value=\"1\" /> </td> </tr> </table></form><a href=\"#\" onclick=\"addRowToMassMembersDlg(); return false;\"> test </a>';
    
    modalMassMembersAddDlg.setContent(content)
    //modalNewUsersDlg.loadContentFrom('http://www.platipussports.com/action/groups/getusermedia', 'id=' + groupGuid + '&mediatype=' + itemtype, null);
    DialogManager.updateOverlay();

    LoadingDialog.hide();
}

function addRowToMassMembersDlg() {
    var idname = 'bulk_u_tr_' + (cnt_bulk_rows_global - 1 );
   
}
*/
	function elggUpdateContent(content, entityname) {
		content = ' ' + content + ' ';
		
	if(window.tinyMCE)
		window.tinyMCE.execCommand("mceInsertContent",true,content);
		}    function addReplyForm(parentGuid, elem)
    {
        var replyDiv = $('replies');
        //var replyFormDiv = $('addreply');
        if (parentGuid == 0) {
            var replyFormDiv = $(elem).up('#announce').next('addreply');
            if ( typeof(replyFormDiv)== 'undefined' ){            
                var replyFormDiv = $('addreply');
                var oldContainer = replyFormDiv.parentNode;
                replyFormDiv = oldContainer.removeChild(replyFormDiv);
                replyFormDiv.setAttribute('style','margin: 10px 10px;');
                
                if (typeof(replyDiv) != undefined) {
                    $(elem).up('#announce').parentNode.insertBefore(replyFormDiv, replyDiv);
                }
            }
        }
        else {
            var replyFormDiv = $(elem).up('.ann_reply').next('addreply');            
            if ( typeof(replyFormDiv)== 'undefined' ){
                var replyFormDiv = $('addreply');
                var oldContainer = replyFormDiv.parentNode;
                replyFormDiv = oldContainer.removeChild(replyFormDiv);

                var beforeElem = $(elem).up('.pad_reply').next('.pad_reply');
                var paddingLeft = $(elem).up('.pad_reply').getStyle('padding-left');
                //console.log(paddingLeft);
                replyFormDiv.setAttribute('style','margin: 10px 10px; padding-left: ' + paddingLeft);                
                
                if (typeof(beforeElem) != 'undefined') {
                    replyDiv.insertBefore(replyFormDiv, beforeElem);
                }
                else {
                    replyDiv.appendChild(replyFormDiv);
                }

            }
            
        }
        replyFormDiv.down('#parentId').value = parentGuid;

        return true;
    }

    function showPopupAnnounce(popupText)
    {

        LoadingDialog.setText('Loading...');
        LoadingDialog.show();

        //var dlgName = 'dlg' + ind;

        annDlg = DialogManager.createDialog({
            withTitle: false, dialogWidth: "700px", dialogHeigth: "650px"
        });
        annDlg.show();
        annDlg.setContent(popupText);
        //modalMediaDialog.loadContentFrom('http://www.platipussports.com/pg/messages/'+username+'/read/'+msgid, '', null);
        //DialogManager.updateOverlay();

        LoadingDialog.hide();
        return annDlg;
    }

    
    function confirmReadPopup(announceGuid, userGuid, dlgId)
    {
        var requestStr = "?announceGuid=" + announceGuid + "&userGuid=" + userGuid;
        new Ajax.Request('/action/announcement/read' + requestStr,
        {   method: 'post',
            onSuccess: function(transport) {
               
                //if (transport.responseText != '')
                //    alert(transport.responseText);
                var resObj = transport.responseText.evalJSON();
                //console.log(resObj);
                if (resObj.error == 0) {
                    closePopupAnnounceDlg(dlgId);                    
                } else {
                    alert(resObj.msg);
                    closePopupAnnounceDlg(dlgId);                    
                }

                if(annDlgs[dlgId-1]!=null){
                    annDlgs[dlgId-1].toggle();
                    //DialogManager.alreadyShowed = false;
                    //DialogManager.showOverlay();
                }
                return false;
            }
        }
    );
    }

    function closePopupAnnounceDlg(dlgId){
        if(annDlgs[dlgId]!=null){
           annDlgs[dlgId].destroy();
        }

        return false;
    }



function in_array (needle, haystack, argStrict) {
    // Checks if the given value exists in the array
    //
    // version: 910.912
    // discuss at: http://phpjs.org/functions/in_array
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: vlado houba
    // *     example 1: in_array('van', ['Kevin', 'van', 'Zonneveld']);
    // *     returns 1: true
    // *     example 2: in_array('vlado', {0: 'Kevin', vlado: 'van', 1: 'Zonneveld'});
    // *     returns 2: false
    // *     example 3: in_array(1, ['1', '2', '3']);
    // *     returns 3: true
    // *     example 3: in_array(1, ['1', '2', '3'], false);
    // *     returns 3: true
    // *     example 4: in_array(1, ['1', '2', '3'], true);
    // *     returns 4: false
    var key = '', strict = !!argStrict;

    if (strict) {
        for (key in haystack) {
            if (haystack[key] === needle) {
                return true;
            }
        }
    } else {
        if (typeof(needle)=='string') {
            str = haystack.toString();
            return (str.search(needle) !== false);
        }

        for (key in haystack) {
            if (haystack[key] == needle) {
                return true;
            }
        }
    }

    return false;
}


    function composeIntMessage()
    {

        LoadingDialog.setText('Loading...');
        LoadingDialog.show();

        modalMediaDialog = DialogManager.createDialog({
            withTitle: false, dialogWidth: "700px", dialogHeigth: "650px"
        });
        modalMediaDialog.show();
        modalMediaDialog.loadContentFrom('http://www.platipussports.com/mod/platipus_messages/send.php', '',  false);
        DialogManager.updateOverlay();

        LoadingDialog.hide();
        return false;
    }

    function composeIntGroupMessage(groupId)
    {

        LoadingDialog.setText('Loading...');
        LoadingDialog.show();

        modalMediaDialog = DialogManager.createDialog({
            withTitle: false, dialogWidth: "700px", dialogHeigth: "650px"
        });
        modalMediaDialog.show();
        modalMediaDialog.loadContentFrom('http://www.platipussports.com/mod/platipus_messages/send.php?groupId=' + groupId, '', null);
        DialogManager.updateOverlay();

        LoadingDialog.hide();
        return false;
    }


    function showIntMessage(username,msgid,ele)
    {

        LoadingDialog.setText('Loading...');
        LoadingDialog.show();

        modalMediaDialog = DialogManager.createDialog({
            withTitle: false, dialogWidth: "700px", dialogHeigth: "650px"
        });
        modalMediaDialog.show();
        modalMediaDialog.loadContentFrom('http://www.platipussports.com/pg/messages/'+username+'/read/'+msgid, '', null);
        DialogManager.updateOverlay();

        LoadingDialog.hide();
        var parTd = $(ele).up('.unread');        
        if (parTd){
            parTd.className='';
            var sibls = $(parTd.previousSiblings());            
            var img = $(sibls[0]).down('img');
            img.src='/mod/platipus_theme/graphics/actions/letter_read.gif';
        }

        return false;
    }

    function requestUser()
    {
        var requestStr = "?query_user=" + $('recepient').value;
        new Ajax.Request('/action/messages/check_recepient' + requestStr,
        {   method: 'post',
            onSuccess: function(transport) {
                var notice = $('notice');
                //if (transport.responseText != '')
                //    alert(transport.responseText);
                //var resObj = transport.responseText.evalJSON();                
                var respTxt = transport.responseText;
                $('autocomplete_container').show();
                $('autocomplete_container').innerHTML=respTxt;
                bindAutocomp();                
            }
        });
    }

    function bindRecepient()
    {        
        var keycodes = new Array(38,40,13); //keycodes for up, down  & enter
        $('recepient').up('form').observe('submit', function(event){            
            if ($$('div#autocomplete > ul.autocomplete').length >0){
                    event.stopPropagation();                    
                    event.preventDefault();                    
                    var elm = $$('div#autocomplete > ul.autocomplete')[0].down('li.selected');
                    if (elm && elm !== 'undefined' /*&& !added*/) {
                        addRecepient(elm);                    
                    }
                    return false;

            }
        });
        
        $('recepient').observe('keyup',function(event){
            var str = Event.element(event).value;
            var elm = '';          
            if (str.length > 2 && !in_array(event.keyCode, keycodes) ) {
                requestUser();
            } else if(!in_array(event.keyCode, keycodes)) {
                $('recepient').stopObserving('keydown', autocompMove);
                $('autocomplete_container').empty()
                $('autocomplete_container').hide();
            }

        });
        $('recepient').writeAttribute('autocomplete','off');
    }

    function autocompMove(event){
        var keycodes = new Array(38,40,13);
        var str = Event.element(event).value;
        if (in_array(event.keyCode, keycodes ) && ($$('div#autocomplete > ul.autocomplete').length >0) ) { //keyboard events
            elm = $$('div#autocomplete > ul.autocomplete')[0].down('li.selected');
            switch (event.keyCode) {
                case 38: //up
                    var prev = elm.previous('li');
                    if (prev) {
                        prev.addClassName('selected');
                        elm.removeClassName('selected');
                    }
                    break;

                case 40: //down
                    var next_ = elm.next('li');
                    if (next_){
                        next_.addClassName('selected');
                        elm.removeClassName('selected');
                    }
                    break;

                case 13: //enter
                    event.stopPropagation();
                    event.preventDefault();
                    //if (!added) {
                    addRecepient(elm);
                    //}
                    break;
            }
        }
    }

    function bindAutocomp()
    {
        
        $$('div#autocomplete > ul.autocomplete')[0].down('li',0)
            .addClassName('selected');
            
        
        $$('div#autocomplete > ul.autocomplete').each(
            function(ele){
                $(ele).observe('click',
                    function(event){
                        var elm = Event.element(event);//.innerHTML
                        if (elm.tagName.toLowerCase() != 'li'){
                            elm = $(elm).up('li');
                        }
                        addRecepient(elm);
                    })
                .observe('mouseover',
                    function(event){                        
                        var elm = Event.element(event);
                        elm.siblings().each(function(ielm){ielm.removeClassName('selected');});
                        elm.addClassName('selected');
                        
                    })
                .observe('mouseout',
                    function(event){                        
                        var elm = Event.element(event);
                        elm.removeClassName('selected');                        
                    })                
            });

       
        $('recepient').observe('keydown',autocompMove);


    }

    function addRecepient(elm)
    {
        var userid = elm.id.replace(/user_/,'');
        var username = elm.down('strong').innerHTML;

        var rec_ids = $('send_to').value.split(',').compact();
        //alert(rec_ids.inspect());
        if (!in_array (userid, rec_ids, true) ) {
            var userSp = '<span id="receId_' + userid + '" class="recepients">' +
                username +
                '<span class="receDel">&nbsp;</span>' +
                '</span>';

            $('receList').innerHTML += userSp;

            rec_ids.push(userid);

            $('send_to').value = rec_ids.join(',');

            //place here function to bind to delete users list..

            $$('div#receList > span[id^=receId_] > span.receDel').each(
                function(ele){
                    $(ele).observe('click',
                        function(event){
                            var elm = Event.element(event);
                            var par = elm.up('span');
                            //alert(par.innerHTML);

                            delRecepient(par);
                        })
                    }
              );
         }
         $('recepient').value = '';
         $('autocomplete_container').innerHTML='';
         $('autocomplete_container').hide();
         $('recepient').focus();

    }


    function delRecepient(elm)
    {
        elm.remove();
        var rec_ids = $('send_to').value.split(',');
        var userid = elm.id.replace(/receId_/,'');

        rec_ids = rec_ids.without(userid);

        $('send_to').value = rec_ids.join(',');
    }






function checkDocUpload() {

    // check file upload
    if ( '' == jQuery('#upload_doc').val() ) {
        return false;
    }

    return true;
}

function deldocument(itemid) {
    if (confirm('Are you sure you want to delete this document? There is no undo!')) {
        jQuery.post(
            "/action/platipus_groups/delete_document",
            {document:itemid},
            function(resp) {
                if ( resp.data ) {
                    if ( !jQuery("#user_doc_items").length ) {
                        var cnt = '<ul class="files" id="user_doc_items"></ul>';
                        jQuery("#doc_area_items").html(cnt);
                    }
                    jQuery("#user_doc_items").html(resp.data);
                } else if ( resp.err ) {
                    alert(resp.err);
                } else {
                    jQuery("#user_doc_items").remove();
                }
            },
            "json"
        );
    };
    return false;
}


var modalMediaDialog = null;

function addPhotoVideoItemToGroupDialog(itemtype,groupGuid,albumGuid)
{
	var sufix = '';
    if (albumGuid != undefined && albumGuid != 0){
    	var sufix = '&albumguid=' + albumGuid;
    }

    if (itemtype != 'video' && itemtype != 'photo'){
        return false;
    }

    LoadingDialog.setText('Loading...');
	LoadingDialog.show();

    modalMediaDialog = DialogManager.createDialog({
		withTitle: false, dialogWidth: "715px", dialogHeigth: "650px"
	});
    modalMediaDialog.show();
    modalMediaDialog.loadContentFrom('http://www.platipussports.com/action/groups/getusermedia', 'id=' + groupGuid + '&mediatype=' + itemtype + sufix, null);
    DialogManager.updateOverlay();

    LoadingDialog.hide();
}

function sortMediaAlbumDialog(type, ownerGuid)
{
    if (type != 'video' && type != 'photo') {
        return false;
    }

    LoadingDialog.setText('Loading...');
	LoadingDialog.show();

    modalMediaDialog = DialogManager.createDialog({
		withTitle: false, dialogWidth: "715px", dialogHeigth: "650px"
	});
    modalMediaDialog.show();
    modalMediaDialog.loadContentFrom('http://www.platipussports.com/action/groups/sort-media-album', 'guid=' + ownerGuid + '&type=' + type, null);
    DialogManager.updateOverlay();

    LoadingDialog.hide();
}

function sortMediaDialog(type, ownerGuid)
{
    if (type != 'video' && type != 'photo') {
        return false;
    }

    LoadingDialog.setText('Loading...');
	LoadingDialog.show();

    modalMediaDialog = DialogManager.createDialog({
		withTitle: false, dialogWidth: "715px", dialogHeigth: "650px"
	});
    modalMediaDialog.show();
    modalMediaDialog.loadContentFrom('http://www.platipussports.com/action/groups/sort-media', 'guid=' + ownerGuid + '&type=' + type, null);
    DialogManager.updateOverlay();

    LoadingDialog.hide();
}

function bindImgObservers()
{
    $$('ul#avails > li[id^=avail_]','ul#linked > li[id^=linked_]').each(
        function(elm){
            //console.log(elm);
            elm.observe('click',
                function(event){
                    var elem = Event.findElement(event, 'LI');

                    var parent = elem.parentNode;

                    var imgElem = Event.findElement(event, 'IMG');

                    hide_float_menu(imgElem);

                    var iElem = parent.removeChild(elem);
                    //console.log(elem.nodeName,parent.id,iElem);
                    if (parent.id =='avails'){
                        $('linked').appendChild(iElem);
                    }

                    if (parent.id =='linked'){
                        $('avails').appendChild(iElem);
                    }

                    return false;
                }
            );
        }
    );
}


function closeAddMediaGroupDlg(){
        if(modalMediaDialog!=null){
           modalMediaDialog.destroy();
        }

        return false;
    }

function submitAddMediaGroupDlg(){

    var addElems = $$('ul#linked > li[id^=avail_]');
    var remElems = $$('ul#avails > li[id^=linked_]');

    var addGuids = addElems.collect(
        function(elem){
            return elem.id.replace(/avail_/,'')
        }
    ).join("-");

    var remGuids = remElems.collect(
        function(elem){
            return elem.id.replace(/linked_/,'')
        }
    ).join("-");

    $('inpLinked').value = addGuids;
    $('inpUnlinked').value = remGuids;
    $('formAddUserMedia').submit();

    //console.log(addElems,remElems);
    return false;
}

function explode (delimiter, string, limit) {
    // http://kevin.vanzonneveld.net
    // +     original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +     improved by: kenneth
    // +     improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +     improved by: d3x
    // +     bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: explode(' ', 'Kevin van Zonneveld');
    // *     returns 1: {0: 'Kevin', 1: 'van', 2: 'Zonneveld'}
    // *     example 2: explode('=', 'a=bc=d', 2);
    // *     returns 2: ['a', 'bc=d']

    var emptyArray = { 0: '' };

    // third argument is not required
    if ( arguments.length < 2 ||
        typeof arguments[0] == 'undefined' ||
        typeof arguments[1] == 'undefined' )
    {
        return null;
    }

    if ( delimiter === '' ||
        delimiter === false ||
        delimiter === null )
    {
        return false;
    }

    if ( typeof delimiter == 'function' ||
        typeof delimiter == 'object' ||
        typeof string == 'function' ||
        typeof string == 'object' )
    {
        return emptyArray;
    }

    if ( delimiter === true ) {
        delimiter = '1';
    }

    if (!limit) {
        return string.toString().split(delimiter.toString());
    } else {
        // support for limit argument
        var splitted = string.toString().split(delimiter.toString());
        var partA = splitted.splice(0, limit - 1);
        var partB = splitted.join(delimiter.toString());
        partA.push(partB);
        return partA;
    }
}

function bindApproveClick()
{
// ul.clubz li img
    $$('div[id^=approveVideo_] ul.clubz li img','div[id^=approvePhoto_] ul.clubz li img').each(
        function(elm){
            elm.observe('click',
                function(event){
                    var elem = Event.element(event);
                    var guids= explode('_', elem.id.replace(/approve_/,''));
                    approveMediaItemToGroupDialog(guids[0], guids[1]);
                    return false;
                });
        });
}


function bindApprovedClick()
{
// ul.clubz li img
    $$('div[id^=approvedVideo_] ul.clubz li img','div[id^=approvedPhoto_] ul.clubz li img').each(
        function(elm){
            elm.observe('click',
                function(event){
                    var elem = Event.element(event);
                    var guids= explode('_', elem.id.replace(/approve_/,''));
                    approveMediaItemToGroupDialog(guids[0], guids[1]);
                    return false;
                });
        });
}

function approveMediaItemToGroupDialog(guid,groupGuid)
{

    LoadingDialog.setText('Loading...');
    LoadingDialog.show();

    modalMediaDialog = DialogManager.createDialog({
		withTitle: false, dialogWidth: "700px", dialogHeigth: "650px"
	});
    modalMediaDialog.show();
    modalMediaDialog.loadContentFrom('http://www.platipussports.com/action/groups/getapprovemediaitem', 'id=' + guid + '&groupId=' + groupGuid, null);
    DialogManager.updateOverlay();

    LoadingDialog.hide();
}

function submitApproveMediaGroupDialog(elem)
{
    var form = $('formApproveGroupMedia');
    $('inpAction').value = elem.value.toLowerCase();
    form.submit();
    return false;
}

function clubsbycategory(rid){
//    jQuery("select#idclub").css('display','none');
    var cid = jQuery("select#idcat").val();
    jQuery.post(
        "/action/groups/getclubs",
        {id_cat:cid, id_club:rid},
        function(resp) {
            if ( resp != '' ) {
                jQuery("select#idclub").html(resp);
                jQuery("select#idclub").css('display','block');
            }
        },
        "json"
    );
}

function show_regions(rid)
{
    var cid = jQuery("select#idcntr").val();
    if ( cid > 0 ) {
        jQuery.post(
            "/action/groups/getregions",
            {id_country:cid, id_region:rid},
            function(resp) {
                if ( resp != '' ) {
                    jQuery("p#region select").html(resp);
                    jQuery("p#region").css('display','block');
                } else {
                    jQuery("p#region select").html("<option value=\"0\" selected=\"selected\">none</option>");
                    jQuery("p#region").css('display','none');
                }
                jQuery("p#city").css('display','block');
                jQuery("p#address").css('display','block');
            },
            "json"
        );
    } else {
        jQuery("p#city").css('display','none');
        jQuery("p#address").css('display','none');
        jQuery("p#region select").html("<option value=\"0\" selected=\"selected\">none</option>");
        jQuery("p#region").css('display','none');
    }
}


function checkspecgr(elem,spec_id){
    if(jQuery(elem).val() == spec_id) {
        jQuery("#spgr").css('display','block');
    } else {
        jQuery("#spgr").css('display','none');
    }
}

function showReplyBlock(tid) {
    jQuery('div[id^="replyDiv"]').hide().find('textarea[id^="message"]').val("");
    jQuery('#replyDiv' + tid).show();
}

function addComment() {
    var mess = jQuery("#message");
    if ( "" != mess.val() ) {
        jQuery("#indicator").show();
        var owner_name = jQuery("#owner").val();
        var pagination = jQuery("#pg").val();
        jQuery.post(
            "/action/comments/save",
            {message:mess.val(),owner:owner_name,pg:pagination},
            function(data) {
                if (data.data) {
                    jQuery('#comment_block').empty();
                    jQuery('#comment_block').html(data.data);
                    jQuery("#countx").html(data.data_count.toString());
                } else if ("" != data) {
                    alert(data);
                }
                jQuery("#indicator").hide();
                mess.val("");
            },
            "json"
        );
    }
}

function deleteComment(tid) {

    if (confirm("Are you sure you want to delete this comment? There is no undo!")) {
        var owner_name = jQuery("#owner").val();
        var pagination = jQuery("#pg").val();
        jQuery.post(
            "/action/comments/delete",
            {comment:tid,owner:owner_name,pg:pagination},
            function(data){
                if (data.data) {
                    jQuery('#comment_block').empty();
                    jQuery('#comment_block').html(data.data);
                    jQuery("#countx").html(data.data_count.toString());
                }
                else if (data.data_count == 0) {
                    jQuery('#comment_block').empty();
                    jQuery("#countx").html(data.data_count.toString());
                } else {
                    alert(data);
                }
            },
            "json"
        );
    };
    return false;
}

function sendCommentReply(tid) {
    var mess = jQuery("#message_"+tid);
    if ( "" != mess.val() ) {
        jQuery("#indicator_"+tid).show();
        var owner_name = jQuery("#owner").val();
        var parent_id = jQuery("#parent_"+tid).val();
        jQuery.post(
            "/action/comments/save",
            {message:mess.val(),owner:owner_name,parent:parent_id},
            function(data) {
                jQuery("#indicator_"+tid).hide();
                if (data.data) {
                    jQuery('#comment_block').empty();
                    jQuery('#comment_block').html(data.data);
                    jQuery("#countx").html(data.data_count.toString());
                } else if ("" != data) {
                    alert(data);
                }
            },
            "json"
        );
    }
    return false;
}

function cancelCommentReply(tid) {
    jQuery("#replyDiv" + tid).hide();
    jQuery("#message_" + tid).val("");
    return false;
}
function show_photo_menu(element) {
    $(element).next().show();$(element).up().setStyle({position:'relative'});return false;
}

function hide_photo_menu(element) {
    $(element).next().hide();
    $(element).up().setStyle({position:'static'});return false;
}

function hide_menu(file_guid) {
    $('div_'+file_guid).hide();
    return false;
}

function menu_timeout(file_guid) {
    return setTimeout('hide_menu("'+file_guid+'")',3000);
}


//Prototype hacks by MYem - not successful

function show_float_menu(element) {
    $(element).next().show();
    $(element).up().setStyle({position:'relative'});return false;
}

function hide_float_menu(element) {
    
    if ($(element).id == '') {
        $(element).identify();
        //alert($(element).id + '! '  );
    }
    setTimeout('timeoutHider("'+$(element).id+'")', 1500);
    
    return false;
}

function timeoutHider(id){
    var element = $(id);
    $(element).next().hide();
    $(element).up().setStyle({position:'static'});
}

//END of Prototype hacks by MYem


    function rtrim ( str, charlist )
    {

    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: Erkekjetter
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Onno Marsman
    // *     example 1: rtrim('    Kevin van Zonneveld    ');
    // *     returns 1: '    Kevin van Zonneveld'

        charlist = !charlist ? ' \\s\u00A0' : (charlist+'').replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '$1');
        var re = new RegExp('[' + charlist + ']+$', 'g');
        return (str+'').replace(re, '');
    }

    function setSearchType(elem)
    {
        var textType = rtrim(elem.innerHTML,'s');

        $$('#search_form > input#search_type')[0].value = textType.toLowerCase();;
        $$('#search_form > ul#search_criteria li').each(function(elm){
        elm.removeClassName('on');
        });
        //alert( $(elem).inspect()+ ' ,' +elem.up('li').inspect());
        var parentLi = $(elem).up('li');
        parentLi.addClassName('on');
        return false;
    }
