/*
 +-----------------------------------------------------------------------+
 | M@il.go.th Login library                                              |
 |                                                                       |
 | This file is part of the M@il.go.th                                   |
 | Copyright (C) 2005-2008, MICT, - Thailand                             |
 | Licensed under the GNU GPL                                            |
 |                                                                       |
 +-----------------------------------------------------------------------+
 | Author: Surapun Prasit - RDDI                                         |
 |         Government Information Technology Services(GITS)              |
 +-----------------------------------------------------------------------+
 
 varsion 0.2.5
 $Id: 081029
*/

function MGT(){
  this.env = env.login_box;

  // save username in cookies
  this.save_username = function(username){
    var cook = new jscookie();
    var mem_me = document.getElementById(this.env.remember_me.id);

    if( mem_me != null && mem_me.checked && this.env.remember_me.enable){
      cook.create('_username',username,this.env.remember_me.username_expire);
      username = username.split('@',2);
      cook.create('_account',username[0],this.env.remember_me.username_expire);
      cook.create('_domain',username[1],this.env.remember_me.domain_expire);
    }
  }

  // submit login
  this.login = function(){
    var usr = document.getElementById(this.env.username_field.id);
    var pwd = document.getElementById(this.env.password_field.id);

    if( usr != null && usr.value != '')
        this.save_username(usr.value);
    else{
      alert(this.env.username_empty);
      return false;
    }

    if( pwd == null || pwd.value == '' ){
      alert(this.env.password_empty);
      return false;
    }
  }
	this.diff_acc = function(){
    var opt = document.getElementById(this.env.add_option.id);
    var exm = document.getElementById('mailgoth-example');
    var acc_field = document.getElementById(this.env.username_div.id);
		var cook = new jscookie();
  	if(opt!=null)
      opt.innerHTML = this.memme_check();
    if( exm != null )
      exm.innerHTML = this.env.username_example;
    if( acc_field != null )
      acc_field.innerHTML = this.user_input();
      cook.erase('_account');
      cook.erase('_username');
  }
 
  // return HTML code of user input field
	this.user_input = function(){
	  return '<input class="'+this.env.username_field.classname+'" id="'+this.env.username_field.id+'" name='+this.env.username_field.name+' type="text" />';
	}

  // return HTML for remember-me selector
  this.memme_check = function(){
		var tag = '<input id="'+this.env.remember_me.id+'" ';
		tag += 'name="'+this.env.remember_me.name+'" type="checkbox" ';
		tag += this.env.remember_me.checked ? 'checked="checked"' : '';
		tag += '/><label class="mailgoth-option-text" for="mailgoth-remember_me">'+this.env.mem_me+'</label>';
		return this.env.remember_me.enable ? tag : '';
	}

  // load login form
  this.load = function(){
    var cook = new jscookie();
    var opt = document.getElementById(this.env.add_option.id);
    var acc_field = document.getElementById(this.env.username_div.id);
	var pwd = document.getElementById(this.env.password_field.id);
	var frm = document.getElementById('mailgoth-login-form');
	var exm = document.getElementById('mailgoth-example');
    var acc;
    
    pwd.name = this.env.password_field.name;
    frm.action = this.env.login_form.action;
    frm.method = this.env.login_form.method;
		
    // additionnal params
    var newinput;
    for( varname in this.env.additional_params ){
      newinput = document.createElement('input');
      newinput.setAttribute('name', varname);
      newinput.setAttribute('value',this.env.additional_params[varname]);
      newinput.setAttribute('type','hidden');
      frm.appendChild(newinput);
    }

    if( ( acc = cook.read('_username')) != null ){
      if(opt!=null) 
        opt.innerHTML = '<a href="#" onclick="mgt.diff_acc()" class="mailgoth-option-text">'+this.env.diff_signin+'</a>';
      if(acc_field != null){
        acc_split = acc.split('@',2);
        acc_field.innerHTML  = acc_split[0]+'<span class="mailgoth-domain">@'+acc_split[1]+'</span>';
        acc_field.innerHTML += '<input class="text" id="'+this.env.username_field.id+'" name="'+this.env.username_field.name+'" type="hidden" value="'+acc+'" />';
         
      }
    }
    else{
      if(opt!=null)
        opt.innerHTML = this.memme_check();
      if(acc_field != null){
        acc_field.innerHTML = this.user_input();
        if( exm != null )
          exm.innerHTML = this.env.username_example;
	    var usr = document.getElementById(this.env.username_field.id);
	    //ksearch.init_address_input_events(usr);
      }
    }
  }
}

var mgt = null;

