/**
 * Handles My Crew
 */

(function(){
    if(!window.cs) {
        return;
    }
    
    var myCrew = window.cs.myCrew = {
        // default options/settings
        empty: null
    };
    
    myCrew.init = function() {
        // initialize default actions
        $("#myCrewContainer").tabs({selected: 1});
    };
    
    myCrew.buildCrewInit = function() {
        // initialize default actions
        $('#buildCrew_form').keypress(function(e) {
        	if(e.keyCode == 13) {
        		myCrew.addEmail();
        	}
        });        
    };    
    
    // Removes Row from Crew Members once confirmed
    myCrew.removeCrewMemberRow = function(userID, obj) {
        $(obj).removeAttr('onclick');
        $.getJSON('/removeMember.json?userID='+userID,
            function(json) {
                if (json.success == true) {
                    $('#member-'+userID).slideUp("slow").removeClass("member");
                    
                    $('#member-'+userID).parent().children('.member').each(function(i){
                       if(i % 2 == 0) {
                            $(this).attr("class","member");
                       } else {
                            $(this).attr("class","member alt");
                       }
                    });
                } else {
                    $(obj).click(function() {return cs.myCrew.removeCrewMemberRow(userID, obj);});
                    cs.lightbox.message(json.message, 'Remove Crew Member Error');
                }
            });
        
        return false;
    }    

    // Launches Group Member Editor
    myCrew.editGroup = function(groupID) {
        $('#group-'+groupID).hide();
        $('#group-edit-'+groupID).show().load('/myCrew_group.php?groupID='+groupID, {}, function(){
            $('#liveSearch-'+groupID).liveUpdate('#yourCrew-'+groupID);
        });
        window.location = '#crewGroupEdit';
        return false;
    } 
    
    // Removes Group from Group Tab confirmed
    myCrew.removeGroupRow = function(groupID) {
        $.getJSON('/removeGroup.json?groupID='+groupID,
            function(json) {
                if (json.success == true) {
                    $('#group-'+groupID).slideUp("slow").removeClass("group");
                    
                    $('#group-'+groupID).parent().children('.group').each(function(i){
                       if(i % 2 == 0) {
                            $(this).attr("class","group");
                       } else {
                            $(this).attr("class","group alt");
                       }
                    });
                } else {
                    cs.lightbox.message(json.message, 'Remove Group Error');
                }
            });
        
        return false;
    }    
    
    // Moves User From Crew to Group
    myCrew.addToGroup = function(groupID,userID) {
        
        // Start Loader Animation
        var t = setTimeout("$('#group-edit-"+groupID+" .loader-light').show()",100);
        
        $.getJSON('/addToGroup.json?userID='+userID+'&groupID='+groupID,
            function(json){
                if(json.success == true) {
                    clearTimeout(t);
                    
                    // Hides User Once Added To Group
                    $('#member-'+groupID+'-'+userID).remove();
                    
                    // Adds User To Group List
                    $('#groupMembersList-'+groupID).append('<li id="groupMember-'+groupID+'-'+userID+'"><a href="#" class="remove" onclick="return cs.myCrew.removeFromGroup('+groupID+','+userID+')"><span class="img_replace">Remove</span></a><div class="image"><img src="/pictures/small/'+json.avatar+'" alt=""/></div><span class="name">'+json.name+'</span><span class="location">'+json.location+'</span><div class="clear"></div></li>');
                    
                    // Stop Loader Animation                
                    $('#group-edit-'+groupID+' .loader-light').hide();
                    var count = parseInt($("#group-"+groupID+" .countNumber").html());
                    count++;
                    $("#group-"+groupID+" .countNumber").html(count);
                } else {
                    cs.lightbox.message(json.message, 'Add To Group Error');
                }
            }
        );
                
        return false;
    }
    
    // Removes User From Group
    myCrew.removeFromGroup = function(groupID,userID) {

        // Start Loader Animation
        var t = setTimeout("$('#group-edit-"+groupID+" .loader-light').show()",100);

        $.getJSON('/removeFromGroup.json?userID='+userID+'&groupID='+groupID,
            function(json){
                if(json.success == true) {
                    clearTimeout(t);
                    
                    // Hides User Once removed from group
                    $('#groupMember-'+groupID+'-'+userID).remove();
                    
                    // Adds User To Member list
                    $('#yourCrew-'+groupID).append('<li id="member-'+groupID+'-'+userID+'"><a href="#" class="add" onclick="return cs.myCrew.addToGroup('+groupID+','+userID+')"><span class="img_replace">Add</span></a><div class="image"><img src="/pictures/small/'+json.avatar+'" alt=""/></div><span class="name">'+json.name+'</span><span class="location">'+json.location+'</span><div class="clear"></div></li>');
                    
                    // Stop Loader Animation                
                    $('#group-edit-'+groupID+' .loader-light').hide();
                    var count = parseInt($("#group-"+groupID+" .countNumber").html());
                    count--;
                    $("#group-"+groupID+" .countNumber").html(count);
                } else {
                    cs.lightbox.message(json.message, 'Remove Group Member Error');
                }
            }
        );

        return false;
    }
    
    // Build Your Crew - Add Email
    myCrew.addEmail = function() {
        //Checks for Valid Email Address    
        if($('#buildCrew_Email').val().match(﻿/^[A-z0-9\._+-]+@[A-z0-9][A-z0-9-]*(\.[A-z0-9_-]+)*\.([A-z]{2,6})$/)) {
            $.getJSON('/addEmail.json?email='+$('#buildCrew_Email').val(),
                function(json){
                    gotMessage = true;
                    $('#buildCrew_Email_response').find('#buildCrew_Email_Span').html(json.message);
                }
            );
            $('#buildCrew_Email').val("");
            $('#buildCrew_Email_response').fadeIn();
            setTimeout("$('#buildCrew_Email_response').fadeOut()",3000);
        } else {
            $('#buildCrew_Email_response').find('#buildCrew_Email_Span').html('Please enter a valid email address');
            $('#buildCrew_Email').val("");
            $('#buildCrew_Email_response').fadeIn();
            setTimeout("$('#buildCrew_Email_response').fadeOut()",3000);
        }
        return false;
    }
    
    // Build Your Crew - Add Phone
    // Not currently used since add phone functionality has been removed
    myCrew.addPhone = function() {
        $.getJSON('/addPhone.json?phone='+$('#buildCrew_Phone').val(),
            function(json){
                $('#buildCrew_Phone_response').find('#buildCrew_Phone_Span').html(json.message);
            }
        );
        $('#buildCrew_Phone_response').fadeIn();
        setTimeout("$('#buildCrew_Phone_response').fadeOut()",3000) 
        return false;
    }                                           

})();
