
var ADSL = {
  "extractToArray" : function(){},
  "alphaBackgrounds" : function(e) {
    var bg = e.currentStyle.backgroundImage;
    if (bg.match(/\.png/i) != null) { 
      var mypng = bg.substring(5,bg.length-2);
      e.setStyle({
        filter : "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+mypng+"', sizingMethod='"+(e.currentStyle.backgroundRepeat == 'no-repeat' ? 'crop' : 'scale')+"')",
        backgroundImage : "none"}); 
    }
  },
  "fnLoadPngs" : function(img){
    if (img.src.match(/\.png$/i) != null) {
      var src = img.src;
      var div = document.createElement("DIV");    
      div.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizing='scale')";
      div.style.width = img.width + "px";
      div.style.height = img.height + "px";
      img.replaceNode(div); 
    }
  },
  "changeOnglet" : function (el, showBox) {
    el = $(el);
    el.up(2).down('.onglet').childElements().each( function(el){ el.addClassName('off') });
    el.up().removeClassName('off');
    el.up(2).down('.box-content').raise(el.className);
  },
  "filterDrivers": function(args) {
    Kwo.exec('/adsl/driver.list', args, {'container':'results'});
  },
  "filterPacks": function(args, order, results) {    
    if (order !== undefined && order != null) {
      $(args).order.value = order;
    }
    Kwo.exec('/adsl/packs.table', args, {'container':results});
  },
  "filterPacksBool": function(form, elem, results){
    $(form)[elem].value = (Number($(form)[elem].value) == 1 ? 0 : 1);
    this.filterPacks(form, null, results);
  }
};

ADSL.Comparo = {
  "offre_max"     : "6 max.",
  "offre_min"     : "2 min.",
  "lastCharTest" : 1,
  "start" : function(form) {
    form = $(form);
    form.layout.value = "packs";
    var inputs = [];
    $$('#'+form.id+' input.checkbox').each( function(el){ if (el.checked==true) inputs[inputs.length] = el; } );
    if (inputs.length > 6){
      alert(this.offre_max);
      return false;
    }else if (inputs.length < 2){
      alert(this.offre_min);
      return false;
    }
    if (inputs.length > 0) return true;
    return false;
  },
  "reload" : function(form) {
    Kwo.exec('/adsl/packs.compare.table', $(form), {'container':'results'});
    if($("chart-box")) this.chart(ADSL.Comparo.lastCharTest);
  },
  "chart" : function (chart) {
    if(!chart) chart = this.lastCharTest;
    else this.lastCharTest = chart;

    var arg = "";
    if($('layout').value == 'packs')
      $$("#comfronto-box input.hidden").each( function(e) { arg += e.value+'-'; } );
    else
      $$("#comfronto-box select").each( function(e) { arg += e.value+'-'; } );

    myChart = new FusionCharts("/app/adsl/swf/Column3D.swf", "ChartId", "520", "210", "0", "0");
    myChart.setDataURL("/packs.compare.xml/-/showChart/"+chart+"/packs/"+arg.substr(0,arg.length-1));
    myChart.render("chart-box");
  }

};

ADSL.Test = {
  "isps_json"    : null,

  "error_numero" : "error numero",
  "error_prefix" : "error prefix",
  "error_tel"    : "error tel",

  "feuRouge"     : "/app/adsl/pix/feu-rouge.png",
  "feuOrange"    : "/app/adsl/pix/feu-orange.png",
  "feuVert"      : "/app/adsl/pix/feu-vert.png",

  "changeStatus" : function(etat, el, text){
//  test_nok       rouge
//  test_en_cours  orange
//  test_ok        vert
    if (!el) {
      el = $$('#form-eligibility .eligibility-result')[0];
    }
    var tricolor = el.down('img');

    el.down('.test_nok').addlassName = 'test_nok colorGris';
    el.down('.test_en_cours').className = 'test_en_cours colorGris';
    el.down('.test_ok').className = 'test_ok colorGris';
    tricolor.src = this.feuRouge;

    if (etat == 0) { // en cours
      el.down('.test_ok').className = 'test_ok colorRouge';
    }

    if (etat == 10) { // en cours
      el.down('.test_en_cours').className = 'test_en_cours colorOrange';
      tricolor.src = this.feuOrange;
    }

    if (etat == 20) { // terminé en non eligible
      el.down('.test_ok').className = 'test_ok colorRouge';
    }

    if (etat == 21) { // terminé en eligible ou plusieur resultat
      el.down('.test_ok').className = 'test_ok colorVert';
      tricolor.src = this.feuVert;
    }

    if (text) el.down('.texte').update(text);

  },

  "start" : function (arg) {
    var prefix = arg.prefix.value*1;
    var phone  = arg.phone.value*1;
    
    if (isNaN(phone) || phone.length < 2 || phone.length > 4) {
      alert(ADSL.Test.error_numero);
      return false;
    }
    if (isNaN(prefix) || prefix.length < 3 || prefix.length > 9) {
      alert(ADSL.Test.error_prefix);
      return false;
    }
    tel = prefix+''+phone;
    if (tel.length < 6 || tel.length > 11){
      alert(ADSL.Test.error_tel);
      return false;
    }
    
    var bind = {};
    var opts = {};
    bind.prefix = arg.prefix.value;
    bind.phone = arg.phone.value;
    if (arg.actionGo) {
      Kwo.go('/eligibility', {'prefix':arg.prefix.value, 'phone':arg.phone.value});
    } else {
      if (__layout==undefined || __layout == "packs"){
        bind.refreshTable = 1;
        opts.container = 'results';
      }
      if (__layout == "pack"){
        opts.callback = this.updateOffre.bind(ADSL.Test);
        bind.isp  = __pack.isp_id;
        bind.pack = __pack.id;
      }
      this.changeStatus(10);
      Kwo.exec('/eligibility.test', bind, opts);
    }
  },

  "updateOffre" : function(ret) {
    this.changeStatus(ret.result.retourTest, null, ret.result.retourText);
  }
};

Element.Methods.raise = function(element, id) {
   if (id === undefined) {
    if ($(element).visible === true) return ;
    
    $(element.parentNode).immediateDescendants().invoke("hide");
    $(element).show();
    return;
  }
  if ($(id).visible == true) return ;
  $(element).immediateDescendants().invoke("hide");
  $(id).show();
};
Element.addMethods();

Event.observe(window, 'load', function() {
  if (Prototype.Browser.IE) {
    var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');
    if (rslt != null && Number(rslt[1]) >= 5.5 && Number(rslt[1]) < 7) {
      $$('* .trans').each(ADSL.alphaBackgrounds);
      $$('img.trans').each(ADSL.fnLoadPngs);
      
      if ($('premium-list')){
        $$('#premium-list .premium-box').each(
          function(elts){
            div_count = $(elts).down('.picto').childElements().length;
            $(elts).down('.picto').setStyle({'width':(div_count*35)+'px'});
          }
        );
      }
    }
  }
});
