/**
* Use to add field to group's custom form
**/

function check_session(new_link, session_ok_action) {
    new_link = new_link.replace(/\//g, '*');
    new_link = new_link.replace(/:/g, '');
    $.get('/member_group_role/check_session/' + new_link, function(data) {
        if ('SUCCESS' == data) {
        	if (session_ok_action){
        		eval(session_ok_action);
        	}
        } else {
        	location.href = '/';
        }
    });
}
var append_custom_form = function(url, container){
	$.post( url, null, function (data) {	
		if (data !== "") {
			$('#custom_form_p').append(data);
		}
	});
};
var add_field = function() {
	var count = parseInt($('#count').val(), 10) + 1;
	$('#count').val(count);
	var url = '/custom_field/add/' + count;
	check_session(url, "append_custom_form('" + url + "', '#custom_form_p')");
};

/**
* Use to delete field from group's custom form
**/
var delete_field = function(count) {
	$('#row_' + count).remove();
};
/* Use this to change status for a member inside an antenna*/

var change_antenna_member_status = function(member_id, status_value, group_id, full_name){
	status_value = parseInt(status_value, 10);
	if (21 == status_value){
		confirm_rejecting(member_id, status_value, group_id, full_name);
	} else {
		change_member_status_request( member_id, status_value, group_id);
	}
};

var confirm_rejecting = function( member_id, status_value, group_id, full_name){

	var confirm_message = "By rejecting " + full_name + "'s application, it will be permanently deleted from the registry.";
	show_confirm(confirm_message, "Remove", "change_member_status_request(" + member_id + ", '" + status_value + "', " + group_id + ")", "Cancel");
};

var close_reject = function(){
	$('#popup_reject').css('display', 'none');
	$('#Blocker').css('display', 'none');
};

var change_member_status_request_function = function(url1, url2, container){
		$.get(url1, null, function (data) {
			$("#loading_indicator").jqmHide();
			var message = "";
			if ("ERROR" == data){
				message = 'Error changing status';
				write_warning_header_msg_bar(message);
			} else {
				message = 'Status is changed';
				write_info_header_msg_bar(message);
				$("#loading_indicator").jqmShow();
				$.get(url2, null, function (data) {
					$("#loading_indicator").jqmHide();
					if (data !== ""){
						$(container).html(data);
						SetupAJAXPaginationIE(container, url2);
					} else {
						write_warning_header_msg_bar("Error updating members.");
					}
				});
			}
		}
	);
};
var change_member_status_request = function( member_id, status_value, group_id){
	
	close_reject();
	$("#loading_indicator").jqmShow();
	
	var url1 = '/antenna/change_status/' + group_id + '/' + member_id + '/' + status_value;
	var url2 = '/antenna/membership_management_table/' + group_id;
	
	check_session(url1, "change_member_status_request_function('" + url1 + "','" + url2 + "', '#member_list_holder')");
	
	/*change_member_status_request_function(url1,url2, '#member_list_holder');*/
};
/* Use this to add custom form elements for a particular group when a user is signing up*/

var insert_custom_form = function(group_id){
	var url = '/custom_form/get_form_elements/' + group_id;
	$.get(url, function (data) {	
		if ("ERROR" == data){
			show_alert('Error getting form');
		} else {
			if ("EMPTY" != data){
				/*alert(data);*/
				/*var SignUp_content = $('#SignUp').html();*/
				$('#SignUp').append(data);
			}
		}
	});
};
/*
* show confirmation window before delete an item
* window is
**/
var show_delete_confirmation_win = function( delete_item_url, item_details) /*id is required, item_detail is is not required - that can be item name or sm. similar*/
{
	/* Confirmation message should be - Do you really want to delete this item?*/
	/* Confirmation message should be - Do you really want to delete this item_details?*/
	
	/*
	* 1. show confirmation form
	* 2. if ok utton is clicked, send the delete request
	* 3. if cancel is cliked on, close the confirm window
	*
	*/
	var max_width = document.innerWidth;
	var left = ((max_width - 344)/2) + 'px';
	var max_height = document.innerHeight;
	var top = ((max_height - 126)/2) + 'px';
	
	$('#popup_window').css('display', '');
	$('#popup_window').css('left', left);
	$('#popup_window').css('top', top);
	$('#Popup').attr('action', delete_item_url);
	$('#Blocker').css('display', '');
};

var cancel_deleting = function(){	
	$('#popup_window').css('display', 'none');
	$('#popup_error').css('display', 'none');
	$('#popup_change_info').css('display', 'none');
	$('#Blocker').css('display', 'none');
};

var perform_deleting = function(){
	var popup_element = document.getElementByID('Popup');
	var blocker_element = document.getElementByID('Blocker');
	if (popup_element && blocker_element){
		popup_element.style.display = 'none';
		blocker_element.style.display = 'none';
	}
};

var color_validation_message_box = function(){
	var divs = $('p ~ .error-message');
	if (divs){
		for (i = 0; i < divs.length ; i++){
			if ("Microsoft Internet Explorer" == navigator.appName){
				/*if ("none" != divs[i].css("display")){
					*/
					ps = divs[i].previousSibling;
					ps.className = 'Missing';
				/*}*/
			} else {
				ps = divs[i].previousSibling;
				ps.className = 'Missing';
			}
		}
	}
};

/*for delete confirmation popup*/
var delete_item = function(item_id, url, message){

	$('#delete_confirm_ok_btn').click(function(){
		$('#delete_confirm_wnd').jqmHide();
		$('#loading_indicator').jqmShow();
		location.href = url + item_id;
	});

	if (message !== ""){
		$('#message_p').html(message);
	} 
	$('#delete_confirm_wnd').jqmShow();
};

/*for custom confirmation popup*/
var custom_confirm = function(message, function_name, close_function_name){
	$('#custom_confirm_ok_btn').click(function(){
		$('#custom_confirm_wnd').jqmHide();
		/*call the function from parameters*/
		if (function_name){
			eval(function_name);
		}
	});
	$('#custom_confirm_cancel_btn').click(function(){
		$('#custom_confirm_wnd').jqmHide();
		/*call the function from parameters*/
		if (function_name){
			eval(close_function_name);
		}
	});

	if (message !== ""){
		$('#confirm_p').html(message);
	} 
	$('#custom_confirm_wnd').jqmShow();
};
/*for custom confirmation popup*/
var show_alert = function(message){
	if (message !== ""){	
		$('#alert_p').html(message);
	} 
	var height = 126;
	var margin_offset = '-' + Math.ceil((height) / 2) + 'px';
	$('#confirm_wnd').css('margin-top', margin_offset);
	$('#alert_wnd').jqmShow();
};

var postCallContactPrint = function(url){
	$.post(url, null, function (data) {		
		$('#loading_indicator').jqmHide();
		if ("ERROR" == data){
			show_alert('Error getting contact number');
		} else {
			if(data !== ""){
				var contact_count = parseInt(data, 10);
				if (50 <= contact_count){
					var pages_num = round(contact_count/10);
					var message = 'Do you want to print ' + pages_num + ' pages?';
					custom_confirm(message, "print()");
				}else{
					print();
				}
			} else {
				show_alert('Error getting contact number');
			}
		}
	});
};
function callContactPrint(owner_id){
		
	var search = null;
	search  = $('#search_member_txt').attr('value');
	var url = "/address_book/get_contact_number/" + owner_id;
	if (search !== null){
		url += "/" + search;
	}
	$('#loading_indicator').jqmShow();
	check_session(url, "postCallContactPrint('" + url + "')");	
}

function loadPiece(url, dom_id){
	
	$('#loading_indicator').jqmShow();
	$.post(url, null, function (data) {	
		$('#loading_indicator').jqmHide();
		if (data === ""){
			show_alert('Error refreshing element');
		} else {
			if(data !== ""){
				$('#' + dom_id).html(data);
			} else {
				show_alert('Error refreshing element');
			}
		}
	});
}

var show_details = function(tr_id){	
	var display = null;
	var row_id = "#" + tr_id;
	if ($(row_id).hasClass("memberDetails")){
		$(row_id).removeClass("memberDetails");
		$(row_id).addClass("tableRow");
	} else {
		$(row_id).removeClass("tableRow");
		$(row_id).addClass("memberDetails");
	}
};

var prepare_my_contacts_print = function(url){
	var search = $('#search_member_txt').val();
	
	if (search && search !== ""){
		url += "/" + search;
	}
	$("#print_lnk").attr('target', '_blank');
	$("#print_lnk").attr('href', url);
	return true;	
};
var prepare_address_book_print = function(url){
	/*add vars for filter form*/
	/*$group_type_id = null, $country_id = null,$group_id = null,$board_members = null, $search = ""*/
	var group_type_id  = " ";
	group_type_id  = $('#group_type_cmb').val();
	
	var country_id = " ";
	country_id  = $('#select_country_cmb').val();
	
	var group_id = " ";
	group_id  = $('#group_cmb').val();

	var board_members_only = " ";
	board_members_only  = $('#board_members_cxb').attr('checked');
	if (board_members_only === true){
		board_members_only = 1;
	} else {
		board_members_only = 0;
	}
	var search = " ";
	search = $('#search_member_txt').val();
	
	url += group_type_id + "/" + country_id + "/" + group_id+ "/" + board_members_only+ "/" + search;
	
	$("#print_lnk").attr('target', '_blank');
	$("#print_lnk").attr('href', url);
	return true;	
};

var close_browser_tab = function(){	
	/*Firefox*/
	if (navigator.appName == 'Netscape'){
		window.open('', '_self', '');
		window.close();
	}
	else {
		/*Internet Explorer*/
		setTimeout("WB.ExecWB(45,2)",0); 
	}
};
var callAddressBookPrintRequest = function(url){
	$('#loading_indicator').jqmShow();
	$.post(url, null, function (data) {	
		$('#loading_indicator').jqmHide();
		if ("ERROR" == data){
			show_alert('Error getting contact number');
		} else {
			if(data !== ""){
				var contact_count = parseInt(data, 10);
				if (50 <= contact_count){
					var pages_num = Math.round(contact_count/10);
					var message = 'Do you want to print ' + pages_num + ' pages?';
					custom_confirm(message, "print()", "close_browser_tab()");
				}else{
					print();
				}
			} else {
				show_alert('Error getting contact number');
			}
		}
	});
};
var callAddressBookPrint = function( group_type_id, country_id, group_id, board_members, search){
	
	var url = "/member_group_role/get_contact_number/" + group_type_id + "/" + country_id + "/" + group_id + "/" + board_members + "/" + search;
	check_session(url, "callAddressBookPrintRequest('" + url + "')");
};

/* Use to write info message in header bar*/
var write_info_header_msg_bar = function(message){
	$("#HeaderMsgBar").html("<img alt='info:' src='/images/HeaderMsgBarInfo.png'/>" + message);
};
/* Use to write warning message in header bar*/
var write_warning_header_msg_bar = function(message){
	$("#HeaderMsgBar").html("<img alt='warning:' src='/images/MemberNavWarning.gif'/>" + message);
};
var callGroupMemberPrintRequest = function(url){
	$('#loading_indicator').jqmShow();
	$.post(url, null, function (data) {	
		$('#loading_indicator').jqmHide();
		if ("ERROR" == data){
			show_alert('Error getting number of members');
		} else {
			if(data !== ""){
				var contact_count = parseInt(data, 10);
				if (50 <= contact_count){
					var pages_num = round(contact_count/10);
					var message = 'Do you want to print ' + pages_num + ' pages?';
					custom_confirm(message, "print()");
				}else{
					print();
				}
			} else {
				show_alert('Error getting contact number');
			}
		}
	});
};
var callGroupMemberPrint = function(group_id, search, board_members){
	
	var url = "/group/get_count_of_members_for_printing/" + group_id + "/" + search + "/" + board_members;
	check_session(url, "callGroupMemberPrintRequest('" + url + "')");
};

var prepare_group_members_print = function(url){
	var search = $('#search_member_txt').val();
		
	if (search && search !== ""){
		url += "/" + search + "/";
	} else {
		url += "/ /";
	}
	var filter = 0; 
	if("true" == isBoard){
		filter = 1;
	}
	
	/*var checkbox = document.getElementById('board_members_cxb');	
	var filter = 0;
	if (checkbox){
		filter  = checkbox.checked;
		if (filter === true){
			filter = 1;
		} else {
			filter = 0;
		}
	}*/
	
	url += filter;

	$("#print_lnk").attr('target', '_blank');
	$("#print_lnk").attr('href', url);
	return true;	
};

/*part of the member's profile = do not need session check*/
var filter_members_events = function(member_id, filter, page, limit, dom_element){
	$('#loading_indicator').jqmShow();
	var url = "/member/all_member_events_table/" + member_id + "/" + filter + "/" + page + "/" + limit;
	$.post(url, null, function (data) {	
		$('#loading_indicator').jqmHide();
		if ("ERROR" == data){
			show_alert('Error refreshing agenda');
		} else {
			$("#" + dom_element).html(data);
		}
	});
};

/*part of the group's profile = do not need session check*/
var filter_all_events = function(filter, dom_element, limit){
	$('#loading_indicator').jqmShow();
	var url = "/event/european_events_table/" + filter;
	if (limit){
		url += "/" + limit;
	}
	$.post(url, null, function (data) {	
		$('#loading_indicator').jqmHide();
		if ("ERROR" == data){
			show_alert('Error refreshing agenda');
		} else {
			if(data !== ""){
				$("#" + dom_element).html(data);
			} else {
				show_alert('Error refreshing agenda');
			}
		}
	});
};
/*part of the group's profile = do not need session check*/
var filter_group_events = function(group_id, filter, dom_element, limit){
	$('#loading_indicator').jqmShow();
	var url = "/group/group_events_table/" + group_id + "/" + filter;
	if (limit){
		url += "/" + limit;
	}
	$.post(url, null, function (data) {	
		$('#loading_indicator').jqmHide();
		if ("ERROR" == data){
			show_alert('Error refreshing agenda');
		} else {
			if(data !== ""){
				$("#" + dom_element).html(data);
			} else {
				show_alert('Error refreshing agenda');
			}
		}
	});
};

/*Use to add member to my contacts*/

var addToAddressbookRequest = function(member_id, url, dom_element, reload){
	$('#loading_indicator').jqmShow();
	$.post("/address_book/add_to_address_book/" + member_id, null, function (data) {	
		$('#loading_indicator').jqmHide();
		if ("ERROR" == data){
			write_warning_header_msg_bar("Error adding member to your address book");
		} else {
			if("EXIST" == data){
				write_warning_header_msg_bar("This member already exists in your address book");
			} else {
				write_info_header_msg_bar(data);
				if (('undefined' != typeof(url) && 'null' != url) && ('undefined' != typeof(dom_element) && 'null' != dom_element)){
					refresh_members_table(url, dom_element);
				} else {
					if ('null' != url && 'undefined' != typeof(reload)){
						location.href = reload;
					}
				}
			}
		}
	});
};
var add_to_addressbook = function(member_id, url, dom_element, reload){
	
	var request_url = "/address_book/add_to_address_book/" + member_id;
	check_session(request_url, "addToAddressbookRequest( " + member_id + ",'" + url + "', '" + dom_element + "', '" + reload + "')");
};

var refresh_members_table = function(url, dom_element){
	$('#loading_indicator').jqmShow();
	$.post(url, null, function (data) {	
		$('#loading_indicator').jqmHide();
		if ("ERROR" == data){
			write_warning_header_msg_bar("Error refreshing");
		} else{ 
			if ("SUCCESS" == data){
				$(dom_element).html(data);
				SetupAJAXPaginationIE(dom_element, url);
			}
		}
	});
};
var addMemberToAddressbook = function(member_id, content, dom_element){
	$('#loading_indicator').jqmShow();
	$.post("/address_book/add_to_address_book/" + member_id, null, function (data) {	
		$('#loading_indicator').jqmHide();
		if ("ERROR" == data){
			write_warning_header_msg_bar("Error adding member to your address book");
		} else {
			if("EXIST" == data){
				write_warning_header_msg_bar("This member already exists in your address book");
			} else {
				write_info_header_msg_bar(data);
				$(dom_element).html(content);
			}
		}
	});
};
var add_member_to_addressbook = function(member_id, content, dom_element){
	var request_url = "/address_book/add_to_address_book/" + member_id;
	check_session(request_url, "addMemberToAddressbook(" + member_id + ",'" + content + "', '" + dom_element + "')");
};
/*Use to create standard confirmation window*/
var show_confirm = function(message, ok_text, ok_action, close_text){
	
	$('#confirm_message_p').html(message);
	if ('undefined' != typeof(ok_text)){
		$('#confirm_ok_btn').attr('value', ok_text);
	}
	if ('undefined' != typeof(ok_action)){
		$('#confirm_ok_btn').bind('click', function(e){
			$("#confirm_wnd").jqmHide();	
			eval(ok_action);
		});
	}
	if ('undefined' != typeof(close_text)){
		$('#confirm_cancel_btn').attr('value', close_text);
	}
	
	$('#confirm_cancel_btn').bind('click', function(e){
		$("#confirm_wnd").jqmHide();	
	});
	var height = 126;
	var margin_offset = '-' + Math.ceil((height) / 2) + 'px';
	$('#confirm_wnd').css('margin-top', margin_offset);
	$("#confirm_wnd").jqmShow();	
};

/*Use to show message preview when edited on mass messaging pages*/

var message_preview = function(message_type, message_subject, content){
	var header = "Subject: " + message_type + " - " + message_subject;
	$("#preview_header").html(header);
	$("#message_subject").html(message_subject);
	$("#message_type").html(message_type);
	$("#message_content").html(content);
	var max_width = document.body.clientWidth;
	var left = Math.ceil(((max_width - 585)/2)) + 'px';
	var margin_top = Math.ceil(413/2);
	$('#message_preview').css('left', left);
	$('#message_preview').css('top', '50%');
	$('#message_preview').css('margin-top', '-' + margin_top + 'px');
	$('#message_preview').css('position', 'absolute');
	$("#message_preview").css("display", "block");
	$("#Blocker").css("display", "block");
};

var close_preview = function(){
	$("#message_preview").css("display", "none");
	$("#Blocker").css("display", "none");
};

/* added by Aleksandar
	JS functions for Ajax pagination */

function isset(varname)  {
	if(typeof( window[ varname ] ) != "undefined") {
		return true;
	}
  	else {
  		return false;
  	}
}
var SetupAJAXPaginationIE = function(filter, basic_url) {
	bind_click_to_link_IE('first_a', filter, basic_url);
	bind_click_to_link_IE('prev_a', filter, basic_url);
	bind_click_to_link_IE('next_a', filter, basic_url);
	bind_click_to_link_IE('last_a', filter, basic_url);
};

var refresh_table = function(tab_name, page, args) {
	if (tab_name) {
		if (isset('tab')){
			if ($("#" + tab).hasClass("Current")){
				$("#" + tab).removeClass("Current");
			}
		} else if (isset('default_tab')){
			if ($("#" + default_tab).hasClass("Current")){
				$("#" + default_tab).removeClass("Current");
			}
		}
		tab = tab_name;
		$("#" + tab).addClass("Current");
	}
	var new_link = '';
	if (tab_name === null) {
		if (args === null) {
			link = base_url + '/page:';
			new_link = base_url + '/page:' + page;
		} else {
			link = base_url;
			if (args){
				for (var i = 0; i < args.length; i++) {
					if (args[i]) {
						link = link + '/' + args[i];
					}
				}
			}
			link = link + '/page:';
			new_link = link + page;
		}
	} else {
		if (!args || args === null) {
			link = base_url + '/' + tab_name + '/page:'; 
			new_link = base_url + '/' + tab_name + '/page:' + page;
		} else {
			if (args){
				link = base_url + '/' + tab_name;
				for (i = 0; i < args.length; i++) {
					if (args[i]) {
						link = link + '/' + args[i];
					}
				}
			}
			link = link + '/page:';
			new_link = link + page;
		}
	}
	$('#loading_indicator').jqmShow();
	$.get(new_link, function (data) {
		$('#loading_indicator').jqmHide();
		if ("ERROR" == data){
			show_alert('Error refreshing form');
		} else {
			if(data !== ""){
				$(container).empty();
				if (null !== tabs) {
					/*change_selected_tab(tab_name);*/
				}
				$(container).append(data);
				SetupAJAXPaginationIE(container, base_url);
				if ("activites" == tab_name){ /*marina added this exception*/
					filter_members_events(window.member_id,'future','profile','', 'profile_agenda');
				}
				if ("myAgenda" == tab_name){ /*marina added this exception*/
					filter_members_events(window.member_id,'future','dashboard','', 'dashboard_agenda');
				}
			} else {
				if ("ERROR" == data){
					show_alert('Error refreshing form');
				}
			}
		}
	});
};

var inTabList = function(tab) {
	var i = 0;
	var exist = false;
	while (!exist &&  i < tabs.length) {
		if (tabs[i] == tab) {
			exist = true;
		}
		i++;
	}
	return exist;
};

var change_selected_tab = function(tab) {
	for(var i = 0; i < tabs.length; i++) {
		if (tabs[i] == tab) {
			if($('a#' + tabs[i]) && $('a#' + tabs[i]).get(0)){
				$('a#' + tabs[i]).get(0).className = 'Current';
			}
		} else {
			if($('a#' + tabs[i]) && $('a#' + tabs[i]).get(0)){
				$('a#' + tabs[i]).get(0).className = '';
			}
		}
	}
};
/*
*IE ajax pagination
*/

var reload_document_items_IE = function(filter, base_url){
	$('#loading_indicator').jqmShow();
	$.get(base_url, null, function (data) {
		$('#loading_indicator').jqmHide();
		if ("" !== data){
			/* refresh the grid*/ 
			$(filter).empty(data);
			$(filter).append(data);
			SetupAJAXPaginationIE(filter, base_url);
		} else {
			show_alert('Error refreshing grid.');
		}
	});
	return false;	
};
	
var reload_items_IE = function(link_object, filter, base_url){
	$('#loading_indicator').jqmShow();
	$.get(link_object.href, null, function (data) {
		$('#loading_indicator').jqmHide();
		if ("" !== data){
			/* refresh the grid*/ 
			$(filter).empty(data);
			$(filter).append(data);
			SetupAJAXPaginationIE(filter, base_url);
		} else {
			show_alert('Error refreshing grid.');
		}
	});
	return false;	
};
var bind_click_to_link_IE = function(page_link_id, filter, base_url){
	var page_object = document.getElementById(page_link_id);
	if (page_object){
		if (page_object.addEventListener){	/*if so, it WC3 like*/
			$("#" + page_link_id).click(function() {
				$('#loading_indicator').jqmShow();
				var pos = page_object.href.search('page');
				var page = page_object.href.substring(pos + 5);
				var hash = document.location.hash.split('/');
				var hash_string = '';
				for (var i = 0; i < hash.length - 1; i++) {
					hash_string = hash_string + hash[i] + '/';
				}
				document.location.hash = hash_string + page;
				$.get(this.href, null, function (data) {
					$('#loading_indicator').jqmHide();
					if ("" !== data){
						$(filter).html(data);
						SetupAJAXPaginationIE(filter, base_url);
					} else {
						show_alert('Error refreshing grid.');
					}
				});
				return false;
			});
		} else if (page_object.attachEvent){ /*is fo, it's IE like*/
				page_object.attachEvent('onclick', function() {
					reload_items_IE(page_object, filter, base_url);
					return false;
			});
		}
	}
};
/*
*END IE ajax pagination
*/	
var SetupAJAXPagination = function (filter, base_url) {

	$(filter).find('a[href^=' + base_url + ']').click(function() {
		$('#loading_indicator').jqmShow();
		var pos = this.href.search('page');
		var page = this.href.substring(pos + 5);
		var hash = document.location.hash.split('/');
		var hash_string = '';
		for (var i = 0; i < hash.length - 1; i++) {
			hash_string = hash_string + hash[i] + '/';
		}
		document.location.hash = hash_string + page;
		$.get(this.href, null, function (data) {
			$('#loading_indicator').jqmHide();
			if ("" !== data){
				$(filter).html(data);
				SetupAJAXPagination(filter, base_url);
			} else {
				show_alert('Error refreshing grid.');
			}
		});
		return false;
	});
};
/* end of ajax paginaton functions */

function testFloat(input_value){
	var return_value = /^((0?,)|(([1-9]){1}[0-9]{0,4},?))([0-9]{0,2})$/.test(input_value);
	return return_value;
}

function testNonNegativeInteger(input_value){
	var return_value = /^([1-9]){1}([0-9]){0,2}$/.test(input_value);
	return return_value;
}

function testInteger(input_value){
	var return_value = /^[0-9]{0,5}$/.test(input_value);
	return return_value;
}

var trim = function(str){
	s = str.replace(/^(\s)*/, '');
	s = s.replace(/(\s)*$/, '');
	return s;
};

var limitText = function(dom_object, limit){
	var text = dom_object.value;
	if (limit < text.length){
		dom_object.value = text.substring(0, limit);
	}
};

var search_bg = function(id){
	var x=document.getElementById(id);
	var value = x.value;
	if('' !== value){		
		$("#" + id).css('background', 'none white');
	}else{
		$("#" + id).css('background', '');
	}
};

var change_search_bg = function(){
	$(".SearchInput").each(function(i){
		if ((this.className == 'SearchInput')){
			id = this.id;
			search_bg(id);
			
		}
	});
};

incoming = function(){
	var x={		
		refresh_table : function(){
			$('#loading_indicator').jqmShow();
			var anchor = document.location.hash;
			var refresh_url = basic_url;
			if (anchor){
				var page = anchor.substring(1); 
				refresh_url = basic_url + "/" + page;
			}
			$.get(refresh_url, function (data) {
				$('#loading_indicator').jqmHide();
				if ("ERROR" == data){
					show_alert('Error refreshing form');
				} else {
					if(data !== ""){
						$(container).html(data);
						SetupAJAXPaginationIE(container, basic_url);
					} else {
						show_alert('Error refreshing form');
					}
				}
			});
		},
		change_state : function(url, item_id){
			var checkbox = document.getElementById("SuApplicationDetail_" + item_id);
			if (checkbox){
				var value = checkbox.checked;
				if (true === value){
					url = url + "/TRUE";
				} else {
					url = url + "/FALSE";
				}
				$("#loading_indicator").jqmShow();
				$.get(url, function(data){
					$("#loading_indicator").jqmHide();
					if ("SUCCESS" == data){
						write_info_header_msg_bar("State is successfully changed.");
					} else {
						show_alert("Failed to change members state.");
					}
				});
			}
		}
	};
	return x;
}()
agora_candidates = function(){
	var x={		
		refresh_table : function(tab_name, page) {
			
			var current_anchor = document.location.hash;			
			var params = agora_candidates.urlParsing(current_anchor);
			if (tab_name) {	
				tab = tab_name;
			} else {
				if (params && params['tab']){
					tab =  params['tab']; 
				}
			}
			if ($("#cd").hasClass("Current")){
				$("#cd").removeClass("Current");
			}
			if (isset('current_tab')){
				if ($("#" + current_tab).hasClass("Current")){
					$("#" + current_tab).removeClass("Current");
				}
				$("#" + tab).addClass("Current");
				current_tab = tab;
			} 
			var page_param = null;
			page = parseInt(page, 10);
			if (page && !isNaN(page)){
				page_param = page;
			} else {
				if (params && params['page']){
					page_param = params['page']; 
				}
			}

			var selected_group_id = tabs[tab];
			var new_link = base_url + '/' + selected_group_id + "/" + page_param;
			var new_anchor = "#" + tab_name + "/page:" + page_param;
			document.location.hash = new_anchor;
			$('#loading_indicator').jqmShow();
			$.get(new_link, function (data) {
				$('#loading_indicator').jqmHide();
				if ("ERROR" == data){
					show_alert('Error refreshing form');
				} else {
					if(data !== ""){
						$(container).empty();
						if (null !== tabs) {
							/*change_selected_tab(tab_name);*/
						}
						$(container).append(data);
						var refresh_url = pagination_base_url + "/" + selected_group_id;
						agora_candidates.SetupAJAXPaginationIE(container, refresh_url);
					} else {
						show_alert('Error refreshing form');
					}
				}
			});
		},
		urlParsing : function(anchor){
			currentAnchor = anchor;
			var page = 1;
			var tab = default_tab;
			var param = null;
			var string_page = "" ;
			var parameters = {};
			if (currentAnchor) {
				var args = currentAnchor.split('/');
				if (tabs !== null) {
					if (inTabList(args[0])) {	
						tab = args[0];
						parameters['tab'] = tab;
					}
				}
				if (args[1]) {
					string_page = args[1];
					var string_page_array = string_page.split(":");
					if (string_page_array[1]){
						var int_page = parseInt(string_page_array[1], 10);
						if (!isNaN(int_page)){
							page = int_page;
							parameters['page'] = page;
						}
					}
				}
			}
			return parameters;
		},
		bind_click_to_link_IE : function(page_link_id, filter, basic_url){
			var page_object = document.getElementById(page_link_id);
			if (page_object){
				if (page_object.addEventListener){	/*if so, it WC3 like*/
					$("#" + page_link_id).click(function() {
						$('#loading_indicator').jqmShow();
						var pos = page_object.href.search('page');
						var page = page_object.href.substring(pos + 5);
						var hash = document.location.hash.split('/');
						var hash_string = '';
						for (var i = 0; i < hash.length - 1; i++) {
							hash_string = hash_string + hash[i] + '/';
						}
						var url = basic_url + "/" + page;
						var new_anchor = "#" + current_tab + "/page:" + page;
						document.location.hash = new_anchor;
						$.get(url, null, function (data) {
							$('#loading_indicator').jqmHide();
							if ("" !== data){
								$(filter).html(data);
								agora_candidates.SetupAJAXPaginationIE(filter, basic_url);
							} else {
								show_alert('Error refreshing grid.');
							}
						});
						return false;
					});
				} else if (page_object.attachEvent){ /*is fo, it's IE like*/
					page_object.attachEvent('onclick', function() {
						reload_items_IE(page_object, filter, basic_url);
						return false;
					});
				}
			}
		},
		SetupAJAXPaginationIE : function(filter, basic_url) {
			agora_candidates.bind_click_to_link_IE('first_a', filter, basic_url);
			agora_candidates.bind_click_to_link_IE('prev_a', filter, basic_url);
			agora_candidates.bind_click_to_link_IE('next_a', filter, basic_url);
			agora_candidates.bind_click_to_link_IE('last_a', filter, basic_url);
		},
		changeStatusRequest : function( url){
			$("#loading_indicator").jqmShow();
			$.get(url, function(data){
				$("#loading_indicator").jqmHide();
				if ("SUCCESS" != data){
					var message = "Failed to change status";
					if ("" !== data){
						message = message + ": " + data; 
					}
					show_alert(message);
				} else {
					write_info_header_msg_bar("Status is successfully changed.");
					agora_candidates.refresh_table(current_tab, "");
				}
			});
		},
		change_status : function( juridical_commission_id, agora_candidature_id, new_status){
			if (agora_candidature_id && new_status){
				var url = "/agora_candidature/change_status/" + juridical_commission_id + "/"  + agora_candidature_id + "/" + new_status;
				check_session(url, "agora_candidates.changeStatusRequest('" + url + "')");
			}
		},
		setNumbersRequest : function(url){
			var agora_form = $("#agora_candidatures_frm");
			var params = agora_form.serialize();
			$("#loading_indicator").jqmShow();
			$.post(url, params, function(data){
				$("#loading_indicator").jqmHide();
				if ("SUCCESS" != data){
					show_alert("Failed to save changes");
				} else {
					agora_candidates.refresh_table(current_tab, "");
				}
			});
		},
		set_numbers : function(juridical_commission_id){
			var url = "/agora_candidature/set_numbers/" + juridical_commission_id;
			check_session(url, "agora_candidates.setNumbersRequest('" + url + "')");
		},
		bindAllInputsValidation : function(){
			$("input[id^='number_of_places']").each(function(i, element){
				element_id = element.id;
				agora_candidates.bindSingleValidation(element_id);
			});
		},
		bindSingleValidation : function(element_id){
			var element_comp = document.getElementById(element_id);
			if (element_comp){
				if (element_comp.addEventListener){
					$("#" + element_id).bind('keyup', function(event){
						var key_code = event.keyCode;
						agora_candidates.allowPositiveInteger(element_id);
					});
				}else if (element_comp.attachEvent){
					element_comp.attachEvent('onkeyup', function(event){
						var key_code = event.keyCode;
						agora_candidates.allowPositiveInteger(element_id);
					});
				}
			}
		},
		allowPositiveInteger : function(field_id) {
			var field = $("#" + field_id);
			if (field){
				var field_value = field.val();
				if (field_value){
					var is_integer = testNonNegativeInteger(field_value);
					if (false === is_integer){
						var new_value = field_value.substring(0, field_value.length - 1);
						$("#" + field_id).attr('value', '');
					}
				}
			}
		},
		changeApplicationStatusRequest : function(url){
			$("#loading_indicator").jqmShow();
			$.get(url, function(data){
				$("#loading_indicator").jqmHide();
				if ("SUCCESS" != data){
					var message = "Failed to change status";
					if ("" !== data){
						message = message + ": " + data; 
					}
					show_alert(message);
				} else {
					write_info_header_msg_bar("Status is successfully changed.");
					agora_candidates.refresh_table(current_tab, "");
				}
			});
		},		
		change_application_status : function( juridical_commission_id, member_candidature_id, new_status){
			if (member_candidature_id && new_status && juridical_commission_id){
				var url = "/member_candidature/change_application_status/" + juridical_commission_id + "/"  + member_candidature_id + "/" + new_status;
				check_session(url, "agora_candidates.changeApplicationStatusRequest('" + url + "')");
			}
		},
		cancelApplicationRequest : function(url){
			$.get(url, function(data){
				$("#loading_indicator").jqmHide();
				if ("SUCCESS" == data){
					refresh_table('candidatures', 1);
				} else {
					show_alert("Failed to cancel application.");
				}
			});
		},		
		cancel_application : function(member_candidature_id, member_id){
			if (member_candidature_id && member_id){				
				var url = "/member_candidature/cancel_application/" + member_candidature_id + "/" + member_id;
				check_session(url, "agora_candidates.cancelApplicationRequest('" + url + "')");
			}
		}
	};
	return x;
}()
var antenna = function(){
	var x={
		show_new_message_win : function(url) {	
			$('#Error').hide();
			var max_height = document.body.clientHeight;
			var max_width = document.body.clientWidth;
			var left = (max_width/2 - 344/2) + 'px';
			var height = 220;
			var margin_offset = '-' + Math.ceil((height) / 2) + 'px';
			$('#jqm_new_message_div').css('margin-top', margin_offset);
			$('#jqm_new_message_div').css('left', left);
			$('#NewMessage').attr('action', url);
			$('#jqm_new_message_div').jqmShow();
		},
		validate_fields : function(){
			if($('#Message').val() === ""){
				$("#message_error_text").html('<img alt="Warning:" src="/images/MemberNavWarning.gif"/> Message cannot be empty!');
				$('#Error').show();
				return false;
			}
			var message = $('#Message').val();
			if (300 < message.length){
				$("#message_error_text").html('<img alt="Warning:" src="/images/MemberNavWarning.gif"/> Maximum message length is 300 characters!');
				$('#Error').show();
				return false;
			} 
			return true;	
		},
		validate_edit_fields : function(){
			if($('#Message_edit').val() === ""){
				$('#Error_edit').show();
				return false;
			} 
			return true;	
		},
		validate_observer_fields : function(){
			var observer_input = $('#Observer_edit');
			if (observer_input){
				var observer_name = observer_input.attr('value');
				if( "" === observer_name){
					$('#Error_observer').show();
					return false;
				} 
			}
			return true;	
		},	
		show_edit_message_win : function(message_id, url) {	
			$('#Error_edit').hide();
			$('#MessageId').attr('value', message_id);
			$('#jqm_edit_message_div').jqm({modal:true});
			var text = $('#Message_' + message_id).html();

			text = text.replace(/<p>/g,"");
	        text = text.replace(/<\/p>/g,"");
            text = text.replace(/<br>/g,"\n");
			
	        $('#Message_edit').html("");
			$('#Message_edit').val(text);
			var max_height = document.body.clientHeight;
			var max_width = document.body.clientWidth;
	
			var left = (max_width/2 - 344/2) + 'px';
			
			$('#jqm_edit_message_div').css('left', left);
			$('#EditMessage').attr('action', url);
			$('#jqm_edit_message_div').jqmShow();
			return message_id;
	
		},
		delete_message_win : function (group_id, message_id){			
			$('#jqm_delete_message_div').jqm({modal:true});
			var max_height = document.body.clientHeight;
			var max_width = document.body.clientWidth;
			var left = (max_width/2 - 344/2) + 'px';
			var text = $('#Message_' + message_id).html();
			text = text.replace('/^\s*|\s*$/g','');
			var title = $('#Message_title_' + message_id).html();
			
			$('#Message_delete').html("");
			if(null !== title){
				$('#Message_delete').append(title);
			}
			$('#Message_delete').append(text);
			$('#delete_message_ok_btn').click(function(){
				if (0 === group_id) {
					location.href = '/member_group_role/delete_message/' + message_id;
				} else {
					location.href = '/group/delete_message/' + group_id + '/' + message_id;
				}
			});
				
			$('#jqm_delete_message_div').css('left', left);
			$('#jqm_delete_message_div').jqmShow();
		},
		show_new_announcement_win : function(url){
			$('#Error').hide();
			var max_height = window.innerHeight;
			var max_width = window.innerWidth;
	
			$("#AnnouncementID").attr("value", "");
			var left = Math.ceil((max_width/2 - 300)) + 'px';
			var top = Math.ceil((max_height - 530)/2) + 'px';
			$('#NewAnnouncementDiv').css('left', left);
			$('#NewAnnouncementDiv').css('top', top);
			$('#NewAnnouncementDiv').css('display', "");
			$('#new_announcement_frm').attr('action', url);
			$('#Blocker').css('display', "");
		},
		show_edit_announcement_win : function(message_id, url){
			
			var text = $('#Message_' + message_id).html();
			var title = $('#Message_title_' + message_id).text();
			var expires = $('#Message_expires_' + message_id).html();
			$("#AnnouncementID").attr("value", parseInt(message_id, 10));
			var body = tinyMCE.getInstanceById('mce_editor_0');
			if (body){
				body.setContent(text);
				var body_value = body.getContent();
				
				$('#MessageTitle').attr('value', title);
				$('#ExpDate').attr('value', expires);
			
				$("#ExpDate").datepicker({
					ifFormat: "%Y-%g-%e",
					buttonImageOnly: true
				});
				$('#Error').hide();
				var max_height = window.innerHeight;
				var max_width = window.innerWidth;
		
				var left = Math.ceil((max_width/2 - 300)) + 'px';
				var top = Math.ceil((max_height - 530)/2) + 'px';
				$('#NewAnnouncementDiv').css('left', left);
				$('#NewAnnouncementDiv').css('top', top);
				$('#NewAnnouncementDiv').css('display', "");
				$('#new_announcement_frm').attr('action', url);
				$('#Blocker').css('display', "");
			} else {
				show_alert('Error opening message window.Please, reload page and try again.');
			}
		},
		search_antennas_directory_by_country : function(){
			var search = null;
			if(document.getElementById('select_country_cmb')){
				var search  = document.getElementById('select_country_cmb').value;
			}
			if(null !== search){
				$('#loading_indicator').jqmShow();
				$.get('/antenna/get_antennas_by_country?search=' + search, function (data) {
					$('#loading_indicator').jqmHide();
					if ("ERROR" == data){
						show_alert('Error refreshing form');
					} else {
						if("" !== data){
							$('#country_list_antenna').html(data);
							$().ready(function(){
								SetupAJAXPagination('#country_list_antenna');
							});
						} else {
							show_alert('Error refreshing form');
						}
					}
				});
			} else {
	
				show_alert('Insert search value first!');
			}
		},
		removeImageRequest : function(url){
			$.post( url, null, function() {});
		},
		changeStatusRequest : function(url){
			$('#loading_indicator').jqmShow();
			$.get(url, function (data) {
				$('#loading_indicator').jqmHide();
				if ("ERROR" == data){
					show_alert('Error refreshing form');
				} else {
					if("" !== data){
						top.location = '/antenna/status/' + group_id;
					} else {
						show_alert('Error refreshing form');
					}
				}
			});
		},
		sendElectionNewsfeedRequest : function(url){
			$('#loading_indicator').jqmShow();
			$.get(url, null, function(data) {
				$('#loading_indicator').jqmHide();
			});
		},
		refresh_table : function(url, container){
			var anchor = document.location.hash;
			var base_url = url;
			var page = "";
			if ("" !== anchor){
				var page = anchor.substring(1);
			}
			page = parseInt(page, 10);
			if (!isNaN(page)){
				url = url + "/" + page;
			}
			if (url){
				$("#loading_indicator").jqmShow();
				$.get(url, function(data){
					$("#loading_indicator").jqmHide();
					if ("ERROR" == data){
						show_alert("Error refreshing table.");
					} else {
						$(container).html(data);
						SetupAJAXPaginationIE(container, base_url);
					}
				});
			}
		},
		remove_accepted_applicant : function(url){
			if (url){
				url = url + "/FALSE";
				$("#loading_indicator").jqmShow();
				$.get(url, function(data){
					$("#loading_indicator").jqmHide();
					if ("SUCCESS" == data){
						antenna.refresh_table(base_url1, "#first_container");
						antenna.refresh_table(base_url2, "#second_container");
					} else {
						show_alert("Failed to change application status.");
					}
				});
			}
		},
		accept_applicant : function(url){
			if (url){
				url = url + "/TRUE";
				$("#loading_indicator").jqmShow();
				$.get(url, function(data){
					$("#loading_indicator").jqmHide();
					if ("SUCCESS" == data){
						antenna.refresh_table(base_url1, "#first_container");
						antenna.refresh_table(base_url2, "#second_container");
					} else {
						show_alert("Failed to change application status.");
					}
				});
			}
		},
		change_applicant_rank : function(url, direction){
			if (url){
				url = url + "/" + direction;
				$("#loading_indicator").jqmShow();
				$.get(url, function(data){
					$("#loading_indicator").jqmHide();
					if ("SUCCESS" == data){
						antenna.refresh_table(base_url1, "#first_container");
						antenna.refresh_table(base_url2, "#second_container");
					} else {
						show_alert("Failed to change application status.");
					}
				});
			}
		},
		submit_applications : function(form_id){
			if (form_id){
				var form = document.getElementById(form_id);
				if (form){
					form.submit();
				}
			}
		},
		deleteEventRequest : function(url){
			if (url){
				$("#loading_indicator").jqmShow();
				$.post(url, null, function(data){
					$("#loading_indicator").jqmHide();
					if ("SUCCESS" == data){
						currentAnchor = document.location.hash;
						var page = 1;
						var tab = default_tab;
					
						if (currentAnchor) {
							currentAnchor = currentAnchor.substring(1);
							var args = currentAnchor.split('/');
							if (tabs !== null) {
								if (inTabList(args[0])) {
									tab = args[0];
								}
							}
							if (args[1] && args[1] > 0) {
								page = args[1];
							}	
						}
						refresh_table(tab, page);
					} else {
						show_alert("Failed to delete event");
					}
				});
			}
		},
		delete_event : function(url){
			if (url){
				check_session(url, "antenna.deleteEventRequest('" + url + "')");
			}
		}
	};
	return x;
}()
chair_team = function(){
	var x={		
		searchMembersByNameRequest : function(url){
			var search = null;
			search  = $('#search_member_txt').attr('value');
			if(null !== search){
				url = url + "/" + search + "/true";
				$('#loading_indicator').jqmShow();
				$.post(url, null, function (data) {
					$('#loading_indicator').jqmHide();
					if ("ERROR" == data){
						show_alert('Error refreshing form');
					} else {
						if("" !== data){
							$('#member_list_holder').html(data);
							SetupAJAXPagination(container, base_url);						
						} else {
							show_alert('Error refreshing form');
						}
					}
				});
			} else {
				show_alert('Insert search value first!');
			}
		},
		resetSearchRequest : function(url){
			$('#search_member_txt').val("");
			$("#loading_indicator").jqmShow();
			$.post( url, null, function (data) {
				$('#loading_indicator').jqmHide();
				if ("ERROR" == data){
					show_alert('Error refreshing form');
				} else {
					if("" !== data){
						$('#member_list_holder').html(data);
						SetupAJAXPagination(container, base_url);
					} else {
						show_alert('Error refreshing form');
					}
				}
			});
		},
		addMemberRequest : function(member_id, group_id, role_id){
			var post_data = new Object();
			post_data.member_id = member_id;
			post_data.group_id = group_id;
			post_data.role_id = role_id;
			$('#loading_indicator').jqmShow();
			$.post('/chair/add_member/', post_data, function (data) {
				$('#loading_indicator').jqmHide();
				if ("SUCCESS" == data){
					write_info_header_msg_bar("Added member to chair team");
					/*refresh table*/
					$.post('/chair/add_members_list/'+ window.group_id, null, function (data) {
						$('#loading_indicator').jqmHide();
						if ("ERROR" == data){
							show_alert('Error refreshing form');
						} else {
							if("" !== data){
								$('#member_list_holder').html(data);
							} else {
								show_alert('Error refreshing form');
							}
						}
					});
				} else{
					if ("ERROR" == data){
						write_warning_header_msg_bar("Error adding member to commission!");
					} else {
						write_warning_header_msg_bar(data);
					}
				}
			});
		}
	};
	return x;
}()
commission = function(){
	var x={		
		addMemberRequest : function(member_id, group_id, role_id){
			var post_data = new Object();
			post_data.member_id = member_id;
			post_data.group_id = group_id;
			post_data.role_id = role_id;
			$('#loading_indicator').jqmShow();
			$.post('/commission/add_member/', post_data, function (data) {
				$('#loading_indicator').jqmHide();
				if ("SUCCESS" == data){
					write_info_header_msg_bar("Added member to commission");
					/*refresh table*/
					$.post('/commission/add_members_list/'+ commission_group_id, null, function (data) {
						$('#loading_indicator').jqmHide();
						if ("ERROR" == data){
							show_alert('Error refreshing form');
						} else {
							if("" !== data){
								$('#member_list_holder').html(data);
								SetupAJAXPagination("#member_list_holder", base_url);

							} else {
								show_alert('Error refreshing form');
							}
						}
					});
				} else{
					if ("ERROR" == data){
						write_warning_header_msg_bar("Error adding member to commission!");
					} else {
						write_warning_header_msg_bar(data);
					}
				}
			});
		},
		searchMembersByNameRequest : function(group_id){
			var search = null;
			search  = $('#search_member_txt').attr('value');
			if(null !== search){
				$('#loading_indicator').jqmShow();
				$.post('/commission/add_members_list/'+ group_id + '/ ' + search + '/true', null, function (data) {
					$('#loading_indicator').jqmHide();
					if ("ERROR" == data){
						show_alert('Error refreshing form');
					} else {
						if("" !== data){
							$('#member_list_holder').html(data);
							SetupAJAXPagination("#member_list_holder", base_url);
						} else {
							show_alert('Error refreshing form');
						}
					}
				});
			} else {
				show_alert('Insert search value first!');
			}
		},
		resetSearchRequest : function(group_id){
			$('#loading_indicator').jqmShow();
			$('#search_member_txt').val("");
			$.post('/commission/add_members_list/'+ group_id + '/ /reset', null, function (data) {
				$('#loading_indicator').jqmHide();
				if ("ERROR" == data){
					show_alert('Error refreshing form');
				} else {
					if("" !== data){
						$('#member_list_holder').html(data);
						SetupAJAXPagination("#member_list_holder", base_url);
					} else {
						show_alert('Error refreshing form');
					}
				}
			});
		},
		showGroupManagementFormRequest : function(url){
			$('#loading_indicator').jqmShow();
			$.get(url, function (data) {
				$('#loading_indicator').jqmHide();
				if ("ERROR" == data){
					show_alert('Error refreshing form');
				} else {
					if("" !== data){
						$('#filter_form').html(data);
					} else {
						show_alert('Error refreshing form');
					}
				}
			});
		},
		showGroupManagementRequest : function(url){
			$('#loading_indicator').jqmShow();
			$.get(url, function (data) {
				$('#loading_indicator').jqmHide();
				if ("ERROR" == data){
					show_alert('Error refreshing form');
				} else {
					if("" !== data){
						$('#group_management').html(data);
						SetupAJAXPagination('#commissioners_list', '#group_management');
					} else {
						show_alert('Error refreshing form');
					}
				}
			});
		},
		filterAntennaeRequest : function(url){
			$('#loading_indicator').jqmShow();
			$.get( url, function (data) {
				$('#loading_indicator').jqmHide();
				if ("ERROR" == data){
					show_alert('Error refreshing form');
				} else {
					if("" !== data){
						$('#group_management').html(data);
					} else {
						show_alert('Error refreshing form');
					}
				}
			});
		},
		manageGroupCommRequest : function(flag, comm_id, ant_id, gid){
			$('#loading_indicator').jqmShow();
			$.get('/commission/add_remove_antenna_commissioner/' + flag + "/" + comm_id + "/" + ant_id, function (data) {
				$('#loading_indicator').jqmHide();
				if ("ERROR" == data){
					show_alert('Error refreshing form');
				} else {
					if("" !== data){
						document.getElementById('tr_' + comm_id).childNodes[1].innerHTML = data;
					} else {
						show_alert('Error refreshing form');
					}
				}
			});
			row = 'tr[@id=trAnt_' + gid + ']';
			if(flag === 0) {
				document.getElementById('trAnt_' + gid).childNodes[2].innerHTML = "<a onclick='manage_group_comm(1, " + comm_id + "," + ant_id + "," + gid + ");' href='#'>Add</a>";
			} else {
				document.getElementById('trAnt_' + gid).childNodes[2].innerHTML = "<a onclick='manage_group_comm(0, " + comm_id + "," + ant_id + "," + gid + ");' href='#'>Remove</a>";
				document.getElementById('trAnt_' + gid).childNodes[2].innerHTML += " &#124; <a href='/antenna/status/" + gid +"'>Status</a>";
			}
		},
		ajaxReloadRequest : function(url, filter1, filter2){
			$('#loading_indicator').jqmShow();
			$.get(url, null, function (data) {
				$('#loading_indicator').jqmHide();
				if ("ERROR" != data){
					$(filter2).html(data);
					SetupAJAXPagination(filter1, filter2);
				} else {
					show_alert('Error refreshing grid.');
				}
			});
		}
	};
	return x;
}()

$().ready(function(){

	$("#delete_confirm_wnd").jqm({modal:true});
	$("#custom_confirm_wnd").jqm({modal:true});
	$("#alert_wnd").jqm({modal:true});
	$('#confirm_wnd').jqm({modal:true});

	$('#loading_indicator').jqm({modal:true});

	$('#jqm_new_message_div').jqm({modal:true});
	$('#jqm_no_permission_div').jqm({modal:true});
	$('#jqm_no_login_div').jqm({modal:true});
	$('#jqm_new_announcement_div').jqm({modal:true});
	$('#jqm_rename_file_div').jqm({modal:true});
	$('#jqm_rename_gfile_div').jqm({modal:true});
	$('#jqm_rename_folder_div').jqm({modal:true});
	$('#jqm_rename_single_file_div').jqm({modal:true});
	$('#confirm_delete_page_wnd').jqm({modal:true});
	
	$("#Message").bind('keydown', function(){
		limitText(this, 300);
	});
	$("#Message_edit").bind('keydown', function(){
		limitText(this, 300);
	});
	
	color_validation_message_box();
});

var back_to_url = function(url){
	window.location.href = url;
};
var delete_no_permission_session = function(){
	$.get('/login/clear_no_permission/', null, function (data) {
		if (data && "SUCCESS" == data){
			$("#jqm_no_permission_div").jqmHide();
		}
	});
};
var delete_no_login_session = function(){
	$.get('/login/clear_no_login/', null, function (data) {
		if ("SUCCESS" == data){
			$("#jqm_no_login_div").jqmHide();
		}
	});
};
var delete_new_message_session = function(){
	$.get('/group/clear_new_message/', null, function (data) {
		if ("SUCCESS" == data){
			$("#jqm_new_message_div").jqmHide();
		}
	});
};
var delete_new_announcement_session = function(){
	$.get('/group/clear_new_announcement/', null, function (data) {
		if ("SUCCESS" == data){
			$("#jqm_new_announcement_div").jqmHide();
		} else {
			$("#jqm_new_announcement_div").jqmHide();
		}
	});
};
var expandShrinkRequest = function(url, group_type){
	$.post(url, null, function (data) {	
		if ("ERROR" == data){
		} else {
			if("SUCCESS" == data){
				$("#ul_" + group_type).slideToggle("slow");
			} else {}
		}
	});
};

var expand_shrink = function(group_type){
	var status = $("#ul_" + group_type).css('display');
	var state;
	if ('none' == status){
		/*it should be expanded*/
		/*
			1. change icon image
			2. change image alt
			3. change anchor's title 
		*/
		$("#ContextIO_" + group_type).find('img').attr('src', '/images/ContextO.png');
		$("#ContextIO_" + group_type).find('img').attr('alt', 'Contract menu');
		$("#ContextIO_" + group_type).find('a').attr('title', 'Contract menu');
		state = "exanded";
	} else {
		/*it should be shrinked*/
		$("#ContextIO_" + group_type).find('img').attr('src', '/images/ContextI.png');
		$("#ContextIO_" + group_type).find('img').attr('alt', 'Expand menu');
		$("#ContextIO_" + group_type).find('a').attr('title', 'Expand menu');
		$("#ul_" + group_type).css('display', "");
		state = "shrinked";
	}
	var url = "/login/set_context_menu_state/" + group_type + "/" + state;
	check_session(url, "expandShrinkRequest('" + url + "', '" + group_type + "')");
};

var shrink = function(group_type){
	$("#ContextIO_" + group_type).find('img').attr('src', '/images/ContextI.png');
	$("#ContextIO_" + group_type).find('img').attr('alt', 'Expand menu');
	$("#ContextIO_" + group_type).find('a').attr('title', 'Expand menu');
	$("#ul_" + group_type).css('display', "none");
};
member_document = function(){
	var x={		
		createNewFolderRequest : function(url) {
			var folder_input = $("#MemberFileFileName");
			if (folder_input){
				var folder_name = folder_input.val();
				if (folder_name){
					$("#loading_indicator").jqmShow();
					var current_node = window.current_node;
					$.get(url, function(data){
						$("#loading_indicator").jqmHide();
						if ("ERROR" == data){
							var alert_message = "Cannot create '" + file_name + "'";
							show_alert(alert_message);
						} else {
							var int_data = parseInt(data, 10);
							if (!isNaN(int_data)){
								/* refresh data table*/
								window.load_node_id = int_data;
								member_document.refresh_table(window.refresh_url, new Array(window.current_node, 1));
							} else {
								show_alert(data);
							}
						}
					});
				}
			}
		},		
		createNewFolder : function() {
			var folder_input = $("#MemberFileFileName");
			if (folder_input){
				var folder_name = folder_input.val();
				if (folder_name){
					$("#loading_indicator").jqmShow();
					var current_node = window.current_node;
					var member_id = window.files_member_id;
					var url = "/member_file/create_new_folder/" + member_id + "/" + current_node + "/" + folder_name;
					check_session(url, "member_document.createNewFolderRequest( '" + url + "')");
				}
			}
		},
		uploadFile : function(form_id){
			var form = $("#" + form_id);
			if (form){
				$("#loading_indicator").jqmShow();
				form.submit();
			}
		},
		renameFileRequest : function( member_id, file_id, file_name, extension){
			var new_file_name = $("#rename_file_txt").attr('value');
			if ("" !== extension){
				new_file_name = new_file_name + "." + extension;
			}
			var url = "/member_file/rename_file/" + member_id + "/" + file_id;
			$("#jqm_rename_file_div").jqmHide();
			$("#loading_indicator").jqmShow();
			var description = $("#edit_file_desc_txt").val();
			var data = {'file_name': new_file_name, 'file_description' : description};
			$.post(url, data,function(response){
				$("#loading_indicator").jqmHide();	
				if ("ERROR" == response){
					var alert_message = "Cannot rename '" + file_name + "'";
					show_alert(alert_message);
				} else {
					if ("" === response){
						/* refresh data table*/
						var currentAnchor = window.currentAnchor;
						var parameters = member_document.urlParsing(currentAnchor);
						member_document.refresh_table(window.refresh_url, new Array(window.current_node, 1));
					} else {
						show_alert(response);
					}
				}
			});
		},		
		renameFile : function( member_id, file_id, file_name, extension){
			var new_file_name = $("#rename_file_txt").attr('value');
			if ("" !== extension){
				new_file_name = new_file_name + "." + extension;
			}
			var url = "/member_file/rename_file/" + member_id + "/" + file_id;
			$("#jqm_rename_file_div").jqmHide();
			$("#loading_indicator").jqmShow();
			check_session(url, "member_document.renameFileRequest('" + member_id + "', '" + file_id + "', '" + file_name + "', '" + extension + "')");
		},
		renameSingleFile : function( member_id, file_id, file_name){
			var button_element = document.getElementById("rename_single_file_ok_btn");
			$("#rename_single_file_frm").attr("action", "/member_file/rename_single_file/" + member_id + "/" + file_id);
			var short_file_name = file_name;
			var file_name_pieces = file_name.split(".");
			var extension = "";
			if (1 < file_name_pieces.length){
				short_file_name = "";
				var i = 0;
				for (i in file_name_pieces){
					if (i < file_name_pieces.length - 1){
						short_file_name = short_file_name + "." +  file_name_pieces[i];
					} else {
						extension = file_name_pieces[i];
					}
					i ++;
				}
				short_file_name = short_file_name.substring(1);
			}
			$("#rename_single_file_txt").attr('value', short_file_name);

			if (button_element){
				if (button_element.addEventListener){
					$("#rename_single_file_ok_btn").bind('click', function(event){
						var value = $("#rename_single_file_txt").attr('value');
						if ("" !== extension){
							value = value + "." + extension;
						}
						$("#rename_single_file_txt").attr('value', value);
					});
				}else if (button_element.attachEvent){
					button_element.attachEvent('onclick', function(event){
						var value = $("#rename_single_file_txt").attr('value');
						if ("" !== extension){
							value = value + "." + extension;
						}
						$("#rename_single_file_txt").attr('value', value);
					});
				}
			}
			
			var description = $("#file_description").html();
			$("#edit_file_single_desc_txt").html("");
			$("#edit_file_single_desc_txt").val(description);
			
			var height = 258;
			var margin_top_offset = '-' + Math.ceil((height) / 2) + 'px';
			$('#jqm_rename_single_file_div').css('margin-top', margin_top_offset);
			var margin_left_offset = '-' + Math.ceil((604) / 2) + 'px';
			$('#jqm_rename_single_file_div').css('margin-left', margin_left_offset);
			$("#jqm_rename_single_file_div").jqmShow();
		},
		renameFolderRequest : function( member_id, folder_id, folder_name){
			var new_file_name = $("#rename_folder_txt").val();
			var url = "/member_file/rename_folder/" + member_id + "/" + folder_id + "/" + new_file_name;
			$("#jqm_rename_folder_div").jqmHide();
			$("#loading_indicator").jqmShow();
			$.get(url, function(data){
				$("#loading_indicator").jqmHide();
				if ("ERROR" == data){
					var alert_message = "Cannot rename '" + file_name + "'";
					show_alert(alert_message);
				} else {
					if ("" === data){
						/* refresh data table*/
						var currentAnchor = window.currentAnchor;
						var parameters = group_document.urlParsing(currentAnchor);
						if (parameters && parameters[0] && parameters[1]){
							member_document.refresh_table(refresh_url, parameters);
						} else {
							member_document.refresh_table(refresh_url);
						}
					} else {
						show_alert(data);
					}
				}
			});
		},		
		renameFolder : function( member_id, folder_id, folder_name){
			var new_file_name = $("#rename_folder_txt").val();
			var url = "/member_file/rename_folder/" + member_id + "/" + folder_id + "/" + new_file_name;
			$("#jqm_rename_folder_div").jqmHide();
			check_session(url, "member_document.renameFolderRequest('" + member_id + "', '" + folder_id + "', '" + folder_name + "')");
		},
		deleteFileRequest : function( member_id, file_id, file_name){
			var new_file_name = $("#rename_file_txt").val();
			var url = "/member_file/delete_file/" + member_id + "/" + file_id;
			$("#loading_indicator").jqmShow();
			$.get(url, function(data){
				$("#loading_indicator").jqmHide();
				if ("ERROR" == data){
					var alert_message = "Cannot delete '" + file_name + "'";
					show_alert(alert_message);
				} else {
					if ("" === data){
						/* refresh data table*/
						var currentAnchor = window.currentAnchor;
						var parameters = group_document.urlParsing(currentAnchor);
						if (parameters && parameters[0] && parameters[1]){
							member_document.refresh_table(refresh_url, parameters);
						} else {
							member_document.refresh_table(refresh_url);
						}
					} else {
						show_alert(data);
					}
				}
			});
		},		
		deleteFile : function( member_id, file_id, file_name){
			var new_file_name = $("#rename_file_txt").val();
			var url = "/member_file/delete_file/" + member_id + "/" + file_id;
			check_session(url, "member_document.deleteFileRequest('" + member_id + "', '" + file_id + "', '" + file_name + "')");
		},
		renameFilePrepare : function( member_id, file_id, file_name){
			var element_comp = document.getElementById("rename_file_ok_btn");
			var file_name_pieces = file_name.split(".");
			var short_file_name = file_name;
			var extension = "";
			if (1 < file_name_pieces.length){
				short_file_name = "";
				var i = 0;
				for (i in file_name_pieces){
					if (i < file_name_pieces.length - 1){
						short_file_name = short_file_name + "." +  file_name_pieces[i];
					} else {
						extension = file_name_pieces[i];
					}
					i ++;
				}
				short_file_name = short_file_name.substring(1);
			}
			
			if (element_comp){
				if (element_comp.addEventListener){
					$("#rename_file_ok_btn").bind('click', function(event){
						member_document.renameFile( member_id, file_id, file_name, extension);
					});
				}else if (element_comp.attachEvent){
					element_comp.attachEvent('onclick', function(event){
						member_document.renameFile( member_id, file_id, file_name, extension);
					});
				}
			}
			var form_element = document.getElementById("rename_file_frm");
			$("#rename_file_frm").attr("action", window.currentAnchor);
			if (form_element){
				if (form_element.addEventListener){
					$("#rename_file_ok_btn").bind('submit', function(event){
						member_document.renameFile( member_id, file_id, file_name, extension);
						return false;
					});
				}else if (form_element.attachEvent){
					form_element.attachEvent('onsubmit', function(event){
						member_document.renameFile( member_id, file_id, file_name, extension);
						return false;
					});
				}
			}
			var max_width = document.body.clientWidth;
			var margin_left = Math.ceil(604/2);
			var margin_top = Math.ceil(258/2);
	
			$('#jqm_rename_file_div').css('left', '50%');
			$('#jqm_rename_file_div').css('top', '50%');
			$('#jqm_rename_file_div').css('margin-top', '-' + margin_top + 'px');
			$('#jqm_rename_file_div').css('margin-left', '-' + margin_left + 'px');
			
			$("#rename_file_txt").attr('value', short_file_name);
		
			var text_area = document.getElementById('edit_file_desc_txt');
			var description = $("#file_description_" + file_id).text();

			$("#edit_file_desc_txt").html("");
			$("#edit_file_desc_txt").val(description);
			$("#jqm_rename_file_div").jqmShow();
			
			limitText(text_area, 300);
		},
		renameFolderPrepare : function( member_id, folder_id, folder_name){
			var element_comp = document.getElementById("rename_folder_ok_btn");
			if (element_comp){
				if (element_comp.addEventListener){
					$("#rename_folder_ok_btn").bind('click', function(event){
						member_document.renameFolder( member_id, folder_id, folder_name);
					});
				}else if (element_comp.attachEvent){
					element_comp.attachEvent('onclick', function(event){
						member_document.renameFolder( member_id, folder_id, folder_name);
					});
				}
			}
			$("#rename_folder_txt").attr('value', folder_name);
			$("#jqm_rename_folder_div").jqmShow();
		},
		refreshNode : function(){
			var member_id = parseInt(window.files_member_id, 10);
			if (0 !== member_id && !isNaN(member_id)){
				var node_id = parseInt(window.load_node_id, 10);
				if (0 !== node_id && !isNaN(node_id)){
					reload_document_items_IE("#member_container", "/member_file/documents/" + member_id + "/" + node_id);
				}
			}
		},
		searchByName : function(){
			var input_field = $("#search_member_txt");
			if (input_field){
				var search_value = input_field.val();
				search_value = trim(search_value);
				if ("" === search_value){
					write_warning_header_msg_bar("Search field is empty! If you want to see all files/folders type '*'");
				} else {
					var member_id = parseInt(window.files_member_id, 10);
					var params = {};
					params[0] = search_value;
					params[1] = 1;
					member_document.refresh_table("/member_file/search_documents/" + member_id, params);
					/*reload_document_items_IE("#member_container", "/member_file/search_documents/" + member_id + "/" + search_value);*/
				}
			}
			return false;
		},
		searchByNameIfEnter : function(e){
			var ENETER = 13;
			if (ENETER == e.keyCode){
				member_document.searchByName();
			}
		},
		resetSearchByName : function(){
			var input_field = $("#search_member_txt");
			if (input_field){
				var search_value = input_field.attr("value", "");
				var member_id = parseInt(window.files_member_id, 10);
				var params = {};
				member_document.refresh_table("/member_file/documents/" + member_id, params);
				/*reload_document_items_IE("#member_container", "/member_file/documents/" + member_id);*/
			}
		},
		makeVisible : function(element_id){
			var element = $("#" + element_id);
			if (element){
				if (element.hasClass("memberDetails")){
					element.removeClass("memberDetails");
				}
			}
		},
		expandUpload : function(description_element, control_element){
			group_document.makeVisible(description_element);
			group_document.makeVisible(control_element);
		},
		hideUploadElement : function(element_id){
			var element = $("#" + element_id);
			if (element){
				if (!element.hasClass("memberDetails")){
					element.addClass("memberDetails");
				}
			}
		},
		resetUploadFile : function(description_element, control_element){
			var textarea = $("#MemberFileDescription");
			if (textarea){
				textarea.val("");
			}
			member_document.hideUploadElement(description_element);
			member_document.hideUploadElement(control_element);
			
			var file_input = $("#member_file");
			if (file_input){
				file_input.val("");
			}
		},
		refresh_table : function(basic_url, parameters){
			if (isset('tab')){
				if ($("#" + tab).hasClass("Current")){
					$("#" + tab).removeClass("Current");
				}
			} else if (isset('default_tab')){
				if ($("#" + default_tab).hasClass("Current")){
					$("#" + default_tab).removeClass("Current");
				}
			}
			tab = 'documents';
			$("#" + tab).addClass("Current");
			var new_link = '';
			var anchor = '#documents'; 
			new_link = basic_url + '/documents';
			if (parameters){
				var i = 0;
				for (i in parameters){
					if (1 == i){
						anchor = anchor + '/page:' + parameters[i];
						new_link = new_link + '/' + parameters[i];
					} else {
						anchor = anchor + '/' + parameters[i];
						new_link = new_link + '/' + parameters[i];
					}
					i ++;
				}
			}
			$('#loading_indicator').jqmShow();
			$.get(new_link, function (data) {
				$('#loading_indicator').jqmHide();
				if ("ERROR" == data){
					show_alert('Error refreshing form');
				} else {
					if(data !== ""){
						$(container).empty();
						$(container).append(data);
						document.location.hash = anchor;
						window.currentAnchor = anchor;
						var url= window.refresh_url + "/" + window.current_node;
						member_document.SetupAJAXPaginationIE(url);
					} else {
						show_alert('Error refreshing form');
					}
				}
			});
		},
		SetupAJAXPaginationIE : function(refresh_url){
			var filter = "#file_container";
			member_document.bind_click_to_link_IE('first_a', filter, refresh_url);
			member_document.bind_click_to_link_IE('prev_a', filter, refresh_url);
			member_document.bind_click_to_link_IE('next_a', filter, refresh_url);
			member_document.bind_click_to_link_IE('last_a', filter, refresh_url);
		},
		bind_click_to_link_IE : function(page_link_id, filter, base_url){
			var page_object = document.getElementById(page_link_id);
			if (page_object){
				if (page_object.addEventListener){	/*if so, it WC3 like*/
					$("#" + page_link_id).click(function() {
							$('#loading_indicator').jqmShow();
							var pos = page_object.href.search('page');
							var page = page_object.href.substring(pos + 5);
							var hash = document.location.hash.split('/');
							var hash_string = '';
							for (var i = 0; i < hash.length - 1; i++) {
								hash_string = hash_string + hash[i] + '/';
							}
							var refresh_destination = window.refresh_url;
							var is_search = refresh_destination.indexOf('search');
							if (0 < is_search){
								var search = $("#search_member_txt").val();	
								var params = {};
								params[0] = search;
								params[1] = page;
								member_document.refresh_table(window.refresh_url, params);
							} else {
								var params = {};
								params[0] = window.current_node;
								params[1] = page;
								member_document.refresh_table(window.refresh_url, params);
							}
							return false;
					});
				} else if (page_object.attachEvent){ /*is fo, it's IE like*/
						page_object.attachEvent('onclick', function() {
							$('#loading_indicator').jqmShow();
							var pos = page_object.href.search('page');
							var page = page_object.href.substring(pos + 5);
							var hash = document.location.hash.split('/');
							var hash_string = '';
							for (var i = 0; i < hash.length - 1; i++) {
								hash_string = hash_string + hash[i] + '/';
							}
							var refresh_destination = window.refresh_url;
							var is_search = refresh_destination.indexOf('search');
							if (0 < is_search){
								var search = $("#search_member_txt").val();	
								var params = {};
								params[0] = search;
								params[1] = page;
								member_document.refresh_table(window.refresh_url, params);
							} else {
								var params = {};
								params[0] = window.current_node;
								params[1] = page;
								member_document.refresh_table(window.refresh_url, params);
							}
							return false;
					});
				}
			}
		},
		urlParsing : function(anchor){
			currentAnchor = anchor;
			var page = 1;
			var tab = default_tab;
			var param = null;
			var string_page = "" ;
			var parameters = {};
			if (currentAnchor) {
				var args = currentAnchor.split('/');
				if (tabs !== null) {
					if (inTabList(args[0])) {	
						tab = args[0];
					}
				}
				if (args[1]) {
					param = args[1];
					parameters[0] = param;
				}

				if (args[2]) {
					string_page = args[2];
					var string_page_array = string_page.split(":");
					if (string_page_array[1]){
						var int_page = parseInt(string_page_array[1], 10);
						if (!isNaN(int_page)){
							page = int_page;
							parameters[1] = page;
						}
					}
				}
			}
			return parameters;
		}
	};
	return x;
}()
group_document = function(){
	var x={
		bindings : function() {
			group_document.bindSearchOnEnter();
		},
		bindSearchOnEnter : function() {
			var ENTER = 13;
			var search_txt = document.getElementById("search_member_txt");
			if (search_txt){
				if (search_txt.addEventListener){
					$("#search_member_txt").bind('keydown', function(event){
						if (ENTER == event.keyCode){
							searchByName();
						}
					});
				} else if (search_txt.attachEvent){
					search_txt.attachEvent('onkeydown', function(event){
						if (ENTER == event.keyCode){
							searchByName();
						}
					});
				}
			}
		},
		createNewFolderRequest : function(url) {
			$.get(url, function(data){
				$("#loading_indicator").jqmHide();
				if ("ERROR" == data){
					var alert_message = "Cannot create '" + file_name + "'";
					show_alert(alert_message);
				} else {
					var int_data = parseInt(data, 10);
					if (!isNaN(int_data)){
						/* refresh data table*/
						window.load_node_id = int_data;
						var params = {};
						params[0] = current_node;
						params[1] = 1;
						group_document.refresh_table(refresh_url, params);
					} else {
						show_alert(data);
					}
				}
			});
		},
		createNewFolder : function() {
			var folder_input = $("#GroupFileFileName");
			if (folder_input){
				var folder_name = folder_input.val();
				if (folder_name){
					$("#loading_indicator").jqmShow();
					var current_node = window.current_node;
					var group_id = window.files_group_id;
					var url = "/group/create_new_folder/" + group_id + "/" + current_node + "/" + folder_name;
					check_session(url, "group_document.createNewFolderRequest('" + url + "')");

				}
			}
		},
		uploadFile : function(form_id){
			var form = $("#" + form_id);
			if (form){
				$("#loading_indicator").jqmShow();
				form.submit();
			}
		},
		renameFileRequest : function( group_id, file_id, file_name){
			var new_file_name = $("#rename_gfile_txt").attr('value');
			if ("" !== extension){
				new_file_name = new_file_name + "." + extension;
			}
			var url = "/group_file/rename_file/" + group_id + "/" + file_id;
			$("#jqm_rename_gfile_div").jqmHide();
			$("#loading_indicator").jqmShow();
			var data = {};
			data.file_name = new_file_name;
			data.file_description = $("#edit_gfile_desc_txt").text();
			$.post(url, data,function(response){
				$("#loading_indicator").jqmHide();
				if ("ERROR" == response){
					var alert_message = "Cannot rename '" + file_name + "'";
					show_alert(alert_message);
				} else {
					var currentAnchor = window.currentAnchor;
					var parameters = group_document.urlParsing(currentAnchor);
					var int_data = parseInt(data, 10);
					if ("" !== data && !isNaN(int_data)){
						group_document.refresh_table(refresh_url, parameters);
					} else {
						show_alert("Failed to change folder name: " + data);
					}
				}
			});
		},
		renameFile : function( group_id, file_id, file_name, extension){
			var new_file_name = $("#rename_file_txt").attr('value');
			if ("" !== extension){
				new_file_name = new_file_name + "." + extension;
			}
			var url = "/group_file/rename_file/" + group_id + "/" + file_id;
			$("#jqm_rename_gfile_div").jqmHide();
			var submit_button = document.getElementById("rename_file_ok_btn");
			if (submit_button.addEventListener){	/*if so, it WC3 like*/
				submit_button.addEventListener('onclick', function(event) {
						check_session(url, "group_document.renameFileRequest( " + group_id + ", " + file_id + ", '" + file_name + "')");
						return false;
				});
				return false;
			} else if (submit_button.attachEvent){ /*is fo, it's IE like*/
					submit_button.attachEvent('onclick', function() {
						check_session(url, "group_document.renameFileRequest( " + group_id + ", " + file_id + ", '" + file_name + "')");
						return false;
				});
				return false;
			}
		},
		deleteFileRequest : function( group_id, file_id, file_name){
			var delete_url = "/group_file/delete_file/" + group_id + "/" + file_id;
			$.get( delete_url, function(data){
				$("#loading_indicator").jqmHide();
				if ("ERROR" == data){
					var alert_message = "Cannot delete '" + file_name + "'";
					show_alert(alert_message);
				} else {
					if ("" === data){
						/* refresh data table*/
						var parameters = group_document.urlParsing(currentAnchor);
						if (parameters && parameters[0] && parameters[1]){
							group_document.refresh_table(refresh_url, parameters);
						} else {
							group_document.refresh_table(refresh_url);
						}
					} else {
						show_alert(data);
					}
				}
			});
		},
		deleteFile : function( group_id, file_id, file_name){
			var container = window.container;
			var new_file_name = $("#rename_file_txt").val();
			var delete_url = "/group_file/delete_file/" + group_id + "/" + file_id;
			var tr = $("#tr_" + file_id);
			var currentAnchor = window.currentAnchor;
			$("#loading_indicator").jqmShow();
			if (tr){
				check_session(delete_url, "group_document.deleteFileRequest(" + group_id + ", " + file_id + ", '" + file_name+ "')");
			}
		},
		renameFilePrepare : function( group_id, file_id, file_name){
			var element_comp = document.getElementById("rename_gfile_ok_btn");
			var file_name_pieces = file_name.split(".");
			var short_file_name = file_name;
			var extension = "";
			if (1 < file_name_pieces.length){
				short_file_name = "";
				var i = 0;
				for (i in file_name_pieces){
					if (i < file_name_pieces.length - 1){
						short_file_name = short_file_name + "." +  file_name_pieces[i];
					} else {
						extension = file_name_pieces[i];
					}
					i ++;
				}
				short_file_name = short_file_name.substring(1);
			}
			var form_element = document.getElementById("rename_file_frm");
			$("#rename_gfile_frm").attr("action", "/group_file/rename_file/" + group_id + "/" + file_id);
			if (form_element){
				if (form_element.addEventListener){
					$("#rename_gfile_ok_btn").bind('submit', function(event){
						group_document.renameFile( group_id, file_id, file_name, extension);
						return false;
					});
				}else if (form_element.attachEvent){
					form_element.attachEvent('onsubmit', function(event){
						group_document.renameFile( group_id, file_id, file_name, extension);
						return false;
					});
				}
			}
			var max_width = document.body.clientWidth;
			var margin_left = Math.ceil(604/2);
			var margin_top = Math.ceil(258/2);
	
			$('#jqm_rename_gfile_div').css('left', '50%');
			$('#jqm_rename_gfile_div').css('top', '50%');
			$('#jqm_rename_gfile_div').css('margin-top', '-' + margin_top + 'px');
			$('#jqm_rename_gfile_div').css('margin-left', '-' + margin_left + 'px');
			
			$("#rename_gfile_txt").attr('value', short_file_name);
		
			var text_area = document.getElementById('edit_file_desc_txt');
			var description = $("#file_description_" + file_id).text();

			$("#edit_gfile_desc_txt").html("");
			$("#edit_gfile_desc_txt").val(description);
			$("#jqm_rename_gfile_div").jqmShow();
			
			limitText(text_area, 300);
		},
		renameFolderPrepare : function( group_id, folder_id, folder_name){
			var element_comp = document.getElementById("rename_folder_ok_btn");
			if (element_comp){
				if (element_comp.addEventListener){
					$("#rename_folder_ok_btn").bind('click', function(event){
						group_document.renameFolder( group_id, folder_id, folder_name);
					});
				}else if (element_comp.attachEvent){
					element_comp.attachEvent('onclick', function(event){
						group_document.renameFolder( group_id, folder_id, folder_name);
					});
				}
			}
			$("#rename_folder_txt").attr('value', folder_name);
			$("#jqm_rename_folder_div").jqmShow();
		},
		renameFolderRequest : function( url, file_name){
			$("#loading_indicator").jqmShow();
			$.get(url, function(data){
				$("#loading_indicator").jqmHide();
				if ("ERROR" == data){
					var alert_message = "Cannot rename '" + file_name + "'";
					show_alert(alert_message);
				} else {
					if ("" === data){
						/* refresh data table*/
						var currentAnchor = window.currentAnchor;
						var parameters = group_document.urlParsing(currentAnchor);
						if (parameters && parameters[0] && parameters[1]){
							group_document.refresh_table(refresh_url, parameters);
						} else {
							group_document.refresh_table(refresh_url);
						}
					} else {
						var folder_id = parseInt(data, 10);
						if (!isNaN(folder_id)){
							var currentAnchor = window.currentAnchor;
							var parameters = group_document.urlParsing(currentAnchor);
							if (parameters && parameters[0] && parameters[1]){
								group_document.refresh_table(refresh_url, parameters);
							} else {
								group_document.refresh_table(refresh_url);
							}
						}
					}
				}
			});
		},
		renameFolder : function( group_id, folder_id, folder_name){
			var new_file_name = $("#rename_folder_txt").val();
			var url = "/group_file/rename_folder/" + group_id + "/" + folder_id + "/" + new_file_name;
			$("#jqm_rename_folder_div").jqmHide();
			$("#loading_indicator").jqmShow();
			check_session(url, "group_document.renameFolderRequest('" + url + "', '" + folder_name + "')");
		},
		renameSingleFile : function( group_id, file_id, file_name){
			var button_element = document.getElementById("rename_single_file_ok_btn");
			$("#rename_single_file_frm").attr("action", "/group_file/rename_single_file/" + group_id + "/" + file_id);
			var short_file_name = file_name;
			var file_name_pieces = file_name.split(".");
			var extension = "";
			if (1 < file_name_pieces.length){
				short_file_name = "";
				var i = 0;
				for (i in file_name_pieces){
					if (i < file_name_pieces.length - 1){
						short_file_name = short_file_name + "." +  file_name_pieces[i];
					} else {
						extension = file_name_pieces[i];
					}
					i ++;
				}
				short_file_name = short_file_name.substring(1);
			}
			$("#rename_single_file_txt").attr('value', short_file_name);

			if (button_element){
				if (button_element.addEventListener){
					$("#rename_single_file_ok_btn").bind('click', function(event){
						var value = $("#rename_single_file_txt").attr('value');
						if ("" !== extension){
							value = value + "." + extension;
						}
						$("#rename_single_file_txt").attr('value', value);
					});
				}else if (button_element.attachEvent){
					button_element.attachEvent('onclick', function(event){
						var value = $("#rename_single_file_txt").attr('value');
						if ("" !== extension){
							value = value + "." + extension;
						}
						$("#rename_single_file_txt").attr('value', value);
					});
				}
			}
			
			var description = $("#file_description").html();
			$("#edit_file_single_desc_txt").html("");
			$("#edit_file_single_desc_txt").val(description);
			
			var height = 258;
			var margin_top_offset = '-' + Math.ceil((height) / 2) + 'px';
			$('#jqm_rename_single_file_div').css('margin-top', margin_top_offset);
			var margin_left_offset = '-' + Math.ceil((604) / 2) + 'px';
			$('#jqm_rename_single_file_div').css('margin-left', margin_left_offset);
			$("#jqm_rename_single_file_div").jqmShow();
		},
		refreshNode : function(node_id){
			var container = window.container;
			/*if (0 != group_id && !isNaN(group_id)){*/
			node_id = parseInt(node_id, 10);
			if (0 !== node_id && !isNaN(node_id)){
				var url = reset_base_url;
				check_session(reset_base_url, "group_document.refresh_table('documents', " + reset_base_url + ", " + node_id + ")");
				/*group_document.refresh_table('documents', reset_base_url, node_id);*/
			}
			/*}*/
		},
		searchByName : function(){
			var container = window.container;
			var input_field = $("#search_member_txt");
			if (input_field){
				var search_value = input_field.val();
				search_value = trim(search_value);
				if ("" === search_value){
					write_warning_header_msg_bar("Search field is empty! If you want to see all files/folders type '*'");
				} else {
					var group_id = parseInt(window.files_group_id, 10);
					document.location.hash = "#documents/" + search_value;
					var search_reload_url = "/group/search_documents/" + window.files_group_id + "/\"documents\"/" + search_value;
					check_session(search_reload_url, "reload_document_items_IE('" + container + "', '" + search_reload_url + "')");
				}
			}
		},
		resetSearchByName : function(refresh_url){
			var container = window.container;
			var input_field = $("#search_member_txt");
			var group_id = window.files_group_id;
			if (input_field){
				var search_value = input_field.attr("value", "");
				check_session(refresh_url, "group_document.refresh_table('" + refresh_url + "')");
			}
		},
		makeVisible : function(element_id){
			var element = $("#" + element_id);
			if (element){
				if (element.hasClass("memberDetails")){
					element.removeClass("memberDetails");
				}
			}
		},
		expandUpload : function(description_element, control_element){
			group_document.makeVisible(description_element);
			group_document.makeVisible(control_element);
		},
		hideUploadElement : function(element_id){
			var element = $("#" + element_id);
			if (element){
				if (!element.hasClass("memberDetails")){
					element.addClass("memberDetails");
				}
			}
		},
		resetUploadFile : function(description_element, control_element){
			var textarea = $("#GroupFileDescription");
			if (textarea){
				textarea.val("");
			}
			group_document.hideUploadElement(description_element);
			group_document.hideUploadElement(control_element);
			
			var file_input = $("#group_file");
			if (file_input){
				file_input.val("");
			}
		},
		refresh_table : function(basic_url, parameters){
			if (isset('tab')){
				if ($("#" + tab).hasClass("Current")){
					$("#" + tab).removeClass("Current");
				}
			} else if (isset('default_tab')){
				if ($("#" + default_tab).hasClass("Current")){
					$("#" + default_tab).removeClass("Current");
				}
			}
			tab = 'documents';
			$("#" + tab).addClass("Current");
			var new_link = '';
			var anchor = '#documents'; 
			new_link = basic_url + '/documents';
			if (parameters){
				var i = 0;
				for (i in parameters){
					if (1 == i){
						anchor = anchor + '/page:' + parameters[i];
						new_link = new_link + '/' + parameters[i];
					} else {
						anchor = anchor + '/' + parameters[i];
						new_link = new_link + '/' + parameters[i];
					}
					i ++;
				}
			}
			document.location.hash = anchor;
			window.currentAnchor = anchor;
			$('#loading_indicator').jqmShow();
			$.get(new_link, function (data) {
				$('#loading_indicator').jqmHide();
				if ("ERROR" == data){
					show_alert('Error refreshing form');
				} else {
					if(data !== ""){
						$(container).empty();
						$(container).append(data);
						document.location.hash = anchor;
					} else {
						show_alert('Error refreshing form');
					}
				}
			});
		},
		SetupAJAXPaginationIE : function(refresh_url){
			var filter = "#" + container;
			group_document.bind_click_to_link_IE('first_a', filter, refresh_url);
			group_document.bind_click_to_link_IE('prev_a', filter, refresh_url);
			group_document.bind_click_to_link_IE('next_a', filter, refresh_url);
			group_document.bind_click_to_link_IE('last_a', filter, refresh_url);
		},
		bind_click_to_link_IE : function(page_link_id, filter, base_url){
			var page_object = document.getElementById(page_link_id);
			if (page_object){
				if (page_object.addEventListener){	/*if so, it WC3 like*/
					$("#" + page_link_id).click(function() {
							$('#loading_indicator').jqmShow();
							var pos = page_object.href.search('page');
							var page = page_object.href.substring(pos + 5);
							var hash = document.location.hash.split('/');
							var hash_string = '';
							for (var i = 0; i < hash.length - 1; i++) {
								hash_string = hash_string + hash[i] + '/';
							}
							var refresh_destination = window.refresh_url;
							var is_search = refresh_destination.indexOf('search');
							if (0 < is_search){
								var search = $("#search_member_txt").val();
								var params = {};
								params[0] = search;
								params[1] = page;
								group_document.refresh_table(window.refresh_url, params);
							} else {
								params = {};
								params[0] = window.current_node;
								params[1] = page;
								group_document.refresh_table(window.refresh_url, params);
							}
							return false;
					});
				} else if (page_object.attachEvent){ /*is fo, it's IE like*/
						page_object.attachEvent('onclick', function() {
							$('#loading_indicator').jqmShow();
							var pos = page_object.href.search('page');
							var page = page_object.href.substring(pos + 5);
							var hash = document.location.hash.split('/');
							var hash_string = '';
							for (var i = 0; i < hash.length - 1; i++) {
								hash_string = hash_string + hash[i] + '/';
							}
							var refresh_destination = window.refresh_url;
							var is_search = refresh_destination.indexOf('search');
							if (0 < is_search){
								var search = $("#search_member_txt").val();	
								var params = {};
								params[0] = search;
								params[1] = page;
								group_document.refresh_table(window.refresh_url, params);
							} else {
								params = {};
								params[0] = window.current_node;
								params[1] = page;
								group_document.refresh_table(window.refresh_url, params);
							}
							return false;
					});
				}
			}
		},
		urlParsing : function(anchor){
			currentAnchor = anchor;
			var page = 1;
			var tab = default_tab;
			var param = null;
			var string_page = "" ;
			var parameters = {};
			if (currentAnchor) {
				currentAnchor = currentAnchor.substring(1);
				var args = currentAnchor.split('/');
				if (tabs !== null) {
					if (inTabList(args[0])) {	
						tab = args[0];
					}
				}
				if (args[1]) {
					param = args[1];
					parameters[0] = param;
				}

				if (args[2]) {
					string_page = args[2];
					var string_page_array = string_page.split(":");
					if (string_page_array[1]){
						var int_page = parseInt(string_page_array[1], 10);
						if (!isNaN(int_page)){
							page = int_page;
							parameters[1] = page;
						}
					}
				}
			}
			return parameters;
		}
	};
	return x;
}()
quotas = function(){
	var x = {
		allowOnlyInteger : function(field_id, key_code) {
			var field = $("#" + field_id);
			if (field){
				var field_value = field.val();
				if (field_value){
					var is_int = testInteger(field_value);
					if (false === is_int){
						var new_value = field_value.substring(0, field_value.length - 1);
						$("#" + field_id).attr('value', '');
					}
				}
			}
		},bindSingleValidation : function(element_id){
			
			var element_comp = document.getElementById(element_id);
			if (element_comp){
				if (element_comp.addEventListener){
					$("#" + element_id).bind('keyup', function(event){
						var key_code = event.keyCode;
						quotas.allowOnlyInteger(element_id);
					});
				}else if (element_comp.attachEvent){
					element_comp.attachEvent('onkeyup', function(event){
						var key_code = event.keyCode;
						quotas.allowOnlyInteger(element_id);
					});
				}
			}
		},
		bindSingleCounting : function(element_id){
			var element_comp = document.getElementById(element_id);
			if (element_comp){
				if (element_comp.addEventListener){
					$("#" + element_id).bind('blur', function(event){
						var key_code = event.keyCode;
						
						var point_count = quotas.countTotal(element_id);
						
						if (!isNaN(point_count)){
							x.refreshTotalPart("CD");
							x.refreshTotalPart("ChairTeam");
							x.refreshTotalPart("Audit");
							x.refreshTotalPart("Juridical");
							x.refreshTotalPart("Network");
							x.refreshTotalPart("Members");
							x.refreshTotalPart("AegeeWorkGroup");
							x.refreshTotalPart("SupportingWorkGroup");
							x.refreshTotalPart("ThematicalWorkGroup");
							x.refreshTotalPart("Project");
							x.refreshTotalPart("Antenna");
							x.refreshTotalPart("ContactAntenna");
							x.refreshTotalPart("Contact2");
						}
					});
				}else if (element_comp.attachEvent){
					element_comp.attachEvent('onblur', function(event){
						var key_code = event.keyCode;
						var point_count = quotas.countTotal(element_id);
						if (!isNaN(point_count)){
							x.refreshTotalPart("CD");
							x.refreshTotalPart("ChairTeam");
							x.refreshTotalPart("Audit");
							x.refreshTotalPart("Juridical");
							x.refreshTotalPart("Network");
							x.refreshTotalPart("Members");
							x.refreshTotalPart("AegeeWorkGroup");
							x.refreshTotalPart("SupportingWorkGroup");
							x.refreshTotalPart("ThematicalWorkGroup");
							x.refreshTotalPart("Project");
							x.refreshTotalPart("Antenna");
							x.refreshTotalPart("ContactAntenna");
							x.refreshTotalPart("Contact2");
						}
					});
				}
			}
		},
		countTotal : function(field_ids_like) {
			var sum = 0;
			var value = 0;
			$().find('input[id^=' + field_ids_like + ']').each(function(i){
				value = this.value;
				value = value.replace(',', '.');
				float_value = parseFloat(value);
				sum = sum + float_value;
			});
			return sum;
		},
		refreshTotalPart : function(field_id, field_additional){
			var sum = x.countTotalPart(field_id, field_additional);
			field_id = field_id.toLowerCase();
			$("#total_" + field_id).text(sum);
		},
		countTotalPart : function(field_id, field_additional){
			var sum = 0;
			var inputs = $("input[id^='" + field_id + "']");
			$("input[id^='" + field_id + "']").each(function(i, element){
				old_value = element.value;
				old_value = parseFloat(old_value);
				if (!isNaN(old_value)){
					sum = sum + old_value;
				}
			});
			if (field_additional){
				$("input[id^='" + field_additional + "']").each(function(i, element){
					old_value = element.value;
					old_value = parseFloat(old_value);
					if (!isNaN(old_value)){
						sum = sum + old_value;
					}
				});
			}
			sum = x.round2(sum);
			return sum; 
		},
		round2 : function(input_float){
			input_float = input_float + "";
			/*alert(input_float);*/
			var index_of_point = input_float.indexOf('.');			
			if (-1 < index_of_point && (input_float.length >= (index_of_point + 3))){
				input_float = input_float.substring(0, index_of_point + 3);
			}
			return input_float;
		}
	};
	return x;
	
}()
financial_report = function(){
	var x={
		allowOnlyFloat : function(field_id, key_code) {
			var field = $("#" + field_id);
			if (field){
				var field_value = field.val();
				if (field_value){
					var is_float = testFloat(field_value);
					if (false === is_float){
						var new_value = field_value.substring(0, field_value.length - 1);
						$("#" + field_id).attr('value', '');
					}
				}
			}
		},
		countTotal : function(field_ids_like) {
			var sum = 0;
			var value = 0;
			$().find('input[id^=' + field_ids_like + ']').each(function(i){
				value = this.value;
				value = value.replace(',', '.');
				float_value = parseFloat(value);
				sum = sum + float_value;
			});
			return sum;
		},
		round2 : function(input_float){
			input_float = input_float + "";
			/*alert(input_float);*/
			var index_of_point = input_float.indexOf('.');			
			if (-1 < index_of_point && (input_float.length >= (index_of_point + 3))){
				var cut = input_float.substr(index_of_point + 4, 1);
				input_float = input_float.substring(0, index_of_point + 3);
				input_float = parseFloat(input_float);
				if (cut && 5 < cut){
					
					input_float = input_float + 0.01;
				}
			}
			input_float = input_float + "";
			return input_float;
		},
		countTotalPart : function(field_id, field_additional){
			var sum = 0;
			var inputs = $("input[id^='" + field_id + "']");
			$("input[id^=" + field_id + "]").each(function(i, element){
				old_value = element.value;
				old_value = old_value.replace(',', '.');
				old_value = parseFloat(old_value);
				element_id = element.id;
				if (!isNaN(old_value) && (field_id + "ExpenditureId") != element_id){
					sum = sum + old_value;
				}
									
				/*if (!isNaN(old_value)){
					sum = sum + old_value;
				}*/
			});
			if (field_additional){
				$("input[id^='" + field_additional + "']").each(function(i, element){
					old_value = element.value;
					old_value = old_value.replace(',', '.');
					old_value = parseFloat(old_value);
					if (!isNaN(old_value)){
						sum = sum + old_value;
					}
				});
			}
			sum = x.round2(sum);
			return sum; 
		},
		refreshTotalPart : function(field_id, field_additional){
			var sum = x.countTotalPart(field_id, field_additional);
			sum = x.round2(sum);
			sum = sum.replace('.', ',');
			field_id = field_id.toLowerCase();
			$("#total_" + field_id).text(sum);
		},
		countTotalProfit : function(){
			var expenditures = 0;
			expenditures = x.countTotalPart('Expenditure'); 
			var incomes = 0; 
			incomes = x.countTotalPart('Income', 'OtherIncome');
			var profit = parseFloat(incomes) - parseFloat(expenditures);
			profit = x.round2(profit);
			return profit;
		},
		refreshTotalProfit : function(){
			var profit = x.countTotalProfit();
			profit = x.round2(profit);
			var profit_content = "";
			if (0 < profit){
				profit_content = "Profit: " + profit;
			} else {
				profit_content = "Loss: " + (0 - profit);
			}
			profit = profit_content.replace(".", ",");
			$("#profit").text(profit);
		},
		countBalancePart : function( balance_section, field_type){ /* {balance_section => Opening/Closing}{field_type => earning/outlay}*/
			var sum = 0;
			if ("earning" == field_type){
				/*
					BalanceCash
					BalanceCurrentAccount
					BalanceSavingsAccount
					BalanceDebtors
					BalanceInventory
				*/
				var earnings = [];
				var i = 0;
				var cash = $("#" + balance_section + "BalanceCash").val();
				earnings[i] = cash; 
				i ++;
				var current_account = $("#" + balance_section + "BalanceCurrentAccount").val();
				earnings[i] = current_account;
				i ++;
				var saving_account = $("#" + balance_section + "BalanceSavingsAccount").val();
				earnings[i] = saving_account;
				i ++;
				var debtors = $("#" + balance_section + "BalanceDebtors").val();
				earnings[i] = debtors;
				i ++;
				var inventory = $("#" + balance_section + "BalanceInventory").val();
				earnings[i] = inventory;
				
				for (i = 0; i < earnings.length; i++){
					old_value = earnings[i];
					old_value = old_value.replace(',', '.');
					old_value = parseFloat(old_value);
					if (!isNaN(old_value)){
						sum = sum + old_value;
					}
				}
				
			} else {
				/*
					BalanceCreditors
					BalanceOwnersEquities
				*/
				var creditors = $("#" + balance_section + "BalanceCreditors").val();
				creditors = creditors.replace(',', '.');
				creditors = parseFloat(creditors);
				if (!isNaN(creditors)){
					sum = sum + creditors;
				}
				var owners_equities = $("#" + balance_section + "BalanceOwnersEquities").val();
				owners_equities = owners_equities.replace(',', '.');
				owners_equities = parseFloat(owners_equities);
				if (!isNaN(owners_equities)){
					sum = sum + owners_equities;
				}
			}
			
			return sum;
		},
		refreshBalancePart : function( balance_section, field_type){
			var sum = x.countBalancePart(balance_section, field_type);
			sum = x.round2(sum);
			sum = sum + "";
			sum = sum.replace('.', ',');
			balance_section = balance_section.toLowerCase();
			if ('earning' == field_type){
				$("#" + balance_section + "_total_assets").text(sum);
			} else {
				$("#" + balance_section + "_total_liabilities").text(sum);
			}
		},
		countTotalBalance : function(){ /* {balance_section => Opening/Closing}{field_type => earning/outlay}*/
			var assets = 0;
			var opening_asset = x.countBalancePart('Opening', 'earning');
			var closing_asset = x.countBalancePart('Closing', 'earning');
			assets = parseFloat(opening_asset) + parseFloat(closing_asset);
			
			var liabilities = 0;
			var opening_liabilities = x.countBalancePart('Opening', 'overlay');
			var closing_liabilities = x.countBalancePart('Closing', 'overlay');
			liabilities = parseFloat(opening_liabilities) + parseFloat(closing_liabilities);
			
			var count = assets - liabilities;
			return count;
		},
		refreshTotalBalance : function(){ /* {balance_section => Opening/Closing}{field_type => earning/outlay}*/
			var sum = x.countTotalBalance();
			sum = x.round2(sum);
			sum = sum + "";
			sum = sum.replace('.', ',');
			var sum_text = "Difference Result/Balance: " + sum;
			$("#total_balance").text(sum_text);
		},
		bindSingleValidation : function(element_id){
			var element_comp = document.getElementById(element_id);
			if (element_comp){
				if (element_comp.addEventListener){
					$("#" + element_id).bind('keyup', function(event){
						var key_code = event.keyCode;
						financial_report.allowOnlyFloat(element_id);
					});
				}else if (element_comp.attachEvent){
					element_comp.attachEvent('onkeyup', function(event){
						var key_code = event.keyCode;
						financial_report.allowOnlyFloat(element_id);
					});
				}
			}
		},
		bindSingleCounting : function(element_id){
			var element_comp = document.getElementById(element_id);
			if (element_comp){
				if (element_comp.addEventListener){
					$("#" + element_id).bind('blur', function(event){
						var key_code = event.keyCode;
						
						var point_count = financial_report.countTotal(element_id);
						if (!isNaN(point_count)){
							x.refreshTotalPart("Expenditure");
							x.refreshTotalPart("Income", "OtherIncome");
							x.refreshBalancePart("Opening", "earning");
							x.refreshBalancePart("Opening", "overlay");	
							x.refreshBalancePart("Closing", "earning");
							x.refreshBalancePart("Closing", "overlay");
							x.refreshTotalBalance();
							x.refreshTotalProfit();
						}
					});
				}else if (element_comp.attachEvent){
					element_comp.attachEvent('onblur', function(event){
						var key_code = event.keyCode;
						var point_count = financial_report.countTotal(element_id);
						if (!isNaN(point_count)){
							x.refreshTotalPart("Expenditure");
							x.refreshTotalPart("Income", "OtherIncome");
							x.refreshBalancePart("Opening", "earning");
							x.refreshBalancePart("Opening", "overlay");	
							x.refreshBalancePart("Closing", "earning");
							x.refreshBalancePart("Closing", "overlay");
							x.refreshTotalBalance();
							x.refreshTotalProfit();
						}
					});
				}
			}
		},
		bindSubmit : function(element_id){
			/*$("#loading_indicator").jqmShow();*/
	
			var form_id = $("form").attr('id');
			if (form_id){
				var element_comp = document.getElementById(form_id);
				if (element_comp){
					if (element_comp.addEventListener){
						$("form").bind('submit', function(event){
							$("#loading_indicator").jqmShow();
						});
					}else if (element_comp.attachEvent){
						element_comp.attachEvent('onsubmit', function(event){
							$("#loading_indicator").jqmShow();
						});
					}
				}
			}
		},
		onKeyPressEvent : function(){
			var page_form = document.getElementById("finacial_report_frm");
			if (page_form){
				if (page_form.addEventListener){
					var ENTER = 13;
					if (page_form){
						if (page_form.addEventListener){
							$().bind('keydown', function(event){
								if (ENTER == event.keyCode){
									$("#finacial_report_frm").submit();
								}
							});
						}
					}
				} else if (page_form.attachEvent){
					page_form.attachEvent('onkeydown', function(event){
						if (ENTER == event.keyCode){
							$("#finacial_report_frm").submit();
						}
					});
				}
			}
		}
	};
	return x;
}()
member_wiki = function(){
	var x={		
		refresh_table : function(basic_url, parameters){
			if (isset('tab')){
				if ($("#" + tab).hasClass("Current")){
					$("#" + tab).removeClass("Current");
				}
			} else if (isset('default_tab')){
				if ($("#" + default_tab).hasClass("Current")){
					$("#" + default_tab).removeClass("Current");
				}
			}
			tab = 'wiki';
			$("#" + tab).addClass("Current");
			var new_link = '';
			var anchor = '#wiki'; 
			new_link = basic_url;
			
			if (parameters){
				var i = 0;
				for (i in parameters){
					if (1 == i){
						anchor = anchor + '/page:' + parameters[i];
						new_link = new_link + '/' + parameters[i];
					} else {
						anchor = anchor + '/' + parameters[i];
						new_link = new_link + '/' + parameters[i];
					}
					i ++;
				}
			}
			$('#loading_indicator').jqmShow();
			$.get(new_link, function (data) {
				$('#loading_indicator').jqmHide();
				if ("ERROR" == data){
					show_alert('Error refreshing form');
				} else {
					if(data !== ""){
						$(container).empty();
						$(container).append(data);
						document.location.hash = anchor;
						window.currentAnchor = anchor;
					} else {
						show_alert('Error refreshing form');
					}
				}
			});
		},
		urlParsing : function(anchor){
			currentAnchor = anchor;
			var page = 1;
			var tab = default_tab;
			var param = null;
			var string_page = "" ;
			var parameters = {};
			if (currentAnchor) {
				var args = currentAnchor.split('/');
				if (tabs !== null) {
					if (inTabList(args[0])) {	
						tab = args[0];
					}
				}
				if (args[1]) {
					param = args[1];
					parameters[0] = param;
				}

				if (args[2]) {
					string_page = args[2];
					var string_page_array = string_page.split(":");
					if (string_page_array[1]){
						var int_page = parseInt(string_page_array[1], 10);
						if (!isNaN(int_page)){
							page = int_page;
							parameters[1] = page;
						}
					}
				}
			}
			return parameters;
		},
		newPageFormRequest : function(member_id, page_id){
			member_id = parseInt(member_id, 10);
			page_id = parseInt(page_id, 10);
			if (!isNaN(member_id)){
				var url = "/member_page/create/" + member_id;
				if (!isNaN(page_id)){
					url = url + "/" + page_id;
				}
				$.get(url, function(data){
					if ("ERROR" == data){
						show_alert("You do not have permission to perform this action.");
					} else {
						$("#member_container").html(data);
					}
				});
			} else {
				show_alert("Invalid parameters");
			}
		},
		openNewPageForm : function(member_id, page_id){
			member_id = parseInt(member_id, 10);
			page_id = parseInt(page_id, 10);
			if (!isNaN(member_id)){
				var url = "/member_page/create/" + member_id;
				if (!isNaN(page_id)){
					url = url + "/" + page_id;
				}
				check_session(url, "member_wiki.newPageFormRequest('" + member_id + "', '" + page_id + "')");
			} else {
				show_alert("Invalid parameters");
			}
		},
		bindNavigationPageClick : function(){
			$("a[id^=page_]").each(function(i, element){
				var a_id = element.id;
				if (a_id){
					var a_array = a_id.split("_");
					if (a_array[1]){
						page_id = parseInt(a_array[1], 10);
					}
				}
				var dom_element = document.getElementById(a_id);
				if (dom_element){
					var param_array = {};
					param_array[0] = page_id;
					if (dom_element.addEventListener){
						$("#" + a_id).bind('click', function(event){
							member_wiki.refresh_table(refresh_url, param_array);
						});
					}else if (dom_element.attachEvent){
						dom_element.attachEvent('onclick', function(event){
							member_wiki.refresh_table(refresh_url, param_array);
						});
					}
				} else {
					show_alert('Error binding click event.');
				}
			});
		},
		addElementName : function(element_id, element_name){
			var element = $("#" + element_id);
			if (element){
				element.attr('name', element_name);
			}
		},
		editPageFormRequest : function(url){
			$.get(url, function(data){
				if ("ERROR" == data){
					show_alert("You do not have permission to perform this action.");
				} else {
					$("#member_container").html(data);
				}
			});
		},		
		openEditPageForm : function(member_id, page_id){
			var url = "/member_page/edit/" + member_id + "/" + page_id;
			check_session(url, "member_wiki.editPageFormRequest('" + url + "')");
		},
		openPage : function(member_id, page_id){
			var url = "/member_page/view/" + member_id + "/" + page_id;
			$.get(url, function(data){
				if ("ERROR" == data){
					show_alert("You do not have permission to perform this action.");
				} else {
					$("#member_container").html(data);
				}
			});
		},
		addPageContentRequest : function(url){
			$("#loading_indicator").jqmShow();
			$.get(url, function(data){
				$("#loading_indicator").jqmHide();
				if ("ERROR" == data){
					show_alert("Error updateing page content");
				} else {
					var body = tinyMCE.getInstanceById('mce_editor_0');
					if (body){
						body.setContent(data);
					}
					/*$("#member_container").html(data);*/
				}
			});
		},
		addPageContent : function(member_id, page_id){
			var url = "/member_page/get_page_content/" + member_id + "/" + page_id;
			$("#loading_indicator").jqmShow();
			check_session(url, "member_wiki.addPageContentRequest('" + url + "')");
		},
		onDeletePage : function(member_id, page_id, page_name, has_children){
			/*bind function for click on OK button*/
			var ok_element = document.getElementById("confirm_page_delete_ok_btn");
			if (ok_element){
				if (ok_element.addEventListener){
					$("#confirm_page_delete_ok_btn").bind('click', function(event){
						$("#confirm_delete_page_wnd").jqmHide();
						member_wiki.deletePage(member_id, page_id, page_name);
					});
				}else if (ok_element.attachEvent){
					ok_element.attachEvent('onclick', function(event){
						$("#confirm_delete_page_wnd").jqmHide();
						member_wiki.deletePage(member_id, page_id, page_name);
					});
				}
			} else {
				show_alert('Error binding click event - element does not exist.');
			}
			
			/*show confirmation window*/
			var message = "Are you sure you want to delete page " + page_name + "?";
			$('#confirm_delete_page_p').text(message);
			if (has_children && 1 == has_children){
				$("#confirm_delete_page_ckb").html("<input type='checkbox' name='delete_subpages' id='delete_subpages'/>And all its subpages?");
			} else {
				$("#confirm_delete_page_ckb").empty();
			}
			var height = 126;
			var margin_offset = '-' + Math.ceil((height) / 2) + 'px';
			$('#confirm_delete_page_wnd').css('margin-top', margin_offset);
			$("#confirm_delete_page_wnd").jqmShow();	
		},
		deletePageRequest : function(member_id, page_id, page_name){
			all = 0;
			var sub_checkbox = document.getElementById("delete_subpages");
			if (sub_checkbox && sub_checkbox.checked){
				all = sub_checkbox.checked;
				sub_checkbox.checked = false;
			}
			var url = "/member_page/delete/" + member_id + "/" + page_id;
			if (true === all){
				all = 1;
				url = url  + "/" + all;
			}
			$("#loading_indicator").jqmShow();
			$.get(url, function(data){
				$("#loading_indicator").jqmHide();
				if ("SUCCESS" == data){
					url = "/member_page/view/" + member_id;
					member_wiki.refresh_table(url);
				} else {
					if ("ERROR" == data){
						show_alert("Failed to delete page " + page_name);
					}
				}
			});
		},
		deletePage : function(member_id, page_id, page_name){
			var url = "/member_page/delete/" + member_id + "/" + page_id;
			check_session(url, "member_wiki.deletePageRequest('" + member_id + "', '" + page_id + "', '" + page_name + "')");
		}
	};
	return x;
}()
group_wiki = function(){
	var x={		
		refresh_table : function(basic_url, parameters){
			if (isset('tab')){
				if ($("#" + tab).hasClass("Current")){
					$("#" + tab).removeClass("Current");
				}
			} else if (isset('default_tab')){
				if ($("#" + default_tab).hasClass("Current")){
					$("#" + default_tab).removeClass("Current");
				}
			}

			tab = 'wiki';
			$("#" + tab).addClass("Current");
			var new_link = '';
			var anchor = '#wiki'; 
			new_link = basic_url;
			
			if (parameters){
				var i = 0;
				for (i in parameters){
					if (1 == i){
						anchor = anchor + '/page:' + parameters[i];
						new_link = new_link + '/' + parameters[i];
					} else {
						anchor = anchor + '/' + parameters[i];
						new_link = new_link + '/' + parameters[i];
					}
					i ++;
				}
			}
			$('#loading_indicator').jqmShow();
			$.get(new_link, function (data) {
				$('#loading_indicator').jqmHide();
				if ("ERROR" == data){
					show_alert('Error refreshing form');
				} else {
					if(data !== ""){
						$(container).empty();
						$(container).append(data);
						document.location.hash = anchor;
						window.currentAnchor = anchor;
					} else {
						show_alert('Error refreshing form');
					}
				}
			});
		},
		urlParsing : function(anchor){
			currentAnchor = anchor;
			var page = 1;
			var tab = default_tab;
			var param = null;
			var string_page = "" ;
			var parameters = {};
			if (currentAnchor) {
				var args = currentAnchor.split('/');
				if (tabs !== null) {
					if (inTabList(args[0])) {	
						tab = args[0];
					}
				}
				if (args[1]) {
					param = args[1];
					parameters[0] = param;
				}

				if (args[2]) {
					string_page = args[2];
					var string_page_array = string_page.split(":");
					if (string_page_array[1]){
						var int_page = parseInt(string_page_array[1], 10);
						if (!isNaN(int_page)){
							page = int_page;
							parameters[1] = page;
						}
					}
				}
			}
			return parameters;
		},
		openNewPageForm : function(group_id, page_id){
			group_id = parseInt(group_id, 10);
			page_id = parseInt(page_id, 10);
			if (!isNaN(group_id)){
				var url = "/group_page/create/" + group_id;
				if (!isNaN(page_id)){
					url = url + "/" + page_id;
				}
				$.get(url, function(data){
					if ("ERROR" == data){
						show_alert("You do not have permission to perform this action.");
					} else {
						$(container).html(data);
					}
				});
			} else {
				show_alert("Invalid parameters");
			}
		},
		bindNavigationPageClick : function(){
			$("a[id^=page_]").each(function(i, element){
				var a_id = element.id;
				if (a_id){
					var a_array = a_id.split("_");
					if (a_array[1]){
						page_id = parseInt(a_array[1], 10);
					}
				}
				var dom_element = document.getElementById(a_id);
				if (dom_element){
					var param_array = {};
					param_array[0] = page_id;
					if (dom_element.addEventListener){
						$("#" + a_id).bind('click', function(event){
							group_wiki.refresh_table(refresh_url, param_array);
						});
					}else if (dom_element.attachEvent){
						dom_element.attachEvent('onclick', function(event){
							group_wiki.refresh_table(refresh_url, param_array);
						});
					}
				} else {
					show_alert('Error binding click event.');
				}
			});
		},
		addElementName : function(element_id, element_name){
			var element = $("#" + element_id);
			if (element){
				element.attr('name', element_name);
			}
		},
		openEditPageForm : function(group_id, page_id){
			var url = "/group_page/edit/" + group_id + "/" + page_id;
			$.get(url, function(data){
				if ("ERROR" == data){
					show_alert("You do not have permission to perform this action.");
				} else {
					$(container).html(data);
				}
			});
		},
		openPage : function(group_id, page_id){
			var url = "/group_page/view/" + group_id + "/" + page_id;
			$.get(url, function(data){
				if ("ERROR" == data){
					show_alert("You do not have permission to perform this action.");
				} else {
					$(container).html(data);
				}
			});
		},
		addPageContentRequest : function(url){
			$("#loading_indicator").jqmShow();
			$.get(url, function(data){
				$("#loading_indicator").jqmHide();
				if ("ERROR" == data){
					show_alert("Error updateing page content");
				} else {
					var body = tinyMCE.getInstanceById('mce_editor_0');
					if (body){
						body.setContent(data);
					}
				}
			});
		},		
		addPageContent : function(group_id, page_id){
			var url = "/group_page/get_page_content/" + group_id + "/" + page_id;
			check_session(url, "group_wiki.addPageContentRequest( '" + url + "')");
			
		},
		onDeletePage : function(group_id, page_id, page_name, has_children){
			/*bind function for click on OK button*/
			var ok_element = document.getElementById("confirm_page_delete_ok_btn");
			if (ok_element){
				if (ok_element.addEventListener){
					$("#confirm_page_delete_ok_btn").bind('click', function(event){
						$("#confirm_delete_page_wnd").jqmHide();
						group_wiki.deletePage(group_id, page_id, page_name);
					});
				}else if (ok_element.attachEvent){
					ok_element.attachEvent('onclick', function(event){
						$("#confirm_delete_page_wnd").jqmHide();
						group_wiki.deletePage(group_id, page_id, page_name);
					});
				}
			} else {
				show_alert('Error binding click event - element does not exist.');
			}
			
			/*show confirmation window*/
			var message = "Are you sure you want to delete page " + page_name + "?";
			$('#confirm_delete_page_p').text(message);
			if (has_children && 1 == has_children){
				$("#confirm_delete_page_ckb").html("<input type='checkbox' name='delete_subpages' id='delete_subpages'/>And all its subpages?");
			} else {
				$("#confirm_delete_page_ckb").empty();
			}
			var height = 126;
			var margin_offset = '-' + Math.ceil((height) / 2) + 'px';
			$('#confirm_delete_page_wnd').css('margin-top', margin_offset);
			$("#confirm_delete_page_wnd").jqmShow();	
		},
		deletePageRequest : function(group_id, page_id, page_name){
			all = 0;
			var sub_checkbox = document.getElementById("delete_subpages");
			if (sub_checkbox && sub_checkbox.checked){
				all = sub_checkbox.checked;
				sub_checkbox.checked = false;
			}
			var url = "/group_page/delete/" + group_id + "/" + page_id;
			if (true === all){
				all = 1;
				url = url  + "/" + all;
			}
			$("#loading_indicator").jqmShow();
			$.get(url, function(data){
				$("#loading_indicator").jqmHide();
				if ("SUCCESS" == data){
					url = "/group_page/view/" + group_id;
					group_wiki.refresh_table(url);
				} else {
					if ("ERROR" == data){
						show_alert("Failed to delete page " + page_name);
					}
				}
			});
		},
		deletePage : function(group_id, page_id, page_name){
			all = 0;
			var sub_checkbox = document.getElementById("delete_subpages");
			if (sub_checkbox && sub_checkbox.checked){
				all = sub_checkbox.checked;
				sub_checkbox.checked = false;
			}
			var url = "/group_page/delete/" + group_id + "/" + page_id;
			if (true === all){
				all = 1;
				url = url  + "/" + all;
			}
			check_session(url, "group_wiki.deletePageRequest( '" + group_id + "', '" + page_id + "', '" + page_name + "')");
		}
	};
	return x;
}()
workshop = function(){
	var x={		
		refresh_table : function(basic_url){
			$('#loading_indicator').jqmShow();
			var anchor = document.location.hash;
			var params = workshop.urlParsing(anchor);
			var refresh_url = basic_url;
			if (0 < params['page']){
				refresh_url = basic_url + "/" + params['page'];
			}
			$.get(refresh_url, function (data) {
				$('#loading_indicator').jqmHide();
				if ("ERROR" == data){
					show_alert('Error refreshing form');
				} else {
					if(data !== ""){
						$(container).html(data);
						SetupAJAXPaginationIE(container, basic_url);
					} else {
						show_alert('Error refreshing form');
					}
				}
			});
		},
		urlParsing : function(anchor){
			currentAnchor = anchor;
			var page = 1;
			var first_index = null;
			var second_index = null;
			var parameters = {};
			if (currentAnchor) {
				var args = currentAnchor.split('/');
				if (args[0]) {
					parameters['first_index'] = parseInt(args[0], 10);
				}
				if (args[1]) {
					parameters['second_index'] = parseInt(args[0], 10);
				}
				if (args[2]) {
					parameters['page'] = parseInt(args[2], 10);
				} else{
					parameters['page'] = 0;
				}
			}
			return parameters;
		}
	};
	return x;
}()
ebm = function(){
	var x={		
		refreshTableRequest : function(basic_url){
			$('#loading_indicator').jqmShow();
			var anchor = document.location.hash;
			var refresh_url = basic_url;
			if (anchor){
				var page = anchor.substring(1); 
				refresh_url = basic_url + "/" + page;
			}
			$.get(refresh_url, function (data) {
				$('#loading_indicator').jqmHide();
				if ("ERROR" == data){
					show_alert('Error refreshing form');
				} else {
					if(data !== ""){
						$(container).html(data);
						SetupAJAXPaginationIE(container, basic_url);
					} else {
						show_alert('Error refreshing form');
					}
				}
			});
		},refresh_table : function(basic_url){
			check_session(basic_url, "ebm.refreshTableRequest('" + basic_url + "')");
		},
		changeApplicationStatusRequest : function(url, new_status, member_id){
			if (url && new_status){
				var data = {};
				if ('ACCEPTED' == new_status){
					var slot1_select = $("#EbmApplicationWorkshopSlot1_" + member_id);
					var slot2_select = $("#EbmApplicationWorkshopSlot2_" + member_id);
					if (slot1_select && slot2_select){
						var slot1_val = slot1_select.val();
						var slot2_val = slot2_select.val();
						var error_message = "";
						if (0 === slot1_val){
							error_message = error_message +  "<p>Slot 1 value is not selected.</p>";
						}
						if (0 === slot2_val){
							error_message = error_message +  "<p>Slot 2 value is not selected.</p>";
						}
						if ("" === error_message){
							data['workshop_slot_1'] = slot1_val;
							data['workshop_slot_2'] = slot2_val;
						} else {
							show_alert(error_message);
							return;
						}
					}
				}
				url = url + "/" + new_status;
				$("#loading_indicator").jqmShow();
				$.post(url, data, function(return_value){
					$("#loading_indicator").jqmHide();
					if ("SUCCESS" == return_value){
						ebm.refresh_table(base_url);
					} else {
						show_alert("Failed to change application status");
					} 
				});
			}
		},
		change_application_status : function(url, new_status, member_id){
			if (url && new_status){
				check_session(url, "ebm.changeApplicationStatusRequest('" + url + "', '" + new_status + "', " + member_id + ")");
			}
		}
	};
	return x;
}()

su = function(){
	var x={		
		t_resource : 0,
		refresh_table : function(basic_url) {
			var new_link = basic_url;
			var anchor = document.location.hash;
			if ("" !== anchor){
				var page = anchor.substring(1);
				page = parseInt(page, 10);  
				new_link = new_link + "/" + page;
			}
			$('#loading_indicator').jqmShow();
			$.get(new_link, function (data) {
				$('#loading_indicator').jqmHide();
				if ("ERROR" == data){
					show_alert('Error refreshing form');
				} else {
					if(data !== ""){
						$(container).empty();
						$(container).append(data);
						SetupAJAXPaginationIE(container, base_url);
					} else {
						show_alert('Error refreshing form');
					}
				}
			});
		},
		changeEventStateRequest : function(url, state){
			if (url && state){
				url = url + "/" + state;
				$("#loading_indicator").jqmShow();
				$.get(url, function(data){
					$("#loading_indicator").jqmHide();
					if ("SUCCESS" == data){
						su.refresh_table(base_url);
					} else {
						show_alert("Failed to change status.");
					}
				});
			}
		},
		change_event_state : function(url, state){
			if (url && state){
				check_session(url, "su.changeEventStateRequest('" + url + "', '" + state + "')");
			}
		},
		startPreselectionRequest : function(url, check_url){
			if (url){
				$("#loading_indicator").jqmShow();
				$.get(url, function(data){
					$("#loading_indicator").jqmHide();
					if ("SUCCESS" == data){
						show_alert("Preselection is started! You will be informed about preselection results");
						t_resource = setTimeout("su.check_preselection_status('" + check_url + "')", 30000);
					} else {
						if ("ERROR" == data){
							show_alert("Error while preselection applications");
						} else {
							show_alert(data);
						}
					}
				});
			}
		},
		start_preselection : function(url, check_url){
			if (url){
				check_session(url, "su.startPreselectionRequest('" + url + "', '" + check_url + "')");
			}
		},
		check_preselection_status : function(check_url){
			if (check_url){
				$.get(check_url, function(data){
					if ("SUCCESS" == data){
						show_alert("Preselection is completed successfully");
						clearTimeout(t_resource);
					} else {
						if ("ERROR" == data){
							show_alert("Failed to determine preselection status");
							clearTimeout(t_resource);
						} else {
							t_resource = setTimeout("su.check_preselection_status('" + check_url + "')", 30000);
						}
					}
				});
			}
		},
		deleteSuRequest : function(url){
			if (url){
				$("#loading_indicator").jqmShow();
				$.get(url, function(data){
					$("#loading_indicator").jqmHide();
					if ("SUCCESS" == data){
						currentAnchor = document.location.hash;
						var page = 1;
						var tab = default_tab;
						if (currentAnchor) {
							currentAnchor = currentAnchor.substring(1);
							var args = currentAnchor.split('/');
							if (tabs !== null) {
								if (inTabList(args[0])) {
									tab = args[0];
								}
							}
							if (args[1] && args[1] > 0) {
								page = args[1];
							}
						}
						refresh_table(tab, page);
					} else {
						show_alert("Failed to delete SU.");
					}
				});
			}
		},
		deleteSu : function(url){
			if (url){
				check_session(url, "su.deleteSuRequest('" + url + "')");
			}
		}
	};
	return x;
}()
suct = function(){
	var x={		
		searchMembersByNameRequest : function(group_id) {
			var search = $("#search_member_txt").val();
			var url = base_url + "/" + search;
			$("#loading_indicator").jqmShow();
			$.get(url, function(data){
				$("#loading_indicator").jqmHide();
				$(container).html(data);
				SetupAJAXPaginationIE(container, base_url);
			});
		},
		resetSearchRequest : function(group_id){
			var search = $("#search_member_txt").val();
			var url = base_url + "/" + search + "/reset";
			$("#loading_indicator").jqmShow();
			$.get(url, function(data){
				$("#loading_indicator").jqmHide();
				$(container).html(data);
				SetupAJAXPaginationIE(container, base_url);
			});
			$("#search_member_txt").attr("value", "");
		},
		addMemberRequest : function(member_id, group_id){
			var url = '/suct/add_member/' + group_id + "/" + member_id;
			$("#loading_indicator").jqmShow();
			$.get(url, function(data){
				$("#loading_indicator").jqmHide();
				if ("SUCCESS" == data){
					suct.refresh_table(container, base_url);
					suct.refresh_table(suct_container, suct_base_url);
					var message = "Member is successfully added to SUCT.";
					write_info_header_msg_bar(message);
				} else {
					if ("ERROR" == data){
						show_alert("Failed to add member to SUCT.");
					} else {
						show_alert(data);
					}
				}
			});
		},
		removeMemberRequest : function(member_id, group_id){
			var url = '/suct/remove_member/' + group_id + "/" + member_id;
			$("#loading_indicator").jqmShow();
			$.get(url, function(data){
				$("#loading_indicator").jqmHide();
				if ("SUCCESS" == data){
					suct.refresh_table(container, base_url);
					suct.refresh_table(suct_container, suct_base_url);
					var message = "Member is removed from SUCT.";
					write_info_header_msg_bar(message);
				} else {
					if ("ERROR" == data){
						show_alert("Failed to remove member from SUCT.");
					} else {
						show_alert(data);
					}
				}
			});
		},
		refresh_table : function(holder, url){
			currentAnchor = document.location.hash;
			var page = 1;
			if (currentAnchor){
				var string_page = page.substring(1);
				string_page = parseInt(string_page, 10);
				if (!isNaN(string_page)){
					page = string_page;
				}
			}
			
			$('#loading_indicator').jqmShow();
			$.get(url, function (data) {
				$('#loading_indicator').jqmHide();
				if ("ERROR" == data){
					show_alert('Failed to refresh table.');
				} else {
					if(data !== ""){
						$(holder).empty();
						$(holder).append(data);
						SetupAJAXPaginationIE(holder, url);
					} else {
						show_alert('Failed to refresh table.');
					}
				}
			});
		}
	};
	return x;
}()