var subscribe;
var Subscribe;
Subscribe = new Class({
	domaine: 'http://test-kohana.freecaster.tv',
	channel_error_msg: false,
	initialize: function(){
		var _this = this;
		
/* console.log('check initialize'); */

/*
		$('channel_check').addEvent('click', function(e) {
			e.stop();
			//	Start process
			_this.check_channel();
		});
*/
		$('channel').addEvent('blur', function(e) {
			e.stop();
			//	Start process
			if($('channel').get('value') != '')
				_this.check_channel();
		});

		//	Username check
/*
		$('username_check').addEvent('click', function(e) {
			e.stop();
			//	Start process
			_this.check_username();
		});
*/
		$('username').addEvent('blur', function(e) {
			e.stop();
			//	Start process
			if($('username').get('value') != '')
				_this.check_username();
		});

	},
	
	check_channel: function(){
		var _this = this;
		//	Get value
		var selected_channel = $('channel').get('value');
		query = new Request({
			url: _this.domaine+'/channel/check_channel_availability', 

			onSuccess: function(xml){
				_this.set_channel_result(query.response['xml']);			

			},
			
			onFailure: function() {
				
				return false;
			}
		}).send('channel='+selected_channel);
	},

	set_channel_result: function(xml){
		var _this = this;
		console.log(xml);
		var status = _this.getNodeValueFromName(xml, 'status');
		var message = _this.getNodeValueFromName(xml, 'message');

		if(status == 'ok'){
			$('channel').setStyle('border-color', 'green');
			$('channel_error_msg').set('html', message);
			$('channel_error_msg').setStyles({'color': 'green', 'display': 'inline'});
		}
		else{
			$('channel').setStyle('border-color', 'red');
			$('channel_error_msg').set('html', message);
			$('channel_error_msg').setStyles({'color': 'red', 'display': 'inline'});
		}
	},
	
	



	check_username: function(){
		var _this = this;
		//	Get value
		query = new Request({
			url: _this.domaine+'/member/check_username_availability', 

			onSuccess: function(xml){
				_this.set_username_result(query.response['xml']);			

			},
			
			onFailure: function() {
				
				return false;
			}
		}).send('username='+$('username').get('value'));
	},

	set_username_result: function(xml){
		var _this = this;
		console.log(xml);
		var status = _this.getNodeValueFromName(xml, 'status');
		var message = _this.getNodeValueFromName(xml, 'message');
		
		if(status == 'ok'){
			$('username').setStyle('border-color', 'green');
			$('username_error_msg').set('html', message);
			$('username_error_msg').setStyles({'color': 'green', 'display': 'inline'});
		}
		else{
			$('username').setStyle('border-color', 'red');
			$('username_error_msg').set('html', message);
			$('username_error_msg').setStyles({'color': 'red', 'display': 'inline'});
		}
	},
	
	
	/**
	 *	Return the value form a node
	 *
	 */
	getNodeValueFromName: function(node, name) {
		var value = "";
		
		try {
			value = node.getElementsByTagName(name)[0].childNodes[0].nodeValue;
		} catch(e) {}
		
//		console.log(name,': ', value);
		return value;
	},

	end: function(){
		//	Nothing here
	}
});