function showprofilealert(){
	alert("----------------------\n IMPORTANT NOTICE!\n ----------------------\n\nIf you already have an IACIS profile, DO NOT FILL OUT THE APPLICATION AGAIN.\n\nLogin and register for the course.\n\nIf you cannot remember your login you may contact the secretary@cops.org for assistance. ");
}

function shownewapp(){
	alert("----------------------\n IMPORTANT NOTICE!\n ----------------------\n\nIf you have EVER had an IACIS profile, DO NOT FILL OUT THE APPLICATION AGAIN.\n\nIf you cannot remember your login you may contact the secretary@cops.org for assistance. ");
}

function urldecode( str ) {
    // Decodes URL-encoded string
    // 
    // +    discuss at: http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_urldecode/
    // +       version: 809.1713
    // +   original by: Philip Peterson
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: AJ
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // %          note: info on what encoding functions to use from: http://xkr.us/articles/javascript/encode-compare/
    // *     example 1: urldecode('Kevin+van+Zonneveld%21');
    // *     returns 1: 'Kevin van Zonneveld!'
    // *     example 2: urldecode('http%3A%2F%2Fkevin.vanzonneveld.net%2F');
    // *     returns 2: 'http://kevin.vanzonneveld.net/'
    // *     example 3: urldecode('http%3A%2F%2Fwww.google.nl%2Fsearch%3Fq%3Dphp.js%26ie%3Dutf-8%26oe%3Dutf-8%26aq%3Dt%26rls%3Dcom.ubuntu%3Aen-US%3Aunofficial%26client%3Dfirefox-a');
    // *     returns 3: 'http://www.google.nl/search?q=php.js&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:unofficial&client=firefox-a'
    
    var histogram = {}, histogram_r = {}, code = 0, str_tmp = [];
    var ret = str.toString();
    
    var replacer = function(search, replace, str) {
        var tmp_arr = [];
        tmp_arr = str.split(search);
        return tmp_arr.join(replace);
    };
    
    // The histogram is identical to the one in urlencode.
    histogram['!']   = '%21';
    histogram['%20'] = '+';
    
    for (replace in histogram) {
        search = histogram[replace]; // Switch order when decoding
        ret = replacer(search, replace, ret) // Custom replace. No regexing   
    }
    
    // End with decodeURIComponent, which most resembles PHP's encoding functions
    ret = decodeURIComponent(ret);

    return ret;
}// }}}
function isDigits(integer){
	if(parseInt(parseFloat(integer)) > 0){
		return true;
	}
	return false;
}
function confirm_delete(message, obj){
	var message =  confirm(message);
	if (message){
		window.location = obj.href;
	}
}
function clearText(obj){
	
	if (obj.value == obj.title){
		obj.value = ''
	}
	else if(obj.value == ''){
		obj.value = obj.title;
	}
}

function assign_role(member_id, role_id) {

	var params = "member_id="+member_id;
	params += "&role_id="+role_id;
	
	new Ajax.Updater('roles_container', '/ajax/assign_member_roles', {parameters: params});
	
	return false;
}

function unassign_role(member_id, role_id) {

	var params = "member_id="+member_id;
	params += "&role_id="+role_id;
	
	new Ajax.Updater('roles_container', '/ajax/unassign_member_roles', {parameters: params});
	
	return false;
}

// for training/admin (training/course status module)
function training_admin_status_reject_check(value, obj_id) {
	// rejected value == 8
	if(value == 8) {
		Effect.SlideDown('reg_status_container'+obj_id, { duration: 0.5 });
		//$('reg_status_container').className = 'vis';
	} else {
		$('reg_status_container'+obj_id).hide();
		//$('reg_status_container').className = 'invis';
	}
}

function add_comment(member_id) {

	var params = "member_id="+member_id;
	
	new Ajax.Updater('comments_container', '/ajax/add_comment', {parameters: params});
	
	return false;
}

function save_comment(member_id, type, comment) {
	
	var new_comment = urlencode(comment);
	
	if(type){
		type = 0;
	} else {
		type = 1;
	}
	
	var params = "member_id="+member_id;
	params += "&type="+type;
	params += "&comment="+new_comment;

	new Ajax.Updater('insert_comments_container', '/ajax/insert_comment', {asynchronous:true, method:'post', parameters:params}); 

	return false;
}

function confirm_submit(message, elementId){
	
	var is_confirm = confirm(message);
	if (is_confirm){
		
		var myForm = document.getElementById(elementId);
		myForm.submit();
	}
}

function delete_comment(comment_id, member_id){

	var x = confirm("Are you sure you want to delete this comment? \n\n This process is not reversibe.\n Comments may take a second to update.");
	
	if(x){
		var params = "comment_id="+comment_id;
		params += "&member_id="+member_id;
	
		new Ajax.Updater('comments_container', '/ajax/delete_comment', {parameters: params});

	}
}


function urlencode(str){
	str = escape(str);
	str = str.replace('?', '%3F');
	str = str.replace('%', '%25');
	str = str.replace('[', '%5B');
	str = str.replace(']', '%5D');
	str = str.replace('~', '%7E');
	str = str.replace('#', '%23');
	str = str.replace('=', '%3D');
	str = str.replace('&', '%26');
	str = str.replace('\'', '%27');
	str = str.replace('\"', '%22');
	str = str.replace('+', '%2B');
	str = str.replace(':', '%3A');
	str = str.replace(';', '%3B');
	str = str.replace('/', '%2F');
	str = str.replace('@', '%40');
	str = str.replace(',', '%2C');
	str = str.replace(',', '%2C');
	str = str.replace('>', '%3E');
	str = str.replace('<', '%3C');
	str = str.replace('$', '%24');
	str = str.replace('}', '%7D');
	str = str.replace('{', '%7B');
	str = str.replace('^', '%5E');
	return str;
}

function urldecode(str) {
	return unescape(str);
//	return unescape(str.replace('+', ' '));
	//str = str.replace('?', '%3F');
	//str = str.replace('%', '%25');
	//str = str.replace('[', '%5B');
	//str = str.replace(']', '%5D');
	//str = str.replace('~', '%7E');
	//str = str.replace('#', '%23');
	//str = str.replace('=', '%3D');
	//str = str.replace('&', '%26');
	//str = str.replace('\'', '%27');
	//str = str.replace('\"', '%22');
	//str = str.replace('+', '%2B');
	//str = str.replace(':', '%3A');
	//str = str.replace(';', '%3B');
	//str = str.replace('/', '%2F');
	//str = str.replace('@', '%40');
	//str = str.replace(',', '%2C');
	//str = str.replace(',', '%2C');
	//str = str.replace('>', '%3E');
	//str = str.replace('<', '%3C');
	//str = str.replace('$', '%24');
	//str = str.replace('}', '%7D');
	//str = str.replace('{', '%7B');
	//str = str.replace('^', '%5E');
	//return str;
}

function check_in(member_id, course_id){
	
	var url = '/ajax/checkin/'+member_id;
	
	new Ajax.Request(url, {method:'get', parameters:'member_id='+member_id+'&course_id='+course_id,
		onSuccess: function (call_this){
			if(call_this.responseText == "Successful"){
				document.getElementById('checklink_'+member_id).innerHTML = 'Has already checked in.';
			} 
		}
	});
}


var newwindow;
function pop(url){
	newwindow=window.open(url,'name','height=800,width=1000,scrollbars=yes');
	if (window.focus) {newwindow.focus()}
}



// friendlier window open with default height and width of client browser - John.
function new_window(url, name, attrib){
	if (typeof(attrib) == "undefined"){
		attrib = "toolbar=1,location=1,directories=1,status=1,menubar=1,scrollbars=1,resizable=1";
	}
	window.open(url, name, attrib);

}

choice_count = 2;
function add_poll_choices(){
	
	var saveValue = new Array();

	var initValue = document.getElementById("add_polls_choices").innerHTML;


	choiceValue = document.getElementById("add_poll_form").elements["choices[]"];

	

	//clone value
	for (var i = 2; i < choice_count; i++){
		
		saveValue[i] = choiceValue[i].value;

	}

	document.getElementById("add_polls_choices").innerHTML = initValue + 
		"<p>"+
			"choices:<br />"+
			"<textarea name=\"choices[]\" class=\"sub_main\"></textarea>"+
		"</p>";

	for (var i = 2; i < choice_count; i++){
		
		choiceValue[i].value = saveValue[i];

	}

	choice_count++;
}// end function add_poll_choices

function vote_on_poll(id){
	vote_id  = 0
	myForm = document.getElementById("poll_id_"+id);
	for (var i = 0; i < myForm.choice.length; i++){
		if (myForm.choice[i].checked == true){
			vote_id = myForm.choice[i].value;
			break;
		}// end if
	}// end for loop

	if (vote_id != 0){

		var url = '/ajax/polls';
	
		new Ajax.Request(url, {method:'get', parameters:'poll_id='+id+'&choose_id='+vote_id+'&method_type=vote',
			onSuccess: function (call_this){
				if(call_this.responseText == "successful"){
					document.getElementById('show_poll_id_'+id).innerHTML = '<p><img src="/assets/images/icons/icon_check.png" /> Your vote has been submitted.</p>';
				} 
			}
		});
	}
	else{
		alert('Please select one of the choices before submitting');
	}
}// end vote_on_poll;

function change_poll_status(id, status){
	if (id != ""){

		var url = '/ajax/polls';
	
		new Ajax.Request(url, {method:'get', parameters:
			'poll_id='			+id +
			'&method_type=update_display'+
			'&display='+status,
			onSuccess: function (call_this){
				if(call_this.responseText == "successful"){
					document.getElementById('show_poll_id_'+id).innerHTML = 'updated';
				} 
			}
		});
	}
}

function hide_polls(poll_id, active){
	var x = confirm('Hiding this will prevent any users from voting or seeing this poll. Are you sure you want to continue?');
	if (x){
	var url = '/ajax/polls'

		new Ajax.Request(url, {method:'post', parameters:{
					poll_id:			poll_id,
					active:				active,
					method_type:		'change_active'
				},
				onSuccess: function (call_this){

					if (call_this.responseText != ""){

						document.getElementById("show_poll_id_active_"+ poll_id).innerHTML = call_this.responseText;

					}
				}
		});
	}


}
function update_register_status(course_member_id, course_id){ 
	
	var send_data 			= false;
	var external_agency 	= false;
	var table_id = document.getElementById("search_course_table");
	
	var myForm = document.getElementById("update_course_member_status_"+course_member_id);
	
	var url = '/ajax/update_course_member_status';
	if (myForm.external_agency.checked){
		external_agency = true;
		if (myForm.course_member_status.value != 5){
			alert('Registration status must be changed to "paid" if approved by external agency.');
		}
		else{
			send_data = true;
		}
	}
	else{
		send_data = true;
	}
	
	check_external = (myForm.check_external.value == 1) ? true: false;
	
		
	// checks if data is hasn't change on submission
	if (myForm.external_agency.checked == check_external && myForm.check_status.value == myForm.course_member_status.value){
		send_data = false;
		alert('no data has been changed');
		
	}
	
	// sends ajax to update status and available seats
	if (send_data){
	
		new Ajax.Request(url, {method:'post', parameters:{
					course_member_id:			course_member_id, 
					course_member_status: 		myForm.course_member_status.value,
					course_id: 					course_id,
					external_agency:			external_agency
				},
				onSuccess: function (call_this){
	
					if (call_this.responseText == "none"){
	
						alert('All seats are full for this course');
	
					}// end if seats are full
					else{
						
						for (i = 0; i < table_id.getElementsByTagName("span").length; i++ ){
				
							
							if(table_id.getElementsByTagName("span").item(i).getAttribute("class") == "seat_remaning_"+course_id || table_id.getElementsByTagName("span").item(i).getAttribute("className") == "seat_remaning_"+course_id){
	
								table_id.getElementsByTagName("span").item(i).innerHTML = call_this.responseText;
								
								
							}// end if
	
						}// end for loop
	
						document.getElementById('update_id_'+course_member_id).style.display = 'inline';
						setTimeout("hide_update_id("+course_member_id+")", 4000);
	
						myForm.check_external.value  = (myForm.external_agency.checked)? 1 : 2;
						myForm.check_status.value = myForm.course_member_status.value;
					}//end else seats not full
				}
			});
	
	}

}

function hide_update_id(id){
	document.getElementById("update_id_"+id).style.display = "none";
}

function add_achievements(member_id){
	var url = '/ajax/achievements';
	new Ajax.Request(url, {method:'post', parameters:{
		member_id:			member_id, 
		method_type:		'show_form'
		},
		onSuccess: function (call_this){
			
			document.getElementById("achievements_replace").innerHTML = call_this.responseText;
		}
	});

}

function edit_achievements(id){
	var url = '/ajax/achievements';
	new Ajax.Request(url, {method:'post', parameters:{
		id:					id,
		method_type:		'show_edit_form'
		},
		onSuccess: function (call_this){
			
			document.getElementById("achievements_replace").innerHTML = call_this.responseText;
		}
	});

}

function update_achievements(id, member_id){
	var success = false;
	var myForm = document.getElementById("edit_achievements_form");

	if (myForm.title.value == ''){
		alert("Achievement title can't be blank");
	}
	else if (myForm.description.value == ''){
		alert("Achievement description can't be blank");
	}
	else if(!checkdate(myForm.date.value)){
		alert("Achievement date is incorrect format ");
	}
	else{
		success = true;
	}

	if (success){
		var url = '/ajax/achievements';
		new Ajax.Request(url, {method:'post', parameters:{
			id:					id,
			method_type:		'update',
			member_id:			member_id,
			title:				myForm.title.value,
			achievement_date:	myForm.date.value,
			description:		myForm.description.value
			},
			onSuccess: function (call_this){
				
				document.getElementById("achievements_list").innerHTML = call_this.responseText;
				document.getElementById("achievements_replace").innerHTML = "";
			}
		});
	}

}

function delete_achievements(id, member_id){

	var x = confirm("Are you sure you want to delete this? \n\n This process is not reversibe.\n");
	
	if (x){
		var url = '/ajax/achievements';
		new Ajax.Request(url, {method:'post', parameters:{
			id:					id,
			method_type:		'delete',
			member_id:			member_id
			},
			onSuccess: function (call_this){
				
				document.getElementById("achievements_list").innerHTML = call_this.responseText;
				document.getElementById("achievements_replace").innerHTML = "";
			}
		});
	}
}

function insert_achievements(member_id, form_id){
	
	myForm = document.getElementById(form_id);
	var success = false
	
	
	if (myForm.title.value == ''){
		alert("Achievement title can't be blank");
	}
	else if (myForm.description.value == ''){
		alert("Achievement description can't be blank");
	}
	else if(!checkdate(myForm.date.value)){
		alert("Achievement date is incorrect format ");
	}
	else{
		success = true;
	}
	if (success){
		var url = '/ajax/achievements';
		new Ajax.Request(url, {method:'post', parameters:{
			member_id:			member_id, 
			method_type:		'insert',
			title:				myForm.title.value,
			description:		myForm.description.value,
			date:				myForm.date.value
			
			},
			onSuccess: function (call_this){
				
				document.getElementById("achievements_list").innerHTML = call_this.responseText;
				
				document.getElementById("achievements_replace").innerHTML = "";
			}
		});
	}// end if successs
}

function checkdate(date_string){

	var validformat=/^\d{2}\/\d{2}\/\d{4}$/; //Basic check for format validity
	var returnval = false;
	if (validformat.exec(date_string)){
		

		var monthfield	= parseInt(date_string.split("/")[0],10);
		var dayfield	= parseInt(date_string.split("/")[1],10);
		var yearfield	= parseInt(date_string.split("/")[2]);
		
		var dayobj = new Date(yearfield, monthfield -1, dayfield);
		
		if ((monthfield > 0 && monthfield <= 12) && (dayobj.getDate()==dayfield) && (dayobj.getFullYear() == yearfield)){
			returnval=true;
		}
	}

	return returnval;
}

function update_searchable(member_id) {

	var x = confirm("Are you sure you want to change your preference? \n\n");
	
	if(x){
		
		var flag ="";
		var url = '/ajax/searchable';
		var current = document.getElementById("flag_status").innerHTML;

		if (current == "hidden from"){
			flag = 1;
			document.getElementById("flag_status").innerHTML = "visible by";
			
		} else {
			flag = 0;
			document.getElementById("flag_status").innerHTML = "hidden from";
		}
		
		new Ajax.Request(url, {method:'post', parameters:{
			member_id: member_id,
			flag: flag
		}});

	}
}
function edit_member_alias(member_id){
	var myForm = document.getElementById("alias_upate_form");

	var url = '/ajax/aliases';


	new Ajax.Request(url, {method:'post', parameters:{
		member_id:			member_id, 
		method_type:		'update',
		total_aliases:		myForm.total_aliases.value,
		other_email:		myForm.other_email.checked
		},
		onSuccess: function (call_this){
			document.getElementById("alias_replace_text").innerHTML = call_this.responseText;
		}
	});

}
function approve_aliases(alias_id){

	var url = '/ajax/aliases';

	new Ajax.Request(url, {method:'post', parameters:{
		id:					alias_id, 
		method_type:		'approved'
		},
		onSuccess: function (call_this){
			document.getElementById("replace_status_"+alias_id).innerHTML = call_this.responseText;
		}
	});
}
function decline_aliases(alias_id){

	var url = '/ajax/aliases';

	new Ajax.Request(url, {method:'post', parameters:{
		id:					alias_id, 
		method_type:		'declined'
		},
		onSuccess: function (call_this){
			document.getElementById("replace_status_"+alias_id).innerHTML = call_this.responseText;
		}
	});
}

function remove_aliases(alias_id){

	var x = confirm("Please note that once you change your alias the old one will be locked for 6 months. This cannot be undone!\nAre you sure you want to remove this alias? \n\n");
	
	if(x){

		var url = '/ajax/aliases';
	
		new Ajax.Request(url, {method:'post', parameters:{
			id:					alias_id, 
			method_type:		'remove'
			},
			onSuccess: function (call_this){
				document.getElementById("replace_status_"+alias_id).innerHTML = call_this.responseText;
			}
		});
	}
}
function member_delete_aliases(obj){
	var x = confirm("Please note that once you change your alias the old one will be locked for 6 months. This cannot be undone!\nAre you sure you want to remove this alias? \n\n");
	
	if(x){

		window.location = obj.href;
	}
}



function move_select(form_id, from_id, to_id){
	var myForm 	= document.getElementById(form_id);
	var box1 	= document.getElementById(from_id);
	var box2 	= document.getElementById(to_id);
	
	// adds to the display side
	num =  0;
	for (var i = 0; i < box1.length; i++){
		if (box1[i].selected == true){
			
			var objOption = document.createElement('option');
			objOption.text = box1[i].text;
			objOption.value = box1[i].value;

			try {
				box2.add(objOption, null); // standards compliant; doesn't work in IE
			}
			catch(ex) {
				box2.add(objOption); // IE only
			}

		}
	}// end for
	// removes from the avialable fields

	for (i = 0; i < box2.length; i++){
		for (var j = 0; j < box1.length; j++){
			if (box2[i].value == box1[j].value){

				box1.remove(j);
				break;
				
			}
		}

	
	}
	// get value into hidden box
	
	myForm.display_select.value = "";

	for (i = 0; i < myForm.add_select.length; i++){
		sep = (num != 0) ? "," : "";
		myForm.display_select.value += sep + myForm.add_select[i].value;
		num++;	
	}

}// end function 
var report_counter = 0;
function add_members_filter(){

	myForm = document.getElementById("form_report_member");
	var category_selected;
	
	
	var init_id 		= document.getElementById("init_field");

	document.getElementById("replace_text_"+report_counter).innerHTML = "<p>"+ init_id.innerHTML+"</p>\n<span id=\"replace_text_"+ (report_counter + 1) +"\"></span>";

	report_counter++;

}

function update_subscriber(member_id){
	var url = '/ajax/preferences';
	var status = 0;
	myForm = document.getElementById('list_serve_form');
	
	for (i = 0; i < myForm.subscribe.length; i++){
		if (myForm.subscribe[i].checked == true){
			status = myForm.subscribe[i].value;
			break;
		} 
	}
	
	new Ajax.Request(url, {method:'post', parameters:{
		member_id:			member_id, 
		method_type:		'update',
		status:				status,
		email:				myForm.listserv_email.value
		},
		onSuccess: function (call_this){
			document.getElementById("display_email_box").style.display = 'none';
			document.getElementById("flag_subscriber").innerHTML = call_this.responseText;
		}
	});
}

function update_forum_notification(member_id){
	var url = '/ajax/preferences';
	
		new Ajax.Request(url, {method:'post', parameters:{
			member_id:			member_id, 
			method_type:		'update_forum'
			},
			onSuccess: function (call_this){
				document.getElementById("flag_forum").innerHTML = call_this.responseText;
			}
		});
}
function update_current_dues(member_id, status){
	var url = '/ajax/members';
	var method_type;
	var theDate=new Date();
	
	method_type = (status == "paid") ? 'marked_paid' : "marked_expired";
	
	if (member_id != ""){
		
		new Ajax.Request(url, {method:'post', parameters:{
			member_id:			member_id, 
			method_type:		method_type
			
			},
			onSuccess: function (call_this){
				if (call_this.responseText == "paid"){
					document.getElementById("flag_current_dues_"+member_id).innerHTML = "<input type=\"button\" onclick=\"update_current_dues("+member_id+",'expired');\" name=\"update_button\" value=\"undo\">";
					document.getElementById("flag_current_year_"+member_id).innerHTML = theDate.getFullYear();
					
				}
				else if (call_this.responseText == "expired"){
					document.getElementById("flag_current_dues_"+member_id).innerHTML = "<input type=\"button\" onclick=\"update_current_dues("+member_id+",'paid');\" name=\"update_button\" value=\"mark as paid\">";
					document.getElementById("flag_current_year_"+member_id).innerHTML = "";
				}
				else if (call_this.responseText == "no_undo"){
					document.getElementById("flag_current_dues_"+member_id).innerHTML = "Can't undo";
					document.getElementById("flag_current_year_"+member_id).innerHTML = theDate.getFullYear();
				}
				
			}
		});
		
		
	}
}
//unlike function update_current_dues, this will change the select box value also
function update_member_current_dues(member_id){
	var myForm = document.getElementById("edit_member");
	var url = '/ajax/members';
	var status_number;
	var user_level;
	var role_heading;
	var role_text;
	
	if (member_id != ""){
		
		new Ajax.Request(url, {method:'post', parameters:{
			member_id:			member_id, 
			method_type:		'update_dues',
			current_dues:		myForm.current_dues_js.value

			},
			onSuccess: function (call_this){
				data = call_this.responseText.evalJSON();
				
				if (data.result != ""){
					if (data.result != "invalid"){
						document.getElementById("flag_current_dues_"+member_id).innerHTML = "current dues updated";
						role_heading 	= data.role_heading;
						status_number 	= parseInt(data.status_number);
						user_level 		= parseInt(data.user_level);
						
						
	
						// update selectbox for member_status
						for (var i = 0; i < myForm.status.length; i++){
							if (myForm.status[i].value == status_number){
								myForm.status[i].selected = true;
		
							}
						}
						//update selectbox for member_user_level_id
						if (user_level != 0){
							for (i = 0; i < myForm.member_user_level_id.length; i++){
								if (myForm.member_user_level_id[i].value == user_level){
									myForm.member_user_level_id[i].selected = true;
			                
								}
							}
						}
						
						//document.getElementById("flag_current_dues_"+member_id).innerHTML = data.flag_current_dues
						//document.getElementById("role_change_heading").innerHTML = role_heading;
						myForm.current_dues_js.value = data.current_dues;
					}else{
						alert('Current Dues Year is invalid.  Year needs to be after 2007 and less than or equal renewal year');
					}
				}
				
				
			}
		});
		
		
	}
}
function in_array(string, array){
	for (i = 0; i < array.length; i++){
		if (array[i] == string){
			return true;
		}
	}
	return false;
}
function modify_subscriber(){
	document.getElementById('display_email_box').style.display =  'block';
}
function delete_board_members(id){
	var is_confirm = confirm('Are you sure you want to delete this commitee member?');
	if (is_confirm){
		var url = '/ajax/committee'
		new Ajax.Request(url, {
			method: 'post',
			parameters: {
				c_id: 			id,
				method_type: 	'delete'
			},
			onSuccess: function(call_this){
				if (call_this.responseText == "true"){
					document.getElementById('blind_up_'+ id).style.display = "none";
				}
			}
		});
	}
}
function check_election_form(form_id, checked_candidate){
	var error = '';
	var myForm = document.getElementById(form_id);
	var count = 0;
	var candidate_id_array = new Array();
	
	
	
	if (checked_candidate) {
		myElements = myForm.elements["candidate_id[]"];
		if (typeof myElements == 'object') {
			for (var i = 0; i < myElements.length; i++) {
				if (myElements[i].checked == true) {
					count++;
				}
			}
		}
	}
	
	if (myForm.position.value == '' || !isDigits(myForm.position.value)){
		error += " - Available position needs to be a number\n";
	}else if (myForm.position.value >= count && checked_candidate ){
		error += " - Number of open positions must be less than the total number of available candidates checked\n";
	}
	 
	if (error == ''){
		myForm.submit();
	}else{
		alert(error);
	}
}
function delete_election(election_id){
	var is_confirm = confirm('Are you sure you want to delete this election?');
	if (is_confirm){
		var url = '/ajax/election';
		new Ajax.Request(url, {
			method: 'post',
			parameters: {
				election_id: 	election_id,
				method_type: 	'delete'
			},
			onSuccess: function(call_this){
				if (call_this.responseText == "true"){
					document.getElementById('blind_up_'+ election_id).style.display = "none";
				}
			}
		});
	}
}

function vote_election(form_id){
	
	var candidate_id_array = new Array();
	var is_confirm = confirm('Are you sure you want to vote these candidates? You can only vote ONE TIME!');
	var count = 0;
	var error = '';
	if (is_confirm){
		
		myForm = document.getElementById('vote_election_'+form_id);
		myElements = myForm.elements["candidate_election_id[]"];
		if (typeof myElements.length == 'number') {
			
			for (var i = 0; i < myElements.length; i++) {
				if (myElements[i].checked == true) {
					candidate_id_array[count] = myElements[i].value;
					count++;
				}
			}
			if (candidate_id_array.length == 0){
				error += "- A candidate must be selected\n";
			}else if((myForm.max_candidate.value < candidate_id_array.length)){
				error += "Error! The number of votes has exceeds the number of open positions.\n";
			}
			if (error == ''){
				// send to ajax
				var url = '/ajax/election';
				new Ajax.Request(url, {
					method: 'post',
					parameters: {
						'candidate_id_array[]': 	candidate_id_array,
						method_type: 	'vote',
						election_id:	myForm.election_id.value
					},
					onSuccess: function(call_this){
						if(call_this.responseText == "true"){
							document.getElementById('replace_text_'+ myForm.election_id.value).innerHTML = "Vote(s) successfully submitted.";
						}
					}
				});
			}else{
				alert(error);
			}

		}

	}
}
function add_motion_votes(motion_id){
	var myForm = document.getElementById('motion_votes');
	var error = '';
	if (myForm.member_id.value == ''){
		error += "This Member does not exist";
	}
	if (error == ''){
		myForm.submit();
	}else{
		alert(error);
	}
}
function edit_motion_votes(id){
	var vote_field = document.getElementById('vote_'+id);
	var	myForm = document.getElementById('vote_form_id_'+id);
	var vote = new Array();
	for (i = 0; i <= 3; i++){
		if (i == parseInt(myForm.vote.value)){
			vote[i] = 'selected=selected';
		}else{
			vote[i] = '';
		}
	}
	
	vote_field.innerHTML = 
		"<div style=\"padding:5px 0;\">"+
			myForm.member.value+
			"<input type=\"hidden\" name=\"member_id\" value=\""+myForm.member_id.value+"\">"+
			"&nbsp;&nbsp;&nbsp;&nbsp;"+
			"<select name=\"vote_data\">"+
				"<option value=\"0\" "+vote[0]+">Nay</option>"+
				"<option value=\"1\" "+vote[1]+">Yea</option>"+
				"<option value=\"2\" "+vote[2]+">Abstained</option>"+
				"<option value=\"3\" "+vote[3]+">Seconded</option>"+
			"</select>"+
			"&nbsp;&nbsp;&nbsp;&nbsp;"+
			"<input type=\"button\" value=\"update\" onclick=\"update_vote_motion("+id+")\">"+
		"</div>";
		
}
function update_vote_motion(id){
	var vote_field = document.getElementById('vote_'+id);
	var	myForm = document.getElementById('vote_form_id_'+id);
	
	if (myForm.vote.value != '') {
		
		var url = '/ajax/motion';
		new Ajax.Request(url, {
			method: 'post',
			parameters: {
				id: 			id,
				vote:			myForm.vote_data.value,
				method_type: 	'update_vote'
			},
			onSuccess: function(call_this){
				
				if(call_this.responseText == "true"){
					myForm.vote.value = myForm.vote_data.value
					
					var vote_text = '';
					if (parseInt(myForm.vote_data.value) == 0) {
						vote_text = "Nay";
					} else if (parseInt(myForm.vote_data.value) == 1) {
						vote_text = "Yay";
					} else {
						vote_text = "Abstained";
					}
					
					vote_field.innerHTML = "<div class=\"motion_vote_member\">" + myForm.member.value + "</div>" +
						"<div class=\"motion_vote_selection\">" + vote_text+"</div>" +
						"<div class=\"motion_vote_member\"><a href=\"\" onclick=\"edit_motion_votes("+id +");return false;\">edit</a> | <a href=\"\" onclick=\"delete_vote_motion("+id+");return false;\">delete</a></div>";
					
				}// end if
			}// end function call this
		});// end ajax
	}// end if			
}// end function update_vote_motion
function delete_vote_motion(id){
	var vote_field = document.getElementById('vote_'+id);
	
	var url = '/ajax/motion';
	new Ajax.Request(url, {
		method: 'post',
		parameters: {
			id: 			id,
			method_type: 	'delete_vote'
		},
		onSuccess: function(call_this){
			if(call_this.responseText == "true"){
				vote_field.style.display = "none";
			}
		}
	});

}
function delete_motion(motion_id){
	var is_confirm = confirm('Are you sure you want to delete this motion and all the votes in this motion?');
	if (is_confirm){
		var url = '/ajax/motion';
		new Ajax.Request(url, {
			method: 'post',
			parameters: {
				id: 			motion_id,
				method_type: 	'delete_motion'
			},
			onSuccess: function(call_this){
				if(call_this.responseText == "true"){
					document.getElementById('motion_'+motion_id).style.display = "none";
				}
			}
		});
			
		
	}
}
function delete_committee_members(committee_id){
	var is_confirm = confirm('Are you sure you want to delete this committee and all the members in this committee?');
	if (is_confirm){
		var url = '/ajax/committee';
		new Ajax.Request(url, {
			method: 'post',
			parameters: {
				committee_id: 	committee_id,
				method_type: 	'delete'
			},
			onSuccess: function(call_this){
				if(call_this.responseText == "true"){
					document.getElementById('blind_up_'+committee_id).style.display = "none";
				}
			}
		});
			
		
	}
}
function remove_committee_members(id){
	var is_confirm = confirm('Are you sure you want to delete this member from this committeee?');
	if (is_confirm){
		var url = '/ajax/committee';
		new Ajax.Request(url, {
			method: 'post',
			parameters: {
				id: 	id,
				method_type: 	'delete_members'
			},
			onSuccess: function(call_this){
				if(call_this.responseText == "true"){
					document.getElementById('blind_up_'+id).style.display = "none";
				}
			}
		});
			
	}
}
