/**
 * Actions and effects for Snapflow.com
 *
 * @author Michael Gilley
 * @version $Idv2.0$
 * @copyright SnapFlow, 14 November, 2009
 * @link www.180bydesign.com
 * @package SnapFlow Site Project
 **/

jQuery(document).ready(function ($) {
    var t;
    // Navigation flow
    $('#nav > li').each(function () {
        $('<span/>').hide().appendTo($(this));
    }).hover(function () {
        if (!$(this).hasClass('currentpage')) {
            $(this).find('span').fadeIn(120);
        }
    }, function () {
        $(this).find('span').fadeOut(250);
    });

    // Home Slideshow
    var pos = bgpos = 0;
    var numframes = $('.frame').length - 1;
    var rendering = false;
    $('.frame:first').addClass('active');

    var $tabs = $('<ul id="slidetabs"/>').insertBefore('.slide');

    $('.frame').each(function (i) {
        $(this).addClass('frame-' + i);
        $('<li/>').addClass('tab-' + i).append($('<a href="#"/>')).appendTo($tabs);
    })

    $('#slidetabs li:first').addClass('active');
    $('#slidetabs li').hover(function () {
        $(this).addClass('hover');
    }, function () {
        $(this).removeClass('hover');
    }).find('a').click(function () {
        if (!$(this).hasClass('active') && !rendering) {
            clearInterval(t);
            pos = $(this).parent().attr('class').split(' ')[0].split('-')[1];
            slideFrame();
        }
        return false;
    });

    $('a.featured-watch').click(function () {
        var f = $(this).attr('rel');
        if (!$('.' + f).hasClass('active') && !rendering) {
            clearInterval(t);
            pos = f.split('-')[1];
            slideFrame(playvid);
        }
        return false;
    });

    function playvid() {
        // To fix IE problem.
        var r = $('.frame.active object')[0].CallFunction('<invoke name="api_play" returntype="javascript"></invoke>');
        eval(r);
        $('.playbtn, .playshield').fadeOut('fast');
        return true;
    }

    function slideFrame(callback) {
        rendering = true;
        callback = callback || function () { };

        var $cf = $('.frame.active');
        bgpos = bgpos - 980;

        $('#slidetabs').find('li.active').removeClass('active').end().find('li.tab-' + pos).addClass('active');
        $('.frame.frame-' + pos).addClass('active');

        $('.home-slideshow').animate({ backgroundPosition: '(' + bgpos + 'px 239px)' }, 2000, 'easeInOutExpo');

        setTimeout(function () {
            $('.slide').fadeOut({
                duration: 1000,
                easing: 'easeOutExpo',
                complete: function () {
                    $('.slide').css({ left: pos * -980 }).fadeIn({
                        duration: 2000,
                        easing: 'easeOutExpo',
                        complete: function () {
                            rendering = false;
                            callback();
                        }
                    });
                }
            });
        }, 500);
    }

    $(window).load(function () {
        t = setInterval(function () {
            if (!rendering && pos < numframes) {
                pos++;
                slideFrame();
            }
        }, 7000);
    });

    // videos on homepage
    $('.vidcont').each(function (i) {
        var src = $(this).find('span').html();
        var moogaloop = $(this).find('.mov').flash({
            swf: src,
            id: 'play_' + i,
            width: 622,
            height: 350,
            params: {
                allowScriptAccess: 'always'
            }
        });
        $(this).find('.playshield').css('opacity', .4);
    });

    $('.playbtn, .watchvid').click(function () {
        playvid();
        return false;
    });

    play = function () {
        if ($('.frame.active object').length > 0) {
            var u = $('.frame.active object')[0].CallFunction('<invoke name="api_play" returntype="javascript"></invoke>');
            var d = $('.frame.active object')[0].CallFunction('<invoke name="api_pause" returntype="javascript"></invoke>');
            eval(u);
            eval(d);
        }
    }

    // custom dropdowns for forms
    $("body select").msDropDown({ showIcon: false });
    $("#job_title, #country, #primary_occ, #industry_affil").msDropDown({ visibleRows: 10, rowHeight: 35 });

    // form validation
    var mail = /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i;

    $('#freeform').submit(function (event) {
        var $email = $('input[name="email"]'),
            $fname = $('input[name="firstname"]'),
            $lname = $('input[name="lastname"]'),
            $phone = $('input[name="phone1"]'),
            $organization = $('input[name="organization"]'),
            $hear = $('textarea[name="how_hear_snapflow"]'),
            $use = $('textarea[name="how_use_it"]'),
            $country = $('select[name="country"]'),
            pass = true;

        if ($email.length > 0 && !mail.test($email.val())) {
            pass = false;
            alert('Please provide a valid email address. Thank you!');
            $email.focus().select();
        } else if ($fname.length > 0 && !(/^[a-z ]+$/i.test($fname.val()))) {
            pass = false;
            alert('Please provide your first name. Only alphanumeric characters are allowed. Thank you!');
            $fname.focus().select();
        } else if ($lname.length > 0 && !(/^[a-z ]+$/i.test($lname.val()))) {
            pass = false;
            alert('Please provide your last name. Only alphanumeric characters are allowed. Thank you!');
            $lname.focus().select();
        } else if ($organization.length > 0 && !(/^[a-z ]+$/i.test($organization.val()))) {
            pass = false;
            alert('Please provide your Organization name. Only alphanumeric characters are allowed. Thank you!');
            $organization.focus().select();
        } else if ($country.length > 0 && $country.selectedIndex == null) {
            pass = false;
            alert('Please select your Country. Thank you!');
            $country.focus().select();
        } //else if ($phone.length > 0 && !(/^\(?(\d{3})\)?[- .]?(\d{3})[- .]?(\d{4})$/.test($phone.val()))) {
        else if ($phone.length > 0 && $phone.val().length <= 0) {
            pass = false;
            alert('Please provide a valid phone number where you can be reached. Thank you!');
            $phone.focus().select();
        } else if ($hear.length > 0 && !(/^[a-z0-9_,\-\s\.]+$/i.test($hear.val()))) {
            pass = false;
            alert('Please provide how did you hear about SnapFlow. Only alphanumeric characters are allowed. Thank you!');
            $hear.focus().select();
        } else if ($use.length > 0 && !(/^[a-z0-9_,\-\s\.]+$/i.test($use.val()))) {
            pass = false;
            alert('Please provide what would you use Snapflow for. Only alphanumeric characters are allowed. Thank you!');
            $use.focus().select();
        }
        if (!$("#mySelect option:selected").length)
        if (!pass) {
            event.preventDefault();
        }
    });
});
var play = false;
function vimeo_player_loaded() {
    play();
}
