/**/
var CAVars = {
	fr_link : 'contact_adder_link',
	fr_prefix : '_form_friend',
	fm_prefix : '_form_family',
	result : '_result',
	form : '_form',
	contact_add_url : '/ap_invitefriend/'
};

var contactAdder;
var ContactAdder = Class.create();
ContactAdder.prototype = {
	initialize : function(_box_id){
		this.friend_radio = _box_id + CAVars.fr_prefix;
		this.family_radio = _box_id + CAVars.fm_prefix;
		this.result_display_area = _box_id + CAVars.result;
		this.form_area = _box_id + CAVars.form;
		this.box_id = _box_id;
		this.box = null;
		this.active_id = -1;
		this.addedContactList = new Array;
	},
	getBox : function(){
		if(this.box === null){
			this.box = new AlbumYapBox(3, 'user_add_box', false, true);
		}
		return this.box;
	},
	showUserAddBox : function(contact_id, contact_name, link_elem){
		this.active_id = contact_id;
		$(this.box_id + '_username').update(Lang.contact_adder.getAddingStr(contact_name));
		var pos = Element.cumulativeOffset(link_elem);
		$(this.friend_radio).checked = true;
		$(this.form_area).setStyle({'display':'block'});
		$(this.result_display_area).setStyle({'display':'none'});
		this.getBox().setWidth(300);
		this.getBox().showPositioned(pos[0] - 50, pos[1] - 50);
	},
	isContactAdded : function(id){
	},
	addContact : function(){
		var _this = this;
		var tmpStr = new StringBuffer();
		var type = $(this.friend_radio).checked === true ? '1' : '2';
		var params = tmpStr.append('uye_no=').append(this.active_id).append('&kontakt_tipi=').append(type).toString() ; 
		new Ajax.Request(CAVars.contact_add_url, {
				onSuccess : function(transport){
					_this.onAddSuccess(transport);
				},
				onFailure : function(){
					_this.onAddFailure();
				},
				parameters : params
		});
	},
	onAddSuccess : function(transport){
		var result = transport.responseText.strip(); 
		if(result == '1'){
			this.showError(Lang.contact_adder.add_success);
		}else if(result == '0'){
			this.showError(error_str);
		}else if(result == '2'){
			this.showError(Lang.contact_adder.already_send_str);
		}else if(result == '3'){
			this.showError(Lang.contact_adder.aur_aldready_send_str);
		}else{
			this.showError(Lang.contact_adder.unknown_error);
		}
	},
	onAddFailure : function(transport){this.showError(Lang.contact_adder.error_str);},
	showError : function(str){
		$(this.form_area).setStyle({'display':'none'});
		$(this.result_display_area).setStyle({'display':'block'});
		$(this.result_display_area + '_text').update(str);
	},
	hide : function(){this.getBox().hide();},
	initListeners : function(){
		Event.observe($(CAVars.fr_link), 'click', this.showUserAddBox.bind(this));
	}
};
