﻿/*
*	JavaScript Document
*	DOCUMENTO: Funcoes basicas
*	CRIAO: 04/07/2009
*	AUTOR: Vinicius Vollrath (vinicius.vollrath@travelexplorer.com.br)
*	VERSAO: 1.0
*/

var DefaultURLTriper;
$(document).ready(function() {
    DefaultURLTriper = GetBaseUrlWS() + '/WSTriper.asmx';
});

// Funcao para inserir _blank em links externos
function LinkExterno() {
    $("a[rel*=external]").attr("target", "_blank");
}

// Funcao para inserir history.back em links de voltar
function LinkRetorno() {
    $("a[rel*=back]").click(function() { history.back(); return false });
}

// Funcao para inserir imprimir nos links
function LinkImprimir() {
    $("a[rel*=print]").click(function() { print(); })
}

// Funcao para inserir favoritos nos links
function LinkFavorito() {
    $("a[rel*=bookmark]").click(function() {
        if (document.all) window.external.AddFavorite(window.location.href, document.title);
        else if (window.sidebar) window.sidebar.addPanel(document.title, window.location.href, "")
    });
}

function GetBaseUrl() {

    var url = '';

    if (jQuery.url.attr("port") == null) {
        url = jQuery.url.attr("protocol") + '://' + jQuery.url.attr("host");
    }
    else {
        url = jQuery.url.attr("protocol") + '://' + jQuery.url.attr("host") + ':' + jQuery.url.attr("port");
    }

    if (url.indexOf('localhost', 0) > 0) {
        url = url + '/' + jQuery.url.segment(0);
    }

    //alert(url);

    return url;
}

//	Funcao para carregar flash
function carregaFlash(caminho, largura, altura) {
    document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="' + largura + '" height="' + altura + '">');
    document.write('<param name="movie" value="' + caminho + '">');
    document.write('<param name="quality" value="high">');
    document.write('<param name="wmode" value="transparent">');
    document.write('<param name="menu" value="false">');
    document.write('<embed wmode="transparent" src="' + caminho + '" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="' + largura + '" height="' + altura + '"></embed>');
    document.write('</object>');
}

// Pasquisa Pacotes
function PesquisaPacotes() {
    $(".info-avancada-pacote").hide();
    $(".bt-pacotes-pesquisa").click(
		function() {
		    $(this).toggleClass("bt-busca-simples")
		    $(".info-avancada-pacote").slideToggle("fast");
		}
	)
}

// Pasquisa Hoteis
function PesquisaHoteis() {
    $(".sel-crianca-hotel").hide();
    $(".info-avancada-hotel").hide();
    $(".bt-hoteis-pesquisa").click(
		function() {
		    $(this).toggleClass("bt-busca-simples")
		    $(".sel-crianca-hotel").slideToggle("fast");
		    $(".info-avancada-hotel").slideToggle("fast");
		}
	)
}

// Pasquisa Cruzeiros
function PesquisaCruzeiros() {
    $(".info-avancada-cruzeiro").hide();
    $(".bt-cruzeiros-pesquisa").click(
		function() {
		    $(this).toggleClass("bt-busca-simples")
		    $(".info-avancada-cruzeiro").slideToggle("fast");
		}
	)
}

// Pasquisa Carros
function PesquisaCarros() {
    $(".info-avancada-carro").hide();
    $(".bt-carros-pesquisa").click(
		function() {
		    $(this).toggleClass("bt-busca-simples")
		    $(".info-avancada-carro").slideToggle("fast");
		}
	)
}

// Pacotes do rodape
function PacotesDinamico() {
    $(".dinamico ul ul:last").addClass("ultimo");
    $(".dinamico ul:last").addClass("ultimo");
}

// Funcao para iniciar as demais
$(document).ready(function() {
    LinkExterno();
    LinkRetorno();
    LinkImprimir();
    LinkFavorito();

    // Inicia pesquisa avancada
    //PesquisaVoos();
    //PesquisaPacotes();
    PesquisaHoteis();
    PesquisaCruzeiros();
    PesquisaCarros();

    // Pacote rodape
    PacotesDinamico();

    // Abas
    $('.pesquisa .menu-abas a').click(function() { trocarAbas($(this)); return false; });

    // Contents of textboxes will be selected when receiving focus.
    $("input[type=text]").focus(function() { $(this).select(); });

});


function trocarAbas(obj) {
    var classAba = "." + obj.attr('href').replace('#', '');
    if (classAba != '.home') {
        var conteudoAba = obj.parents('.menu-abas').parent().find(classAba);
        var abas = obj.parents('.menu-abas').parent().find('.busca');
        if (conteudoAba.is('.hidden')) {
            conteudoAba.removeClass('hidden');
            abas.addClass('hidden');
            conteudoAba.removeClass('hidden');
            obj.parent().parent().find('li').removeClass('ativo');
            obj.parent().addClass('ativo');
        }
        obj.blur();
    }
}

function ValidatePassword(sender, args) {

    var URL = '' + window.location;
    var retorno = true;
    args.IsValid = retorno;

    $.ajax({
        type: "POST",
        url: DefaultURLTriper + "/SecurityPasswordValidate",
        data: "{'name':'" + $(".txtFirstName").val() + " " + $(".txtLastName").val() + "', 'email':'" + $(".txtLoginEmail").val() + "', 'password':'" + $(".txtLoginPassword").val() + "', 'confirmPassword':'" + $(".txtLoginConfirmPassword").val() + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        async: false,
        error: function(e) {
            //alert(e.responseText);
        },
        success: function(ret) {
            if (!ret.d) {
                retorno = false;
            }
        }
    });

    if (retorno) {
        $(".txtLoginPassword").removeClass('FieldErro');
        $(".txtLoginConfirmPassword").removeClass('FieldErro');
    }
    else {
        $(".txtLoginPassword").addClass('FieldErro');
        $(".txtLoginConfirmPassword").addClass('FieldErro');

        $(".txtLoginPassword").val('');
        $(".txtLoginConfirmPassword").val('');
    }

    args.IsValid = retorno;
    return retorno;

}

function ClickDetail(btn) {
    var journeyIndex = btn.id.split('_')[1];
    $("#panel_" + journeyIndex).slideToggle("slow");
    $("#boxConfirmaPe_" + journeyIndex).toggleClass("activeConfirmaDirPe");
    $("#btnslide_" + journeyIndex).toggleClass("activeConfirma");
    $(this).toggleClass("activeConfirma");
    if ($("#btnslide_" + journeyIndex).text() == $('#maisFechar').text()) {
        $("#btnslide_" + journeyIndex).html($('#maisInformacoes').text());
    }
    else {
        $("#btnslide_" + journeyIndex).html($('#maisFechar').text());
    }
    return false;
}

function ValidateIata(oSrc, args) {
    var arrival = $('[id$=txtArrival_hdfIata]').val();
    var departure = $('[id$=txtDeparture_hdfIata]').val();
    if (departure == arrival) {
        return args.IsValid = false;
    } 
}

function validatePeriodFlightSearch(oSrc, args) {   
    
    departureTime = $("#" + $("#divDdlDepartureTimeId").html()).val();
    departureTime = Number(departureTime == "" ? "0" : departureTime);
    arrivalTime = $("#" + $("#divDdlArrivalTimeId").html()).val();
    arrivalTime = Number(arrivalTime == "" ? "0" : arrivalTime);

    departureDate = $("#" + $("#divTxtDepartureDateId").html() + "_TextBox").val()
    arrivalDate = $("#" + $("#divTxtArrivalDateId").html() + "_TextBox").val()

    divAdvancedSearch = $("#divAdvancedSearch");
    if (
        (departureTime >= arrivalTime) &&
        (departureTime != 0) &&
        (arrivalTime != 0) &&
        (departureDate == arrivalDate) &&
        (departureDate != "")
    ) {
        if (departureTime > arrivalTime) {
            //$("#" + $("#divDdlArrivalTimeId").html()).val(departureTime + 1);
            return args.IsValid = false;
        }
    }
}
function valPaymentCheckbox(oSrc, args) {
    return args.IsValid = $(".rdOpcoesPagamento:checked")[0] == null ? false : true;

}

// Validação de CPF e CNPJ
function valida_CPFCNPJ(oSrc, args) {
    //alert(args.Value.replace('.', '').replace('.', '').replace('-', ''))
    args.Value = args.Value.replace('.', '').replace('.', '').replace('-', '')
    if (args.Value.length == 11) {
        valida_CPF(oSrc, args);
        //	} else if (args.Value.length == 11) {
        //		valida_CNPJ(oSrc, args);
    } else {
        return args.IsValid = false;
    }
}

//Validação de CPF
function valida_CPF(oSrc, args) {
    s = args.Value;
    if (isNaN(s)) {
        return args.IsValid = false;
    }

    if (someNumberCombinations(s))
        return args.IsValid = false;

    var i;
    var c = s.substr(0, 9);
    var dv = s.substr(9, 2);
    var d1 = 0;
    for (i = 0; i < 9; i++) {
        d1 += c.charAt(i) * (10 - i);
    }
    if (d1 == 0) {
        return args.IsValid = false;
    }
    d1 = 11 - (d1 % 11);
    if (d1 > 9) d1 = 0;
    if (dv.charAt(0) != d1) {
        return args.IsValid = false;
    }
    d1 *= 2;
    for (i = 0; i < 9; i++) {
        d1 += c.charAt(i) * (11 - i);
    }
    d1 = 11 - (d1 % 11);
    if (d1 > 9) d1 = 0;
    if (dv.charAt(1) != d1) {
        return args.IsValid = false;
    }
    return args.IsValid = true;
}

function someNumberCombinations(s) {
    var c = s.charAt(0);
    var flgErro = true;
    for (var i = 1; i < s.length; i++)
        if (s.charAt(i) != c) {
        flgErro = false;
        break;
    }

    if (flgErro)
        return true;

    if (s == '01234567890')
        return true;

    return false;

}


///Validação de CNPJ
function valida_CNPJ(oSrc, args) {
    s = args.Value;
    if (isNaN(s)) {
        return args.IsValid = false;
    }
    var i;
    var c = s.substr(0, 12);
    var dv = s.substr(12, 2);
    var d1 = 0;
    for (i = 0; i < 12; i++) {
        d1 += c.charAt(11 - i) * (2 + (i % 8));
    }
    if (d1 == 0)
        return args.IsValid = false;
    d1 = 11 - (d1 % 11);
    if (d1 > 9) d1 = 0;
    if (dv.charAt(0) != d1) {
        return args.IsValid = false;
    }
    d1 *= 2;
    for (i = 0; i < 12; i++) {
        d1 += c.charAt(11 - i) * (2 + ((i + 1) % 8));
    }
    d1 = 11 - (d1 % 11);
    if (d1 > 9)
        d1 = 0;
    if (dv.charAt(1) != d1) {
        return args.IsValid = false;
    }
    return args.IsValid = true;
}


function hideCalendar() {
    $("#btnCloseCalendar").click();

}

// Carregar imagens reais dos elementos de img
function PreLoadImage() {
    try {
        var imgs = document.body.getElementsByTagName("IMG");
        for (var i = 0; i < imgs.length; i++) {
            var real = imgs[i].getAttribute("srcreal");
            if (real) {
                imgs[i].src = real;
                imgs[i].style.visibility = "visible";
                imgs[i].onerror = onErrorPreLoadImage;
            }
        }
    }
    catch (ex) { }
}

// Evento disparado quando imagem carregou
var onErrorPreLoadImage = function() {
    try {
        this.src = GetBaseUrlIMG() + '/semImagem.png';
    }
    catch (ex) { }
}

function DisableButton(group) {
    if (typeof (Page_ClientValidate) == 'function') {
        if (Page_ClientValidate(group) == false) {
            $(".CarregandoPequeno").hide();
            return false;
        }
        if (document.getElementById('validate').value == 'true') {
            $(".CarregandoPequeno").hide();
            return false;
        }
        else
            document.getElementById('validate').value = true;
    }
}

function RegisterComplete() {
    var janela;
    w = 957;
    h = 600;
    LeftPosition = (screen.width) ? (screen.width - w) / 2 : 0;
    TopPosition = (screen.height) ? (screen.height - h) / 2 : 0;
    janela = window.open('http://www.viajanet.com.br/monte-seu-pacote/login.aspx?from=dp', 'Cadastrar', 'left=' + LeftPosition + ',top=' + TopPosition + ',width=' + w + ', height=' + h + ',scrollbars=yes');
}

function validate_date_ADT(oSrc, args) {
    var returno = validate_date(oSrc, args, "ADT");
    return args.IsValid = returno;
}

function validate_date_CHD(oSrc, args) {
    var returno = validate_date(oSrc, args, "CHD");
    return args.IsValid = returno;
}

function validate_date_INF(oSrc, args) {
    var returno = validate_date(oSrc, args, "INF");
    return args.IsValid = returno;
}

function calculateAge(param) {
    var arrDate = param.split('/');
    var now = new Date();
    var ageCalc = now.getFullYear() - arrDate[2];

    if ((now.getMonth() + 1) < arrDate[1] || ((now.getMonth() + 1) == arrDate[1] && now.getDate() < arrDate[0])) {
        ageCalc--;
    }
    return ageCalc;
}

function validate_date(oSrc, args, type) {

    if (args.Value == "" || args.Value.length < 10) { return false; }

    if (!isDateValid(args.Value))
        return false;

    var age = calculateAge(args.Value);

    if (age < 0)
        return false;

    var ageChd = 11;
    var ageInf = 1;

    if (type == "ADT") {
        if (age <= ageChd) { return false; }
        else { return true; }
    }
    if (type == "CHD") {
        if ((age > ageChd) || (age <= ageInf)) { return false; }
        else { return true; }
    }
    if (type == "INF") {
        if (age > ageInf) { return false; }
        else { return true; }
    }
}
function isDateValid(data) {
    var parts = data.split('/');
    if (parts.length != 3)
        return false;

    var dtNasc = new Date(parts[2], Number(parts[1]) - 1, parts[0]);

    if (dtNasc.getFullYear() != Number(parts[2]) ||
            (dtNasc.getMonth() + 1) != Number(parts[1]) ||
            dtNasc.getDate() != Number(parts[0]))
        return false;

    return true;
}


function validate_LengthName(oSrc, args) {

    var nameID = oSrc.id.replace('cvl', 'txt').replace('txtSurname', 'txtName').replace('NameReserve', 'Name');
    var surnameID = oSrc.id.replace('cvl', 'txt').replace('txtName', 'txtSurname').replace('SurnameReserve', 'Surname');

    var nome = $("#" + nameID).val() + " " + $("#" + surnameID).val();

    if (nome.length >= 32)
    { return args.IsValid = false; }

    return args.IsValid = true;
} 


    function onSubmitForm() {
        param1.revp('eutil');
        return false;
    }
