// Main JS file for recoverydate.com with binds for ajax and other various functions

$.ajaxSetup({
    beforeSend: showLoadGraphic(this),
    url: "/profile/ajax",
    dataType: "json",
    type: "POST"
});

var msie = false;

$(document).ready(function(){
    
    //$(document).pngFix(); 
    
    $(".add-friend").bind("click", function(e) {
        e.preventDefault();
        var ele = this;
        $.ajax({
            url: "/profile/ajax/add_friend",
            data: "fid=" + $(this).attr("name"),
            success: function(json, text) {
				$("#dialog").html(json.message).dialog({
				    title: "Success",
				    autoOpen: true,
				    //show: "slide",
				    buttons: {
				        "OK" : function() {
				            $(this).dialog('close'); 
				        } 
				    } 
				}).dialog('open');

			},
			error: function(x,y,z) {
			 alert(x + y + z);
			}
        });  // end of ajax call    
    });


    $("a.approve-friend").bind("click", function(e) {
        e.preventDefault();
        var id = $(this).attr("name");
        var ele = this;
        $.ajax({
            url: "/profile/ajax/approve_friend",
            data: "fid=" + id,
            success: function(data, text) {
              callbackFadeDiv(ele, id, "friend-div");
              //updateNotificationCount();
            }
        });  // end of ajax call
    });

    $("a.deny-friend").bind("click", function(e) {
        e.preventDefault();

        var id = $(this).attr("name");
        var ele = this;
        $.ajax({
            url: "/profile/ajax/deny_friend",
            data: "fid=" + id,
            success: function(data, txt) {
              callbackFadeDiv(ele, id, "friend-div");
              //updateNotificationCount();
            }
        });  // end of ajax call
    });
    
    $(".send-message").bind("click", function(e) {
        e.preventDefault();        
        var id = $(this).attr("name");
        
        $.ajax({
            url: "/messaging/ajax/check_auth",
            data: "mid=" + id,
            success: function(json, text) {
                if (json.success == false) {
                    window.location.href = 'https://secure.recoverydate.com';
                } else {
                    sendMessageDialog(id);
                }
            }
        });  // end of ajax call
    });

    $(".closed-thread").bind("click",function(){
        var thread = $(this);
        $.ajax({
            url: "/messaging/thread",
            dataType: "html",
            data: "thread=" + $(thread).attr('id'),
            success: function(data, text) {
                if (data == 'DENIED') {
                    window.location.href = 'https://secure.recoverydate.com';
                } else {
                    $(thread).after(data);
                    $(thread).css('display','none');
				}
			}
        });
        
        updateNotificationCount();
        return false;
    });
/*    
    $(".reply-to-thread").bind("click",function(){
        var thread = $(this).parent();
        $.ajax({
            url: "/messaging/thread",
            dataType: "html",
            data: "thread=" + $(thread).attr('id'),
            success: function(data, text) {
				if (data == 'DENIED') {
                    window.location.href = 'https://secure.recoverydate.com';
                } else {
                    $(thread).after(data);
                    $(thread).css('display','none');
				}
			}
        });
        
        updateNotificationCount();
        return false;
    });
*/    
    $(".message-profile-link").bind('click', function(e) {
        e.stopPropagation();
        var url = $(this).attr('href');
        window.location.href = url;
    });
    
    
    
    $(".edit-profile").live('click', function(e) { 
        e.preventDefault();
        $("#profile-inner-right").hide();
        $("#account-edit").hide();
        $("#profile-edit").show();
    });

    $(".cancel-edit").bind('click', function(e) {
        e.preventDefault();
        $("#profile-inner-right").show();
        $("#profile-edit").hide();
        $("#account-edit").hide();
    });

    $("#update-profile").bind('click', function(e) {
        e.preventDefault();
        $.ajax({
            url: "/profile/edit/edit_profile",
            dataType: "html",
            data: $("#edit-profile-form").serialize(),
            success: function(html, text) {
				if (html != '') {
				    $("#profile-inner-right").html(html);
				    $("#profile-inner-right").show();
                    $("#profile-edit").hide();
                    $("#account-edit").hide();

                    $("#profile-message-pane").removeClass('error-pane').addClass('success-pane').html('Updated Successfully!').fadeIn();
                    setTimeout('$("#profile-message-pane").fadeOut();', 2000);
				}
			}
        });
    
    });

    $(".edit-account").bind('click', function(e) { 
        e.preventDefault();
        $("#profile-inner-right").hide();
        $("#profile-edit").hide();
        $("#account-edit").show();
    });
    
    $(".cancel-account-edit").bind('click', function(e) { 
        e.preventDefault();
        $("#profile-inner-right").show();
        $("#profile-edit").hide();
        $("#account-edit").hide();
    });

    $("#update-account").bind('click', function(e) { 
        e.preventDefault();
        $.ajax({
            url: "/profile/edit/edit_account",
            data: $("#edit-account-form").serialize(),
            success: function(json, text) {
				$("#profile-inner-right").show();
                $("#account-edit").hide();
                $("#profile-edit").hide();
                if (json.success) {
                    $("#profile-message-pane").removeClass('error-pane').addClass('success-pane').html('Updated Successfully!').fadeIn();
                    setTimeout('$("#profile-message-pane").fadeOut();', 2000);
                } else {
                    $("#profile-message-pane").removeClass('success-pane').addClass('error-pane').html(json.message).fadeIn();
                    setTimeout('$("#profile-message-pane").fadeOut();', 2000);
                }
            }
        });
    });

    $(".set-primary").livequery('click', function(e) {
        e.preventDefault();
        var mediaId = $(this).attr('name');
        var ele = this;
        
        if (confirm('Make picture default image?')) {
            $.ajax({
                url: "/profile/ajax/update_profile",
                data: "media_id=" + mediaId,
                success: function(json, text) {
                    if (json.success) {
                        //alert('done');
                        $("#profile-image").attr('src', json.img_url);
                        $("#profile-icon").attr('src', json.icon_url);
                    }
                }
            });
        }
    });
    
    $(".switch-profile-image").livequery('click', function(e) {
        e.preventDefault();
        var imageUrl = $(this).attr('name');

        if (imageUrl) {
            $("#profile-image").attr('src', imageUrl);
        }
    
    });
    
    $(".remove-pic").livequery('click', function(e) {
        e.preventDefault();
        var mediaId = $(this).attr('name');
        var ele = this;
        
        if (confirm('Remove picture?')) {
            $.ajax({
                url: "/profile/ajax_html/remove_photo",
                dataType: "html",
                data: "media_id=" + mediaId,
                success: function(html, text) {
                    $("#profile-thumbs").html(html);
                    
                    if ($("#_pImage").val()) {
                        $("#profile-image").attr('src', $("#_pImage").val());
                        $("#profile-icon").attr('src', $("#_pIcon").val());
                    }
                }
            });
        }
    });
    
    $("a.dlt-msg-thread").bind("click", function(e) {
        e.preventDefault();

        if(confirm("Delete Message Thread?")) {
            var thid = $(this).attr("name");
            var ele = this;
            
            $.ajax({
                url: "/messaging/delete",
                data: "thid=" + thid,
                //beforeSend: showLoadGraphic(this),
                success: function(data, text) {
                  callbackFadeDiv(ele, thid, "");
                }
            });
        }
        return false;
    });

    $(".remove-friend").bind("click", function(e) {
        e.preventDefault();

        var mid = $(this).attr("name");
    	var ele = this;

    	if (confirm("Remove Friend?")) {
            $.ajax({
                url: "/profile/ajax/remove_friend", 
                data: "mid=" + mid,
                success: function (data, text) {
                    if (data.success) {
                        callbackFadeDiv(ele, mid, "friend_");
                    } else {
                      callbackReplaceLink(data.message, text, ele);
                    }
    			} 
       	 	});
   	 	}
    });


    $("#login-input").bind('click', function(e) { 
        $(this).val('');    
    });
    
    $(".block-user").bind("click", function(e) {
        e.preventDefault();
        
        var str = $(this).attr("name");
        var tmp = str.split('.');
        var mid = tmp[0];
        var thid = tmp[1];
        
        var divPrefix = tmp[2] ? tmp[2] : '';
        
    	var ele = this;

    	if (confirm("Block/Un-Block User?")) {
            $.ajax({
                url: "/profile/ajax/block_user", 
                data: "mid=" + mid,
                success: function (json, text) {
                    if (json.success) {
                        callbackFadeDiv(ele, thid, divPrefix);
                    }
                    //hideLoadGraphic(ele);
    			} 
       	 	});
   	 	}
    });

    $("a#deactivate-account").bind("click", function(e) {
        e.preventDefault();

        if(confirm("Deactivate Account?")) {
        	window.location.href = "/profile/disable";
        }
    });


}); /////////////////////////////////////////////////////////////////////////////////////////////////////////// // end document.ready()


function sendMessage(id) {
    var data = $("#send-message-form").serialize();

    $.ajax({
        url: "/messaging/ajax/send",
        data: "mid=" + id + "&" + data,
        success: function(json, txt) {
            if (json.success) {
                alert('Message Sent!');
            } else {
                alert(json.message);
            }
        }
    
    });


}

function updateNotificationCount() {}

function showLoadGraphic(ele) {

}

function hideLoadGraphic(ele) {

}


function callbackFadeDiv(e, divId, type) {
    //hideLoadGraphic(e);
    $("#" + type + divId).fadeOut(1000);
}

function replyToMessage(form) {
    var payload = "";
    var textarea = $("form[name='" + form + "']").find("textarea");
    var form_dom = document.forms[form];
    var quicky = $("form[name='" + form + "']").find("select");

	for (var i = 0; i < form_dom.elements.length; i++) {
        if (payload != "") {
        	payload += "&";
        }

		if (form_dom.elements[i].value) {
            payload += encodeURIComponent(form_dom.elements[i].name) + "=" + encodeURIComponent(form_dom.elements[i].value);
		}
	}

    if (textarea.val() || quicky.val() != 0) {
    	$.ajax({
            type: "POST",
            url: "/messaging/ajax/send",
            data: payload,
            dataType: "html",
            success: function(data, text) {
                updateThread(data, form);
            }
        });  // end of ajax call
    }
}

function updateThread(html, form ) {
    $("form[name='" + form + "']").parent().parent().parent().parent().html(html);
}

function updateProfilePics(e, data) {
    $.ajax({
        type: "GET",
        url: "/profile/ajax_html/profile_photos",
        dataType: "html",
        success: function(html, text) {
            $("#profile-thumbs").html(html);
            tb_remove();
        }
    });  // end of ajax call
}

function cancelProfileUpload() {
tb_remove();
    $("#uploadify").uploadifyClearQueue();
    $("#upload-instructions").show();
    
}

function paginateThread(ele, id) {
    var page = $(ele).attr("name");
    var threadId = id;

    $.ajax({
        type: "POST",
        url: "/messaging/thread",
        data: "thread=" + threadId + "&page=" + page + "&refresh=true",
        dataType: 'html',
        /*
        beforeSend: function() {
            $("#comments-paged-content").html('<br class="clear-fix" /><img src="http://media.intherooms.com/images/general/ajax-loader.gif" style="border:0;" alt="loading" /><br class="clear-fix" />');
        },
        */
        success: function(html, msg) {
            callbackPageThread(html, msg, threadId);
        }
    });
}

function callbackPageThread(html, msg, threadId) {
    $("#thread_id-" + threadId).html(html);
}

function updateUserFlag(data) {
    $.ajax({
        url: "/profile/ajax/update_user_flag",
        data: "flag=" + data,
        success: function(json, text) {
            tb_remove();
        }
    });  // end of ajax call
}

function sendMessageDialog(id) {
    var html = '<form action="/messaging/ajax/send" method="post" id="send-message-form"><select name="quicky"><option value="" selected="selected">Quick Message</option><option value="0">Whats up?</option><option value="1">I like your profile, want to chat sometime?</option><option value="2">Check out my profile!</option><option value="3">We should hang out sometime!</option></select><br/><p>Message:</p><textarea name="message" class="msg-txt" id="msg-txt-id"/></form>';
    
    $("#dialog2").html(html).dialog({
        title: "Success",
        autoOpen: true,
        //show: "slide",
        modal: false,
        width: 450,
        height: 250,
        buttons: {
            "Cancel" :  function() {
                $(this).dialog('close');
            },
            "Send" : function() {
                sendMessage(id);
                $(this).dialog('close'); 
            }
        } 
    }).dialog('open');
}

