$(document).ready(function() {

	if(getCookie('start_click') == "" || getCookie('start_click') == 0){
		setCookie('start_click', new Date().getTime(), 1);
		setCookie('end_click',   new Date().getTime(), 1);
	}

	$(document).bind('click', function(e) {
		setCookie('end_click', new Date().getTime(), 1);
		var startTime = getCookie('start_click');
		var endTime   = getCookie('end_click');
		var timeDiff  = Math.round((endTime - startTime) / 1000);
		var mins = Math.floor(timeDiff / 60);
		if (mins >= 5) {
			if (mins <= 10) {
				$.ajax({
	                url: '/account/update-active-time',
	                type: 'post',
	                data: { mins : mins},
	                success: function(r) {
	                	setCookie('start_click', new Date().getTime(), 1);
	        			setCookie('end_click',   new Date().getTime(), 1);
	                }
	            });
			} else {
				setCookie('start_click', new Date().getTime(), 1);
				setCookie('end_click',   new Date().getTime(), 1);
			}
		}
	});


    //Stats Table sorter
    $("#all-list").tablesorter({sortList:[[1,1]], widgets: ['zebra']});
    $("#stats-sort-weak").tablesorter({sortList:[[0,0],[0,1]], widgets: ['zebra']});

    $("#callContact, #callContact-2").colorbox({width:"700px", height:"500px", href:"contact-us"});
    $("#callReport").colorbox({width:"700px", height:"500px", href:"feedback"});
    $("#qu-feedback >span").colorbox({width:"700px", height:"500px", href: function(){
		return "feedback?qid=" + $(this).html().replace(/\(|\)/g, "");
	}});
    
    $(document).bind('cbox_complete', function(e){
    	var ele = $.fn.colorbox.element();
    });

    var d = new Date();
    var year = parseInt(d.getFullYear());
    $("#dob").datepicker({
        yearRange: ""+year-100+":"+year,
        dateFormat: 'dd MM yy',
        changeMonth: true,
        changeYear: true
    });

    $("#test_date").datepicker({
    	minDate: '0d',
        dateFormat: 'dd MM yy',
        changeMonth: true,
        changeYear: true
    });

    $("#submit-email").click(function() {
        var useremail = trim($("#useremail").val());
        if (check_email(useremail)) {
            $("#email_loader").show();
            $(this).attr({disabled:"disabled"}).css({opacity: '0.3'});
            $.ajax({
                type: "POST",
                url: "/account/forgot-password",
                data: {useremail:useremail},
                dataType: 'json',
                success: function(msg){
                    $("#email_loader").hide();
                    if (msg.status) {
                        addclass = "sucess";
                    } else {
                        addclass = "error";
                    }
                    $("#useremail").val('');
                    $("#stat-msg").addClass(addclass).html(msg.message);
                    $("#submit-email").removeAttr("disabled").css({opacity: '1'});
                    setTimeout(function(){$("#stat-msg").hide();},5000);
                }
            });
        } else {
            alert("Please enter a valid email address");
        }
    });

    $("#reportForm, #contactForm").livequery('submit', function() {
        $(".error").removeClass("error");
        var error_id  = "";
        var error_msg = "";
        var arr = ["username", "useremail", "subject", "message"];
        $.each(arr, function() {
            var value = trim($("#"+this).val());
            if (value == "") {
                error_id = this;
            } else {
                if (this == "useremail") {
                    if (!check_email(value)) {
                        error_id = this;
                    }
                }
            }
            if (error_id != "") {
                return false;
            }
        });
        
        if (error_id != "") {
            $("#"+error_id+"_msg").addClass("error");
            if (error_msg != "") {
                $("#"+error_id+"_msg").text(error_msg);
            }
            $("#"+error_id).focus();
        } else {
            $("#bigloader").show();
            $("#submit-feedback").attr({disabled:"disabled"});

            $.ajax({
                type: "POST",
                url: "save-feedback",
                data: $(this).serialize(),
                dataType: 'json',
                success: function(msg){
                    if (msg.status) {
                        addclass = "sucess";
                    } else {
                        addclass = "error";
                    }
                    $("#message").val('');
                    $("#stat-msg").addClass(addclass).html(msg.message);
                    $("#bigloader").hide();
                    setTimeout(function(){$("#cboxClose").trigger('click');},5000);
                }
            });
        }
        return false;
    });

    $("#update-account").livequery('click', function() {
        $(".error").removeClass("error");
        var error_id  = "";
        var error_msg = "";
        var arr = ["firstname", "lastname", "email"];
        $.each(arr, function() {
            var value = trim($("#"+this).val());
            if (value == "") {
                error_id = this;
            } else {
                if (this == "email") {
                    if (!check_email(value)) {
                        error_id = this;
                    }
                }
            }
            if (error_id != "") {
                return false;
            }
        });
        
        if (error_id != "") {
            $("#"+error_id+"_msg").addClass("error");
            if (error_msg != "") {
                $("#"+error_id+"_msg").text(error_msg);
            }
            $("#"+error_id).focus();
        } else {
            $("#update_account_loader").show();
            $("#update-account").attr({disabled:"disabled"}).css({opacity: '0.3'});
            $.ajax({
                type: "POST",
                url: "account/profile",
                data: $("#updateAccountForm :input").serialize(),
                dataType: 'json',
                success: function(msg){
                    if (msg.status) {
                        addclass = "sucess";
                    } else {
                        addclass = "error";
                    }
                    $("#stat-msg").addClass(addclass).html(msg.message).show();
                    $("#update_account_loader").hide();
                    $("#update-account").removeAttr("disabled").css({opacity: '1'});
                    setTimeout(function() { $("#stat-msg").hide(); }, 5000);
                }
            });
        }
        return false;
    });

    $("#update-profile").livequery('click', function() {
        $("#update_profile_loader").show();
        $("#update-profile").attr({disabled:"disabled"}).css({opacity: '0.3'});
        $.ajax({
            type: "POST",
            url: "account/profile",
            data: $("#updateProfileForm :input").serialize(),
            dataType: 'json',
            success: function(msg){
                if (msg.status) {
                    addclass = "sucess";
                } else {
                    addclass = "error";
                }
                $("#stat-msg").addClass(addclass).html(msg.message).show();
                $("#update_profile_loader").hide();
                $("#update-profile").removeAttr("disabled").css({opacity: '1'});
				
				countdown_stop = true;
				setTimeout(function() {
	                countdown_stop = false;
					var td = new Date($("#test_date").val());
					var year = parseInt(td.getFullYear().toString().substr(2));
					countdown(year, td.getMonth() + 1, td.getDate(), 00, 00, 1);
				}, 2000);
				
                setTimeout(function() { $("#stat-msg").fadeOut(800); }, 5000);
            }
        });
        return false;
    });

    $("#changepwd").livequery('click', function() {
        var pwd1 = trim($("#new-password").val());
        var pwd2 = trim($("#confirm-password").val());
        if (pwd1 != '' && pwd2 != '') {
            if (pwd1 == pwd2) {
                $(this).attr({disabled:"disabled"}).css({opacity: '0.3'});
                $("#change_loader").show();
                $.ajax({
                    type: "POST",
                    url: "change-password",
                    data: {pwd1:pwd1,pwd2:pwd2},
                    dataType: 'json',
                    success: function(msg){
                        $("#new-password").val('');
                        $("#confirm-password").val('');
                        if (msg.status) {
                            addclass = "sucess";
                        } else {
                            addclass = "error";
                        }
                        $("#stat-msg").addClass(addclass).html(msg.message).show();
                        $("#change_loader").hide();
                        $("#changepwd").removeAttr("disabled").css({opacity: '1'});
                        setTimeout(function() { $("#stat-msg").fadeOut(800); }, 5000);
                    }
                });
            } else {
                alert('FAIL! The two passwords are supposed to match, please try again.');
            }
        } else {
            alert('Please enter your password in New and Confirm Password fields.');
        }
        return false;
    });
    
    $("#editPaypalInfo").livequery('click', function() {
		$("#showPaypalInfo").hide();
        $("#paypalInfoForm").show();
        $("#left_col").css({height: "820px"});
        return false;
    });

    $("#cancelUpdate").livequery('click', function() {
        if ($("#update_loader").is(":visible")) {
	        $("#update_loader").hide();
	        $("#updatePaypalInfo").removeAttr("disabled").css({opacity: '1'});
		}
        $("#paypalInfoForm").hide();
        $("#showPaypalInfo").show();
        $("#left_col").css({height: "auto"});
        return false;
    });

    $("#cancelOption").livequery('click', function() {
        $("#showPaypalInfo").hide();
        return false;
    });

    $("#updatePaypalInfo").livequery('click', function() {
		if (validateCC()) {
	        if (confirm('Are you sure?')) {
                $("#updatePaypalInfo").attr({disabled:"disabled"}).css({opacity: '0.3'});
                $("#update_loader").show();
                $.ajax({
                    type: "POST",
                    url: "/account/update-paypal",
                    data: $("#paypalInfoForm").serialize(),
                    dataType: 'json',
                    success: function(msg){
                        if (msg.status) {
                            addclass = "sucess";
							$("#cc_Type").html(msg.creditCardType);
                            $("#cc_No").html(msg.creditCardNumber);
                            $("#cc_ED").html(msg.expDateMonth+'-'+msg.expDateYear);
                            $("#cc_Addr").html(unescape(msg.address1.replace(/\+/gi, ' ')));
                            $("#cc_City").html(msg.ccCity);
                            $("#cc_State").html(msg.ccState);
                            $("#cc_Zip").html(msg.ccZip);
                        } else {
                            addclass = "error";
                        }
                        $("#stat-msg").addClass(addclass).html(msg.message).show();
                        $("#update_loader").hide();
                        $("#updatePaypalInfo").removeAttr("disabled").css({opacity: '1'});
						
						$("#paypalInfoForm")[0].reset();
                        $("#cancelUpdate").trigger("click");
                        
                        setTimeout(function() { $("#stat-msg").fadeOut(800); }, 5000);
                    }
                });
	        }
		}
        return false;
    });

    $("#resend-activation-link").livequery('click', function() {
        if (confirm('Are you sure?')) {
        	$("#resend-activation-link").attr({disabled:"disabled"}).css({opacity: '0.3'});
        	$("#status_resend_loader").show();
        	var userId = $('#user_id').val();
            $.ajax({
                type: "POST",
                url: "/account/resend-activation-link",
                data :{uId:userId},
                dataType: 'json',
                success: function(msg){
                	$("#status_resend_loader").hide();
                	if(msg.status) {
                        $("#stat-msg").addClass('sucess').html(msg.message).show();
                        $("#resend-activation-link").removeAttr("disabled").css({opacity: '1'});
                        setTimeout(function() { $("#stat-msg").fadeOut(800); }, 3000);
                	} else {
                		alert(msg.message);
                	}
                }
            });
        }
        return false;
    });
    
    $("#suspend-profile").livequery('click', function() {
        if (confirm('Are you sure?')) {
        	$(this).attr({disabled:"disabled"}).css({opacity: '0.3'});
        	$("#status_suspend_loader").show();
        	var userId = $('#user_id').val();
            $.ajax({
                type: "POST",
                url: "suspend-profile",
                data :{uId:userId},
                success: function(){
                	$("#status_suspend_loader").hide();
                	if(null == userId) {
                        $("#stat-msg").addClass('sucess').html('Your account has been suspended. You will be logged-out.').show();
                		setTimeout(function() { window.location = '/'; }, 3000);
                	} else {
                		alert('User Account Suspended');
                		$("#suspend-profile").attr('id','activate-profile').val("Activate Profile");
                		$("#activate-profile").removeAttr("disabled").css({opacity: '1'});
                	}
                }
            });
        }
        return false;
    });

    $("#delete-profile").livequery('click', function() {
        if (confirm('Are you sure?')) {
        	$("#delete-profile").attr({disabled:"disabled"}).css({opacity: '0.3'});
        	$("#status_delete_loader").show();
        	var userId = $('#user_id').val();
            var skipPaypal = $('#skip_paypal').is(":checked");
            $.ajax({
                type: "POST",
                url: "delete-profile",
                data :{uId:userId,skipPaypal:skipPaypal},
                dataType: 'json',
                success: function(msg){
                	$("#status_delete_loader").hide();
                    $("#delete-profile").removeAttr("disabled").css({opacity: '1'});
                	if(msg.status) {
						if(userId > 0) {
                            alert(msg.message);
						} else {
                            $("#stat-msg").addClass('sucess').html('Your account has been deleted, you will be logged out now.').show();
                            setTimeout(function() { window.location = '/'; }, 3000);
						}
                	} else {
                		alert('Account could not deleted. ' + msg.message + '.');
                	}
                }
            });
        }
        return false;
    });
    
    $("#clear-tags").livequery('click', function() {
        if (confirm('Are you sure?')) {
        	var cards = $("#untag-cards").is(":checked");
        	var ques = $("#untag-ques").is(":checked");
	
        	if(cards || ques){
	        	$("#clear-tags").attr({disabled:"disabled"}).css({opacity: '0.3'});
	        	$("#status_tags_loader").show();
	            $.ajax({
	                type: "POST",
	                url: "/account/clear-tags",
	                data :{untagCards:cards,untagQues:ques},
	                success: function(){
	                	$("#status_tags_loader").hide();
						var msg = "All of your ";
	                	if(cards){
							msg += "Flash Cards";
						}
	                	if(ques){
	                		if(cards){
								msg += " and ";
							}
							msg += "Quiz Questions";
						}
						msg += " were successfully untagged.";
	                    $("#stat-msg").addClass('sucess').html(msg).show();
                        $("#clear-tags").removeAttr("disabled").css({opacity: '1'});
                        setTimeout(function() { $("#stat-msg").fadeOut(800); }, 5000);
	                }
	            });
	        } else {
				alert("Please choose any one of the options.");
			}
        }
        return false;
    });
    
    $("#activate-profile").livequery('click', function() {
        if (confirm('Are you sure?')) {
        	$(this).attr({disabled:"disabled"}).css({opacity: '0.3'});
        	$("#status_suspend_loader").show();
        	var userId = $('#user_id').val();
            $.ajax({
                type: "POST",
                url: "activate-profile",
                data :{uId:userId},
                success: function(){
                	$("#status_suspend_loader").hide();
                	if(userId) {
                		alert('User Account Activated');
                		$("#activate-profile").attr('id','suspend-profile').val("Suspend Profile");
                		$("#suspend-profile").removeAttr("disabled").css({opacity: '1'});
                	}
                }
            });
        }
        return false;
    });

    $("#activate-my-profile").livequery('click', function() {
    	$(this).attr({disabled:"disabled"}).css({opacity: '0.3'});
    	$("#status_loader").show();
    	var userId = $('#user_id').val();
        $.ajax({
            type: "POST",
            url: "activate-profile",
            success: function(msg){
                $("#stat-msg").addClass('sucess').html('Activated your account. You will be rediredted to home page.').show();
            	$("#status_loader").hide();
            	setTimeout(function() { window.location = '/account/stats'; }, 3000);
            }
        });
        return false;
    });
    
    /**
     * User Upload Photo
     */
    new Ajax_upload('#upload-photo', {
        action: '/account/upload-photo',
        onSubmit : function(file , ext){
            if (ext && /^(jpg|png|jpeg|gif)$/.test(ext)){
                $('#profile_pic_status').show();
				$('#preview_pic').attr("src", "/public/images/no_image.png");
            } else {
                alert('Error: Please upload only jpg, png, jpeg, gif images.');
                return false;
            }
        },
        responseType: true,
        onComplete : function(file, response){
            $('#profile_pic_status').hide();
            $('#profile_pic, #preview_pic').attr({src : '/avatars/'+response});
            $('#current_pic').prev().addClass('img_frame').removeClass('img_frame_sel');
            $('#preview_pic').prev().addClass('img_frame_sel').removeClass('img_frame');
    		alert('Sweet! It worked! Your photo has been changed.');
        }
    });
    
    /**
     * Delete user photo
     */
    $('#remove_photo').click(function(){
        $('#profile_pic').attr({src : '/avatars/default.png'});
        $.ajax({
            url:'/account/delete-photo',
            type:'post',
            success:function(request){
        		alert('Your photo has been changed to default image.');
            }
        });
    });

    $(".navigation_tabs li a").livequery('click', function() {
        $(".tab").hide();
        $(".mtab").removeClass('active');
        var id = $(this).attr('id');
        $("#t_"+id).show();
        $(this).addClass('active');
    });

    $('#default-pics').find('span.img_frame').livequery(function() {
        $(this).hover(
            function() {
                $(this).addClass('hover');
            },
            function() {
                $(this).removeClass('hover');
            }
        );
        
        $(this).click(function() {
            var filename = $(this).next().attr('src');
            filename = filename.split('/');
            $.ajax({
                url:'/account/change-photo',
                type:'post',
                data :{photo:filename[2]},
                success:function(response){
                    $('#profile_pic, #current_pic').attr({src : '/avatars/'+response});
            		alert('Your photo has been changed to selected image.');
                }
            });
        });
    });

    $("#closeStartUpBtn, #closeStartUp").livequery('click', function() {
        $("#startUp, #overlay").fadeOut(500);
    });

    $(".get_some").livequery('click', function() {
		var id = $(this).attr('id').split('-');
		if (id[0] == "quick" || id[0] == "full") {
			window.location = '/quiz/start/' + id[0] + '/' + id[2];
		}
		else {
			$("#quiz-chapter").val(id[0]);
			$("#quiz-id").val(id[1]);
			$("#quiz-setup-form").submit();
		}
	});

    $("#cash_out_loader").livequery('click', function() {
		if (confirm('Are you sure?')) {
            $(this).attr({disabled:"disabled"}).css({opacity: '0.3'});
            $("#cash_out_loader").show();
            $.ajax({
                url:'/account/cash-out',
                type:'post',
                success:function(response){
                    $('#cash_out_loader').hide();
                    alert('Mail sent to AFStriper Support Team, we will get back to you.');
                }
            });
		}
	});

    $("#payment-info").livequery('click', function() {
        $("#payment-info").attr({disabled:"disabled"}).css({opacity: '0.3'});
        $("#info_loader").show();
        var paypalId = $('#user_paypal_id').val();
        $.ajax({
            type: "POST",
            url: "/account/user-payment",
            dataType: 'json',
            success: function(msg){
                $("#info_loader").hide();
                if(msg.status) {
                    $("#payment-info").removeAttr("disabled").css({opacity: '1'});
					
                    var data = msg.info;
					var value = '';
                    $("#cc_Firstname").html(data.FIRSTNAME.replace(/\+/g, ' '));
                    $("#cc_Lastname").html(data.LASTNAME.replace(/\+/g, ' '));
                    $("#cc_Type").html(data.CREDITCARDTYPE.replace(/\+/g, ' '));
                    $("#cc_No").html('xxxxxxxxxxxx'+data.ACCT);
                    $("#cc_ED").html(data.EXPDATE);
                    $("#cc_Addr").html(data.STREET.replace(/\+/g, ' '));
                    $("#cc_City").html(data.CITY.replace(/\+/g, ' '));
                    $("#cc_State").html(data.STATE.replace(/\+/g, ' '));
                    $("#cc_Zip").html(data.ZIP);
                    $("#cc_Country").html(data.COUNTRY);
                    $("#cc_PSDate").html(data.PROFILESTARTDATE.replace(/T(.*?)$/gi, ''));
                    $("#cc_Status").html(data.STATUS);
                    $("#cc_Balance").html(data.OUTSTANDINGBALANCE);
                    value = (data.LASTPAYMENTAMT) ? data.LASTPAYMENTAMT : '';
                    $("#cc_LPAmount").html(value);
					value = (data.LASTPAYMENTDATE) ? data.LASTPAYMENTDATE.replace(/T(.*?)$/gi, '') : '';
                    $("#cc_LPDate").html(value);
                    
                    $("#paypalInfoForm").hide();
                    $("#showPaypalInfo").show();
                } else {
                    alert(msg.message);
                }
            }
        });
        return false;
    });

    $("#cash-out").livequery('click', function() {
        $("#cash-out").attr({disabled:"disabled"}).css({opacity: '0.3'});
        if (confirm('Are you sure?')) {
            $("#cash_out_loader").show();
            $.ajax({
                type: "POST",
                url: "/account/cash-out",
                dataType: 'json',
                success: function(msg){
                    $("#cash_out_loader").hide();
                    $("#cash-out").parent().remove();
					$("#used-no").html('0');
                    $("#stat-msg").addClass('sucess').html(msg.message).show();
                    setTimeout(function() { $("#stat-msg").fadeOut(800); }, 5000);
                }
            });
        }
        return true;
    });
	
	if ($("#ccvTooltip").length > 0) {
		$("#ccvTooltip").qtip({
			content: $("#info").html(),
			position: {
				corner: {
					target: 'topRight',
					tooltip: 'bottomLeft'
				}
			},
			style: {
				width: 310,
				border: {
					width: 2,
					radius: 5,
					color: '#4C4C4C'
				},
				tip: 'bottomLeft'
			}
		});
	}

});


function trim(str) {
    return str.replace(/^\s+|\s+$/g, "");
}

function check_email(email) {
    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    if (reg.test(email)) {
        return true;
    }
    return false;
}

function getCookie(c_name) {
	if (document.cookie.length>0) {
		c_start = document.cookie.indexOf(c_name + "=");
		
		if (c_start!=-1) {
			c_start = c_start + c_name.length+1;
			c_end = document.cookie.indexOf(";",c_start);
			if (c_end == -1) {
				c_end = document.cookie.length;
			}
			return unescape(document.cookie.substring(c_start,c_end));
		}
	}
	return "";
}

function setCookie(c_name,value,expiretime) {
	var exdate = new Date();
	exdate.setDate(exdate.getDate()+expiretime);
	document.cookie = c_name + "=" + escape(value) + ((expiretime == null) ? "" : ";expires=" + exdate.toGMTString());
}

function validateCC() {
    $(".error").removeClass("error");
    var error_id  = "";
    var error_msg = "";
    var arr = ["creditCardNumber", "cvv2Number", "address1", "ccCity", "ccZip"];
    $.each(arr, function() {
        var value = trim($("#"+this).val());
        if (value == "") {
            error_id = this;
        } else {
            if (this == "creditCardNumber") {
                myCardType = document.getElementById('creditCardType').value;
                if (!checkCreditCard(value,myCardType)) {
                     error_id  = this;
                     error_msg = ccErrors[ccErrorNo];
                }
            }
        }
        if (error_id != "") {
            return false;
        }
    });
    
    if (error_id != "") {
        $("#"+error_id+"_msg").addClass("error");
        if (error_msg != "") {
            $("#"+error_id+"_msg").text(error_msg);
        }
        $("#"+error_id).focus();
        return false;
    } else {
        return true;
    }
}

