if (! Clip ) var Clip = {};
Clip.Member = {};

Clip.Member.checkUsername = function(username) {
    var url = '/rest/member/username/check/';
    var pars = "format=json";
    var myAjax = new Ajax.Request(
                                  url + username,
                                  {method: 'get', parameters: pars, onComplete: this.finalizeUsername}
                                  );

}

Clip.Member.finalizeUsername = function(req){
    var result = eval("("+ req.responseText+")");
    if(result.count){
        $('username_error').style.display = '';
    } else {
        $('username_error').style.display = 'none';
    }
}

Clip.Member.getYukariDetail = function(id, uid) {
  var url = '/rest/member/yukari/detail/';
  var pars = "format=json";
  new Ajax.Request(
    url + id.value,
    { method: 'get', parameters: pars, onSuccess: function(request){
      var new_detail = eval("(" + request.responseText+")");
      var detail = uid ? $(uid) : $('yukari_detail');
      detail.innerHTML = '';
      var option = document.createElement('option');
      option.innerHTML = '-------';
      option.value="";
      detail.appendChild(option);
      new_detail.detail.each(function(d){
        var option = document.createElement('option');
        option.value = d.id;
        option.innerHTML = d.name;
        detail.appendChild(option);
      }); }.bind(this)
    }
  );
}

Clip.Member.getAddress = function(zipcode) {

    var url = '/rest/address/zipcode/';
    if(zipcode.length == 0){
	var pref = $('pref');
	pref.value = '';
	var addr = $('address1');
	addr.value = '';
    }else{
	var pars = "format=json&zip=" + zipcode;
	var myAjax = new Ajax.Request(
				  url,
                                  {method: 'post', parameters: pars, onComplete: this.finalizeAddress}
				  );
    }
}
Clip.Member.finalizeAddress = function(req) {

    var address = eval("(" + req.responseText+")");

    var pref = $('pref');
    pref.value = address.detail[0].pref;
    var addr = $('address1');
    addr.value = address.detail[0].address;

}

Clip.Member.searchNickname = function( nickname ) {
    if( nickname.value ){
        var url = '/rest/member/nickname/search/?format=json&nickname=' + encodeURIComponent(nickname.value) + '&' + new Date().getTime();
        var myAjax = new Ajax.Request(
                                      url, {method: 'get', onComplete: this.finalizeNickname}
				  );
    }
}
Clip.Member.finalizeNickname = function(req) {
    var data = eval("(" + req.responseText+")");
    $('nickname_check_result').style.display = '';
    if(data.count){
        var count = $('nickname_count');
        count.innerHTML = data.count;
        $('nickname_ok').style.display = 'none';
        $('nickname_ng').style.display = '';
    }else{
        $('nickname_ok').style.display = '';
        $('nickname_ng').style.display = 'none';
    }

}

Clip.Member.Form = {};

Clip.Member.Form.disable = function(img) {
    $('disable').value = 1;
    $(img).src = "/image/indicator2.gif"
    setTimeout(function() { $('disable').value=0 }, 10000);
}

Clip.Member.Form.submit = function(form, type){
    if($('disable') || $('disable').value != 1){
        if(type == 'register'){
            var input = document.createElement('input');
            input.name = 'type';
            input.type = 'hidden'
            input.value=1;
            form.appendChild(input);
        }
        form.submit();
    }
}

Clip.Member.Form.back = function() {
    $('form').action = '';
    var back = document.createElement('input');
    back.type = "hidden";
    back.name = "back";
    back.value = 1;
    $('form').appendChild(back);
    $('form').method = 'post';
    $('form').submit()
}

Clip.Member.Form.reset = function() {

    $('form').reset();
    $('form1').reset();
    $('form2').reset();
    $('form3').reset();

    var url = '/rest/member/avatar/reset/';
    var pars = "format=json";
    var myAjax = new Ajax.Request(
                                  url, {method: 'get', parameters: pars, onComplete: this.finalizeReset }
                                  );

}

Clip.Member.Form.finalizeReset = function(req) {

    var data = eval("(" + req.responseText + ")");
    for(var i = 1; i <= 3; i++){
        $('img_avatar' + i).src = data.data[i].uri ? data.data[i].uri : '/image/not.gif';
        var avatar = "avatar" + i;
        var edit = 'edit_' + avatar;

        if(!data.data[i].uri){
            $(avatar).style.display = '';
            $(edit).style.display = 'none';
        }else{
            $(avatar).style.display = 'none';
            $(edit).style.display = '';
        }
        $('img_avatar' + i).width = data.data[i].width ? data.data[i].width : 80;
        $('img_avatar' + i).height = data.data[i].height ? data.data[i].height : 60;

    }
}
Clip.Member.hideElementsByClassName = function(classname) {
    var elements = document.getElementsByClassName(classname);
    elements.each( function(e) { e.hide()}  )
}
Clip.Member.Avatar = Class.create();
Clip.Member.Avatar.prototype = {
    initialize: function(){
        this.current = 0;
    },
    change: function(max) {
        this.current = (this.current+1) % max;
        for(var i=0;i<max;i++){
            $('avatar' + i).style.display = i == this.current ? '' : 'none';
        }
    }
}

var avatar = new Clip.Member.Avatar();

Clip.Member.Upload = Class.create();

Clip.Member.Upload.prototype = {
    initialize: function() {
        document.finish = this.finish.bind(this);
    },
    toggleForm: function() {
        Effect.toggle('form_container', 'blind', { duration: 0.3 });
        if (this.message) Element.update($('message'), this.message);
        return false;
    },
    del: function(avatar) {
	var img = 'img_' + avatar;
	var edit = 'edit_' + avatar;
	var url = '/rest/member/avatar/delete/';
	var pars = 'format=json&' + new Date().getTime();;
	var myAjax = new Ajax.Request(
				      url + avatar, {method: 'get', parameters: pars }
				      );
	//$(avatar).style.display = '';
	$(edit).style.display = 'none';
	$(img).src = "/image/not/not.gif";
        $(img).width = 100;
        $(img).height = 75;
    },
    edit: function(avatar){
	$(avatar).style.display = '';
	var edit = 'edit_' + avatar;
	//	$(edit).style.display = 'none';
    },
    start: function() {
        if (!this.message) this.message = $('message').innerHTML;
        Element.update($('message'), '<img src="/indicator.gif" />');
    },
    finish: function(filename, id, width , height) {
        if (filename.match(/^\w+\.\w+$/)) {
	    $(id).style.display = 'none';
	    var edit = 'edit_' + id;
	    $(edit).style.display = '';
	    $('img_' + id).src = '/image/avatar/'+filename;
	    $('img_' + id).width = width;
	    $('img_' + id).height = height;
            $('disable').value=0;
        }
        else {
            Element.update($('message'), filename+' <a href="#" onclick="app.toggleForm()">close</a>');
        }
    }
    


};

var app = new Clip.Member.Upload();

