﻿//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 ChangeCardLinkToPreApproved(BrandCardId)
{
    htmlElement = document.getElementById('BrandCardId');
    if(htmlElement != null)
    { htmlElement.href = BaseURL + "Account/Acct_PreQualifiedOffer_common.aspx"; }
}

function ChangeCardLinkToBrandCard(BrandCardId)
{
    htmlElement = document.getElementById('BrandCardId');
    if(htmlElement != null)
    { htmlElement.href = BaseURL + "Account/Acct_CreditCards.aspx"; }
}

function ShowCardLinks(YourCreditCardId,PreApprovedOfferId,SavingsId,vendorName)
{
    var hasPreApprovedOffer = false;
    var hasPreApprovedOfferDeclined = false;
    var hasAdsCards = false;
    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; }
    
    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=''; }
        
        ChangeCardLinkToPreApproved('BrandCardId')
    }
    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=''; }
        
        ChangeCardLinkToBrandCard('BrandCardId')
    }
    
    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 = 'Welcome ' + FirstName+ ',';  
        $('#welcome').css('display', 'none'); 
        $('#register').css('color', '#6E6E70'); 
        $('#register').css('text-decoration', 'none');
        $('#SignIn').css('color', '#6E6E70'); 
        $('#SignIn').css('text-decoration', 'none');           
        document.getElementById(NotSignedInId).innerHTML = 'Not ' + FirstName + '? '; 
        document.getElementById(SignInId).style.cursor = 'text';  
    }}

  function HighlightCurrentTab()  {
      if(GetTopLevelDepartment() > 0 ) {
          var eleId = 'dept_' + GetTopLevelDepartment();
          var deptElement = document.getElementById(eleId);
          if(deptElement == null)
              return;
          var linkElement = deptElement.getElementsByTagName('a')[0];
          if(linkElement == null)
              return;
              linkElement.setAttribute('id','on');
 }}

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; }
}

//This function shows the previously view products 
//link if the user has visited any product.
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='';
          $('#customernum').css('float', 'none'); 
         }
    }
    
    else
    {
        if(document.getElementById(PVPId)!=null)
        { document.getElementById(PVPId).style.display='none'; }
    }}

//This function shows wishlist link if the user has added any
//items to the 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. ***************************/
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) {
        GoSearch(SearchInputId);
        return false;
    } else { return true; }
}

function GoSearch(SearchInputId) {
    var searchVal = encodeURIComponent( document.getElementById(SearchInputId).value );
    while (searchVal.substring(0,3) == '%20') { // trim any initial spaces
        searchVal = searchVal.substring(3, searchVal.length); 
    }
    var qo_regex = /^\d{1,4}\-?\d{5}\-?\d{3,4}$/;
    if (qo_regex.test(searchVal)) {
         location.href = BaseURL + "Catalog/CatalogQuickOrder.aspx?Quick="+searchVal;
    } else if (searchVal != '' & searchVal != 'Enter%20keyword%20or%20catalog%20item%20%23') {
         location.href = BaseURL + "Search/SearchResults.aspx?SearchHeader=" + searchVal;
    }
}

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') {
	    searchControl.value = decodeURIComponent(nameValueCollection[1]);
        break;
}}}}}
/*************************** 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 ***************/
//This function returns the First Name of the logged in user.
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 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);
}

//EmailsyncWithBg

// JScript File

var xmlHttp; 

function SendEmail ()
{
    var url;
    var txtEmail = document.getElementById("txtEmail");
    var emailError = document.getElementById("VIP");
    
    if (txtEmail.value.length > 0)
    {
        if (echeck(txtEmail.value)==true)
        {
            var url="/Checkout/ChameleonEmail.aspx?eml=" + txtEmail.value; 
            ExecuteCall (url);
        }
        else
        { emailError.style.backgroundImage = 'url(//secureimages.redcatsusa.com/images/site_images/roamans/VIPerrorInvalid.jpg)'; }
    }
    else
    { emailError.style.backgroundImage = 'url(//secureimages.redcatsusa.com/images/site_images/roamans/VIPerrorInvalid.jpg)'; }    
}

function ClearUp ()
{
    var txtEmail = document.getElementById("txtEmail");
    var emailError = document.getElementById("VIP");
    txtEmail.value = "";
    emailError.style.backgroundImage = "url(//secureimages.redcatsusa.com/images/site_images/roamans/VIPSigned.jpg)"
}

function echeck(str) 
{
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
	   return false
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   return false
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
	    return false
	}

	 if (str.indexOf(at,(lat+1))!=-1){
	    return false
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
	    return false
	 }

	 if (str.indexOf(dot,(lat+2))==-1){
	    return false
	 }
	
	 if (str.indexOf(" ")!=-1){
	    return false
	 }

	 return true					
}

function ChameleonEmailResponse()
{ 
    try
    {
        if (xmlHttp.readyState == 4 || 
            xmlHttp.readyState == 'complete')
        {
            var response = xmlHttp.responseText; 
            if (response.length > 0)
            {
                var emailResult = document.getElementById("VIP");
                emailResult.style.backgroundImage = 'url(//secureimages.redcatsusa.com/images/site_images/roamans/VIPSigned.jpg)';
                ClearUp();
            } }}
    catch(e){}
}

// Common Ajax functionality

function ExecuteCall(url)
{ 
    try 
    {
        xmlHttp = GetXmlHttpObject(ChameleonEmailResponse); 
        SendXmlHttpRequest(xmlHttp, url); 
    }
    catch(e)
    {} 
} 

function SendXmlHttpRequest(xmlhttp, url) 
{ 
    xmlhttp.open('GET', url, true); 
    xmlhttp.send(null); 
}

function GetXmlHttpObject(handler)
{ 
    var objXmlHttp = null;
    if (!window.XMLHttpRequest)
    {
        // Microsoft
        objXmlHttp = GetMSXmlHttp();
        if (objXmlHttp != null)
        { objXmlHttp.onreadystatechange = handler;}
    } 
    else
    {
        // Mozilla | Netscape | Safari
        objXmlHttp = new XMLHttpRequest();
        if (objXmlHttp != null)
        { objXmlHttp.onreadystatechange = handler; }
    } 
    return objXmlHttp; 
} 

function GetMSXmlHttp()
{
    var xmlHttp = null;
    var clsids = ["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.5.0",
                 "Msxml2.XMLHTTP.4.0","Msxml2.XMLHTTP.3.0", 
                 "Msxml2.XMLHTTP.2.6","Microsoft.XMLHTTP.1.0", 
                 "Microsoft.XMLHTTP.1","Microsoft.XMLHTTP"];
    for(var i=0; i<clsids.length && xmlHttp == null; i++) {
        xmlHttp = CreateXmlHttp(clsids[i]);
    }
    return xmlHttp;
}

function CreateXmlHttp(clsid) {
    var xmlHttp = null;
    try {
        xmlHttp = new ActiveXObject(clsid);
        lastclsid = clsid;
        return xmlHttp;
    }
    catch(e) {}
}
/** [END] Scroller  **********************************************************************/
var headline_count;
var headline_interval;
var old_headline = 0;
var current_headline = 0;
  $(document).ready(function(){
    headline_count = $("div.headline").size();
    $("div.headline:eq("+current_headline+")").css('top', '5px');
    headline_interval = setInterval(headline_rotate,(durationStay));        
    $('#scrollup').hover(function() {
      clearInterval(headline_interval);
    }, function() {
      headline_interval = setInterval(headline_rotate,(durationStay));
    });        
  });      
  function headline_rotate() {
    current_headline = (old_headline + 1) % headline_count;
    $("div.headline:eq(" + old_headline + ")").animate({top: -100},(timescroller), function() {
        $(this).css('top', '50px');
      });
    $("div.headline:eq(" + current_headline + ")").animate({top: 5},(timescroller));
    old_headline = current_headline;
  }
/** [END] Scroller  **********************************************************************/