﻿var divID = 'properties';
var divTrade = 'divTrade';

function CreateProperties(cateID, propertyGroupType)
{
    if (propertyGroupType == null) propertyGroupType = 1;
    $.getJSON('/Property/GetProperties?cateID=' + CheckNull(cateID) + '&propertyGroupType=' + propertyGroupType + '&rnd=' + Math.random(), ProcessData);
}

function ProcessData(json)
{
    var ctrlText = '';
    var ctrlTradeText = '';
    var i = 0;
    var jiLiangDanWei = null;
    var jiLiangDanWeiPropertyID = null;
    var jiLiangDanWeiPropertyValue = null;
    
    for (i = 0; i < json.length; i++)
    {
        var item = json[i];
        var ctrl = null;
        var id = item.PropertyID;
        var name = $.trim(item.PropertyName);
        var value = $.trim(item.PropertyValue);
        var css = $.trim(item.CSS);
        var suffixText = CheckNull(item.SuffixText);
        var prefixText = CheckNull(item.PrefixText);
        var IsSearching = item.IsSearching;
        var PropertyType = item.PropertyType;
        var eventFun = item.Function;
        switch (item.ControlType)
        {
            case 1:
                ctrl = '<span>' + prefixText + ":&nbsp;" + CreateTextBox('property' + id, 'property' + id, value, css, item.ControlSize, item.ValueCharLength) + suffixText + '</span>';
                break;
            case 2:
                ctrl = '<span>' + prefixText + ":&nbsp;" + CreateSelect('property' + id, 'property' + id, value, item.EnumValues, css, '', eventFun == null ? '' : ('onChange="' + eventFun + '"')) + suffixText + '</span>';
                break;
            case 3:
                ctrl = '<span>' + prefixText + ":&nbsp;" + CreateRadioList('property' + id, 'property' + id, value, item.EnumValues, css) + suffixText + '</span>';
                break;
            case 4:
                ctrl = '<span>' + prefixText + ":&nbsp;" + CreateCheckList('property' + id, 'property' + id, value, item.EnumValues, css) + suffixText + '</span>';
                break;
        }
        
        ctrl += CreateHidden('hiddenproperty' + id, 'hiddenproperty' + id, name);
        ctrl += CreateHidden('hiddenIsSearching' + id, 'hiddenIsSearching' + id, IsSearching);
        switch (PropertyType)
        {
            case 1:                
                ctrlText += ctrl + "<br/>";
                break;
            case 2:                
                ctrlTradeText += ctrl + "<br/>";
                break;
        }

        if (eventFun && item.ControlType == 2 && PropertyType==2)
        {
            jiLiangDanWei = 'property' + id;
            jiLiangDanWeiPropertyID = id;
            jiLiangDanWeiPropertyValue = value;
        }
        
    }
    //if (ctrlText)
    //{
        CreateControl('<br/>' + ctrlText, divID);

//        ctrlTradeText += '<b>价格区间</b>';
//        ctrlTradeText += CreateHidden('hiddenpropertyunit', 'hiddenpropertyunit');
//        ctrlTradeText += "<div>" + CreateTextBox('trade_unit_textbox_begin1', 'trade_unit_textbox_begin1', 0, 'required', 8, 4) + '<span id="trade_unit_begin1"/>～' + CreateTextBox('trade_unit_textbox_end1', 'trade_unit_textbox_end1', 0, '', 8, 4) + '<span id="trade_unit_end1"/>：' + CreateTextBox('trade_unit_textbox_price1', 'trade_unit_textbox_price1', 0, '', 8, 4) + '元/<span id="trade_unit1"/></div>';
//        ctrlTradeText += "<div>" + CreateTextBox('trade_unit_textbox_begin2', 'trade_unit_textbox_begin2', 0, 'disabled', 8, 4, 'readonly="readonly"') + '<span id="trade_unit_begin2"/>～' + CreateTextBox('trade_unit_textbox_end2', 'trade_unit_textbox_end2', 0, '', 8, 4, 'readonly="readonly"') + '<span id="trade_unit_end2"/>：' + CreateTextBox('trade_unit_textbox_price2', 'trade_unit_textbox_price2', 0, '', 8, 4, 'readonly="readonly"') + '元/<span id="trade_unit2"/></div>';
//        ctrlTradeText += "<div>" + CreateTextBox('trade_unit_textbox_begin3', 'trade_unit_textbox_begin3', 0, '', 8, 4, 'readonly="readonly"') + '<span id="trade_unit_begin3"/>～' + CreateTextBox('trade_unit_textbox_end3', 'trade_unit_textbox_end3', 0, '', 8, 4, 'readonly="readonly"') + '<span id="trade_unit_end3"/>：' + CreateTextBox('trade_unit_textbox_price3', 'trade_unit_textbox_price3', 0, '', 8, 4, 'readonly="readonly"') + '元/<span id="trade_unit3"/></div>';        
        CreateControl('<br/>' + ctrlTradeText, divTrade);
        
        if(jiLiangDanWei)//初始化计量单位文本
        {
            setUnit($('#' + jiLiangDanWei));
            $('#hiddenpropertyunit').val(jiLiangDanWeiPropertyID + ';' + jiLiangDanWeiPropertyValue);
        }
    //}
}

function SetPriceRanges(ranges)
{ 
    if(ranges)
    {
        if(ranges.length>0)
        {
            $('#trade_unit_textbox_begin1').val(ranges[0].Begin);
            $('#trade_unit_textbox_end1').val(ranges[0].End);
            $('#trade_unit_textbox_price1').val(ranges[0].Price);
        }

        if (ranges.length > 1)
        {
            $('#trade_unit_textbox_begin2').val(ranges[1].Begin);
            $('#trade_unit_textbox_end2').val(ranges[1].End);
            $('#trade_unit_textbox_price2').val(ranges[1].Price);
        }

        if (ranges.length > 2)
        {
            $('#trade_unit_textbox_begin3').val(ranges[2].Begin);
            $('#trade_unit_textbox_end3').val(ranges[2].End);
            $('#trade_unit_textbox_price3').val(ranges[2].Price);
        }
    }
}

function CheckNull(text)
{
    return (text == null ? '' : text);
}

function CreateControl(ctrlText,ctrlID)
{
    $('#' + ctrlID).html(ctrlText);
}

function CreateHidden(id, name, value)
{
    return '<input id="{0}" name="{1}" type="hidden" value="{2}" />'.replace('{0}', CheckNull(id)).replace('{1}', CheckNull(name)).replace('{2}', CheckNull(value));
}

function CreateTextBox(id, name, value, css, size, maxlength)
{
    return CreateTextBox(id, name, value, css, size, maxlength,'');
}

function CreateTextBox(id, name, value, css, size, maxlength,others)
{
    return '<input type="textbox" id="' + CheckNull(id) + '" name="' + CheckNull(name) + '" class="' + CheckNull(css) + '" size="' + CheckNull(size) + '" maxlength="' + CheckNull(maxlength) + '" value="' + CheckNull(value) + '" ' + CheckNull(others) + '/>';
}

function GetEnumValue(enums, enumID)
{
    var value = '';
    if (enums)
    {
        var i = 0;
        for (i = 0; i < enums.length; i++)
        {
            var item = enums[i];
            if (item.EnumID == enumID)
            {
                value = item.Value;
            }
        }
    }
    return value;
}

function GetEnumText(enums, enumID)
{
    var text = '';
    if (enums)
    {
        var i = 0;
        for (i = 0; i < enums.length; i++)
        {
            var item = enums[i];
            if (item.EnumID == enumID)
            {
                text = item.Text;
            }
        }
    }
    return text;
}

function setUnit(obj)
{
    var text = obj.find('option:selected').text();
    var id = obj.attr('id').replace('property', '');
    var value = obj.val();

    $('#hiddenpropertyunit').val(id+';'+value);
    
    $('#trade_unit_begin1').html(text);
    $('#trade_unit_begin2').html(text);
    $('#trade_unit_begin3').html(text);

    $('#trade_unit_end1').html(text);
    $('#trade_unit_end2').html(text);
    $('#trade_unit_end3').html(text);

    $('#trade_unit1').html(text);
    $('#trade_unit2').html(text);
    $('#trade_unit3').html(text);
}

function CreateSelect(id, name, value, enums, css, size)
{
    return CreateSelect(id, name, value, enums, css, size, '');
}

function CreateSelect(id, name, value, enums, css, size, others)
{
    var header = '<select id="{0}" name="{1}" size="{3}" class="{2}" {4}>';
    var opt = '<option value="{0}" {2}>{1}</option>';
    var footer = '</select>';

    var sel = '';
    sel += header.replace('{0}', CheckNull(id)).replace('{1}', CheckNull(name)).replace('{2}', CheckNull(css)).replace('{3}', CheckNull(size)).replace('{4}', CheckNull(others));

    if (enums)
    {
        var i = 0;
        for (i = 0; i < enums.length; i++)
        {
            var item = enums[i];
            var tempOpt = opt.replace('{0}', CheckNull(item.Value)).replace('{1}', CheckNull(item.Text));
            if (item.Value == value)
            {
                tempOpt = tempOpt.replace('{2}', 'selected="selected"')
            }
            else
            {
                tempOpt = tempOpt.replace('{2}', '')
            }
            sel += tempOpt;
        }
    }

    sel += footer;

    return sel;
}

function CreateRadioList(id, name, selectValue, enums, css, size)
{
    var opt = '<label><input id="{0}" name="{1}" type="radio" value="{2}" class="{3}" {4} size="{6}"/>{5}</label>';

    var checklist = '';


    if (enums)
    {
        var i = 0;
        for (i = 0; i < enums.length; i++)
        {
            var item = enums[i];
            var tempOpt = opt.replace('{0}', CheckNull(id)).replace('{1}', CheckNull(name)).replace('{2}', CheckNull(item.Value)).replace('{3}', css).replace('{5}', item.Text).replace('{6}', CheckNull(size));
            if (selectValue)
            {
                if (selectValue == item.Value)
                {
                    tempOpt = tempOpt.replace('{4}', 'checked');
                }
            }
            tempOpt = tempOpt.replace('{4}', '');
            checklist += tempOpt;
        }
    }

    return checklist;
}

function CreateCheckList(id, name, selectValue, enums, css, size)
{
    var opt = '<label><input id="{0}" name="{1}" type="checkbox" value="{2}" class="{3}" {4} size="{6}"/>{5}</label>';

    var checklist = '';


    if (enums)
    {
        var i = 0;
        for (i = 0; i < enums.length; i++)
        {
            var item = enums[i];
            var tempOpt = opt.replace('{0}', id).replace('{1}', name).replace('{2}', item.Value).replace('{3}', css).replace('{5}', item.Text).replace('{6}', CheckNull(size));
            if (selectValue)
            {
                var vals = selectValue.split(',');
                var j = 0;
                for (j = 0; j < vals.length; j++)
                {
                    if (vals[j] == item.Value)
                    {
                        tempOpt = tempOpt.replace('{4}', 'checked');
                        break;
                    }
                }
            }
            tempOpt = tempOpt.replace('{4}', '');
            checklist += tempOpt;
        }
    }

    return checklist;
}

