﻿/*****************************************************************************
This file contains the functions needed to initialize the headers in the site
when it is loaded through Chameleon. It was developed in 2009FB2.
Main function in this file: InitHeader()
*****************************************************************************/
function InitHeader() {
    HighlightCurrentTab();
    
    if(typeof(_runningFromMicrosite) == "undefined") {
        ActivatePreviouslyViewProductsLink('PreviouslyViewProducts');
        InitUserLogin('SignIn','NotUser');
        SetShoppingBagCount('ShoppingBagCount');

        ShowCardLinks('YourCreditCard','PreApprovedOffer','SavingsId');
    } else {
        ActivatePreviouslyViewProductsLink('PreviouslyViewProducts', 'vendor');
        InitUserLogin('SignIn','NotUser', 'vendor');
        SetShoppingBagCount_Vendor('ShoppingBagCount', 'vendor');
        ShowCardLinks('YourCreditCard','PreApprovedOffer','SavingsId', 'vendor');
    } ActivateWishList('MyWishList');
    PopulateSearchTerm();
 }
function ShowCardLinks(YourCreditCardId,PreApprovedOfferId,SavingsId,vendorName) {
    var hasPreApprovedOffer = false;
    var hasPreApprovedOfferDeclined = false;
    var hasAdsCards = false;
    var cardId;    
    var cookieValue;
    var htmlElement;
    var cookieName = GetUserCookieName(vendorName);
    var subCookiePrefix = GetSubCookiePrefix(vendorName);
            cookieValue = GetDecodedSubCookieValue(cookieName, subCookiePrefix + '.HasPreApprovedOffer');
    
    if((cookieValue != null) && (cookieValue.toLowerCase() == 'true'))
        {hasPreApprovedOffer = true;}

    cookieValue = GetDecodedSubCookieValue(cookieName,subCookiePrefix +'.PreApprovedOfferDeclined');
    if((cookieValue != null) && (cookieValue.toLowerCase() == 'true'))
        {hasPreApprovedOfferDeclined = true;}
    
    cookieValue = GetDecodedSubCookieValue(cookieName,subCookiePrefix +'.HasAdsCard');
    if((cookieValue != null) && (cookieValue.toLowerCase() == 'true'))
         {hasAdsCards = true;}
    
    cookieValue = GetDecodedSubCookieValue(cookieName,subCookiePrefix +'.CreditInfoString');
    if((cookieValue != null) && (cookieValue.indexOf('A') == 0))
         {hasAdsCards = true;}
    
    cookieValue = GetDecodedSubCookieValue(cookieName,subCookiePrefix +'.CreditBrand');
    if(cookieValue != null) 
        {cardId = cookieValue.toLowerCase();}

    if((hasPreApprovedOffer == true) && (hasPreApprovedOfferDeclined == false)) {
        htmlElement = document.getElementById('SavingsId');
        if(htmlElement != null)
            {htmlElement.style.display='none';}
        
        htmlElement = document.getElementById('PreApprovedOffer');
        if(htmlElement != null) {
            htmlElement.style.display='block';
               if(cardId == "j") {
                htmlElement = document.getElementById('imgPreApproved');
                    if(htmlElement != null)
                     {htmlElement.src = '//secureimages.redcatsusa.com/images/site_images/jessicalondon/jl_header_pre-approved_icon.gif';}
   }}} else if(hasAdsCards == true) {
        htmlElement = document.getElementById('SavingsId');
         if(htmlElement != null)
           {htmlElement.style.display='none';}
        
        htmlElement = document.getElementById('YourCreditCard');
        if(htmlElement != null)
           {htmlElement.style.display='block';}
    } return true;
} function RedirectToPreApprovedOffer()
   {window.location = BaseURL + 'Account/Acct_PreQualifiedOffer_plcc.aspx';}

function InitUserLogin(SignInId, NotSignedInId, vendorName) { 
    var cookieName = GetUserCookieName(vendorName);
    var subCookiePrefix = GetSubCookiePrefix(vendorName);
         if(GetLoginStatus(vendorName)) {
            var FirstName = toTitleCase(GetDecodedSubCookieValue(cookieName, subCookiePrefix +'.FirstName'));
            document.getElementById(SignInId).innerHTML = '<span style="color:#990000;">Welcome Back ' + FirstName + '!</span>';    
            document.getElementById(NotSignedInId).innerHTML = 'Not <span> '+FirstName+'?</span>'; 
            document.getElementById(SignInId).style.cursor = 'text';  
}} function HighlightCurrentTab()  { 
     if(GetTopLevelDepartment() > 0 ) { 
         var eleId = 'dept_' + GetTopLevelDepartment(); 
         if(typeof(eleId) != "undefined" && eleId != null)  { 
             var liId = document.getElementById(eleId); 
             if(typeof(liId) != "undefined" && liId != null)   { 
              var aId = liId.getElementsByTagName('a'); 
                 if(typeof(aId) != "undefined" && aId != null) 
                     {aId[0].style.backgroundPosition = "0 0px"}  //$(eleId).childNodes[1].style.backgroundImage = "url('//secureimages.redcatsusa.com/images/site_images/womanwithin/dept_" + GetSubCookieValue('Department','TopLevelDepartment') + "_on.jpg')"
}}}} function SetShoppingBagCount(ShoppingBagId) {
    if(document.getElementById(ShoppingBagId)!=null) {
        if(GetSubCookieValue('Basket','Indy.Basket.BasketCount') !=null )
            {document.getElementById(ShoppingBagId).innerHTML = '' + GetSubCookieValue('Basket','Indy.Basket.BasketCount') ;}
        else
         {document.getElementById(ShoppingBagId).innerHTML = '0';}
}}

function SetShoppingBagCount_Vendor(ShoppingBagId, vendorName) {
    if(typeof(vendorName) != "undefined") {
        if(document.getElementById(ShoppingBagId)!=null) {
            var basketCount = GetCookie(vendorName + '.Basket.BasketCount');
            if(basketCount !=null )
                {document.getElementById(ShoppingBagId).innerHTML = '' + basketCount + '';}
            else
             {document.getElementById(ShoppingBagId).innerHTML = '0';}
}}}

function LogoutUser()
  {setSubCookieAndCookie('User','Indy.FirstName','');
   setSubCookieAndCookie('User','Indy.MasterId','');}

//This function returns a bool to indicate the login status.
function GetLoginStatus(vendorName) {
    var cookieName = GetUserCookieName(vendorName);
    var subCookiePrefix = GetSubCookiePrefix(vendorName);
     if(
        (GetSubCookieValue(cookieName,subCookiePrefix + '.MasterId') != null) && 
        (GetSubCookieValue(cookieName,subCookiePrefix + '.FirstName') != null) &&
        (GetSubCookieValue(cookieName,subCookiePrefix + '.MasterId') != '') && 
        (GetSubCookieValue(cookieName,subCookiePrefix + '.FirstName') != '')
      )
  {return true;}
    else
     {return false;}
}
//PVP 
function ActivatePreviouslyViewProductsLink(PVPId, vendorName) {
    var prevProducts;
    if(typeof(vendorName) == "undefined")
        {prevProducts = GetCookie('LastViewedProducts');}
    else
     {prevProducts = GetCookie(vendorName + '.LastViewedProducts');}
    
    var RegEX = /(([0-9]+)#([0-9]+)\*([0-9]+)){1,}/;
    if(RegEX.test(prevProducts)) {
        if(document.getElementById(PVPId)!=null)
            {document.getElementById(PVPId).style.display='';}
    } else {
        if(document.getElementById(PVPId)!=null)
            {document.getElementById(PVPId).style.display='none';}
}}

//wishlist
function ActivateWishList(WishListId) {
    if(IsUserHavingWishList()) {
        if(document.getElementById(WishListId)!=null)
           {document.getElementById(WishListId).style.display = '';}
    }else{
        if(document.getElementById(WishListId)!=null)
            {document.getElementById(WishListId).style.display = 'none';}
}}

/*************************** Search Func. ***************************/

// product search
function SearchProducts(SearchInputId) {
    if (document.getElementById(SearchInputId).value!='Product Search') {
        var searchVal = encodeURIComponent(document.getElementById(SearchInputId).value);
        searchVal = TrimSearch(searchVal);
        var qo_regex = /^\d{1,4}\-?\d{5}\-?\d{3,4}$/; // cat numbers vary. hyphens are optional.
        if (qo_regex.test(searchVal)) { // QuickOrder numbers go to product pages.
            location.href = BaseURL + "Catalog/CatalogQuickOrder.aspx?Quick=" + searchVal;
        } else {
            location.href = BaseURL + "Search/SearchResults.aspx?SearchHeader=" + searchVal;
        }
    }
}

function SearchOnEnter(myfield,e,SearchInputId) {
    var keycode;
    if (window.event) { keycode = window.event.keyCode; }
    else if (e) { keycode = e.which; }
    else { return true; }

    if (keycode == 13) {
        var searchVal = encodeURIComponent( document.getElementById(SearchInputId).value);
        searchVal = TrimSearch(searchVal);
        if (searchVal != '') { // only search if there are terms
            var qo_regex = /^\d{1,4}\-?\d{5}\-?\d{3,4}$/; // cat numbers vary. hyphens are optional.
            if (qo_regex.test(searchVal)) { // QuickOrder numbers go to product pages.
                location.href = BaseURL + "Catalog/CatalogQuickOrder.aspx?Quick=" + searchVal;
            } else {
                location.href = BaseURL + "Search/SearchResults.aspx?SearchHeader=" + searchVal;
            }
        }
        return false;
    } else { return true; }
}

//QuickOrder search  
function SearchCatalogQuickOrder(SearchCatalogInputId) {
    if (document.getElementById(SearchCatalogInputId).value!='catalog#0000-00000-000') { 
        var searchVal = encodeURIComponent(document.getElementById(SearchCatalogInputId).value);
        searchVal = TrimSearch(searchVal);
        if (searchVal != '') {
            location.href = BaseURL + "Catalog/CatalogQuickOrder.aspx?Quick=" + searchVal;
        }
    }
}

function SearchCatalogOnEnter(myfield,e,SearchCatalogInputId) {
    var keycode;
    if (window.event) { keycode = window.event.keyCode; }
    else if (e) { keycode = e.which; }
    else { return true; }
    
    if (keycode == 13) {
        var searchVal = encodeURIComponent(document.getElementById(SearchCatalogInputId).value);
        searchVal = TrimSearch(searchVal);
        if (searchVal != '') {
            location.href = BaseURL + "Catalog/CatalogQuickOrder.aspx?Quick=" + searchVal;
        }
        return false;
    } else { return true; }
}

function TrimSearch(searchVal) {
    while (searchVal.substring(0,3) == '%20') {
        searchVal = searchVal.substring(3, searchVal.length); // trim any initial spaces
    }
    return searchVal;
}

//END

function toTitleCase(strToConvert){  
   var mx_replace = new Array('to','it','on','the','a','and','or','nor','of','in');
   var mx_ignore = new RegExp('[-\\s]');
   var mx_newS = strToConvert;
   var mx_prevC = '';
   var mx_thisC = null;
   var mx_match = null;
   var mx_iR = '';
   mx_newS = mx_newS.replace(/\s+|\r|\n/g,' ').toLowerCase();
   mx_newS = mx_newS.replace(/^\s*/,'');
   mx_newS = mx_newS.replace(/\s*$/,'');

   for(var i=1;i<mx_newS.length+1;i++) {

   mx_iR = new RegExp('^'+ (i!=1?'(.{'+ eval(i-1) +'})':'') +'(.)'+ (i!=mx_newS.length?'(.{'+ eval(mx_newS.length - i) +'})':'') +'$');
   mx_match = mx_newS.match(mx_iR);
   mx_thisC = ( (mx_match.length==3 && i==1) ? mx_match[1] : mx_match[2] );

   if(mx_prevC.match(mx_ignore) != null || mx_prevC=='') {

   mx_newS = ( (mx_newS.length == 1) ? mx_newS.toUpperCase() :
   (mx_match.length == 3 && i==1) ? mx_newS.replace(mx_iR, mx_match[1].toUpperCase()+mx_match[2]) :
   (mx_match.length == 3 && i==mx_newS.length) ? mx_newS.replace(mx_iR, mx_match[1]+mx_match[2].toUpperCase()) :
   mx_newS.replace(mx_iR, mx_match[1]+mx_match[2].toUpperCase()+mx_match[3]) );
}

   mx_prevC = (mx_thisC ? mx_thisC.toLowerCase() : '');}

   for (var n=0;n<mx_replace.length;n++) {
   mx_iR = new RegExp(' '+ mx_replace[n] +' ','gi');
   mx_newS = mx_newS.replace(mx_iR,' '+ mx_replace[n] +' ')
   } return(mx_newS); }
/********************************The following functions are provided for the brand to support making changes to the header ***************/
function GetFirstName() {
    if(GetLoginStatus()) {
        var FirstName = toTitleCase(GetDecodedSubCookieValue('User','Indy.FirstName'));
        return FirstName;
    } else{
        return ''; 
}}
//This function returns a bool to indicate the login status.
function IsUserLoggedIn() {
    if(
        (GetSubCookieValue('User','Indy.MasterId') != null) && 
        (GetSubCookieValue('User','Indy.FirstName') != null) &&
        (GetSubCookieValue('User','Indy.MasterId') != '') && 
        (GetSubCookieValue('User','Indy.FirstName') != '')
      )
         {return true;}
           else
            {return false;}
}
//This function indicates if the user has by brand credit cards.
function IsUserHavingWishList() {
    if(GetDecodedSubCookieValue('User','Indy.WishListCount') != null) {
        if(GetDecodedSubCookieValue('User','Indy.WishListCount') == 'true')
            {return true;}
  } return false;}
     function GetTopLevelDepartment() {
      if((document.getElementById('hdnTopDeptId') != null) &&
          (document.getElementById('hdnTopDeptId').value != '-2147483648'))
             {return document.getElementById('hdnTopDeptId').value;}
      else
       {return -1;}
}
function GetShoppingBagCount() {
    if(GetSubCookieValue('Basket','Indy.Basket.BasketCount') !=null )
        {return GetSubCookieValue('Basket','Indy.Basket.BasketCount');}
}

function doSearch() {
  var searchVal = encodeURIComponent( document.getElementById('search_input').value );
  window.location = BaseURL + "Search/SearchResults.aspx?SearchHeader="+searchVal;
}

 function doSearchtoo() {
  var searchVal = encodeURIComponent( document.getElementById('searchcatalog_input').value );
  window.location = BaseURL + "Catalog/CatalogQuickOrder.aspx?Quick="+searchVal;
}

  function doSearchAsWell(myfield,e) {
   var keycode;
       if (window.event) keycode = window.event.keyCode;
           else if (e) keycode = e.which;
             else return true;
       if (keycode == 13)  {
           var searchVal = encodeURIComponent( document.getElementById('search_input').value );
           window.location = BaseURL + "Search/SearchResults.aspx?SearchHeader="+searchVal;
           return false;
        }   else
                   return true;}
  
  function doSearchNum(myfield,e) {
   var keycode;
       if (window.event) keycode = window.event.keyCode;
           else if (e) keycode = e.which;
             else return true;
       if (keycode == 13)  {
           var searchVal = encodeURIComponent( document.getElementById('searchcatalog_input').value );
           window.location = BaseURL +"Catalog/CatalogQuickOrder.aspx?Quick="+searchVal;
           return false;
        }    else
              return true;
    }    
function GetUserCookieName(vendorName) {
  if(typeof(vendorName) == "undefined")
    {return "User";}
      else
       {return vendorName + ".User";}
}

function GetSubCookiePrefix(vendorName) {
    if(typeof(vendorName) == "undefined")
        {return "Indy";}
    else
     {return vendorName;}
}
/** delete cookie **/
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	} else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	} return null; }

function eraseCookie(name) 
  {createCookie(name,"",-1);}

function OpenPopup(sURL, sName, sFeatures, bReplace) {
    var url = "about:blank";
    if(typeof(sURL) != 'undefined' && sURL != null)
        {url = BaseURL + sURL;}
    return window.open(url, sName, sFeatures, bReplace);
}

function PopulateSearchTerm()
{
    var searchControl = document.getElementById('search_input');
    if(searchControl != null)
    {
        var queryStringCollection = window.location.search.replace('?', '').split('&')
        for (cnt = 0; cnt < queryStringCollection.length; cnt++)
        {
	        var qs = queryStringCollection[cnt];
	        var nameValueCollection = qs.split('=')
	        if (nameValueCollection.length >= 2)
	        {
		        if (nameValueCollection[0] == 'SearchHeader')
                {
                    //alert(decodeURIComponent(nameValueCollection[1]));
			        searchControl.value = decodeURIComponent(nameValueCollection[1]);
                    break;
		        }
            }
	    }
    }
}