$(function() {
	//Set default values upon loading the popup
	$("form[name=custom_register]").submit(function() {
		if ($("#UserTerms:checked", this).length != 1) {
			$(".term_error").show();
			return false;
		}
		else {
			$(".term_error").hide();
		}
		$.ajax({
            url: $('#custom_register').attr('action'),
            type: "POST",
            data: {
                'data[User][ziinga_cookie]': $('#UserZiingaCookie').val(),
                'data[User][username]': $('#UserUsername').val(),
                'data[User][before_password]': $('#UserBeforePassword').val(),
                'data[User][email]': $('#UserEmail').val()
            },
            dataType: 'json',
            success: function(data){
				if (data.Error) {
            	    //Popup username suggestion
            		//$("#error-username").html(data.Error.username);
            		if (data.UsernameTaken) {
            			var country = $.cookie('CakeCookie[country]');
            			var username = $("#UserUsername").val();
            			var hasSuggestions = false;
            			$.ajax({
            				url: "/"+country+"/users/suggest_user/"+username,
            				dataType: 'json',
            				success: function(name){
            					$("#username_suggestions").empty();
            					$("#suggested").css("display" , "none");
            					if (name.Suggestions.length > 0) {
            						$.each(name.Suggestions, function(i, item){
            							$("#username_suggestions").append("<li><a class=\"username_suggestions\" href='#'>"+item+"</a></li>");
            						});
            						$("#suggested").css("display" , "block");
            						$("#suggested .close_button").css("cursor", "pointer");
            						$("#suggested .close_button").click(function() {
            							$("#suggested").css("display" , "none");
            						});
            						$("#suggested h4").html(data.Error.username);
            						$("ul#username_suggestions li a").each(function() {
            							$(this).click(function() {
            								$("#UserUsername").val($(this).text());
            								$("#username_suggestions").empty();
            								$("#suggested").css("display" , "none");
            								$("#UserBeforePassword").focus();
            								return false;
            							});
            						});
            					}
            				}
            			});
            		}
                    else {
                        if (data.Error.username) {
                            //Else Display normal popup error for username
                            $("#username_error").css("display" , "block");
                            $("#username_error h4").html(data.Error.username);
                    		$("#username_error .close_button").css("cursor", "pointer");
                    		$("#UserUsername").focus(function() {
                    			$("#username_error").css("display" , "none");
                    		});
                    		$("#username_error .close_button").click(function() {
                    			$("#username_error").css("display" , "none");
                    		});
                            return false;
                        }
                        if (data.Error.before_password) {
  						    //$("#error-password").html(data.Error.before_password);
                            $("#password_error").css("display" , "block");
                            $("#password_error h4").html(data.Error.before_password);
                    		$("#password_error .close_button").css("cursor", "pointer");
                    		$("#UserBeforePassword").focus(function() {
                    			$("#password_error").css("display" , "none");
                    		});
                    		$("#password_error .close_button").click(function() {
                    			$("#password_error").css("display" , "none");
                    		});
                            return false;
  					    }
  					    if (data.Error.email) {
  						    //$("#error-email").html(data.Error.email);
                            $("#email_error").css("display" , "block");
                            $("#email_error h4").html(data.Error.email);
                    		$("#email_error .close_button").css("cursor", "pointer");
                    		$("#UserEmail").focus(function() {
                    			$("#email_error").css("display" , "none");
                    		});
                    		$("#email_error .close_button").click(function() {
                    			$("#email_error").css("display" , "none");
                    		});
                            return false;
  					    }
                    }
            		if (data.Error.general_error == "Your IP Address cannot sign up to Ziinga.") {
            			window.location = "http://www.ziinga.com/notice_dk.html";
            		}
				}
				else {
					//var auctionId = $("#active_auctionId").text();
					
					//redirect = '/' + $.cookie('CakeCookie[country]') + '/packages'
					
					/*if (in_array($.cookie('CakeCookie[country]'), ['se', 'no', 'fr'])) {
						redirect = '/' + $.cookie('CakeCookie[country]') + '/packages/account_verification';
					}*/
					
					window.location = getSignupConversionPage();;
				}
            },
            error: function(xhr, ajaxOptions, thrownError){

            }
        });
        return false;
	});
	
	function in_array (needle, haystack, argStrict) {
	    // Checks if the given value exists in the array  
	    // 
	    // version: 1102.614
	    // discuss at: http://phpjs.org/functions/in_array
	    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	    // +   improved by: vlado houba
	    // +   input by: Billy
	    // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
	    // *     example 1: in_array('van', ['Kevin', 'van', 'Zonneveld']);
	    // *     returns 1: true
	    // *     example 2: in_array('vlado', {0: 'Kevin', vlado: 'van', 1: 'Zonneveld'});
	    // *     returns 2: false
	    // *     example 3: in_array(1, ['1', '2', '3']);
	    // *     returns 3: true
	    // *     example 3: in_array(1, ['1', '2', '3'], false);
	    // *     returns 3: true
	    // *     example 4: in_array(1, ['1', '2', '3'], true);
	    // *     returns 4: false
	    var key = '',
	        strict = !! argStrict;
	 
	    if (strict) {
	        for (key in haystack) {
	            if (haystack[key] === needle) {
	                return true;
	            }
	        }
	    } else {
	        for (key in haystack) {
	            if (haystack[key] == needle) {
	                return true;
	            }
	        }
	    }
	 
	    return false;
	}
});

