﻿
var LanguageInputs= Class.create();
LanguageInputs.prototype =
{
   initialize:function()
   {
      this.descriptionEng = $("edtDescription_Eng");
      this.categoryNameEng = $("edtCategoryName_Eng");
      this.description = $("edtDescription");
      this.categoryName =  $("edtCategoryName");
      this.url =  $("edtUrl");
   },
   fill:function(data)
   {
      this.data= data;
        this.setValue("url",data.url);
      this.fillByLaguage(this.data.languages[0]);
      this.fillByLaguage(this.data.languages[1]);
   },
   clear:function()
   {
      this.descriptionEng.value ="";
      this.categoryNameEng.value ="";
      this.description.value ="";
      this.categoryName.value ="";
      this.url.value ="";
   },
   fillByLaguage:function(lang)
   {
      if(lang.language=="Русский") 
      {
        this.setValue("description",lang.hint);
        this.setValue("categoryName",lang.name);
      }
      else
      {
        this.setValue("descriptionEng",lang.hint);
        this.setValue("categoryNameEng",lang.name);
      }
   },
   
 
  getDataObj:function()
  { 
      
    return  {name: this.getValueForCurrentLang("categoryName"),hint:this.getValueForCurrentLang("description"),url:this.getValue("url"),
      languages:[{language:"Русский",name: this.getValue("categoryName"),hint:this.getValue("description")},
         {language:"English",name: this.getValue("categoryNameEng"),hint:this.getValue("descriptionEng")}
      ]
    }
  },
    getValueForCurrentLang:function(prop)
    {
     if(currentLanguage!="Русский")
     {prop =prop+"Eng";}
    return  this.getValue(prop);
    },    
     getValue:function(prop)
    {   
      return this[prop].value;
    },   
    setValue:function(prop, value)
    {
     if(value)  this[prop].value = value;
      
      if(value=="")  this[prop].value = value;
    }
   
 }




var AddCategoryForm  =
{
   initialize:function(container)
   {
      
     
         this.loadMembers({el:$(container),exitBtn:$("exitButton"),saveBtn:$("categorySaveBtn"),cancelBtn:$("categoryCancelBtn")});
	
            this.tabs = new Control.Tabs('tabsAddCategory');
       this.inputs  = new LanguageInputs();
      
         this.firstTabValidator =new ValidationManager("russianLang");
         this.secondTabValidator =new ValidationManager("englishLang");
         this.urlValidator =new ValidationManager("urlContainer");
         
     
     Event.observe( window,"load", this.createOverlay.bindAsEventListener(this));          
   },
    
    fill:function(data)
    {
        this.inputs.fill(data);
    
    },
  
    clearForm:function()
    {
     
      this.inputs.clear();
    },
  
   openEdit:function(data)
   {
      this.fill(data);
     this.open();
     
   },
   openAdd:function()
   {
        this.clearForm();
        this.open();
   },
  getDataObj:function()
  { 
    return    this.inputs.getDataObj();
  },
     
   save:function()
   {
     if(!this.validate()) return;
     this.parent();

   },
   validate:function()
   {

         if(!this.firstTabValidator.valide()) {this.tabs.first(); return false;}
         if(!this.secondTabValidator.valide()) {this.tabs.last(); return false;}
         if(!this.urlValidator.valide()){return false};
         return true;
   }
   
   
   
}


var AddCategoryForm =Class.extend(CustomForm,AddCategoryForm);