﻿$().ready(function() {
    $('#Step5PQ').addClass("hideit");
    $('#wizardcontent5').removeClass("ajaxContainer");
    $('input[type=text]').focus(function() {
        this.select();
    });

    $(".AttributeInput").change(function() {
        try {
            if (this.value.charAt(0) == '.') { myValue = this.value; this.value = '0' + myValue; }
        }
        catch (e) { }
    });

    if ($("#ProductID").val() != "0") {
        $('#Step1PQ').removeClass("hideit");
        $('#wizardcontent1').addClass("ajaxContainer");

        $.ajax({
            type: "POST",
            url: "ProQuoteWebService.asmx/GetProQuoteProductInitial",
            data: "{skinID:'" + $('#SkinID').val() + "', proquoteattribute:'" + $('#proquoteattribute').val() + "', sessPfx:'" + $('#SessionNamePrefix').val() + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg) {
                LoadInitialProQuoteData(msg.d)
            }
        });
    }
    else {
        $("#tbEmail").val($("#EmailOPLI").val());

        if ($('#SkinID').val() == "4") {
            Skin4Defaults();
        }
        else {
            $("#cngbg421").addClass("hlshape");
        }
    }
});

function Skin4Defaults() {
    $("#rbProductType_" + $("#ServerProductTypeID").val()).attr("checked", true);
    $("#cngbg" + $("#ServerProductTypeID").val()).addClass("hlshape");
    //loadnext(1, 2); //  !!!!!!! IF THEY WANT TO GO TO THE Second step then uncomment this.
}

function LoadInitialProQuoteData(msg) {
    $.each(msg, function() {
        $(".proquoteProductType").attr("checked", false);
        $("#rbProductType_" + this["ProductTypeID"]).attr("checked", true);
        $("#cngbg" + this["ProductTypeID"]).addClass("hlshape");
        $("select#ddlMaterialType").val(this["RawMaterialTypeID"]);
        $.ajax({
            type: "POST",
            url: "ProQuoteWebService.asmx/GetRawMaterialSizes",
            data: "{ID:'" + $("select#ddlMaterialType").val() + "', RMSV:'" + this["RawMaterialSizeID"] + "', proquoteattribute:'" + $('#proquoteattribute').val() + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg) {
                BindddlRawMaterialSize(msg.d)
            }

        });


        $("select#ddlMaterialSize").val(this["RawMaterialSizeID"]);
        $("select#Attribute_131_" + this["ProductTypeID"]).val(this["UnitOfMeasure"]);
        $("#tbEmail").val(this["Email"]);
        $("#tbAnnualUses").val(this["Quantity"]);
        $("#tbAnnualUsesFinal").val(this["Quantity"]);

        LoadFinalDetailsFromMsg(msg);

        $.each(this['NumberOfHolesAttributeList'], function() {
            $("#tbNumberOfHoles" + this['FlangeNumber']).val(this['NumberOfHoles']);
        });

        $.each(this['AttributeItemList'], function() {
            $("#Attribute_" + this['AttributeID']).val(this['AttributeValue']);
        });

        $(".AttributeInput").each(function() {
            try {
                if (this.value.charAt(0) == '.') { myValue = this.value; this.value = '0' + myValue; }
            }
            catch (e) { }
        });

        $(".AttributeInput").each(function() {
            try {
                if (this.value.charAt(0) == '.000000') { myValue = this.value; this.value = '0' + myValue; }
            }
            catch (e) { }
        });
    });


    $('#Step1PQ').addClass("hideit");
    $('#wizardcontent1').removeClass("ajaxContainer");
}

/* Main Driver Begin */
function loadnext(divout, divin) {
    $.removeData($('#aspnetForm')[0], 'validator');
    $("#aspnetForm").validate({
        rules: {}
    });
    switch (divin) {
        case 2:
            processStep1Forward();
            break;
        default:
    }



    $("." + divout).hide();
    $("." + divin).fadeIn('fast', function() {
        if (navigator.userAgent.search(/msie/i) != -1) {
            try { this.style.removeAttribute('filter'); } catch (e) { }
        }
    });
}

jQuery.fn.fadeIn = function(speed, callback) {
    return this.animate({ opacity: 'show' }, speed, function() {
        if (jQuery.browser.msie)
            try { this.style.removeAttribute('filter'); } catch (e) { }
        if (jQuery.isFunction(callback))
            callback();
    });
};

$(document).ready(function() {
    try {

        $.removeData($('#aspnetForm')[0], 'validator');
        $("#aspnetForm").validate({
            rules: {}
        });
    }
    catch (e) { }

    //step 1 image
    $(".imgShapePH").hover(
        function() {
            $(this).addClass("hovershape");
            $(this).removeClass("noshape");
        },
        function() {
            $(this).removeClass("hovershape");
            $(this).addClass("noshape");
        }
    );

    $(".imgShapePH").click(
        function() {
            $(".imgShapePH").removeClass("hlshape");
            $(this).removeClass("hovershape");
            $(this).removeClass("noshape");
            $(this).addClass("hlshape");
        }
    );

});



function processStep1Forward() {
    $('#attributesErrorSpan').html('');
    $('.customAttributes').addClass('hideit');
    $('#PT' + $('input[name=rblProductType]:checked').val() + $("#CustomProQuote").val()).removeClass('hideit');
    $('#PT' + $('input[name=rblProductType]:checked').val() + $("#CustomProQuote").val()).addClass('showit');
    $('#imgTwoDim').attr('src', '/Images/ProductImages/ptlf_' + $('input[name=rblProductType]:checked').val() + $("#CustomProQuote").val() + '.jpg');
    $("#hleDrawing").attr('href', '/downloadedrawings.aspx?edrw=EDrawing' + $('input[name=rblProductType]:checked').val() + $("#CustomProQuote").val() + '');

    if ($('input[name=rblProductType]:checked').val() != $("#ServerProductTypeID").val()) {
        $("#ServerProductTypeID").val($('input[name=rblProductType]:checked').val());
        ClearGenericAttributes();
        ClearAOS();
        ClearHoles();
        ClearFinalDetails();
    }
    //This removes all validation so we can start over.
    $.removeData($('#aspnetForm')[0], 'validator');

    switch ($('input[name=rblProductType]:checked').val()) {
        case '421': // Hat Bracket
            ValidationHat($('input[name=rblProductType]:checked').val());
            break;
        case '426': // L Bracket
            ValidationL($('input[name=rblProductType]:checked').val());
            break;
        case '423': // Pan
            ValidationPan($('input[name=rblProductType]:checked').val());
            break;
        case '427': // Pan (2 Sided)
            ValidationPan2Sided($('input[name=rblProductType]:checked').val());
            break;
        case '422': // Pan (3 Sided)
            ValidationPan3Sided($('input[name=rblProductType]:checked').val());
            break;
        case '419': // Plate
            ValidationPlate($('input[name=rblProductType]:checked').val());
            break;
        case '418': // Round Plate
            ValidationRoundPlate($('input[name=rblProductType]:checked').val());
            break;
        case '420': // Single Wing U
            ValidationSWU($('input[name=rblProductType]:checked').val());
            break;
        case '425': // U Bracket
            ValidationU($('input[name=rblProductType]:checked').val());
            break;
        case '424': // Z Bracket
            ValidationZ($('input[name=rblProductType]:checked').val());
            break;
        case '600': // Drip Pan
            ValidationDripPan($('input[name=rblProductType]:checked').val());
            break;
        case '605': // Machine Guard
            ValidationMachineGuard($('input[name=rblProductType]:checked').val());

            break;
        default:
    }

    SetupGenericAttributes($('input[name=rblProductType]:checked').val());
    SetupGenericAttributesValidation($('input[name=rblProductType]:checked').val());
    $.each($(".AttributeInput"), function(i, v) {
        var theTag = v.tagName;
        var theElement = $(v);
        theElement.val(theElement.val().replace(".000000", ""));
    });
    $.each($(".AttributeInputAngle"), function(i, v) {
        var theTag = v.tagName;
        var theElement = $(v);
        theElement.val(theElement.val().replace(".000000", ""));
    });
}

function processStep2Backward() {
    loadnext(2, 1);
}
function processStep2Forward() {
    $('#attributesErrorSpan').html('');

    if ($("#aspnetForm").valid()) {
        GetQuote();
    }
}

function validateAttributeInteraction() {
    switch ($('input[name=rblProductType]:checked').val()) {
        case '421': // Hat Bracket
            break;
        case '426': // L Bracket
            break;
        case '423': // Pan
            break;
        case '427': // Pan (2 Sided)
            break;
        case '422': // Pan (3 Sided)
            break;
        case '419': // Plate
            break;
        case '418': // Round Plate
            break;
        case '420': // Single Wing U
            break;
        case '425': // U Bracket
            break;
        case '424': // Z Bracket
            break;
        case '600': // Drip Pan
            return validateDripPanAttributeInteraction();
            break;
        case '605': // Machine Guard
            break;
        default:
    }
    return true;
}

function validateDripPanAttributeInteraction() {
    var sizeErrorMsg = 'The drip pan specified is too large for proquote.   Please submit a quote request by <a href="srp_RFQ.aspx?siteid=' + $("input#SkinID").val() + '">clicking here</a>'
    //validation for total sq inch
    var dpLength = parseFloat($("input#Attribute_411").val());
    var dpWidth = parseFloat($("input#Attribute_413").val());
    var dpHeight = parseFloat($("input#Attribute_418").val());
    var dpMaxBoth = 60;
    var dpMaxOneSide = 120;
    var dpScrap = 0.5;
    var dpHem = 1;

    //Length + 2xheight + 1 (1= .5 scrap +  ) and Width + 2xheight + 1.5 (1= .5 scrap + 1 hem )
    if (((dpLength + parseFloat(2 * dpHeight) + dpScrap + dpHem) > dpMaxBoth) && ((dpWidth + parseFloat(2 * dpHeight) + dpScrap + dpHem) > dpMaxBoth)) {
        $('#attributesErrorSpan').html(sizeErrorMsg);
        $('#attributesErrorSpan').show();
        return false;
    }

    if (((dpLength + parseFloat(2 * dpHeight) + dpScrap + dpHem) > dpMaxOneSide) || ((dpWidth + parseFloat(2 * dpHeight) + dpScrap + dpHem) > dpMaxOneSide)) {
        $('#attributesErrorSpan').html(sizeErrorMsg);
        $('#attributesErrorSpan').show();
        return false;
    }

    return true;
}

function processStep3Backward() {
    $('#attributesErrorSpan').html('');
    processStep1Forward();
    loadnext(3, 2);
}
function processStep3Forward() {
    if ($("#aspnetForm").valid()) {
        GetAOS();
    }

}
function processStep4Backward() {
    loadnext(4, 3);
}
function processStep4Forward() {
    if ($("#aspnetForm").valid()) {
        GetFinalStep();
    }
}
function processStep5Backward() {
    //This removes all validation so we can start over.
    $.removeData($('#aspnetForm')[0], 'validator');
    loadnext(5, 4);
}
function processStep5Forward() {
    $('#finalDetailsErrorSpan').html('');
    var okToGo = true;
    //There are holes, no drawing, and validation errors on holes.
    if ((HoleCount() > 0) && ($("#CustomerDrawingUploaded").val() != 'true')) {
        if ($("#aspnetForm").valid()) {
        }
        else {
            $('#finalDetailsErrorSpan').html('You must either define holes or upload a sketch.');
            okToGo = false;
        }
    }

    if (okToGo) {
        var tappedAOS = '';
        var countersunkAOS = '';
        var tappedInHoles = 0;
        var countersunkInHoles = 0;
        var possibleHoles = 0;

        //check the Tapped.  And check the holes.  If there are holes, make sure there are the same number of specified tapped.
        if ($('#ddlAddOnService_24 option:selected').val() == null) {
            tappedAOS = 0;
        }
        else {
            if ($('#ddlAddOnService_24 option:selected').val().indexOf('-') < 0) {
                tappedAOS = 0;
            }
            else {
                try { tappedAOS = ($('#ddlAddOnService_24').val().replace('26-', '')); } catch (e) { }
            }
        }
        
        $('.tappedhole').each(function(index) {
            possibleHoles++;
            if ($(this).val() == "1") {
                tappedInHoles++;
            }
        });


        //check the Countersinking.  And check the holes.  If there are holes, make sure there are the same number of specified tapped.
        if ($('#ddlAddOnService_27 option:selected').val() == null) {
            countersunkAOS = 0;
        }
        else {
            if ($('#ddlAddOnService_27 option:selected').val().indexOf('-') < 0) {
                countersunkAOS = 0;
            }
            else {
                try { countersunkAOS = ($('#ddlAddOnService_27').val().replace('29-', '')); } catch (e) { }
            }
        }
        
        $('.countersunkhole').each(function(index) {
            if ($(this).val() == "1") {
                possibleHoles++;
                countersunkInHoles++;
            }
        });
        $('#finalDetailsErrorSpan').hide();

        if ($("#CustomerDrawingUploaded").val() != 'true') {
            if (possibleHoles > 0) {
                if (countersunkAOS != countersunkInHoles.toString()) {
                    okToGo = false;
                    $('#finalDetailsErrorSpan').html('- The number of COUNTERSUNK holes in step 4 does not match the number you specified in the Holes Specification grid.');
                    $('#finalDetailsErrorSpan').show();
                }

                if (tappedAOS != tappedInHoles.toString()) {
                    okToGo = false;
                    $('#finalDetailsErrorSpan').html($('#finalDetailsErrorSpan').html() + '<br />- The number of TAPPED holes in step 4 does not match the number you specified in the Holes Specification grid.');
                    $('#finalDetailsErrorSpan').show();
                }

                if ($('#finalDetailsErrorSpan').html().length > 0) {
                    $('#finalDetailsErrorSpan').html('Errors:<br />' + $('#finalDetailsErrorSpan').html());
                }

            }
        }
    }

    
    if (okToGo) {
        $.removeData($('#aspnetForm')[0], 'validator');
        $("#aspnetForm").validate({
            rules: {}
        });
        SetupFinalDetailsAttributesValidation();

        if ($("#aspnetForm").valid()) {
            //save the proquote.
            $('#Step5PQ').removeClass("hideit");
            $('#wizardcontent5').addClass("ajaxContainer");

            $.each(['421', '426', '423', '427', '422', '419', '418', '420', '425', '424', '600', '605'], function(index, value) {
                if ($('input[name=rblProductType]:checked').val() != value) {
                    $('#PT' + value + '1').html('');

                    $('#PT' + value).html('');

                }
            });

            $('#aspnetForm')[0].submit();
        }
    }
}

function HoleCount() {
    var count = 0;
    for (var flange = 1; flange < 17; flange++) {
        try {
            count = count + parseInt($("#tbNumberOfHoles" + flange).val());
        }
        catch (e) { }
    }

    return count;
}


function GetQuote() {
    $('#Step2PQ').removeClass("hideit");
    $('#wizardcontent2').addClass("ajaxContainer");
    $('.ajaxprocessing2').show();
    $.ajax({
        type: "POST",
        url: "ProQuoteWebService.asmx/GetQuote",
        data: "{QS:'" + BuildPostBackString() + "', proquoteattribute:'" + $('#proquoteattribute').val() + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            $.each(msg.d, function() {
                if (this['Message'] == null || this['Message'].length == 0) {
                    LoadQuoteGrid(msg.d);                    
                }
                else {
                    $('#attributesErrorSpan').html(this['Message']);
                    $('#attributesErrorSpan').show();
                    $('#wizardcontent2').removeClass("ajaxContainer");
                    $('.ajaxprocessing2').hide();
                }
                return false;
            });
            //
        },
        error: function(xhr) {
            $('#attributesErrorSpan').html(GetMaterialSizeSheetErrorMsg());
            $('#attributesErrorSpan').show();
            $('#wizardcontent2').removeClass("ajaxContainer");
            $('.ajaxprocessing2').hide();
        }
    });
    return false;
}

function GetMaterialSizeSheetErrorMsg() {
    return "There was an error processing your request. Please submit a quote request by <a href=\"srp_RFQ.aspx?siteid=" + $("input#SkinID").val() + "\">clicking here</a>."; //The dimensions specified are too large for selected material size. Please try another material size or submit a quote request by <a href=\"srp_RFQ.aspx?siteid=" + $("input#SkinID").val() +"\">clicking here</a>. For max sheet size information, <a href='/MaterialSizeSheetMaxes.aspx?CO=1' id='ak_sign_in' onclick=\"$.showAkModal(this.href,'Material Max Sheet Sizes',700,650);return false;\">click here</a>.";
}

function LoadQuoteGrid(msg) {
    $('.quoteResultGridRow').remove();
    $('.quoteResultGridRowSelected').remove();
    $('.quoteResultGridRowOdd').remove();

    var className = 'quoteResultGridRow';
    var rowStuff = '';
    $.each(msg, function() {
        if (this['Selected'] == 'Y') {
            className = 'quoteResultGridRowSelected';
        }
        if ($("input#ProductID").val() == "0") {
            $("input#ProductID").val(this['CurrentProductID']);
        }
        rowStuff = '<tr class="' + className + '">' + '<td>' + this['Quantity'] + '</td>' + '<td>' + this['PricePerUnit'] + '</td>' + '<td>' + this['ExtendedPrice'] + '</td></tr>';
        $('#QuoteResultGrid > tbody').append(rowStuff);
        rowStuff = '';
        className = 'quoteResultGridRow';
    });
    loadnext(2, 3);

    $('#Step2PQ').addClass("hideit");
    $('#wizardcontent2').removeClass("ajaxContainer");
}

function GetAOS() {
    $('#Step3PQ').removeClass("hideit");
    $('#wizardcontent3').addClass("ajaxContainer");
    $.ajax({
        type: "POST",
        url: "ProQuoteWebService.asmx/GetAOS",
        data: "{QS:'" + BuildPostBackString() + "', proquoteattribute:'" + $('#proquoteattribute').val() + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            LoadAOSGrid(msg.d)
        }
    });
    return false;
}

function ClearAOS() {
    $("#ddlAddOnService_1").html("");
    $("#ddlAddOnService_13").html("");
    $("#ddlAddOnService_22").html("");
    $("#ddlAddOnService_23").html("");
    $("#ddlAddOnService_24").html("");
    $("#ddlAddOnService_27").html("");
    $("#ddlAddOnService_110").html("");

}

function LoadAOSGrid(msg) {

    var className = 'aosGridRow';
    var rowStuff = '';
    var TappedSelection = '';
    var TappedVisible = 'N';
    var CounterSunkSelection = '';
    var CounterSunkVisible = 'N';
    var WetPaintSelection = '';
    var WetPaintVisible = 'N';
    var PowderPaintSelection = '';
    var PowderPaintVisible = 'N';
    var PowderPaintSelectionMG = '';
    var PowderPaintVisibleMG = 'N';
    var BlackOxideSelection = '';
    var BlackOxideVisible = 'N';
    var ZincSelection = '';
    var ZincVisible = 'N';
    var ShowAOSTitle = 'N';

    ClearAOS();
    $.each(msg, function() {
        //BUILD THE SUCKERS
        LoadQuoteGridWithAOS(this['QuoteGridItemList']);
        $.each(this['AOSGridItemList'], function() {
            switch (this['ParentAddOnServiceID']) {
                case '1':
                    WetPaintVisible = 'Y';
                    $("#ddlAddOnService_1").append($("<option></option>").val(this['AddOnServiceID']).html(this['SelectItemText']));

                    if (this['Selected'] == 'Y') {
                        WetPaintSelection = this['AddOnServiceID'];
                    }
                    break;
                case '13':
                    PowderPaintVisible = 'Y';
                    $("#ddlAddOnService_13").append($("<option></option>").val(this['AddOnServiceID']).html(this['SelectItemText']));

                    if (this['Selected'] == 'Y') {
                        PowderPaintSelection = this['AddOnServiceID'];
                    }
                    break;
                case '110':
                    PowderPaintVisibleMG = 'Y';
                    $("#ddlAddOnService_110").append($("<option></option>").val(this['AddOnServiceID']).html(this['SelectItemText']));

                    if (this['Selected'] == 'Y') {
                        PowderPaintSelectionMG = this['AddOnServiceID'];
                    }
                    break;
                case '22':
                    ZincVisible = 'Y';
                    $("#ddlAddOnService_22").append($("<option></option>").val(this['AddOnServiceID']).html(this['SelectItemText']));

                    if (this['Selected'] == 'Y') {
                        ZincSelection = this['AddOnServiceID'];
                    }
                    break;
                case '23':
                    BlackOxideVisible = 'Y';
                    $("#ddlAddOnService_23").append($("<option></option>").val(this['AddOnServiceID']).html(this['SelectItemText']));

                    if (this['Selected'] == 'Y') {
                        BlackOxideSelection = this['AddOnServiceID'];
                    }
                    break;
                case '24':
                    TappedVisible = 'Y';
                    $("#ddlAddOnService_24").append($("<option></option>").val(this['AddOnServiceID']).html(this['SelectItemText']));

                    if (this['Selected'] == 'Y') {
                        TappedSelection = this['AddOnServiceID'];
                    }
                    break;
                case '27':
                    CounterSunkVisible = 'Y';
                    $("#ddlAddOnService_27").append($("<option></option>").val(this['AddOnServiceID']).html(this['SelectItemText']));

                    if (this['Selected'] == 'Y') {
                        CounterSunkSelection = this['AddOnServiceID'];
                    }
                    break;
                default:
                    //nothing goes on                
            }
        });
    });

    $("select#ddlAddOnService_1").val(WetPaintSelection);
    $("select#ddlAddOnService_13").val(PowderPaintSelection);
    $("select#ddlAddOnService_110").val(PowderPaintSelectionMG);
    $("select#ddlAddOnService_22").val(ZincSelection);
    $("select#ddlAddOnService_23").val(BlackOxideSelection);
    $("select#ddlAddOnService_24").val(TappedSelection);
    $("select#ddlAddOnService_27").val(CounterSunkSelection);

    $(".aosGridRowTapped").show();
    $(".aosGridRowCountersunk").show();
    $(".aosGridRowWetPaint").show();
    $(".aosGridRowPowderPaint").show();
    $(".aosGridRowPowderPaintMachineGuard").show();
    $(".aosGridRowZinc").show();
    $(".aosGridRowBlackOxide").show();
    $("#tblCosmeticServices").show();

    if (TappedVisible == 'N') {
        $(".aosGridRowTapped").hide();
    }
    if (CounterSunkVisible == 'N') {
        $(".aosGridRowCountersunk").hide();
    }
    if (WetPaintVisible == 'N') {
        $(".aosGridRowWetPaint").hide();
    }
    else {
        ShowAOSTitle = 'Y';
    }

    $(".aosGridRowPowderPaint").show();

    if (PowderPaintVisible == 'N') {
        $(".aosGridRowPowderPaint").hide();
    }
    else {
        ShowAOSTitle = 'Y';
    }
    if (PowderPaintVisibleMG == 'N') {
        $(".aosGridRowPowderPaintMachineGuard").hide();
    }
    else {
        ShowAOSTitle = 'Y';
    }



    if (ZincVisible == 'N') {
        $(".aosGridRowZinc").hide();
    }
    else {
        ShowAOSTitle = 'Y';
    }
    if (BlackOxideVisible == 'N') {
        $(".aosGridRowBlackOxide").hide();
    }
    else {
        ShowAOSTitle = 'Y';
    }
    if (ShowAOSTitle == 'N') {
        $("#tblCosmeticServices").hide();
    }
    loadnext(3, 4);

    SetupPossibleQtyValidation();

    $('#Step3PQ').addClass("hideit");
    $('#wizardcontent3').removeClass("ajaxContainer");
}

function LoadQuoteGridWithAOS(quoteitems) {
    $('.quoteResultGridRowWithAOS').remove();
    $('.quoteResultGridRowSelectedWithAOS').remove();
    $('.quoteResultGridRowOddWithAOS').remove();
    var className = 'quoteResultGridRowWithAOS';
    var rowStuff = '';
    var firstZero = 1;
    var row = 0;
    $.each(quoteitems, function() {
        if (this['Selected'] == 'Y') {
            className = 'quoteResultGridRowSelectedWithAOS';
        }
        if ($("input#ProductID").val() == "0") {
            $("input#ProductID").val(this['CurrentProductID']);
        }
        if (parseInt(this['Quantity']) > 0 || firstZero == 1) {
            rowStuff = '<tr class="' + className + '">' + '<td><input type="text" onFocus="this.select()" value="' + this['Quantity'] + '" id="possibleQty_' + row.toString() + '" name="possibleQty_' + row.toString() + '"  maxlength="10" size="10" ></td>' + '<td>' + this['PricePerUnit'] + '</td>' + '<td>' + this['ExtendedPrice'] + '</td></tr>';
        }
        if (this['Quantity'] == "0") {
            firstZero = 0;
        }

        $('#QuoteResultGridWithAOS> tbody').append(rowStuff);
        rowStuff = '';
        className = 'quoteResultGridRowWithAOS';
        row++;
    });
    loadnext(2, 3);

    $('#Step2PQ').addClass("hideit");
    $('#wizardcontent2').removeClass("ajaxContainer");
}

function BuildPossibleQtyPostBack() {
    var dataString = ';;;possibleQtyAry:::';
    //GenericAttributes
    for (var i = 0; i < 5; i++) {
        try {
            dataString = dataString + $("input#possibleQty_" + i.toString()).val();
        }
        catch (e) {
            dataString = dataString + '0';
        }
        if (i < 4) {
            dataString = dataString + ',';
        }
    }
    return dataString;
}

function SetupPossibleQtyValidation() {
    for (var i = 0; i < 5; i++) {
        try {
            $("#possibleQty_" + i.toString()).rules("add", { required: true, digits: true, min: 0 });
        }
        catch (e) {
        }
    }
}



function GetFinalStep() {
    $('#Step4PQ').removeClass("hideit");
    $('#wizardcontent4').addClass("ajaxContainer");
    $.ajax({
        type: "POST",
        url: "ProQuoteWebService.asmx/GetFinalStep",
        data: "{QS:'" + BuildPostBackString() + ";;;StepNo:::POSTAOS', proquoteattribute:'" + $('#proquoteattribute').val() + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            LoadGetFinalStep(msg.d)
        }
    });
    $('#finalDetailsErrorSpan').html('');
    $('#finalDetailsErrorSpan').hide();
     return false;
}

function LoadGetFinalStep(msg) {
    var className = 'quoteResultGridRow';
    var rowStuff = '';

    $.each(msg, function() {
        if (this['AOSError'] == '') {
            $('#aosErrorSpan').html('');
            loadnext(4, 5);
            LoadFinalDetails($('input[name=rblProductType]:checked').val(), msg);
            return false;
        }
        else {
            $('#aosErrorSpan').html(this['AOSError']);
            GetAOS();
            return false;
        }

    });


    $('#Step4PQ').addClass("hideit");
    $('#wizardcontent4').removeClass("ajaxContainer");
}

function GetUpdatedPricesForAOSStep() {
    $('#Step4PQ').removeClass("hideit");
    $('#wizardcontent4').addClass("ajaxContainer");
    $.ajax({
        type: "POST",
        url: "ProQuoteWebService.asmx/GetFinalStep",
        data: "{QS:'" + BuildPostBackString() + ";;;StepNo:::POSTAOS', proquoteattribute:'" + $('#proquoteattribute').val() + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            LoadUpdatedPricesForAOSStep(msg.d)
        }
    });
    return false;
}

function LoadUpdatedPricesForAOSStep(msg) {
    var className = 'quoteResultGridRow';
    var rowStuff = '';

    $.each(msg, function() {

        $('#aosErrorSpan').html(this['AOSError']);
        GetAOS();
        return false;

    });


    $('#Step4PQ').addClass("hideit");
    $('#wizardcontent4').removeClass("ajaxContainer");
}

function BuildPostBackString() {

    var dataString = 'rblProductType:::' + $('input[name=rblProductType]:checked').val();

    dataString = dataString + ';;;CustomerID:::' + $("input#CustomerID").val();
    dataString = dataString + ';;;SkinID:::' + $("input#SkinID").val();
    dataString = dataString + ';;;CategoryID:::' + $("input#CategoryID").val();
    dataString = dataString + ';;;ProductID:::' + $("input#ProductID").val();
    dataString = dataString + ';;;SessionNamePrefix:::' + $("input#SessionNamePrefix").val();

    //GenericAttributes
    dataString = dataString + GenericAttributePostBackString();
    switch ($('input[name=rblProductType]:checked').val()) {
        case '421': // Hat Bracket
            dataString = dataString + AttributePostBackStringHat();
            break;
        case '426': // L Bracket
            dataString = dataString + AttributePostBackStringL();
            break;
        case '423': // Pan
            dataString = dataString + AttributePostBackStringPan();
            break;
        case '427': // Pan (2 Sided)
            dataString = dataString + AttributePostBackStringPan2Sided();
            break;
        case '422': // Pan (3 Sided)
            dataString = dataString + AttributePostBackStringPan3Sided();
            break;
        case '419': // Plate
            dataString = dataString + AttributePostBackStringPlate();
            break;
        case '418': // Round Plate
            dataString = dataString + AttributePostBackStringRoundPlate();
            break;
        case '420': // Single Wing U
            dataString = dataString + AttributePostBackStringSWU();
            break;
        case '425': // U Bracket
            dataString = dataString + AttributePostBackStringU();
            break;
        case '424': // Z Bracket
            dataString = dataString + AttributePostBackStringZ();
            break;
        case '600': // Drip Pan
            dataString = dataString + AttributePostBackStringDripPan();
            break;
        case '605': // Machine Guard
            dataString = dataString + AttributePostBackStringMachineGuard();
            break;
        default:
            break;
    }

    dataString = dataString + AddOnServicesPostBackString();
    dataString = dataString + FinalDetailsAttributePostBackString($('input[name=rblProductType]:checked').val());
    dataString = dataString + BuildPossibleQtyPostBack();
    return $.URLEncode(dataString);

}


/* Main Driver End */

/* Add On Services End */

function AddOnServicesPostBackString() {
    var dataString = '';
    //AOS DropDowns
    try {
        dataString = dataString + ';;;ddlAddOnService_1:::' + $("select#ddlAddOnService_1").val();
    } catch (e) { }
    try {
        dataString = dataString + ';;;ddlAddOnService_13:::' + $("select#ddlAddOnService_13").val();
    } catch (e) { }
    try {
        dataString = dataString + ';;;ddlAddOnService_110:::' + $("select#ddlAddOnService_110").val();
    } catch (e) { }
    try {
        dataString = dataString + ';;;ddlAddOnService_22:::' + $("select#ddlAddOnService_22").val();
    } catch (e) { }
    try {
        dataString = dataString + ';;;ddlAddOnService_23:::' + $("select#ddlAddOnService_23").val();
    } catch (e) { }
    try {
        dataString = dataString + ';;;ddlAddOnService_24:::' + $("select#ddlAddOnService_24").val();
    } catch (e) { }
    try {
        dataString = dataString + ';;;ddlAddOnService_27:::' + $("select#ddlAddOnService_27").val();
    } catch (e) { }
    return dataString;
}
/* Add On Services End */


/* Final Details Begin */

function LoadFinalDetails(productTypeID, msg) {

    SetupHolesGrid(productTypeID, msg);
    SetupFinalDetailsAttributesValidation();
    LoadFinalDetailsFromMsg(msg);

    if ((HoleCount() > 0) && ($("#CustomerDrawingUploaded").val() != 'true')) {
        $("#fileNote").show();
    }
    else {
        $("#fileNote").hide();
        if ($("#CustomerDrawingUploaded").val() == 'true') {

            var button = $('#button1');
            button.text('Replace File');

        }
    }

    $('#imgHoles').attr('src', '/Images/ProductImages/PTLF_' + productTypeID + '.jpg');
}


function LoadFinalDetailsFromMsg(msg) {

    var row = 0;

    $.each(msg, function() {
        if (row == 0) {
            //Some data is in each row but we only need it in row 1.
            $("#Attribute_19").val(this['CustomerPartNumber']); //part number
            $("#Attribute_24").val(this['EngineeringNotes']); //engineering notes
            $("#Attribute_132").val(this['ProductDescription']); //description
            $("#Attribute_133").val(this['ProductUses']); //uses
            $("#CustomerDrawingUploaded").val(this['FileExists']); // customer uploaded a drawing (true or false)
            $("#tbAnnualUsesFinal").val($("#tbAnnualUses").val());


            row++;
        }
    });
}

function SetupFinalDetailsAttributesValidation() {
    $("#Attribute_132").rules("add", { required: true });
    $("#Attribute_133").rules("add", { required: true });
    $("#tbAnnualUsesFinal").rules("add", { required: true, digits: true, min: 1 });
}

function ClearHoles() {
    $('.holeRow').remove();
}

//Set up Hole Grid
function SetupHolesGrid(productTypeID, msg) {
    var numberOfFlanges = GetNumberOfFlanges(productTypeID);
    $('.holeRow').remove();

    weHaveHoles = false;

    for (var flange = 0; flange < numberOfFlanges; flange++) {

        var numberOfHoles = parseInt($("#tbNumberOfHoles" + (flange + 1)).val());
        var rowStuff = '';
        for (var holeNumber = 0; holeNumber < numberOfHoles; holeNumber++) {
            //build row
            weHaveHoles = true;
            rowStuff = rowStuff + '<tr class="holeRow"><td nowrap="true">Sub Part ' + (parseInt(flange) + 1) + ' - Hole ' + (holeNumber + 1) + ':</td>';
            rowStuff = rowStuff + '<td><input onFocus="this.select()" onChange="if (this.value.charAt(0) == \'.\') {myValue=this.value; this.value = \'0\' + myValue;}" name="' + flange + '_' + holeNumber + '_Diameter" class="AttributeInput" type="text" value="0" maxlength="6" size="6" id="' + flange + '_' + holeNumber + '_Diameter" /></td>';
            rowStuff = rowStuff + '<td><input onFocus="this.select()" onChange="if (this.value.charAt(0) == \'.\') {myValue=this.value; this.value = \'0\' + myValue;}" name="' + flange + '_' + holeNumber + '_X" type="text" value="0" maxlength="6" size="6" id="' + flange + '_' + holeNumber + '_X" /></td>';
            rowStuff = rowStuff + '<td><input onFocus="this.select()" onChange="if (this.value.charAt(0) == \'.\') {myValue=this.value; this.value = \'0\' + myValue;}" name="' + flange + '_' + holeNumber + '_Y" type="text" value="0" maxlength="6" size="6" id="' + flange + '_' + holeNumber + '_Y" /></td>';
            rowStuff = rowStuff + '<td><select name="' + flange + '_' + holeNumber + '_Countersunk" id="' + flange + '_' + holeNumber + '_Countersunk" class="countersunkhole"><option selected="selected" value="0">No</option><option value="1">Yes</option></select></td>';
            rowStuff = rowStuff + '<td><select name="' + flange + '_' + holeNumber + '_Tapped" id="' + flange + '_' + holeNumber + '_Tapped"  class="tappedhole"><option selected="selected" value="0">No</option><option value="1">Yes</option></select></td>';
            rowStuff = rowStuff + '<td><select name="' + flange + '_' + holeNumber + '_HoleSizeLookupID" id="' + flange + '_' + holeNumber + '_HoleSizeLookupID"><option selected="selected" value="0">None</option><option value="1">4-40</option><option value="2">5-40</option><option value="3">6-32</option><option value="4">6-40</option><option value="5">8-32</option><option value="6">10-24</option><option value="7">10-32</option><option value="8">1/4-20</option><option value="9">1/4-28</option><option value="11">5/16-18</option><option value="12">5/16-24</option><option value="13">3/8-16</option><option value="14">1/2-13</option><option value="15">5/8-11</option><option value="16">3/4-10</option><option value="17">M3x.5</option><option value="18">M4x.7</option><option value="19">M5x.8</option><option value="20">M6x1</option><option value="21">M8x1.25</option><option value="22">M10x1.5</option><option value="23">M12x1.75</option></select></td></tr>';
            $('#tblHoles > tbody').append(rowStuff);

            rowStuff = '';
            //Only require these if there are holes and no drawing present.
            if ((HoleCount() > 0) && ($("#CustomerDrawingUploaded").val() != 'true')) {
                $("#" + flange + "_" + holeNumber + "_Diameter").rules("add", { required: true, number: true, min: 0.01 });
                $("#" + flange + "_" + holeNumber + "_X").rules("add", { required: true, number: true, min: 0.01 });
                $("#" + flange + "_" + holeNumber + "_Y").rules("add", { required: true, number: true, min: 0.01 });
            }
        }
    }

    $('#holeDef').removeClass('hideit');
    $('#holeDef').removeClass('showit');
    if (weHaveHoles) {
        $('#holeDef').addClass('showit');
        LoadHoleGridValues(msg);
    }
    else {
        $('#holeDef').addClass('hideit');
    }
}

function ClearFinalDetails() {
    //Customer Part Number
    $("#Attribute_19").val('');
    //Engineering Notes
    $("#Attribute_24").val('');
    //Product Description
    $("#Attribute_132").val('');
    //Product Uses
    $("#Attribute_133").val('');
}

function FinalDetailsAttributePostBackString(productTypeID) {
    var dataString = '';
    //Customer Part Number
    dataString = dataString + ';;;Attribute_19:::' + $("#Attribute_19").val();
    //Engineering Notes
    dataString = dataString + ';;;Attribute_24:::' + $("#Attribute_24").val();
    //Product Description
    dataString = dataString + ';;;Attribute_132:::' + $("#Attribute_132").val();
    //Product Uses
    dataString = dataString + ';;;Attribute_133:::' + $("#Attribute_133").val();

    //Load the Holes
    dataString = dataString + LoadFlangeHolesPostBackString(productTypeID);
    return dataString;
}

function GetNumberOfFlanges(productTypeID) {
    var numberOfFlanges = 0;

    switch (productTypeID) {
        case '421':  // Hat Bracket
            numberOfFlanges = 5;
            break;
        case '426': // L Bracket
            numberOfFlanges = 2;
            break;
        case '423': // Pan
            numberOfFlanges = 5;
            break;
        case '427': // Pan (2 Sided)
            numberOfFlanges = 3;
            break;
        case '422': // Pan (3 Sided)
            numberOfFlanges = 4;
            break;
        case '419': // Plate
            numberOfFlanges = 1;
            break;
        case '418': // Round Plate
            numberOfFlanges = 1;
            break;
        case '420': // Single Wing U
            numberOfFlanges = 4;
            break;
        case '425': // U Bracket
            numberOfFlanges = 3;
            break;
        case '424': // Z Bracket
            numberOfFlanges = 3;
            break;
        case '600': // Drip Pan
            numberOfFlanges = 5;
            break;
        case '605': // Machine Guard
            numberOfFlanges = 16;
            break;
        default:
    }

    return numberOfFlanges;
}

function LoadFlangeHolesPostBackString(productTypeID) {
    var dataString = '';
    var numberOfFlanges = GetNumberOfFlanges(productTypeID);

    for (var flange = 1; flange <= numberOfFlanges; flange++) {
        dataString = dataString + LoadFlangePostBackString(flange);
    }
    return dataString;
}

function LoadFlangePostBackString(flangeNumber) {
    var dataString = '';
    //get the number of holes and loop through them and build it
    var numberOfHoles = parseInt($("#tbNumberOfHoles" + flangeNumber).val());
    for (var i = 0; i < numberOfHoles; i++) {
        dataString = dataString + LoadFlangeHoleNumberPostBackString(flangeNumber, i);
    }
    return dataString;
}

function LoadFlangeHoleNumberPostBackString(flangeNumber, holeNumber) {
    var dataString = '';
    try {
        dataString = dataString + ';;;' + flangeNumber + '_' + holeNumber + '_Diameter:::' + $("input#" + flangeNumber + "_" + holeNumber + "_Diameter").val();
        dataString = dataString + ';;;' + flangeNumber + '_' + holeNumber + '_X:::' + $("input#" + flangeNumber + "_" + holeNumber + "_X").val();
        dataString = dataString + ';;;' + flangeNumber + '_' + holeNumber + '_Y:::' + $("input#" + flangeNumber + "_" + holeNumber + "_Y").val();
        dataString = dataString + ';;;' + flangeNumber + '_' + holeNumber + '_Countersunk:::' + $("select#" + flangeNumber + "_" + holeNumber + "_Countersunk").val();
        dataString = dataString + ';;;' + flangeNumber + '_' + holeNumber + '_Tapped:::' + $("select#" + flangeNumber + "_" + holeNumber + "_Tapped").val();
        dataString = dataString + ';;;' + flangeNumber + '_' + holeNumber + '_HoleSizeLookupID:::' + $("select#" + flangeNumber + "_" + holeNumber + "_HoleSizeLookupID").val();
    }
    catch (e) {
    }
    return dataString;
}

function GetHoleDefaults() {
    $.ajax({
        type: "POST",
        url: "ProQuoteWebService.asmx/PopulateHoleDefaults",
        data: "{QS:'" + BuildPostBackString() + "', proquoteattribute:'" + $('#proquoteattribute').val() + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            LoadHoleGridValues(msg.d)
        }
    });
}

function LoadHoleGridValues(msg) {
    var flange = -1;
    var holeNumber = 0;
    var prevPTAID = "0";
    $.each(msg, function() {
        $.each(this['HoleList'], function() {
            if (prevPTAID != this['ProductTypeAttributeID']) {
                flange++;
                holeNumber = 0;
                prevPTAID = this['ProductTypeAttributeID'];
            }
            while ($("#" + flange + "_" + this['SortOrder'] + "_X").length == 0) {
                flange++;
            }
            $("#" + flange + "_" + this['SortOrder'] + "_X").val(this['X']);
            $("#" + flange + "_" + this['SortOrder'] + "_Y").val(this['Y']);
            $("#" + flange + "_" + this['SortOrder'] + "_Diameter").val(this['Diameter']);
            $("#" + flange + "_" + this['SortOrder'] + "_Countersunk").val(this['Countersunk']);
            $("#" + flange + "_" + this['SortOrder'] + "_Tapped").val(this['Tapped']);
            $("#" + flange + "_" + this['SortOrder'] + "_HoleSizeLookupID").val(this['HoleSizeLookupID']);
            holeNumber++;
        });
    });
}



$(document).ready(function() {

    /* example 1 */
    var button = $('#button1'), interval;
    new AjaxUpload(button, {
        //action: 'upload-test.php', // I disabled uploads in this example for security reasons
        action: "AjaxFileUploadHandler.ashx?pfx=" + $("#SessionNamePrefix").val() + "&skinid=" + $("#SkinID").val() + "&proquoteattribute=" + $('#proquoteattribute').val(),
        name: 'myfile',
        onSubmit: function(file, ext) {

            if (!(ext && /^(iges|igs|eprt|rpt|pdf|jpg|gif|dwg|plt|dxf|sldprt|tif|tiff)$/.test(ext))) {
                // extension is not allowed
                alert('Error: invalid file extension. \r \n valid types: iges; igs; eprt; rpt; pdf; jpg; \r \n gif; dwg; plt; dxf; sldprt; tif; tiff');
                // cancel upload
                return false;
            }

            if ($("#CustomerDrawingUploaded").val() == 'true') {

                if (confirm('A file already exists for this part.  Do you want to overwrite the existing file?')) {
                }
                else {
                    return false;
                }
            }
            $("#fileResponse").html('');

            // change button text, when user selects file
            button.text('Uploading');


            // If you want to allow uploading only 1 file at time,
            // you can disable upload button
            this.disable();

            // Uploding -> Uploading. -> Uploading...
            interval = window.setInterval(function() {
                var text = button.text();
                if (text.length < 13) {
                    button.text(text + '.');
                } else {
                    button.text('Uploading');
                }
            }, 200);
        },
        onComplete: function(file, response) {
            button.text('Upload');
            window.clearInterval(interval);

            // enable upload button
            this.enable();

            $("#CustomerDrawingUploaded").val("true");
            button.text('Replace File');

            if (response.toString().indexOf('success', 0) >= 0) {
                $("#fileResponse").removeClass("error");
                $("#fileResponse").addClass("success");
                $("#fileResponse").html('File Uploaded Successfully');
            }
            else {
                $("#fileResponse").addClass("error");
                $("#fileResponse").removeClass("success");
                $("#fileResponse").html(response.toString());
            }


        }
    });
});

/* Final Details End */

/* Generic Attributes Begin */

function SetupGenericAttributesValidation(productTypeID) {
    for (i = 1; i < 17; i++) {
        $("#tbNumberOfHoles" + i).rules("add", { required: true, digits: true, min: 0 });
    }

    $("#tbEmail").rules("add", { required: true, email: true });
    $("#tbAnnualUses").rules("add", { required: true, digits: true, min: 1 });
    $("#ddlMaterialSize").rules("add", { required: true });
    if ($('#Attribute_158').length != 0) {
        $("#Attribute_158").rules("add", { required: true, number: true });
    }
    if ($('#Attribute_160').length != 0) {
        $("#Attribute_160").rules("add", { required: true, number: true });
    }
}

function ClearGenericAttributes() {
    //set all dynamic inputs to 0
    $(".AttributeInput").val('0');
    $(".AttributeInputAngle").val('90');
}



function SetupGenericAttributes(productTypeID) {

    for (i = 1; i < 17; i++) {
        $("#spanNumberOfHoles" + i).hide();
    }

    switch (productTypeID) {
        case '421':  // Hat Bracket
            $("#spanNumberOfHoles1").show();
            $("#spanNumberOfHoles2").show();
            $("#spanNumberOfHoles3").show();
            $("#spanNumberOfHoles4").show();
            $("#spanNumberOfHoles5").show();
            break;
        case '426': // L Bracket
            $("#spanNumberOfHoles1").show();
            $("#spanNumberOfHoles2").show();
            break;
        case '423': // Pan
            $("#spanNumberOfHoles1").show();
            $("#spanNumberOfHoles2").show();
            $("#spanNumberOfHoles3").show();
            $("#spanNumberOfHoles4").show();
            $("#spanNumberOfHoles5").show();
            break;
        case '427': // Pan (2 Sided)
            $("#spanNumberOfHoles1").show();
            $("#spanNumberOfHoles2").show();
            $("#spanNumberOfHoles3").show();
            break;
        case '422': // Pan (3 Sided)
            $("#spanNumberOfHoles1").show();
            $("#spanNumberOfHoles2").show();
            $("#spanNumberOfHoles3").show();
            $("#spanNumberOfHoles4").show();
            break;
        case '419': // Plate
            $("#spanNumberOfHoles1").show();
            break;
        case '418': // Round Plate
            $("#spanNumberOfHoles1").show();
            break;
        case '420': // Single Wing U
            $("#spanNumberOfHoles1").show();
            $("#spanNumberOfHoles2").show();
            $("#spanNumberOfHoles3").show();
            $("#spanNumberOfHoles4").show();
            break;
        case '425': // U Bracket
            $("#spanNumberOfHoles1").show();
            $("#spanNumberOfHoles2").show();
            $("#spanNumberOfHoles3").show();
            break;
        case '424': // Z Bracket
            $("#spanNumberOfHoles1").show();
            $("#spanNumberOfHoles2").show();
            $("#spanNumberOfHoles3").show();
            break;
        case '600': // DRip Pan
            $("#spanNumberOfHoles1").show();
            $("#spanNumberOfHoles2").show();
            $("#spanNumberOfHoles3").show();
            $("#spanNumberOfHoles4").show();
            $("#spanNumberOfHoles5").show();
            break;
        case '605': // Machine Guard
            if ($("#CustomProQuote").val() == "1") {
                //Standard Machine Guard Types
                for (i = 1; i < 5; i++) {
                    $("#spanNumberOfHoles" + i).show();
                    $("#spanNumberOfHoles" + i + "Label").html($("#spanNumberOfHoles" + i + "Label").html().replace('Flange', 'Edge'));
                    $("#lblNotes").hide();
                    //$("#edrawingView").hide();
                    $("#ctl76_trAltImages").hide();
                    $("#edrawingView").hide();
                    $("#spanMaterialType").hide();
                    $("#spanMaterialSize").hide();
                }
            }
            else {
                for (i = 1; i < 17; i++) {
                    $("#spanNumberOfHoles" + i).show();
                    $("#spanNumberOfHoles" + i + "Label").html($("#spanNumberOfHoles" + i + "Label").html().replace('Flange', 'Edge'));
                }
            }


            break;
        default:
    }
}

function GenericAttributePostBackString() {
    var dataString = '';
    //GenericAttributes
    dataString = dataString + ';;;ddlMaterialType:::' + $("select#ddlMaterialType").val();
    dataString = dataString + ';;;ddlMaterialSize:::' + $("select#ddlMaterialSize").val();
    dataString = dataString + ';;;tbAnnualUses:::' + $("input#tbAnnualUses").val();
    dataString = dataString + ';;;tbEmail:::' + $("input#tbEmail").val();
    if ($('#Attribute_158').length != 0) {
        dataString = dataString + ';;;Attribute_158:::' + $("#Attribute_158").val();
    }
    if ($('#Attribute_159').length != 0) {
        dataString = dataString + ';;;Attribute_159:::' + $("#Attribute_159").val();
    }
    if ($('#Attribute_160').length != 0) {
        dataString = dataString + ';;;Attribute_160:::' + $("#Attribute_160").val();
    }
    if ($('#Attribute_161').length != 0) {
        dataString = dataString + ';;;Attribute_161:::' + $("#Attribute_161").val();
    }
    return dataString;
}


$().ready(function() {
    var RMID = $("select#ddlMaterialType").val();
    var RMSV = "";
    $("#ddlMaterialSize").html("");
    if ($("#ProductID").val() == "0") {
        $.ajax({
            type: "POST",
            url: "ProQuoteWebService.asmx/GetRawMaterialSizes",
            data: "{ID:'" + RMID + "', RMSV:'" + RMSV + "', proquoteattribute:'" + $('#proquoteattribute').val() + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg) {
                BindddlRawMaterialSize(msg.d)
            }

        });
    }
    $("#ddlMaterialType").change(function() {
        var RMID = $("select#ddlMaterialType").val();
        var RMSV = $('#ddlMaterialSize :selected').text();
        $("#ddlMaterialSize").html("");
        $.ajax({
            type: "POST",
            url: "ProQuoteWebService.asmx/GetRawMaterialSizes",
            data: "{ID:'" + RMID + "', RMSV:'" + RMSV + "', proquoteattribute:'" + $('#proquoteattribute').val() + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg) {
                BindddlRawMaterialSize(msg.d)
            }
        });
    });
});

function BindddlRawMaterialSize(msg) {
    var selectedOption = '';
    $.each(msg, function() {
        if ($("#CDRawMaterialSizeList").val() != "") {

            if (ShowRawMaterialSize(this['RawMaterialSizeID'])) {
                $("#ddlMaterialSize").append($("<option></option>").val(this['RawMaterialSizeID']).html(this['RawMaterialSizeText']));
                if (this['Selected'] == 'Y') {
                    selectedOption = this['RawMaterialSizeID'];
                }
            }
        }
        else {
            $("#ddlMaterialSize").append($("<option></option>").val(this['RawMaterialSizeID']).html(this['RawMaterialSizeText']));
            if (this['Selected'] == 'Y') {
                selectedOption = this['RawMaterialSizeID'];
            }
        }
    });

    $("#ddlMaterialSize").val(selectedOption);
}

function ShowRawMaterialSize(rmsID) {

    if ($("#CDRawMaterialSizeList").val() == "") {
        //Show all if nothing is passed.
        return true;
    }
    else {
        if ($.inArray(rmsID, $("#CDRawMaterialSizeList").val().split(",")) > -1) {
            return true;
        }
        else {
            return false;
        }
    }
}

/* Generic Attributes End */

/* Hat Bracket  Begin */
function ValidationHat(productTypeID) {
    switch (productTypeID) {
        case '421': // Hat Bracket
            $("#aspnetForm").validate({
                rules: {
                    Attribute_214: { required: true, number: true, min: 0.01 },
                    Attribute_215: { required: true, number: true, min: 0.01 },
                    Attribute_216: { required: true, number: true, min: 0.01 },
                    Attribute_217: { required: true, number: true, min: 0.01 },
                    Attribute_203: { required: true, number: true, min: 0.01 },
                    Attribute_205: { required: true, number: true, min: 0.01 },
                    Attribute_207: { required: true, number: true, min: 0.01 },
                    Attribute_209: { required: true, number: true, min: 0.01 },
                    Attribute_212: { required: true, number: true, min: 0.01 }
                }
            });
            break;
        default:
    }
}

function AttributePostBackStringHat() {
    var dataString = '';
    //GenericAttributes
    dataString = dataString + ';;;Attribute_131:::' + $("select#Attribute_131_421").val();
    dataString = dataString + ';;;Attribute_214:::' + $("input#Attribute_214").val();
    dataString = dataString + ';;;Attribute_215:::' + $("input#Attribute_215").val();
    dataString = dataString + ';;;Attribute_216:::' + $("input#Attribute_216").val();
    dataString = dataString + ';;;Attribute_217:::' + $("input#Attribute_217").val();
    dataString = dataString + ';;;Attribute_203:::' + $("input#Attribute_203").val();
    dataString = dataString + ';;;Attribute_205:::' + $("input#Attribute_205").val();
    dataString = dataString + ';;;Attribute_207:::' + $("input#Attribute_207").val();
    dataString = dataString + ';;;Attribute_209:::' + $("input#Attribute_209").val();
    dataString = dataString + ';;;Attribute_212:::' + $("input#Attribute_212").val();
    dataString = dataString + ';;;tbNumberOfHoles1:::' + $("input#tbNumberOfHoles1").val();
    dataString = dataString + ';;;tbNumberOfHoles2:::' + $("input#tbNumberOfHoles2").val();
    dataString = dataString + ';;;tbNumberOfHoles3:::' + $("input#tbNumberOfHoles3").val();
    dataString = dataString + ';;;tbNumberOfHoles4:::' + $("input#tbNumberOfHoles4").val();
    dataString = dataString + ';;;tbNumberOfHoles5:::' + $("input#tbNumberOfHoles5").val();

    return dataString;
}


/* Hat Bracket End */

/* L Bracket  Begin */

function ValidationL(productTypeID) {
    switch (productTypeID) {
        case '426': // L Bracket
            $("#aspnetForm").validate({
                rules: {
                    Attribute_272: { required: true, number: true, min: 0.01 },
                    Attribute_265: { required: true, number: true, min: 0.01 },
                    Attribute_266: { required: true, number: true, min: 0.01 },
                    Attribute_267: { required: true, number: true, min: 0.01 },
                    Attribute_268: { required: true, number: true, min: 0.01 }
                }
            });
            break;
        default:
    }
}

function AttributePostBackStringL() {
    var dataString = '';
    //GenericAttributes
    dataString = dataString + ';;;Attribute_131:::' + $("select#Attribute_131_426").val();
    dataString = dataString + ';;;Attribute_272:::' + $("input#Attribute_272").val();
    dataString = dataString + ';;;Attribute_265:::' + $("input#Attribute_265").val();
    dataString = dataString + ';;;Attribute_266:::' + $("input#Attribute_266").val();
    dataString = dataString + ';;;Attribute_267:::' + $("input#Attribute_267").val();
    dataString = dataString + ';;;Attribute_268:::' + $("input#Attribute_268").val();
    dataString = dataString + ';;;tbNumberOfHoles1:::' + $("input#tbNumberOfHoles1").val();
    dataString = dataString + ';;;tbNumberOfHoles2:::' + $("input#tbNumberOfHoles2").val();

    return dataString;
}

/* L Bracket End */

/* Drip Pan Bracket  Begin */
function ValidationDripPan(productTypeID) {
    switch (productTypeID) {
        case '600': // Pan
            $("#aspnetForm").validate({
                rules: {
                    Attribute_411: { required: true, number: true, min: 0.01 },
                    Attribute_413: { required: true, number: true, min: 0.01 },
                    Attribute_418: { required: true, number: true, min: 0.01 }
                }

            });
            break;
        default:
    }
}

function AttributePostBackStringDripPan() {
    var dataString = '';
    //GenericAttributes
    dataString = dataString + ';;;Attribute_131:::' + $("select#Attribute_131_600").val();
    dataString = dataString + ';;;Attribute_411:::' + $("input#Attribute_411").val();
    dataString = dataString + ';;;Attribute_413:::' + $("input#Attribute_413").val();
    dataString = dataString + ';;;Attribute_418:::' + $("input#Attribute_418").val();
    dataString = dataString + ';;;tbNumberOfHoles1:::' + $("input#tbNumberOfHoles1").val();
    dataString = dataString + ';;;tbNumberOfHoles2:::' + $("input#tbNumberOfHoles2").val();
    dataString = dataString + ';;;tbNumberOfHoles3:::' + $("input#tbNumberOfHoles3").val();
    dataString = dataString + ';;;tbNumberOfHoles4:::' + $("input#tbNumberOfHoles4").val();
    dataString = dataString + ';;;tbNumberOfHoles5:::' + $("input#tbNumberOfHoles5").val();
    return dataString;
}
/* Drip Pan Bracket End */


/* Machine Guard  Begin */
function ValidationMachineGuard(productTypeID) {

    switch (productTypeID) {
        case '605': // Machine Guard
            if ($("#CustomProQuote").val() == "1") {

                $("#aspnetForm").validate({
                    rules: {
                        Attribute_478: { required: true },
                        Attribute_426: { required: true, number: true, min: 0.00 },
                        Attribute_428: { required: true, number: true, min: 0.00 },
                        Attribute_429: { number: true, min: 0.00 },
                        Attribute_431: { number: true, min: 0.00 },
                        Attribute_434: { number: true, min: 0.00 },
                        Attribute_437: { number: true, min: 0.00 },
                        Attribute_440: { number: true, min: 0.00 },
                        Attribute_443: { number: true, min: 0.00 },
                        Attribute_446: { number: true, min: 0.00 },
                        Attribute_449: { number: true, min: 0.00 },
                        Attribute_452: { number: true, min: 0.00 },
                        Attribute_455: { number: true, min: 0.00 },
                        Attribute_458: { number: true, min: 0.00 },
                        Attribute_461: { number: true, min: 0.00 },
                        Attribute_464: { number: true, min: 0.00 },
                        Attribute_467: { number: true, min: 0.00 },
                        Attribute_470: { number: true, min: 0.00 },
                        Attribute_473: { number: true, min: 0.00 },
                        Attribute_476: { required: true, number: true, min: 0.00 }
                    }
                });
            }
            else {
                $("#aspnetForm").validate({
                    rules: {
                        Attribute_426: { required: true, number: true, min: 0.01 },
                        Attribute_428: { required: true, number: true, min: 0.01 },
                        Attribute_429: { required: true, number: true, min: 0.01 },
                        Attribute_431: { required: true, number: true, min: 0.01 },
                        Attribute_434: { required: true, number: true, min: 0.01 },
                        Attribute_437: { number: true, min: 0.00 },
                        Attribute_440: { number: true, min: 0.00 },
                        Attribute_443: { number: true, min: 0.00 },
                        Attribute_446: { number: true, min: 0.00 },
                        Attribute_449: { number: true, min: 0.00 },
                        Attribute_452: { number: true, min: 0.00 },
                        Attribute_455: { number: true, min: 0.00 },
                        Attribute_458: { number: true, min: 0.00 },
                        Attribute_461: { number: true, min: 0.00 },
                        Attribute_464: { number: true, min: 0.00 },
                        Attribute_467: { number: true, min: 0.00 },
                        Attribute_470: { number: true, min: 0.00 },
                        Attribute_473: { number: true, min: 0.00 },
                        Attribute_476: { required: true, number: true, min: 0.00 }
                    }
                });
            }



            break;
        default:
    }
}

function AttributePostBackStringMachineGuard() {

    //Machine Guard
    var dataString = '';
    //GenericAttributes
    dataString = dataString + ';;;Attribute_131:::' + $("select#Attribute_131_605").val();
    dataString = dataString + ';;;Attribute_478:::' + $("select#Attribute_478").val();
    dataString = dataString + ';;;Attribute_479:::' + $("select#Attribute_479").val();

    if ($("#CustomProQuote").val() == "1") {
        //if we are standard, then set the lengths and widths to what the blanks are
        $('#Attribute_429').val($("#Attribute_426").val());
        $('#Attribute_430').val($("#Attribute_428").val());
        $('#Attribute_434').val($("#Attribute_428").val());
        $('#Attribute_437').val($("#Attribute_428").val());
        $('#Attribute_431').val($("#Attribute_426").val());
        $('#Attribute_432').val($("#Attribute_428").val());
        $('#Attribute_435').val($("#Attribute_428").val());
        $('#Attribute_438').val($("#Attribute_428").val());

    }

    SetWidthBasedOnLengthAndEdgeType(429, 430);
    SetWidthBasedOnLengthAndEdgeType(431, 432);
    SetWidthBasedOnLengthAndEdgeType(434, 435);
    SetWidthBasedOnLengthAndEdgeType(437, 438);
    SetWidthBasedOnLengthAndEdgeType(440, 441);
    SetWidthBasedOnLengthAndEdgeType(443, 444);
    SetWidthBasedOnLengthAndEdgeType(446, 447);
    SetWidthBasedOnLengthAndEdgeType(449, 450);
    SetWidthBasedOnLengthAndEdgeType(452, 453);
    SetWidthBasedOnLengthAndEdgeType(455, 456);
    SetWidthBasedOnLengthAndEdgeType(458, 459);
    SetWidthBasedOnLengthAndEdgeType(461, 462);
    SetWidthBasedOnLengthAndEdgeType(464, 465);
    SetWidthBasedOnLengthAndEdgeType(467, 468);
    SetWidthBasedOnLengthAndEdgeType(470, 471);
    SetWidthBasedOnLengthAndEdgeType(473, 474);

    dataString = dataString + GenericAttributeString(426);
    dataString = dataString + GenericAttributeString(428);
    dataString = dataString + GenericAttributeString(429);
    dataString = dataString + GenericAttributeString(430);
    dataString = dataString + GenericAttributeString(431);
    dataString = dataString + GenericAttributeString(432);
    dataString = dataString + GenericAttributeString(434);
    dataString = dataString + GenericAttributeString(435);
    dataString = dataString + GenericAttributeString(437);
    dataString = dataString + GenericAttributeString(438);
    dataString = dataString + GenericAttributeString(440);
    dataString = dataString + GenericAttributeString(441);
    dataString = dataString + GenericAttributeString(443);
    dataString = dataString + GenericAttributeString(444);
    dataString = dataString + GenericAttributeString(446);
    dataString = dataString + GenericAttributeString(447);
    dataString = dataString + GenericAttributeString(449);
    dataString = dataString + GenericAttributeString(450);
    dataString = dataString + GenericAttributeString(452);
    dataString = dataString + GenericAttributeString(453);
    dataString = dataString + GenericAttributeString(455);
    dataString = dataString + GenericAttributeString(456);
    dataString = dataString + GenericAttributeString(458);
    dataString = dataString + GenericAttributeString(459);
    dataString = dataString + GenericAttributeString(461);
    dataString = dataString + GenericAttributeString(462);
    dataString = dataString + GenericAttributeString(464);
    dataString = dataString + GenericAttributeString(465);
    dataString = dataString + GenericAttributeString(467);
    dataString = dataString + GenericAttributeString(468);
    dataString = dataString + GenericAttributeString(470);
    dataString = dataString + GenericAttributeString(471);
    dataString = dataString + GenericAttributeString(473);
    dataString = dataString + GenericAttributeString(474);
    dataString = dataString + GenericAttributeString(476);

    for (i = 0; i < 17; i++) {
        dataString = dataString + ';;;tbNumberOfHoles' + i + ':::' + $("input#tbNumberOfHoles" + i).val();
    }
    return dataString;
}

function SetWidthBasedOnLengthAndEdgeType(edLength, edWidth) {
    var defVal = 1;

    switch ($('#Attribute_478').attr('selectedIndex')) {
        case 0:
            defVal = '1';
            break;
        case 1:
            defVal = '1.5';
            break;
        case 2:
            defVal = '2';
            break;
    }

    if ($('#Attribute_' + edLength).val().length == 0 || $('#Attribute_' + edLength).val() == '0') {
        $('#Attribute_' + edLength).val('0');
        $('#Attribute_' + edWidth).val('0');
    }
    else {
        $('#Attribute_' + edWidth).val(defVal);
    }
}

function GenericAttributeString(attID) {
    return ';;;Attribute_' + attID + ':::' + $("input#Attribute_" + attID).val();
}

/* Machine Guard Bracket End */

/* Pan Bracket  Begin */
function ValidationPan(productTypeID) {
    switch (productTypeID) {
        case '423': // Pan
            $("#aspnetForm").validate({
                rules: {
                    Attribute_232: { required: true, number: true, min: 0.01 },
                    Attribute_230: { required: true, number: true, min: 0.01 },
                    Attribute_236: { required: true, number: true, min: 0.01 }
                }

            });
            break;
        default:
    }
}

function AttributePostBackStringPan() {
    var dataString = '';
    //GenericAttributes
    dataString = dataString + ';;;Attribute_131:::' + $("select#Attribute_131_423").val();
    dataString = dataString + ';;;Attribute_232:::' + $("input#Attribute_232").val();
    dataString = dataString + ';;;Attribute_230:::' + $("input#Attribute_230").val();
    dataString = dataString + ';;;Attribute_236:::' + $("input#Attribute_236").val();
    dataString = dataString + ';;;tbNumberOfHoles1:::' + $("input#tbNumberOfHoles1").val();
    dataString = dataString + ';;;tbNumberOfHoles2:::' + $("input#tbNumberOfHoles2").val();
    dataString = dataString + ';;;tbNumberOfHoles3:::' + $("input#tbNumberOfHoles3").val();
    dataString = dataString + ';;;tbNumberOfHoles4:::' + $("input#tbNumberOfHoles4").val();
    dataString = dataString + ';;;tbNumberOfHoles5:::' + $("input#tbNumberOfHoles5").val();
    return dataString;
}
/* Pan Bracket End */

/* Pan 2 Sided Bracket  Begin */

function ValidationPan2Sided(productTypeID) {
    switch (productTypeID) {
        case '427': // Pan (2 Sided)
            $("#aspnetForm").validate({
                rules: {
                    Attribute_280: { required: true, number: true, min: 0.01 },
                    Attribute_281: { required: true, number: true, min: 0.01 },
                    Attribute_283: { required: true, number: true, min: 0.01 },
                    Attribute_286: { required: true, number: true, min: 0.01 },
                    Attribute_290: { required: true, number: true, min: 0.01 },
                    Attribute_288: { required: true, number: true, min: 0.01 },
                    Attribute_287: { required: true, number: true, min: 0.01 }
                }
            });
            break;
        default:
    }
}

function AttributePostBackStringPan2Sided() {
    var dataString = '';
    //GenericAttributes
    dataString = dataString + ';;;Attribute_131:::' + $("select#Attribute_131_427").val();
    dataString = dataString + ';;;Attribute_280:::' + $("input#Attribute_280").val();
    dataString = dataString + ';;;Attribute_281:::' + $("input#Attribute_281").val();
    dataString = dataString + ';;;Attribute_283:::' + $("input#Attribute_283").val();
    dataString = dataString + ';;;Attribute_286:::' + $("input#Attribute_286").val();
    dataString = dataString + ';;;Attribute_290:::' + $("input#Attribute_290").val();
    dataString = dataString + ';;;Attribute_288:::' + $("input#Attribute_288").val();
    dataString = dataString + ';;;Attribute_287:::' + $("input#Attribute_287").val();
    dataString = dataString + ';;;tbNumberOfHoles1:::' + $("input#tbNumberOfHoles1").val();
    dataString = dataString + ';;;tbNumberOfHoles2:::' + $("input#tbNumberOfHoles2").val();
    dataString = dataString + ';;;tbNumberOfHoles3:::' + $("input#tbNumberOfHoles3").val();

    return dataString;
} /* Pan 2 Sided Bracket End */

/* Pan 3 Sided Bracket  Begin */

function ValidationPan3Sided(productTypeID) {
    switch (productTypeID) {
        case '422': // Pan (3 Sided)
            $("#aspnetForm").validate({
                rules: {
                    Attribute_222: { required: true, number: true, min: 0.01 },
                    Attribute_220: { required: true, number: true, min: 0.01 },
                    Attribute_225: { required: true, number: true, min: 0.01 }
                }
            });
            break;
        default:
    }
}

function AttributePostBackStringPan3Sided() {
    var dataString = '';
    //GenericAttributes
    dataString = dataString + ';;;Attribute_131:::' + $("select#Attribute_131_422").val();
    dataString = dataString + ';;;Attribute_222:::' + $("input#Attribute_222").val();
    dataString = dataString + ';;;Attribute_220:::' + $("input#Attribute_220").val();
    dataString = dataString + ';;;Attribute_225:::' + $("input#Attribute_225").val();
    dataString = dataString + ';;;tbNumberOfHoles1:::' + $("input#tbNumberOfHoles1").val();
    dataString = dataString + ';;;tbNumberOfHoles2:::' + $("input#tbNumberOfHoles2").val();
    dataString = dataString + ';;;tbNumberOfHoles3:::' + $("input#tbNumberOfHoles3").val();
    dataString = dataString + ';;;tbNumberOfHoles4:::' + $("input#tbNumberOfHoles4").val();
    return dataString;
}
/* Pan 3 Sided Bracket End */

/* Plate Bracket  Begin */
function ValidationPlate(productTypeID) {
    switch (productTypeID) {
        case '419': // Plate
            $("#aspnetForm").validate({
                rules: {
                    Attribute_184: { required: true, number: true, min: 0.01 },
                    Attribute_182: { required: true, number: true, min: 0.01 }
                }

            });
            break;
        default:
    }
}

function AttributePostBackStringPlate() {
    var dataString = '';
    //GenericAttributes
    dataString = dataString + ';;;Attribute_131:::' + $("select#Attribute_131_419").val();
    dataString = dataString + ';;;Attribute_184:::' + $("input#Attribute_184").val();
    dataString = dataString + ';;;Attribute_182:::' + $("input#Attribute_182").val();
    dataString = dataString + ';;;tbNumberOfHoles1:::' + $("input#tbNumberOfHoles1").val();

    return dataString;
}


/* Plate Bracket End */

/* PLate Round Bracket  Begin */

function ValidationRoundPlate(productTypeID) {
    switch (productTypeID) {
        case '418': // Round Plate
            $("#aspnetForm").validate({
                rules: {
                    Attribute_178: { required: true, number: true, min: 0.01 }
                }

            });
            break;
        default:
    }
}

function AttributePostBackStringRoundPlate() {
    var dataString = '';
    //GenericAttributes
    dataString = dataString + ';;;Attribute_131:::' + $("select#Attribute_131_418").val();
    dataString = dataString + ';;;Attribute_178:::' + $("input#Attribute_178").val();
    dataString = dataString + ';;;tbNumberOfHoles1:::' + $("input#tbNumberOfHoles1").val();
    return dataString;
}

/* PLate Round Bracket End */

/* SWU Bracket  Begin */

function ValidationSWU(productTypeID) {
    switch (productTypeID) {
        case '420': // Single Wing U
            $("#aspnetForm").validate({
                rules: {
                    Attribute_198: { required: true, number: true, min: 0.01 },
                    Attribute_199: { required: true, number: true, min: 0.01 },
                    Attribute_200: { required: true, number: true, min: 0.01 },
                    Attribute_190: { required: true, number: true, min: 0.01 },
                    Attribute_192: { required: true, number: true, min: 0.01 },
                    Attribute_194: { required: true, number: true, min: 0.01 },
                    Attribute_196: { required: true, number: true, min: 0.01 },
                    Attribute_188: { required: true, number: true, min: 0.01 }
                }

            });
            break;
        default:
    }
}

function AttributePostBackStringSWU() {
    var dataString = '';
    //GenericAttributes
    dataString = dataString + ';;;Attribute_131:::' + $("select#Attribute_131_420").val();
    dataString = dataString + ';;;Attribute_198:::' + $("input#Attribute_198").val();
    dataString = dataString + ';;;Attribute_199:::' + $("input#Attribute_199").val();
    dataString = dataString + ';;;Attribute_200:::' + $("input#Attribute_200").val();
    dataString = dataString + ';;;Attribute_190:::' + $("input#Attribute_190").val();
    dataString = dataString + ';;;Attribute_192:::' + $("input#Attribute_192").val();
    dataString = dataString + ';;;Attribute_194:::' + $("input#Attribute_194").val();
    dataString = dataString + ';;;Attribute_196:::' + $("input#Attribute_196").val();
    dataString = dataString + ';;;Attribute_188:::' + $("input#Attribute_188").val();
    dataString = dataString + ';;;tbNumberOfHoles1:::' + $("input#tbNumberOfHoles1").val();
    dataString = dataString + ';;;tbNumberOfHoles2:::' + $("input#tbNumberOfHoles2").val();
    dataString = dataString + ';;;tbNumberOfHoles3:::' + $("input#tbNumberOfHoles3").val();
    dataString = dataString + ';;;tbNumberOfHoles4:::' + $("input#tbNumberOfHoles4").val();
    return dataString;
}

/* SWU Bracket End */

/* U Bracket  Begin */
function ValidationU(productTypeID) {
    switch (productTypeID) {
        case '425': // U Bracket
            $("#aspnetForm").validate({
                rules: {
                    Attribute_261: { required: true, number: true, min: 0.01 },
                    Attribute_262: { required: true, number: true, min: 0.01 },
                    Attribute_254: { required: true, number: true, min: 0.01 },
                    Attribute_255: { required: true, number: true, min: 0.01 },
                    Attribute_257: { required: true, number: true, min: 0.01 },
                    Attribute_259: { required: true, number: true, min: 0.01 }
                }

            });
            break;
        default:
    }
}

function AttributePostBackStringU() {
    var dataString = '';
    //GenericAttributes
    dataString = dataString + ';;;Attribute_131:::' + $("select#Attribute_131_425").val();
    dataString = dataString + ';;;Attribute_261:::' + $("input#Attribute_261").val();
    dataString = dataString + ';;;Attribute_262:::' + $("input#Attribute_262").val();
    dataString = dataString + ';;;Attribute_254:::' + $("input#Attribute_254").val();
    dataString = dataString + ';;;Attribute_255:::' + $("input#Attribute_255").val();
    dataString = dataString + ';;;Attribute_257:::' + $("input#Attribute_257").val();
    dataString = dataString + ';;;Attribute_259:::' + $("input#Attribute_259").val();
    dataString = dataString + ';;;tbNumberOfHoles1:::' + $("input#tbNumberOfHoles1").val();
    dataString = dataString + ';;;tbNumberOfHoles2:::' + $("input#tbNumberOfHoles2").val();
    dataString = dataString + ';;;tbNumberOfHoles3:::' + $("input#tbNumberOfHoles3").val();
    return dataString;
}

/* U Bracket End */

/* Z Bracket  Begin */
function ValidationZ(productTypeID) {
    switch (productTypeID) {
        case '424': // Z Bracket
            $("#aspnetForm").validate({
                rules: {
                    Attribute_249: { required: true, number: true, min: 0.01 },
                    Attribute_250: { required: true, number: true, min: 0.01 },
                    Attribute_242: { required: true, number: true, min: 0.01 },
                    Attribute_244: { required: true, number: true, min: 0.01 },
                    Attribute_246: { required: true, number: true, min: 0.01 },
                    Attribute_247: { required: true, number: true, min: 0.01 }
                }
            });
            break;
        default:
    }
}

function AttributePostBackStringZ() {
    var dataString = '';
    //GenericAttributes
    dataString = dataString + ';;;Attribute_131:::' + $("select#Attribute_131_424").val();
    dataString = dataString + ';;;Attribute_249:::' + $("input#Attribute_249").val();
    dataString = dataString + ';;;Attribute_250:::' + $("input#Attribute_250").val();
    dataString = dataString + ';;;Attribute_242:::' + $("input#Attribute_242").val();
    dataString = dataString + ';;;Attribute_244:::' + $("input#Attribute_244").val();
    dataString = dataString + ';;;Attribute_246:::' + $("input#Attribute_246").val();
    dataString = dataString + ';;;Attribute_247:::' + $("input#Attribute_247").val();
    dataString = dataString + ';;;tbNumberOfHoles1:::' + $("input#tbNumberOfHoles1").val();
    dataString = dataString + ';;;tbNumberOfHoles2:::' + $("input#tbNumberOfHoles2").val();
    dataString = dataString + ';;;tbNumberOfHoles3:::' + $("input#tbNumberOfHoles3").val();
    return dataString;
}

/* Z Bracket End */
