function BlackhawkChurchPlugin()
{
   
   var fixDate = function( dateInput )
   {
      dateArr = dateInput.split( " " );
      if( dateArr.length == 1 )
      {
         dateArr = dateArr[0].split( "-" );
         return dateArr[1] + "-" + dateArr[2] + "-" + dateArr[0];
      }
      else 
      {
         dateArr1 = dateArr[0].split( "-" );
         return dateArr1[1] + "-" + dateArr1[2] + "-" + dateArr1[0] + " " + dateArr[1];
      }
   };
   
   var contactInfoInput = function( label, id, member, onchange )
   {
      return '<div><div class="blackhawk_church_contact_title">'+label+':</div>' + 
      '<input type="text" id="'+id+'" value="' + member[id] + '" onchange="'+onchange+'" /></div>';
   };

   var contactInfoText = function( label, id, member, onchange )
   {
      return '<div><div class="blackhawk_church_contact_title">'+label+':</div>' + 
      '<textarea cols="25" rows="3" id="'+id+'" onchange="'+onchange+'" >'+member[id]+'</textarea></div>';
   };
   
   var contactInfoSelect = function( label, id, options, optionVals, member, onchange )
   {
      select = '<div><div class="blackhawk_church_contact_title">'+label+':</div><select id="'+id+'" onchange="'+onchange+'">';
      for( var i = 0; i < options.length; i++ )
      {
         if( member[id] == optionVals[i] )
            select += '<option selected="selected" value="'+optionVals[i]+'">'+options[i]+'</option>';
         else
            select += '<option value="'+optionVals[i]+'">'+options[i]+'</option>';
      }
      
      return select + "</select></div>";
   };

   var contactInfoHTML = function( member, onchange )
   {
      var age = new Array( "18", "19", "20", "21", "22", "23-27", "28-32", "33-37", "38-45", "46-54", "55-65", "65+" );
      var states = new Array( 
         "Alabama", "Alaska", "Arizona", "Arkansas", "California", "Colorado", "Connecticut", "Delaware", "District Of Columbia", "Florida",
         "Georgia", "Hawaii", "Idaho", "Illinois", "Indiana", "Iowa", "Kansas", "Kentucky", "Louisiana", "Maine", "Maryland", "Massachusetts",
         "Michigan", "Minnesota", "Mississippi", "Missouri", "Montana", "Nebraska", "Nevada", "New Hampshire", "New Jersey", "New Mexico",
         "New York", "North Carolina", "North Dakota", "Ohio", "Oklahoma", "Oregon", "Pennsylvania", "Rhode Island", "South Carolina",
         "South Dakota", "Tennessee", "Texas", "Utah", "Vermont", "Virginia", "Washington", "West Virginia", "Wisconsin", "Wyoming"
         );
      var stateValues = new Array(
         "AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "DC", "FL", "GA", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD",
         "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC", "SD",
         "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY"
         );
      
      onchange = onchange || "";
      
      member = member || { 
         first_name: "",
         last_name: "",
         age: "18",
         gender: "Male",
         spouse_first_name: "",
         spouse_last_name: "",
         phone: "",
         address: "",
         email: "",
         spouse_email: "",
         city: "",
         state: "WI",
         zip: "",
         car: "Yes",
         comments: "",
         availability: "",
         staff_notes: ""
      };
      
      
      return "<div class='blackhawk_church_contact_overlay_title'>Sign-Up Contact Info</div><br />" +
      contactInfoInput( "First Name", "first_name", member, onchange ) + 
      contactInfoInput( "Last Name", "last_name", member, onchange ) + 
      contactInfoSelect( "Age", "age", age, age, member, onchange ) +
      contactInfoSelect( "Gender", "gender", new Array( "Male", "Female" ), new Array( "Male", "Female" ), member, onchange ) +   
      contactInfoInput( "Spouse First Name", "spouse_first_name", member, onchange ) + 
      contactInfoInput( "Spouse Last Name", "spouse_last_name", member, onchange ) + 
      contactInfoInput( "Phone", "phone", member, onchange ) +  
      contactInfoInput( "Email", "email", member, onchange ) +  
      contactInfoInput( "Spouse's Email", "spouse_email", member, onchange ) +  
      contactInfoInput( "Address", "address", member, onchange ) +  
      contactInfoInput( "City", "city", member, onchange ) +  
      contactInfoSelect( "State", "state", states, stateValues, member, onchange ) +  
      contactInfoInput( "Zip", "zip", member, onchange ) +   
      contactInfoSelect( "Car", "car", new Array( "Yes", "No" ), new Array( "Yes", "No" ), member, onchange ) +  
      contactInfoText( "Comments", "comments", member, onchange ) +  
      contactInfoText( "Availability", "availability", member, onchange ) +
      contactInfoText( "Staff Notes", "staff_notes", member, onchange ); 
        
   };
   
  
   var signupQueueHTML = function( member, group, className, index )
   {
      html = 
      '<div id="signup_queue_' + member.id + '" class="' + className + '">' + "\n" +
      '<div class="signup_queue_col1">' + "\n" +
      '<span class="contact_name" rel="#contact_info_' + member.id + '" >' + member.first_name + ' ' + member.last_name + '</span> (' + member.gender + ')<br />' + "\n" +
      member.spouse_first_name + ' ' + member.spouse_last_name + '<br /><br />' + "\n" +
      '</div>' + "\n" +
      '<div class="signup_queue_col2">' + "\n" +
      '<span style="font-weight: bold;">Signed Up:</span> ' + member.signup_date + '<br />' + "\n" + 
      '<span style="font-weight: bold;">Age: </span>' + member.age + '<br /><span style="font-weight: bold;">Address:</span> <br />' +
      member.address + '<br />' +
      member.city + ', ' + member.state + ' ' + member.zip + '<br /><br />' +
      '<span style="font-weight: bold;">Phone:</span> ' + member.phone + '<br />' +
      '<span style="font-weight: bold;">Email:</span> ' + member.email + '<br />' + 
      '<span style="font-weight: bold;">Spouse\'sEmail:</span> ' + member.spouse_email + '<br />' + 
      '<span style="font-weight: bold;">Comments:</span> ' + member.comments + '<br />' +
      '<span style="font-weight: bold;">Availability:</span>' + member.availability + '<br />' + "\n" + 
      '<span style="font-weight: bold;">Has Car?:</span>' + member.car + '<br />' +  "\n" +
      '<span style="font-weight: bold;">Staff Notes:</span>' + member.staff_notes + "<br />\n" +
      '</div><div class="empty_clear"></div><br />' + "\n" +
      '<div><div class="signup_button"><input type="button" value="Add To Group" onclick="blackhawkChurchPlugin.addToGroup( ' + member.id + ', ' + group + ', ' + index + ' )" /></div>' + "\n" + 
      '<div class="signup_button"><input type="button" value="Remove From Queue" onclick="blackhawkChurchPlugin.removeFromGroup( ' + member.id + ', ' + group + ', ' + index + ' )" /></div>' + "\n" +
      '</div><div class="empty_clear"></div></div>';
      return html;
   
   };
   
   var getMemberHTML = function( member, group,  index )
   {
      html = 
      '<div><div style="float: left;" id="signup_queue_' + member.id + '"><span class="contact_name" rel="#contact_info_' + member.id + '" >' + member.first_name + " " + member.last_name + "&nbsp;&nbsp;(" +  member.gender + ")";
      if (member.spouse_first_name != "") {
         html += " and " + member.spouse_first_name + " " + member.spouse_last_name;
      }
      html += "</span></div>&nbsp;&nbsp;&nbsp;&nbsp;<a href='javascript:blackhawkChurchPlugin.removeFromGroup( " + member.id + ', ' + group + ', ' + index + " )'>delete</a></div>";
      return html;
   };

   var getMemberHTMLFront = function( member, group,  index )
   {
      html = 
      '<div><div style="float: left;" id="signup_queue_' + member.id + '">' + member.first_name + " " + member.last_name + "</div>&nbsp;&nbsp;" +  member.gender;
      if(member.spouse_first_name != "") {
         html += " and " + member.spouse_first_name + " " + member.spouse_last_name;
      }
      html +=  "</div>";
      return html;
   };

   this.searchMembers = function () {
      var data = {
         action: 'search_blackhawk_group_members',
         blackhawk_group_nonce: jQuery('#blackhawk_group_nonce').val(),
         first_name: jQuery('#search_member_first_name').val(),
         last_name: jQuery('#search_member_last_name').val()
      };
      
      jQuery('#member_search').hide('');
     
      jQuery.post('http://www.blackhawkchurch.org/wp-admin/admin-ajax.php', data, function(response) {
         jQuery('#member_search').fadeIn('fast');
         jQuery('#member_search_results').html('');
         if (response != "" && response != "-1" && response != "No Members Found") {
            responseObj = JSON.parse( response );
            var strResults = 'Your search returned the following groups:<br />\n';
            strResults += '<table><tr><th>Group Name</th><th></th></tr>';
            
            if (responseObj.length > 0) {
               for (i = 0; i < responseObj.length; i++) {
                  var group = responseObj[i];
                  strResults += '<tr><td>' + group.leader_last_name + ', ' + group.leader_first_name;
                  if (group.leader2_first_name != '' || group.leader2_last_name != '') {
                     strResults += ' and ' + group.leader2_last_name + ', ' + group.leader2_first_name;
                  }
                  strResults += '</td><td>&nbsp;&nbsp;&nbsp;<a href="javascript:blackhawkChurchPlugin.editGroup(' + group.id + ')">edit</a></td></tr>';
               }
            }            
            
            strResults += '</table>';
            jQuery('#member_search_results').html(strResults);
         }
         else {
            jQuery('#member_search_results').html('Your search did not return any results.');
         }
         
         jQuery('#member_search').fadeIn('fast');
      });
   };

   this.deleteGroup = function( index )
   {
      var data = {
         action: 'delete_blackhawk_church_group',
         blackhawk_group_nonce: jQuery("#blackhawk_group_nonce").val(),
         id: index
      };
      
      if( confirm( "Are you sure you want to delete the group led by " + jQuery("#blackhawk_group_row_" + index + " td" ).eq( 0 ).html() ) == true )
         jQuery.post('http://www.blackhawkchurch.org/wp-admin/admin-ajax.php', data, function(response) {
            jQuery("#blackhawk_group_row_" + index ).remove();
            jQuery("#blackhawk_groups tr" ).each( function( index, element ) { 
               if( index == 0 ) return;
               row = index;
               jQuery(this).children( "td:lt(2)" ).each( function( index, element ) {
                  if( row % 2 == 1 )
                  {
                     jQuery(this).removeClass( "blackhawk_group_row_odd" );
                     jQuery(this).addClass( "blackhawk_group_row_even" );
                  }
                  else
                  {
                     jQuery(this).removeClass( "blackhawk_group_row_even" );
                     jQuery(this).addClass( "blackhawk_group_row_odd" );
                  }
               });
            });
         });
         
   };

   this.saveGroup = function()
   {
      jQuery('#meeting_time').val(jQuery('#meeting_time').val()+':00');      
      jQuery('#meeting_time_end').val(jQuery('#meeting_time_end').val()+':00');      
   
      var data = {
         action: 'save_blackhawk_church_group',
         blackhawk_group_nonce: jQuery("#blackhawk_group_nonce").val()
      };
      jQuery("#blackhawk_church_group_editor").find( ":input" ).each( function(index, element) {
         data[jQuery(this).attr( "id" )] = jQuery(this).val();      
      });
      
      jQuery.post('http://www.blackhawkchurch.org/wp-admin/admin-ajax.php', data, function(response) {
         jQuery("#debugtext").val( response );
         responseObj = JSON.parse( response );
         group = responseObj.group[0];
         html = "";
         
         if( group.max_group_capacity <= responseObj.members.length ) {
            html += group.leader_last_name + ", " + group.leader_first_name;
            if (group.leader2_last_name != '') {
               html += " and " + group.leader2_last_name + ", " + group.leader2_first_name + " (full)";
            } else {
               html += " (full)";
            }
         } else {
            html += group.leader_last_name + ", " + group.leader_first_name;
            if (group.leader2_last_name != '') {
               html += " and " + group.leader2_last_name + ", " + group.leader2_first_name + "";
            }
         }
         
         if( jQuery("#blackhawk_group_row_"+ group.id ).length > 0 )
         {   
            jQuery("#blackhawk_group_row_" + group.id + " td" ).eq( 0 ).html( html );
            jQuery("#blackhawk_group_row_" + group.id + " td" ).eq( 1 ).html( fixDate( group.last_update ) );
         }
         else
         {
            className = jQuery("#blackhawk_groups").get( 0 ).rows.length % 2 == 1 ? "blackhawk_group_row_even" : "blackhawk_group_row_odd";
            jQuery("#blackhawk_groups tr:last").after(
               '<tr id="blackhawk_group_row_' + group.id + '">' + 
               "<td class=\"" + className + "\">" + html + "</td>" + 
               "<td class=\"" + className + "\">" + fixDate( group.last_update ) + "</td>" +
               "<td><a href='javascript:blackhawkChurchPlugin.editGroup( " + group.id + " )'>edit</a></td>" +
               "<td><a href='javascript:blackhawkChurchPlugin.deleteGroup( " + group.id + " )'>delete</a></td>" + 
               "</tr>"
               );
         }
            
         
      });
      this.closeGroup();
   };
   
   this.closeGroup = function()
   {
      jQuery("#group_members").html( "" );
      jQuery("#blackhawk_church_group_queue").html( "" );
      jQuery("#blackhawk_church_group_contact_info").html( "" );
      
      
      jQuery("#blackhawk_church_group_editor").hide();
      jQuery("#blackhawk_groups").show();
      jQuery("#add_blackhawk_group").show();
      
      jQuery("#search_members").show();
      jQuery("#search_table").show();
      jQuery("#member_search").show();
      
      scrollTo( 0, 0 );
   };

   this.editGroup = function( index )
   {
      var data = {
         action: 'edit_blackhawk_church_group',
         group_id: index,
         blackhawk_groups_nonce: jQuery("#blackhawk_groups_nonce").val()
      };
   
      jQuery.post('http://www.blackhawkchurch.org/wp-admin/admin-ajax.php', data, function(response) {
         responseObj = JSON.parse( response );
         if( responseObj.group.length > 0 )
         {
            for( var field in responseObj.group[0] )
            {
               jQuery("#" + field ).val( responseObj.group[0][field] );
            }
            
            var strTime = jQuery('#meeting_time').val();
            var arrTime = strTime.split(':');
            jQuery('#meeting_time').val(arrTime[0]+':'+arrTime[1]);
            
            var strTimeEnd = jQuery('#meeting_time_end').val();
            if (strTimeEnd.indexOf(':') != -1) {
               var arrTimeEnd = strTimeEnd.split(':');
               jQuery('#meeting_time_end').val(arrTimeEnd[0]+':'+arrTimeEnd[1]);
            } else {
               jQuery('#meeting_time_end').val(arrTime[0]+':'+arrTime[1]);
            }
            
            jQuery("#group_id" ).val( responseObj.group[0].id );
            jQuery("#blackhawk_group_image").attr( "src", responseObj.group[0]["image_location"] );
              
            if( responseObj.group[0]["image_location"] == "" || responseObj.group[0]["image_location"] == null )
               jQuery("#blackhawk_group_image_container").hide();
            else 
               jQuery("#blackhawk_group_image_container").show();
              
            membersHTML = "";
            signupHTML = "";
            contactHtml = "";
            //jQuery("#debugtext" ).val( response );
            for( var i = 0; i < responseObj.members.length; i++ )
            {
               if( responseObj.members[i].pending == 0 )
                  membersHTML += getMemberHTML( responseObj.members[i], responseObj.group[0].id, i ); 
               else
               {
                  if( i % 2 == 0 )
                     signupHTML += signupQueueHTML( responseObj.members[i], responseObj.group[0].id, "blackhawk_signup_queue_even", i );
                  else
                     signupHTML += signupQueueHTML( responseObj.members[i], responseObj.group[0].id, "blackhawk_signup_queue_odd", i );
               }
               contactHtml += "<div class='apple_overlay' id='contact_info_" + responseObj.members[i].id + "'>" + contactInfoHTML( responseObj.members[i], 'blackhawkChurchPlugin.updateMember( ' + responseObj.members[i].id + ', this );' ) + "</div>"
            }
            jQuery("#group_members").html( membersHTML );
            jQuery("#blackhawk_church_group_queue").html( signupHTML );
            jQuery("#blackhawk_church_group_contact_info").html( contactHtml );
            jQuery("#blackhawk_manual_signup").html( 
               contactInfoHTML() + 
               '<div style="text-align: center" >' +
               '<input type="button" value="Submit" onclick="blackhawkChurchPlugin.addNewUserToGroup()" />' +
               '</div>' 
               );
         }
           
         jQuery("#search_members").hide();
         jQuery("#search_table").hide();
         jQuery("#member_search").hide();
         jQuery("#blackhawk_church_group_editor").show();
         jQuery("#blackhawk_groups").hide();
         jQuery("#add_blackhawk_group").hide();
         jQuery( "#members_row" ).show();
         jQuery( "#members_title" ).height( Math.max( jQuery( "#group_members" ).height(), 60 ) );

         jQuery( ".staff_notes" ).each( function( index, element ) {
            jQuery(this).height( Math.max( jQuery( this ).next().height(), 20 ) );
            jQuery(this).height( Math.max( jQuery( this ).next().height(), 20 ) );
         });
         jQuery( ".availability" ).each( function( index, element ) {
            jQuery(this).height( Math.max( jQuery( this ).next().height(), 20 ) );
            jQuery(this).height( Math.max( jQuery( this ).next().height(), 20 ) );
         });

         jQuery(".contact_name").each( function( index, element ){
            jQuery(this).overlay({
               effect: 'tms_apple'
            });
         } );
         scrollTo( 0, 0 );

            
         var data2 = {
            action: 'get_group_count',
            id: responseObj.group[0].id
         };
      
         jQuery.post('http://www.blackhawkchurch.org/wp-admin/admin-ajax.php', data2, function(response) {
            var spotsLeft = jQuery('#max_group_capacity').val() - response;

            if( spotsLeft <= 0 ) {
               jQuery("#group_spots_available").html( "full" );
            } else if( spotsLeft == 1 ) {
               jQuery("#group_spots_available").html("1 spot available" );
            } else {
               jQuery("#group_spots_available").html( spotsLeft + " spots available" );
            }
         });            
      });
        
   };
   
   this.saveGroupFront = function()
   {
      jQuery('#meeting_time').val(jQuery('#meeting_time').val()+':00');      
      jQuery('#meeting_time_end').val(jQuery('#meeting_time_end').val()+':00');      
   
      var data = {
         action: 'save_blackhawk_church_group',
         blackhawk_group_nonce: jQuery("#blackhawk_group_nonce").val()
      };
      jQuery("#blackhawk_church_group_editor").find( ":input" ).each( function(index, element) {
         data[jQuery(this).attr( "id" )] = jQuery(this).val();      
      });
      
      jQuery.post('http://www.blackhawkchurch.org/wp-admin/admin-ajax.php', data, function(response) {
         jQuery("#debugtext").val( response );
         responseObj = JSON.parse( response );
         group = responseObj.group[0];
         if( group.max_group_capacity <= responseObj.members.length ) {
            html = group.leader_last_name + ", " + group.leader_first_name;
            if (group.leader2_last_name != '') {
               html += " and " + group.leader2_last_name + ", " + group.leader2_first_name + " (full)";
            } else {
               html += " (full)";
            }
         } else {
            html = group.leader_last_name + ", " + group.leader_first_name;
            if (group.leader2_last_name != '') {
               html += " and " + group.leader2_last_name + ", " + group.leader2_first_name + "";
            }
         }
         if( jQuery("#blackhawk_group_row_"+ group.id ).length > 0 )
         {   
            jQuery("#blackhawk_group_row_" + group.id + " td" ).eq( 0 ).html( html );
         }
         else
         {
            className = jQuery("#blackhawk_groups").get( 0 ).rows.length % 2 == 1 ? "blackhawk_group_row_even" : "blackhawk_group_row_odd";
            jQuery("#blackhawk_groups tr:last").after(
               '<tr id="blackhawk_group_row_' + group.id + '">' + 
               "<td class=\"" + className + "\">" + html + "</td>" + 
               "<td><a href='javascript:blackhawkChurchPlugin.editGroup( " + group.id + " )'>edit</a></td>" +
               "<td><a href='javascript:blackhawkChurchPlugin.deleteGroup( " + group.id + " )'>delete</a></td>" + 
               "</tr>"
               );
         }
            
         
      });
      this.closeGroup();
   };
   
   this.editGroupFront = function( index )
   {
      var data = {
         action: 'edit_blackhawk_church_group',
         group_id: index,
         blackhawk_groups_nonce: jQuery("#blackhawk_groups_nonce").val()
      };
   
      jQuery.post('http://www.blackhawkchurch.org/wp-admin/admin-ajax.php', data, function(response) {
         responseObj = JSON.parse( response );
         if( responseObj.group.length > 0 )
         {
            for( var field in responseObj.group[0] )
            {
               jQuery("#" + field ).val( responseObj.group[0][field] );
            }
            
            var strTime = jQuery('#meeting_time').val();
            var arrTime = strTime.split(':');
            jQuery('#meeting_time').val(arrTime[0]+':'+arrTime[1]);
            
            var strTimeEnd = jQuery('#meeting_time_end').val();
            if (strTimeEnd.indexOf(':') != -1) {
               var arrTimeEnd = strTimeEnd.split(':');
               jQuery('#meeting_time_end').val(arrTimeEnd[0]+':'+arrTimeEnd[1]);
            } else {
               jQuery('#meeting_time_end').val(arrTime[0]+':'+arrTime[1]);
            }
            
            jQuery("#group_id" ).val( responseObj.group[0].id );
            jQuery("#blackhawk_group_image").attr( "src", responseObj.group[0]["image_location"] );
              
            if( responseObj.group[0]["image_location"] == "" || responseObj.group[0]["image_location"] == null )
               jQuery("#blackhawk_group_image_container").hide();
            else 
               jQuery("#blackhawk_group_image_container").show();
              
            var spotsLeft = responseObj.group[0].max_group_capacity - responseObj.group[0].group_size;
            if( spotsLeft <= 0 )
               jQuery("#group_spots_available").html( "full" );
            else if( spotsLeft == 1 )
               jQuery("#group_spots_available").html("1 spot available" );
            else
               jQuery("#group_spots_available").html( spotsLeft + " spots available" );
            membersHTML = "";
            contactHtml = "";
            //jQuery("#debugtext" ).val( response );
            for( var i = 0; i < responseObj.members.length; i++ )
            {
               if( responseObj.members[i].pending == 0 )
                  membersHTML += getMemberHTMLFront( responseObj.members[i], responseObj.group[0].id, i ); 
               contactHtml += "<div class='apple_overlay' id='contact_info_" + responseObj.members[i].id + "'>" + contactInfoHTML( responseObj.members[i], 'blackhawkChurchPlugin.updateMember( ' + responseObj.members[i].id + ', this );' ) + "</div>"
            }
            jQuery("#group_members").html( membersHTML );
            jQuery("#blackhawk_church_group_queue").html( "" );
            jQuery("#blackhawk_church_group_contact_info").html( contactHtml );
            jQuery("#blackhawk_manual_signup").html( 
               contactInfoHTML() + 
               '<div style="text-align: center" >' +
               '<input type="button" value="Submit" onclick="blackhawkChurchPlugin.addNewUserToGroup()" />' +
               '</div>' 
               );
         }
           
         jQuery("#search_members").hide();
         jQuery("#search_table").hide();
         jQuery("#member_search").hide();
         jQuery("#blackhawk_church_group_editor").show();
         jQuery("#blackhawk_groups").hide();
         jQuery("#add_blackhawk_group").hide();
         jQuery( "#members_row" ).show();
         jQuery( "#members_title" ).height( Math.max( jQuery( "#group_members" ).height(), 60 ) );

         jQuery( ".staff_notes" ).each( function( index, element ) {
            jQuery(this).height( Math.max( jQuery( this ).next().height(), 20 ) );
            jQuery(this).height( Math.max( jQuery( this ).next().height(), 20 ) );
         });
         jQuery( ".availability" ).each( function( index, element ) {
            jQuery(this).height( Math.max( jQuery( this ).next().height(), 20 ) );
            jQuery(this).height( Math.max( jQuery( this ).next().height(), 20 ) );
         });

         jQuery(".contact_name").each( function( index, element ){
            jQuery(this).overlay({
               effect: 'tms_apple'
            });
         } );
         scrollTo( 0, 0 );

            
            
      });
        
   };
   
   this.removeImage = function()
   {
   
      var data = {
         action: 'remove_blackhawk_group_image',
         group_id: jQuery( "#group_id" ).val()
      };
      
      jQuery.post('http://www.blackhawkchurch.org/wp-admin/admin-ajax.php', data, function(response) {
         jQuery("#blackhawk_group_image").attr( "src", "" );
         jQuery("#blackhawk_group_image_container").hide();
      });
         
   };

   this.addGroup = function()
   {
   
      jQuery("#blackhawk_church_group_editor").find( ":input[type='text']" ).val( "" );
      jQuery("#group_description").val( "" );
      jQuery("#group_id").val( -1 );
      jQuery("#group_type").val( 1 );
      jQuery("#group_gender").val( "Male" );
      jQuery("#meeting_time").val( "9:00" );
      jQuery("#meeting_time_am").val( "AM" );
      jQuery("#meeting_time_end").val( "10:00" );
      jQuery("#meeting_time_end_am").val( "AM" );
      jQuery("#meeting_day").val( "Mon" );
      jQuery("#meeting_location").val( 1 );
      jQuery("#max_group_capacity").val( 20 );
      jQuery("#worship_location").val( "Blackhawk Brader Way" );
      jQuery("#group_members").html( "&nbsp;" );
      jQuery("#blackhawk_church_group_editor").show();
      jQuery("#blackhawk_groups").hide();
      jQuery("#members_row").hide();
      jQuery("#add_blackhawk_group").hide();
      
   };
   
   this.addToGroup = function( member, group, index )
   {
      //alert( member + ", " + group + ", " + index );
      var data = {
         action: 'add_blackhawk_member_to_group',
         group_id: group,
         id: member
      };

      
      jQuery.post('http://www.blackhawkchurch.org/wp-admin/admin-ajax.php', data, function(response) {
         jQuery( "#signup_queue_" + member ).remove();
         responseObj = JSON.parse( response );
         jQuery("#group_members").append( getMemberHTML( responseObj.member[0], group, index ) );
         jQuery(".contact_name").each( function( index, element ){
            jQuery(this).overlay({
               effect: 'tms_apple'
            });
         } );

         jQuery( "#members_title" ).height( Math.max( jQuery( "#group_members" ).height(), 60 ) );
         
         var data2 = {
            action: 'get_group_count',
            id: group
         };
      
         jQuery.post('http://www.blackhawkchurch.org/wp-admin/admin-ajax.php', data2, function(response) {
            var spotsLeft = jQuery('#max_group_capacity').val() - response;
            if( spotsLeft <= 0 ) {
               jQuery("#group_spots_available").html( "full" );
            } else if( spotsLeft == 1 ) {
               jQuery("#group_spots_available").html("1 spot available" );
            } else {
               jQuery("#group_spots_available").html( spotsLeft + " spots available" );
            }
         
         });      
      });
   }
   

   this.removeFromGroup = function( member, group, index )
   {
      var data = {
         action: 'remove_blackhawk_member_from_queue',
         group_id: group,
         id: member
      };

      if( confirm( "Are you sure you want to delete the member " + jQuery("#signup_queue_" + member + " .contact_name" ).html() ) == true )
         jQuery.post('http://www.blackhawkchurch.org/wp-admin/admin-ajax.php', data, function(response) {
            if( jQuery("#signup_queue_" + member ).parent().parent().attr( "id" ) == "group_members" ) 
            {
               jQuery( "#signup_queue_" + member ).parent().remove();
               jQuery( "#members_title" ).height( Math.max( jQuery( "#group_members" ).height(), 60 ) );
            }
            else 
            {
               jQuery( "#signup_queue_" + member ).remove();
            }
            
            var data2 = {
               action: 'get_group_count',
               id: group
            };
      
            jQuery.post('http://www.blackhawkchurch.org/wp-admin/admin-ajax.php', data2, function(response) {
               var spotsLeft = jQuery('#max_group_capacity').val() - response;
            if( spotsLeft <= 0 ) {
               jQuery("#group_spots_available").html( "full" );
            } else if( spotsLeft == 1 ) {
               jQuery("#group_spots_available").html("1 spot available" );
            } else {
               jQuery("#group_spots_available").html( spotsLeft + " spots available" );
            }
         
            });
      
         });
      
   }
   
   var deltaSpotsLeft = function( delta )
   {
      var spotsLeftStr = jQuery("#group_spots_available").html();
      if( spotsLeftStr != "full" ) 
      {
         var spotsLeft = parseInt( spotsLeftStr );
         spotsLeft += delta;
         if( spotsLeft == 0 )
            jQuery("#group_spots_available").html( "full" );
         else if( spotsLeft == 1 )
            jQuery("#group_spots_available").html( "1 spot available" );
         else
            jQuery("#group_spots_available").html( spotsLeft + " spots available" );
      }
   }
   
   this.addNewUserToGroup = function()
   {
      var data = {
         action: 'add_new_blackhawk_member_to_group'
      };

      jQuery("#blackhawk_church_group_editor").find( ":input" ).each( function(index, element) {
         data[jQuery(this).attr( "id" )] = jQuery(this).val();
      });
      

      jQuery.post('http://www.blackhawkchurch.org/wp-admin/admin-ajax.php', data, function(response) {
         jQuery(".contact_name").data("overlay").close();
         responseObj = JSON.parse( response );
         jQuery("#group_members").append( getMemberHTML( responseObj.member[0], data['group_id'], 0 ) );
         jQuery("#blackhawk_church_group_contact_info").append( 
            "<div class='apple_overlay' id='contact_info_" + responseObj.member[0].id + "'>" + contactInfoHTML( responseObj.member[0], 'blackhawkChurchPlugin.updateMember( ' + responseObj.member[0].id + ', this );' ) + "</div>" );
         jQuery( "#members_title" ).height( Math.max( jQuery( "#group_members" ).height(), 60 ) );
         
         jQuery(".contact_name").each( function( index, element ){
            jQuery(this).overlay({
               effect: 'tms_apple'
            });
         } );
         

         var data2 = {
            action: 'get_group_count',
            id: group
         };
      
         jQuery.post('http://www.blackhawkchurch.org/wp-admin/admin-ajax.php', data2, function(response) {
            var spotsLeft = jQuery('#max_group_capacity').val() - response;
            if( spotsLeft <= 0 ) {
               jQuery("#group_spots_available").html( "full" );
            } else if( spotsLeft == 1 ) {
               jQuery("#group_spots_available").html("1 spot available" );
            } else {
               jQuery("#group_spots_available").html( spotsLeft + " spots available" );
            }
         
         });        
      });
   }
   
   this.updateMember = function ( member, input )
   {
      var data = {
         action: 'update_blackhawk_member_data',
         field: jQuery( input ).attr( "id" ),
         value: jQuery( input ).val(),
         member: member
      };
      jQuery.post('http://www.blackhawkchurch.org/wp-admin/admin-ajax.php', data, function(response) {
         if( data.field == "staff_notes" || data.field == "availability" || data.field == "car" )
         {
            jQuery("#signup_queue_" + member + " #" + data.field ).html( data.value );
            alert( data.value );
         }

         jQuery( ".staff_notes" ).each( function( index, element ) {
            jQuery(this).height( Math.max( jQuery( this ).next().height(), 20 ) );
            jQuery(this).height( Math.max( jQuery( this ).next().height(), 20 ) );
         });
         jQuery( ".availability" ).each( function( index, element ) {
            jQuery(this).height( Math.max( jQuery( this ).next().height(), 20 ) );
            jQuery(this).height( Math.max( jQuery( this ).next().height(), 20 ) );
         });
      });
   }
}

jQuery(document).ready(function() { 
   if (jQuery('#send_email').length) {
      var uploader = new AjaxUpload(
         "blackhawk_group_image_location",
         {
            action : 'http://www.blackhawkchurch.org/wp-admin/admin-ajax.php',
            name : 'group_image_location',
            autoSubmit : true,
            data : {
               name : "group_image_location",
               action : "blackhawk_church_upload_group_image"
            },
            onSubmit : function (file, extension) {
               uploader.setData({
                  name : "group_image_location",
                  action : "blackhawk_church_upload_group_image",
                  group_id: $('#group_id').val()
               });
            },
            onComplete : function( file, response )
            {
               responseObj = JSON.parse( response );
               if( !responseObj.success )
                  alert( responseObj.errorMessage );
               else
               {
                  d = new Date();
                  jQuery("#blackhawk_group_image").attr( "src", responseObj.url + "?timestamp=" + d.getTime() );
                  jQuery("#blackhawk_group_image_container").show();
               }
            }
         } );
   }
});

blackhawkChurchPlugin = new BlackhawkChurchPlugin();
