﻿/// <reference path="jquery-1.5.1-vsdoc.js" />


jQuery.extend({
    postJSON: function (url, data, callback) {
        return jQuery.post(url, data, callback, "json");
    }
});

function formatCurrency(num) {
    num = num.toString().replace(/\$|\,/g, '');
    if (isNaN(num)) {
        num = "0";
    }
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num * 100 + 0.50000000001);
    cents = num % 100;
    num = Math.floor(num / 100).toString();
    if (cents < 10) {
        cents = "0" + cents;
    }
    for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++) {
        num = num.substring(0, num.length - (4 * i + 3)) + ',' + num.substring(num.length - (4 * i + 3));
    }
    return (((sign) ? '' : '(') + '$' + num + '.' + cents + ((sign) ? '' : ')'));
}


function fadeOut(selector) {
    //$(selector).fadeTo('fast', 0.5);
}
function fadeIn(selector) {
    //$(selector).fadeTo('fast', 1);
}

function switch_tabs(obj) {
    $('.tab-content').hide();
    $('.tabs a').removeClass("selected");
    var id = obj.attr("rel");

    $('#' + id).show();
    obj.addClass("selected");
}


function openDialog() {
    //$(".dialog").dialog("close");
    if ($(".miniCartDialog").is(":visible")) {
        $(".miniCartDialog").dialog("close");
    }
    else
    {

        $(".miniCartDialog").dialog("open");

    }

    if($(".whyHiddenPriceDialog").is(":visible"))
    {
        $(".whyHiddenPriceDialog").dialog("close");
    }
    else
    {
        $(".whyHiddenPriceDialog").dialog("open");
    }
}

function prepareDialogsMiniCart() {
    
        $(".miniCartDialog").dialog({
            autoOpen: false,
            show: "blind",
            hide: "blind",
            stack: true,
            position: [845, 370]
        });

        $(".whyHiddenPriceDialog").dialog({
            autoOpen: false,
            show: "blind",
            hide: "blind",
            stack: true,
            position: [845, 370]
        });


    }


    // clear text boxes
    $(document).ready( function (){
        $('.submitfield input').click(function () {

            $(this).val('');

        });
    });

    //prepare header drop down boxes
    function prepareHeaderDropdowns() {
        $(".customer-service-dd").css({ opacity: 0.9 });
        $(".shipping-dropdown").css({ opacity: 0.9 });

        $(".cs-dropdown").click(function (ev) {
            ev.stopPropagation();

            $(".newsletter-dd").hide();
            $(".customer-service-dd").toggle();
            switchArrows();
        });

        $(".nl-dropdown").click(function (e) {
            e.stopPropagation();
            $(".customer-service-dd").hide();
            $(".newsletter-dd").toggle();
            switchArrows();
        });

        $(".shipping-dd").click(function (e) {
            e.stopPropagation();
            $(".shipping-dropdown").toggle();
        });



        $(".customer-service-dd").click(function (f) {
            f.stopPropagation();
        });

        $(".newsletter-dd").click(function (f) {
            f.stopPropagation();
            $(this).val
        });

        $(".shipping-dropdown").click(function (f) {
            f.stopPropagation();
        });


        $("body").click(function () {
            
            if ($(".customer-service-dd").is(":visible") == true) {
                $(".customer-service-dd").toggle();
               
            }

            if ($(".newsletter-dd").is(":visible") == true) {
                $(".newsletter-dd").toggle();
            }

            if ($(".shipping-dropdown").is(":visible") == true) {
                $(".shipping-dropdown").toggle();
            }
            switchArrows();
        });

         
    } 

    $(window).load(function () {
        if ($('.pr-snippet-rating-decimal').html() != '0.0') {
            $('.pr-snippet-rating-decimal').css('cssText', "display: inline !important");
        }
    });
    function loadReviews() {
        $(".pr_snippet_category").each(function () {
            var id = $(this).attr("id").replace("rating-", "");
            var pr_snippet_min_reviews = 0;
            POWERREVIEWS.display.snippet(
            {
                write: function (content) {
                    $(this.div).append(content);
                    //alert($(this.div).html());
                },
                div: this
            },
            { pr_page_id: id }
        );
            
            if ($(this).html().indexOf("<link") != -1) {

            }
            else {
               $(this).prepend('<link rel="stylesheet" href="http://cdn.powerreviews.com/repos/14751/pr/pwr/engine/pr_styles_review.css" type="text/css" id="prBaseStylesheet">' +
'<link rel="stylesheet" href="http://cdn.powerreviews.com/aux/14751/822029/css/express.css" type="text/css" id="prMerchantOverrideStylesheet">')
            }
       });
      
    }




    function checkLocation(userIp) {
        var ip = userIp;
        if (typeof (Number.prototype.toRad) === "undefined") {
            Number.prototype.toRad = function () {
                return this * Math.PI / 180;
            }
        }
        $('#COOLWIDGET').geoWidget({
            ip: ip,
            ipinfodbKey: '4422cfe748baf3ff227b74e273114250d7b0d71625d4ce54ee0e47a4466bcea1',
            title: '',
            address: '', // Paris, France
            latitude: '', // 48.8566667
            longitude: '', // 2.3509871
            textFieldStyle: 'width:0em; display:none',
            mapStyle: 'width:0em; height:0em; display:none',
            imageAddressValid: '',
            imageAddressInvalid: '',
            imageAjaxLoader: '',
            callback: function (address, latitude, longitude, errorCode, errorMessage) {
                if (errorCode == undefined && errorMessage == undefined) {
                    //alert('Result=' + address + ' (' + latitude + ', ' + longitude + ')');
                    var myLatitude = 40.279827;
                    var myLongitude = -75.299342;
                    var VisitorLatitude = parseFloat(latitude);
                    var VisitorLongitude = parseFloat(longitude);

                    var R = 6371; // km
                    var dLat = (VisitorLatitude - myLatitude).toRad();
                    var dLon = (VisitorLongitude - myLongitude).toRad();
                    var lat1 = myLatitude.toRad();
                    var lat2 = VisitorLatitude.toRad();

                    var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
                    Math.sin(dLon / 2) * Math.sin(dLon / 2) * Math.cos(lat1) * Math.cos(lat2);
                    var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
                    var distance = R * c;
                    //alert("The Distance between WWS and you is:" + distance);
                    $('.ip-address').html("IP: " + ip);
                    $('.distance').html("Distance: " + distance.toFixed(0) + "km");


                    if (distance > 160) {
                        $.cookie('IsLocal', 'False', { expires: 3000, path: '/' });
                    }
                    else {
                        $.cookie('IsLocal', 'True', { expires: 3000, path: '/' });
                    }
                } else {
                    // most possible error codes are: MISSING_IPINFODB_KEY, UNKNOWN_IP, ZERO_RESULTS and OVER_QUERY_LIMIT
                    //alert('[' + errorCode + '] ' + errorMessage);
                }
            }
        }); //END Geowidget



    }

    (function ($) {
        // VERTICALLY ALIGN FUNCTION
        $.fn.vAlign = function () {
            return this.each(function (i) {
                var ah = $(this).height();
                var ph = $(this).parent().height();
                var mh = Math.ceil((ph - ah) / 2);
                if (mh > 0) {
                    $(this).css('margin-top', mh);
                } else {
                    $(this).css('margin-top', 0);
                }
            });
        };
    })(jQuery);
