var StepData = null;
var CurrentStep = 1;
var StepWinShowed = false;

var Price = 0;
var BasePrice = 0;
var OptionPrice = 0;
var TuningPrice = 0;

var CatOpen = [];

var ConfData = {
    BasePriceID : null,
    Alarm : 0,
    CaseColorPrice : 0,
    SalonPrice : 0,
    CarCaseID : null,
    CarEngineID : null,
    TransmissionID : null,
    CarKitID : null,
    CaseColorID : null,
    SalonID : null,
    Option : [],
    Price : null
};

var CatalogTree = new Array();
var OptionTree = new Array();

var GlobalData = {
    BasePrice : null,
    CarCase : null,
    CarEngine : null,
    Transmission : null,
    CarKit : null,
    CaseColor : null,
    Salon : null,
    Catalog : null,
    Option : null,
    Applic: null,
    Compat: null
};

var TempData = {
    Catalog : null,
    Option : null
};

var Step = new Array();
//////////////////                                
Step[1] = {
    title : "Выбор кузова, двигателя, коробки передач и комплектации",
    navigator : "<a href=\"javascript:SelectStep(2)\" class=\"next_page\"><strong>Следующий шаг </strong><span></span></a>",
    operLinks : "<a href=\"javascript:Reset()\" class=\"red_cross_ico\"><span></span>Сброс опций</a><a href=\"javascript:void(0)\" onclick=\"ShowOptionsFromCarKit();\" class=\"settings_ico\"><span></span>Опции выбранной комплектации</a>",
    ShowForm : function () {
        if (GlobalData.BasePrice == null) {
            var url = webRoot + '/json/loadstep1/' + Model + '/'
            $.getJSON(url, function (data) {
                GlobalData.BasePrice = data.data.BasePrice;
                GlobalData.CarCase = data.data.CarCase;
                GlobalData.CarEngine = data.data.CarEngine;
                GlobalData.Transmission = data.data.Transmission;
                GlobalData.CarKit = data.data.CarKit;
                Step[1].ShowForm();
            });        
        } else {
            $("#Step1").setTemplateElement("Step1Template");
            $("#Step1").setParam('CarCaseID', ConfData.CarCaseID);
            $("#Step1").setParam('CarEngineID', ConfData.CarEngineID);
            $("#Step1").setParam('TransmissionID', ConfData.TransmissionID);
            $("#Step1").setParam('CarKitID', ConfData.CarKitID);
            $("#Step1").processTemplate(GlobalData);
            $("input[@type=radio]").click(function () {
                $("#" + this.id).get(0).blur();
            });
            if (this.Validate()) {
                $("#StepNavigator").html("<a href=\"javascript:SelectStep(2)\" class=\"next_page\"><strong  class=\"active_arrow\">Следующий шаг </strong><span class=\"active_arrow\"></span></a>");
            }
            AutoSelectInStep1(); 
            //ShowStepContentInfo();
        }
    },
    Validate : function () {
        if ((ConfData.CarCaseID == null) ||
            (ConfData.CarEngineID == null) || 
            (ConfData.TransmissionID == null) || 
            (ConfData.CarKitID == null) || 
            (ConfData.Price == 0)) {
            return false;
        } else {
            return true;
        }
    },
    Reset : function () {
        $("#StepNavigator").html(Step[1].navigator);
        Price = 0;
        ConfData.CarCaseID = null;
        ConfData.CarEngineID = null;
        ConfData.TransmissionID = null;
        ConfData.CarKitID = null;
        GlobalData.BasePrice = null;
        GlobalData.CarCase = null;
        GlobalData.CarEngine = null;
        GlobalData.Transmission = null;
        GlobalData.CarKit = null;
        //this.ShowForm();
        //ShowPrice();
        ShowStepContentInfo(); 
    }    
};
//////////////////
Step[2] = {
    title : "Выбор цвета кузова и его салона",
    navigator : "<a href=\"javascript:SelectStep(1)\" class=\"previous_page\"><span></span><strong class=\"active_arrow\">Предыдущий шаг </strong></a><div class=\"yellow_navi_line\"></div><a href=\"javascript:SelectStep(3)\" class=\"next_page\"><strong  class=\"active_arrow\">Следующий шаг </strong><span class=\"active_arrow\"></span></a>",
    operLinks : "<a href=\"javascript:Reset()\" class=\"red_cross_ico\"><span></span>Сброс опций</a>",
    ShowForm : function () {
        if ((GlobalData.CaseColor == null) || (GlobalData.Salon == null)) {
            $.post(webRoot + '/json/loadstep2/' + Model + '/', {
                CarCaseID : ConfData.CarCaseID,
                CarKitID : ConfData.CarKitID
            }, function (data) {
                GlobalData.CaseColor = data.data.CaseColor;
                GlobalData.Salon = data.data.Salon;
                Step[2].ShowForm();
            }, "json");    
        } else {
            $("#Step2").setTemplateElement("Step2Template");
            $("#Step2").setParam('CarCaseID', ConfData.CarCaseID);
            $("#Step2").setParam('CarEngineID', ConfData.CarEngineID);
            $("#Step2").setParam('TransmissionID', ConfData.TransmissionID);
            $("#Step2").setParam('CarKitID', ConfData.CarKitID);
            if (ConfData.CaseColorID == null) {
                ConfData.CaseColorID = parseInt(DefCaseColor);
            }
            $("#Step2").setParam('CaseColorID', ConfData.CaseColorID);
            if (ConfData.SalonID == null) {
                ConfData.SalonID = parseInt(DefSalon);
            }
            $("#Step2").setParam('SalonID', ConfData.SalonID);
            $("#Step2").processTemplate(GlobalData);
            $("input[@type=radio]").click(function () {
                $("#" + this.id).get(0).blur();
            });
            //alert("Step2 show step content info!");
            //ShowStepContentInfo();    
        }
    },
    Validate : function () {
        if ((ConfData.CaseColorID == null) ||
            (ConfData.SalonID == null)) {
            return false;    
        } else {
            return true;
        }
    },
    Reset : function () {
        Price = BasePrice;
        ConfData.CaseColorID = null;
        ConfData.SalonID = null;
        GlobalData.CaseColor = null;
        GlobalData.Salon = null;
        //this.ShowForm();
        //ShowPrice();
        ShowStepContentInfo();     
    }    
};
//////////////////
Step[3] = {
    title : "Выбор опций и тюнинга",
    navigator : "<a href=\"javascript:SelectStep(2)\" class=\"previous_page\"><span></span><strong class=\"active_arrow\">Предыдущий шаг </strong></a><div class=\"yellow_navi_line\"></div><a href=\"javascript:SelectStep(4)\" class=\"next_page\"><strong  class=\"active_arrow\">Следующий шаг </strong><span class=\"active_arrow\"></span></a>",
    operLinks : "",
    ShowForm : function () {
        if (GlobalData.Catalog == null) {
         $.post(webRoot + '/json/loadstep3/' + Model + '/', {
            CarKitID : ConfData.CarKitID
         }, function (data) {
            var i = 0;
         
            //GlobalData.Catalog = data.data.Catalog;
            //GlobalData.Option = data.data.Options;
            GlobalData.Applic = data.data.Applic;
            GlobalData.Compat = data.data.Compat;
            GlobalData.Catalog = new Array();
            for (i in data.data.Catalog) {
               GlobalData.Catalog[data.data.Catalog[i].OptionsGroupID] = {
                  data: data.data.Catalog[i],
                  isRoot: function () { return (this.data.ParentID == ""); },
                  childs: function () {
                     var temp = new Array();
                     if (this.isRoot()) {
                        for (i in GlobalData.Catalog) {
                           if (GlobalData.Catalog[i].data.ParentID == this.data.OptionsGroupID)
                              temp.push( GlobalData.Catalog[i] );
                        }
                     } else {
                        for (i in GlobalData.Option) {
                           if (GlobalData.Option[i].data.OptionsGroupID == this.data.OptionsGroupID)
                              temp.push( GlobalData.Option[i] );
                        }
                     }
                     return temp;
                  },
                  options: function (_type) {
                     var res = new Array();
                     if (this.isRoot()) {
                        var temp2 = this.childs();
                        for (j in temp2) {
                           var temp = temp2[j].childs();
                           for (i in temp) {
                              if (temp[i].data.Type == _type)
                                 res.push( temp[i] );
                           }
                        }
                     } else {
                        var temp = this.childs();
                        for (i in temp) {
                           if (temp[i].data.Type == _type)
                              res.push( temp[i] );
                        }
                     }
                     return res;
                  },
                  optionsCount: function (_type) {
                     var temp = this.options(_type);
                     if (!this.isRoot()) {
                        return temp.length;
                     } else {
                        var sum = 0;
                        for (i in temp) {
                           sum += temp[i].options(_type).length;
                        }
                        return sum;
                     }
                  },
                  selectedOptionsCount: function (_Type) {
                     return this.selectedOptions(_Type).length;
                  },
                  selectedOptions: function (_Type) {
                     var temp = this.options(_Type);
                     var res = new Array();
                     for (i in temp) {
                        if (temp[i].sel) res.push( temp[i] );
                     }
                     return res;   
                  }
               };
            }
            GlobalData.Option = new Array();
            for (i in data.data.Options) {
               GlobalData.Option[data.data.Options[i].OptionID] = {
                  data: data.data.Options[i],
                  sel: false,
                  appl: true,
                  applic: {
                     toEngine: [],
                     toCase: [],
                     toTransmission: [],
                     toCaseColor: [],
                     toSalon: []
                  },
                  compat: {
                     replaceIn: [],
                     onlyWith: [],
                     notCompatibleWith: [],
                     onlyOnce: []
                  }
               };
            }
            for (i in data.data.Applic) {
               /*for (j in GlobalData.Option) {
                  if (GlobalData.Option[j].data.OptionID == data.data.Applic[i].OptionID) {       */
                  var j = data.data.Applic[i].OptionID;
                  try {
                     GlobalData.Option[j].applic.toEngine = data.data.Applic[i].ToEngine.split(",");
                     GlobalData.Option[j].applic.toCase = data.data.Applic[i].ToCase.split(",");
                     GlobalData.Option[j].applic.toTransmission = data.data.Applic[i].ToTransmission.split(",");
                     GlobalData.Option[j].applic.toCaseColor = data.data.Applic[i].ToCaseColor.split(",");
                     GlobalData.Option[j].applic.toSalon = data.data.Applic[i].ToSalon.split(",");
                  } catch (err) {}
               /*   }
               }*/
            }
            for (i in data.data.Compat) {
               /*for (j in GlobalData.Option) {
                  if (GlobalData.Option[j].data.OptionID == data.data.Compat[i].OptionID) {*/
                  var j = data.data.Compat[i].OptionID;
                  try {
                     GlobalData.Option[j].compat.replaceIn = data.data.Compat[i].ReplaceIn.split(",");
                     GlobalData.Option[j].compat.onlyWith = data.data.Compat[i].OnlyWith.split(",");
                     GlobalData.Option[j].compat.notCompatibleWith = data.data.Compat[i].NotCompatibleWith.split(",");
                     GlobalData.Option[j].compat.onlyOnce = data.data.Compat[i].OnlyOnce.split(",");
                  } catch (err) {}
               /*   }
               }*/
            }
            for (i in GlobalData.Option) {
               GlobalData.Option[i].appl = TestOptionsApplicability(GlobalData.Option[i].data.OptionID);
               if ((GlobalData.Option[i].data.Presence == "+") 
                  && GlobalData.Option[i].appl) {
                  GlobalData.Option[i].sel = true;      
               }
            }
            SelectedOptions();
            Step[3].ShowForm();
         }, "json");    
      } 
      else
      {
         if (($("#OptList_1 ul.option_ul").html() == "") && ($("#OptList_2 ul.option_ul").html() == "")) {
            buildStep3();   
         }
      }
    },
    Validate : function () {
        if ((ConfData.CarCaseID == null) ||
            (ConfData.CarEngineID == null) || 
            (ConfData.TransmissionID == null) || 
            (ConfData.CarKitID == null) || 
            (ConfData.Price == 0) ||
            (ConfData.CaseColorID == null) ||
            (ConfData.SalonID == null)) {
            return false;    
        } else {
            return true;
        }
    },
    Reset : function () {
        GlobalData.Catalog = null;
        GlobalData.Option = [];
        ConfData.Option = [];
        ShowStepContentInfo();
    }    
};
function buildStep3() {
   $("#OptList_1 ul.option_ul").html("");
   $("#OptList_2 ul.option_ul").html("");
   for (i in GlobalData.Catalog) {
      var CatID = GlobalData.Catalog[i].data.OptionsGroupID;
      var CatName = GlobalData.Catalog[i].data.Name;
      if (GlobalData.Catalog[i].isRoot() && HaveOpt(CatID, 1)) {
         $("#OptList_1 ul.option_ul").append('<li id="CatLi_' + CatID + '_1"><a href="javascript:OptClick(' + CatID + ', 1)" class="li">' + CatName + '</a><ul class="InvisibleBlock"></ul></li>');
      }
      if (GlobalData.Catalog[i].isRoot() && HaveOpt(CatID, 2)) {
         $("#OptList_2 ul.option_ul").append('<li id="CatLi_' + CatID + '_2"><a href="javascript:OptClick(' + CatID + ', 2)" class="li">' + CatName + '</a><ul class="InvisibleBlock"></ul></li>');
      }
   }   
}
//////////////////
Step[4] = {
    title : "Подведём итог",
    navigator : "<a href=\"javascript:SelectStep(3)\" class=\"previous_page\"><span></span><strong class=\"active_arrow\">Предыдущий шаг </strong></a><a href=\"javascript:StepWin()\" class=\"next_page\"><strong  class=\"active_arrow\">Заказать автомобиль </strong><img src=\"/configurator/image/Opel/steps_content/blue_logo_big.png\"/></a>",
    operLinks : "<div class=\"print\"><a href=\"javascript:ShowPrintVersion();\"><img class=\"png\" src=\"/configurator/image/Opel/steps_content/printer.png\"/><span>Версия для печати</span></a></div><div class=\"save\"><a href=\"javascript:SaveFile();\"><img class=\"png\" src=\"/configurator/image/Opel/steps_content/save.png\"/><span>Сохранить в файл</span></a></div><div class=\"blue_bot_price\"><div class=\"new_string\">Итоговая стоимость<strong id=\"StepPrice2\"></strong><select id=\"Currency2\" onchange=\"javascript:ShowPrice2()\"><option value=\"0\">RUR</option><option value=\"1\">USD</option><option value=\"2\">EUR</option></select></div></div>",
    ShowForm : function () {
        for (i in GlobalData.CarCase) {
            if (GlobalData.CarCase[i].CarCaseID == ConfData.CarCaseID) {
                $("div.first_div > div:eq(0) > div.super_table > table > tbody > tr:eq(0) > td:eq(1)").text(GlobalData.CarCase[i].Name);
                break;
            }
        }
        for (i in GlobalData.CarEngine) {
            if (GlobalData.CarEngine[i].CarEngineID == ConfData.CarEngineID) {
                $("div.first_div > div:eq(0) > div.super_table > table > tbody > tr:eq(1) > td:eq(1)").text(GlobalData.CarEngine[i].Name);
                break;
            }
        }
        for (i in GlobalData.Transmission) {
            if (GlobalData.Transmission[i].TransmissionID == ConfData.TransmissionID) {
                $("div.first_div > div:eq(0) > div.super_table > table > tbody > tr:eq(2) > td:eq(1)").text(GlobalData.Transmission[i].Name);
                break;
            }
        }
        for (i in GlobalData.CarKit) {
            if (GlobalData.CarKit[i].CarKitID == ConfData.CarKitID) {
                $("div.first_div > div:eq(0) > div.super_table > table > tbody > tr:eq(3) > td:eq(1)").text(GlobalData.CarKit[i].Name);
                break;
            }
        }
        for (i in GlobalData.CaseColor) {
            if (GlobalData.CaseColor[i].CaseColorID == ConfData.CaseColorID) {
                $("div.first_div > div:eq(1) > div.super_table > table > tbody > tr:eq(0) > td:eq(1)").text(GlobalData.CaseColor[i].Name);
                break;
            }
        }
        for (i in GlobalData.Salon) {
            if (GlobalData.Salon[i].SalonID == ConfData.SalonID) {
                $("div.first_div > div:eq(1) > div.super_table > table > tbody > tr:eq(1) > td:eq(1)").text(GlobalData.Salon[i].Name);
                break;
            }
        }
        $("div.first_div > div:eq(0) > div.blue_price > span").html(GetPrice(BasePrice));
        $("div.first_div > div:eq(1) > div.blue_price > span").html(GetPrice(ConfData.CaseColorPrice + ConfData.SalonPrice));
        $("div.second_div > div:eq(0) > div.blue_price > span").html(GetPrice(OptionPrice));
        $("div.second_div > div:eq(1) > div.blue_price > span").html(GetPrice(TuningPrice));
        if (ConfData.Option.length) {
            $("div.second_div > div:eq(0)").empty();
            $("div.second_div > div:eq(1)").empty();
            
            $("div.second_div > div:eq(0)").append("<strong>Опции</strong>");
            $("div.second_div > div:eq(1)").append("<strong>Тюнинг</strong>");
            
            for (i in GlobalData.Catalog) {
               var folder = GlobalData.Catalog[i];
               if (folder.isRoot()) {
                  var subFolder = folder.childs();
                  for (j in subFolder) {
                     var catName = folder.data.Name + " / " + subFolder[j].data.Name;
                     var selOpt = subFolder[j].selectedOptions(1);
                     var selTun = subFolder[j].selectedOptions(2);
                     if (selOpt.length) {
                        $("div.second_div > div:eq(0)").append("<strong class=\"black_str\">" + catName + "</strong>");            
                        $("div.second_div > div:eq(0)").append(optionTable(selOpt));
                     }
                     if (selTun.length) {
                        $("div.second_div > div:eq(1)").append("<strong class=\"black_str\">" + catName + "</strong>");            
                        $("div.second_div > div:eq(1)").append(optionTable(selTun));
                     }
                  }
               }
            }
            
            $("div.second_div > div:eq(0)").append("<div class=\"blue_price\"><p>Стоимость выбранных опций</p><span>" + GetPrice(OptionPrice) + "</span></div>");
            $("div.second_div > div:eq(1)").append("<div class=\"blue_price\"><p>Стоимость выбранного тюнинга</p><span>" + GetPrice(TuningPrice) + "</span></div>");
        }
    },
    Validate : function () {
        if ((ConfData.CarCaseID == null) ||
            (ConfData.CarEngineID == null) || 
            (ConfData.TransmissionID == null) || 
            (ConfData.CarKitID == null) || 
            (ConfData.Price == 0) ||
            (ConfData.CaseColorID == null) ||
            (ConfData.SalonID == null)) {
            return false;    
        } else {
            return true;
        }    
    },
    Reset : function () {}    
};

function optionTable(data) {
    var temp = $("<div></div>");
    temp.append("<div class=\"super_table\"><div class=\"tab_top_right\"></div><div class=\"tab_bot_left\"></div><div class=\"tab_bot_right\"></div><table class=\"pretty_table\" width=\"340\"><tbody><tr class=\"grey_row first_row\"> <td width=\"240\" ><p>Названия опций</p></td><td width=\"100\">Стоимость</td></tr></tbody></table></div>");
    for (i in data) {
      $("div.super_table > table.pretty_table > tbody > tr:first", temp).after("<tr><td><p>" + data[i].data.Name + "</p></td><td><span>" + GetPrice(data[i].data.Presence) + "</span></td></tr>");  
    }
    $("div.super_table > table.pretty_table > tbody > tr:even", temp).addClass("grey_row"); 
    return temp.html();
}

function count(mas) {
   var i = 0;
   for (i in mas) i++;
   return i;
}

$(document).ready(function () {
    $("#uiBlockImage").ajaxStart(function () {
      $(this).show();
    });
    $("#uiBlockImage").ajaxStop(function () {
      $(this).hide();
    });
    placeLoader(); 
    SelectStep(CurrentStep);
    //ConfData.CaseColorID = parseInt(DefCaseColor);
    //ConfData.SalonID = parseInt(DefSalon);
    CloseDesc();
    $("td.car_block:has(a img[@alt='" + NameplateName + " " + ModelName + "']) a h6").css({color: "#1D82F2"});
    if ((USD == 0) || (EUR == 0)) $("#Currency").hide();
});

///////////////////////////////////////////////
//FrontEnd API function
//Control text description window
var y1 = 10;
(document.getElementById) ? dom = true : dom = false;

function placeLoader() {
  if (dom && !document.all) {document.getElementById("uiBlockImage").style.top = window.pageYOffset + 150 + (window.innerHeight - (window.innerHeight-y1)) + "px";}
  if (document.all) {document.all["uiBlockImage"].style.top = document.documentElement.scrollTop + 150 + (document.documentElement.clientHeight - (document.documentElement.clientHeight-y1)) + "px";}
  window.setTimeout("placeLoader()", 10); }
  
function placeIt() {
  if (dom && !document.all) {document.getElementById("FloatWin").style.top = window.pageYOffset + 200  + (window.innerHeight - (window.innerHeight-y1)) + "px";}
  if (document.all) {document.all["FloatWin"].style.top = document.documentElement.scrollTop + 200 + (document.documentElement.clientHeight - (document.documentElement.clientHeight-y1)) + "px";}
  window.setTimeout("placeIt()", 10); }

function ShowDesc(title, content) {
    if (content == "") {
        return;
    }
    var width  = $("#FloatWin").width();
    var height = $("#FloatWin").height();
    var _left   = (screen.width  - width)/2;
    var _top    = (screen.height - height)/2;
    $("#FloatWin").css({top: _top, left: _left});
    $("#WinImg").hide();
    $("#WinTitle").text(title);
    $("#WinText").html(content);
    placeIt();
    $("#FloatWin").show();
}
function CloseDesc() {
    $("#WinImg").hide();
    $("#WinTitle").text("");
    $("#WinText").text("");
    $("#FloatWin").hide();    
}
function SendOrder() {
    var order = GetOrder();
    var cb_FIO = $("#cb_FIO").attr("value");
    var cb_Phone = $("#cb_Phone").attr("value");
    var cb_Address = $("#cb_Address").attr("value");
    var cb_EMails = $("#cb_EMails").attr("value");
    var cb_Comments = $("#cb_Comments").attr("value");
    var cb_Credit = $("#cb_Credit").get(0).checked;
    var cb_Osago = $("#cb_Osago").get(0).checked;
    var cb_Kasko = $("#cb_Kasko").get(0).checked;
    var cb_tiAutoName = $("#cb_taName").attr("value");
    var cb_tiAutoYear = $("#cb_taYear").attr("value");
    var cb_tiAutoDesc = $("#cb_taDesc").attr("value");
    $.post(webRoot + "/json/saveorder/", {
        FIO : cb_FIO,
        Phone : cb_Phone,
        Address : cb_Address,
        EMails : cb_EMails,
        Comments : cb_Comments,
        Credit : cb_Credit,
        Osago : cb_Osago,
        Kasko : cb_Kasko,
        tiAutoName : cb_tiAutoName,
        tiAutoYear : cb_tiAutoYear,
        tiAutoDesc : cb_tiAutoDesc,
        Nameplate : order.so_Nameplate,
        NameplateID : order.so_NameplateID,
        Model : order.so_Model,
        ModelID : order.so_ModelID,
        CarCase : order.so_CarCase,
        CarCaseID : order.so_CarCaseID,
        CarEngine : order.so_CarEngine,
        CarEngineID : order.so_CarEngine,
        Transmission : order.so_Transmission,
        TransmissionID : order.so_TransmissionID,
        CarKit : order.so_CarKit,
        CarKitID : order.so_CarKitID,
        CaseColor : order.so_CaseColor,
        CaseColorID : order.so_CaseColorID,
        Salon : order.so_Salon,
        SalonID : order.so_Salon,
        BasePrice : order.so_BasePrice,
        BasePriceID : order.so_BasePriceID,
        CasePrice : order.so_CasePrice,
        OptPrice : order.so_OptPrice,
        TunPrice : order.so_TunPrice,
        Price : order.so_Price,
        Alarm : order.so_Alarm,
        Option : order.so_Option,
        Tuning : order.so_Tuning,
        OutsideImage : order.so_OutsideImage,
        InsideImage : order.so_InsideImage
    }, function (data) {
        $("#Step4").hide();
        $("#StepWin").hide();
        $("#StepNavigator").html("");
        $("#StepRes").show();
    }, "json");
}
function SaveFile() {
    var order = GetOrder();
    var wnd = window.open("", "Заказ", "scrollbars=yes,menubar=no,resizable=yes,width=800,height=800");
    wnd.document.writeln("<html><head>");
    wnd.document.writeln("<title>Информация о заказе - сохранение в файл</title>");
    wnd.document.writeln("<link href=\"/style/FrontEnd_Page.Opel.css\" rel=\"stylesheet\" type=\"text/css\" />");                                          
    wnd.document.writeln("<style type=\"text/css\">BODY { background-color: White; } .right_content { margin-left: 30px; margin-top: 50px; }</style>");
    wnd.document.writeln("</head><body><form name=\"SendForm\" method=\"POST\" action=\"" + webRoot + "/printwnd/\">");
    wnd.document.writeln("<input type=\"hidden\" name=\"Nameplate\" value=\"" + order.so_Nameplate + "\">");
    wnd.document.writeln("<input type=\"hidden\" name=\"NameplateID\" value=\"" + order.so_NameplateID + "\">");
    wnd.document.writeln("<input type=\"hidden\" name=\"Model\" value=\"" + order.so_Model + "\">");
    wnd.document.writeln("<input type=\"hidden\" name=\"ModelID\" value=\"" + order.so_ModelID + "\">");
    wnd.document.writeln("<input type=\"hidden\" name=\"CarCase\" value=\"" + order.so_CarCase + "\">");
    wnd.document.writeln("<input type=\"hidden\" name=\"CarCaseID\" value=\"" + order.so_CarCaseID + "\">");
    wnd.document.writeln("<input type=\"hidden\" name=\"CarEngine\" value=\"" + order.so_CarEngine + "\">");
    wnd.document.writeln("<input type=\"hidden\" name=\"CarEngineID\" value=\"" + order.so_CarEngineID + "\">");
    wnd.document.writeln("<input type=\"hidden\" name=\"Transmission\" value=\"" + order.so_Transmission + "\">");
    wnd.document.writeln("<input type=\"hidden\" name=\"TransmissionID\" value=\"" + order.so_TransmissionID + "\">");
    wnd.document.writeln("<input type=\"hidden\" name=\"CarKit\" value=\"" + order.so_CarKit + "\">");
    wnd.document.writeln("<input type=\"hidden\" name=\"CarKitID\" value=\"" + order.so_CarKitID + "\">");
    wnd.document.writeln("<input type=\"hidden\" name=\"CaseColor\" value=\"" + order.so_CaseColor + "\">");
    wnd.document.writeln("<input type=\"hidden\" name=\"CaseColorID\" value=\"" + order.so_CaseColorID + "\">");
    wnd.document.writeln("<input type=\"hidden\" name=\"Salon\" value=\"" + order.so_Salon + "\">");
    wnd.document.writeln("<input type=\"hidden\" name=\"SalonID\" value=\"" + order.so_SalonID + "\">");
    wnd.document.writeln("<input type=\"hidden\" name=\"BasePrice\" value=\"" + order.so_BasePrice + "\">");
    wnd.document.writeln("<input type=\"hidden\" name=\"BasePriceID\" value=\"" + order.so_BasePriceID + "\">");
    wnd.document.writeln("<input type=\"hidden\" name=\"CasePrice\" value=\"" + order.so_CasePrice + "\">");
    wnd.document.writeln("<input type=\"hidden\" name=\"OptPrice\" value=\"" + order.so_OptPrice + "\">");
    wnd.document.writeln("<input type=\"hidden\" name=\"TunPrice\" value=\"" + order.so_TunPrice + "\">");
    wnd.document.writeln("<input type=\"hidden\" name=\"Price\" value=\"" + order.so_Price + "\">");
    wnd.document.writeln("<input type=\"hidden\" name=\"Alarm\" value=\"" + order.so_Alarm + "\">");
    wnd.document.writeln("<input type=\"hidden\" name=\"Option\" value=\'" + order.so_Option + "\'>");
    wnd.document.writeln("<input type=\"hidden\" name=\"Tuning\" value=\'" + order.so_Tuning + "\'>");
    wnd.document.writeln("<input type=\"hidden\" name=\"OutsideImage\" value=\"" + order.so_OutsideImage + "\">");
    wnd.document.writeln("<input type=\"hidden\" name=\"InsideImage\" value=\"" + order.so_InsideImage + "\">");
    wnd.document.writeln("</form><script> document.SendForm.submit(); </script>");
    wnd.document.writeln("</body></html>");
}
function OptToJSON(_type) {
   var text = "[";
   //var arr = new Array();
   var first = true;
   for (i in GlobalData.Catalog) {
      if (GlobalData.Catalog[i].isRoot() && HaveSelOpt(GlobalData.Catalog[i].data.OptionsGroupID, _type)) {
         var subFolders = GlobalData.Catalog[i].childs();
         if (!first) {
            text += ",";
         }
         first = false;
         arr = otjFolder(subFolders, GlobalData.Catalog[i].data.Name, _type);
         text += arr.toString();
      }
   }
   //text += arr.toString();
   text += "]";
   return text;
}
function otjFolder(_subFolders, _parentName, _type) {
   var arr = new Array();
   for (i in _subFolders) {
      if (HaveSelOpt(_subFolders[i].data.OptionsGroupID, _type)) {
         arr.push( otjSubFolder(_subFolders[i].selectedOptions(_type), _parentName + " / " + _subFolders[i].data.Name, _type) );
      }
   }
   return arr.toString();
}
function otjSubFolder(_options, _catName, _type) {
   var text = "{\"Catalog\":\"" + _catName + "\",\"SubItems\":[";
   var arr = new Array();
   for (i in _options) {
      arr.push( otjOption(_options[i].data) );
   }
   text += arr.toString();   
   text += "]}";
   return text;
}
function otjOption(_option) {
   var name = _option.Name;
   name = name.replace(/"/g, '\\"');
   name = name.replace(/&quot;/g, '\\"');
   return text = "{\"Name\":\"" + name + "\",\"Price\":\"" + GetSimplePrice(_option.Presence) + "\",\"Code\":\"" + _option.Code + "\"}";
}

function GetOrder() {
    this.so_Nameplate = NameplateName;
    this.so_NameplateID = Nameplate;
    this.so_Model = ModelName;
    this.so_ModelID = Model;
    this.so_CarCase = "";
    this.so_CarCaseID = ConfData.CarCaseID;
    this.so_CarEngine = "";
    this.so_CarEngineID = ConfData.CarEngineID;
    this.so_Transmission = "";
    this.so_TransmissionID = ConfData.TransmissionID;
    this.so_CarKit = "";
    this.so_CarKitID = ConfData.CarKitID;
    this.so_CaseColor = "";
    this.so_CaseColorID = ConfData.CaseColorID;
    this.so_Salon = "";
    this.so_SalonID = ConfData.SalonID;
    this.so_BasePriceID = ConfData.BasePriceID;
    this.so_BasePrice = GetPrice(BasePrice);
    this.so_CasePrice = GetPrice(ConfData.CaseColorPrice);
    this.so_OptPrice = GetPrice(OptionPrice);
    this.so_TunPrice = GetPrice(TuningPrice);
    this.so_Price = GetPrice(Price);
    this.so_Alarm = ConfData.Alarm;
    
    this.so_Option = OptToJSON(1);
    this.so_Tuning = OptToJSON(2);
    this.so_OutsideImage = $("#StepEView").get(0).src;
    this.so_InsideImage = $("#StepIView").get(0).src;
    
    for (i in GlobalData.CarCase) {
        if (GlobalData.CarCase[i].CarCaseID == ConfData.CarCaseID) {
            this.so_CarCase = GlobalData.CarCase[i].Name;
            break;
        }
    }
    for (i in GlobalData.CarEngine) {
        if (GlobalData.CarEngine[i].CarEngineID == ConfData.CarEngineID) {
            this.so_CarEngine = GlobalData.CarEngine[i].Name;
            break;
        }
    }
    for (i in GlobalData.Transmission) {
        if (GlobalData.Transmission[i].TransmissionID == ConfData.TransmissionID) {
            this.so_Transmission = GlobalData.Transmission[i].Name;
            break;
        }
    }
    for (i in GlobalData.CarKit) {
        if (GlobalData.CarKit[i].CarKitID == ConfData.CarKitID) {
            this.so_CarKit = GlobalData.CarKit[i].Name;
            break;
        }
    }
    for (i in GlobalData.CaseColor) {
        if (GlobalData.CaseColor[i].CaseColorID == ConfData.CaseColorID) {
            this.so_CaseColor = GlobalData.CaseColor[i].Name;
            break;
        }
    }
    for (i in GlobalData.Salon) {
        if (GlobalData.Salon[i].SalonID == ConfData.SalonID) {
            this.so_Salon = GlobalData.Salon[i].Name;
            break;
        }
    }
    return this;
}
function CommentControl() {
    if ($("#CommentForm").css("display") == "none") {
        $("#CommentForm").slideDown("slow");
        $("#CommentControl").text("Скрыть комментарий");
    } else {
        $("#CommentForm").slideUp("slow");
        $("#CommentControl").text("Показать комментарий");
    }
}
function TradeControl() {
    if ($("#TradeForm").css("display") == "none") {
        $("#TradeForm").slideDown("slow");
    } else {
        $("#TradeForm").slideUp("slow");
    }
}
function StepWin() {
    if (StepWinShowed) {
        StepWinClose();
        return;
    }
    StepWinShowed = true;
    $("#Step4").css({ display:"none", visibility:"hidden" });    
    $("#StepWin").css({ display:"block", visibility:"visible" });
    $("#StepOperLinks").html("");
    $("#StepNavigator").html("<a href=\"javascript:StepWinClose();\" class=\"previous_page\"><span></span><strong class=\"active_arrow\">Вернуться к конфигуратору </strong></a><a href=\"javascript:SendOrder()\" class=\"next_page\"><strong  class=\"active_arrow\">Отправить заказ </strong><img src=\"/configurator/image/Opel/steps_content/blue_logo_big.png\"/></a>");       
}
function StepWinClose() {
    StepWinShowed = false;
    $("#StepWin").css({ display:"none", visibility:"hidden" });    
    $("#Step4").css({ display:"block", visibility:"visible" });
    $("#StepOperLinks").html(Step[4].operLinks);
    $("#StepNavigator").html(Step[4].navigator);
}
function ShowOptionsFromCarKit() {
    if (ConfData.CarKitID == null) {
        return void(0);
    }
    if (TempData.Catalog == null) {
        $.post(webRoot + '/json/loadstep3/' + Model + '/', {
            CarKitID : ConfData.CarKitID
        }, function (data) {
            TempData.Catalog = data.data.Catalog;
            TempData.Option = data.data.Options;
            for (i in TempData.Option) {
                var _sel = false;
                if (TempData.Option[i].Presence == "+") {
                    _sel = true;
                }
                ConfData.Option.push({
                    OptionID : TempData.Option[i].OptionID,
                    Key : i,
                    Sel : _sel
                });
            }
            ShowOptionsFromCarKit();
        }, "json");    
    } else {
        //ToDo: Create window and show options list...
        for (i in GlobalData.CarKit) {
            if (GlobalData.CarKit[i].CarKitID == ConfData.CarKitID) {
                CarKitName = GlobalData.CarKit[i].Name;
                break;
            }
        }
        var wnd = window.open("", "Опции", "scrollbars=yes,menubar=no,resizable=yes,width=800,height=800");
        wnd.document.write("<html><head>");
        wnd.document.write("<title>Опции комплектации " + NameplateName + " " + ModelName + " комплектация " + CarKitName + "</title>");
        wnd.document.write("<link href=\"/configurator/style/FrontEnd_Page.Opel.css\" rel=\"stylesheet\" type=\"text/css\" />");                                          
        wnd.document.write("<link href=\"/configurator/style/win_style2.css\" rel=\"stylesheet\" type=\"text/css\" />");                                          
        wnd.document.write("<style type=\"text/css\">BODY { background-color: White; } .right_content { margin-left: 30px; margin-top: 50px; }</style>");
        
        wnd.document.write("<script type=\"text/javascript\" src=\"/configurator/script/jquery.js\"></script>");

        wnd.document.write("</head><body><div id=\"StepForm\" class=\"items_select_form\">");
        
        var block = $("<div></div>");
        block.setTemplateElement("ShowCarKitOpt");
        block.processTemplate(TempData);
        wnd.document.write(block.html());
        
        wnd.document.write("</div>");
        wnd.document.write("<div id=\"FloatWin\" class=\"window\" style=\"display: none;\"><div class=\"win_body\"><div><a href=\"#\"><img src=\"/configurator/image/small_win/info.png\"/><span id=\"WinTitle\"></span></a><a href=\"javascript:CloseDesc();\" class=\"win_close\"></a></div><img id=\"WinImg\" src=\"\" /><p id=\"WinText\"></p></div><div class=\"win_bottom\"></div></div>");
        wnd.document.write("<script type=\"text/javascript\">");
        wnd.document.write("var y1 = 10; (document.getElementById) ? dom = true : dom = false; function placeIt() {if (dom && !document.all) {document.getElementById(\"FloatWin\").style.top = window.pageYOffset + 250 + (window.innerHeight - (window.innerHeight-y1)) + \"px\";} if (document.all) {document.all[\"FloatWin\"].style.top = document.documentElement.scrollTop + 250 + (document.documentElement.clientHeight - (document.documentElement.clientHeight-y1)) + \"px\";} window.setTimeout(\"placeIt()\", 10); }");
        wnd.document.write("function ShowDesc(title, content) { if (content == \"\") { return; } var width  = $(\"#FloatWin\").width(); var height = $(\"#FloatWin\").height(); var _left   = (screen.width  - width)/2; var _top    = (screen.height - height)/2; $(\"#FloatWin\").css({top: _top, left: _left}); $(\"#WinImg\").hide(); $(\"#WinTitle\").text(title); $(\"#WinText\").html(content); placeIt(); $(\"#FloatWin\").show(); }");
        wnd.document.write("function CloseDesc() {$(\"#WinImg\").hide(); $(\"#WinTitle\").text(\"\"); $(\"#WinText\").text(\"\"); $(\"#FloatWin\").hide(); }");
        wnd.document.write("</script>");
        wnd.document.write("</body></html>");
        wnd.document.close();
        TempData.Catalog = null;
    }
}
function ShowPrintVersion() {
    if (CurrentStep != 4) {
        return;
    }
    var wnd = window.open("", "Заказ", "scrollbars=yes,menubar=no,resizable=yes,width=800,height=800");
    wnd.document.writeln("<html><head>");
    wnd.document.writeln("<title>Информация о заказе - версия для печати</title>");
    wnd.document.writeln("<link href=\"/configurator/style/FrontEnd_Page.Opel.css\" rel=\"stylesheet\" type=\"text/css\" />");                                          
    wnd.document.writeln("<style type=\"text/css\">BODY { background-color: White; } .right_content { margin-left: 30px; margin-top: 50px; }</style>");
    wnd.document.writeln("</head><body><div class=\"right_content\"><div class=\"page_title\">Конфигуратор | " + NameplateName + " " + ModelName + "</div><div class=\"yellow_line\"></div><div class=\"real_content\"><!--PageContent--><div class=\"content_top\"><span id=\"StepTitle\">Итог</span><strong id=\"StepPrice\"></strong></div><div class=\"pere\"></div><div class=\"pic_and_info\"><div class=\"cont_pic\"><img width=\"242\" height=\"179\" id=\"StepEView\" src=\"" + $("#StepEView").get(0).src + "\"></div><div class=\"cont_pic\"><img width=\"242\" height=\"179\" id=\"StepIView\" src=\"" + $("#StepIView").get(0).src+ "\"></div><div id=\"StepContInfo\" class=\"cont_info\"><div class=\"price_info\"><span>тел.:</span><strong>(812) 703-0-703</strong><span>пр. Энергетиков, 53 А</span></div></div></div><div class=\"pere\"></div><div id=\"StepForm\" class=\"items_select_form\"><div id=\"Step4\" class=\"fourth_step_form\">");
    
    var block = $("#Step4");
    
    wnd.document.writeln(block.html());
    wnd.document.writeln("</div></div><!--/ PageContent-->");
    wnd.document.writeln("<div id=\"StepOperLinks\" class=\"oper_links\"><div class=\"blue_bot_price\"><div class=\"new_string\">Итоговая стоимость<strong id=\"StepPrice2\">" + GetPrice(Price) + "</strong></div></div></div>");
    wnd.document.writeln("</div></div></body></html>");
}
function TestCC(_CarCaseID) {
    var i = FindBasePrice(_CarCaseID, ConfData.CarEngineID, ConfData.TransmissionID, ConfData.CarKitID);
    if (i != null) return true;
    else false;
}
function TestCE(_CarEngineID) {
    var i = FindBasePrice(ConfData.CarCaseID, _CarEngineID, ConfData.TransmissionID, ConfData.CarKitID);
    if (i != null) return true;
    else false;
}
function TestTM(_TransmissionID) {
    var i = FindBasePrice(ConfData.CarCaseID, ConfData.CarEngineID, _TransmissionID, ConfData.CarKitID);
    if (i != null) return true;
    else false;
}
function TestCK(_CarKitID) {
    var i = FindBasePrice(ConfData.CarCaseID, ConfData.CarEngineID, ConfData.TransmissionID, _CarKitID);
    if (i != null) return true;
    else false;
}
function AutoSelectInStep1() {
   for (var i = 0; i < 4; i++) {
      var sel = $("div#Step1 > div:eq(" + i + ") > div > input[disabled=0][checked=0]");
      //alert("i = " + i + "; sel.length = " + sel.length);
      if (sel.length == 1) {
         //alert("Wiil be autoselect " + sel.attr("id"));
         var tmp = sel.attr("id").split("_");
         var type = tmp[0];
         var id = tmp[1];
         if (ConfData[type] == null) {
            $("div#Step1 input#" + sel.attr("id")).attr("checked", 1);
            $("div#Step1 input#" + sel.attr("id")).change();
            //alert("Select input#" + sel.attr("id"));
            return true;
         }
      }
   }
   return false;
}
function SelectSalon(_SalonID) {
    if (CurrentStep != 2) return;
    ConfData.SalonID = _SalonID;
    Step[3].Reset();
    Step[2].ShowForm();
    ShowStepContentInfo();    
}
function SelectCaseColor(_CaseColorID) {
    if (CurrentStep != 2) return;
    ConfData.CaseColorID = _CaseColorID;
    ConfData.SalonID = null;
    Step[3].Reset();
    Step[2].ShowForm();
    ShowStepContentInfo();
}
function SelectCarCase(_CarCaseID) {
    if (CurrentStep != 1) return;
    ConfData.CarCaseID = _CarCaseID;
    Step[3].Reset();
    Step[2].Reset();
    $("#StepNavigator").html(Step[1].navigator);
    Price = 0;
    //ShowPrice();
    Step[1].ShowForm();
    //$("#StepIView").get(0).src = webRoot + IViewDef;
    $.post(webRoot + '/json/loadcasephoto/' + Model + '/', { CarCaseID : _CarCaseID }, function (data) {
        $("#StepEView").get(0).src = webRoot + data.data.Photo;
    }, "json");
    TestStep1();
    ShowStepContentInfo();
    AutoSelectInStep1();
}
function SelectCarEngine(_CarEngineID) {
    if (CurrentStep != 1) return;
    ConfData.CarEngineID = _CarEngineID;
    Step[3].Reset();
    Step[2].Reset();
    $("#StepNavigator").html(Step[1].navigator);
    Price = 0;
    //ShowPrice();
    Step[1].ShowForm();
    //$("#StepIView").get(0).src = IViewDef;
    
    TestStep1();
    ShowStepContentInfo();
    AutoSelectInStep1();
}
function SelectTransmission(_TransmissionID) {
    if (CurrentStep != 1) return;
    ConfData.TransmissionID = _TransmissionID;
    $("#StepNavigator").html(Step[1].navigator);
    Price = 0;
    Step[3].Reset();
    Step[2].Reset();
    //ShowPrice();
    Step[1].ShowForm();
    for (i in GlobalData.Transmission) {
        if (GlobalData.Transmission[i].TransmissionID == _TransmissionID) {
            if (GlobalData.Transmission[i].Place == 1) {
                $("#StepIView").get(0).src = webRoot + GlobalData.Transmission[i].Photo;        
            }   
        }
    }
    
    TestStep1();
    ShowStepContentInfo();
    AutoSelectInStep1();
}
function SelectCarKit(_CarKitID) {
    if (CurrentStep != 1) return;
    ConfData.CarKitID = _CarKitID;
    Step[3].Reset();
    Step[2].Reset();
    Step[1].ShowForm();
    //ShowPrice();
    
    TestStep1();
    ShowStepContentInfo();
    AutoSelectInStep1();
}
function TestStep1() {
    Price = 0;
    var A = -1;
    if ((ConfData.CarCaseID == null) ||
        (ConfData.CarEngineID == null) ||
        (ConfData.TransmissionID == null) ||
        (ConfData.CarKitID == null)) {
        return;    
    }
        var i = FindBasePrice(ConfData.CarCaseID, ConfData.CarEngineID, ConfData.TransmissionID, ConfData.CarKitID);
        if (i != null) {
        //if (TestCK(_CarKitID)) {
            if (parseInt(GlobalData.BasePrice[i].Alarm) == 1) A = 1;
                Price = parseFloat(GlobalData.BasePrice[i].Price);
                BasePrice = parseFloat(GlobalData.BasePrice[i].Price);
                ConfData.BasePriceID = GlobalData.BasePrice[i].BasePriceID;
                ConfData.Alarm = A;
            $("#StepNavigator").html("<a href=\"javascript:SelectStep(2)\" class=\"next_page\"><strong  class=\"active_arrow\">Следующий шаг </strong><span class=\"active_arrow\"></span></a>");
        }    
}
function FindBasePrice(CarCaseID, CarEngineID, TransmissionID, CarKitID) {
   for (i in GlobalData.BasePrice) {
         var ccid = true;
         var ceid = true;
         var trid = true;
         var ckid = true;
         if ((CarCaseID != null) && (GlobalData.BasePrice[i].CarCaseID != CarCaseID)) ccid =  false;
         if ((CarEngineID != null) && (GlobalData.BasePrice[i].CarEngineID != CarEngineID)) ceid =  false;
         if ((TransmissionID != null) && (GlobalData.BasePrice[i].TransmissionID != TransmissionID)) trid =  false;
         if ((CarKitID != null) && (GlobalData.BasePrice[i].CarKitID != CarKitID)) ckid =  false;
        if (ccid && ceid && trid && ckid) {
            return i;
        }
   }
   return null;
}

/*//////////////////////////////////////////////////////////////////////////////////////////////////////////*/
function OW_HaveOpt(CatID) 
{
  for (i in TempData.Catalog)
   {
     if (TempData.Catalog[i].OptionsGroupID == CatID) 
     {
        if (TempData.Catalog[i].ParentID == "") 
        {  
         for (j in TempData.Catalog) 
              if (TempData.Catalog[j].ParentID == TempData.Catalog[i].OptionsGroupID) 
                 if (OW_HaveOpt2(TempData.Catalog[j].OptionsGroupID))
                    return true;
         }
         else return OW_HaveOpt2(CatID);
     }
  }
  return false;
} 

function OW_HaveOpt2(CatID) 
{
   for (k in TempData.Option) 
      if ((TempData.Option[k].OptionsGroupID == CatID) && (TempData.Option[k].Type == 1) && (TempData.Option[k].Presence == "+")) 
         return true;
   return false;
}     
/*//////////////////////////////////////////////////////////////////////////////////////////////////////////*/                    
function HaveOpt(CatID, _Type) {
   try {
      var res = (GlobalData.Catalog[parseInt(CatID)].options(parseInt(_Type)).length > 0)?true:false;
   } catch (err) {
      return false;
   }
   return res;
}        
/*//////////////////////////////////////////////////////////////////////////////////////////////////////////*/
function HaveSelOpt(CatID, _Type) 
{
   return (GlobalData.Catalog[CatID].selectedOptionsCount(_Type) > 0)?true:false;
}
/*//////////////////////////////////////////////////////////////////////////////////////////////////////////*/
function OptClick(_CatID, _Type) 
{
   if (!GlobalData.Catalog[_CatID].isRoot()) return;
   var item = $("li#CatLi_" + _CatID + "_" + _Type + " > ul");
   if (item.html() == "") {
      var tempData = GlobalData.Catalog[_CatID].childs();
      for (i in tempData) {
         var CatID = tempData[i].data.OptionsGroupID;
         var CatName = tempData[i].data.Name;
         if (HaveOpt(CatID, _Type)) {
            item.append( '<li id="CatLi_' + CatID + '_' + _Type + '"><a href="javascript:OptClick2(' + CatID + ',' + _Type + ')" class="li">' + CatName + '</a><div class="super_table InvisibleBlock"><div class="tab_top_right"></div><div class="tab_bot_left"></div><div class="tab_bot_right"></div><table class="pretty_table" width="615"><tbody></tbody></table></div></li>' );
         }
      }
   }
   var link = $("li#CatLi_" + _CatID + "_" + _Type + " > a");
   if (!link.length) return;
   if (item.css("display") == "none") 
   {
      item.show();
      link.removeClass("li").addClass("li_a");
   }
   else 
   {
      item.hide();
      link.removeClass("li_a").addClass("li");
   }
}

function OptClick2(_CatID, _Type) 
{
   if (GlobalData.Catalog[_CatID].isRoot()) return;
   var item = $("li#CatLi_" + _CatID + "_" + _Type + " div.super_table table.pretty_table tbody");
   if (item.html() == "") {
      var header = '<tr class="first_row"><td width="370" ><p>Названия опций</p></td><td width="204"></td><td width="75">Стоимость</td><td width="120">Включено</td></tr>';
      item.append( header );
      var tempData = GlobalData.Catalog[_CatID].options(_Type);
      for (i in tempData) {
         try {
         var td = tempData[i];
         } catch (err) { continue; }
         var OptDesc = td.data.Desc.replace(/"/g, "&quot;");
         var OptID = td.data.OptionID;
         var OptName = td.data.Name;
         var OptPrice = GetPrice(td.data.Presence);
         var OptApplic = OptionsApplicabilityText(OptID);
         var OptCompat = OptionsCompatibilityText(OptID);
         //var OptDesc = td.data.Desc.replace(/"/g, "&quot;");
         var OptSound = td.data.Sound;
         var SoundLink = "";
         var DescLink = "";
         var CompatLink = "";
         var ApplicLink = "";
         var SelAttr = "";
         var DisAttr = "";
         if (td.sel) {
            SelAttr = "checked";
            if (td.data.Presence == "+") {
               DisAttr = "disabled";
            }
         }
         /*if (!td.appl) {
            DisAttr = "disabled";
            ApplicLink = '<a href="javascript:ShowApplic(' + td.data.OptionID + ');" class="config_ico"></a>';
         }*/
         if (OptSound != "") {
            SoundLink = '<a href="javascript:void(0);" class="sound_ico"></a>';
         }
         if (OptDesc != "") {
            DescLink = '<a href="javascript:ShowDesc(\'' + OptName + '\',\'' + OptDesc + '\');" class="info_ico"></a>';
         }
         //if (!CompatIsEmpty(td.compat)) {
         if (OptCompat) {
            //CompatLink = '<a href="javascript:ShowCompat(' + td.data.OptionID + ');" class="light_ico"></a>';
            CompatLink = '<a href="javascript:ShowDesc(\'' + td.data.Name + '\', \'' + OptCompat + '\');" class="light_ico"></a>';
         }
         if (OptApplic != "") {
            //ApplicLink = '<a href="javascript:ShowApplic(\'' + td.data.OptionID + '\');" class="config_ico"></a>';
            ApplicLink = '<a href="javascript:ShowDesc(\'' + td.data.Name + '\', \'' + OptApplic + '\');" class="config_ico"></a>';
            DisAttr = "disabled";
         }
         
         item.append( '<tr id="OptID_' + OptID + "_" + _Type + '"><td><div><p>' + OptName + '</p></div></td><td class="td_ico">' + ApplicLink + CompatLink + DescLink + SoundLink + '</td><td class="td_price">' + OptPrice + '</td><td><input value="' + OptID + '" onchange="javascript:SelOpt(' + OptID + ');" type="checkbox" ' + SelAttr + " " + DisAttr + ' /></td></tr>' );
      }
      $("li#CatLi_" + _CatID + "_" + _Type + " div.super_table table.pretty_table tbody tr:even").addClass("grey_row");
   }
   if ($("li#CatLi_" + _CatID + "_" + _Type + " div.super_table").css("display") == "none") 
   {
      //item.show();
      $("li#CatLi_" + _CatID + "_" + _Type + " div.super_table").show();
      $("li#CatLi_" + _CatID + "_" + _Type + " > a").removeClass("li").addClass("li_a");
   } else {
      //item.hide();
      $("li#CatLi_" + _CatID + "_" + _Type + " div.super_table").hide();
      $("li#CatLi_" + _CatID + "_" + _Type + " > a").removeClass("li_a").addClass("li");
   }
   for (i in ConfData.Option) {
      $("#OptID_" + ConfData.Option[i].data.OptionID + "_" + ConfData.Option[i].data.Type + "").attr({checked:"checked"});
   }
}



function OpenAll() {
   $("#optListCtrl").html("<img src=\"/configurator/image/Opel/minimize.png\" /><a href=\"javascript:CloseAll();\">Свернуть список</a>");
   catClicker1(1);   
   //catClicker1(2);   
}
function CloseAll() {
   $("#optListCtrl").html("<img src=\"/configurator/image/Opel/maximize.png\" /><a href=\"javascript:OpenAll();\">Развернуть список</a>");
   catClicker2(1);   
   //catClicker2(2);   
}

function catClicker1(_type) {
   var _cat = GlobalData.Catalog;
   for (i in _cat) {
      if (_cat[i].isRoot() && isClose(_cat[i].data.OptionsGroupID, _type)) OptClick(_cat[i].data.OptionsGroupID, _type);
   }
   for (i in _cat) {
      if (!_cat[i].isRoot() && isClose(_cat[i].data.OptionsGroupID, _type)) OptClick2(_cat[i].data.OptionsGroupID, _type);
   }
}
function catClicker2(_type) {
   var _cat = GlobalData.Catalog;
   for (i in _cat) {
      if (!_cat[i].isRoot() && isOpen(_cat[i].data.OptionsGroupID, _type)) OptClick2(_cat[i].data.OptionsGroupID, _type);
   }
   for (i in _cat) {
      if (_cat[i].isRoot() && isOpen(_cat[i].data.OptionsGroupID, _type)) OptClick(_cat[i].data.OptionsGroupID, _type);
   }
}

function isOpen(id, type) {
   return $("#CatLi_" + id + "_" + type + " > a").hasClass("li_a");
}
function isClose(id, type) {
   return $("#CatLi_" + id + "_" + type + " > a").hasClass("li");
}

function ShowApplic(_OptID) {
   if (!GlobalData.Option[_OptID].appl) {
      ShowDesc(GlobalData.Option[_OptID].data.Name, OptionsApplicabilityText(_OptID));
   } else {
      ShowDesc(GlobalData.Option[_OptID].data.Name, 'Опция применима к выбранной конфигурации.');
   }
}

function ShowCompat(_OptID) {
   var OptCompat = OptionsCompatibilityText(_OptID);
   if (OptCompat != "") {
      ShowDesc(GlobalData.Option[_OptID].data.Name, OptCompat);   
   } else {
      ShowDesc(GlobalData.Option[_OptID].data.Name, 'Нет сведений о сочетаемости.');   
   }
}

/*
   change: 06.08.08 03:00
*/
function SelOpt(OptID) 
{
   if (!TestOptionsCompatibility(OptID)) {
   GlobalData.Option[OptID].sel = false;
   //alert("не сочетается");
      $("#OptID_" + GlobalData.Option[OptID].data.OptionID + "_" + GlobalData.Option[OptID].data.Type + " td:last input:checkbox").removeAttr("checked");
      SelectedOptions();
      return;  
   };   
   try {
      GlobalData.Option[OptID].sel = !GlobalData.Option[OptID].sel;
   } catch (err) {}
   //GlobOptCompat();
   OptCompat(OptID);
   SelectedOptions();
   ShowStepContentInfo();
   if (jQuery.browser.msie) {
      $("#StepContInfo").html( $("#StepContInfo").html() );
   }
}
/*
   change: 06.08.08 03:00
*/
function SelectedOptions() {
   ConfData.Option = new Array();
   for (i in GlobalData.Catalog) {
      var temp1 = GlobalData.Catalog[i].selectedOptions(1);
      for (j in temp1) {
         ConfData.Option[temp1[j].data.OptionID] = temp1[j];
      }
      var temp2 = GlobalData.Catalog[i].selectedOptions(2);
      for (k in temp2) {
         ConfData.Option[temp2[k].data.OptionID] = temp2[k];
      }
   }
   $("input:checkbox").removeAttr("checked");
   for (i in ConfData.Option) {
      $("#OptID_" + ConfData.Option[i].data.OptionID + "_" + ConfData.Option[i].data.Type + " td input:checkbox").attr({checked:"checked"});
   }
   return ConfData.Option;
}
/*//////////////////////////////////////////////////////////////////////////////////////////////////////////*/

/*
   change: 06.08.08 03:00
*/
function GlobOptCompat() 
{
   for (i in ConfData.Option) 
      if (ConfData.Option[i].sel) 
         OptCompat(ConfData.Option[i].data.OptionID);
}

//----------------------------------
/*
   change: 06.08.08 02:53
*/
function OptCompat(OptID) 
{
   //Test ReplaceIn
   if (jQuery.inArray(OptID, GlobalData.Option[OptID].compat.replaceIn) == -1) {
      for (j in ConfData.Option) {
         if ( (ConfData.Option[j].data.Presence != "+") 
            && (jQuery.inArray(ConfData.Option[j].data.OptionID, GlobalData.Option[OptID].compat.replaceIn) != -1)) {
               GlobalData.Option[j].sel = false;
               //alert("Uncheck: " + ConfData.Option[j].data.Name);
               $("#OptID_" + ConfData.Option[j].data.OptionID + "_" + ConfData.Option[j].data.Type + " td:last input:checkbox").removeAttr("checked");
            }
      }
   }
   //Test OnlyWith
   if (jQuery.inArray(OptID, GlobalData.Option[OptID].compat.onlyWith) == -1) {
      for (j in GlobalData.Option) {
         if ( jQuery.inArray(GlobalData.Option[j].data.OptionID, GlobalData.Option[OptID].compat.onlyWith) != -1 ) {
            GlobalData.Option[j].sel = true;
            //alert("Check: " + GlobalData.Option[j].data.Name);
            $("#OptID_" + GlobalData.Option[j].data.OptionID + "_" + GlobalData.Option[j].data.Type + " td:last input:checkbox").attr({checked:"checked"});     
         }
      }
   }
   /*for (j in ConfData.Option) 
      if ( (ConfData.Option[j].data.Presence != "+") 
         && !TestOptionsCompatibility2(ConfData.Option[j].data.OptionID)) { 
            ConfData.Option[j].sel = false;
         }*/
   return;
}
/*
   change: 06.08.08 03:00
*/
function TestOptionsCompatibility2(OptID) 
{
   //Test NotCompatibleWith
   if (jQuery.inArray(OptID, GlobalData.Option[OptID].compat.notCompatibleWith) == -1) 
      for (j in ConfData.Option) 
         if (jQuery.inArray(ConfData.Option[j].data.OptionID, GlobalData.Option[OptID].compat.notCompatibleWith) != -1)
            return false;
   //Test OnlyWith
   /*if (jQuery.inArray(OptID, GlobalData.Option[OptID].compat.onlyWith) == -1) 
      for (j in ConfData.Option) 
         if (jQuery.inArray(ConfData.Option[j].data.OptionID, GlobalData.Option[OptID].compat.onlyWith) != -1) 
            return false;*/
   //Test OnlyOnce
   if (jQuery.inArray(OptID, GlobalData.Option[OptID].compat.onlyOnce) == -1) {
      var optionSelected = false;
      for (j in ConfData.Option) {
         if (jQuery.inArray(ConfData.Option[j].data.OptionID, GlobalData.Option[OptID].compat.onlyOnce) != -1) {
            optionSelected = true;
            break;
         }
      }
      if (optionSelected == false) 
         return false;
   }
   return true;
}
/*
   change: 06.08.08 02:34
*/
function TestOptionsCompatibility(OptID) 
{
   //Test NotCompatibleWith
   try {
   if (CompatIsEmpty(GlobalData.Option[OptID].compat)) {
      return true;
   }
      //if (jQuery.inArray(OptID, GlobalData.Option[OptID].compat.notCompatibleWith) == -1)
      if (!cieTest(GlobalData.Option[OptID].compat.notCompatibleWith)) { 
         for (j in ConfData.Option) 
            if ( jQuery.inArray(ConfData.Option[j].data.OptionID, GlobalData.Option[OptID].compat.notCompatibleWith) != -1 ) {
               //alert("NotCompatible with " + ConfData.Option[j].data.Name);
               return false;
            }
      }
      //Test OnlyOnce
      /*if ( (GlobalData.Option[OptID].compat.onlyOnce != null) 
            && (jQuery.inArray(OptID, GlobalData.Option[OptID].compat.onlyOnce) == -1) ) {*/
      if (!cieTest(GlobalData.Option[OptID].compat.onlyOnce)) {
         var optSel = 0;
         for (j in ConfData.Option) 
            if ( jQuery.inArray(ConfData.Option[j].data.OptionID, GlobalData.Option[OptID].compat.onlyOnce) != -1 ) {
               optSel++;
               break;
            }
         if (optSel != 1) {
            //alert("OptSel: " + optSel);
            return false;
         }
      }
   } catch (err) {}
   return true;
}

function CompatIsEmpty(_compat) {
   return (cieTest(_compat.replaceIn) && cieTest(_compat.onlyWith) && cieTest(_compat.notCompatibleWith) && cieTest(_compat.onlyOnce));
}

function cieTest(_value) {
   return ((_value[0] == "") || (_value[0] == null));
}

function OptionsCompatibilityText(OptID) 
{
   var Text = "";
   try {
      Text += optCompStr(GlobalData.Option[OptID].compat.replaceIn, "Заменяет опции:");
      Text += optCompStr(GlobalData.Option[OptID].compat.onlyWith, "Используется только вместе с опциями:");
      Text += optCompStr(GlobalData.Option[OptID].compat.notCompatibleWith, "Несовместимо с опциями:");   
      Text += optCompStr(GlobalData.Option[OptID].compat.onlyOnce, "Используется с одной из опций:");
   } catch(err) {}
   return Text.replace(/"/g, "&quot;");
}

function optCompStr(_compat, _comment) {
   if ((_compat[0] != "") || (_compat[0] != null)) {
      var optNames = fcOptList(_compat);
      if (optNames != "") 
         return "<p><strong>" + _comment + "</strong></p><ul>" + optNames + "</ul>";
   }
   return "";
}

function fcOptList(_optList) {
   var optNames = "";
   //if (_optList[0] != "") {
      for (i in _optList) {
         try {
            optNames += "<li>" + GlobalData.Option[_optList[i]].data.Name + "</li>";
         } catch (err) { continue; }
      }
   //}
   return optNames;
}

function optApplStr(_optID, _catalog, _key, _element, _filter, _text) {
   var Text = "";
   var Temp = "";
   try {
      if (jQuery.inArray(_element, _filter) == -1) {
         Text += "<p><strong>" + _text + "</strong></p><ul>";
         Temp = optApplListMerge(_catalog, _filter, _key);
         if ("" == Temp) {
            return "";
         }
         Text += Temp;
         Text += "</ul>";   
      }
   } catch(err) {}
   return Text;
}

function optApplListMerge(_source, _target, _key) {
   var Text = "";
   for (i in _source) {
      try {
         if (jQuery.inArray(_source[i][_key], _target) != -1) {
            Text += "<li>" + _source[i].Name + "</li>";        
         }
      } catch(err) {
         continue;
      }
   }
   return Text;
}

function OptionsApplicabilityText(OptID) 
{
   var Text = "";
   
   var data = [{  Catalog:GlobalData.CarEngine,
                  Key:"CarEngineID",
                  Element:ConfData.CarEngineID,
                  Filter:GlobalData.Option[OptID].applic.toEngine,
                  Text:"Данная опция применима только к следующим типам двигателя:" },
               {  Catalog:GlobalData.CarCase,
                  Key:"CarCaseID",
                  Element:ConfData.CarCaseID,
                  Filter:GlobalData.Option[OptID].applic.toCase,
                  Text:"Данная опция применима только к следующим типам кузова:" },
               {  Catalog:GlobalData.Transmission,
                  Key:"TransmissionID",
                  Element:ConfData.TransmissionID,
                  Filter:GlobalData.Option[OptID].applic.toTransmission,
                  Text:"Данная опция применима только к следующим типам коробок передач:" },
               {  Catalog:GlobalData.CaseColor,
                  Key:"CaseColorID",
                  Element:ConfData.CaseColorID,
                  Filter:GlobalData.Option[OptID].applic.toCaseColor,
                  Text:"Данная опция применима только к следующим цветам кузова:" },
               {  Catalog:GlobalData.Salon,
                  Key:"SalonID",
                  Element:ConfData.SalonID,
                  Filter:GlobalData.Option[OptID].applic.toSalon,
                  Text:"Данная опция применима только к следующим отделкам салона:" }];
   
   try {
      for (i in data) {
         Text += optApplStr(OptID, data[i].Catalog, data[i].Key, data[i].Element, data[i].Filter, data[i].Text);
      }
   } catch (err) {}
   return Text;
}

/*
   change: 06.08.08 01:54
*/
function TestOptionsApplicability(OptID) 
{   
   try {
   //Test CarEngine
   if (ApplicIsEmpty(GlobalData.Option[OptID].applic)) return true;
   
   if ((jQuery.inArray(ConfData.CarEngineID, GlobalData.Option[OptID].applic.toEngine) == -1) 
         && (GlobalData.Option[OptID].applic.toEngine[0] != null)) 
      return false;
   //Test CarCase
   if ((jQuery.inArray(ConfData.CarCaseID, GlobalData.Option[OptID].applic.toCase) == -1) 
         && (GlobalData.Option[OptID].applic.toCase[0] != null)) 
      return false;
   //Test Transmission
   if ((jQuery.inArray(ConfData.TransmissionID, GlobalData.Option[OptID].applic.toTransmission) == -1) 
         && (GlobalData.Option[OptID].applic.toTransmission[0] != null))
      return false;
   //Test CaseColor                                                                       
   if ((jQuery.inArray(ConfData.CaseColorID, GlobalData.Option[OptID].applic.toCaseColor) == -1) 
         && (GlobalData.Option[OptID].applic.toCaseColor[0] != null))
      return false;
   //Test Salon
   if ((jQuery.inArray(ConfData.SalonID, GlobalData.Option[OptID].applic.toSalon) == -1) 
         && (GlobalData.Option[OptID].applic.toSalon[0] != null))
      return false;
   } catch (err) {}
   return true;
}

function ApplicIsEmpty(_applic) {
   return (cieTest(_applic.toEngine) && cieTest(_applic.toCase) && cieTest(_applic.toTransmission) && cieTest(_applic.toCaseColor) && cieTest(_applic.toSalon));
}

function IsSel(OptID) 
{  
   return GlobalData.Option[OptID].sel;
}
function ShowOptList() {
    if ($("#OptBookmark_1").get(0).className == "pas_bookmark") {
        $("#OptBookmark_2").get(0).className = "pas_bookmark";
        $("#OptBookmark_1").get(0).className = "act_bookmark";
        $("#OptList_2").get(0).className = "InvisibleBlock";
        $("#OptList_1").get(0).className = "VisibleBlock";
    }
}
function ShowTunList() {
    if ($("#OptBookmark_2").get(0).className == "pas_bookmark") {
        $("#OptBookmark_1").get(0).className = "pas_bookmark";
        $("#OptBookmark_2").get(0).className = "act_bookmark";
        $("#OptList_1").get(0).className = "InvisibleBlock";
        $("#OptList_2").get(0).className = "VisibleBlock";
    }
}
//Select step of wizard
function SelectStep(stepNumber) {
    if (StepWinShowed) {
        return;
    }
    var i = 0;               
    if ((stepNumber > 4) || (stepNumber < 1)) {
        return;
    }
    if ((stepNumber != 1) && !Step[CurrentStep].Validate()) {
        return;
    }
    CurrentStep = stepNumber;
    for (i = 1; i < stepNumber; i++) {
        $("#StepStatus" + i).get(0).className = "prev_pos";
        
    }
    $("#StepStatus" + stepNumber).get(0).className = "act_pos";
    for (i = stepNumber + 1; i <= 4; ++i) {
        $("#StepStatus" + i).get(0).className = "unact_pos";    
    }
    for (i = 1; i <= 4; i++) {
        $("#Step" + i).css({ display:"none", visibility:"hidden" });    
    }
    $("#Step" + stepNumber).css({ display:"block", visibility:"visible" });  
    ShowTitle(Step[CurrentStep].title);                                     
    //ShowPrice();
    $("#StepOperLinks").html(Step[CurrentStep].operLinks);
    $("#StepNavigator").html(Step[CurrentStep].navigator);
    //Step[CurrentStep].ShowForm();
    Step[CurrentStep].ShowForm();
    if (stepNumber == 4) {
      if ((USD == 0) || (EUR == 0)) $("#Currency2").hide();
    }
    ShowStepContentInfo();
}
//Set price block value
function ShowPrice() {
    $("#StepPrice").html(GetPrice(Price));
    if (CurrentStep == 4) {
        $("#StepPrice2").html(GetPrice(Price));
        $("#Currency2").get(0).selectedIndex = $("#Currency").get(0).selectedIndex;
    }
    //Step[CurrentStep].ShowForm();
}
function ShowPrice1() {
    $("#StepPrice").html(GetPrice(Price));
    if (CurrentStep == 4) {
        $("#StepPrice2").html(GetPrice(Price));
        $("#Currency2").get(0).selectedIndex = $("#Currency").get(0).selectedIndex;
    }
    Step[CurrentStep].ShowForm();
    if (CurrentStep == "3") {
      buildStep3();
      ShowStepContentInfo();
    }
}
function ShowPrice2() {
    if (CurrentStep == 4) {
        $("#Currency").get(0).selectedIndex = $("#Currency2").get(0).selectedIndex;
        $("#StepPrice").html(GetPrice(Price));
    }
    $("#StepPrice2").html(GetPrice(Price));
    Step[CurrentStep].ShowForm();
}
function GetPrice(_price) {
    if(isNaN(parseFloat(_price))) {
         if (_price == "+") {
            if (CurrentStep == 4) return "<img src=\"" + webRoot + "/image/Opel/konfig_icons/galka.png\" />";
            else return "бесплатно";
         } else return _price;
    }
    var showPrice = parseFloat(_price) / Currency[GetCurrentCurrency()].val;
    //showPrice = showPrice.toFixed(2);
    showPrice = Math.round(showPrice);
    showPrice += Currency[GetCurrentCurrency()].sign;
    return showPrice;    
}
function GetSimplePrice(_price) {
    if(isNaN(parseFloat(_price))) {
         if (_price == "+") {
            return "бесплатно";
         } else return _price;
    }
    var showPrice = parseFloat(_price) / Currency[GetCurrentCurrency()].val;
    //showPrice = showPrice.toFixed(2);
    showPrice = Math.round(showPrice);
    showPrice += Currency[GetCurrentCurrency()].sign;
    return showPrice;    
}
function GetCurrentCurrency() {
    return $("#Currency").val();
}
//Set title block value
function ShowTitle(titleValue) {
    $("#StepTitle").text(titleValue);
}
//Set content info block value
function ShowStepContentInfo() {
    var res1 = "";
    var res2 = "";
    if (ConfData.CarCaseID != null) {
        for (i in GlobalData.CarCase) {
            if (GlobalData.CarCase[i].CarCaseID == ConfData.CarCaseID) {
                res1 += "<div><span>Тип кузова</span><em>" + GlobalData.CarCase[i].Name + "</em></div>";
                break;
            }
        }
    }
    if (ConfData.CarEngineID != null) {
        for (i in GlobalData.CarEngine) {
            if (GlobalData.CarEngine[i].CarEngineID == ConfData.CarEngineID) {
                res1 += "<div><span>Тип двигателя</span><em>" + GlobalData.CarEngine[i].Name + "</em></div>";
                break;
            }
        }
    }
    if (ConfData.TransmissionID != null) {
        for (i in GlobalData.Transmission) {
            if (GlobalData.Transmission[i].TransmissionID == ConfData.TransmissionID) {
                res1 += "<div><span>КП</span><em>" + GlobalData.Transmission[i].Name + "</em></div>";
                break;
            }
        }
    }
    if (ConfData.CarKitID != null) {
        for (i in GlobalData.CarKit) {
            if (GlobalData.CarKit[i].CarKitID == ConfData.CarKitID) {
                res1 += "<div><span>Комплектация</span><em>" + GlobalData.CarKit[i].Name + "</em></div>";
                break;
            }
        }
    }
    res2 += "<div class=\"price_info\">";
    if (ConfData.CaseColorID != null) {
        for (i in GlobalData.CaseColor) {
            if (GlobalData.CaseColor[i].CaseColorID == parseInt(ConfData.CaseColorID)) {
                $("#StepEView").get(0).src = webRoot + GlobalData.CaseColor[i].Preview;
                res1 += "<div><span>Цвет кузова</span><em>" + GlobalData.CaseColor[i].Name + "</em></div>";
                if (GlobalData.CaseColor[i].Presence == "+") {
                    res2 += "<p>Стоимость цвета кузова включена.</p>";
                    Price = parseFloat(BasePrice);
                    ConfData.CaseColorPrice = 0;
                    //ShowPrice();
                } else {
                    res2 += "<p>Стоимость цвета кузова " + GetPrice(GlobalData.CaseColor[i].Presence) + ".</p>";
                    ConfData.CaseColorPrice = parseFloat(GlobalData.CaseColor[i].Presence);
                    Price = parseFloat(BasePrice) + parseFloat(GlobalData.CaseColor[i].Presence);
                    //ShowPrice();
                }
                break;
            }
        }
    }
    if (ConfData.SalonID != null) {
        for (i in GlobalData.Salon) {
            if ((GlobalData.Salon[i].SalonID == parseInt(ConfData.SalonID)) &&
                (GlobalData.Salon[i].CaseColorID == parseInt(ConfData.CaseColorID))) {
                $("#StepIView").get(0).src = webRoot + GlobalData.Salon[i].Preview;
                res1 += "<div><span>Обивка салона</span><em>" + GlobalData.Salon[i].Name + "</em></div>";
                if (GlobalData.Salon[i].Presence == "+") {
                    res2 += "<p>Стоимость салона включена.</p>";
                    Price = parseFloat(BasePrice) + ConfData.CaseColorPrice;
                    ConfData.SalonPrice = 0;
                    //ShowPrice();
                } else {
                    res2 += "<p>Стоимость салона " + GetPrice(GlobalData.Salon[i].Presence) + ".</p>";
                    ConfData.SalonPrice = parseFloat(GlobalData.Salon[i].Presence);
                    Price = parseFloat(BasePrice) + ConfData.CaseColorPrice + parseFloat(GlobalData.Salon[i].Presence);
                    //ShowPrice();
                }
                break;
            }
        }
    }
    //if ((ConfData.Option.toSource() != "[]") && (ConfData.CarKitID != null)) {
    if ((ConfData.Option.toString() != "") && (ConfData.CarKitID != null)) {
        OptionPrice = 0;
        TuningPrice = 0;
        for (i in ConfData.Option) {
            var Presence = ConfData.Option[i].data.Presence;
            if ((Presence != "+") || (Presence != "-")) {
                var PresPrice = GetPrice(Presence);
                if ((PresPrice != Presence) || (PresPrice != "бесплатно")) {
                    if (ConfData.Option[i].data.Type == 1) {
                        var pf = parseFloat(Presence);
                        if (!isNaN(pf) && !isNaN(pf) && !isNaN(pf)) OptionPrice += pf;
                    } else {
                        var pf = parseFloat(Presence);
                        if (!isNaN(pf) && !isNaN(pf) && !isNaN(pf)) TuningPrice += pf;
                    }
                }
            }
        }
        Price = parseFloat(BasePrice) + ConfData.CaseColorPrice + ConfData.SalonPrice + OptionPrice + TuningPrice;
        if ((OptionPrice + TuningPrice) > 0) {
            res2 += "<p>Стоимость опций " + GetPrice(OptionPrice + TuningPrice) + "</p>";
        } else {
            res2 += "<p>Стоимость опций включена.</p>";
        }
    }
    if (ConfData.Alarm == 1) {
        res2 += "<p>Сигнализация обязательна</p>";
    }
    ShowPrice();
    res2 += "</div>";
    if (CurrentStep == 4) {
        $("#StepContInfo").html("<div class=\"blue_logo\"><a href=\"javascript:StepWin();\">Заказать автомобиль</a><img src=\"/configurator/image/Opel/steps_content/blue_logo.png\"/></div><div class=\"price_info\"><span>тел.:</span><strong>(812) 703-0-703</strong><span>пр. Энергетиков, 53 А</span></div>");    
    } else {
        $("#StepContInfo").html(res1 + res2);
    }
    if (jQuery.browser.msie) {
      $("#StepContInfo").click();
    }
}
//Reset form in current step
function Reset() {
    Step[CurrentStep].Reset();
    Step[CurrentStep].ShowForm();
}

//////////////////////////////////////////////