\n"; $sHTML .= $sMessage."\n"; } else { $sHTML = "\n"; if( $sRefPage =~ /\?/ ) { my $sBefore = "$`\?"; my $sAfter = "\&$'"; if (($nDelay >= 0) && (!IsStaticPage($sAfter)) && ($sAfter !~ /ACTINIC_REFERRER/)) { $sReferrer = "&ACTINIC_REFERRER=" . ACTINIC::EncodeText2(GetReferrer(),$::FALSE); } if( ACTINIC::IsCatalogFramed() && $sBefore =~ /$::g_sAccountScriptName/) # Catalog is framed and the business script is called, so we have to care about the framenavbar { my ($sProductPage, $sAnchor); if ($sAfter =~ /(\?|\&)REFPAGE=\"?(.*?)(\#[a-zA-Z0-9\-_]+)?(\"|&|$)/) { $sAnchor = $3; $sProductPage = $2; $sAfter =~ s/(\?|\&)REFPAGE=\"?$sProductPage$sAnchor\"?//; } if ($sAfter =~ /(\?|\&)PRODUCTPAGE=\"?(.*?)(\#[a-zA-Z0-9\-_]+)?(\"|&|$)/) { $sAnchor = $3; $sProductPage = $2; $sAfter =~ s/(\?|\&)PRODUCTPAGE=\"?$sProductPage$sAnchor\"?//; } if ($sAfter =~ /(\?|\&)MAINFRAMEURL=\"?(.*?)(\#[a-zA-Z0-9\-_]+)?(\"|&|$)/) { $sAnchor = $3; $sProductPage = $2; $sAfter =~ s/(\?|\&)MAINFRAMEURL=\"?$sProductPage$sAnchor\"?//; } $sAfter =~ s/^\?/&/; my $sOtherParams = $sAfter . $sReferrer . $sAnchor; if (!$$pSetupBlob{'UNFRAMED_CHECKOUT'} == 1) { $sRefPage = $sBefore . 'PRODUCTPAGE=' . $sProductPage . $sOtherParams; } else { $sRefPage = $sBefore . 'MAINFRAMEURL=' . $sProductPage . "&PRODUCTPAGE=" . $$::g_pSetupBlob{'FRAMESET_PAGE'} . $sOtherParams; } } if( ACTINIC::IsCatalogFramed() && $$::g_pSetupBlob{UNFRAMED_CHECKOUT} && $sBefore !~ /$::g_sAccountScriptName/) { $bClearFrames = 1; } if( $$pInputHash{MAINFRAMEURL} ) { $sRefPage = $sBefore . 'MAINFRAMEURL=' . $$pInputHash{MAINFRAMEURL} . $sAfter . $sReferrer; } elsif( $$pInputHash{BASE} ) { $sRefPage = $sBefore . 'BASE=' . $$pInputHash{BASE} . $sAfter . $sReferrer; } } if ($nDelay >= 0) { my $sMetaTag; my $sReferrer = ACTINIC::GetReferrer(); if (!IsStaticPage($sRefPage) && $sRefPage !~ /ACTINIC_REFERRER/) { $sRefPage .= "&ACTINIC_REFERRER=" . ACTINIC::EncodeText2($sReferrer,$::FALSE); } if ($bClearFrames) { my $sTarget = $$::g_pSetupBlob{CLEAR_ALL_FRAMES} ? "top" : "parent"; $sMetaTag = "\n"; } else { $sMetaTag = "\n"; $sMetaTag .= "\n"; } $sHTML .= $sMetaTag; } $sHTML .= " 0) { $sHTML .= " BACKGROUND=\"" . $sWebSiteUrl . $sBgImageFileName . "\""; } elsif (length $sBgColor > 0) { $sHTML .= " BGCOLOR=\"" . $sBgColor . "\""; } if (length $$pSetupBlob{'FOREGROUND_COLOR'} > 0) { $sHTML .= " TEXT=\"" . $$pSetupBlob{'FOREGROUND_COLOR'} . "\"" } if (length $$pSetupBlob{'LINK_COLOR'} > 0) { $sHTML .= " LINK=\"" . $$pSetupBlob{'LINK_COLOR'} . "\"" } if (length $$pSetupBlob{'ALINK_COLOR'} > 0) { $sHTML .= " ALINK=\"" . $$pSetupBlob{'ALINK_COLOR'} . "\"" } if (length $$pSetupBlob{'VLINK_COLOR'} > 0) { $sHTML .= " VLINK=\"" . $$pSetupBlob{'VLINK_COLOR'} . "\"" } $sHTML .= ">\n"; $sHTML .= GetPhrase(-1, 22) . "
\n"; $sHTML .= $sMessage."\n"; my $sBounceSentence; if ($nDelay >= 0) { $sBounceSentence = GetPhrase(-1, 23, $sRefPage) . "\n"; } else { $sBounceSentence = GetPhrase(-1, 161, $sRefPage) . "\n"; } if ($bClearFrames) { $sBounceSentence =~ s/(HREF=)/TARGET="_parent" $1/i; } $sHTML .= "
"; } $sHTML .= "\n\n"; return ($::SUCCESS, '', $sHTML, 0); } sub GetPageBackgroundInfo { my ($bIsBgColorFlagDefined, $bIsBgColorUsed) = ACTINIC::IsCustomVarDefined( 'IsBackgroundColor' ); my ($bIsBgImageDefined, $sBgImageFileName) = ACTINIC::IsCustomVarDefined( 'BackgroundImageFileName' ); my $bBgIsImage = (($bIsBgImageDefined && (length $sBgImageFileName > 0)) && ($bIsBgColorFlagDefined && !$bIsBgColorUsed)); return ($bBgIsImage, $sBgImageFileName, $$::g_pSetupBlob{'BACKGROUND_COLOR'}); } sub ReturnToLastPageEnhanced { my (%InputHash, $sTitle, $sMessage, $pSetupBlob, $sContentUrl, $sWebSiteUrl, $sRefPage, $nDelay); ($nDelay, $sMessage, $sTitle, $sWebSiteUrl, $sContentUrl, $pSetupBlob, %InputHash) = @_; $sRefPage = $::Session->GetLastShopPage(); return (BounceToPageEnhanced($nDelay, $sMessage, $sTitle, $sWebSiteUrl, $sContentUrl, $pSetupBlob, $sRefPage, \%InputHash)); } sub RestoreFrameURL { my ($sUrl) = @_; if (IsPartOfFrameset()) { return ($sUrl); } if ($$::g_pSetupBlob{CLEAR_ALL_FRAMES} && $$::g_pSetupBlob{UNFRAMED_CHECKOUT_URL}) { return ($$::g_pSetupBlob{UNFRAMED_CHECKOUT_URL}); } if (!IsCatalogFramed()) { return ($sUrl); } if (IsStaticPage($sUrl)) { if (($sUrl =~ /\/$$::g_pSetupBlob{'FRAMESET_PAGE'}/) || ($sUrl =~ /\/$$::g_pSetupBlob{'B2B_LOGONPAGE'}/)) { return ($sUrl); } else { $sUrl =~ s/.*\/([^\/\=]+$)/$1/; if ($sUrl eq $$::g_pSetupBlob{CATALOG_PAGE}) { $sUrl = $::Session->GetBaseUrl() . $$::g_pSetupBlob{FRAMESET_PAGE}; } else { $sUrl = $::Session->GetBaseUrl() . $$::g_pSetupBlob{FRAMESET_PAGE} . "?" . $sUrl . "&CatalogBody"; } return ($sUrl); } } my ($sBefore, $sAfter) = split(/\?/, $sUrl); if ($sBefore !~ /$::g_sAccountScriptName/) { return ($sUrl); } if ($sAfter eq "") { my ($sBodyPage, $sProductPage) = ACTINIC::CAccCatalogBody(); return("MAINFRAMEURL=$sBodyPage" . "&PRODUCTPAGE=$sProductPage"); } $sAfter = "&" . $sAfter; if ($sAfter =~ /&MAINFRAMEURL=/) { return ($sUrl); } my ($sProductPage, $sAnchor); if ($sAfter =~ s/&REFPAGE=\"?(.*?)(\#[a-zA-Z0-9\-_]+)?(\".*|&.*|$)/$3/) { $sAnchor = $2; $sProductPage = $1; } if ($sAfter =~ s/&PRODUCTPAGE=\"?(.*?)(\#[a-zA-Z0-9\-_]+)?(\".*|&.*|$)/$3/) { $sAnchor = $2; $sProductPage = $1; } if ($sAfter !~ /&ACTINIC_REFERRER=/) { $sAfter .= "&ACTINIC_REFERRER=" . ACTINIC::EncodeText2(ACTINIC::GetReferrer(),$::FALSE); } $sUrl = $sBefore . '?MAINFRAMEURL=' . $sProductPage . "&PRODUCTPAGE=" . $$::g_pSetupBlob{'FRAMESET_PAGE'} . $sAfter . $sAnchor; return ($sUrl); } sub BounceToPageEnhanced { my ($sHTML, $nDelay, $sMessage, $sScriptName); my ($pInputHash, $temp, $sTitle, $sMetaTag, $pSetupBlob, $sWebSiteUrl, $sContentUrl, $sRefPage, $bClearFrames); ($nDelay, $sMessage, $sTitle, $sWebSiteUrl, $sContentUrl, $pSetupBlob, , $sRefPage, $pInputHash, $bClearFrames) = @_; if( !IsPartOfFrameset() ) { $bClearFrames = $::FALSE; } if ($sRefPage eq '') { $sMessage .= "\n"; $sMessage .= GetPhrase(-1, 22) . "
\n"; $sMetaTag = ''; } else { if( $sRefPage =~ /\?/ ) { my $sBefore = "$`\?"; my $sAfter = "\&$'"; if( ACTINIC::IsCatalogFramed() and !$$::g_pSetupBlob{UNFRAMED_CHECKOUT} ) { $sRefPage =~ s/(PRODUCTPAGE\=\"?)$$::g_pSetupBlob{FRAMESET_PAGE}(\"?)/$1$$::g_pSetupBlob{'CATALOG_PAGE'}$2/; } $sBefore = "$`\?"; $sAfter = "\&$'"; if( $$pInputHash{MAINFRAMEURL} ) { $sRefPage = $sBefore . 'MAINFRAMEURL=' . $$pInputHash{MAINFRAMEURL} . $sAfter; } elsif( $$pInputHash{BASE} ) { $sRefPage = $sBefore . 'BASE=' . $$pInputHash{BASE} . $sAfter; } } if ($nDelay >= 0) { if ($bClearFrames) { my $sTarget = $$::g_pSetupBlob{CLEAR_ALL_FRAMES} ? "top" : "parent"; $sMetaTag = "\n"; } else { $sMetaTag = "\n"; } } $sMessage .= "\n"; my $sBounceSentence; if ($nDelay >= 0) { $sBounceSentence = GetPhrase(-1, 23, $sRefPage) . "\n"; } else { $sBounceSentence = GetPhrase(-1, 161, $sRefPage) . "\n"; } if ($bClearFrames) { my $sTarget = $$::g_pSetupBlob{CLEAR_ALL_FRAMES} ? "_top" : "_parent"; $sBounceSentence =~ s/(HREF=)/TARGET="$sTarget" $1/i; } $sMessage .= $sBounceSentence; } my ($sPath, @Response, $Status, $Message); $sPath = GetPath(); my (%VariableTable); $VariableTable{$::VARPREFIX."BOUNCETITLE"} = $sTitle; $VariableTable{$::VARPREFIX."BOUNCEMESSAGE"} = $sMessage; @Response = TemplateFile($sPath."bounce.html", \%VariableTable); ($Status, $Message, $sHTML) = @Response; if ($Status != $::SUCCESS) { return (@Response); } my $smPath = $sContentUrl; my $sCgiUrl = $sWebSiteUrl; my ($sDigest,$sBaseFile) = ACTINIC::CaccGetCookies(); if( $sDigest ) { $smPath = ($sBaseFile) ? $sBaseFile : $sContentUrl; $sCgiUrl = $::g_sAccountScript; $sCgiUrl .= $::g_InputHash{SHOP} ? '?SHOP=' . ACTINIC::EncodeText2($::g_InputHash{SHOP}, $::FALSE) . '&' : '?'; $sCgiUrl .= 'PRODUCTPAGE='; } @Response = MakeLinksAbsolute($sHTML, $sCgiUrl, $smPath); ($Status, $Message, $sHTML) = @Response; if ($Status != $::SUCCESS) { return (@Response); } my ($sSearchTag, $sReplaceTag); $sSearchTag = ''; $sReplaceTag = $sSearchTag . "\n" . $sMetaTag; $sHTML =~ s/$sSearchTag/$sReplaceTag/ig; return ($::SUCCESS, '', $sHTML, 0); } sub UpdateDisplay { my ($sHTML, $OriginalInputData, $sCookie, $bNoCacheFlag, $sContactDetailsCookie, $sCartCookie) = @_; if (!defined $sCookie) { $sCookie = ''; } if (!defined $bNoCacheFlag) { $bNoCacheFlag = $::TRUE; } my ($sSearch, $sReplace, $sPageHistory); $sSearch = $::VARPREFIX."REFPAGE"; $sPageHistory = $::Session->GetLastShopPage() ; $sReplace = "\n" ; $sHTML =~ s/$sSearch/$sReplace/; my ($sTemp, $sEncodedRef) = ACTINIC::EncodeText($sPageHistory, $::FALSE); if (($$::g_pSetupBlob{SSL_USEAGE} == 1) && ($sPageHistory !~ /(\?|&)ACTINIC_REFERRER=/)) { $sEncodedRef .= "&ACTINIC_REFERRER=" . EncodeText2(GetReferrer(), $::FALSE); } $sHTML =~ s/(\?ACTION=[^'"]+)/$1&REFPAGE=$sEncodedRef/gi; $sHTML =~ s/(