/* ********************************
* FFC Resorts Javascript *********
* Author: Cuban Council **********
******************************** */
var brandHeight = 0;
$(document).ready(function() {
    brandHeight = $("#brand").height();
});


function getFlashMovie(movieName) {
    var isIE = navigator.appName.indexOf("Microsoft") != -1;
    return (isIE) ? window[movieName] : document[movieName];
}

function expandSlideImage() {
    setTimeout('expandFlash()', 500);
}

function contractSlideImage() {
    //contractFlash();
    //alert("go");
    setTimeout('contractFlash()', 500);
    //alert(brandHeight);
    $("#subnav").stop().animate({
        "top": "361px"
    }, 500);
    $(".content-block").stop().animate({
        "top": "0px"
    }, 500);

    $(".content-block-home").stop().animate({
        "top": "0px"
    }, 500);

    $("#head.resortshome #resortsnav").stop().animate({
        "top": "350px"
    }, 500);
    
    
    $("#brand").stop().animate({
        "height": brandHeight + "px"
    }, 500);


}

function expandFlash() {
    //getFlashMovie("brandflash").expansionComplete();

    //$("#brand").stop().css('z-index', 1);
    //alert("go");
    $("#subnav").stop().animate({
        "top": "720px"
    }, 500);

    $(".content-block").stop().animate({
        "top": "360px"
    }, 500);

    $(".content-block-home").stop().animate({
        "top": "360px"
    }, 500);

    $("#head.resortshome #resortsnav").stop().animate({
        "top": "709px",
        "*top": "713px"
    }, 500);


    $("#brand").stop().animate({
        "height": "853px"
    }, 500);
}

function contractFlash() {
   getFlashMovie("brandflash").contractionComplete();
   getFlashMovie("brandflash").updateControls();
    //$("#brand").stop().css('z-index', 1);
    //alert("go");
}
 
 
/* Custom Form select 
$(document).ready(function() {
    $('.selector').each(function(i) {
        var myselector = "<div class='select selectfield'><ul>";
        $(this).children("option").each(function(i) {
            var meme = i == 0 ? " class='first' " : ""
            myselector = myselector + "<li" + meme + "><a href='" + $(this).attr("value") + "'>" + $(this).html() + "</a></li>";
        });
        var myselector = myselector + "</ul></div>";
        var myselector = myselector + "<input type='hidden' name='" + $(this).attr("name") + "' id='" + $(this).attr("id") + "' value='" + $(this).children("option").attr("value") + "' />";

        $(this).after(myselector);
        $(this).remove();
    });
    $(".select.selectfield ul").bind("mouseenter", function(e) { $(this).children("li").css("display", "block"); });
    $(".select.selectfield ul").bind('mouseleave', function(e) { $(this).children("li").css("display", "none"); });
    $(".select.selectfield ul li a").bind("click", function(e) {
        $(this).parent(0).parent(0).parent(0).next().attr("value", $(this).attr("href"));

        $(this).parent(0).siblings().removeClass("first");
        $(this).parent(0).addClass("first");
        $(this).parent(0).prependTo($(this).parent(0).parent(0));

        $(this).parent(0).siblings("li").css("display", "none");
        return false;
    });
});*/

        

// Accordion
$(document).ready(function() {
if ($(".accordion").html != null){
initAccordion();
}
});
function initAccordion() {
$('.accordion li .acc2').hide();
$('.accordion li:first .acc2').show();
$('.accordion li:first .acc1').addClass("active")
$('.accordion li a.acc1').click( function() {
var accLink = $(this);
var accBody = $(this).siblings(".acc2");
if( accBody.is(':visible') ) {
return false;
} else {
$('.accordion .acc2:visible').siblings(".acc1").removeClass("active");
$('.accordion .acc2:visible').slideUp('slow', function(){ });
$('.accordion .acc2:visible').children(".image").hide();
            
accLink.addClass("active");
accBody.slideDown('slow', function(){});
accBody.children(".image").show();
return false;
}
});
}


// Gallery Carousel 
jQuery(document).ready(function() {
if( $("#body.gallery").html() != null ){
$("#body.gallery #subcontent").jcarousel({
scroll: 1,
initCallback: mycarousel_initCallback,
buttonNextHTML: null,
buttonPrevHTML: null,
itemFirstInCallback: mycarousel_callback,
scroll: 5
});
}
});
function mycarousel_callback(a, b, c, d){ // inactive pagination
var lastPage = $('#body.gallery .pagination .numbers a:last').attr("rel");
var totalPages = $('#body.gallery #subcontent ul li').length
var prevLink = $('#body.gallery .pagination .prev');
var nextLink = $('#body.gallery .pagination .next');
//alert($(this).attr("rel") +" == "+ (totalPages-4));
$('#body.gallery .pagination .numbers a').each(function(i){
$(this).attr("rel") == c ? $(this).addClass("inactive") : $(this).removeClass("inactive");//set matching #
c == lastPage || c == (totalPages-4) ? $('#body.gallery .pagination .numbers a:last').addClass("inactive") : ""//if last set last #
        
c == 1 ? prevLink.addClass("inactive") : prevLink.removeClass("inactive");//if first inactivate prev link
c == lastPage || c == (totalPages-4) ? nextLink.addClass("inactive") : nextLink.removeClass("inactive");//if last inactivate next link
});
}
function mycarousel_initCallback(carousel) { // Click events
$('#body.gallery .pagination .numbers a').bind('click', function() {
carousel.scroll(jQuery.jcarousel.intval(jQuery(this).attr("rel")));
return false;
});
$('#body.gallery .pagination .next').bind('click', function() {
carousel.next();
return false;
});
$('#body.gallery .pagination .prev').bind('click', function() {
carousel.prev();
return false;
});
}// 


/* rotate news */
$(document).ready(function(){ $(".news .message").length > 0 ? setInterval("rotateNews()",5000) : "" });
var myNewsItems = "";
var myNewsCount = 0;
var currentNewsItem = 0;
function rotateNews(){
    myNewsItems == "" ? myNewsItems = $(".news .message") : ""
    myNewsCount == 0 ? myNewsCount = (myNewsItems.length-1) : ""
    $.each( myNewsItems, function(i, n){
        if (i == currentNewsItem) {
            $(n).fadeIn("slow");
        } else {
            $(n).fadeOut("slow");
        }
    });
    currentNewsItem < myNewsCount ? currentNewsItem++ : currentNewsItem = 0
}

///Resorts Navigation v2
$(document).ready(function(){
    
    /*$("#head.aninav #nav ul li ul").each(function(){
        alert($(this).height())
        $(this).css("top", "-"+$(this).css("height"));//override default css state
    });**/
    $("#head.aninav #nav ul li ul").css("top", "-175px");//override default css state
    
    $("#head.aninav #nav ul li").not("#head.aninav #nav ul li ul li").bind("mouseover", function(e){//mouseenter
        $(this).find(".dropdown").css("display", "block");
        $(this).css("z-index", "10");
        $(this).find("ul").stop();
        $(this).find("ul").animate({ top: "0" }, 600, "easeOutCirc");
    });
    $("#head.aninav #nav ul li").not("#head.aninav #nav ul li ul li").bind("mouseout", function(e){//mouseleave
        $(this).find("ul").css("display", "block");//override default css state
        $(this).css("z-index", "9");
        $(this).find("ul").stop();
        var self = $(this);
        var myHeight = $(this).find("ul").height();
        //$(this).find("ul").animate({ top: "-"+$(this).find("ul").css("height") }, 600, "easeInOutCirc", function(){
        $(this).find("ul").animate({ top: "-"+myHeight+"px" }, 250, "easeInOutCirc", function(){
            self.find(".dropdown").css("display", "none");
        } );
    });
    
});


// Mailing list - Ajax 
$(document).ready(function(){
    
    // Configure postUrl - This is where the email is posted to and a return message is expected.
    // Return Messages: "success", "error", "duplicate"
var posturl = "/Services/EmailSignup";
    
    //action tied to submit form
    $(".mailinglist form.action").bind("submit", function() {
        
        //define vars ////////////////////////////////
        if ( $(this).parent().parent().parent().attr("id") == "foot" ){
            var myForm = $('#foot .mailinglist form.action');
            var myText = $('#foot .mailinglist form.action .mailing-text');
            var mySubmit = $('#foot .mailinglist form.action .mailing-submit');
            var myLoading = $('#foot .mailinglist form.action .loading');
            var myError = $('#foot .mailinglist .error');
            var myInvalid = $('#foot .mailinglist .invalid');
            var myDuplicate = $('#foot .mailinglist .duplicate');
            var myMessage = $('#foot .mailinglist .default');
            var mySuccess = $('#foot .mailinglist .success');
            var myEmail = myText.val();
        }else if ( $(this).parent().parent().attr("id") == "subcontent" ) {
            var myForm = $('#subcontent .mailinglist form.action');
            var myText = $('#subcontent .mailinglist form.action .mailing-text');
            var mySubmit = $('#subcontent .mailinglist form.action .mailing-submit');
            var myLoading = $('#subcontent .mailinglist form.action .loading');
            var myError = $('#subcontent .mailinglist .error');
            var myInvalid = $('#subcontent .mailinglist .invalid');
            var myDuplicate = $('#subcontent .mailinglist .duplicate');
            var myMessage = $('#subcontent .mailinglist .default');
            var mySuccess = $('#subcontent .mailinglist .success');
            var myEmail = myText.val();
        }else{ // default /////////
            var myForm = $('.mailinglist form.action');
            var myText = $('.mailinglist form.action .mailing-text');
            var mySubmit = $('.mailinglist form.action .mailing-submit');
            var myLoading = $('.mailinglist form.action .loading');
            var myError = $('.mailinglist .error');
            var myInvalid = $('.mailinglist .invalid');
            var myDuplicate = $('.mailinglist .duplicate');
            var myMessage = $('.mailinglist .default');
            var mySuccess = $('.mailinglist .success');
            var myEmail = myText.val();
        }////////////////////////////////////////////
        
        // show loading 
        mySubmit.hide(0);
        myLoading.fadeIn(0);
        // hide any messages that may be active
        myError.hide(0);
        myInvalid.hide(0);
        myDuplicate.hide(0);
        myMessage.hide(0);
        mySuccess.hide(0);
        // proccess request // if a valid email
        if( echeck(myEmail) ) {             
            //send request
            $.post( posturl, { email: myEmail }, function(data) {
                //alert("["+data+"]");
                if( data == "success" ) {
                    mySuccess.show(0);
                    myText.hide(0);
                    mySubmit.hide(0);
                    myLoading.hide(0);
                } else if( data == "error" ) {
                    myError.show(0, function(){
                        mySubmit.show(0);
                        myLoading.hide(0);
                    });
                } else if( data == "duplicate" ) {
                    myDuplicate.show(0, function(){
                        mySubmit.show(0);
                        myLoading.hide(0);
                    });                    
                } else {
                    myError.show(0, function(){
                        mySubmit.show(0);
                        myLoading.hide(0);
                    });
                }
            });
        } else {//if not a valid email
            myLoading.hide(0);
            mySubmit.show(0);
            myInvalid.show(0);//fadeIn has issues in ie in the footer
        }
        return false; //stop the form from submitting.
    });
});

//Validate email address
function echeck(str) {
    var at="@";
    var dot=".";
    var lat=str.indexOf(at);
    var lstr=str.length;
    var ldot=str.indexOf(dot);
    if (str.indexOf(at)==-1){ return false; }
    if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){ return false; }
    if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){ return false; }
    if (str.indexOf(at,(lat+1))!=-1){ return false; }
    if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){ return false; }
    if (str.indexOf(dot,(lat+2))==-1){ return false; }
    if (str.indexOf(" ")!=-1){ return false; }
    return true;
}
