var logoRotationFlag = 1;

function header_email_signup_form(){
    _submit_hover();
    //_watermark();
    
    function _submit_hover(){
        $("#header-email-signup-form-submit,#messages-email-signup-form-submit").hover(
            function(){
                $(this).attr("src","img/header-email-signup-form-submit-on-bg.jpg");
            },
            function(){
                $(this).attr("src","img/header-email-signup-form-submit-bg.jpg");
        });
    }   

}

function submit_email_signup_form(){
    $("form#header-email-signup-form,form#messages-signup-form").submit(
        function(){
            switch ($(this).attr("id")) {
                case "header-email-signup-form":
                    var firstname = $("#header-email-signup-form-firstname");
                    var email = $("#header-email-signup-form-email");
                    if(_validate_email_signup_form(firstname,email)){
                        //alert("form submitted");
                        $.post("/_ajax-email-signup.php",{name:firstname.attr('value'),email:email.attr('value')},function(data){
                            if(data == "true"){
                                _messaging_email_signup_form("submit");
                            }else{
                                _messaging_email_signup_form("error");
                            }
                        });
                    }else{
                        //extra space for validation, all validation has been moved to _validate_email_signup_form()
                    }
                    break;
                case "messages-signup-form":
                    var firstname = $("#messages-email-signup-form-firstname");
                    var email = $("#messages-email-signup-form-email");
                     if(_validate_email_signup_form(firstname,email)){
                        return true;
                     }
                    break;
            }
            

            return false;
        }
    );

}

function _validate_email_signup_form(firstname,email){
    var valid = true;

    //validate firtname
    if(firstname.attr('value').length <= 0 || firstname.attr('value') == "First Name"){
        valid = false;
        //alert("firstname invalid");
        firstname.css("background-image","url('/img/header-email-signup-form-firstname-invalid-bg.jpg')");
    }else{
       firstname.css("background-image","");
    }

    //validate email
    var re1='([\\w-+]+(?:\\.[\\w-+]+)*@(?:[\\w-]+\\.)+[a-zA-Z]{2,7})';	// Email Address 1
    var p = new RegExp(re1,["i"]);
    var m = p.exec(email.attr('value'));
    if (m != null){
        var email1=m[1];
        //alert("("+email1.replace(/</,"&lt;")+")"+"\n");
        email.css("background-image","");
    }else{
        valid = false;
        //alert("email invalid");
        email.css("background-image","url('/img/header-email-signup-form-email-invalid-bg.jpg')");
    }

    return valid;
}

function _messaging_email_signup_form(op){

    if(op.length > 0){

        function cycle_confirmation_in(){
            $(".header-email-signup-state-1").fadeOut(1000,function(){
                $(".header-email-signup-state-2").fadeIn();
            });
        }
        function cycle_confirmation_out(){
            $(".header-email-signup-state-2").fadeOut(1000,function(){
                $(".header-email-signup-state-1 input").attr("value","");
                $(".header-email-signup-state-1").fadeIn();
            });
            
        }
        function cycle_error_in(){
            $(".header-email-signup-state-1").fadeOut();
            $(".header-email-signup-state-2").fadeOut();
            alert("There has been an error in your submission, please try again later");
        }

        switch (op){
            case "submit":
                cycle_confirmation_in();
                setTimeout(function(){cycle_confirmation_out();} , 3000 );
            break;
            case "error":
                cycle_error_in();
            break;
        }
    }
}

function header_logo(){
    var headerLogoWrap = "#header-logo-wrap";
    var rotatedImages = new Array("header-logo-reason-alive.gif","header-logo-reason-chocolate.gif","header-logo-reason-music.gif","header-logo-reason-dog.gif","header-logo-reason-coffee.gif","header-logo-reason-sunshine.gif","header-logo-reason-soccer.gif","header-logo-reason-you.gif");
    var headerImagePath = "http://www.betterbecause.com/img/";
    var headerLogoRotateContainer = "#header-logo-rotate-img";
    var counter = 1;
    var index;

    function rotate_logo_init(){
        //$("#mainContainer").before('<span id="debug">test</span>');
        rotate_logo_reasons();
    }

    function rotate_logo_reasons(){
        $(headerLogoRotateContainer).fadeOut(3000,function(){
             index = _swap_reason(counter);
             //$("#debug").text(headerImagePath+rotatedImages[index]+" counter:"+counter+" index:"+index+" length:"+rotatedImages.length);
            $(headerLogoRotateContainer).attr("src",headerImagePath+rotatedImages[index]);
            $(headerLogoRotateContainer).fadeIn(3000);
        });
    }

    function _swap_reason(intObj){
        newIndex = (intObj % rotatedImages.length);
        counter++;
        return newIndex;
    }

    $("#sidebar-button-play").click(function(){
       logoRotationFlag = 0;
    });

    if(document.title.indexOf("Home") > 0){
        rotate_logo_init();
        setInterval (
            function(){
                if(logoRotationFlag)
                    rotate_logo_reasons();
            },
            6000
        );
    }else{
        //loads last image
        $(headerLogoRotateContainer).attr("src",headerImagePath+rotatedImages[rotatedImages.length -1]);
    }
}

function bg_hover(){
    $(".bg-hover").hover(function(){
       //$(this).cs
    });
}

function sc_mosaic(){    
    if(mosaicJSON.length > 0){
        var posList = new Array();

        function sc_mosaic_rotate(){
            //alert(posList.length);
            if(posList.length == 0){
                //build new Position List
                _buildPosList();
            }
            //rotate
                //move original source to bottom of JSON object
            var currSource = $("#sc-mosaic-table-pos-"+posList[0]).attr("src");            
            mosaicJSON.push(currSource);
                //swap source with first element of posList
            $("#sc-mosaic-table-pos-"+posList.shift()).fadeOut(2000,function(){
               var imgPath = mosaicJSON.shift();
               $.preloadImages(imgPath);
               $(this).attr("src",imgPath);
               $(this).fadeIn(1000);
            });
            //alert("test");
        }

        function _buildPosList(){
            for(i=1;i<=16;i++){
                posList[i-1] = i;
            }
            _shuffle(posList);
        }

        function _shuffle( myArray ) {
          var i = myArray.length;
          if ( i == 0 ) return false;
          while ( --i ) {
             var j = Math.floor( Math.random() * ( i + 1 ) );
             var tempi = myArray[i];
             var tempj = myArray[j];
             myArray[i] = tempj;
             myArray[j] = tempi;
           }
        }

        setInterval (function(){sc_mosaic_rotate();}, 1000 );

    }
}

function smileCampaignShare(){
    var clickContainer = $("#sc-world-share-button");
    var shareContainer = $("#sc-world-share-links-wrap");
    var slideSpeed = 1500;

    clickContainer.toggle(
        function(){
            shareContainer.fadeIn(slideSpeed);
        },
        function(){
            shareContainer.fadeOut(slideSpeed);
        }
    );
}

function ieFixes(){

    function ie6navHover(){
        $("#navigation ul li").hover(
            function(){
                $(this).children("ul").show();
            },
            function(){
                $(this).children("ul").hide();
            }
        );
        $("#navigation li li:last-child").css("border","none");
    }

    jQuery.each(jQuery.browser, function(i, val) {
        var browser = i
        if(browser=="msie" && jQuery.browser.version=="6.0"){
            $(".png").ifixpng();
            
            ie6navHover();
        }
        if(browser=="msie" && jQuery.browser.version=="7.0"){

        }
    });

}

function navHovers(){
    $("#navigation li li a").hover(
        function(){
            $(this).parent().parent().prev().addClass("nav-hover");
        },
        function(){
            $(this).parent().parent().prev().removeClass("nav-hover");
        }
    );
}


function _watermark(jqueryObjsArr){

    var valueDefault = new Array();
    var watermarkColor = "#A1A2A4";
    
    for(i = 0;i < jqueryObjsArr.length;i++){
        valueDefault[jqueryObjsArr[i].attr("id")] = jqueryObjsArr[i].attr("value");
    }

    for(i = 0;i < jqueryObjsArr.length;i++){
        jqueryObjsArr[i]
            .css("color",watermarkColor)
            .click(function(){
                //alert(valueDefault[$(this).attr("id")]);
                if($(this).attr("value") == valueDefault[$(this).attr("id")]){
                    $(this).attr("value","");
                    $(this).css("color","");
                }
            })
            .blur(function(){
                if($(this).attr("value") == ""){
                    $(this).css("color",watermarkColor);
                    $(this).attr("value",valueDefault[$(this).attr("id")]);
                }
            });
    }
}

function submit_your_stories_post_form(){

    if(window.location.toString().indexOf("your-stories")){
        var formParent = "your-stories-initial-form";
        var formElements = new Array();

        formElements[0] = new Array();
        formElements[0]["jqueryObject"] = $("#your-stories-initial-form #body");
        formElements[0]["validationType"] = "text";
        formElements[0]["characterLimit"] = 160;
        formElements[0]["defaultValue"] = formElements[0]["jqueryObject"].attr("value");
        formElements[0]["required"] = true;
        formElements[0]["invalidBackgroundImage"] = "your-stories-initial-form-input3-invalid-bg.gif";

        formElements[1] = new Array();
        formElements[1]["jqueryObject"] = $("#your-stories-initial-form #first-name");
        formElements[1]["validationType"] = "text";
        formElements[1]["characterLimit"] = null;
        formElements[1]["defaultValue"] = formElements[1]["jqueryObject"].attr("value");
        formElements[1]["required"] = false;
        formElements[1]["invalidBackgroundImage"] = "your-stories-initial-form-input1-invalid-bg.gif";

        $("#"+formParent).submit(function(){
            var formValid = true;
            jQuery.each(formElements,function(i,formElement){
                //alert(i+", "+formElement.validationType);
                if(formElement.required){
                    if(validate_your_stories_element(formElement) === false){
                        formValid = false;
                    }                                        
                }else if(formElement.jqueryObject.attr("value") == formElement.defaultValue){
                    formElement.jqueryObject.attr("value","");
                }
            });
            if(formValid){
                return true;
            }else{
                return false;
            }            
        });
    }    
}

function validate_your_stories_element(formElement){
    switch (formElement.validationType){
        case "text":
            if(formElement.characterLimit != null){
                if(formElement.jqueryObject.val().length > formElement.characterLimit || formElement.jqueryObject.val() == formElement.defaultValue){
                    if(formElement.invalidBackgroundImage != null){
                        formElement.jqueryObject.css("background-image",'url("/img/'+formElement.invalidBackgroundImage+'")');
                    }else{
                        formElement.jqueryObject.css("background-color","#f2dfe3");
                    }
                }else{
                    return true;
                }
            }else{
                return true;
            }
            return false;
            break;
    }
}

function formElementCharacterCounter(){
    var countViewer = $("#for-body-counter");
    var maxCharacters = parseInt(countViewer.text());
    var textArea = $("#body");
    textArea.keyup(function(){
        var charCount = maxCharacters - $(this).attr("value").length;
        if($(this).val().length > maxCharacters){
            countViewer.css("color","red");
            $(this).val($(this).val().substring(0,maxCharacters));
        }else{
            countViewer.css("color","");
            countViewer.text(parseInt(charCount));
        }
    });

}

function submit_your_stories_comment_form(){
    if(window.location.toString().indexOf("your-stories?&postid=")){
        var formParent = "your-stories-add-comment";
        var formElements = new Array();

        formElements[0] = new Array();
        formElements[0]["jqueryObject"] = $("#your-stories-add-comment textarea");
        formElements[0]["validationType"] = "text";
        formElements[0]["characterLimit"] = 160;
        formElements[0]["defaultValue"] = formElements[0]["jqueryObject"].attr("value");
        formElements[0]["required"] = true;
        formElements[0]["invalidBackgroundImage"] = null;

        $("#"+formParent+" .submit a").click(function(){
            var formAction = true;
            jQuery.each(formElements,function(i,formElement){
                //alert(i+", "+formElement.validationType);
                if(validate_your_stories_element(formElement) === false){
                    formAction = false;
                };
            });
            if(formAction){
                $("#"+formParent).submit();
            }
            return false;
        });

        formElements[0]["jqueryObject"].keyup(function(){
            if($(this).val().length > formElements[0]["characterLimit"]){
                $(this).val($(this).val().substring(0, formElements[0]["characterLimit"]));
            }            
        });


    }
}

jQuery.preloadImages = function(){
  for(var i = 0; i<arguments.length; i++){
    jQuery("<img>").attr("src", arguments[i]);
  }
}

$(document).ready(function(){
    $.preloadImages("img/sidebar-button-smile-campaign-on.png","img/sc-world-share-on-button.gif","img/sidebar-button-play-on.png","img/sidebar-button-add-your-smile-on.png","img/header-email-signup-form-submit-on-bg.jpg","img/header-email-signup-form-firstname-invalid-bg.jpg","img/header-email-signup-form-email-invalid-bg.jpg");
    header_email_signup_form();
    //submit_email_signup_form();
    header_logo();
    //sc_mosaic();
    ieFixes();
    navHovers();
    //smileCampaignShare();    

    //Your Stories Form
    var yourStoriesVisibleFormElements = new Array($("#your-stories-initial-form #body"),$("#your-stories-initial-form #first-name"));
    _watermark(yourStoriesVisibleFormElements);
    submit_your_stories_post_form(yourStoriesVisibleFormElements);
    submit_your_stories_comment_form();
    formElementCharacterCounter();

});

