/* Thiago jQuery-main */

function stopRKey(evt) {
   var evt = (evt) ? evt : ((event) ? event : null);
   var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
   if ((evt.keyCode == 13) && (node.type=="text")) {return false;}
}

document.onkeypress = stopRKey;

$(document).ready(function() {
    var timezone = getTimezoneName();
    $(".timezone").val(timezone);


    $(".nav-item").hover(
        function(){
            if(!$(this).hasClass("mouseHover")){
                $(this).addClass("mouseHover");
            }
        }, function(){
            if(!$(this).hasClass("navActive")){
                $(this).removeClass("mouseHover");
            }
        });

    $(".galleryDeals").width($(".deal").length * 125);
    var tempo = 0;
    var tempo2 = 0;
    $(".leftArrow").mouseover(function(){
        tempo2 = setInterval(moveLeft, 100);
    });
    $(".leftArrow").mouseout(function(){
        clearInterval(tempo2);
    });
    $(".rightArrow").mouseover(function(){
        tempo = setInterval(moveRight, 100);
    });
    $(".rightArrow").mouseout(function(){
        clearInterval(tempo);
    });


    $('.phone').keyup(function () {
        this.value = this.value.replace(/[^0-9\.]/g,'');
    });

    $('.news_41').click(function(){
       $('.news_41').attr("checked");
       $('.news_42').removeAttr("checked");
    });
    $('.news_42').click(function(){
       $('.news_42').attr("checked");
       $('.news_41').removeAttr("checked");
    });
    $('.news_51').click(function(){
       $('.news_51').attr("checked");
       $('.news_52').removeAttr("checked");
    });
    $('.news_52').click(function(){
       $('.news_52').attr("checked");
       $('.news_51').removeAttr("checked");
    });

    $('.cancel').click(function(e){
        e.preventDefault();
        $(':input','#contest-form').not(':button, :submit, :reset, :hidden').val('').removeAttr('checked').removeAttr('selected');
    });

    $("#contest-form").submit(function(e){
        e.preventDefault();
        if(validForm()){
            $(".errors").addClass("hidden");
            $(".error_msg").addClass("hidden");
            $.post(
                $(this).attr("action"),
                $(this).serialize(),
                function(response){
                    if(response.status == "ok"){
                        $(".contest_form").addClass("hidden");
                        $(".signupTitle").addClass("hidden");
                        $(".thanks").removeClass("hidden");
                        $('html, body').animate({scrollTop: $(".thanks").offset().top}, 2000);
                    }else if(response.status == "duplicated"){
                        $(".errors").removeClass("hidden");
                        $(".error_duplicated").removeClass("hidden");
                        $('html, body').animate({scrollTop: $(".errors").offset().top}, 2000)
                    }
                }, "json"
            );
            $('html, body').animate({scrollTop: $(".thanks").offset().top}, 2000);
        }else {
            $(".errors").removeClass("hidden");
            $(".error_msg").removeClass("hidden");
            $('html, body').animate({scrollTop: $(".errors").offset().top}, 2000);
        }
        return false;
    });


    $(".eventApply").click(function(e){
        $(".eventApply").removeClass("applied");
        $(this).addClass("applied");
        e.preventDefault();
        $.post(
            $(this).attr("href"),
            {eid: $(this).attr("action")},
            function(response){
                if(response.status == "ok"){
//                    $(".popUp").show();
//                    $(".graybackground").show();
//                    $(".popUpUnsubscribe").hide();
//                    $(".textMsg").html(response.msg);
                }else {
                    alert(response.msg);
                }
            }, "json"
        );
    });

    $(".rsvp_all").click(function(e){
        $(".loading").show();
        e.preventDefault();
        $.post(
            $(this).attr("href"),
            function(response){
                if(response.status == "ok"){
                    $(".popUp").show();
                    $(".graybackground").show();
                    $(".popUpUnsubscribe").hide();
                    $(".dealName").hide();
                    $(".loading").hide();
                    $(".textMsg").html(response.msg);
                }else {
                    alert(response.msg);
                }
            }, "json"
        );
    });

    $(".additionalInfo").click(function(e){
        e.preventDefault();
        $.post(
            $(this).attr("href"),
            {eid: $(this).attr("action"), subscribe: 1},
            function(response){
                if(response.status == "ok"){
                    $(".popUp").show();
                    $(".graybackground").show();
                    $(".popUpUnsubscribe").show();
                    $(".textMsg").html(response.msg);
                }else {
                    alert(response.msg);
                }
            }, "json"
        );
        return false;
    });

    $(".popUpOk").click(function(e){
       $('.popUp').hide();
       $(".graybackground").hide();
    });

    $(".popUpClose").click(function(e){
       $('.popUp').hide();
       $(".graybackground").hide();
    });

    $(".graybackground").click(function(e){
       $('.popUp').hide();
       $(".graybackground").hide();
    });

    $(".popUpUnsubscribe").click(function(e){
        e.preventDefault();
        $.post(
            $(this).attr("href"),
            {eid: $(this).attr("action"), subscribe: 0},
            function(response){
                if(response.status == "ok"){
                    $(".popUp").hide();
                    $(".graybackground").hide();
                }else {
                    alert(response.msg);
                }
            }
        );
        return false;
    });

    $(".filter").click(function(e){
        e.preventDefault();
        $(".filter").removeClass("filterActive");
        if(!$(this).hasClass("filterActive")){
            $(this).addClass("filterActive");
        }

        $.post(
            $(this).attr("href"),
            function(response){
                $(".galleryDeals").html(response.html);
                $(".galleryDeals").width($(".deal").length * 125);
                $(".galleryDeals").css("margin-left", "0px");
            }, "json"
        );
    });

//    $(".cityChange").change(function(){
//        $.post(
//            "/l/"+lang+"/index/provincechange",
//            {province: $(this).val()},
//            function(response){
//                if(response.status == "ok") {
//                    window.location.href = "/l/"+lang+"/events/home"
//                }else{
//                    alert(response.msg);
//                }
//            }, "json"
//        );
//    });

    $("#forgotPasswordForm").submit(function(e){
        if(isValidMail($("#input1").val())){
            return true;
        }else {
            $(".errors").removeClass("hidden");
            $(".error_email_valid").removeClass("hidden");
            return false;
        }
    });
    
});

function validForm(){
    var isValid = true;

    var fname = $("input[name=firstName]");
    var lname = $("input[name=lastName]");
    var city = $("input[name=city]");
    var address = $("input[name=address]");
    var province = $(".province");
    var pw1 = $("input[name=password]");
    var pw2 = $("input[name=password2]");
    var phone1 = $("input[name=phone1]");
    var phone2 = $("input[name=phone2]");
    var phone3 = $("input[name=phone3]");
    var postal1 = $("input[name=postal1]");
    var postal2 = $("input[name=postal2]");

    if(!isValidMail($(".email").val())){
        $(".email").parent().addClass("error");
        $(".error_email_valid").removeClass("hidden");
        isValid = false;
    }else {
        $(".email").parent().removeClass("error");
        $(".error_email_valid").addClass("hidden");
    }

    if($(".email").val() == ""){
        $(".email").parent().addClass("error");
        $(".error_email").removeClass("hidden");
        isValid = false;
    }else {
        $(".email").parent().removeClass("error");
        $(".error_email").addClass("hidden");
    }

    if(fname.val() == ""){
        fname.parent().addClass("error");
        $(".error_fname").removeClass("hidden");
        isValid = false;
    }else {
        fname.parent().removeClass("error");
        $(".error_fname").addClass("hidden");
    }
    if(lname.val() == ""){
        lname.parent().addClass("error");
        $(".error_lname").removeClass("hidden");
        isValid = false;
    }else {
        lname.parent().removeClass("error");
        $(".error_lname").addClass("hidden");
    }
    if(city.val() == ""){
        city.parent().addClass("error");
        $(".error_city").removeClass("hidden");
        isValid = false;
    }else {
        city.parent().removeClass("error");
        $(".error_city").addClass("hidden");
    }
    if(address.val() == ""){
        address.parent().addClass("error");
        $(".error_address").removeClass("hidden");
        isValid = false;
    }else {
        address.parent().removeClass("error");
        $(".error_address").addClass("hidden");
    }

    if(province.val() == 0){
        province.parent().addClass("error");
        $(".error_province").removeClass("hidden");
        isValid = false;
    }else {
        province.parent().removeClass("error");
        $(".error_province").addClass("hidden");
    }

    if(pw1.val() != pw2.val()){
        pw1.parent().addClass("error");
        $(".error_pw_match").removeClass("hidden");
        isValid = false;
    }else {
        pw1.parent().removeClass("error");
        $(".error_pw_match").addClass("hidden");
    }

    if(pw1.val() == ""){
        pw1.parent().addClass("error");
        $(".error_pw1").removeClass("hidden");
        isValid = false;
    }else {
        pw1.parent().removeClass("error");
        $(".error_pw1").addClass("hidden");
    }

    if(pw2.val() == ""){
        pw2.parent().addClass("error");
        $(".error_pw2").removeClass("hidden");
        isValid = false;
    }else {
        pw2.parent().removeClass("error");
        $(".error_pw2").addClass("hidden");
    }

    if(phone1.val() == 0){
        phone1.parent().addClass("error");
        $(".error_phone").removeClass("hidden");
        isValid = false;
    }else {
        phone1.parent().removeClass("error");
        $(".error_phone").addClass("hidden");
    }
    if(phone2.val() == 0){
        phone2.parent().addClass("error");
        $(".error_phone").removeClass("hidden");
        isValid = false;
    }else {
        phone2.parent().removeClass("error");
        $(".error_phone").addClass("hidden");
    }
    if(phone3.val() == 0){
        phone3.parent().addClass("error");
        $(".error_phone").removeClass("hidden");
        isValid = false;
    }else {
        phone3.parent().removeClass("error");
        $(".error_phone").addClass("hidden");
    }

    var telephone = phone1.val() + "" + phone2.val() + "" + phone3.val();
    if(telephone.length < 10){
        phone1.parent().addClass("error");
        $(".error_phone_valid").removeClass("hidden");
        isValid = false;
    }else {
        phone1.parent().removeClass("error");
        $(".error_phone_valid").addClass("hidden");
    }

    if(postal1.val() == 0){
        postal1.parent().addClass("error");
        $(".error_postal").removeClass("hidden");
        isValid = false;
    }else {
        postal1.parent().removeClass("error");
        $(".error_postal").addClass("hidden");
    }

    if(postal2.val() == 0){
        postal2.parent().addClass("error");
        $(".error_postal").removeClass("hidden");
        isValid = false;
    }else {
        postal2.parent().removeClass("error");
        $(".error_postal").addClass("hidden");
    }

    var pcode = postal1.val() + " " + postal2.val();
    if(!isValidPostalCode(pcode)){
        postal1.parent().addClass("error");
        $(".error_postal_valid").removeClass("hidden");
        isValid = false;
    }else {
        postal1.parent().removeClass("error");
        $(".error_postal_valid").addClass("hidden");
    }

    return isValid;
}

function removeExternal(){
    return;
}

function word_count(field, words) {
    lang = $('#lang').val();
    number = 0;
    var matches = jQuery(field).val().match(/\b/g);
    if(matches) {
        number = matches.length/2;
    }
    val = 300 - $(field).val().length;
    if(lang == "fr")
        $('#counter').html("Il vous reste "+val+" caractères");
    else
        $('#counter').html("You have "+val+" caracters left");

    if(val > 0){
        if(number <= words){
            desc = jQuery(field).val();
        }else {
            jQuery(field).val(desc);
        }
    }else {
        jQuery(field).val(desc);
    }
}

function isValidMail(mail){
    var emailReg = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (emailReg.test(trim(mail))) {
        return true;
    } else {
        return false;
    }
}

function isValidPostalCode(postalCode) {
    postalCodeRegex = /^([a-zA-Z][0-9][a-zA-Z])\s*([0-9][a-zA-Z][0-9])$/;
    return postalCodeRegex.test(postalCode);
}


function trim(myString){
    return myString.replace(/^\s+|\s+$/g,"");
}

function inArray(val, arr){
    for(i = 0; i < arr.length; i++){
        if(arr[i] == val){
            return true;
        }
    }
    return false;
}

function moveRight(){
    var totalWidth = $(".deal").length * 125;
    var divWidth = 500;
    var toMove = divWidth - totalWidth;
    var margin = $(".galleryDeals").css("margin-left");
    margin = parseInt(margin.replace(/px/, ""));
    var newMargin = margin - 10;
    if(margin >= toMove){
        $(".galleryDeals").css("margin-left",newMargin+"px");
    }
}

function moveLeft(){
    var margin = $(".galleryDeals").css("margin-left");
    margin = parseInt(margin.replace(/px/, ""));
    var newMargin = margin + 10;
    if(margin + 10 < 0){
        $(".galleryDeals").css("margin-left",newMargin+"px");
    }
}

function getTimezoneName() {
    var tmSummer = new Date(Date.UTC(2005, 6, 30, 0, 0, 0, 0));
    var so = -1 * tmSummer.getTimezoneOffset();
    var tmWinter = new Date(Date.UTC(2005, 12, 30, 0, 0, 0, 0));
    var wo = -1 * tmWinter.getTimezoneOffset();

    if (-660 == so && -660 == wo) return 'Pacific/Midway';
    if (-600 == so && -600 == wo) return 'Pacific/Tahiti';
    if (-570 == so && -570 == wo) return 'Pacific/Marquesas';
    if (-540 == so && -600 == wo) return 'America/Adak';
    if (-540 == so && -540 == wo) return 'Pacific/Gambier';
    if (-480 == so && -540 == wo) return 'US/Alaska';
    if (-480 == so && -480 == wo) return 'Pacific/Pitcairn';
    if (-420 == so && -480 == wo) return 'US/Pacific';
    if (-420 == so && -420 == wo) return 'US/Arizona';
    if (-360 == so && -420 == wo) return 'US/Mountain';
    if (-360 == so && -360 == wo) return 'America/Guatemala';
    if (-360 == so && -300 == wo) return 'Pacific/Easter';
    if (-300 == so && -360 == wo) return 'US/Central';
    if (-300 == so && -300 == wo) return 'America/Bogota';
    if (-240 == so && -300 == wo) return 'US/Eastern';
    if (-240 == so && -240 == wo) return 'America/Caracas';
    if (-240 == so && -180 == wo) return 'America/Santiago';
    if (-180 == so && -240 == wo) return 'Canada/Atlantic';
    if (-180 == so && -180 == wo) return 'America/Montevideo';
    if (-180 == so && -120 == wo) return 'America/Sao_Paulo';
    if (-150 == so && -210 == wo) return 'America/St_Johns';
    if (-120 == so && -180 == wo) return 'America/Godthab';
    if (-120 == so && -120 == wo) return 'America/Noronha';
    if (-60 == so && -60 == wo) return 'Atlantic/Cape_Verde';
    if (0 == so && -60 == wo) return 'Atlantic/Azores';
    if (0 == so && 0 == wo) return 'Africa/Casablanca';
    if (60 == so && 0 == wo) return 'Europe/London';
    if (60 == so && 60 == wo) return 'Africa/Algiers';
    if (60 == so && 120 == wo) return 'Africa/Windhoek';
    if (120 == so && 60 == wo) return 'Europe/Amsterdam';
    if (120 == so && 120 == wo) return 'Africa/Harare';
    if (180 == so && 120 == wo) return 'Europe/Athens';
    if (180 == so && 180 == wo) return 'Africa/Nairobi';
    if (240 == so && 180 == wo) return 'Europe/Moscow';
    if (240 == so && 240 == wo) return 'Asia/Dubai';
    if (270 == so && 210 == wo) return 'Asia/Tehran';
    if (270 == so && 270 == wo) return 'Asia/Kabul';
    if (300 == so && 240 == wo) return 'Asia/Baku';
    if (300 == so && 300 == wo) return 'Asia/Karachi';
    if (330 == so && 330 == wo) return 'Asia/Calcutta';
    if (345 == so && 345 == wo) return 'Asia/Katmandu';
    if (360 == so && 300 == wo) return 'Asia/Yekaterinburg';
    if (360 == so && 360 == wo) return 'Asia/Colombo';
    if (390 == so && 390 == wo) return 'Asia/Rangoon';
    if (420 == so && 360 == wo) return 'Asia/Almaty';
    if (420 == so && 420 == wo) return 'Asia/Bangkok';
    if (480 == so && 420 == wo) return 'Asia/Krasnoyarsk';
    if (480 == so && 480 == wo) return 'Australia/Perth';
    if (540 == so && 480 == wo) return 'Asia/Irkutsk';
    if (540 == so && 540 == wo) return 'Asia/Tokyo';
    if (570 == so && 570 == wo) return 'Australia/Darwin';
    if (570 == so && 630 == wo) return 'Australia/Adelaide';
    if (600 == so && 540 == wo) return 'Asia/Yakutsk';
    if (600 == so && 600 == wo) return 'Australia/Brisbane';
    if (600 == so && 660 == wo) return 'Australia/Sydney';
    if (630 == so && 660 == wo) return 'Australia/Lord_Howe';
    if (660 == so && 600 == wo) return 'Asia/Vladivostok';
    if (660 == so && 660 == wo) return 'Pacific/Guadalcanal';
    if (690 == so && 690 == wo) return 'Pacific/Norfolk';
    if (720 == so && 660 == wo) return 'Asia/Magadan';
    if (720 == so && 720 == wo) return 'Pacific/Fiji';
    if (720 == so && 780 == wo) return 'Pacific/Auckland';
    if (765 == so && 825 == wo) return 'Pacific/Chatham';
    if (780 == so && 780 == wo) return 'Pacific/Enderbury'
    if (840 == so && 840 == wo) return 'Pacific/Kiritimati';
    return 'US/Pacific';
}
