$(function() {
   var error = false;
   var item_count = 0;
   var user_id;
   var method;
 
   $('#item_details').val('Enter a brief description...').focus(function(){
    if ($('#item_details').val() == 'Enter a brief description...') {
         $(this).val('');
    }     
    }).blur(function(){
        if ($('#item_details').val() == '') {
            $('#item_details').val('Enter a brief description...');
        }
        });
    
    $('#estimated_value').val('Estimated value of your item... Exp. $2000').focus(function(){
        if ($('#estimated_value').val() == 'Estimated value of your item... Exp. $2000') {
             $(this).val('');
        }     
    }).blur(function(){
        if ($('#estimated_value').val() == '') {
            $('#estimated_value').val('Estimated value of your item... Exp. $2000');
        }
    });
   
   
    function validate_email(email)
    {
        var reg = new RegExp("^[0-9a-zA-Z._]+@[0-9a-zA-Z]+[\.]{1}[0-9a-zA-Z]+[\.]?[0-9a-zA-Z]+$");
        return reg.test(email);
    }
    
    function validate_currency(currency) {
        return !isNaN(currency);
    }

    function return_currency(currency) {
        return parseFloat(currency.replace(/^[^\d\.]*/, ''));
    }
    
   /* Check if Users personal information is fully filled out */  
   function validate_personalInformation()
   {
       error = false;
       
       if ($('#first_name').val() == '' || $('#first_name').val() == undefined) {
           error = true;
           alert('Please enter your First Name.');
           $('#first_name').focus();
       }else if($('#last_name').val() == '' || $('#last_name').val() == undefined) {
           error = true;
           alert('Please enter your Last Name.');
           $('#last_name').focus();
       }else if ($('#phone').val() == '' || $('#phone').val() == undefined) {
           error = true;
           alert('Please enter your Phone Number.')
           $('#phone').focus();
       }else if ($('#email').val() == '' || $('#email').val() == undefined) {
           error = true;
           alert("Please enter your E-mail address.")
           $('#email').focus();
       }else if (!validate_email($('#email').val())) {
            error = true;
            alert('Please enter a valid E-mail Address');
            $('#email').focus();   
       }else if ($('#address1').val() == '' || $('#address1').val() == undefined) {
           error = true;
           alert('Please enter your Address.');
           $('#address1').focus();
       }else if ($('#city').val() == '' || $('#city').val() == undefined) {
           error = true;
           alert("Please enter your City.");
           $('#city').focus();
       }else if ($('#zip_code').val() == '' || $('#zip_code').val() == undefined) {
           error = true;
           alert("Please your Zip Code.");
           $('#zip_code').focus();
       }else {
            return true;
       }
       return false;
   }
   
   function validate_itemInformation() {
        error = false;
        
       if ($('#item_details').val() == 'Enter a brief description...' || 
                                        $('#item_details').val() == '' || 
                                        $('#item_details').val() == undefined) {
           error = true;
           alert("Please give us some information about your item.");
           $('#item_details').focus();
       }else if($('#estimated_value').val() == 'Estimated value of your item... Exp. $2000' ||
                                                        $('#estimated_value').val() == '' || 
                                                        $('#estimated_value').val() == undefined) {
           error = true;
           alert('Please tell us the estimated value of your item');
           $('#estimated_value').focus();
       }else if(!validate_currency($('#estimated_value').val())) {
           error = true;
           alert('Please enter only numerical values. Example: 2000');
           $('#estimated_value').focus();
       }
       else {
           return true;
       }
       return false;
   }
   
   function add_user() {
        $('#spinner').fadeIn();
        $.ajax({
            type: 'post',
            url: 'home/add_user',
            data: "first_name=" + $('#first_name').val() +
                    "&last_name=" + $('#last_name').val() + 
                    "&phone=" + $('#phone').val() +
                    "&email=" + $('#email').val() +
                    "&address1=" + $('#address1').val() +
                    "&city=" + $('#city').val() +
                    "&state=" + $('#state').val() +
                    "&zip_code=" + $('#zip_code').val(),
            dataType: "json",
            success: function(response) {
                if (response.error == true) {
                    alert(response.message);
                    $('#email').focus();
                } else {
                    user_id = response.user_id;
                    add_item();
                }
                $('#spinner').fadeOut();
            }
        });
   }
   
   function add_item() {
       $('#spinner').fadeIn();
       $.ajax({
            type: 'post',
            url: 'home/add_item',
        dataType: 'json',
            data: "item_type=" + $('#item_type').val() +
                    "&item_details=" + $('#item_details').val() +
                    "&estimated_value=" + return_currency($('#estimated_value').val()) +
                    "&user_id=" + user_id,
        success: function(response) {
            if (response.error == true) {
                alert(response.message);
            } else  {
                item_count++;
                $('#items ul').append(response.html);
                
                $('#item_type').val('');
                $('#item_details').val('');
                $('#estimated_value').val('');
                $('#spinner').fadeOut();
                if (method == 'submit') {
                    window.location = "details/";
                }   
            }
            $('#spinner').fadeOut();    
        }        
       });
   }

    $('#add-item').bind('click', function(event) {
        event.preventDefault();
        error = false;
        method = 'add-item';
        if (user_id == '' || user_id == undefined) {
            if (validate_personalInformation() && validate_itemInformation()) {
                add_user();
            }
        } else {
            if (validate_itemInformation()) {
                add_item();
            }
        }
    });
    
    $('#submit').bind('click', function(event) {
       event.preventDefault();
       error = false;
       method = 'submit';
       
       if (user_id != '' && user_id != undefined && item_count > 0) {
           if (confirm('Are you sure you do not wish to add anymore items?')) {
                window.location = "details/";
            }
         }
       
       if (user_id != '' && user_id != undefined && item_count <= 0) {
           alert("Please add an item to proceed.");
       }     
         
       if (user_id == '' || user_id == undefined) {
           if (validate_personalInformation() && validate_itemInformation()) {
               add_user();
           }
        }         
    });
     
    $('.delete').live('click', function(event) {
        event.preventDefault();
        $('#spinner').fadeIn();
        var div = $(this);
        var url = $(this).attr('href');
        $.ajax({
            type: 'post',
            url: url,
            success: function() {
                $('#spinner').fadeOut();
                $(div).parent().fadeOut();
                item_count--;
            }
        });
    });
});