/**
 * @author samuelme
 */
//global vars
var test_case = 0;

var Alliance = function() {

    /*
    private vars
    */
    var jsReady = false;
    var $currentBTN = "";
    var currentSection = "";
    var flashStatus = false;
    var email_valid = false;
    var $dcIframe = $("");
    var flyoutjoin_mouseout = false;
    var oljoin_mouseout = false;
    var IE6 = false/*@cc_on || @_jscript_version < 5.7@*/;

    /*
    public functions
    */
    return {

        init: function() {
            $(document).ready(function() {
                jsReady = true;
                test_case = !parseInt($.cookie('testscenario')) ? 1 : parseInt($.cookie('testscenario'));

                $("#modal").dialog({

                    draggable: false,
                    resizable: false,
                    width: 300,
                    height: 137,
                    autoOpen: false,
                    position: ['center', ($(document).height() / 2) - 230],
                    close: function() {
                        $('#ol-join').show();
                        Alliance.hideUIBlock();
                    },
                    open: function() {
                        Alliance.showUIBlock();
                        setupModalForm();
                    }


                });
                $('.ui-dialog-titlebar-close').attr('title', "Close");
                Alliance.modalCheck();
                $("#contentHolder").height($(window).height() - 36);
                $(window).resize(function() {
                    $("#contentHolder").height($(window).height() - 36);
                });
                debug("Alliance.isFlashReady(): " + Alliance.isFlashReady());
                FactsPage.init();
                HomePage.init();
                substanPage.init();
                AboutPage.init();
                setupFroms();
                setupMenu();
                setupShareTracking();

                checkHTMLPage();
                SWFAddress.addEventListener(SWFAddressEvent.CHANGE, swfAddressChange);

                var url = window.location.toString();
                if (url.indexOf('#') == -1) {
                    //we are on the main index page
					
					// randomly pick between the canary and video spots for testing
					//var r = Math.floor ( Math.random ( ) * 2 + 1 );
					
					//  Instead of random, set the landing page cookie equal to 1, which will trigger the canary
					var r = 1;
					setLandingPageCookie(r);
					//alert(r);
					if (r == '1') {
						window.location.href = url + "#/?p=canary";
					}
                    else if (r=='2') {
						window.location.href = url + "#/?p=facility";
					}
					// end random selection of landing page
					
					if ($.browser.msie)
                        window.location.reload(false);
                    //SWFAddress.setValue("?p=facility");
                }



                checkEmailEntryCookie();

            });
        },
        isReady: function() {
            return jsReady;
        },
        getMovie: function() {
            try {
                var swfObj = document.getElementById('alliance');
            }
            catch (e) { //error
            }
            return swfObj;
        },
        getSection: function() {
            return currentSection;
        },
        browserInit: function() {
            flashStatus = true;
            debug('browserInit');

        },
        isFlashReady: function() {
            return flashStatus;
        },
        flashNotReady: function() {
            flashStatus = false;
        },
        alertEmail: function() {
            debug("alertEmail: " + test_case);

            switch (test_case) {
                case 1:
                    debug('alert 1 called');
                    Alliance.showJoinFlyout(true);
                    break;
                case 2:
                    Alliance.showModal();
                    break;
            }

        },
        showJoinFlyout: function(showUIBlock) {
            //$('.menu').css({overflow:"visible"});
            var time = IE6 ? 100 : 250;

            if ($.cookie('thisisreality.org') == null) {
                $('#flyout-join').show().animate({
                    top: "-100px"
                }, time, 'linear', function() {
                    if (showUIBlock) {
                        Alliance.showUIBlock();
                    }
                });



                $('#UIBlock').unbind('click').bind('click', function() {
                    Alliance.hideJoinFlyout();
                });
            }


        },
        hideBg: function() {
            //			$('#ol-join').css({
            //				backgroundImage: "none"
            //			});
        },
        // replace join form with signup link
        replaceJoinForm: function() {
            var $join_form = $("#ol-join fieldset");
            var $join_holder = $join_form.parent();
            $join_form.remove();
            $join_holder.append("<p><a href='http://action.thisisreality.org/page/invite/blogsignuptaf'>INVITE YOUR FRIENDS</a></p>");
        },
        hideJoinFlyout: function() {
            $('#flyout-join').animate({
                top: "40px"
            }, 300, 'linear', function() {
                $('#videoHolder').unbind('mouseenter');
                $(this).hide();
            });
            //			$('#ol-join').css({
            //				backgroundImage: "url(../img/signup-bg.gif)"
            //			});
            Alliance.hideUIBlock();
        },
        showThanksFlyout: function() {
            $('#flyout-thanks').animate({
                top: "-60px"
            });
        },
        hideThanksFlyout: function() {
            $('#flyout-thanks').animate({
                top: "40px"
            });
        },
        validate: function() {
            $('#email').attr('style', '');
            $('#emailDialog').attr('style', '');

            var $val = $(this).val();
            var isValid = true;
            //Regex for DATE
            if ($(this).hasClass('vdate')) {
                var Regex = /^([\d]|1[0,1,2]|0[1-9])(\-|\/|\.)([0-9]|[0,1,2][0-9]|3[0,1])(\-|\/|\.)\d{4}$/;
                isValid = Regex.test($val);
                //Regex for Email
            }
            else
                if ($(this).hasClass('vemail')) {
                var Regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
                if (!Regex.test($val)) {
                    isValid = false;
                }
                //Regex for Phone
            }
            else
                if ($(this).hasClass('vphone')) {
                var Regex = /^([0-9a-zA-Z]+([_+.-]?[0-9a-zA-Z]+)*@[0-9a-zA-Z]+[0-9,a-z,A-Z,.,-]*(.){1}[a-zA-Z]{2,4})+$/;
                //var Regex = /^\(?[2-9]\d{2}[ \-\)] ?\d{3}[\- ]?\d{4}$/;
                if (!Regex.test($val)) {
                    isValid = false;
                }
                //Check for empty
            }
            else
                if ($val.length === 0) {
                isValid = false;
            }

            if (isValid) {
                $(this).removeClass("invalid");
                $(this).addClass("valid");
                //$('#submit').css({border:"1px solid #585858"});
                $('#email').css({
                    color: '#FFFFFF'
                })


                $('#emailDialog').css({
                    color: '#FFFFFF'
                });

            }
            else {
                $(this).removeClass("valid");
                $(this).addClass("invalid");
                $('#email').attr('style', '');
                $('#emailDialog').attr('style', '');
                $('#submitModal').attr('style', '');

            }
            email_valid = isValid;
            //debug(email_valid);
            return isValid;

        },
        sendEmail: function() {
            debug('sendEmail called');
            if (email_valid) {


                var email = $('#email').val();
                $.ajax({
                    type: "GET",
                    url: "/CurlPost.php",
                    data: "email=" + email,
                    success: function(msg) {

                        Alliance.hideJoinFlyout();
                        Alliance.showThanksFlyout();
                        Alliance.replaceJoinForm();
                        email_valid = false;

                        $.cookie('thisisreality.org', email, {
                            expires: 365
                        });

                    },
                    error: function() {
                        $('#email').val('ERROR: Try Again.');
                    },
                    complete: function() {
                        Alliance.Track("http://fls.doubleclick.net/activityi;src=2058138;type=thisi937;cat=userc463", "/subscribe");
                    }
                });


            }
            else {
                $('#email').css({
                    color: 'red'
                });
            }

        },
        sendEmailModal: function() {

            if (email_valid) {

                $('#submitModal').attr('disabled', 'disabled');
                var email = $('#emailDialog').val();
                $.ajax({
                    type: "GET",
                    url: "/CurlPost.php",
                    data: "email=" + email,
                    cache: false,
                    success: function(msg) {



                        Alliance.replaceJoinForm();
                        Alliance.modalShowThanks();
                        email_valid = false;

                        $.cookie('thisisreality.org', email, {
                            expires: 365
                        });

                    },
                    error: function() {
                        $('#emailDialog').val('ERROR: Try Again.');
                        $('#submitModal').attr('disabled', '');
                    },
                    complete: function() {
                        $('#submitModal').attr('disabled', '');
                        Alliance.Track("http://fls.doubleclick.net/activityi;src=2058138;type=thisi937;cat=userc463", "/subscribe");
                    }
                });


            }
            else {
                $('#emailDialog').css({
                    color: 'red'
                });
            }
        },
        gotoCanary: function() {
            cleanup();
            $('#wrapper div.menu ol li a.canary').addClass('Active');
            SWFAddress.setTitle("This Is Reality | Reality Fly By");
            window.location = "#/?p=canary";
        },
        showModal: function() {
            if ($.cookie('thisisreality.org') == null) {

                $("#modal").dialog("open");
                $('div#UIBlock').unbind('click').bind('click', function() { Alliance.closeModal(); });
                $('#ol-join').hide();
                $('#modalFormtag').submit(function() {
                    Alliance.sendEmailModal();
                });
            }

        },
        closeModal: function() {
            if ($('#modal').dialog("isOpen")) {
                $("#modal").dialog("close");

            }


        },
        modalShowThanks: function() {
            //check if ie6

            $('#modalForm').fadeOut('fast', function() {
                $('#modalThanks').fadeIn('fast');
            });



        },
        modalCheck: function() {

            var userAgent = navigator.userAgent.toLowerCase();
            var isffMac = false;

            if ($.browser.mozilla == true) {

                if (/firefox[\/\s](\d+\.\d+)/.test(userAgent)) {
                    var ffversion = new Number(RegExp.$1);
                    if (ffversion < 3 && userAgent.indexOf('mac') != -1) {
                        Alliance.createUIBlock(true);

                    }
                    else {

                        Alliance.createUIBlock(false);
                    }
                }
            } else {

                Alliance.createUIBlock(false);
            }



        },
        createUIBlock: function(ff2) {

            $('.ui-dialog').before('<div id="UIBlock"></div>');

            if (ff2) {
                $('div#UIBlock').css({
                    'position': 'absolute',
                    'z-index': 1000,
                    width: $('html').outerWidth(),
                    height: $('html').outerHeight(),
                    "background": "url(/img/ff2.png)",
                    left: 0,
                    top: 0,
                    display: "none"
                })
            }
            else {

                $('div#UIBlock').css({
                    opacity: 0.7,
                    width: $('html').outerWidth(),
                    height: $('html').outerHeight(),
                    display: "none"
                });
            }

            $('div#UIBlock').unbind('click').bind('click', function() { Alliance.closeModal(); });

        },
        hideUIBlock: function() {
            $('div#UIBlock').hide();
        },
        showUIBlock: function() {
            $('div#UIBlock').show();
        },
        Track: function(url, track_str) {
            debug('url: ' + url);

            //google
            track_str = "/test" + getLandingPageCookie() + track_str;
            debug('track_st: ' + track_str);
            if (typeof track_str == 'string') { pageTracker._trackPageview(track_str); }

            //double click
            var axel = Math.random() + "";
            var a = axel * 10000000000000;
            $('#dctracking').remove();
            $dcIframe = $('<IFRAME id="dctracking" SRC="' + url + ';ord=1;num=' + a + '?" WIDTH=1 HEIGHT=1 FRAMEBORDER=0></IFRAME>')
            $('body').append($dcIframe);
        },
        flashCheckEmailEntryCookie: function() {
            return checkEmailEntryCookie();
        },
        flashSetEmailEntryCookie: function($address) {
            setEmailEntryCookie($address);
        },
        flashCheckVideoEndCookie: function() {
            return checkVideoEndCookie();
        },
        flashSetVideoEndCookie: function($address) {
            setVideoEndCookie($address);
        },
        flashSetMenu: function(currentSection) {
        	switch (currentSection) {

            case 'canary':

                cleanup();
                $('#wrapper div.menu ol li a.canary').addClass('Active');
                SWFAddress.setValue("?p=canary");

                break;

            case 'facility':

                cleanup();
                $('#wrapper div.menu ol li a.facility').addClass('Active');
                SWFAddress.setValue("?p=facilityPopup");


                break;

        	}
        },
	      flashChangeSection: function($section) {
	          SWFAddress.setValue("?p=" + $section);
	      }
    }


    /*
    private functions
    */

    function setupFroms() {


        var tempVal = "";
        $("#wrapper div.menu fieldset input").focus(function() {
            tempVal = $(this).val();
            if (tempVal == "Your Email Address") {
                $(this).val('');
            }

            $('#submit').attr('style', '');
            $('#email').attr('style', '');

        }).blur(function() {
            if ($(this).val() == "")
                $(this).val(tempVal);

        });
        $('#email').bind("keyup", Alliance.validate);
        $('#submit').bind("click", function() {
            Alliance.sendEmail();
            $(this).attr('disabled', 'disabled');
            return false;
        });
        $('#emailMenu').submit(function() { Alliance.sendEmail(); return false; });

        $('#submit').hover(function() {
            $(this).attr('src', 'img/submit.hover.gif');
        }, function() {
            $(this).attr('src', 'img/submit.gif');
        });
        $('#submitModal').hover(function() {
            $(this).attr('src', 'img/modalSubmit.hover.gif');
        }, function() {
            $(this).attr('src', 'img/modalSubmit.gif');
        });

        $('#ol-join').hover(function() {

            if (!$.browser.msie) {
                Alliance.showJoinFlyout(false);
            } else {
                Alliance.showJoinFlyout(true);
            }
        }, function() {
            if (!$.browser.msie) {
                $('#videoHolder').unbind('mouseenter').bind('mouseenter', function() { Alliance.hideJoinFlyout(); })
            }


        });



    }


    function setupModalForm() {
        $('#submitModal').attr('disabled', '');
        //modal email form
        var tempVal2 = "";
        $("#emailDialog").focus(function() {
            tempVal2 = $(this).val();
            if (tempVal2 == "Your Email Address") {
                $(this).val('');
            }
            $('#submitModal').attr('style', '');
            $('#emailDialog').attr('style', '');

        }).blur(function() {
            if ($(this).val() == "")
                $(this).val(tempVal2);

        });
        $('#emailDialog').unbind('keyup').bind("keyup", Alliance.validate);
        $('#submitModal').unbind('click').bind("click", function() {
            Alliance.sendEmailModal();

            return false;
        });
        $('#modalFormtag').unbind('submit').submit(function() { Alliance.sendEmailModal(); return false; });





    }

    function checkHTMLPage() {

        if ($('.factsPage').size() > 0 || $('.substantiationPage').size() > 0) {
            $('#videoHolder').hide();
        }
    }
    function setupMenu() {
        checkEmailEntryCookie();
        //		$('#wrapper div.menu ol li a.acpfacts').unbind('click').bind("click",function(){
        //
        //
        //			 SWFAddress.setValue("?p=facts");
        //			
        //			return false;
        //		});
        $('#wrapper div.menu ol li a.canary').bind("click", function() {

            Alliance.closeModal();
            Alliance.Track('http://fls.doubleclick.net/activityi;src=2058138;type=thisi937;cat=theca975');

            SWFAddress.setValue("?p=canary");


            return false;
        });
        $('#wrapper div.menu ol li a.facility').bind("click", function() {

            Alliance.closeModal();
            Alliance.Track('http://fls.doubleclick.net/activityi;src=2058138;type=thisi937;cat=landi760', '/resolution_playvideo');
            SWFAddress.setValue("?p=facility");

            return false;
        });
        //		$('#wrapper div.menu ol li a.aboutus').bind("click",function(){
        //
        //			 SWFAddress.setValue("?p=about");
        //
        //			return false;
        //		});

        $('#wrapper div.menu ol li a.share').bind("click", function() {
            $('div.share').show();
            Alliance.closeModal();
            return false;
        }).toggle(
	      function() {
	          $(this).addClass('Active');
	          $("#wrapper div.share").animate({ "bottom": "33px" }, "fast");
	      },
	      function() {
	          $(this).removeClass('Active');
	          $("#wrapper div.share").animate({ "bottom": "-220px" }, "fast", function() { $('div.share').hide(); });

	      }
	    );


        $('.acpfacts,.aboutus').bind('click', function() {
            Alliance.closeModal();
            location.href = $(this).attr('href');

            return false;
        });



    }
    function cleanup() {
        $('#wrapper div.menu ol li a').removeClass('Active');
        $("#wrapper div.share").animate({ "bottom": "-220px" }, "fast");
        $('#subHolder').remove();
        $('#factsHolder').remove();
        $('#aboutHolder').remove();

        checkEmailEntryCookie();

    }

    function reloadSection(section) {
        if (currentSection == section) {
            //swfAddressChange(section,true);
        }
    }

    function checkEmailEntryCookie() {
        if ($.cookie('thisisreality.org') != null) {
            Alliance.replaceJoinForm();
            Alliance.modalShowThanks();
            return true;
        } else {
            return false;
        }
    }


    function setEmailEntryCookie($address) {
        $.cookie('thisisreality.org', $address, {
            expires: 365
        });
    }
    
    function checkVideoEndCookie() {
        if ($.cookie('videoEnd') != null) {
            return true;
        } else {
            return false;
        }
    }


    function setVideoEndCookie($address) {
    		var v = ($address)? $address : null;
    	
        $.cookie('videoEnd', v, {
            expires: 365
        });
    }
	
	function setLandingPageCookie($testNumber) {
    		var v = ($testNumber)? $testNumber : null;
    	
        $.cookie('testLandingPageScenario', v, {
            expires: 0
        });
    }
	
	
	function getLandingPageCookie() {
        if ($.cookie('testLandingPageScenario') != null) {
            return $.cookie('testLandingPageScenario');
        } else {
            return 1;
        }
    }
	
    function swfAddressChange(event, bypass) {

        if (bypass == true) {
            currentSection = event;
        } else {
            currentSection = event.parameters['p'];
        }


        //for targeting an anchor tag in the facts page
        var fact_target = event.parameters['t'];


        switch (currentSection) {

            case 'facts':
                Alliance.flashNotReady();
                cleanup();
                FactsPage.show(fact_target);

                break;

            case 'substantiation':
                Alliance.flashNotReady();
                cleanup();
                substanPage.show();

                break;

            case 'canary':

                cleanup();
                HomePage.showVideo();
                $("#videoHolder").show();
                $('#wrapper div.menu ol li a.canary').addClass('Active');

                break;

            case 'facility':

                cleanup();
                HomePage.showVideo();
                $('#wrapper div.menu ol li a.facility').addClass('Active');


                break;
            case 'about':


                cleanup();
                AboutPage.show();
                $('#wrapper div.menu ol li a.about').addClass('Active');
                break;

        }
    }
    function setupShareTracking() {
        $('div.share a').each(function() {
            $(this).bind('click', function() {
                var track_str = "/" + $(this).parent().attr('class');
			   	Alliance.Track("http://fls.doubleclick.net/activityi;src=2058138;type=thisi937;cat=userc108", track_str);
            });
        });
    }
    function debug($obj) {
        if (window.console && window.console.log)
            window.console.log($obj);
    };

} ()
Alliance.init();