/*******************************************************************************
 * CARLIST.MY WEBSITE - MALAYSIA'S #1 CAR CLASSIFIED WEBSITE                   *
 * Version      : 1.5                                                          *
 * Name         : savedcar-comparison.js                                            *
 * Description  : This JavaScript file contains common UI-related functions    *
 *                related to Saved Car and Car Comparison Feature                      *
 * Written By   : Evylene Ng Yuen Tin                                          *
 * Created On   : 02 March 2010                                             *
 * Modified On  : 09 March 2010                                             *
 *                                                                             *
 * COPYRIGHT NOTICE                                                            *
 * Copyright (C) 2008 - 2011 Auto Discounts Sdn. Bhd. All Rights Reserved.     *
 *                                                                             *
 * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR *
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,    *
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE *
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      *
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING     *
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER         *
 * DEALINGS IN THE SOFTWARE.                                                   *
 *******************************************************************************/

var checkBoxesCompare = {
    ready : function() {
        // filter input of type checkbox with attribute id ^= "compare_"
        // Value will be its actual listing ID
        $("input[type=checkbox]").unbind("click").bind("click", function() {
            // $e.preventDefault(); --> No need this otherwise, the checkbox mark will not come or go!
            // Post to back end
            // The return value has the number to be printed out ..
            var listing_id = $(this).val();
            var data = {
                action : "toggle",
                listing_id : listing_id
            };
            $.post("Includes/libs/SavedCarComparison-scripts/common-bookmark-jquery.php",
                data,
                function(json)
                {
                    if (json.status == "fail")
                    {
                        $("#sysmsg").removeClass("green");
                        $("#sysmsg").addClass("red");
                    }
                    if (json.status == "success")
                    {
                        $("#sysmsg").removeClass("red");
                        $("#sysmsg").addClass("green");
                        $("span.CompareQty").html(json.divqty).fadeIn();
                        // If successfully select 2 or more; enable
                        if (json.submit == "disable")
                        {
                            $("#compareCheckedTop").attr('disabled', 'disabled');
                            $("#compareCheckedBottom").attr('disabled', 'disabled');
                        }
                        else 
                        {
                            $("#compareCheckedTop").removeAttr('disabled');
                            $("#compareCheckedBottom").removeAttr('disabled');
                        }
                    }
                    $("#sysmsg").html(json.message).fadeIn();
                }, "json");
        });
        
    }
}

var clearButtonCompare = {
    ready : function() {
        $("button[type=reset]").unbind("click").bind("click", function($e) {
            $e.preventDefault();
            // Clear all checkboxes on this page!
            $("input[type=checkbox]").removeAttr("checked");
            // Post to server side to remove session related to this compare function
            var data = {
                action : "clear"
            };
            $.post("Includes/libs/SavedCarComparison-scripts/common-bookmark-jquery.php",
                data,
                function(json)
                {
                    if (json.status == "fail")
                    {
                        $("#sysmsg").removeClass("green");
                        $("#sysmsg").addClass("red");
                    }
                    if (json.status == "success")
                    {
                        $("#sysmsg").removeClass("red");
                        $("#sysmsg").addClass("green");
                        $("span.CompareQty").html(json.divqty).fadeIn();
                        // Disable ability of user to press submit button!!
                        $("#compareCheckedTop").attr('disabled', 'disabled');
                        $("#compareCheckedBottom").attr('disabled', 'disabled');
                    }
                    $("#sysmsg").html(json.message).fadeIn();
                }, "json");
        });

    }
}

var removeCompare = {
    ready : function() {
        $("a.remove").unbind("click").bind("click", function($e) {
            $e.preventDefault();
            // Just hide this element!!
            var hideid = "td[removeid=" + $(this).attr("hideid") + "]";
            $(hideid).hide(1000);

        });
    }
}

var loginSaveCompare = {
    ready : function() {
        // Dialog box
        $("#dialog-login-save").dialog(
        {
            autoOpen: false,
            bgiframe: true,
            resizable: true,
            height: 250,
            modal: true,
            overlay:
            {
                backgroundColor: '#000',
                opacity: 0.5
            },
            title: "Login to Save Car",
            buttons:
            {
                'Cancel': function()
                {
                    $(this).dialog('close');
                },
                'Login': function()
                {
                    var car_save_id = $("input#car_save_id").val();
                    // Grab input; send as POST
                    var data = $("form#form-save-car :input").serializeArray();
                    $.post(
                        "Includes/libs/SavedCarComparison-scripts/common-bookmark-jquery.php",
                        data,
                        function(json)
                        {

                            if (json.status == "fail")
                            {
                                // die and fail ...
                                // e,g do nothing; print out exception message!!
                                $("#sysmsglogin").removeClass("green");
                                $("#sysmsglogin").addClass("red");
                                $("#sysmsglogin").html(json.message).fadeIn();

                            }

                            if (json.status == "success")
                            {
                                // Just redirect ler ...
                                // Based on the redirect method ..
                                var redirect = $("form#form-save-car input[name=redirect]").val();
                                if (redirect == "compare-cars")
                                {
                                    window.location.assign("compare-cars.php");
                                }
                                else if (redirect == "detail-listings")
                                {
                                    window.location.assign("listings.php?id=" + car_save_id + "&from_compare=1");
                                }
                            }
                            
                        },
                        "json");

                }
            }

        });

        $("a.save-this-car").unbind("click").bind("click", function($e) {
            var car_save_id = $(this).attr("saveid");
            $("input#car_save_id").val(car_save_id);
            // Post to server side to remove session related to this compare function
            var data = {
                action : "savecar",
                saveid : car_save_id
            };

            // Call the savecar action ..
            $.post("Includes/libs/SavedCarComparison-scripts/common-bookmark-jquery.php",
                data,
                function(json)
                {

                    if (json.status == "success")
                    {
                        $("#sysmsg").removeClass("red");
                        $("#sysmsg").addClass("green");

                        // Change it value to Saved
                        var savetag = "a[saveid=" + car_save_id + "]";
                        // Change class
                        $(savetag).removeClass("save-this-car");
                        $(savetag).addClass("saved");
                        // Disable click ability
                        $(savetag).unbind("click").bind("click", function($e) {
                            $e.preventDefault();
                        });
                        $(savetag).html('Saved');

                    }
                    else if (json.status == "login")
                    {
                        $("#sysmsg").removeClass("green");
                        $("#sysmsg").addClass("red");
                        // Fill in the saveid to be POST-ed in the next page
                        $("#saveid").val(car_save_id);
                        // Show the login form!
                        // If failure; only open, otherwise just save it man ...
                        $("#dialog-login-save").dialog("open");
                    }
                    else if (json.status == "fail")
                    {
                        // e,g do nothing; print out exception message!!
                        $("#sysmsg").removeClass("green");
                        $("#sysmsg").addClass("red");
                    }
                    $("#sysmsg").html(json.message).fadeIn();

                },"json");
            $e.preventDefault();
            return false;
        });

        $("a.saved").unbind("click").bind("click", function($e) {
            $e.preventDefault();
        });

    // Should also bind the Login button for keyboard enter event ..
    // Bind to Login part ...
    }
}

var removeSaved = {
    ready : function() {
        $("a.delete").unload("click").bind("click", function($e) {
            var saved_car_id = $(this).attr("id");
            $("input#saved_car_id").val(saved_car_id);
            $("#dialog-confirm-deletion").dialog("open");
            $e.preventDefault();
        // Post action to remove from backend ...
        });

        $("#dialog-confirm-deletion").dialog({
            autoOpen: false,
            bgiframe: true,
            resizable: true,
            height: 140,
            modal: true,
            overlay: {
                backgroundColor: '#000',
                opacity: 0.5
            },
            title: "Delete Saved Car",
            buttons: {
                'No': function() {
                    $(this).dialog('close');
                },
                'Yes': function() {
                    var saved_car_id = $("input#saved_car_id").val();
                    window.location.assign("saved-cars.php?action=Delete&id=" + saved_car_id);
                }
            }
        });

    }
}

$(document).ready(checkBoxesCompare.ready);
$(document).ready(clearButtonCompare.ready);
$(document).ready(removeCompare.ready);
$(document).ready(loginSaveCompare.ready);
$(document).ready(removeSaved.ready);
