$(function() {

/*  supersubs ******************************************************************
 *  minWidth:     minimum width of sub-menus in em units
 *  maxWidth:     maximum width of sub-menus in em units
 *  extraWidth:   extra width can ensure lines don't sometimes turn over
 *                due to slight rounding differences and font-family
 *  superfish ******************************************************************
 *  hoverClass:   the class applied to hovered list items
 *  pathClass:    you have applied to list items that lead to the current page
 *  pathLevels:   the number of levels of submenus that remain open or are restored using pathClass
 *  delay:        the delay in milliseconds that the mouse can remain outside a submenu without it closing
 *  animation:    an object equivalent to first parameter of jQuery’s .animate() method
 *  speed:        speed of the animation. Equivalent to second parameter of jQuery’s .animate() method
 *  autoArrows:   if true, arrow mark-up generated automatically = cleaner source code at expense of initialisation performance
 *  dropShadows:  completely disable drop shadows by setting this to false
 */
  $("#ui-header-nav > ul")
    .supersubs({ minWidth: 15, maxWidth: 27, extraWidth: 1 })
    .superfish({ hoverClass: 'sfHover', pathClass: 'active', pathLevels: 0, delay: 800, animation: {opacity:'show'}, speed: 'normal', autoArrows: false, dropShadows: false });

  // For rest of the input elements use toggleVal
//  $('#ui-header-form-add-a-person .input-text').toggleVal();
//  $('.box-send-a-msg-to-ceo .input-text').toggleVal();
//  $('.box-share-your-thought .input-text').toggleVal();
//  $('.box-document-achievements .input-text').toggleVal();
  $('.input-text')
      .not('#ui-header-form-login-wrapper .input-text, #ui-header-form-search .input-text, #home-signup-form .input-text, .signup-module .input-text, .home-search .input-text')
      .toggleVal();

  $('#ui-header-form-search .input-text').toggleVal({populateFrom:'custom',text:'Search and rate companies'});
  $('.employee-signup-form .input-text').toggleVal({populateFrom:'label',removeLabels: true});
  $('.signup-module .input-text').toggleVal({populateFrom:'custom',text:'Enter email'});
  $('.home-search .input-text').toggleVal({populateFrom:'custom',text:'Find a company or nonprofit to review'});

  // Hyperlink buttons
  $('a.blue-button').append(' <img src="/Resources/2/media/Button/btn_a_blue.png" alt="" width="3" height="6" />');
  $('a.orange-button').append(' <img src="/Resources/2/media/Button/btn_a_orange.png" alt="" width="3" height="6" />');
  //$('a.image-button').append('<span class="tl"></span><span class="tr"></span><span class="bl"></span><span class="br"></span>');

  // Hyperlinks with arrows
  $('a.more-regular').css('color','#444444').after(' <img src="/Resources/2/media/Layout/a_more_regular.png" alt="" width="3" height="6" />');
  $('a.more-blue').css({color: '#2d6aa0', fontWeight: 'bold'}).after(' <img src="/Resources/2/media/Layout/a_more_blue.png" alt="" width="3" height="6" />');

  // Delete the rule from the last ws-box
  //$('.container-column div.ws-box:last').css('borderBottom', '0 none');
  $('.container-column div.ws-box:last-child').css('borderBottom', '0 none');

  // WorkScore Dashboard
  $("div.dashboard").accordion({
      active: 0,
      event: "click", //mouseover
      header: "h3",
      autoHeight: false,
      icons: {
          header: "header-icon-collapsed",
          headerSelected: "header-icon-expanded"
      }
  });

    // Bar rating
    $('input:radio.rating-bar').rating({
        required: true,
        focus:    function(value, link){var tip = $(this).parent().siblings('.bar-tip');tip.html(link.title);},
        blur:     function(value, link){var tip = $(this).parent().siblings('.bar-tip');tip.html(tip.data('changedValue'));tip.not('.changed').html('');},
        callback: function(value, link){var tip = $(this).parent().siblings('.bar-tip');tip.data('changedValue', link.title);tip.html(link.title).addClass('changed');}
    });


  // Accordion for Rating Sliders
  $(".ratingAccordion").accordion({
    autoHeight: false,
    icons: {
      header: "header-icon-collapsed",
      headerSelected: "header-icon-expanded"
    }
  });
  // Load help text into definitions container
  $('.rating-definition-container').empty();
  $('.rating-score-help').clone().appendTo('.rating-definition-container');

  // Rating Sliders
  $('.ratingSliders .rating-slider-container').each(function(){

		var relevancyTitle = $(this).find('.relevancy-menu-title').text();
		var coworkerFirstName = $('.ratingCoworker').text();
		var relevancyQuestion = 'How important is '+$.trim(relevancyTitle)+'?';
		var relevancyQuestionWorkPlace = 'How important is '+$.trim(relevancyTitle)+' to the quality of your workplace?';
		var relevancyQuestionCoworker  = 'How important is '+$.trim(relevancyTitle)+' to ' + $.trim(coworkerFirstName) + '&apos;s job?';

		if (coworkerFirstName!='') {
		  relevancyQuestion = relevancyQuestionCoworker;
		  }else{
		  relevancyQuestion = relevancyQuestionWorkPlace;
		  }
    //var relevancyMenu = '<div class="relevancy-menu-options"><a class="relevancy-item" rel="1" href="#">Very low<span>&nbsp;</span></a><a class="relevancy-item" rel="2" href="#">Low<span>&nbsp;</span></a><a class="relevancy-item" rel="3" href="#">Medium<span>&nbsp;</span></a><a class="relevancy-item" rel="4" href="#">High<span>&nbsp;</span></a><a class="relevancy-item" rel="5" href="#">Veri high<span>&nbsp;</span></a></div>'; // Arrows on right
    var relevancyMenu = '<div class="relevancy-menu-options"><strong>'+relevancyQuestion+'</strong><a class="relevancy-item" rel="1" href="#"><span>&nbsp;</span>Very low</a><a class="relevancy-item" rel="2" href="#"><span>&nbsp;</span>Low</a><a class="relevancy-item" rel="3" href="#"><span>&nbsp;</span>Medium</a><a class="relevancy-item" rel="4" href="#"><span>&nbsp;</span>High</a><a class="relevancy-item" rel="5" href="#"><span>&nbsp;</span>Very high</a></div>'; // Arrows on left
    var slider = $(this).find('.rating-slider');
    var relevancy = $(this).find('.relevancy-menu');

		//slider.bgiframe();
		//relevancy.bgiframe();


    // Get slider DOM ID      wsSlider_N
    var sID = slider.attr("id");
    // Get pre-defined value of slider (input type="hidden" id="wsSlider_N_val")
    var sVal = $("#" + sID + "_val").val();
    // Get pre-defined value of slider's relevancy (input type="hidden" id="wsSlider_N_rel")
    var sRel = $("#" + sID + "_rel").val();

    // Create slider object and set its value to pre-defined value
    slider.slider({
      value: sVal,
      min: 0,
      max: 100,
      slide: function(event, ui){
        // Set hidden input's value
        $("#" + sID + "_val").val( ui.value );
        // Set descriptions
        setDescriptions(sID);
        // Highlight the definition in correct column
        setHighlight(sID, ui.value);
        // Write slider's value to console
        if(window.console) { console.log(ui.value) }
      }
      // Enable alternate rail image
      //,start: function(event, ui){ $(this).addClass('rating-slider-active') }
      ,stop:  function(event, ui){ $(this).removeClass('rating-slider-active') }
    });

    // Clone relevancy menu to each slider's container
    relevancy.append( relevancyMenu );
    // Find all the links in drow-down menu
    var a = relevancy.find("a.relevancy-item");
    // Find the one pre-defined
    var sRelSelected = a.eq(sRel-1);
    // Add a class name make it look different than the other links
    sRelSelected.addClass("relSelected");
    // With each selection, class names are corrected and hidden input value is updated
    a.click(function(){
      $(this).siblings().removeClass("relSelected");
      $(this).addClass("relSelected");
      $("#" + sID + "_rel").val( $(this).attr("rel") );
      a.parent().prev('.relevancy-menu-title').addClass('relevancy-menu-title-modified').trigger('click');
      return false;
    });

    // Imitate the :hover effect for the relevancy title
    relevancy.find('.relevancy-menu-title').hover(
      function() { $(this).addClass('relevancy-menu-title-over') },
      function() { $(this).removeClass('relevancy-menu-title-over') }
    );
    // Open options menu with click event
    relevancy.find('.relevancy-menu-title').click(function() {
      $(this)
        .focus()
        .toggleClass('relevancy-menu-title-focus')
        .next()
        .slideToggle('fast');
    });

    // Available slider functions: "slidestart", "slide", "slidechange" and "slidestop"
    //$(this).bind('slidestart', function(event, ui){ });
    //$(this).bind('slide',      function(event, ui){ });
    //$(this).bind('slidechange',function(event, ui){ });
    //$(this).bind('slidestop',  function(event, ui){ });

  }); // $('.ratingSliders .rating-slider-container').each();




  /* Collapsables
   *
   * sample markup:
   *
   * <div class="collapsable">
   *   <h5>Headline</h5>
   *   <div class="collapsable-content">
   *     <p>Content</p>
   *   </div>
   * </div>
   */
  $(".collapsable h5").wrapInner('<a href="#" class="more"></a>');
  $(".collapsable h5").addClass('collapsed');
  $(".collapsable h5").next(".collapsable-content").hide();
  $(".collapsable h5").css({cursor: "pointer", position: "relative"}).toggle(
    function(){
      $(this).removeClass('collapsed').addClass('expanded');
      $(this).next(".collapsable-content").fadeIn();
    },function(){
      $(this).removeClass('expanded').addClass('collapsed');
      $(this).next(".collapsable-content").fadeOut();
    });

  $('.collapsable h5:eq(0)').parent().before('<div class="collapsable-controls"><a href="#">Expand all</a> <a href="#">Collapse all</a></div>');
  // Expand if not already expanded
  $('.collapsable-controls a:eq(0)').click( function(){
      $('.collapsable h5.collapsed').trigger('click');return false;
    });
  // Collapse if not already collapsed
  $('.collapsable-controls a:eq(1)').click( function(){
      $('.collapsable h5.expanded').trigger('click');return false;
    });

  // Sortable table CSS fix
  $('.tableSortable th:last, .tableSortable td:last').css('border','0 none');




  // Replace headline text with Cufon (canvas generated images)
  //Cufon.replace(['h1.title', 'h2.title', 'h3.title', 'h4.title', 'h5.title']);
  Cufon.replace('.title');
  Cufon.replace(['span.score', '.hBarChartScore']);
  Cufon.replace('table.tableTopFiveCategories tbody th');
});

// Find the correct set of definitions and append to container
function setDescriptions(sliderID) {
  $('.rating-definition-container').empty();
  for (i=1;i<6;i++)
  {
    $('div').filter('#' + sliderID + '_DescriptionCol_' + i ).clone().appendTo('.rating-definition-container');
  }
}
// Set highlights for active column
function setHighlight(sliderID, sliderValue){
  $('div').filter('#'+ sliderID).parents(".rating-slider-container").addClass('rating-slider-container-highlighted');
  $('div').filter('#'+ sliderID).parents(".rating-slider-container").siblings(".rating-slider-container").removeClass('rating-slider-container-highlighted');

  if ((sliderValue>=0 ) && (sliderValue<=20 )){ $('.rating-score-col').removeClass("rating-score-col-active");$('.rating-score-col-1').addClass("rating-score-col-active"); }
  if ((sliderValue>=21) && (sliderValue<=40 )){ $('.rating-score-col').removeClass("rating-score-col-active");$('.rating-score-col-2').addClass("rating-score-col-active"); }
  if ((sliderValue>=41) && (sliderValue<=60 )){ $('.rating-score-col').removeClass("rating-score-col-active");$('.rating-score-col-3').addClass("rating-score-col-active"); }
  if ((sliderValue>=61) && (sliderValue<=80 )){ $('.rating-score-col').removeClass("rating-score-col-active");$('.rating-score-col-4').addClass("rating-score-col-active"); }
  if ((sliderValue>=81) && (sliderValue<=100)){ $('.rating-score-col').removeClass("rating-score-col-active");$('.rating-score-col-5').addClass("rating-score-col-active"); }
}

function doClick(buttonName,e)
    {
        //the purpose of this function is to allow the enter key to
        //point to the correct button to click.
        var key;

         if(window.event)
              key = window.event.keyCode;     //IE
         else
              key = e.which;     //firefox

        if (key == 13)
        {
            //Get the button the user wants to have clicked
            var btn = document.getElementById(buttonName);
            if (btn != null)
            { //If we find the button click it
                btn.click();
                event.keyCode = 0
            }
        }
    }
    //Begin RadTabStrip Persist Code
    //Cookie name
    var tabCookieName = "RadTabStripPersist";

    function saveTabIndex(tabText) {
        //Call JS function to save cookie name, tab text,
        //and days before cookie should expire
        setCookie(tabCookieName, tabText, 1);
    }

    //Cookie operation helper function
    //Save the value to a cookie and set expiration date
    function setCookie(c_name, value, expiredays) {
        var exdate = new Date();
        exdate.setDate(exdate.getDate() + expiredays);
        document.cookie = c_name + "=" + escape(value) +
        ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString());
    }

    function loadTabIndex(tabstrip) {
        //If tabstrip reference isn't null
        if (tabstrip != null) {
            //Get hash if a cookie value wasn't specified
            var cookieTabName = getCookie(tabCookieName);
            var tabText = (cookieTabName != "") ? cookieTabName : location.hash;
            //If text from the cookie exists
            if (tabText != "" || tabText != null) {
                //Set tabstrip selected index
                var tab = tabstrip.findTabByValue(tabText); //Get tab object
                if (tab != null) {
                    tab.select(); //Select tab
                }
            }
        }
    }

    //Cookie helper function
    //Gets a cookie based on supplied name and returns value
    //as a string
    function getCookie(c_name) {
        try {
            if (document.cookie.length > 0) {
                c_start = document.cookie.indexOf(c_name + "=");
                if (c_start != -1) {
                    c_start = c_start + c_name.length + 1;
                    c_end = document.cookie.indexOf(";", c_start);
                    if (c_end == -1) c_end = document.cookie.length;
                    return unescape(document.cookie.substring(c_start, c_end));
                }
            }
        }
        catch (err) { }
        //If there is an error or no cookie
        //return an empty string
        return "";
    }

    //End RadTabStrip Persist Code


/* October 29, 2009 11:50:11 AM
 * Show/Hide content with cookie support
 *
 * Notes/Limitations:
 * It currently support one container per page.
 * Must use different names for COOKIE_NAME variable for each page.
 * COOKIE_OPTIONS can be defined differently for each page.
 *
 */
function ws_cookie(cName, txtShow, txtHide) {
  var COOKIE_NAME = cName;
  var COOKIE_OPTIONS = { path: '/', expires: 365 };
  var COOKIE_TEXT_SHOW = txtShow;
  var COOKIE_TEXT_HIDE = txtHide;
  // Status: hidden
  $('.toggleContainer-hidden .toggleContainer-content').hide();
  $('.toggleContainer-hidden .toggleContainer-toggler a').text(COOKIE_TEXT_SHOW);
  // Status: show
  $('.toggleContainer-visible .toggleContainer-content').show();
  $('.toggleContainer-visible .toggleContainer-toggler a').text(COOKIE_TEXT_HIDE);
  if ($.cookie(COOKIE_NAME) == null)     { $.cookie(COOKIE_NAME, 'show', COOKIE_OPTIONS); } // it is first time
  if ($.cookie(COOKIE_NAME) == 'show')   { $('.toggleContainer').removeClass('toggleContainer-hidden').addClass('toggleContainer-visible');$('.toggleContainer .toggleContainer-toggler a').text(COOKIE_TEXT_HIDE);$('.toggleContainer .toggleContainer-content').show(); }
  if ($.cookie(COOKIE_NAME) == 'hidden') { $('.toggleContainer').removeClass('toggleContainer-visible').addClass('toggleContainer-hidden');$('.toggleContainer .toggleContainer-toggler a').text(COOKIE_TEXT_SHOW);$('.toggleContainer .toggleContainer-content').hide(); }
  $('.toggleContainer .toggleContainer-toggler a').click(function() {
    if ( $(this).parent('.toggleContainer-toggler').next('.toggleContainer-content').is(':hidden') ) {
      $(this).parents('.toggleContainer').removeClass('toggleContainer-hidden').addClass('toggleContainer-visible');
      $(this).parent('.toggleContainer-toggler').next('.toggleContainer-content').show();
      $(this).text(COOKIE_TEXT_HIDE);
      $.cookie(COOKIE_NAME, 'show', COOKIE_OPTIONS);
    } else {
      $(this).parents('.toggleContainer').removeClass('toggleContainer-visible').addClass('toggleContainer-hidden');
      $(this).parent('.toggleContainer-toggler').next('.toggleContainer-content').hide();
      $(this).text(COOKIE_TEXT_SHOW);
      $.cookie(COOKIE_NAME, 'hidden', COOKIE_OPTIONS);
    }
    return false;
  });
}
