﻿$(document).ready(function () {

    Tracker.Start();
    Login.Start();
    Callback.Start();

    $('.SideMenu .Button').mouseover(function () {
        $(this).parent().addClass("On");
        $(this).parent().find('.DropSlideMenu').show();
        $(this).parent().find('.DropSlideMenu').mouseover(function () {
            $(this).parent().find(':first').addClass("On");
            $(this).show();
        }).mouseout(function () {
            $(this).parent().find(':first').removeClass("On");
            $(this).hide();
        });
    }).mouseout(function () {
        $('.DropSlideMenu').hide();
        $(this).parent().removeClass("On");
    });

    $(window).resize(ResizeHeight);
    ResizeHeight();

    //6 stars popup
    var URL = window.location.pathname.split("/");
    for (var i in URL) {
        //Bind if home
        if (URL[i] == "Home.aspx") {
            $('#HomePopUp').fadeIn();
            $('#HomePopUp .PopUp').click(function () {
                $('#HomePopUp').fadeOut();
            });
            $('#HomePopUp .Close').click(function () {
                $('#HomePopUp').fadeOut();
            });
        }
    }
});

var Tracker = function () {
    var loading = false;
    var open = false;

    return {

        Start: function () {            
            $('#TrackerForm').submit(function () {
                Tracker.Get(); return false;
            });
            $('#TrackerForm .Close').click(function () {
                Tracker.Close(); return false;
            });
            $('#TrackId').focus(function () {
                if ($(this).val() == $(this).attr('title')) {
                    $(this).val('');
                }
            });
            $('#TrackId').blur(function () {
                if ($(this).val() == '') $(this).val($(this).attr('title'));
            });
        },

        Get: function () {
            if (loading) return;
            loading = true;
            $('#TrackerForm .Loader').fadeIn(300);
            $.ajax({
                url: "API.ashx?a=TrackingGet&Id=" + $('#TrackId').val(), type: "GET", cache: false, dataType: "json",
                success: function (data, textStatus) {
                    if (!data.Error) {
                        Tracker.Load(data);
                    } else {
                        Tracker.Error(data);
                    }
                },
                error: function (xhr, status, error) {
                    alert(error); loading = false; $('#TrackerForm .Loader').fadeOut(300);
                }
            });
        },

        Load: function (data) {
            open = true;
            $("#Tracker .Left").empty();
            $("#Tracker .Right").empty();
            $("#Tracker .Bottom .Date").empty();
            $("#Tracker .Bottom .TrackDescription").empty();
            $("#Tracker .Bottom .Location").empty();
            $('#Tracker .Print').remove();

            $('#Tracker .Left').append('<p><b>Pickup:</b>&nbsp;' + data.DatePickup + '</p><p><b>Origem:</b>&nbsp;' + data.Origin + '</p><p><b>Destino:</b>&nbsp;' + data.Destination + '</p><p><b>Estado:</b>&nbsp;' + data.Status + '</p>');
            $('#Tracker .Right').append('<p><b>Serviço:</b>&nbsp;' + data.Service + '</p><p><b>Volumes:</b>&nbsp;' + data.Volumes + '</p><p><b>Peso:</b>&nbsp;' + data.Weight + '</p><p><b>Ass:</b>&nbsp;' + data.Signature + '</p>');
            $.each(data.Details, function (index) {
                $('#Tracker .Bottom .Date').append('<div class="Field">' + data.Details[index].Date + '</div>');
                $('#Tracker .Bottom .TrackDescription').append('<div class="Field">' + data.Details[index].Description + '</div>');
                $('#Tracker .Bottom .Location').append('<div class="Field">' + data.Details[index].Location + '</div>');
            });

            $('#Tracker .Middle').append('<div class="Print"><div class="Button" onclick="Tracker.Print(\'' + data.Id + '\');">IMPRIMIR</div></div>');

            $('#TrackerForm .Loader').fadeOut(300);
            $('#Tracker').animate({ "top": "-59px" }, "500", function () {
                $('#TrackerForm .Close').fadeIn(300);
                loading = false;
            });
        },

        Print: function (id) {
            window.open(ResolveUrl + 'views/TrackPrint.aspx?Id=' + id, 'Print');
        },

        Error: function (data) {
            if (open) Tracker.Close();
            $('#TopToolBar .ErrorMsg').empty();
            $('#TopToolBar .ErrorMsg').append('<span>' + data.Message + '</span>');
            $('#TopToolBar .ErrorMsg').fadeIn(300).delay(1500).fadeOut(300, function () {
                $('#TopToolBar .ErrorMsg').empty();
                loading = false;
            });
            $('#TrackerForm .Loader').fadeOut(300);
        },

        Close: function () {
            $('#TrackerForm .Close').fadeOut(300);
            $('#Tracker').animate({ "top": "-400px" }, "500", function () {
                open = false;
            });
            return false;
        }
    }
} ();

var Login = function () {

    var SlidedLogin = 0; //if login is slided down

    return {

        CloseFormLogin: function () {
            $('.LoginForm').animate({ "top": "-=120px" }, "300");
            SlidedLogin = 0;
            return false;
        },

        OpenFormLogin: function () {
            $('.LoginForm').animate({ "top": "+=120px" }, "300");
            SlidedLogin = 1;
        },

        Start: function () {

            $('.MyAlfaloc').click(function () {
                if (SlidedLogin != 1) {
                    Login.OpenFormLogin();
                }
                return false;
            });

            $('.LoginForm .Close').click(Login.CloseFormLogin);

            /*$('.LoginForm .Login').click(function () {
            window.open("http://www.alfaloc.info/myalfaloc.html", "Alfaloc | Login", "status=0, height=600, width=670, resizable=0, location=0");
            Login.CloseFormLogin();
            });*/

            /*$('.LoginForm .NewUser').click(function () {
            window.open("http://www.alfaloc.info/myalfaloc/novouser.php", "Alfaloc | Login", "status = 0, height = 600, width = 820, resizable = 0, scrollbars=1, location = 0");
            Login.CloseFormLogin();
            });*/
        }
    }
} ();


var Callback = function () {

    var rootElement = '#CallbackLink';

    return {
        Start: function () {
            $(rootElement).fancybox({
	            'transitionIn'	:	'fade',
	            'transitionOut'	:	'fade',
	            'speedIn'		:	600, 
	            'speedOut'		:	200, 
	            'overlayShow'	:   false,
                'modal'         :   true,                
                'width'         : 410,
                'height'        : 360,
                'type'          : 'iframe',
                'onStart'       :   function() { $('#fancybox-close').show(); },
                'onClosed'      :   function() {  },
                'showCloseButton' : true
            });

        }       
    }
} ();

function NewsletterEmailCreate() {
    if(!Validation.IsEmail($('#NewsletterEmail').val()))
    {
        $('#NewsletterEmail').css('color', 'red');
    }
    else
    {
        $('#NewsletterEmail').css('color', '#666666');
        $('#NewsletterStatus').stop().hide().html('A processar...').fadeIn(function() {
            jQuery.ajax({ url: 'API.ashx', data: 'a=NewsletterEmailCreate&Email=' + $('#NewsletterEmail').val() + '&IdLanguage=' + IdLanguage, type: 'POST', cache: false, dataType: 'json',
                success: function (data, textStatus) {                    
                    $('#NewsletterStatus').fadeOut(function() {
                        $('#NewsletterStatus').html(data.Message).fadeIn()
                        window.setTimeout(function() { $('#NewsletterStatus').fadeOut(); }, 2000);
                    });                    
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) { alert(textStatus + ' ' + errorThrown); $('#NewsletterStatus').hide().empty(); }
            });
        });        
    }
    return false;
}

function ResizeHeight() {
    $('#Background').height($(document).height() + 'px');
    $('#HomePopUp').height($(document).height() + 'px');
}


var Validation = {
    IsNumberKey: function (evt) {
        try {
            var charCode = (evt.which) ? evt.which : event.keyCode
            if (charCode > 31 && (charCode < 48 || charCode > 57))
                return false;
        }
        catch (Error) { }
        return true;
    },
    IsEmail: function(str) {
        if (str.length == 0) return false;
        var re = /^[^\s()<>@,;:\/]+@\w[\w\.-]+\.[a-z]{2,}$/i
        return re.test(str);
    }
}


// Backoffice ///////////////////////////////////////
var Backoffice = {
    Load: function (Title, Url, Width, Height) { ZennWindow(Url, Width, Height); },
    Close: function () { ZennWindowClose(); },
    CloseAndRefresh: function () { ZennWindowCloseAndRefresh(); },
    CloseAndRedirect: function (Url) { ZennWindowCloseAndRedirect(Url); }
}


/*
* Zenn Window
*
* Copyright (c) 2009-01-24   
* David Oliveira | david.oliveira@zenn.pt
* 
* Depends:
*	jQuery v1.3
*
* Notes: To Close Window from URL target, call parent.ZennWindowClose();
*
*/

function ZennWindow(/*String*/URL, /*Number*/Width, /*Number*/Height) {
    var fwImagesPath = ResolveUrl + 'backoffice/images/';
    var modalWidth = Number(Width) + 20;
    var modalHeight = Number(Height);
    var modalPositionTop = (Number(jQuery(window).height()) - Number(modalHeight)) / 2;
    if (modalPositionTop < 0) modalPositionTop = 0;
    var modalPositionLeft = (Number(jQuery(window).width()) - Number(modalWidth)) / 2;
    if (modalPositionLeft < 0) modalPositionLeft = 0;

    jQuery('body').append('<div id="fwOverlay" style="position: absolute; top:0px; left:0px; z-index: 5; width: 100%; height:100%; filter: Alpha(Opacity=60); -moz-opacity:0.6; opacity: 0.6; background-color:#85BBEF;"></div>');
    if (modalHeight > jQuery('#fwOverlay').height())
        jQuery('#fwOverlay').height(modalHeight + 45);

    var ie = jQuery.browser.msie;
    var version = jQuery.browser.version;

    var border = '';
    if (ie && Number(version) < 8) {
        border = 'border:1px solid transparent;';
    }


    var html = '<div id="fwModal" style="display:none; position:absolute; top:' + modalPositionTop + 'px; left:' + modalPositionLeft + 'px; z-index:1000; width:' + modalWidth + 'px;">';
    html += '<div style="position:relative; display:block; height:25px;">';
    html += '<div style="position:absolute; left:0px; top:0px;"><img src="' + fwImagesPath + 'fw-left-top.gif" /></div>';
    html += '<div style="margin:0px 10px 0px 10px; ' + border + ' background:url(' + fwImagesPath + 'fw-right-middle.gif); text-align:right;"><span id="fwBtnClose" style="cursor:pointer;"><img src="' + fwImagesPath + 'fw-btn-close.gif" alt=""></span></div>';
    html += '<div style="position:absolute; right:0px; top:0px;"><img src="' + fwImagesPath + 'fw-right-top.gif" /></div>';
    html += '</div>';


    html += '<div style="position:relative; display:block; margin-top:-2px;">';
    html += '<div style="position:absolute; left:0px; top:0px; width:7px; height:' + modalHeight + 'px; background-image:url(' + fwImagesPath + 'fw-frame-left.gif);"></div>';
    html += '<div style="margin:-2px 7px 0px 7px; height:' + modalHeight + 'px; background-color:#FFFFFF;">';
    html += '<iframe width="' + Width + '" height="' + Height + '"  frameborder="0" marginwidth="0" marginheight="0" scrolling="NO" src="' + URL + '"></iframe>';
    html += '</div>';
    html += '<div style="position:absolute; right:0px; top:0px; width:7px; height:' + modalHeight + 'px; background-image:url(' + fwImagesPath + 'fw-frame-right.gif);"></div>';
    html += '</div>';

    html += '<div style="position:relative; display:block; height:7px;">';
    html += '<div style="position:absolute; left:0px; top:0px;"><img src="' + fwImagesPath + 'fw-bottom-left-c.gif" style="vertical-align:top;" /></div>';
    html += '<div style="margin:0px 7px 0px 7px; background-image:url(' + fwImagesPath + 'fw-bottom-middle.gif); height:7px;">&nbsp;</div>';
    html += '<div style="position:absolute; right:0px; top:0px;"><img src="' + fwImagesPath + 'fw-bottom-right-c.gif" style="vertical-align:top;" /></div>';
    html += '</div>';

    html += '</div>';
    jQuery('body').append(html);

    jQuery('#fwBtnClose').click(ZennWindowCloseAndRefresh);
    scroll(0, 0);
    document.documentElement.style.overflow = "hidden";
    jQuery('#fwModal').toggle('slow');

}

function ZennWindowClose() {
    jQuery('#fwOverlay').remove();
    jQuery('#fwModal').toggle('slow', function () {
        jQuery('#fwModal').remove();
        document.documentElement.style.overflow = "auto";
    });
}

function ZennWindowCloseAndRedirect(/*String*/URL) {
    ZennWindowClose();
    window.location = URL;
}

function ZennWindowCloseAndRefresh() {
    //ZennWindowClose();
    window.location.reload(true);
}

