
if (!Kwo) var Kwo = {};

Kwo.Auth = {
  onSignIn: function(args) {
    //$('spinner-check').show();
    Kwo.exec("/community/user.signin", args,
    {
      callback: Kwo.Auth.onAuthCallback,
      disable: true
    });
  },
  
  onSignUp: function(args) {
    var input = $(args).down(".terms_of_use");
    $('error-captcha').hide();
    if (!Object.isUndefined(input) && !input.checked) {
      //return Kwo.warn(msg_accept_terms_of_user.ucfirst());
      $('error-tos').show();
      return ;
    }
    Kwo.exec("/community/user.signup", args,
    {
      callback: Kwo.Auth.onAuthCallback,
      disable: true
    });
  },

  onAuthCallback: function(res) {
    if (Kwo.hasError(res)) {
      if (res["error"] == 1215) {
        $('error-email-inv').show();
        return ;
      }
      if (res["error"] == 1213) {
        $('error-email-dup').show();
        return ;
      }
      if (res["error"] == 1212) {
        $('error-captcha').show();
        return ;
      }
      if (res["error"] == 1214) {
        $('error-pwd-diff').show();
        return ;
      }
      if ($('auth-failed') != null) $('auth-failed').show(); 
      if ($('spinner-check') != null) $('spinner-check').hide();
      
      if ($('auth-failed2') != null) $('auth-failed2').show();
      return ;
    }
    window["_user_id"] = res["result"]["user_id"];
    if (Kwo.getDialog("auth")) {
      Kwo.getDialog("auth").onCallback();
    }
    else if ("_auth_callback" in window) {
      window["_auth_callback"].call();
    } else {
      try {
        if($('tbx_password_confirm').value != ""){
          $('signup-panel').hide();
          $('signup-congratulations').show();
          Kwo.exec("/tracker/tags", {'zone':9, 'value':'email_id:'+res["result"]["emailid"]}, {callback:function(res){$("signup-validation").innerHTML = res["result"]["tags"];}});
        } else { 
          if($('actionPage') != null && $('actionPage').value=="stayonpage") {Kwo.exec('/modal.popup.temoignages', {}, {'container':'commentaires'});Kwo.exec('/block.panier', {}, {'container':'basket'});}
          else {setTimeout("Kwo.reload()",2000);}}
      } catch (err) { 
        if($('actionPage') != null && $('actionPage').value=="stayonpage") {Kwo.exec('/modal.popup.temoignages', {}, {'container':'commentaires'});Kwo.exec('/block.panier', {}, {'container':'basket'});}
        else {Kwo.reload();}}
    }

    if (window.location.href.endsWith('/achat.panier')) {
      UAD.Order.fromCartUpdate($('coupon_code'));
    }
  },
    
  closeSignup: function() {
    Kwo.exec("/block.panier", null, {
      'container':'basket'
    });
    Kwo.getDialog().close();
    if (window.location.href.endsWith('/achat.panier')) {
      UAD.Order.fromCartUpdate($('coupon_code'));
    }else if(window.location.href.endsWith('/account')) Kwo.go("/", {}, {});
     else Kwo.getDialog().close();   
  },

  onPasswordRequestCallback: function(res) {
    if (Kwo.hasError(res)) return Kwo.error(res);
    //this.hide().previous().show();
    //Kwo.warn(res);
    $('pwd-request-ok').show();
  },

  onPasswordRequest: function(args) {
    if($('pwd-request').value.blank() || UAD.Form.checkElt($('pwd-request'))) {
      $('pwd-request').next('div.form-error', 0).show();
      $('pwd-request').addClassName('error');
      return false;
    }
    Kwo.exec("/community/password.send", args,
    {
      callback: Kwo.Auth.onPasswordRequestCallback.bind($(args)),
      disable: true
    });
  },

  onSwitchPageForm1: function() {
    var email = $('EMAIL_FIELD').value;
    document.getElementById('emailvisionform1').innerHTML='<img width=\'1\' height=\'1\' src=\'http://tre.emv3.com/D2UTF8?emv_tag=8D472E010000A329&emv_ref=EdX7CqkdE6VJ8SA9MOPeWxffXEh9HtjD-zjde6lHW8LQKYw&EMVADMIN4_FIELD=television&EMAIL_FIELD='+email; 
 },

  onSwitchPageForm1bis: function() {
    var email = $('EMAIL_FIELD1').value;
    document.getElementById('emailvisionform1').innerHTML='<img width=\'1\' height=\'1\' src=\'http://tre.emv3.com/D2UTF8?emv_tag=8D472E010000A329&emv_ref=EdX7CqkdE6VJ8SA9MOPeWxffXEh9HtjD-zjde6lHW8LQKYw&EMVADMIN4_FIELD=television&EMAIL_FIELD='+email;
 },

  onSwitchPageForm2: function() {

  // MD5 début
    function array(n) {
      for(i=0;i<n;i++) this[i]=0;
      this.length=n;
    }

    function integer(n) {return n%(0xffffffff+1);}

    function shr(a,b) {
      a=integer(a);
      b=integer(b);
      if (a-0x80000000>=0) {
        a=a%0x80000000;
        a>>=b;
        a+=0x40000000>>(b-1);
      } else
        a>>=b;
      return a;
    }

    function shl1(a) {
      a=a%0x80000000;
      if (a&0x40000000==0x40000000)
      {
        a-=0x40000000;
        a*=2;
        a+=0x80000000;
      } else
        a*=2;
      return a;
    }

    function shl(a,b) {
      a=integer(a);
      b=integer(b);
      for (var i=0;i<b;i++) a=shl1(a);
      return a;
    }

    function and(a,b) {
      a=integer(a);
      b=integer(b);
      var t1=(a-0x80000000);
      var t2=(b-0x80000000);
      if (t1>=0)
        if (t2>=0)
          return ((t1&t2)+0x80000000);
        else
          return (t1&b);
      else
        if (t2>=0)
          return (a&t2);
        else
          return (a&b);
    }

    function or(a,b) {
      a=integer(a);
      b=integer(b);
      var t1=(a-0x80000000);
      var t2=(b-0x80000000);
      if (t1>=0)
        if (t2>=0)
          return ((t1|t2)+0x80000000);
        else
          return ((t1|b)+0x80000000);
      else
        if (t2>=0)
          return ((a|t2)+0x80000000);
        else
          return (a|b);
    }

    function xor(a,b) {
      a=integer(a);
      b=integer(b);
      var t1=(a-0x80000000);
      var t2=(b-0x80000000);
      if (t1>=0)
        if (t2>=0)
          return (t1^t2);
        else
          return ((t1^b)+0x80000000);
      else
        if (t2>=0)
          return ((a^t2)+0x80000000);
        else
          return (a^b);
    }

    function not(a) {
      a=integer(a);
      return (0xffffffff-a);
    }

    /* Début de l'algorithme */

        var state = new array(4);
        var count = new array(2);
            count[0] = 0;
            count[1] = 0;
        var buffer = new array(64);
        var transformBuffer = new array(16);
        var digestBits = new array(16);

        var S11 = 7;
        var S12 = 12;
        var S13 = 17;
        var S14 = 22;
        var S21 = 5;
        var S22 = 9;
        var S23 = 14;
        var S24 = 20;
        var S31 = 4;
        var S32 = 11;
        var S33 = 16;
        var S34 = 23;
        var S41 = 6;
        var S42 = 10;
        var S43 = 15;
        var S44 = 21;

        function F(x,y,z) {
            return or(and(x,y),and(not(x),z));
        }

        function G(x,y,z) {
            return or(and(x,z),and(y,not(z)));
        }

        function H(x,y,z) {
            return xor(xor(x,y),z);
        }

        function I(x,y,z) {
            return xor(y ,or(x , not(z)));
        }

        function rotateLeft(a,n) {
            return or(shl(a, n),(shr(a,(32 - n))));
        }

        function FF(a,b,c,d,x,s,ac) {
            a = a+F(b, c, d) + x + ac;
            a = rotateLeft(a, s);
            a = a+b;
            return a;
        }

        function GG(a,b,c,d,x,s,ac) {
            a = a+G(b, c, d) +x + ac;
            a = rotateLeft(a, s);
            a = a+b;
            return a;
        }

        function HH(a,b,c,d,x,s,ac) {
            a = a+H(b, c, d) + x + ac;
            a = rotateLeft(a, s);
            a = a+b;
            return a;
        }

        function II(a,b,c,d,x,s,ac) {
            a = a+I(b, c, d) + x + ac;
            a = rotateLeft(a, s);
            a = a+b;
            return a;
        }

        function transform(buf,offset) {
            var a=0, b=0, c=0, d=0;
            var x = transformBuffer;

            a = state[0];
            b = state[1];
            c = state[2];
            d = state[3];

            for (i = 0; i < 16; i++) {
                x[i] = and(buf[i*4+offset],0xff);
                for (j = 1; j < 4; j++) {
                    x[i]+=shl(and(buf[i*4+j+offset] ,0xff), j * 8);
                }
            }

            /* tour 1 */
            a = FF ( a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */
            d = FF ( d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */
            c = FF ( c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */
            b = FF ( b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */
            a = FF ( a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */
            d = FF ( d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */
            c = FF ( c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */
            b = FF ( b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */
            a = FF ( a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */
            d = FF ( d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */
            c = FF ( c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */
            b = FF ( b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */
            a = FF ( a, b, c, d, x[12], S11, 0x6b901122); /* 13 */
            d = FF ( d, a, b, c, x[13], S12, 0xfd987193); /* 14 */
            c = FF ( c, d, a, b, x[14], S13, 0xa679438e); /* 15 */
            b = FF ( b, c, d, a, x[15], S14, 0x49b40821); /* 16 */

            /* tour 2 */
            a = GG ( a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */
            d = GG ( d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */
            c = GG ( c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */
            b = GG ( b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */
            a = GG ( a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */
            d = GG ( d, a, b, c, x[10], S22,  0x2441453); /* 22 */
            c = GG ( c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */
            b = GG ( b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */
            a = GG ( a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */
            d = GG ( d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */
            c = GG ( c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */
            b = GG ( b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */
            a = GG ( a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */
            d = GG ( d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */
            c = GG ( c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */
            b = GG ( b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */

            /* tour 3 */
            a = HH ( a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */
            d = HH ( d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */
            c = HH ( c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */
            b = HH ( b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */
            a = HH ( a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */
            d = HH ( d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */
            c = HH ( c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */
            b = HH ( b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */
            a = HH ( a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */
            d = HH ( d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */
            c = HH ( c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */
            b = HH ( b, c, d, a, x[ 6], S34,  0x4881d05); /* 44 */
            a = HH ( a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */
            d = HH ( d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */
            c = HH ( c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */
            b = HH ( b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */

            /* tour 4 */
            a = II ( a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */
            d = II ( d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */
            c = II ( c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */
            b = II ( b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */
            a = II ( a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */
            d = II ( d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */
            c = II ( c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */
            b = II ( b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */
            a = II ( a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */
            d = II ( d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */
            c = II ( c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */
            b = II ( b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */
            a = II ( a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */
            d = II ( d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */
            c = II ( c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */
            b = II ( b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */

            state[0] +=a;
            state[1] +=b;
            state[2] +=c;
            state[3] +=d;

        }

        function init() {
            count[0]=count[1] = 0;
            state[0] = 0x67452301;
            state[1] = 0xefcdab89;
            state[2] = 0x98badcfe;
            state[3] = 0x10325476;
            for (i = 0; i < digestBits.length; i++)
                digestBits[i] = 0;
        }

        function update(b) {
            var index,i;

            index = and(shr(count[0],3) , 0x3f);
            if (count[0]<0xffffffff-7)
              count[0] += 8;
            else {
              count[1]++;
              count[0]-=0xffffffff+1;
              count[0]+=8;
            }
            buffer[index] = and(b,0xff);
            if (index  >= 63) {
                transform(buffer, 0);
            }
        }

        function finish() {
            var bits = new array(8);
            var        padding;
            var        i=0, index=0, padLen=0;

            for (i = 0; i < 4; i++) {
                bits[i] = and(shr(count[0],(i * 8)), 0xff);
            }
            for (i = 0; i < 4; i++) {
                bits[i+4]=and(shr(count[1],(i * 8)), 0xff);
            }
            index = and(shr(count[0], 3) ,0x3f);
            padLen = (index < 56) ? (56 - index) : (120 - index);
            padding = new array(64);
            padding[0] = 0x80;
            for (i=0;i<padLen;i++)
              update(padding[i]);
            for (i=0;i<8;i++)
              update(bits[i]);

            for (i = 0; i < 4; i++) {
                for (j = 0; j < 4; j++) {
                    digestBits[i*4+j] = and(shr(state[i], (j * 8)) , 0xff);
                }
            }
        }

    /* Fin de l'algorithme MD5 */

    function hexa(n) {
     var hexa_h = "0123456789abcdef";
     var hexa_c="";
     var hexa_m=n;
     for (hexa_i=0;hexa_i<8;hexa_i++) {
       hexa_c=hexa_h.charAt(Math.abs(hexa_m)%16)+hexa_c;
       hexa_m=Math.floor(hexa_m/16);
     }
     return hexa_c;
    }

    var ascii="01234567890123456789012345678901" +
              " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ"+
              "[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";

    function MD5(message)
    {
     var l,s,k,ka,kb,kc,kd;

     init();
     for (k=0;k<message.length;k++) {
       l=message.charAt(k);
       update(ascii.lastIndexOf(l));
     }
     finish();
     ka=kb=kc=kd=0;
     for (i=0;i<4;i++) ka+=shl(digestBits[15-i], (i*8));
     for (i=4;i<8;i++) kb+=shl(digestBits[15-i], ((i-4)*8));
     for (i=8;i<12;i++) kc+=shl(digestBits[15-i], ((i-8)*8));
     for (i=12;i<16;i++) kd+=shl(digestBits[15-i], ((i-12)*8));
     s=hexa(kd)+hexa(kc)+hexa(kb)+hexa(ka);
     return s;
    }
    // MD5 fin

    var email = $('EMAIL_FIELD').value;
    var titre = "";
    for(i=0;i<3;i++) {if(document.forms.emvForm1.TITLE_FIELD[i].checked==true) {titre=document.forms.emvForm1.TITLE_FIELD[i].value;}}
    var prenom = encodeURI($('FIRSTNAME_FIELD').value);
    var nom = encodeURI($('LASTNAME_FIELD').value);
    var mdp = $('EMVADMIN1_FIELD').value;
    var md5 = MD5(mdp);
    //alert(prenom);
    //alert(nom);
    document.getElementById('emailvisionform2').innerHTML='<img width=\'1\' height=\'1\' src=\'http://tre.emv3.com/D2UTF8?emv_tag=8D472E010000A329&emv_ref=EdX7CqkdE6VJ8SA9MOPeWxffXEh9HtjD-zjde6lHW8LQKYw&EMVADMIN4_FIELD=television&EMAIL_FIELD='+email+'&TITLE_FIELD='+titre+'&FIRSTNAME_FIELD='+prenom+'&LASTNAME_FIELD='+nom+'&EMVADMIN1_FIELD='+md5;

    $('content').hide();
    $('offert').hide();
    $('thanks').show();
  },

  onSwitchPage: function() {
    var elt = $('email-check');
    var email = elt.value;
    var item_key = $('item_key_pop').value;

    if (UAD.Form.checkElt(elt) || email.blank()) {
      elt.next('div.form-error', 0).update("E-mail manquant ou incorrect").show();
      elt.addClassName('error');
      return false;
    }
    else {
      elt.next('div.form-error', 0).hide();
      elt.removeClassName('error');
    }
    $('step1').hide();
    $('signup-form').show();
    $("email-login").value = email;

    Kwo.exec("/community/user.check", {"email": email, "item_key": item_key, "source": "site_newsletter9"},{callback: function(res) {
        if (Kwo.hasError(res)) {
          elt.next('div.form-error', 0).update("Vous êtes déjà inscrit, merci de vous identifier.").show();
          elt.addClassName('error');
          return ;
        }
        $('step1').hide();
        $('signup-form').show();
        $("email-login").value = email;
      }
    })
  }
};

Kwo.Class.Auth = Class.create(Kwo.Dialog, {

  initialize: function($super, opts) {
    this.name = "auth";
    this.width = 520;
    this.height = 560;
    opts = opts || {};
    if ("callback" in opts) {
      this.onCallback = function () {
        if (Object.isString()) {
          Kwo.go(opts["callback"]);
        }
        else {
          opts["callback"].call();
          this.close();
        }
      }
    }
    else {
      this.onCallback = function () {
        UAD.Panier.updateWidget();
        this.close();
        if ($("bookmark-form")) {
          Kwo.getDialog("bookmark").onSubmit($("bookmark-form"));
        }
      }
    }
    $super("/community/signup");
  }

});

Kwo.Account = {

  timeout: null,

  view: function(page) {
    Kwo.go("/community/account");
  },

  refresh: function(res) {
    if (Kwo.hasError(res)) return Kwo.error(res);
    if ("result" in res && "callback_url" in res["result"]) {
      return Kwo.go(res["result"]["callback_url"]);
    }
    Kwo.reload();
  },

  setMessage: function(msg, error) {
    error = false;
    if (typeof msg == "object" && "error" in msg) {
      if (msg["error"] >= 1) {
        error = "Oops! " + msg["result"]["msg"].join(",");
      }
      else {
        msg = msg["result"]["callback_msg"];
      }
    }
    else {
      error = error || false;
    }
    var pix = "ok.png";
    if (error != false) {
      pix = "ko.png";
      msg = error;
    }
    else {
      msg = Object.isUndefined(msg) ||  msg.empty() ? "ok" : msg;
    }
    if (!$("account-notice")) return ;
    var notice = $("account-notice");
    notice.show();
    notice.update(msg.ucfirst() + '<img src="/app/sys/pix/bullets/' + pix + '" />'
      +'<div style="clear:both;"></div>');
    window.clearTimeout(Kwo.Account.timeout);
    Kwo.Account.timeout = window.setTimeout(function () {
      notice.hide()
      }, 5000);
  },

  initAuthBox: function() {
    Kwo.exec("/community/widget.auth", null,
    {
      container:"kwo-auth-box"
    });
  },

  logout: function(args) {
    Kwo.exec("/community/user.signout", null, {
      callback:Kwo.home
      });
  },

  signup: function() {
    Kwo.go("/community/account");
  }

};

Kwo.User = {

  onAvatarSet: function(file) {
    Kwo.exec("/account/community/avatar.save", {
      "image": file
    },

    {
      callback: Kwo.User.onAvatarCallback
      });
  },

  onAvatarCallback: function(res) {
    if (Kwo.hasError(res)) return Kwo.error(res);
    Kwo.exec("/account/community/avatar.edit", null,
    {
      container: $("avatar-box")
      });
  },

  onEmailSubmit: function(args) {
    Kwo.exec("email.save", args,
    {
      callback:true,
      disable:true
    });
  },

  onEmailConfirm: function(elt) {
    Kwo.exec("/community/email.confirm.request", null,
    {
      callback: $(elt).up("div")
      });
  },

  onPasswordSubmit: function(args) {
    Kwo.exec("password.save", args,
    {
      callback:true,
      disable:true,
      reset:true
    });
    return true;
  },

  onProfileSubmit: function(args) {
    Kwo.exec("profile.save", args,
    {
      callback:true,
      disable:true
    });
  }

};

Kwo.Composer.Message = Class.create(Kwo.Dialog, {

  initialize: function($super, elt) {
    this.name = "abuse";
    this.layout = "hbox";
    this.width = 600;
    this.height = 400;
    this.args = {
      "item_key": $(elt).readAttribute("data")
      };
    $super("/community/message.compose");
  },

  onSubmit: function(elt) {
    Kwo.exec("/community/message.send", $(elt),
    {
      callback: $(elt),
      disable:true
    });
  }

});

Kwo.Composer.Bookmark = Class.create(Kwo.Dialog, {

  initialize: function($super, elt) {
    this.name = "bookmark";
    this.layout = "hbox";
    this.args = {
      "item_key": $(elt).readAttribute("data-item-key"),
      "url": $(elt).readAttribute("data-url")
      };
    this.width = 500;
    this.height = 300;
    $super("/community/bookmark.compose");
  },

  onSubmit: function(elt) {
    elt = $(elt);
    Kwo.exec("/community/bookmark.save", [this.args, elt],
    {
      callback: elt.down("UL"),
      disable: elt
    });
  }

});

Kwo.Bookmark = {

  onAlertUnset: function(elt) {
    elt = $(elt);
    Kwo.exec("/community/bookmark.alert.unset",
    {
      "id": elt.up("TR").readAttribute("data-id")
      },

      {
      callback: Kwo.Bookmark.onCallback
      });
  },

  onCallback: function(res) {
    if (Kwo.hasError(res)) return Kwo.error(res);
    Kwo.reload();
  },

  onDelete: function(elt) {
    elt = $(elt);
    Kwo.exec("/community/bookmark.delete",
    {
      "id": elt.up("TR").readAttribute("data-id")
      },

      {
      callback: Kwo.Bookmark.onCallback
      });
  }

}


Kwo.Notice = {

  onSubmit: function(args) {
    Kwo.exec("notice.save", args,
    {
      callback:true,
      disable:true
    });
  }

};


