﻿/// <reference path="jquery-1.3.2.min.js" />

var $j = jQuery.noConflict();
var $$ = $j.fn;

var _companies = null;
var _reversecompanies = null;
var _SearchType = "Renk";

$$.extend({

    VarietyComparisonWidget: {

        Ready: function() {
            $j("a.productTypeTab").click(function(e) {
                e.preventDefault();
                var productType = $j(this).text();
                $j("#ddlSeedType option[value='" + productType + "']").attr("selected", "selected");
                $j("#ddlReverseSeedType option[value='" + productType + "']").attr("selected", "selected");
                $$.VarietyComparisonWidget.FillRenkVarieties();
                $$.VarietyComparisonWidget.FillCompanies();
            });

            $j("#ddlSeedType").change(function(e) {
                e.preventDefault();
                $$.VarietyComparisonWidget.FillRenkVarieties();
            });

            $j("#ddlReverseSeedType").change(function(e) {
                e.preventDefault();
                $$.VarietyComparisonWidget.FillCompanies();
            });

            $j("#ddlReverseCompetitor").change(function(e) {
                e.preventDefault();
                $$.VarietyComparisonWidget.FillReverseCompetitor();
            });


            $j("#ddlRenkVariety").change(function(e) {
                e.preventDefault();
                $$.VarietyComparisonWidget.FillCompetitorDropDown();
            });

            $j("#ddlCompetitor").change(function(e) {
                e.preventDefault();
                $$.VarietyComparisonWidget.FillCompetitorVarietyDropDown();
            });

            $j("#ddlReverseCompetitorVariety").change(function(e) {
                e.preventDefault();
                $$.VarietyComparisonWidget.FillRenkVarietyDropDown();
            });


            $j("#btnCompare").click(function(e) {
                e.preventDefault();
                $$.VarietyComparisonWidget.CompareVarieties();

            });

            $j("#btnReverseCompare").click(function(e) {
                e.preventDefault();
                $$.VarietyComparisonWidget.CompareReverseVarieties();

            });

            $j("#btnRedirect").click(function(e) {
                $$.VarietyComparisonWidget.RedirectVarieties();

            });
            $j("#btnReverseRedirect").click(function(e) {
                $$.VarietyComparisonWidget.RedirectReverseVarieties();

            });


            $j("#dataTables").hide();

            $j("#cornPerformanceData").hide();
            $j("#soyPerformanceData").hide();
            $$.VarietyComparisonWidget.ClearPanel();

            $$.VarietyComparisonWidget.FillRenkVarieties();
            $$.VarietyComparisonWidget.FillCompanies();

        },

        FillRenkVarieties: function() {

            var seedType = $j("#ddlSeedType option:selected").val();
            var client = new VarietyComparisonClient();

            if (seedType != null) {
                client.VarietyLookup(
                { CropType: seedType, CompanyName: "Renk", CompanyVariety: "" },
                function(company) {

                    _companies = null;
                    $j("#dataTables").hide();
                    $$.VarietyComparisonWidget.ClearDropDowns();
                    if ($j.isArray(company.Varieties)) {
                        $j.each(company.Varieties, function(company) {
                            $j("#ddlRenkVariety").append($j("<option></option>").val(this['Name']).html(this['Name']));
                        });
                    }
                },
                function(e) {
                    alert(e);
                });
            }
        },

        FillCompanies: function() {

            var seedReverseType = $j("#ddlReverseSeedType option:selected").val();
            $$.VarietyComparisonWidget.ClearDropDown("#ddlReverseCompetitor");
            $$.VarietyComparisonWidget.ClearDropDown("#ddlReverseCompetitorVariety");
            $$.VarietyComparisonWidget.ClearDropDown("#ddlReverseRenkVariety");
            var renkVariety = "";


            var client = new VarietyComparisonClient();
            _reversecompanies = null;

            if (seedReverseType != null) {
                client.CompanyLookup(
                { CropType: seedReverseType, CompanyName: "Renk", CompanyVariety: renkVariety },
                function(reversecompanies) {

                    _reversecompanies = reversecompanies;
                    if (_reversecompanies !== null && $j.isArray(_reversecompanies)) {
                        $j.each(_reversecompanies, function(company) {

                            $j("#ddlReverseCompetitor").append($j("<option></option>").val(this['CompanyID']).html(this['Name']));
                        });
                    }
                },
                function(e) {
                    alert(e);
                });
            }

        },
        FillCompetitorDropDown: function() {
            var seedType = $j("#ddlSeedType option:selected").val();
            var renkVariety = $j("#ddlRenkVariety option:selected").val();
            _SearchType = "Renk";
            var client = new VarietyComparisonClient();
            $$.VarietyComparisonWidget.ClearDropDown("#ddlReverseRenkVariety");
            client.CompanyLookup(
                { CropType: seedType, CompanyName: "Renk", CompanyVariety: renkVariety },
                function(companies) {
                    _companies = companies;
                    $$.VarietyComparisonWidget.ClearDropDown("#ddlCompetitor");
                    $$.VarietyComparisonWidget.ClearDropDown("#ddlCompetitorVariety");
                    if (_companies !== null && $j.isArray(_companies)) {
                        $j.each(_companies, function(company) {
                            $j("#ddlCompetitor").append($j("<option></option>").val(this['CompanyID']).html(this['Name']));
                        });
                    }
                },
                function(e) {
                    alert(e);
                });
        },



        FillRenkVarietyDropDown: function() {

            var seedType = $j("#ddlReverseSeedType option:selected").val();
            var companyName = $j("#ddlReverseCompetitor option:selected").text();
            var variety = $j("#ddlReverseCompetitorVariety option:selected").val();

            $$.VarietyComparisonWidget.ClearDropDown("#ddlReverseRenkVariety");

            var client = new VarietyComparisonClient();
            client.VarietyLookup(
                { CropType: seedType, CompanyName: companyName, CompanyVariety: variety },
                function(company) {
                    if ($j.isArray(company.Varieties)) {
                        $j.each(company.Varieties, function(company) {
                            $j("#ddlReverseRenkVariety").append($j("<option></option>").val(this['Name']).html(this['Name']));
                        });
                    }
                },
                function(e) {
                    alert(e);
                });
        },

        FillCompetitorVarietyDropDown: function() {

            var companyID = $j("#ddlCompetitor option:selected").val();
            var index = indexOfCompany(companyID);
            $$.VarietyComparisonWidget.ClearDropDown("#ddlReverseRenkVariety");
            $$.VarietyComparisonWidget.ClearDropDown("#ddlCompetitorVariety");
            if (_companies !== null && $j.isArray(_companies)) {

                if (_companies[index].Varieties !== null && $j.isArray(_companies[index].Varieties)) {
                    $j.each(_companies[index].Varieties, function(variety) {
                        $j("#ddlCompetitorVariety").append($j("<option></option>").val(this['Name']).html(this['Name']));
                    });
                }
            }
        },

        FillReverseCompetitor: function() {

            var companyID = $j("#ddlReverseCompetitor option:selected").val();
            var index = indexOfReverseCompany(companyID);

            $$.VarietyComparisonWidget.ClearDropDown("#ddlReverseRenkVariety");
            $$.VarietyComparisonWidget.ClearDropDown("#ddlReverseCompetitorVariety");

            if (_reversecompanies !== null && $j.isArray(_reversecompanies)) {
                $j("#ddlReverseCompetitorVariety").append($j("<option></option>").val(0).html('-- Select a Variety --'));
                if (_reversecompanies[index].Varieties !== null && $j.isArray(_reversecompanies[index].Varieties)) {
                    $j.each(_reversecompanies[index].Varieties, function(variety) {
                        $j("#ddlReverseCompetitorVariety").append($j("<option></option>").val(this['Name']).html(this['Name']));
                    });
                }
            }
        },


        RedirectVarieties: function() {
            var seedType = $j("#ddlSeedType option:selected").val();
            var renkVariety = $j("#ddlRenkVariety option:selected").val();
            if (renkVariety == "-- Select a Variety --") {
                renkVariety = "";
            }
            var companyName = $j("#ddlCompetitor option:selected").text();
            if (companyName == "-- Select a Company --") {
                companyName = "";
            }
            var companyVariety = $j("#ddlCompetitorVariety option:selected").val();
            if (companyVariety == undefined) {
                companyVariety = "";
            }


            window.location = "http://www.renkseed.com/ContactUs/ContactUsForm/tabid/125/Default.aspx?type=spi&RC=0&ST=" + seedType + "&RV=" + renkVariety + "&CN=" + companyName + "&CV=" + companyVariety
        },

        RedirectReverseVarieties: function() {

            var seedType = $j("#ddlReverseSeedType option:selected").val();
            var companyVariety = $j("#ddlReverseCompetitorVariety option:selected").val();
           
            if (companyVariety == undefined) {
                companyVariety = "";
            }
            //0 is the same as "-- Select a Variety --"
            if (companyVariety == "0") {
              
                companyVariety = "";
            }
            var companyName = $j("#ddlReverseCompetitor option:selected").text();
           
            if (companyName == "-- Select a Company --") {

                companyName = "";
            }
            var renkVariety = $j("#ddlReverseRenkVariety option:selected").val();
            if (renkVariety == undefined) {
                renkVariety = "";
            }


            window.location = "http://www.renkseed.com/ContactUs/ContactUsForm/tabid/125/Default.aspx?type=spi&RC=1&ST=" + seedType + "&RV=" + renkVariety + "&CN=" + companyName + "&CV=" + companyVariety
        },


        CompareVarieties: function() {
            _SearchType = "Renk";
            var seedType = $j("#ddlSeedType option:selected").val();
            var renkVariety = $j("#ddlRenkVariety option:selected").val();
            if (renkVariety == "-- Select a Variety --") {
                alert("You must select a Renk Variety.");
                return;
            }
            var companyName = $j("#ddlCompetitor option:selected").text();
            if (companyName == "-- Select a Company --") {

                alert("You must select a company to compare to.");
                return;
            }

            if (companyName == "Contact Renk For Details") {

                alert("You must select a company to compare to.");
                return;
            }
            var companyVariety = $j("#ddlCompetitorVariety option:selected").val();
            if (companyVariety == undefined) {
                alert("You must select a variety to compare to.");
                return;
            }


            var lookup1 = { CropType: seedType, CompanyName: "Renk", CompanyVariety: renkVariety };
            var lookup2 = { CropType: seedType, CompanyName: companyName, CompanyVariety: companyVariety };

            var client = new VarietyComparisonClient();
            client.Compare(
                lookup1,
                lookup2,
                function(companyTrials) {
                    $$.VarietyComparisonWidget.PrintVarietyReport(companyTrials);
                },
                function(e) {
                    alert(e);
                });

        },

        CompareReverseVarieties: function() {
            _SearchType = "Competitor";
            var seedType = $j("#ddlReverseSeedType option:selected").val();
            var companyVariety = $j("#ddlReverseCompetitorVariety option:selected").val();
            if (companyVariety == "-- Select a Variety --") {
                alert("You must select a Renk Variety.");
                return;
            }
            var companyName = $j("#ddlReverseCompetitor option:selected").text();
            if (companyName == "-- Select a Company --") {

                alert("You must select a company to compare to.");
                return;
            }
            var renkVariety = $j("#ddlReverseRenkVariety option:selected").val();
            if (renkVariety == undefined) {
                alert("You must select a variety to compare to.");
                return;
            }

            var lookup1 = { CropType: seedType, CompanyName: "Renk", CompanyVariety: renkVariety };
            var lookup2 = { CropType: seedType, CompanyName: companyName, CompanyVariety: companyVariety };

            var client = new VarietyComparisonClient();
            client.Compare(
                lookup1,
                lookup2,
                function(companyTrials) {
                    $$.VarietyComparisonWidget.PrintVarietyReport(companyTrials);
                },
                function(e) {
                    alert(e);
                });

        },

        PrintVarietyReport: function(companyTrials) {
            $j("#ChartPanel").hide();
            $j("#dataTables").show();
            $j("#cornReportTable tr.dataRow").remove();
            $j("#soyPerformanceData tr.dataRow").remove();

            $j("#cornPerformanceData").hide();
            $j("#soyPerformanceData").hide();


            if (_SearchType === "Renk") {
                var renkVariety = $j("#ddlRenkVariety option:selected").val();
                var companyVariety = $j("#ddlCompetitorVariety option:selected").val();
                var lookup = ($j("#ddlSeedType option:selected").val()) + ":" + renkVariety + ":" + ($j("#ddlCompetitor option:selected").text()) + ":" + companyVariety
                var seedType = $j("#ddlSeedType option:selected").val();
            } else {
                var renkVariety = $j("#ddlReverseRenkVariety option:selected").val();
                var companyVariety = $j("#ddlReverseCompetitorVariety option:selected").val();
                var lookup = ($j("#ddlReverseSeedType option:selected").val()) + ":" + renkVariety + ":" + ($j("#ddlReverseCompetitor option:selected").text()) + ":" + companyVariety
                var seedType = $j("#ddlReverseSeedType option:selected").val();


            }



            if ($j.isArray(companyTrials)) {


                var tableContainer = null;
                var table = null;

                if (seedType === "Corn") {
                    tableContainer = $j("#cornPerformanceData");
                    table = $j("#cornReportTable");

                    table.find("span.renkYieldColumnHeader").html(renkVariety + "<br/> Yield");
                    table.find("span.renkMoistureColumnHeader").html(renkVariety + "<br/> Moisture");
                    table.find("span.competitorYieldColumnHeader").html(companyVariety + "<br/> Yield");
                    table.find("span.competitorMoistureColumnHeader").html(companyVariety + "<br/> Moisture");

                    $j.each(companyTrials, function(companyTrial) {
                        var rowString =
                            "<tr class='dataRow'>" +
                            "<td>" + this['PlotType'] + "</td>" +
                            "<td>" + this['Location'] + "</td>" +
                            "<td>" + this['TrialYear'] + "</td>" +
                            "<td align=\"right\">" + this['RenkYield'] + "</td>" +
                            "<td align=\"right\">" + this['RenkMoisture'] + "</td>" +
                            "<td align=\"right\">" + this['CompetitorYield'] + "</td>" +
                            "<td align=\"right\">" + this['CompetitorMoisture'] + "</td>" +
                            "</tr>";

                        var row = $j(rowString);

                        table.append(row);
                    });

                } else {
                    tableContainer = $j("#soyPerformanceData");
                    table = $j("#soyReportTable");

                    table.find("span.renkYieldColumnHeader").html(renkVariety + "<br/> Yield");
                    table.find("span.competitorYieldColumnHeader").html(companyVariety + "<br/> Yield");

                    $j.each(companyTrials, function(companyTrial) {
                        var rowString =
                            "<tr class='dataRow'>" +
                            "<td>" + this['PlotType'] + "</td>" +
                            "<td>" + this['Location'] + "</td>" +
                            "<td>" + this['TrialYear'] + "</td>" +
                            "<td align=\"right\">" + this['RenkYield'] + "</td>" +
                            "<td align=\"right\">" + this['CompetitorYield'] + "</td>" +
                             "</tr>";

                        var row = $j(rowString);

                        table.append(row);
                    });
                }

                if (seedType === "Corn") {
                    $j("#cornReportTable tr.dataRow:even").addClass("listalternate");
                } else {
                    $j("#soyPerformanceData tr.dataRow:even").addClass("listalternate");
                }

                tableContainer.show();
                table.show();
                $j("#ChartPanel").show();
                fireAjaxManagerRequest(lookup);
            }
        },

        ClearDropDowns: function() {
            $$.VarietyComparisonWidget.ClearDropDown("#ddlRenkVariety");
            $$.VarietyComparisonWidget.ClearDropDown("#ddlCompetitor");
            $$.VarietyComparisonWidget.ClearDropDown("#ddlCompetitorVariety");
            $$.VarietyComparisonWidget.ClearDropDown("#ddlReverseCompetitorVariety");
            $$.VarietyComparisonWidget.ClearDropDown("#ddlReverseRenkVariety");

            $$.VarietyComparisonWidget.ClearPanel();

        },

        ClearDropDown: function(dropDownName) {
            $j(dropDownName + " option").remove();
        },
        ClearPanel: function() {

            $j("#ChartPanel").hide();
        }



    }

});


function indexOfCompany(companyID) {
    var index = -1;

    for (var idx = 0; idx < _companies.length; idx++) {
        var c = _companies[idx];
        if (c.CompanyID == companyID) {
            index = idx;
            break;
        }
    }

    return index;
}

function indexOfReverseCompany(companyID) {
    var index = -1;

    for (var idx = 0; idx < _reversecompanies.length; idx++) {
        var c = _reversecompanies[idx];
        if (c.CompanyID == companyID) {
            index = idx;
            break;
        }
    }

    return index;
}
