// Global  JS File for HUP
// All locale specific JS goes in local.js 
// $Header: /commerce/stores.net/buymsehup/assets/local/js/unobtrusive.js,v 1.38.2.2.2.2.4.13 2011/09/26 21:53:38 LMayfield Exp $

var blank = new Image();
blank.src = '//c5.img.digitalriver.com/gtimages/store-mc-uri/mshup/assets/local/pixel.gif';

var showPop = function (id) {
  var scrollPos = 0;
  id = '#' + id;
  $(id).overlay({
    modal: { css: { backgroundColor: '#000', opacity: 0.8 } }, 
    hideSelector: '.close', 
    onShow: function (bgOverlay) { 
      var mainOverlay = this; 
      $(bgOverlay).fadeIn('normal', function () {
        $(mainOverlay).slideDown('normal');
      }); 
      $(id).css({
        'margin-top': '-181px',
        'position': 'absolute'
      });
      scrollPos = $('html').scrollTop();
      $('html').scrollTop(0);
    },
    onHide: function (bgOverlay) { 
      $(this).slideUp('fast', function () {
        $(bgOverlay).fadeOut('fast'); 
      });
      $('html').scrollTop(scrollPos);
      return false;
    } 
  }).showOverlay();
  return false;
};

var getQuerystring = function (key, default_) {
  var regex = new RegExp("[\\?&]"+key+"=([^&#]*)", "i"),
      qs;
  default_ = default_ || "";
  key = key.replace(/(\[|\])/, "\\$1");
  qs = regex.exec(window.location.href);
  if (qs)
		return decodeURIComponent(qs[1].replace(/\+/g, " "));
  else
    return default_;
};

/*
 * Function: showTooltip
 * Show a tooltip with HTML content on a specific element.
 * Use this instead of the productOverlay function.
 *
 * Parameters:
 * el: The tooltip element. Default is a element whose id is
 * the id of the element on which it is postioned concatenated with 'Desc'.
 * posOn: Postion the tooltip on this element. Default value
 * being the element on which the function is called.
 */
jQuery.fn.showTooltip = function (el, posOn) {
  var positionOn = (posOn || this),
      position = positionOn.offset(),
      element = el || $('#' + $(this).attr('id') + 'Desc');

  if (!element.length) {
    return this;
  }


  element.detach().appendTo(positionOn);

  this.hover(function () {
    element.show();
  }, function () {
    element.hide();
  });
  return this;
};

$(document).ready(function() {
  // product overlays
  productOverlay("#prodAccess");
  productOverlay("#prodExcel");
  productOverlay("#prodInfoPath");
  productOverlay("#prodGroove");
  productOverlay("#prodOneNote");
  productOverlay("#prodOutlook"); 
  productOverlay("#prodPowerPoint"); 
  productOverlay("#prodPublisher"); 
  productOverlay("#prodWord");
  productOverlay("#prodCommunicator"); 
  
  productOverlay("#prodLanguagePack",8000); //Language Packs


  // top bar link flyout / overlays
  topBarFlyout("#howBuy");
  topBarFlyout("#amEligible");
  topBarFlyout("#addlProducts");
  
  // question and answer overlays
  questionOverlay("#returningVisitor");
  questionOverlay("#missingEmail");
  questionOverlay("#whyWorkEmail");
  
  // prod Details	overlays
  questionOverlay('#licensing');
  questionOverlay("#requirements");
  questionOverlay('#licensingpop');
  questionOverlay('#requirementspop');
  
  // PNG Fix (jQuery.com)
  var ie6lowerBrowser = (/MSIE ((5\.5)|6)/.test(navigator.userAgent) && navigator.platform == "Win32");
  if (ie6lowerBrowser) {
    $('.infoBoxContent table td img').css({'width': '136px', 'height': '156px'});
    $(document).pngFix();
    $('#header #logo span').css('position', 'fixed');
    $('#homeUseProgram span').css('position', 'fixed');
  }
  
  // Get height for blending backgound graphics
  var mainHeight = $("#header").height() + $("#content").height() + 80; 
  if ($("ul#questions,.boxGlowDbl").length > 0) { mainHeight = 724 } // default height for promotionlogon (1st) page.
  if ($("#prodDetRtCol").length > 0) { mainHeight = 506 } // default height for default page.
  if ($(".logon").length > 0) { mainHeight = 514 } 
  if ($("#ordersummaryArea").length > 0) { mainHeight = 600 } 

  var ie7Browser = (/MSIE (7)/.test(navigator.userAgent) && navigator.platform == "Win32");
  /*
  if ((ie7Browser) || ($.browser.safari)) {
    if ($("#rtCol").length > 0) { mainHeight = 723 }; // landing, confirm pages
  }*/
  
  // modify template for long pages, ( /Layout/_page.ascx )
  if (($("#TermsOfUseArea").length > 0) || 
      ($("#termsArea").length > 0) ||
      ($("#faqArea").length > 0) ||
      ($("#serviceArea").length > 0) ||
      ($("#privacyArea").length > 0) ||
      ($("#jpLawArea").length > 0)) {
    $("#wrapper").attr({ 
       style: "height:100%;"
    });		
  } 
  
  // short pages don't need the background
  function removeWrapBkg() { 
    $("#wrapper").css("background-image","none") 
  }; 
  if ($("#prodDetRtCol, .logon, .logoff, #EHupLogoff, #BasketEmpty, .contactus, #ordersummaryArea, #serviceArea, #productArea, #marketingArea").length > 0) removeWrapBkg();
  
  // display error lists
  if ($(".errorList").length > 0) {
    $(".errors").css("visibility","visible");
  }
  
  //Modify DOM instead of codebehind edits, may need to refactor
  
  // shopperinfo page, hide email address text box and show email txt
  if ($("#billingArea .emailValue").length > 0) {
    var emailAddressTxt = $(".emailValue").attr("value");
    $(".emailValue").css("display","none");
    $(".emailText").append(emailAddressTxt);
  }
  
  // downloader page, fix button text
  if ($("#downloadArea .buttonText").length > 0) {
    var downloadTxt = $(".buttonText").html();
    $(".productsDL .col-2 a.download span").replaceWith(downloadTxt);
  }
  
  // header buttons 
  if ($("#header #region img").length > 0) {
    $("#headerLinks").css("margin-right","0") 
  }
  
  // printable pages
  if (($("#receipt2Area").length > 0) || ($("#printArea").length > 0)) {
    $("#wrapper").css("width","754px") 
  }
  
  $('td.supplemental div.suppButton').each(function (i) {
        var pId = $(this).parents('div[id^="Sku_"]').attr('id');
        $(this).appendTo(".productsDL td." + pId);

  });

  // All Javascript code required for a specific page has to be
  // written inside the below functions. No variables will spill
  // over to any other page.

  /***** Home Page *****/
  if($('body#home').length) {
    (function () {

      var innerContent = $("#innerContent"),
          workEmail = getQuerystring("workEmail"),
          programCode = getQuerystring("programCode");
					
			// pre-polpuate form with parameters from URL
      if (programCode) {
        $("input.programCode").val($.trim(programCode));
      }
      if (workEmail) {
				$("input.workEmail").val($.trim(workEmail));
      }

      if (programCode && workEmail && $('#inputError').find('.errorList').length <= 0) {
				if (urlReferring.indexOf('home.aspx') < 0) {
					$('a.submit').click().removeAttr('onclick').find('div').each(function () {
          	$(this).attr('class', $(this).attr('class').replace("Green", "Gray"));
        	});
				}
      }

			$('input:text').blur(function () {
				$(this).val($.trim($(this).val()));
			});
			
      innerContent.find('span.homePrice')[0].innerHTML = $('#mainPrice').html();
      innerContent.find('span.priceText').show();    
    }());
  }
	
	/***** Logon Page *****/
	if($('body#logon').length) {
    (function () {
			
			$('input:text').blur(function () {
				$(this).val($.trim($(this).val()));
			});
		
    }());
  }

  /***** Default Page *****/
  if($('body#default').length) {
    (function () {
      var keyValtext = getQuerystring('_errors', '');
      if (keyValtext !== ""){
          $('#error_purchase').css({'display':'block'});
          id='error_purchase';
          showPop(id);
      }
      else {
          $('#error_purchase').css({'display':'none'});
      }

      $('.learn a').bind('click', function(){
          var overlay_id = $(this).attr('rel');
          return showPop(overlay_id);
      });
      $('#blockedBtn').bind('click', function(){
          showPop('mainBlockedMsg');
      });
    }());
  }

  /***** Basket Page *****/
  if ($('body#basket').length) {
    (function () {
      /* Data for Basket page */
      var languagePack = $('#languagePack'),
          langPackPrice = languagePack.find('span.upsellPrice')[0],
          langPackPriceArea = languagePack.find('span.langpack')[0],
          officeMacLineItem = $('table[id$="BasketList"] td[class*="officemac"] .description:first'),
          officeProLineItem = $('table[id$="BasketList"] td[class*="officepro"] .description:first'),
          officeMacNote = $('#officeMacNote'),
          officeProNote = $('#officeProNote'),
          checkoutButton = $('#cartArea').find('.checkoutBtn'),
          countryOption = $('#ccControl').find('select:first option:selected').text(),

          /* Functions specific to Basket page */
          setupItemHelp = function (lineItem, lineItemNote) {
            if(!lineItem.length) {
              return;
            }
            lineItem.showTooltip(lineItemNote);
            checkoutButton.showTooltip(lineItemNote, lineItem);
          };

      if (languagePack.find('span.productFamilyAddItem').length === 0) {
        languagePack.hide();
      }

      $('a.backupDVDText').each(function () {
          var id = '#' + $(this).attr('id');
          productOverlay(id, 8000);
      });
      
      // Replace the country dropdown with the current country chosen
      if (countryOption !== "") {
        $('#ccControl').find('select:first').remove();
        $('#ccControl').find('.currencyCountryLabel')
                       .after('<span class="ListCountry">&nbsp;'+countryOption+'</span>');
      }      

      // Display the language pack price in the correct location.
      // The span.langpackprice element is part of the resource key basket.language.pack
      if (langPackPriceArea && langPackPrice) {
          langPackPriceArea.innerHTML = langPackPrice.innerHTML;
      }

      if (!officeMacLineItem.length) {
        officeMacLineItem = $('table[id$="BasketList"] td .description:first:contains("Mac")');
      }
      setupItemHelp(officeMacLineItem, officeMacNote);
      if (!officeProLineItem.length) {
        officeProLineItem = $('table[id$="BasketList"] td .description:first:contains("Office Professional Plus")');
      }
      setupItemHelp(officeProLineItem, officeProNote);

    }());
  }

  /***** Downloader Page *****/
  if ($('body#downloader').length) {
    (function () {
      /**** Email A Friend functionality goes here ****/
      if($('div[id$="emailAFriend"]').length) {
        if($("#tellACoworker").length) {
          var tellCoworkerBtn = $("#tellACoworker"),
              newHref = tellCoworkerBtn .attr('href').replace('<span>', '').replace('<\/span>', '');
          tellCoworkerBtn .attr('href', newHref);
        }
      }
      /**** END Email A Friend ****/
    }());
  }
	
});
// test if id exists
/*jQuery.fn.exists = function() {
 return this.length > 0;
};*/

// PNG Fix (jQuery.com)
function fixPng(png) {
	// get src
	var src = png.src;
	// set width and height
	if (!png.style.width) { png.style.width = $(png).width(); }
	if (!png.style.height) { png.style.height = $(png).height(); }
	// replace by blank image
 	png.onload = function() { };
 	png.src = blank.src;
 	// set filter (display original image)
 	png.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='scale')";
}

var productOverlayList = new Array('#prodAccessDesc','#prodExcelDesc','#prodInfoPathDesc','#prodGrooveDesc','#prodOneNoteDesc','#prodOutlookDesc','#prodPowerPointDesc','#prodPublisherDesc','#prodWordDesc','#prodCommunicatorDesc');

// product info helper overlays
function productOverlay(id,time) {
	if ($(id)) {
		var descDiv = id + "Desc";
		var removeOverlay = function() {
			$(descDiv).hide();
		}
		if (time == null) { time = 4000 }

		$(id).mouseover(function() {
														 
			for(var i = 0; i<productOverlayList.length; i++)
			{
				var otherDesc = productOverlayList[i];
				if(descDiv != otherDesc)
				{
					if($(otherDesc).css("display") == 'block')
					{
						//alert("otherDesc: " + otherDesc + "| descDiv : " + descDiv);
						$(otherDesc).hide();
					}
				}
			}
			
			$(descDiv).show();
			setTimeout(removeOverlay,time);
			//alert("productOverlayList : " + productOverlayList.length); 
		});

		$(descDiv).mouseout(function() {
			$(descDiv).hide();
		});
	}
}

// top bar link flyout / overlays
function topBarFlyout(id) {
	if ($(id)) {
		var linkDiv = id + "Link";
		var overlayDiv = id + "Flyout";
		$(id).mouseover(function() {
			$(overlayDiv).show();
			$(linkDiv).addClass("hover");
		});
		$(id).mouseout(function() {
			$(overlayDiv).hide();
			$(linkDiv).removeClass("hover");
		});
		$(id).click(function() {
			$(overlayDiv).toggle();
		});
	}
}

// question and answer overlays
function questionOverlay(id) {
	if ($(id)) {
		var quesDiv = id + "Answer";
		$(id).mouseover(function() {
		   	$(quesDiv).show();
		});
		$(id).mouseout(function() {
			$(quesDiv).hide();;
		});
		$(id).click(function() {
			$(quesDiv).toggle();
		});
	}
}

// jump menu for country selector used in resource key, home.region
function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

jQuery.preloadImages = function() {
  for(var i = 0; i<arguments.length; i++) {
    jQuery("<img>").attr("src", arguments[i]);
  }
}
$.preloadImages("//c5.img.digitalriver.com/gtimages/store-mc-uri/mshup/assets/local/footer-glow.png",
                "//c5.img.digitalriver.com/gtimages/store-mc-uri/mshup/assets/local/header-fade.png",
                "//c5.img.digitalriver.com/gtimages/store-mc-uri/mshup/assets/local/submenu_over_right.png",
                "//c5.img.digitalriver.com/gtimages/store-mc-uri/mshup/assets/local/submenu_over_left.png",
                "//c5.img.digitalriver.com/gtimages/store-mc-uri/mshup/assets/local/submenu-overlay-top.png",
                "//c5.img.digitalriver.com/gtimages/store-mc-uri/mshup/assets/local/submenu-overlay-extended.png",
                "//c5.img.digitalriver.com/gtimages/store-mc-uri/mshup/assets/local/submenu-overlay-bottom.png",
                "//c5.img.digitalriver.com/gtimages/store-mc-uri/mshup/assets/local/product-hover-box-top.png",
                "//c5.img.digitalriver.com/gtimages/store-mc-uri/mshup/assets/local/product-hover-box-middle.png",
                "//c5.img.digitalriver.com/gtimages/store-mc-uri/mshup/assets/local/product-hover-box-bottom.png",
                "//c5.img.digitalriver.com/gtimages/store-mc-uri/mshup/assets/local/faq-overlay-top.png",
                "//c5.img.digitalriver.com/gtimages/store-mc-uri/mshup/assets/local/faq-overlay-middle.png",
                "//c5.img.digitalriver.com/gtimages/store-mc-uri/mshup/assets/local/faq-overlay-bottom.png",
                "//c5.img.digitalriver.com/gtimages/store-mc-uri/mshup/assets/local/prodDetailsBox-top.png",
                "//c5.img.digitalriver.com/gtimages/store-mc-uri/mshup/assets/local/prodDetailsBox-middle.png",
                "//c5.img.digitalriver.com/gtimages/store-mc-uri/mshup/assets/local/prodDetailsBox-bottom.png",
                "//c5.img.digitalriver.com/gtimages/store-mc-uri/mshup/assets/local/product-hover-box-top-rt.png",
                "//c5.img.digitalriver.com/gtimages/store-mc-uri/mshup/assets/local/product-hover-box-middle.png",
                "//c5.img.digitalriver.com/gtimages/store-mc-uri/mshup/assets/local/product-hover-box-bottom.png",
                "//c5.img.digitalriver.com/gtimages/store-mc-uri/mshup/assets/local/button-org-bkg.gif",
                "//c5.img.digitalriver.com/gtimages/store-mc-uri/mshup/assets/local/boxGlow-dbl-top.png",
                "//c5.img.digitalriver.com/gtimages/store-mc-uri/mshup/assets/local/boxGlow-dbl-middle.png",
                "//c5.img.digitalriver.com/gtimages/store-mc-uri/mshup/assets/local/boxGlow-dbl-bottom.png",
                "//c5.img.digitalriver.com/gtimages/store-mc-uri/mshup/assets/local/bodyBg.jpg");


