﻿
function approveApplication( id ){
    _send_request( './x-group-join-approval.php', {"id": id, "approve": "on"} );  
}

function declineApplication( id ){
    _send_request( './x-group-join-approval.php', {"id": id } );   
}

function joinGroup( btn, direction ){

    var form = getAncestorWithClassName( btn, "axefForm" );
    if( form ){
        var 
          params = new Object();
          params["id"] = form.id;
          params["direction"] = direction;
        _send_request( './x-group-join.php', params );  
    }
}

function quitGroup( btn ){
    if( confirm("確定要退出這個群組？") ){
        var form = getAncestorWithClassName( btn, "axefForm" );      
        var 
          params = new Object();
          params["id"] = form.id;
          params["direction"] = "out";
        _send_request( './x-group-join.php', params ); 
     }
}

function removeGroupCollection( group_id, product_id ){

   if( confirm("確定移除群組收藏？") ){
        _send_request(
            './x-group-collection-delete.php', 
            { "group_id": group_id, "product_id": product_id }
         ); 
     }
}

// function expelMember( groupId, memberId, memberName ){
function expelMember( groupId, memberId  ){

//    if( confirm("確定要將 [" + memberName + "] 驅離這個群組？") ){
    if( confirm("確定驅離？") ){
        _send_request(
            "./x-group-member-expel.php",
            {"group_id": groupId, "user_id": memberId },
            _member_callback );
     }
}


// function promoteSelf( groupId, memberId, memberName ){
function promoteSelf( groupId, memberId ){

    params = new Object();
    params["id"] = groupId;
    params["direction"] = "in";
    
    new Ajax.Request('./x-group-join.php', {
      method: 'post',
      asynchronous: false,
      parameters: params,
      onSuccess: function(transport) {
        if( transport.responseText != 0 ){
            alert('系統錯誤，無法執行這個操作。');
        }
      }
    });
 
    _send_request(
        "./x-group-member-right.php",
        {"group_id": groupId, "user_id": memberId, "admin": "on" },
        _member_callback );

}

// function promoteMember( groupId, memberId, memberName ){
function promoteMember( groupId, memberId ){

    if( confirm("確定將組員提升為群組的管理員？") ){
        _send_request(
            "./x-group-member-right.php",
            {"group_id": groupId, "user_id": memberId, "admin": "on" },
            _member_callback );

     }
}

// function demoteMember( groupId, memberId, memberName ){
function demoteMember( groupId, memberId ){

//    if( confirm("確定要將管理者 [" + memberName + "] 降格為群組的一般成員？") ){
    if( confirm("確定要將管理者降格為群組的一般成員？") ){
        _send_request(
            "./x-group-member-right.php",
            {"group_id": groupId, "user_id": memberId },
            _member_callback );

     }
}

function _member_callback( result ){

    if( result.responseText == 0 ){
        window.location.reload();
    } else {
		var result = "" + result.responseText ;
        switch( result ){
        case "-42":
            alert("無法進行作業，你不能把自己降格為一般組員");
        break;
        
        default:
            alert("很抱歉，系統無法儲存您的更新，請稍後再試。\n ERR#" + result.responseText );
        break;
        }
    }
}

function updateSettings(){ }

function addSubjectTalk( btn, subject_id ){

    var form = getAncestorWithClassName( btn, "axefForm" );

    var 
      params = new Object();
      params["id"] = form.getElementsByClassName("axefField")[0].value;
      params["contents"] = form.getElementsByClassName("axefField")[1].value;

    if( params["contents"].trim() == "" ){
        alert( "請填留言內容再送出。" );
    } else {
        _send_request( "./x-group-talk-new.php", params, _reload_lightbox );
    }
}

function reloadSubject( sortType ){

    currentLbLink.content.replace(/&tab=.../g, "");

    switch( sortType ){
    case "hot":
        currentLbLink.content += "&tab=hot";
        break;
    default:
        currentLbLink.content += "&tab=old";
        break;
    }
    
    _reload_lightbox();
    
}


function addSubject( btn ){

    var form = getAncestorWithClassName( btn, "axefForm" );

    var 
      params = new Object();
      params["id"] = form.getElementsByClassName("axefField")[0].value;
      params["title"] = form.getElementsByClassName("axefField")[1].value;
      params["contents"] = form.getElementsByClassName("axefField")[2].value;

    if( params["contents"].trim() == "" ){
        alert( "請填寫留言內容。" );
    } else if( params["title"].trim() == "" ){
        alert( "請輸入標題。" );
    } else {
        _send_request( "./x-group-subject-new.php", params, _member_callback );
    }
}

function deletSubject( btn ){
    var form = getAncestorWithClassName( btn, "btnAdminAction" );
    _send_request( "./x-group-subject-delete.php", {"id": form.id} , _member_callback );
}

function blockSubject( btn ){
    var form = getAncestorWithClassName( btn, "btnAdminAction" );

    _send_request( "./x-group-subject-block.php", {"id": form.id, "block": "on" } , _reload_lightbox );
}

function unblockSubject( btn ){
    var form = getAncestorWithClassName( btn, "btnAdminAction" );
    _send_request( "./x-group-subject-block.php", {"id": form.id } , _reload_lightbox );
}

function foreceDeleteSubjectTalk(btn){

    var entry = getAncestorWithClassName( btn, "axefEntry" );

    _send_request( "./x-group-talk-force-delete.php", {"id": entry.id } , function ( transport ){
        if( transport.responseText != 0 ) alert( '無法刪除');
        else entry.parentNode.removeChild( entry ); }
    );
}

function deleteSubject( subject_id ){

    _send_request( "./x-group-subject-delete.php", {"id": subject_id } );

}

function deleteSubjectTalk(btn){

    var entry = getAncestorWithClassName( btn, "axefEntry" );

    _send_request( "./x-group-talk-delete.php", {"id": entry.id } , function ( transport ){
        if( transport.responseText != 0 ) alert( '無法刪除');
        else entry.parentNode.removeChild( entry ); }
    );
}

function addComment( btn ){

    var form = getAncestorWithClassName( btn, "axefForm" );

    var 
      params = new Object();
      params["prod_id"] = form.getElementsByClassName("axefField")[1].value;
      params["contents"] = form.getElementsByClassName("axefField")[0].value
    
    if( params["contents"].trim() == "" ){
        alert( "請填寫迴響內容再送出。" );
    } else {
        new Ajax.Request('./x-comment-new.php', {
          method: 'post',
          parameters: params,
          onSuccess: function(transport) {
            if( transport.responseText != 0){
                alert("很抱歉，系統無法儲存您的更新，請稍後再試。\n ERR#" + transport.responseText );
            } else {
                window.location.reload();
            }   
          }
        });
    }
}

function deleteComment(btn){
    
    var entry = getAncestorWithClassName( btn, "axefEntry" );

    var 
      params = new Object();
      params["id"] = entry.id;

    _send_request( './x-comment-delete.php', params, null );  
    
}


function setReview( btn ){

    var entry = getAncestorWithClassName( btn, "axefEntry" );

    var params = new Object();
        params["id"] = entry.id;
        params["is_review"] = true;
     
      _send_request( './x-comment-set-review.php', params, function (){ window.location.reload() } );  
}

function unsetReview( btn ){

    var entry = getAncestorWithClassName( btn, "axefEntry" );
    
    var params = new Object();
        params["id"] = entry.id;
    
      _send_request( './x-comment-set-review.php', params, function (){ window.location.reload() } );  
}

function editSubjectTalk(btn){

    var entry = getAncestorWithClassName( btn, "axefEntry" );
    
    var target;
    try{
        target = entry.getElementsByClassName( "axefContents" )[0];
    } catch(e) {
        return 0;
    }

    var btn_list = Element.getElementsByClassName( entry, 'btnEdit');
    
    for( var i=0; i<btn_list.length; i++ ){
        btn_list[i].setStyle( {display: 'none'} );
    }

    var height = Math.min( 250, target.getHeight() ) + 60;
    
    target.update(
        "<textarea class='textEdit' style='height:" + height + "px;width:600px;'></textarea>" +
        "<input class='btnSave' type='button' value='確認更新'/>");
    
    var textArea = target.getElementsByClassName('textEdit')[0];
    
    var params = new Object();
        params["id"] = entry.id;
        params["original"] = "on";
        
    _send_request( './x-group-talk-get.php', params, function ( transport ){
        var contents = transport.responseText;
        textArea.value = contents;
		textArea.setAttribute('old', contents);
    } )
    
    var btnSave = target.getElementsByClassName('btnSave')[0];

   	Event.observe(textArea, 'blur', confirmSave, false);

    editmode = true;
   	textArea.focus();
}

function confirmSave( evt ){

    Event.stop(evt);
        
    var target = Event.element(evt);

    if( ! getAncestorWithClassName( target, "chkIsReview") ){
    
        var form = getAncestorWithClassName( target, "axefEntry" );
        
   	    Event.stopObserving( target, 'blur');
       	
        var val = "" + target.value;
        var msgContainer = target.parentNode;
        
        if( window.confirm("請確認儲存對文章的編輯") ){

            var params = new Object();
                params["id"] = form.id;
                params["contents"] = target.value;
                
            _send_request( './x-group-talk-edit.php', params, _callback );
                          
        } else {
            msgContainer.update( target.getAttribute('old') );
        }
        
        var btn_list = Element.getElementsByClassName( form, 'btnEdit');
        
        for( var i=0; i<btn_list.length; i++ ){
            btn_list[i].setStyle( {display: 'inline'} );
        }
        
        return false;
    }
    
    function _callback( transport ) {
        var params = new Object();
        params["id"] = form.id;
        _send_request( './x-group-talk-get.php', params, function ( transport ){
            msgContainer.update( transport.responseText );
        } );
    }
}


function do_collection_new(){

    var params = new Object();
        params["prod_id"] = $("frm_prod_id").value;
        params["star_count"] = $("frm_star_count").value;
        params["use_status"] = _get_use_status( $("use_status_list") );
        params["tags"] = $("frm_tags").value;
        params["group_ids"] = $("frm_group_ids").value;
        params["comment"] = $("frm_comment").value;
        params["is_review"] = $("frm_is_review").selected;
        
    new Ajax.Request('./x-collection-new.php', {
      method: 'post',
      parameters: params,
      onSuccess: function(transport) {
        if( transport.responseText != 0){
            alert("很抱歉，系統無法儲存您的更新，請稍後再試。\n ERR#" + transport.responseText );
        } else {
            window.location.reload();
        }   
      }
    });
}

function do_collection_edit(){

    var params = new Object();
        params["prod_id"] = $("frm_prod_id").value;
        params["star_count"] = $("frm_star_count").value;
        params["use_status"] = _get_use_status( $("use_status_list") );
        params["tags"] = $("frm_tags").value;
        params["group_ids"] = $("frm_group_ids").value;
    
    new Ajax.Request('./x-collection-edit.php', {
      method: 'post',
      parameters: params,
      onSuccess: function(transport) {
        if( transport.responseText != 0){
            alert("很抱歉，系統無法儲存您的更新，請稍後再試。\n ERR#" + transport.responseText );
        } else {
            window.location.reload();
        }   
      }
    });
}

function do_collection_delete( product_id ){

    var 
      params = new Object();
      params["id"] = product_id;
  
    new Ajax.Request('./x-collection-delete.php', {
      method: 'post',
      parameters: params,
      onSuccess: function(transport) {
        var result = transport.responseText.split("/");
        if( result[0] == 0 ){
            window.location.reload();
        } else {
            alert('無法刪除，請聯絡系統管理員。\n(錯誤代碼 #' + result[0] + ')');
        }

      }
    });
}

function doRecommendTalk( talkId, evtTarget  ){

    if( evtTarget.className == "btn" ){
        evtTarget.className = "disabled";

        var 
          params = new Object();
          params["id"] = talkId;
      
        new Ajax.Request('./x-group-talk-recommend.php', {
          method: 'post',
          parameters: params,
          onSuccess: function(transport) {
            var target = $('recomm' + params.id );
            target.update( transport.responseText );
          }

        });
    } 
}

/*
Object.prototype.dump = function(){
    var retVal= "";
    for( var i in this ){
        if( typeof( this[i] ) != "function" )
            retVal += "[" + i + "] - " + this[i] + "\n";
    }
    return retVal;
}
*/

function _get_use_status( node ){

    var list = node.getElementsByClassName("radio");
    
    for( var i=0; i< list.length; i++ ){
        if( list[i].checked ) return list[i].value;
    }
    return null;
}

function _reload_lightbox( transport ){

    if( transport ){
        var result = transport.responseText.split("/");
        if( result[0] != 0 ){
            alert('無法執行操作，請聯絡系統管理員。\n(錯誤代碼 #' + result[0] + ":" + result[1] + ')');
        } else {
        }
    }
	currentLbLink.deactivate();
	currentLbLink.activate();	
}