$(document).ready(function(){
var
countJs = 0,
goBF = false,
ha = [],
hy = 0,
prevURL = '',
currentURL = location.href,
plI = '<img width="36" height="50" src="/images/sand_clock_indigo.png" alt="Loading, please wait..." title="Loading, please wait..." />',
goBack = function(){
if (hy > 0){
goBF = true;
ha[hy + 1] = currentURL;
var sUrlArguments = ha[hy].split('?');
hy -= 1;
sUrlArguments[0] = 'cgi-bin/booksearch/amazon_products_feed.cgi';
var u = sUrlArguments.join('?');
var d = $accDC.reg.main.dc;
d.source = u;
d.open(d);
} else historyEmpty();
},
goForward = function(){
if (ha[hy + 1]){
goBF = true;
ha[hy] = currentURL;
hy += 1;
var sUrlArguments = ha[hy].split('?');
sUrlArguments[0] = 'cgi-bin/booksearch/amazon_products_feed.cgi';
var u = sUrlArguments.join('?');
var d = $accDC.reg.main.dc;
d.source = u;
d.open(d);
} else historyEmpty();
},
historyEmpty = function(){
var d = $accDC.reg.dialog.dc;
d.source = d.txt = 'Page Not Found';
d.open(d);
d.tempTimer = setTimeout(function (){
d.close(d);
}, 2000);
},
fetch = function(u){
prevURL = currentURL;
currentURL = u;
updateBCs();
var sUrlArguments = u.split('?');
sUrlArguments[0] = 'cgi-bin/booksearch/amazon_products_feed.cgi';
u = sUrlArguments.join('?');
var d = $accDC.reg.main.dc;
d.source = u;
d.open(d);
},
parse = function(url){
var sUrlArguments = url.split('?');
var vrArr = sUrlArguments[1].split('&'),
urlVars = null;
$.each(vrArr, function(i, c){
urlVars = c.split('=');
if (urlVars.length == 2){
if (urlVars[0] == 'go' && urlVars[1] == 'amazon'){
$(window.open(url, 'amznwin', 'location=yes,scrollbars=yes,status=yes,toolbar=yes,resizable=yes')).focus();
return;
} else if (urlVars[0] != 'Sort' && urlVars[0] != 'SearchIndex' && urlVars[0] != 'BrowseNode' && urlVars[0] != 'locale' && urlVars[0] != 'Operation'){
urlVars[1] = decodeURIComponent(urlVars[1]);
urlVars[1] = urlVars[1].replace(/\./g, ' ').replace(/\s+/g, ' ');
urlVars[1] = encodeURIComponent(urlVars[1]);
urlVars[1] = urlVars[1].replace(/\'/g, '%27');
}
if (urlVars[0] == 'locale')
$accDC.reg.main.dc.locale = urlVars[1];
vrArr[i] = urlVars.join('=');
}
});
sUrlArguments[1] = vrArr.join('&');
url = sUrlArguments.join('?');
fetch(url);
},
parseForm = function(form){
var k = $(form).find('input[name=Keywords]').get(0);
if (k){
var s = $(k).val();
s = s.replace(/\~|\`|\!|\@|\#|\$|\%|\^|\&|\*|\(|\)|\_|\+|\=|\\|\||\"|\'|\,|\<|\>|\.|\?|\//g, ' ').replace(/\s+/g, ' ');
$(k).val(s);
}
parse('http://gutterstar.net/cgi-bin/booksearch/amazon_products_feed.cgi?' + $(form).serialize());
},
bcs = [],
updateBCs = function(){
var
subject = $('#pch').data('subject'),
found = false,
bcA = [];
if (prevURL && subject && prevURL != location.href){
if (!goBF){
hy += 1;
ha[hy] = prevURL;
} else goBF = false;
bcA = [prevURL, subject];
$.each(bcs, function(i, v){
if (v[1] == bcA[1]) found = true;
});
if (!found)
bcs.push(bcA);
if (bcs.length > 10)
bcs.shift();
}
},
showBCs = function(){
var d = $accDC.reg.bcs.dc;
d.open(d);
};

$('.awsHref').live('click', function(ev){
parse(this.href);
ev.preventDefault();
});
$('.awsForm').live('submit', function(ev){
parseForm(this);
ev.preventDefault();
});
$('#backLnk').live('click', function(ev){
goBack();
ev.preventDefault();
});
$('#nextLnk').live('click', function(ev){
goForward();
ev.preventDefault();
});
$('a.showHiddenScript1, a.showHiddenScript2, a.showHiddenScript3').live('click', function(ev){
$(this).addClass('hidden');
if ($(this).hasClass('showHiddenScript1'))
$(this).parent().parent().find('div.showHiddenScript1').removeClass('hidden');
else if ($(this).hasClass('showHiddenScript2'))
$(this).parent().parent().find('div.showHiddenScript2').removeClass('hidden');
else if ($(this).hasClass('showHiddenScript3'))
$(this).parent().parent().find('div.showHiddenScript3').removeClass('hidden');
ev.preventDefault();
});
$('#bcLnk').live('click', function(ev){
showBCs();
ev.preventDefault();
});

$accDC([

// Browse
{
id: 'browse',
role: 'Browse',
trigger: '#browseLnk',
binders: 'click',
mode: 0,
className: 'dialog bmDialog',
autoFix: 1,
forceFocus: true,
runBefore: function(dc){
dc.source = $('#browseMenu').html();
$(dc.source).find('script').each(function(){
$(this).remove();
});
dc.targetObj = $(dc.triggerObj).parent().parent();
},
onMouseOut: function(dc, ev){
dc.close(dc);
}
},

// Copy
{
id: 'copy',
role: 'Copy',
trigger: '#copyLnk',
binders: 'click',
mode: 0,
className: 'dialog sDialog',
autoFix: 9,
runBefore: function(dc){
var arr = currentURL.split('?');
arr[0] = 'http://gutterstar.net/amazon.php';
var text2copy = arr.join('?');
if (window.clipboardData){
window.clipboardData.setData("Text", text2copy);
dc.cancel = true;
} else
dc.source = '<label for="cLink">Item link:</label><br /><textarea style="width: 700px;" id="cLink">' + text2copy + '</textarea>';
},
runAfter: function(dc){
dc.containerDiv.find('textarea').focus().select()
.blur(function(ev){
dc.close(dc);
ev.preventDefault();
});
}
},

// Favorites
{
id: 'favorites',
role: 'Favorites',
trigger: '#addLnk',
binders: 'click',
mode: 0,
runBefore: function(dc){
var
arr = currentURL.split('?'),
subject = $('#pch').data('subject');
arr[0] = 'http://gutterstar.net/amazon.php';
var url = arr.join('?');
if (!subject) var title = 'Amazon Recommends ';
else var title = subject;
title = title.replace(/&#(\d+);/g, '');
title = title.replace(/\\|\-|\.|\~|\,|\/|\!|\@|\#|\$|\^|\&|\*|\(|\)|\_|\%5C|\%7E|\%2C|\%2F|\%21|\%40|\%23|\%24|\%25|\%5E|\%26|\%2A|\%28|\%29|\+|\||\`|\?|\:|\;|\%2B|\%7C|\%60|\%3F|\%3A|\%3B|\=|\%3D|\%27|\%22|\%2E/g, '');
if (window.sidebar) window.sidebar.addPanel(title, url, "");
else if (window.opera && window.print) $('<a></a>').attr('href', url).attr('title', title).attr('rel', 'sidebar').click();
else if (document.all) window.external.AddFavorite(url, title);
dc.cancel = true;
}
},

// Email
{
id: 'email',
role: 'Email Form',
trigger: '#emailLnk',
binders: 'click',
className: 'dialog sDialog',
autoFix: 9,
mode: 0,
source: '<div><h2>Send Item Info</h2></div><a class="closeLnk" href="#"><img class="closeImg" src="/extra/images/close.gif" alt="Close" title="Close" /></a><br /><form><div><label for="yNameJs">Your name:</label><input type="text" id="yNameJs" name="yName" maxlength="100" /></div><div><label for="yEmailJs">Your email:</label><input type="text" id="yEmailJs" name="yEmail" maxlength="100" /></div><div><label for="fNameJs">Recipient\'s name:</label><input type="text" id="fNameJs" name="fName" maxlength="100" /></div><div><label for="fEmailJs"><span class="rfn">Recipient</span>\'s email:</label><input type="text" id="fEmailJs" name="fEmail" maxlength="100" /></div><div><label for="msgJs">Message to <span class="rfn">recipient</span>:</label><br /><textarea id="msgJs" name="msg" rows="3" cols="40" maxlength="300"></textarea></div><div><input type="submit" name="submit" value="Send..." /></div></form>',
runBefore: function(dc){
dc.targetObj = $(dc.triggerObj).parent().parent();
var ua = currentURL.split('?');
ua[0] = 'http://gutterstar.net/amazon.php';
dc.url = ua.join('?');
dc.status = $('<div id="recResultJs"></div>');
},
runAfter: function(dc){
$accDC([{
id: 'status',
role: 'Status',
allowReopen: true,
isStatic: dc.status,
forceFocus: true,
runAfter: function(dc){
$accDC.fn.announce(dc.containerDiv.text());
if (dc.mode > 0)
$('#fNameJs, #fEmailJs, #msgJs').val('');
}
}], null, false, true);
var status = $accDC.reg.status.dc;
dc.containerDiv.find('form')
.before(dc.status)
.append('<input type="hidden" name="href" value="' + dc.url + '" />')
.submit(function(ev){
var error = false;
$.each(this.elements, function(){
if (!$(this).val()) error = true;
});
if (error){
status.source = '<div class="error">Error: All fields are required.</div>';
status.mode = 0;
} else {
var d = new Date();
status.source = 'ajax/recommend_send.php?' + $(this).serialize() + '&pTitle=' + encodeURIComponent('Amazon Search - ' + $('#pch').data('subject')) + '&ts=' + d.getTime();
status.mode = 1;
}
status.open(status);
ev.preventDefault();
})
.find('#fNameJs').blur(function(){
$('span.rfn').text($(this).val());
}).end()
.find('#yNameJs').focus();
}
},

// Temp dialog
{
id: 'dialog',
role: 'Status',
mode: 0,
allowReopen: true,
allowMultiple: true,
returnFocus: false,
targetObj: $('#pageContent').get(0),
showHiddenClose: false,
autoFix: 5,
className: 'dialog fbDialog',
txt: '',
runAfter: function(dc){
$accDC.fn.announce(dc.txt);
}
},

// Dev sample
{
id: 'devFetch',
role: 'Sample',
allowReopen: true,
allowMultiple: true,
showHiddenClose: false,
cssObj: {
width: '90%'
},
isStatic: '#jsExample',
mode: 1,
runBefore: function(dc){
$('#jsExample').html('<span>Loading...</span>');
}
},

// devForm
{
id: 'devForm',
role: 'Customize',
trigger: '#devLnk',
binders: 'click',
className: 'dialog dfsDialog tal',
forceFocus: true,
allowMultiple: true,
mode: 1,
source: '/extra/awsDevForm.php',
runBefore: function(dc){
dc.targetObj = $('#searchForm').get(0);
dc.cssObj.top = $('h1').offset().top + $('h1').outerHeight();
dc.cssObj.left = '10%';
},
runAfter: function(dc){
dc.containerDiv.find('form').submit(function(ev){
var u = 'amazon.php?' + $(this).serialize();
var c = $('<textarea title="Code to insert into your webpage..." style="width: 90%;" id="codeText"><' + 'script type="text/javascript" src="http://gutterstar.net/' + u + '"></' + 'script' + '></textarea>');
$('#jsCode').html(c).find('textarea').focus().select();
var d = $accDC.reg.devFetch.dc;
d.source = 'cgi-bin/booksearch/import.php?countJs=' + countJs + '&url=' + encodeURIComponent($(this).serialize());
d.open(d);
countJs++;
ev.preventDefault();
}).find('.checkIncludes').each(function(){
$(this).bind('keyup', function(ev){
if ($('#jsInclude1').val() == 'no' && $('#jsInclude2').val() == 'no'){
if ($(this).attr('id') == 'jsInclude1')
$('select#jsInclude2 > option').first().attr('selected', 'selected');
else if ($(this).attr('id') == 'jsInclude2')
$('select#jsInclude1 > option').first().attr('selected', 'selected');
}
$('.checkDisabled').trigger('checkDisabled');
});
}).end().find('.checkDisabled').each(function(){
$(this).bind('checkDisabled', function(ev){
var e = $('#jsInclude1');
var i1 = $('#jsImgS');
var i2 = $('#jsImgA');
var t = $('#jsIncludeDesc');
var t1 = $('#jsTA');
if ($(e).val() == 'yes'){
$(i1).attr('disabled', false);
$(i2).attr('disabled', false);
} else {
$(i1).attr('disabled', 'disabled');
$(i2).attr('disabled', 'disabled');
}
if ($(t).val() == 'yes') $(t1).attr('disabled', false);
else $(t1).attr('disabled', 'disabled');
}).change(function(ev){
$(this).trigger('checkDisabled');
});
});
}
},

// Load main
{
id: 'main',
role: 'Content',
showHiddenClose: false,
forceFocus: true,
allowReopen: true,
allowMultiple: true,
isStatic: '#pageContent',
mode: 1,
locale: 'us',
runBefore: function(dc){
$.cookies.set('prevURL', prevURL, {hoursToLive: 24*360});
$.cookies.set('currentURL', currentURL, {hoursToLive: 24*360});
var d = $accDC.reg.dialog.dc;
d.source = $(plI);
d.txt = d.source.attr('alt');
d.open(d);
},
runAfter: function(dc){
$('#pch').data('subject', $('#pchs').text());
$.cookies.set('bcs', bcs, {hoursToLive: 24*360});
var d = $accDC.reg.dialog.dc;
d.close(d);
$('#searchFormLocale').find('option[value=' + dc.locale + ']').attr('selected', 'selected');
}
},

// Breadcrumbs
{
id: 'bcs',
role: 'Breadcrumbs',
trigger: '#bcLnk',
binders: 'click',
className: 'dialog bcLnks',
forceFocus: true,
autoFix: 7,
mode: 0,
source: '<ul class="menuList"></ul>',
runBefore: function(dc){
if (bcs.length < 1)
dc.cancel = true;
},
runAfter: function(dc){
$.each(bcs, function(i, v){
dc.containerDiv.find('ul').append('<li><a class="awsHref" href="' + v[0] + '"><small>&#9654;</small> ' + v[1] + '</a></li>');
});
},
onMouseOut: function(dc, ev){
dc.close(dc);
}
}

], {
closeClassName: 'closeLnk'
});

if ($.cookies.get('bcs')) bcs = $.cookies.get('bcs');
if ($.cookies.get('prevURL')) prevURL = $.cookies.get('prevURL');
if (location.href.split('?').length < 2 && $.cookies.get('currentURL')) currentURL = $.cookies.get('currentURL');
if (currentURL.split('?').length < 2)
parseForm($('#searchForm').get(0));
else
parse(currentURL);

});
