YPajax = {};
YPajax.registrator = {

    processReply: function (json){
        if(json.success){
        	$('#signup-form').html('<div class="title">Регистрация прошла успешно!</div> <p>После подтверждения регистрации вы сможете войти в Личный кабиент. Пожалуйста, проверьте Вашу почту и следуйте интсрукциям в письме.</p>');
        } else {
            if(json.errors.email){
                $('#email-error').html(json.errors.email[0]);
				$('#email-error').show();
            } else {
                $('#email-error').html('');
				$('#email-error').show();
            }
            if(json.errors.confirmPassword){
                $('#password-error').html(json.errors.confirmPassword[0]);
            } else {
                $('#password-error').html('');
				$('#password-error').show();
				
            }
            if(json.errors.screenName){
                $('#scrname-error').html(json.errors.screenName[0]);
            } else {
                $('#scrname-error').html('');
            }
        }
    },

    sendRegistrationRequest : function(){
        var email = $('#signup-form #reg-email').val();
        var password = $('#signup-form #reg-password').val();
        var opts = {"email": email, "password": password};
        $.getJSON("register", opts, YPajax.registrator.processReply);
        return false;
    }
}

YPajax.login = {
		
	    processReply: function (json){
	        if(json.success){	        	
	        	var bodyId=$('body').attr('id');
	        	if(bodyId == 'index' || bodyId == 'error404'){
	        		location.href= $('#my-yell-url').val();
	        		
	        	}else if($("body:has('#landing-page-url')")){
	        		window.location.href= $('#landing-page-url').html();
	        	
	        	}else{
	        		YPajax.login.sendGetUserNameRequest();
	        	}
	        	
	        }else{
	        	$('#login-form .error').css('visibility','visible');
	        } 
	    },
	    processGetNameReply: function (json){
	        if(json.success.username){
				$('#personal-nav .profile-link').attr('id',(json.success.userID[0]));
	        	$('#personal-nav .profile-link').html(json.success.username[0]);
				$('#personal-nav .logout-link, #personal-nav .profile-link, #results .tools .save-comp, #company-main-info .send-message-link, #toolbox .send-message-link, #toolbox .save-comp').removeClass('hide');
				$('#review-form textarea').removeAttr('class');
				$('#personal-nav .login-link, #results .tools .login-link, #company-main-info .login-link, #toolbox .login-link').addClass('hide');
				$('#user-login, #overlay').hide();
	        } 
	    },
	    sendLoginRequest : function(){
	        var email = $('#login-form #login-email').val();
	        var password = $('#login-form #login-password').val();
	        var url=$('#reg-url').val();
	        var ajax = "ajax";
	        var opts = {"j_username": email, "j_password": password, "ajax": ajax};
	        $.getJSON(url, opts, YPajax.login.processReply);
	        return false;
	    },
	    sendGetUserNameRequest : function(){
	        var opts = {};
	        $.getJSON("get-user-name", opts, YPajax.login.processGetNameReply);
	        return false;
	    }
	}

YPajax.remindMePass = {

		processReply: function (json){
		    if(json.success){	
		    	$('#pass-recall-form div.message').hide();
				$('#pass-recall-form div.success').show();
				
		    }else {
		        if(json.errors.email){
		        	$('#pass-recall-form div.message').hide();
		            $('#pass-recall-form div.error').show();
		        } else if(json.errors.emailNotFound){
					$('#pass-recall-form div.message').hide();
					$('#pass-recall-form div.nouser').show();		            
		        }	            
		    } 
		},

	    sendRemindMePassRequest : function(){
	        var email = $('#remind-me-pass-email').val();
	        var opts = {"email": email};
	        $.getJSON("remind-me-pass", opts, YPajax.remindMePass.processReply);
	        return false;
	    }
	}

YPajax.categorySearcher = {
    processReply: function (json){
        $("#rubrics-list li, #category-search #rubrics-list").remove();
		$("#category-search").append("<ul id='rubrics-list'></ul>");
        for(var i = 0; i < json.length; i++){
            var el = json[i];
            var liString = "<li><a href=\"" + el.uri + "\">" + el.value + "</a></li>";
            $("#rubrics-list").append(liString);
        }

    },

    processReply2: function (json){
        $("#rubric-search-result option").remove();
        for(var i = 0; i < json.length; i++){
            var el = json[i];
            var liString = "<option value=\"" + el.path + "\">" + el.value + "</option>";
            $("#rubric-search-result").append(liString);
        }

    },

    processReply3: function (json){
        $("#rubrics-list li, #category-search #rubrics-list").remove();
		$("#category-search").append("<ul id='rubrics-list'></ul>");
        for(var i = 0; i < json.length; i++){
            var el = json[i];
            var liString = "<li><a href=\"#\">" + el.value + "</a></li>";
            $("#rubrics-list").append(liString);
        }

    },

    processReply4: function (json){
        $("#rubrics-list li, #category-search #rubrics-list").remove();
		$("#category-search").append("<ul id='rubrics-list'></ul>");
        for(var i = 0; i < json.length; i++){
            var el = json[i];
            var liString = "<li><a id="+ el.id + " href=\"#\">" + el.value + "</a></li>";
            $("#rubrics-list").append(liString);
        }

    },
    
     sendRequest : function(callback){
        var searchString = $('#rubric-search-field').val();
        var opts = {"q": searchString};
        $.getJSON("/category-search-service/query", opts, callback);
        return false;
    }
}

YPajax.favoritesManager = {
    addCallBack : function(json){
        
    },

    sendAddRequest : function(companyId){
		var userId = $('#personal-nav .profile-link').attr('id');
        if(! userId ) return false;
        var opts = {"action": "add", "userId":userId, "companyId":companyId, "ajax":true};
        $.getJSON("my-notes-update", opts, YPajax.favoritesManager.addCallBack);
        return false;
    }
}

YPajax.sender = {

	    processReply: function (json){
	        if(json.success){
	        	$('#send-link-form').hide();
				$('#send-link div.success').show();
	        }else {
	            if(json.errors.email){
	                $('#send-link div.error').show();
	            } else {
					$('#send-link div.error').show();
	                $('#send-link div.error').html('Произошла ошибка! Пожалуйста закройте это сообщение и попробуйте ещё раз');
	            }	            
	        } 
	    },

	    sendLinkRequest : function(){
	        var sendTo  = $('#send-to').val();	        
	        var companyId = $('#selectedCompanyId').val();	        
	        var opts = {"sendTo": sendTo, "selectedCompanyId": companyId};
	        $.getJSON("sendLink", opts, YPajax.sender.processReply);
	        return false;
	    }
	}
