============================================= Use at your own risk and please do not ask any questions ============================================= ============================================= File ae-common.php ============================================= | $date $time EST | $ipaddress | $QueryString | $ServerRequest | $agent | $referer | $HostName |"); $MAX_Retries = 1; $CurlTimeOut = 10; $TOKEN="D33U9QUBB1LUSJ"; $ID="celticstones"; $AdSense= false; $CSS = "ae.css"; $JS = "ae.js"; $AWSRoot = "xml-us.amznxslt.com"; // webservices.amazon.com xml-na.amznxslt.com xml.amazon.com xml-us.amznxslt.com xml-de.amznxslt.com xml-fr.amznxslt.com xml-ca.amznxslt.com xml-jp.amznxslt.com xml-uk.amznxslt.com //$AWSRoot = "207.171.163.113"; if (strstr($QueryString, "&banner")) $XSL='http://www.celtic-one-design.com/amazon-services/banner6.xsl'; elseif (strstr($QueryString, "&mybottomstore")) $XSL='http://www.celtic-one-design.com/amazon-services/php-mybottomstore.xsl'; else $XSL='http://www.celtic-one-design.com/php/ae.xsl'; // $XSL="http://216.193.252.111/~celtic3/amazon-services/banner6.xsl"; function send_file($file) { global $SENDtime; $SENDtime = getmicrotime(); if($fp = @fopen($file, 'rb')) { @ob_start('_gzipCompress'); //@fpassthru($fp); old code $Data = ''; while( (!feof($fp)) && (connection_status()==0) ) { $Data = $Data . fread($fp, 1024*2); } echo $Data; while (@ob_end_flush()); } @fclose($fp); $SENDtime = round((getmicrotime() - $SENDtime), 4); return((connection_status()==0) and !connection_aborted()); } function FetchURL($URL, $TIMEOUT) { global $CurlTime, $StatusCode, $CurlStatus; $Curl = curl_init(); curl_setopt($Curl, CURLOPT_URL, $URL); curl_setopt($Curl, CURLOPT_TIMEOUT, $TIMEOUT); curl_setopt($Curl, CURLOPT_CONNECTTIMEOUT, $TIMEOUT); curl_setopt($Curl, CURLOPT_HEADER, 0); curl_setopt($Curl, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($Curl, CURLOPT_MAXREDIRS, 5); curl_setopt($Curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($Curl, CURLOPT_USERAGENT, "-COD~Zilla- Zon PHP/XSLT Explorer gzip (celticone at msn.com)"); curl_setopt($Curl, CURLOPT_REFERER, "http://www.celtic-one-design.com/amazon-web-services/amazon-php-xslt.htm"); curl_setopt($Curl, CURLOPT_ENCODING , "gzip"); $Data = curl_exec($Curl); $CurlTime = $CurlTime + round(curl_getinfo($Curl, CURLINFO_TOTAL_TIME), 4); $StatusCode = curl_getinfo($Curl, CURLINFO_HTTP_CODE); $CurlStatus = curl_errno($Curl) . " - " . curl_error($Curl); curl_close($Curl); return $Data; } function _gzipCompress($buffer,$mode=5) { $buffer2=ob_gzhandler($buffer,$mode); if (strlen($buffer2)>1) $buffer=$buffer2; header('Content-Length: '.strlen($buffer)); return $buffer; } function GetAWSAddress($domain) { global $LogRoot; $AWSIPAddress = $LogRoot . "AWSIPAddress" . ".txt"; if(@file_exists($AWSIPAddress)) { $TmpTime = time() - @filemtime($AWSIPAddress); // if ($TmpTime < 30*60) return trim(@file_get_contents($AWSIPAddress)); else @unlink($AWSIPAddress); } $IP = gethostbyname($domain); if($f = @fopen($AWSIPAddress, "w+")) { $LockAttempt = 0; while ((false === @flock($f, LOCK_EX)) && $LockAttempt < 5) { usleep(100000); $LockAttempt++; } @fwrite($f, $IP); } @flock($f, LOCK_UN); @fclose ($f); return $IP; } function getmicrotime() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } function deldir($dir, $days) { $handle = opendir($dir); // $MaxCacheTime = $days * 24 * 60 * 60; $Count = 0; while (false!==($FolderOrFile = readdir($handle))) // { if(!is_dir($dir . $FolderOrFile) && $FolderOrFile != "." && $FolderOrFile != ".." && $FolderOrFile != ".htaccess") { $TmpTime = time() - filemtime($dir . $FolderOrFile); // if ($TmpTime > $MaxCacheTime) { unlink($dir . $FolderOrFile); // $Count++; } } } closedir($handle); return $Count; } function RejectCall($message) { global $HostRoot, $CacheRoot, $ImageRoot, $LogRoot, $CleanCache, $RejectLog; header("HTTP/1.1 410 Error : Gone"); header("X-Powered-By: -COD~Zilla-", true); header("Content-Length: 0", true); //header ("Shit List: You Made It", true); $message = $message . " <-\n"; $OpenRejectionLog = @fopen($RejectLog, "a+"); if ($OpenRejectionLog) @fwrite($OpenRejectionLog, $message); @fclose($OpenRejectionLog); // Might as well get the bastards to clean up my cache while they are wasting my bandwidth if(!file_exists($CleanCache)) { set_time_limit(30); $TmpTime = time() - @filemtime("awslock/."); if ($TmpTime > 0) @rmdir("awslock"); $A = "IP Files:" . deldir($HostRoot, 2) . "\n"; $A = $A . "Cache Files:" . deldir($CacheRoot, 1) . "\n"; $A = $A . "Image Files:" . deldir($ImageRoot, 1) . "\n"; $A = $A . "Log Files:" . deldir($LogRoot, 3) . "\n"; if($F = @fopen($CleanCache, "a+")) @fwrite($F, $A); @fclose($F); } die(); } function log_it() { global $locked, $BotCall, $Error, $ErrorLog, $BotLog, $Log, $time_start, $date, $time, $ipaddress, $fetchtime, $QueryString, $CachedOrFetched, $Retries, $AWSstatus, $agent, $referer, $fetch, $LastModified, $ClientLastModified, $HostName, $Status, $DNSLOOKUPtime, $HOSTLOOKUPtime, $LOCKtime, $CurlTime, $SENDtime; if($locked) { $TmpTime = time() - @filemtime("awslock/."); if ($TmpTime > 0) @rmdir("awslock"); } $fetchtime = round(getmicrotime() - $time_start, 4); if($Status == "Unknown") { if((connection_status()==0) and !connection_aborted()) $Status = "Sent"; else $Status = "Aborted"; } $message = "-> | $date $time EST | $ipaddress | $fetchtime | $QueryString | $CachedOrFetched | $Retries | $AWSstatus Host Lookup: $HOSTLOOKUPtime AWS Lookup: $DNSLOOKUPtime Lock Time: $LOCKtime Curl Time: $CurlTime Send Time: $SENDtime | $agent | $referer |"; if ($Error) // Log the Error Call { $message = $message . " $fetch | $Status | <-\n"; if($Openerrorlog = @fopen($ErrorLog, "a+")) @fwrite($Openerrorlog, "$message"); @fclose($Openerrorlog); } elseif($BotCall) // Log the agent in the botlog { $message = $message . " $LastModified | $ClientLastModified | $Status | <-\n"; if($Openbotlog = @fopen($BotLog, "a+")) @fwrite($Openbotlog, "$message"); @fclose($Openbotlog); } else // Log the GOOD AWS Call { if (!eregi("&banner", $QueryString) && !eregi("&mybottomstore", $QueryString)) { $message = $message . " $LastModified | $ClientLastModified | $HostName | $Status | <-\n"; if($Openlog = @fopen($Log, "a+")) @fwrite($Openlog, "$message"); @fclose($Openlog); } } exit(0); } ?> ============================================= File fetch.php ============================================= | $date $time EST | $ipaddress | $QueryString | $ServerRequest | $agent | $referer |"); $locked = false; register_shutdown_function('log_it'); header("X-Powered-By: -COD~Zilla-", true); $MaxCacheTime = 7*24*60*60; $XpireTime = 7*24*60*60; $BackTimeStampFile = 1*24*60*60 - ((3*60) + 22); $FileName = urlencode($QueryString); $CacheFileStub = md5($FileName); $CacheFile = $CacheRoot . $CacheFileStub . ".html"; $AWSstatus = "OK"; $Status = "Unknown"; $Error = false; $Recieved = 0; $Retries = 0; $CachedOrFetched = "304"; if((@file_exists($CacheFile)) && (($TmpTime=time())-@filemtime($CacheFile) < $MaxCacheTime)) // Seven Day Cache Rule -1 Day { $Filetime = @filemtime($CacheFile) - $BackTimeStampFile; $Xpire = $Filetime + $XpireTime + $BackTimeStampFile; $LastModified = gmdate("D, d M Y H:i:s", $Filetime) . " GMT"; $Etag = '"'. md5($LastModified . $CacheFile) . '"'; header("Last-Modified: $LastModified", true); header("ETag: $Etag", true); if(strstr($ClientLastModified, $LastModified) || strstr($ClientEtag, $Etag)) { header("Content-Length: 0", true); header("HTTP/1.1 304 Not Modified", true); } else { header("Content-Type: text/html", true); header("Cache-Control: private, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Expires: " . gmdate('D, d M Y H:i:s', $Xpire) . " GMT"); if(send_file($CacheFile)) $Status = "Sent"; else $Status = "Aborted"; $CachedOrFetched="CACHED"; } } else { $fetch = '/onca/xml3?t=' . $ID . '&dev-t=' . $TOKEN . '&' . $QueryString . '&type=heavy&locale=us&f=' . $XSL . '&date=' . urlencode($date) . '&time=' . urlencode($time) . urlencode(" EST"); if(strstr($QueryString, "page=") && !preg_match("/browse/", $QueryString)) $fetch = $fetch . '&sort=relevancerank'; if($AdSense) $fetch = $fetch . '&AdSense=true'; $fetch = $fetch . '&CSS=' . $CSS . '&JS=' . $JS; $DNSLOOKUPstarttime = getmicrotime(); // this is placed here to take advantage of the file lock $fetch = 'http://' . GetAWSAddress($AWSRoot) . $fetch; $DNSLOOKUPtime = $DNSLOOKUPtime + round((getmicrotime() - $DNSLOOKUPstarttime), 4); set_time_limit(30); $AWSstatus = ""; $CachedOrFetched = "FETCHED"; $Fetched = false; $Retry = false; $Delay = 1; do { if ($Retry) { sleep ($Delay); $Retries++; $Delay *= 2; } $Fetched = false; $Retry = false; $locked = false; $LockAttempt = 0; $Temp = getmicrotime(); while(!$locked && ($LockAttempt < 6)) { if(@mkdir("awslock",0777)) $locked = true; else { $LockAttempt++; $TmpTime = time() - @filemtime("awslock/."); if ($TmpTime > 0) @rmdir("awslock"); else usleep(200000); } } $LOCKtime = $LOCKtime + round((getmicrotime() - $Temp), 4); $Data = FetchURL($fetch, $CurlTimeOut); if($locked) { $TmpTime = time() - @filemtime("awslock/."); if ($TmpTime > 0) @rmdir("awslock"); } $locked = false; if ($StatusCode != 200) { $AWSstatus = "Error: HTTP: $StatusCode :" . $CurlStatus; if ($Retries < $MAX_Retries) $Retry = true; else $Error = true; } else { $Fetched = true; $AWSstatus = "CURL OK"; $Recieved = strlen($Data); // Data is in $Data $AWSstatus = $AWSstatus . " Recieved: $Recieved"; $Error = false; $DoCache = true; $DoDisplay = true; $Output=explode("\n", $Data); if(preg_match("/xml version/i", $Output[0])) { if ($Retries < $MAX_Retries) $Retry = true; else { $AWSstatus = $AWSstatus . " " . strip_tags("Error: $Output[0]:$Output[1]"); $Error = true; $DoDisplay = false; $DoCache = false; $Header="503"; } } elseif($Recieved < 100) { if ($Retries < $MAX_Retries) $Retry = true; else { $AWSstatus = $AWSstatus . " Error: Blank Page"; $Error = true; $DoDisplay = false; $DoCache = false; $Header="503"; } } elseif(!preg_match("/celtic-one/i", $Data)) { if ($Retries < $MAX_Retries) $Retry = true; else { $AWSstatus = $AWSstatus . " Error: Redirection"; $Error = true; $DoDisplay = false; $DoCache = false; $Header="503"; } } } } while ($Retry); // Filter out nonsense $Data = preg_replace("/src=.http:\/\/images.amazon.com.+?jpg./i", "#", $Data); if(preg_match('/AvailabilityNode/', $Data)) { $AWSstatus = $AWSstatus . " Error: Availability Node Missing"; $Error = true; $DoCache = false; } if(preg_match("/errorbox/i", $Data)) // Bad Search No Need To Cache { $Error = true; $DoCache = false; $Header="404"; if(preg_match("/no exact matches/i", $Data)) $AWSstatus = $AWSstatus . " Error: Bad Search"; elseif(preg_match("/valid asin/i", $Data)) $AWSstatus = $AWSstatus . " Error: Invalid Asin"; elseif(preg_match("/this asin cannot be accessed using amazon/i", $Data)) $AWSstatus = $AWSstatus . " Error: Third Party Product"; else $AWSstatus = $AWSstatus . " Error: Unknown Search Error"; } if ($Fetched) { header("Cache-Control: post-check=0, pre-check=0", false); if ($Error) { header("Cache-Control: no-store, no-cache, must-revalidate", false); if ($Header == "503") { header("HTTP/1.1 503 Error : Service Unavailable", true); header("Content-Length: 0", true); } elseif ($Header == "404") { header("HTTP/1.1 404 Error : Not Found", true); } } if ($DoDisplay) { header("Content-Type: text/html", true); if (!$Error) header("Cache-Control: private, must-revalidate"); if($DoCache) { $handle = @fopen("$CacheFile", "wb"); //Write the good data to cache @fwrite($handle, $Data); @fclose($handle); $Filetime = @filemtime($CacheFile) - $BackTimeStampFile; $Xpire = $Filetime + $XpireTime + $BackTimeStampFile; $LastModified = gmdate("D, d M Y H:i:s", $Filetime) . " GMT"; $Etag = '"'. md5($LastModified . $FileName) . '"'; header("Last-Modified: $LastModified", true); header("ETag: $Etag", true); header("Expires: " . gmdate('D, d M Y H:i:s', $Xpire) . " GMT"); } $SENDtime = getmicrotime(); ob_start('_gzipCompress'); echo $Data; while (@ob_end_flush()); $SENDtime = round((getmicrotime() - $SENDtime), 4); if((connection_status()==0) and !connection_aborted()) $Status = "Sent"; else $Status = "Aborted"; } } else { $Error = true; header ("Connection: close", true); if(@file_exists($CacheFile)) // If AWS is down and cache file is outdated - use it anyway { $Filetime = @filemtime($CacheFile) - $BackTimeStampFile; $Xpire = $Filetime + $XpireTime + $BackTimeStampFile; $LastModified = gmdate("D, d M Y H:i:s", $Filetime) . " GMT"; $Etag = '"'. md5($LastModified . $FileName) . '"'; header("Content-Type: text/html", true); header("Cache-Control: private, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Last-Modified: $LastModified", true); header("ETag: $Etag", true); header("Expires: " . gmdate('D, d M Y H:i:s', $Xpire) . " GMT"); if(send_file($CacheFile)) $Status = "Sent"; else $Status = "Aborted"; $CachedOrFetched="Fallback Cached"; $AWSstatus = "Fallback Cached Due To " . $AWSstatus; } // If AWS is down due to 503s - Redirect - Maybe it will work? elseif(($StatusCode == 503 || preg_match("/timed out|connect failed/", $CurlStatus)) && !$BotCall) { $CachedOrFetched="Redirected To AWS"; $AWSstatus = "Temporary Redirect Fallback Due To " . $AWSstatus; header("HTTP/1.1 307 Temporary Redirect", true); header("Location: $fetch"); header("Content-Length: 0", true); } else { header("HTTP/1.1 503 Error : Service Unavailable", true); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Content-Length: 0", true); } } } exit(0); //header("Connection: Keep-Alive", true); //header ("Connection: close", true); //header ("Keep-Alive: timeout=30, max=149", true); ?> ============================================= File get-image.php ============================================= | $date $time EST | $ipaddress | $QueryString | $ServerRequest | $agent | $referer |"); $Cache = false; $fetch = 'http://images.amazon.com/images/P/' . $QueryString; $FileName = $QueryString; $ImageFile = $ImageRoot . $FileName ; if($Cache) $HTTP_ImageFile = 'http://www.celtic-one-design.com/php/image-cache/' . $FileName; else $HTTP_ImageFile = $fetch; $HTTP_AlternateImageFile ='http://www.celtic-one-design.com/php/no-img-lg.gif'; if(!@file_exists($ImageFile) && $Cache) { $FetchError = false; $Retry = false; $Delay = 1; $Retries = 0; set_time_limit(30); do { if ($Retry) { sleep ($Delay); $Retries++; $Delay *= 2; } $Retry = false; $Data = FetchURL($fetch, $CurlTimeOut); if ($StatusCode != 200) { if ($Retries < $MAX_Retries) $Retry = true; else $FetchError = true; } } while ($Retry); if ($StatusCode == 200 && (strlen($Data) <= 1000)) $FetchError = true; if ($FetchError) $HTTP_ImageFile = $HTTP_AlternateImageFile; else { $fp = @fopen("$ImageFile", "wb"); @fwrite($fp, $Data); @fclose($fp); } } header("HTTP/1.1 302 Found", true); header("Content-Length: 0", true); header("Location: $HTTP_ImageFile"); header("Cache-Control: private"); header("X-Powered-By: -COD~Zilla-", true); die(); ?> ============================================= File click.php ============================================= | $date $time EST | $ipaddress | $QueryString | <-\n"; if($Openlog = @fopen($clicklog, "a+")) @fwrite($Openlog, "$message"); @fclose ($Openlog); ?> ============================================= File compress.php ============================================= | $date $time EST | $ipaddress | $QueryString | $ServerRequest | $agent | $referer |"); register_shutdown_function('Compress_log_it'); header("X-Powered-By: -COD~Zilla-", true); $Status = "304"; $CompressFile = "//home/celtic3/public_html/php/" . $QueryString; if(@file_exists($CompressFile)) { $Filetime = @filemtime($CompressFile); $LastModified = gmdate("D, d M Y H:i:s", $Filetime) . " GMT"; $Etag = '"'. md5($LastModified . urlencode($QueryString)) . '"'; header("Last-Modified: $LastModified", true); header("ETag: $Etag", true); if(strstr($ClientLastModified, $LastModified) || strstr($ClientEtag, $Etag)) { header("Content-Length: 0", true); header("HTTP/1.1 304 Not Modified", true); } else { if(strstr($QueryString, ".css")) { header("Content-Type: text/css", true); header("Expires: " . gmdate('D, d M Y H:i:s', time() + 24*60*60) . ' GMT'); } elseif(strstr($QueryString, ".js")) { //header("Content-Type: application/x-javascript", true); header("Content-Type: text/javascript", true); header("Expires: " . gmdate('D, d M Y H:i:s', time() + 60*60) . ' GMT'); } elseif(strstr($QueryString, ".xsl")) { header("Content-Type: text/xml", true); header("Expires: " . gmdate('D, d M Y H:i:s', time() + 24*60*60) . ' GMT'); } else header("Content-Type: text/plain", true); header("Cache-Control: private, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); if(send_file($CompressFile)) $Status = "Sent"; else $Status = "Aborted"; } } exit(0); function Compress_log_it() { global $CompressLog, $date, $time, $ipaddress, $QueryString, $Status, $agent, $referer, $LastModified, $ClientLastModified; $message = "-> | $date $time EST | $ipaddress | $QueryString | $Status | $agent | <-\n"; if($Openlog = @fopen($CompressLog, "a+")) @fwrite($Openlog, "$message"); @fclose($Openlog); } ?> ============================================= File redirect.php ============================================= |$date $time EST|$ipaddress|$QueryString|$ServerRequest|$agent|$referer|"); $message = "-> | $date $time EST | $ipaddress | $Redirect | <-\n"; if($Openlog = @fopen($clicklog, "a+")) @fwrite($Openlog, "$message"); @fclose ($Openlog); header("X-Powered-By: -COD~Zilla-", true); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Content-Length: 0", true); header("HTTP/1.1 307 Temporary Redirect", true); header("Location: $Redirect"); header ("Connection: close", true); ?> ============================================= File ae.xsl ============================================= !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ €‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ !'()*+-.0123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~ 0123456789ABCDEF BrowseNodeSearch PowerSearch AuthorSearch ArtistSearch ActorSearch DirectorSearch ManufacturerSearch AsinSearch SimilaritySearch KeywordSearch music electronics books books magazines dvd video software pc-hardware tools toys videogames baby kitchen garden hpc sporting office-products jewelry gourmet wireless-phones Music Electronics Book Magazine DVD Video VHS Camera & Photo Software Personal Computer Tool Toy Video Games Baby Kitchen Lawn & Patio Health & Personal Care Sports Office Products Jewelry Gourmet Wireless Wireless Accessories Catalog - - - - - - <xsl:value-of select="$PageTitle"/><xsl:text> - </xsl:text><xsl:value-of select="$title"/>

Please modify your search and try again.
'"

Ready To Order?

Special Discount!
The price is so low that Jeff Bezos will not allow it to be displayed on this site! To see Jeff's price, click the order button.

Your price:

List price:
Your price:
THAT'S % OFF!



Click Item For Product Details


Buy New:

Related Categories



<< Previous - OF - Next >>
Number in set:
Sales Rank:
Rating:
ESRB Rating:
Age Group:
ISBN:
UPC:
Manufacturer's Part Number:
Media:
Catalog
Release Date:
Theatrical Release Date:
Availability:
. Please note that special order titles occasionally go out of stock. These hard-to-find titles are not discounted and are subject to an additional charge of $1.99 per item due to the extra cost of ordering them. Amazon will notify you within 2-4 weeks if they have trouble obtaining this title. . You may order it now and we will ship it to you when it arrives.

Platforms:

Tracks

Accessories
Customers who purchased

often buy ...

Features:

Related Categories



  • Author:

    Artist:

    Starring:
    Director:
    Label:
    Publisher:
    Studio:
    Manufacturer:
    By:
    , and , and

    Product Review

    Customer Reviews

    Average customer rating:
    Total Customer Reviews:


    Reviews:

    ============================================= File ae.js ============================================= AssociateID = 'celticstones'; AssociateIDca = 'greeklandscap-20'; AssociateIDde = 'greeklandsc02-21'; AssociateIDfr = 'greeklandsc0b-21'; AssociateIDuk = 'celticstone-21'; AssociateIDjp = 'celticstones'; ZonRecommends = true; ZonTools = true; ZonFunFacts = true; ZonSearch = true; AddToCart = true; SimilarItems = false; BookMark = true; MarketPlace = true; AddToWishList = true; International = false; BrowseRoot = "http://www.celtic-one-design.com/php/Browse_" JeffBezos = "http://"; JeffBezos = JeffBezos + "www."; JeffBezos = JeffBezos + "ama"; JeffBezos = JeffBezos + "zon."; ZonURL = JeffBezos + "com/"; RedirectScript = "redirect.php?"; ZonREDIRECT = ZonURL+ 'exec/obidos/redirect?link_code=as2&tag=' + AssociateID; ZonREDIRECTPath = '&camp=1789&creative=9325&path='; ZonURLca = JeffBezos + "ca/exec/obidos/ASIN/"; ZonURLde = JeffBezos + "de/exec/obidos/ASIN/"; ZonURLfr = JeffBezos + "fr/exec/obidos/ASIN/"; ZonURLuk = JeffBezos + "co.uk/exec/obidos/ASIN/"; ZonURLjp = JeffBezos + "jp/exec/obidos/ASIN/"; ImageUrl = "http://www.celtic-one-design.com/php/" //document.title="Amazon Explorer - " + document.title squote="'" dquote='"' agt = navigator.userAgent.toLowerCase() ver = parseInt(navigator.appVersion) app = navigator.appName.toLowerCase() ie = (agt.indexOf('msie') != -1 || agt.indexOf('microsoft') != -1) ? 1:0 ns = (agt.indexOf('netscape') != -1 || app.indexOf('netscape') != -1) ? 1:0 ie3 = (ie && (ver <4)) ? 1:0 ie4 = (ie && agt.indexOf('msie 4') != -1) ? 1:0 ie5 = (ie && agt.indexOf('msie 5') != -1) ? 1:0 ie6 = (ie && agt.indexOf('msie 6') != -1) ? 1:0 ns2 = (ns && ver == 2) ? 1:0 ns3 = (ns && ver == 3) ? 1:0 ns4 = (ns && ver==4) ? 1:0 ns6 = (ns && (ver==5 || ver==6)) ? 1:0 // This isn't a typo. win = (agt.indexOf('win') != -1) ? 1:0 is_mac = (agt.indexOf('mac') != -1) ? 1:0 aol = (agt.indexOf('aol') != -1) ? 1:0 opera = (app.indexOf('opera') != -1 || agt.indexOf('opera') != -1) ? 1:0 webtv = (agt.indexOf('webtv') != -1) ? 1:0 stdBrowser = (document.getElementById) ? 1:0 is_winme = ((agt.indexOf("win 9x 4.90")!=-1)) is_winnt = ((agt.indexOf("winnt")!=-1) || (agt.indexOf("windows nt")!=-1)) is_win2k = ((agt.indexOf("windows nt 5.0")!=-1) || (agt.indexOf("windows 2000")!=-1)) is_winxp = ((agt.indexOf("windows nt 5.1")!=-1) || (agt.indexOf("windows xp")!=-1)) is_office = (is_winnt == 1 && is_winxp == 0) ? 1:0 is_cookie = (document.cookie) ? 1:0 function amazon_explorer_refresh_page() { window.focus; // Just a fake function to allow fetch.php to refresh page } function parse_query() { var search = '' var default_keyword = "" var keyword = '' var one = document.referrer; var two = document.location.href; var CelticOneDesign = false; var ModRewrite = false; if (one.indexOf("http://www.celtic-one-design.com/") != -1 || one == '') { CelticOneDesign = true; one = two; } if ((one.indexOf('Browse') == -1) && (one.indexOf('translate') == -1)) { var search_engine = new Array( new Array('alltheweb.', 'q='), new Array('ask.', 'q='), new Array('altavista.', 'q='), new Array('earthlink.', 'q='), new Array('freeserve.', 'q='), new Array('google.', 'q='), new Array('search.msn.', 'q='), new Array('teoma.', 'q='), new Array('web.ask.', 'q='), new Array('yahoo.', 'p='), new Array('yahoo.', 'va='), new Array('search.aol.', 'query='), new Array('web.aol.', 'query='), new Array('hotbot.', 'query='), new Array('search.netscape.', 'query='), new Array('comcast.', 'query='), new Array('search.lycos.', 'query='), new Array('vivisimo.', 'query='), new Array('looksmart.', 'key='), new Array('overture.', 'Keywords='), new Array('metacrawler.', 'qkw='), new Array('dogpile.', 'qkw='), new Array('iwon.', 'searchfor='), new Array('wanadoo.', 'q='), new Array('mysearch.', 'searchfor='), new Array('celtic-one-design.', 'AuthorSearch='), new Array('celtic-one-design.', 'ActorSearch='), new Array('celtic-one-design.', 'DirectorSearch='), new Array('celtic-one-design.', 'ManufacturerSearch='), new Array('celtic-one-design.', 'KeywordSearch='), new Array('celtic-one-design.', 'PowerSearch=subject:'), new Array('celtic-one-design.', '_') ); if(CelticOneDesign && one.indexOf('_') != -1) ModRewrite = true; if (one.indexOf('?') != -1 || ModRewrite) { for (i= search_engine.length; i-->0;) { array_value=search_engine[i] if (one.indexOf(array_value[0]) != -1 && one.indexOf(array_value[1]) != -1) { if (ModRewrite) keyword=one.split(array_value[1])[1].split("_")[0] else keyword=one.split(array_value[1])[1].split("&")[0] break } } } } if (keyword == '') keyword = default_keyword keyword=unescape(keyword) //keyword=keyword.replace(/\W/g, ' ') keyword=keyword.toLowerCase() reg2=/[ !-+$?&()]{1,}/g keyword = keyword.replace(reg2," "); if (ZonSearch) document.searchamazon.KeywordSearch.value = keyword; if (ZonSearch && keyword !='') document.searchamazon.KeywordSearch.style.backgroundImage = ''; //document.searchamazon.select.selectedIndex = 2; } function header() { sc='' sc+='' sc+='' if (ZonSearch) { sc+='' sc+='' } sc+='' sc+='
    ' sc+='zonEXPLORERIn Association With Amazon.com' sc+='
    ' sc+='
    ' sc+='' sc+=' For ' sc+=' in ' sc+='
    ' sc+='
    ' sc+='' sc+='
    ' if(ZonTools || ZonRecommends) sc+='
    ' if (ZonTools) { sc+='Your Amazon Cart'; if (AddToWishList) sc+='Your Amazon Wish List'; } if (ZonRecommends) { sc+='New Releases' sc+='Coming Soon' sc+='Gift Ideas' sc+='Early Adopters' } if(ZonTools || ZonRecommends) sc+='
    ' sc+='
    ' document.write(sc); sc=''; parse_query() } function jump() { reg1=/[ !-$+?&()]{1,}/g reg2=/^-/ reg3=/-$/ reg4=/-/g jump="http://www.celtic-one-design.com/php/" mode=document.searchamazon.mode.value searchterm=document.searchamazon.KeywordSearch.value searchterm=searchterm.replace(reg1,"-") searchterm=searchterm.replace(reg2,"") searchterm=searchterm.replace(reg3,"") searchterm=searchterm.replace(reg4,"+") if (searchterm=='') searchterm="celtic"; searchterm=searchterm.toLowerCase() searchterm=escape(searchterm); if(mode.indexOf('Actor') != -1 || mode.indexOf('Director') != -1) { search=mode; finalmode = "dvd"; } else if(mode.indexOf('Artist') != -1) { search=mode; finalmode = "music"; } else if(mode.indexOf('Author') != -1) { search=mode; finalmode = "books"; } else { search="Keyword_"; finalmode = mode; } jump = jump + search + searchterm + "_" + finalmode + ".html"; document.location.href = jump; } function footer(DATE,TIME) { sc='' sc+='

    Prices and product availability are subject to change. Price is accurate as of ' + DATE + ' at ' + TIME + '
    Any price displayed on the Amazon website at the time of purchase will govern the sale of this product.

    ' sc+='

    Privacy Policy' sc+=' | My Amazon Wishlist' sc+=' | Feedback' sc+=' | Use zonExplorer Search Form At Your Site

    ' document.write(sc) sc=''; } function order(Asin,Title,IsMedia,Available) { sc=''; if(AddToCart && Available == "true") { sc+='
    '; sc+='Quantity: '; sc+='' sc+='
    '; sc+=' '; sc+=' '; sc+=' '; sc+='
    '; sc+='

    ' } if(SimilarItems && Available == "true") { if(AddToCart) Title = "Similar Items At Amazon" else Title = "Order From Amazon" zclick = RedirectScript + ZonURL+ 'exec/obidos/ASIN/' + Asin + '/' + AssociateID; sc+=''; if(!AddToCart) sc+='

    '; } if (AddToWishList && Available == "true") { sc+='
    '; sc+=' '; sc+=' '; sc+=' '; sc+=' '; sc+='
    '; } click = RedirectScript + ZonURL+ 'exec/obidos/ASIN/' + Asin + '/ref=nosim/' + AssociateID; offerpage = RedirectScript + ZonREDIRECT + ZonREDIRECTPath + "tg/stores/offering/list/-/" + Asin + "/all/" + Asin; if (MarketPlace) sc+='' sc+=''; if (BookMark && ie) sc+=''; if (International && IsMedia == "true" && Available == "true") { sc+='
    '; sc+=''; sc+=''; sc+=''; sc+=''; sc+=''; } document.write(sc); sc=''; } function FunFacts(Asin) { if(ZonFunFacts) { sc=''; sc+='

    '; sc+='Fun Facts!'; document.write(sc); sc=''; } } function GetImage(Asin) { url = RedirectScript + ZonREDIRECT + ZonREDIRECTPath + ZonURL + "gp/product/images/" + Asin; var name = "AmazonHelp" var options = 'width=570,height=530,status=no,top=0,left=0,resizable=no,scrollbars=yes'; var ContextWindow = window.open(url,name,options); ContextWindow.opener = this; ContextWindow.focus(); return false; } function Listen(Asin) { url = RedirectScript + ZonREDIRECT + ZonREDIRECTPath + "tg/stores/recs/radio/krex/-/album/" + Asin; var name = "Listen"; var options = 'width=570,height=530,top=0,left=0,resizable=no,scrollbars=no'; var ContextWindow = window.open(url,name,options); ContextWindow.opener = this; ContextWindow.focus(); return false; } function clickz(clickstring) { if(document.images) { clickme = new Image(); clickme.src="http://www.celtic-one-design.com/php/click.php?" + clickstring; } return false; } function market() { sc='' sc+='Excellent savings for students and educators. The condition of the item you buy and its timely delivery are guaranteed under the Amazon A-to-z Guarantee.

    ' document.write(sc); sc=''; } function ESRB(rating) { sc='' sc+='' + rating + ''; document.write(sc) sc=''; } function adjust(cat) { if(document.getElementById("asinbox") && document.getElementById(cat)) { CWidth = document.getElementById("asinbox").clientWidth; var img = new Array(); img=document.getElementById(cat).getElementsByTagName("img"); width=0; for (var i = 0; i < img.length; i++) { img[i].style.backgroundImage ="none";// eliminate IE bug on images that are links that have backgrounds if ((img[i].clientWidth == 96 && img[i].clientHeight == 96) || img[i].src.indexOf('no-img-lg.gif') != -1) img[i].style.display ="none"; else width = width + img[i].clientWidth; } if(width <= 50) { img[0].parentNode.parentNode.parentNode.parentNode.style.display ="none"; } else { if ((CWidth - width) >= 75) { img[0].parentNode.parentNode.parentNode.style.overflowX="hidden"; img[0].parentNode.parentNode.parentNode.style.border="0px"; img[0].parentNode.parentNode.style.textAlign="center"; img[0].parentNode.parentNode.style.width="98%"; } else { img[0].parentNode.parentNode.parentNode.style.overflowX="auto"; img[0].parentNode.parentNode.parentNode.style.border="1px solid #a00000"; img[0].parentNode.parentNode.style.textAlign="left"; img[0].parentNode.parentNode.style.width="1000px"; } } } } function check_images() { var img = new Array(); img=document.getElementsByTagName("img"); for (var i = 0; i < img.length; i++) { if (img[i].clientWidth == 7 && img[i].clientHeight == 7) img[i].src ="http://www.celtic-one-design.com/php/no-img-lg.gif"; } //adjust("accessories"); adjust("similar"); } if (stdBrowser) { window.onload=check_images; window.onresize=check_images; } ============================================= File ae.css ============================================= body { font-family: verdana, sans-serif; color: black; background-color: #bbbaa6; padding: 0px; margin: 1.25em; } a:link { text-decoration: underline; color: #336699; font-style: italic; } a:visited { text-decoration: line-through; color: #a00000; } a:active { text-decoration: none; } .zon { padding: 3px; border-top: 2px solid white; border-left: 1px solid white; border-right: 1px solid #E5E5E5; border-bottom: 2px solid #E5E5E5; background-image: url('snake_transparent.gif'); background-repeat: no-repeat; background-position: 90% 90%; } #asinbox, #header, #footer, #ProductBox { border-top: 0.25em solid white; border-left: 0.125em solid white; border-right: 0.125em solid #E5E5E5; border-bottom: 0.25em solid #E5E5E5; background-color: #F5F5F5; color: black; } .page { font-size: 1.75em; font-weight: bold; letter-spacing: 0.1em; color: black; padding: 1px; border-top: 3px solid white; border-left: 2px solid white; border-right: 2px solid #E5E5E5; border-bottom: 3px solid #E5E5E5; } #buybox, #marketplace { background-color: #F5F5F5; color: black; } .reverse, .label, .subject { background-color: #7d877b; color: white; } #header { width: 98%; font-size: 1em; font-style: italic; } .zontools { background-color: #7d877b; width: 100%; text-align: center; font-size: 0.75em; border: 2px solid #7d877b; } .zontools a:hover { background-color: white; } .zontools a:link { text-decoration: none; } .zontools a:visited { background-color: #E5E5E5; } .zontools a { border: 2px solid #7d877b; padding: 2px 5px 2px 5px; background-color: #F5F5F5; } #header table { width: 100%; font-family: verdana, sans-serif; font-size: 0.8em; } .toolbar { width: 100%; background-color: #F5F5F5; color: black; font-size: 0.8em; font-style: italic; text-align: right; padding-top: 1em; padding-bottom: 1em; } #footer { width: 98%; font-size: 0.6em; text-align: center; padding: 0.25em; margin: 1em 0px 0px 0px; } #adsense { width: 98%; height: 94px; text-align: center; margin: 0px 0px 0.25em 0px; padding: 0px; } #asinbox, #ProductBox { width: 98%; padding: 0px; margin: 0.5em 0px 0.5em 0px; font-size: 1em; } #asinbox table { width: 100%; border: 0px; border-spacing: 0px; padding: 0px; } #asinbox td { padding: 0px; border: 0px; vertical-align: top; } #ProductImage { text-align: center; } .Zoom { cursor: pointer; } #sub_asin_detail { text-align: left; line-height: 125%; margin: 0px 1em 0px 1em; } #sub_asin_detail ul { list-style-type: disc; } #buybox { font-size: 0.8em; width: 18em; text-align: center; margin: 0.25em; } #buybox img { border: 1px solid white; } #pricebox { border-top: 0.25em solid white; border-left: 0.125em solid white; border-right: 0.125em solid #E5E5E5; border-bottom: 0.25em solid #E5E5E5; background-color: #F5F5F5; min-height: 4em; color: black; font-size: 1.25em; padding: 0.25em; line-height: 125%; margin: 0.25em; } .strike { text-decoration: line-through; } .red { color: #a00000; } .green { color: #00a000; } #marketplace { margin: 3em .5em 1em .5em; width: 98%; border: 0px; font-size: 0.8em; } #browselist, #reviews, #tracks, #ProductDescription { margin: 1em 1em 2.5em 1em; line-height: 160%; } #ProductDescription table { display: none; } #ProductDescription img { display: none; } #ProductDescription strong { display: none; } .imageboxwindow { width: 99%; border: 1px solid #a00000; overflow-x: auto; overflow-y: hidden; padding-bottom: 15px; text-align: center; } .imagebox { width: 1000px; text-align: left; } #similar, #accessories, #browselist { margin: 1em 0.25em 2.5em 0.25em; text-align: center; line-height: 160%; font-size: 0.8em; } h1, h2, h3, h4 { font-size: 1.50em; font-style: italic; } #asinbox h4 { letter-spacing: .125em; } #asinbox h1 { margin: 1em 1em 0.25em 1em; text-align: left; } #reviews h2 { font-size: 0.9em; margin: 0px; text-transform: capitalize; display: inline; } #browselist ul { list-style-type: none; font-size: 1.25em; text-transform: capitalize; margin-left: 0em; line-height: 160%; } #tracks ol { margin-top: 0px; margin-bottom: 0px; margin-left: 2em; } #ProductBox { text-align: center; } #ErrorBox { border-top: 0.25em solid #a00000; border-left: 0.125em solid #a00000; background-color: #a00000; color: black; width: 98%; margin: 1em 0px 1em 0px; text-align: center; font-size: 1.25em; font-weight: bold; letter-spacing: .25em; } .Item { width: 47%; min-height: 25em; float: left; text-align: center; vertical-align: top; padding: 5px; margin: 2em 0px 1em 5px; font-size: 0.9em; border-top: 2px solid white; border-left: 1px solid white; border-right: 1px solid #E5E5E5; border-bottom: 2px solid #E5E5E5; } .label { font-size: 1.25em; font-weight: bold; text-align: center; padding: 0.25em 0.5em 0.25em 0.75em ; letter-spacing: .25em; } .subject { font-size: 1em; font-weight: bold; text-transform: capitalize; text-align: center; vertical-align: top; padding: .25em; margin: .25em; border-top: 3px solid white; border-left: 2px solid white; border-right: 2px solid #E5E5E5; border-bottom: 3px solid #E5E5E5; } .subject h1 { font-size: 1em; padding: 0px; margin: 0px; } .title { font-size: 2.0em; letter-spacing: -0.1em; font-weight: bold; padding: 0px; margin: 0px 0px 0px 1em; } .mini { color: gray; font-size: .6em; letter-spacing: .5em; margin: 0px 0px 0px 3em; } .buybutton, .searchbutton, button { cursor: pointer; background-color: #7d877b; text-align: center; color: white; padding: 0.25em 0.125em 0.25em 0.125em; margin: 0.25em 0.125em 0.25em 0.125em; border-right: 1px solid black; border-bottom: 1px solid black; font-weight: bold; } .buybutton, button { width: 95%; } .leftright { margin: 0px 10% 1em 10%; } .Eighty { display: inline; width: 78%; float: left; } .Twenty { display: inline; width: 20%; text-align: center; float: left; } hr { color: black; width: 90%; height: 0.25em; clear: both; } form { margin: 0px; padding: 0px; display: inline; } select, .input, textarea { margin: 0px; padding: 0px; background-color: #F5F5F5; } .input { background-repeat: no-repeat; background-position: center; } dt { float: left; clear: left; margin-right: 0px; margin-left: 0px; font-weight: bold; } dd { margin-right: 0px; margin-left: 0px; } blockquote { border-top: 2px solid white; border-left: 1px solid white; border-right: 1px solid #E5E5E5; border-bottom: 2px solid #E5E5E5; padding: 1em; margin: 0px 10% 1em 10%; } noscript { display: block; font-size: 2.5em; text-align: center; font-weight: bold; color: red; } img { margin: 3px; } ============================================= .htaccess file in /php/folder ============================================= Options All -Indexes Options +FollowSymLinks RewriteEngine on RewriteRule (.*)\.htm$ fetch.php?AsinSearch=$1 RewriteRule Keyword_(.*)_(.*)\.html$ fetch.php?KeywordSearch=$1&mode=$2&page=1 RewriteRule Power_(.*)_(.*)\.html$ fetch.php?PowerSearch=subject:$1&mode=$2&page=1 RewriteRule Author_(.*)_(.*)\.html$ fetch.php?AuthorSearch=$1&mode=$2&page=1 RewriteRule Manufacturer_(.*)_(.*)\.html$ fetch.php?ManufacturerSearch=$1&mode=$2&page=1 RewriteRule Browse_(.*)_(.*)\.html$ fetch.php?BrowseNodeSearch=$1&mode=$2&page=1 RewriteRule Artist_(.*)_(.*)\.html$ fetch.php?ArtistSearch=$1&mode=$2&page=1 RewriteRule Actor_(.*)_(.*)\.html$ fetch.php?ActorSearch=$1&mode=$2&page=1 RewriteRule Director_(.*)_(.*)\.html$ fetch.php?DirectorSearch=$1&mode=$2&page=1 RewriteRule AM-(.*)\.jpg$ get-image.php?$1.jpg RewriteRule (.*)\.css$ compress.php?$1.css RewriteRule (.*)\.js$ compress.php?$1.js RewriteRule (.*)\.xsl$ compress.php?$1.xsl ============================================= That's All Folks =============================================