/**
 * Copyright (c) greensyn.org All rights reserved.
 * 
 * v 0.1.0 - 2008/04/20 by Fuchun
 * 
 * Requires jQuery 1.2+
 */

if( typeof Green === 'undefined' )
    var Green = {};
if( typeof Green.Product === 'undefined' )
    Green.Product = {};

(function(jQuery) {
    
    var $j = jQuery;
    
    Green.Product.LoadProductList = function(handle, flag) {
        if(typeof flag == 'undefined')
            $j.ajaxLoader().load("正在载入产品信息列表……");
        handle = $j.extend({
            method: 'list',
            updateArea: '_product_list',
            smlclsId: 0,
            i18n:1,
            state: 1,
            page: 1
        }, handle || {});
        if(typeof flag != 'undefined')
            $j('#'+handle.updateArea).html('<div class="ta_c"><img src="'+PATH.image+'/ajax_loader.gif"/></div>');
        $j.ajax({type:'POST',url:PATH.common+'/product_action.php',
        data:'method='+handle.method+'&updateArea='+handle.updateArea
                +'&smlclsId='+handle.smlclsId+'&i18n='+handle.i18n+'&state='+handle.state+'&p='+handle.page,
        success:function(responseText) {
            $j('#'+handle.updateArea).html(responseText);
            if(typeof flag == 'undefined')
                $j.ajaxLoader().close();
        }, dataType:'html'});
    };
    
    Green.Product.PublishProduct = function(handle) {
        $j.ajaxLoader().load("正在提交数据，请稍后……");
        $j('#btn_save_product').attr('disabled', 'disabled');
        $j('#btn_save_draft').attr('disabled', 'disabled');
        handle = $j.extend({
            form:'#formAddProduct',
            state: 1
        }, handle || {});
        $j(handle.form)[0].productState.value = handle.state;
        var editor = FCKeditorAPI.GetInstance("productDescn");
        $j(handle.form)[0].productDescn.value = editor.GetXHTML(true);
        
        var queryString = $j(handle.form).formSerialize();
        $j.ajax({type:'POST',url:PATH.common+'/product_action.php',data:queryString,
        success:function(responseXML) {
            var rs = FUI.fn.data(responseXML);
            if(rs.state == STATE.success) {
                var currPage = FUI.isNullOrEmpty($j('#p').val()) ? 1 : $j('#p').val();
                var state = FUI.isNullOrEmpty($j('#state').val()) ? 1 : $j('#state').val();
                $j.ajaxLoader().close(function() {
                    location.href = "product_list.php?state="+handle.state+'&p='+currPage;
                });
            } else {
                $j.ajaxLoader().failure(rs.message, function() {
                    $j('#btn_save_product').removeAttr('disabled');
                    $j('#btn_save_draft').removeAttr('disabled');
                });
            }
        }, dataType:'xml'});
    };
    
    Green.Product.ChangeState = function(handle, prompt) {
        handle = $j.extend({
            method: '',
            productId: ''
        }, handle || {});
        prompt = $j.extend({text:'您确认要删除选定的产品信息吗？'}, prompt || {});
        if($j.trim(handle.productId) == '') {
            $.ajaxLoader().failure("请选择您要删除的产品信息！");
            return;
        }
        $j.confirm(prompt,
        function() {
            $j.ajaxLoader().load("正在更新数据……");
            $j.ajax({type:'POST',url:PATH.common+'/product_action.php',
            data:'method='+handle.method+'&productId='+handle.productId,
            success:function(responseXML) {
                var rs = FUI.fn.data(responseXML);
                if(rs.state == STATE.success) {
                    var currPage = FUI.isNullOrEmpty($j('#p').val()) ? 1 : $j('#p').val();
                    var state = FUI.isNullOrEmpty($j('#state').val()) ? 1 : $j('#state').val();
                    Green.Product.LoadProductList({state:state, page:currPage});
                } else {
                    $j.ajaxLoader().failure(rs.message);
                }
            }, dataType:'xml'});
        });
    };
    
    Green.Product.LogicDelete = function(prodId) {
        Green.Product.ChangeState({method:'logicDelete', productId:prodId});
    };
    
    Green.Product.Resume = function(prodId) {
        Green.Product.ChangeState({method:'resume', productId:prodId}, {text:'恢复选定的产品信息吗？'});
    };
    
    Green.Product.LastingDelete = function(prodId) {
        Green.Product.ChangeState({
            method: 'lastingDelete',
            productId: prodId
        }, {
            text:'您确认要永久删除选定的产品信息吗？',
            content:'该过程为不过逆，将直接从数据库物理删除记录！'
        });
    };
   
})(jQuery);