/*
 * Company: Loc8 Code Ltd, http://www.loc8code.com
 * Author: Karl O'Leary
 * Description: main functionality
 * Version: 0.6.1
 */

/*
 * Change Log
 * Version 0.6.1
 * - changed the form to be able to check the length of the code before generating the code
 * Version 0.6
 * - cleaned out depreciated code related to slides
 * Version: 0.5
 * - merged the code to load tweets from inline in page
 * Version: 0.4
 * - absorbed the "buttons_badges" code
 * Version 0.3
 * - extracted form validation for maps/get_code5
 * Version 0.2
 * - refactored the code to handle multiple pages
 */

// ----------------------------------------------------------------------------- variables

var debug = false;
var feedback_options = {
    beforeSubmit:beforeFeedback,
    success: afterFeedback
};
var in_a = false;
var in_ul = false;
var menu_id = "";

// ----------------------------------------------------------------------------- onload

/*
 * On load code.
 */
jQuery(document).ready(function() {    
    logger("ready(start)");
    //logger("seg 0 = "+jQuery.url.segment(0));
    //logger("seg 1 = "+jQuery.url.segment(1));
    
    /*
    jQuery("#nav li a").bind('mouseenter', function() {
        //logger("mouse over-ing : "+jQuery(this).parent().attr('rel'));
        in_a = true;
        menu_id = jQuery(this).parent().attr('rel');
        if (!in_ul)
            jQuery("#"+menu_id).slideDown();
        //setTimeout("adjustMenu()",2000);
        //jQuery("ul.sub_nav").slideUp();
        //jQuery("#"+jQuery(this).parent().attr('rel')).slideDown();

    });

    jQuery("ul.sub_nav").bind('mouseenter', function() {
        in_ul = true;
        setTimeout("adjustMenu()",2000);
    });

    jQuery("ul.sub_nav").bind('mouseleave', function() {
        in_a = false;
        setTimeout("adjustMenu()",1000);
        //jQuery("ul.sub_nav").slideUp();
    });

    jQuery("#nav li a").bind('mouseleave', function() {
        in_ul = false;
        setTimeout("adjustMenu()",2000);
        //logger("before pausing")
        //pauseFor(2000);
        //logger("afer pausing");
        //if (!menu_on)
          //  jQuery("#"+jQuery(this).parent().attr('rel')).slideUp();
    });
    */
   
    // home page
    if (jQuery.url.attr("path")=="/") {
        logger("page: home");

        if (jQuery.browser.msie && jQuery.browser.version.substr(0,1)<7)
            alert('This website is best viewed in a\n- Internet Explorer 7 / 8 / 9\n- Firfox\n- Safari\n- Opera');


        jQuery("#addr").focus();
        
        jQuery('div.promo a').lightBox({
            overlayBgColor: '#000',
            overlayOpacity: 0.6,
            imageLoading: '/res/graphics/lightbox/loading.gif',
            imageBtnClose: '/res/graphics/lightbox/close.gif',
            imageBtnPrev: '/res/graphics/lightbox/prev.gif',
            imageBtnNext: '/res/graphics/lightbox/next.gif',
            containerResizeSpeed: 350,
            txtImage: 'Screen Shot',
            txtOf: 'of'
        });

        jQuery("div.twitter").getTwitter({
            userName: "loc8code",
            numTweets: 3,
            loaderText: "Loading tweets...",
            slideIn: true,
            slideDuration: 750,
            showHeading: true,
            headingText: "Latest Tweets",
            showProfileLink: true,
            showTimestamp: true
        });
    }
    
    else if (jQuery.url.segment(0)=="news") {
        jQuery('.news_listing h2.archive').click(function() {
            jQuery('.news_listing ul.archive').slideToggle('slow', function() {});
        });
    }

    if (jQuery.url.segment(1)=="buttons-badges" || jQuery.url.segment(2)=="buttons-badges")
        bindingForButtons();
    

    // universal galleries
    var gee = jQuery("ul.gallery li").size();    
    if (jQuery("ul.gallery").size()==1) 
        jQuery("ul.gallery").everyTime(3000, function(i) {
            jQuery("ul.gallery li").css("display","none");
            jQuery("ul.gallery li:nth-child("+((i%gee)+1)+")").css("display", "block");
            jQuery("strong.gallery").text(jQuery("ul.gallery li:nth-child("+((i%gee)+1)+") img").attr("alt"));
        });
    


    /*
    // map/get_code5 - extra code for form checking
    else if (jQuery.url.segment(0)=="maps") {        
    }

    // about-us [offline]
    else if (jQuery.url.segment(0)=="feedback") {
        jQuery("#feedback").ajaxForm(feedback_options);
    }
    */
});

/*
 * On close code.
 */
jQuery(window).unload(function () {
});

// ----------------------------------------------------------------------------- page:contact

/*
 * TODO integrate
 * AJAX From submission
 * process the entered address
 */
function beforeFeedback(formData, jqForm, options) {
    logger("before");
}

/*
 * TODO integrate
 * do something after the request completes
 */
function afterFeedback(responseText, statusText, xhr, $form) {
    logger("after, "+responseText);
    if (trim(responseText)=="saved")
        alert("Thank You.");
}

// ----------------------------------------------------------------------------- page:maps/get_code5

/*
 * Reference: ee template maps/get_code5
 * - checks that; 1. email is valid, 2. emails match, 3. tnc has been checked
 */
function mapsCheckTerms() {
    logger("getting this far");

    if (!validateEmail(jQuery("#field_email").val()))
        alert("Please enter a valid email address");

    else if (jQuery("#field_email").val()!=jQuery("#field_emailc").val())
        alert("Please enter the same email twice.");

    else if (jQuery("div.options input.terms").is(":checked")) {
        hm('dboxGetEmail');
        gotEmail();
    }

    else
        alert("Please enter your email above twice and\nconfirm that you have read and understood the Terms & Conditions.");

    return false;
}

// ----------------------------------------------------------------------------- page:buttons_badges

/*
 * Bindings for the buttons page
 */
function bindingForButtons() {
    jQuery("#generator").bind("click", function() {
        var loc8 = jQuery("#loc8code").val();
        if (loc8.length<3 || loc8.length>10)
            alert("Please enter a valid Loc8 Code.");
        else {
            logger("debug #1, "+loc8.toUpperCase());
            var image = jQuery('#code_generator input:radio:checked').val();
            var output = '<a href="http://www.loc8code.com/'+(loc8.toUpperCase())+'"><img src="'+image+'" height="60" width="60" alt="Loc8 Code Icon"/><br/>'+(loc8.toUpperCase())+'</a>' ;
            jQuery("#code_target").val(output);
        }
        return false;
    });
}

// ----------------------------------------------------------------------------- utility

/*
 * Depreciated
 */
function pauseFor(millis) {
    var date = new Date();
    var curDate = null;
    do { curDate = new Date(); }
    while(curDate-date < millis);
}

/*
 * Depreciated
 */
function adjustMenu() {}

