var DOM = YAHOO.util.Dom;

function BannCommunityUserDialog() {
    var dialog, postLink, userID;
    var postBtn, oForm, redirectLink;
    var wait, error, errorMsg;
    var action;
    var dialogW = 300;
    var dialogH = 120;
    
    return {
    
    	show : function(postLinkId, rL, aCt){
    		userID = postLinkId;
    		redirectLink = rL;
			action = aCt;
			oForm.action.value = aCt;
			oForm.user_id.value = postLinkId;
			postLink = getEl(aCt + '-link' + postLinkId);			
			
			var heaDER = getEl("bannConfHeader");
			var bannCont = DOM.get('banningContent');
	    	
	    	if(aCt == "bann"){
	    		bannCont.style.display = "";
				heaDER.update('Ban this user?');			
			}
			else{
	    		bannCont.style.display = "none";
				heaDER.update('Unban this user?');			
			}
			
        	var position = DOM.getXY(postLink.id);
        	dialog.resizeTo(dialogW, dialogH);
			dialog.moveTo(position[0]-dialog.width+37, position[1]+19);
           	dialog.show(postLink);
    	},
    	
        init : function(){
        	oForm = DOM.get('banning-form');
            wait = getEl('banning-wait');
            error = getEl('banning-error');
            errorMsg = getEl('banning-error-msg');
            this.createDialog();
        },
    
        submitComment : function(){
            wait.radioClass('active-msg');
            YAHOO.util.Connect.setForm(oForm);
			var commentSuccess = function(o){
			
				//alert(o.responseText);
				//return;
			
            	var result = eval('new Object(' + o.responseText + ')');
                wait.removeClass('active-msg');
                if(result.errors.length == 0){
                    dialog.hide();
                    if(redirectLink == '' || redirectLink == null){
						if(action == "bann"){
							DOM.get("bannTD" + userID).style.display = "none";
							DOM.get("unbannTD" + userID).style.display = "";
						}
						if(action == "unbann"){
							DOM.get("bannTD" + userID).style.display = "";
							DOM.get("unbannTD" + userID).style.display = "none";
						}
					}
                    else{
						setTimeout(location = redirectLink, 100);
					}
                }else{
                    error.radioClass('active-msg');
                    var err = '';
                    for(i in result.errors){
                    	err += '<div class="Error">' + result.errors[i] + '</div>\n';
                    }
                    dialog.resizeTo(dialogW, dialogH+30);
                    errorMsg.update(err);
                }
            };

            var commentFailure = function(o){
                error.radioClass('active-msg');
                errorMsg.update('Unable to connect.');
            };
            
            YAHOO.util.Connect.asyncRequest('POST', 'query_wrapper.php',
                    {success: commentSuccess, failure: commentFailure});
        },
        
        createDialog : function(){
            dialog = new YAHOO.ext.BasicDialog("banning-dlg", {
					draggable: false,
                    modal:false,
                    width: dialogW,
                    height: dialogH,
                    shadow:true,
                    minWidth:dialogW,
                    minHeight:dialogH,
                    resizable: false
            });

            dialog.addKeyListener(27, dialog.hide, dialog);
            dialog.addKeyListener(13, this.submitComment, this);
            
            postBtn = getEl('banning-post-dialog-btn');
            postBtn.on('click', this.submitComment, this);

            cancelBtn = getEl('banning-cancel-dialog-btn');
            cancelBtn.on('click', dialog.hide, dialog);

            dialog.on('hide', function(){
                wait.removeClass('active-msg');
                error.removeClass('active-msg');
            });
            
            dialog.on('show', function(){
				postBtn.focus();
            });
        }
    };
};

var BCUD = new BannCommunityUserDialog();
YAHOO.ext.EventManager.onDocumentReady(BCUD.init, BCUD, true);
