var _staticroot = 'http://static.papervitamins.com';
/**
* Extending String class to trim all the necessarily data.
* @return trimmed string
*/
String.prototype.trim = function () { return this.replace(/^\s*/, "").replace(/\s*$/, ""); };
/**
* Extending String class to have endWithMethod.
* @return true if string ends with given pattern.
*/
String.prototype.endsWith = function(str){ return (this.match(str+"$")==str); };
/**
* Extending String class.Matches wildcard within the String.
* @return true if the string matches with wildcard pattern
*/
String.prototype.wildcardMatch = function (str) {
var txt = '^' + this.replace(/\*/g, '.*') + '$';
return new RegExp(this).test(str);
};
String.prototype.toUppercaseFirstChar = function (str) {
return str.substring(0,1) + str.toUppercase(1, str.length);
};
/**
* Swaps unfound book thumbs Images by finding elements
* of name "thumb-img"
*/
function pv(){}
pv.Util = function(){};
pv.Util.prototype = {
thumb_no_img : _staticroot + "/img/util/noimage_book_s.gif",
swapThumbsOnEmpty : function() {
var obj = this;
$j("img.cover-thumb").each(function(){
$j(this).error(function(){
$j(this).attr('src', _staticroot + "/img/util/noimage_book_s.gif").load();
});
var image = new Image();
image.src = $j(this).attr('src');
image.onload = function() {
if(this.width<10) {
$j('img.cover-thumb[src=\"'+this.src+'\"]').attr('src', obj.thumb_no_img).load();
}
};
});
}
}
var pvutil = new pv.Util();
pvutil.swapThumbsOnEmpty();

/****** For Migration jzazove *****
function LoginLightbox(lang,tokenURL){}
function createOverBox(e){
var cElem =document.createElement('div');
cElem.setAttribute('id','content');
cElem.appendChild(e);
var overElem; var innerElem; var closeElem; var brElem; var closeLinkElem;
overElem=document.createElement('div');
overElem.id='lightover';
overElem.setAttribute('id','lightover');
overElem.style.display='none';
overElem.setAttribute('style','display:none');
innerElem=document.createElement('div');
innerElem.id='lightinner';
innerElem.setAttribute('id','lightinner');
overElem.appendChild(innerElem);
innerElem.appendChild(cElem);
closeElem=document.createElement('h6');
innerElem.appendChild(closeElem);
closeLinkElem=document.createElement('a');
closeElem.appendChild(closeLinkElem);
closeLinkElem.setAttribute('id','hidebox');
closeLinkElem.setAttribute('href','javascript:void( $(\'lightover\').style.display=\'none\');');
closeLinkElem.appendChild(document.createTextNode('CLOSE X'));
$$('body')[0].appendChild(overElem);  //append last
$('lightover').setStyle({'position':'absolute', 'left':'0px', 'top':'0px', 'width':'100%', 'height':'100%', 'display':'block', 'background':'#454545','z-index':'3000', 'text-align':'center',opacity: 0.95 });
$('lightinner').setStyle({'position':'absolute', 'background':'#fff', 'margin':'0', 'width':'900px',  'border':'5px solid #000', 'z-index':'4500'});
$('lightinner').down('div').setStyle({'overflow':'auto', 'width':'100%', 'height':'400px', 'border':'none', 'margin':'0', 'padding':'0'});
$('lightinner').down('h6').setStyle({'margin':'0','padding':'0', 'border-top':'1px solid #666', 'background':'#ccc' });
$('lightinner').down('h6').down('a').setStyle({'color':'#333', 'padding':'10px', 'display':'block'});
$('lightinner').down('h6').style.textAlign='right';
$('lightinner').down('h6').style.textAlign='right';
$('lightinner').down('h6').down('a').style.textDecoration='none';
$('lightover').style.height = getPageSize()[1]  + 'px';
$('lightinner').style.top = getPageScroll()[1] + (getPageSize()[3] / 10) + 'px';
$('lightinner').style.left = '0px';
$('lightinner').style.marginLeft = (getPageSize()[2]-900)/2 + 'px';
};
function getPageScroll(){
var xScroll, yScroll;if (self.pageYOffset) {yScroll = self.pageYOffset;xScroll = self.pageXOffset;} else if (document.documentElement && document.documentElement.scrollTop){yScroll = document.documentElement.scrollTop;xScroll = document.documentElement.scrollLeft;} else if (document.body) {yScroll = document.body.scrollTop;xScroll = document.body.scrollLeft;} arrayPageScroll = new Array(xScroll,yScroll);return arrayPageScroll;};
function getPageSize(){
var xScroll, yScroll;if (window.innerHeight && window.scrollMaxY) {xScroll = window.innerWidth + window.scrollMaxX;yScroll = window.innerHeight + window.scrollMaxY;} else if (document.body.scrollHeight > document.body.offsetHeight){ xScroll = document.body.scrollWidth;yScroll = document.body.scrollHeight;} else { xScroll = document.body.offsetWidth;yScroll = document.body.offsetHeight;}var windowWidth, windowHeight;if (self.innerHeight) {    if(document.documentElement.clientWidth){windowWidth = document.documentElement.clientWidth; } else {windowWidth = self.innerWidth;}windowHeight = self.innerHeight;} else if (document.documentElement && document.documentElement.clientHeight) {windowWidth = document.documentElement.clientWidth;windowHeight = document.documentElement.clientHeight;} else if (document.body) { windowWidth = document.body.clientWidth;windowHeight = document.body.clientHeight;}    if(yScroll < windowHeight){pageHeight = windowHeight;} else { pageHeight = yScroll;}if(xScroll < windowWidth){pageWidh = xScroll;} else {pageWidth = windowWidth;}arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight); return arrayPageSize;};
$$("[class~='login-link']").each(function(e) {e.onclick = function() {editingDisabledBox();};});
function editingDisabledBox(){
var message_image = new Element('img', { 'src': 'http://static.papervitamins.com/img/util/pv_pill_logo.gif', 'alt':'Papervitamins'});
var message_div_right = new Element('div', { 'style': 'float:right; padding:20px' }).update(message_image);
var message_txt_en = '<h1>We are performing a scheduled update.</h1><h2>Editing content has been temporarily disabled.</h2><h3>We appologize for the inconvenience</h3><hr/>';
var message_txt_ja = '<h1>現在サイトの機能のアップデートを実行中です。</h1><h2>そのためデータの編集は健在不可能になっております。</h2> <h3>ご迷惑をおかけしますがなにとぞご理解をお願いいたします。</h3>';
var message_div_left = new Element('div', { 'style': 'float:left; padding:20px' }).update(message_txt_en + message_txt_ja);
var message = new Element('div', { 'style': 'margin:50px auto; width:100%; overflow: auto; text-align:left; opactiy:1.0;' });//.update(message_div_right + message_div_left);
message.appendChild(message_div_right);
message.appendChild(message_div_left);
createOverBox(message);
};
*/
function LoginLightbox(lang,tokenURL) { this.tokenURL=tokenURL; this.xrutil = new AjaxRequestUtil(this.lang);this.init();};
LoginLightbox.prototype = {
id_form : "login-form", id_error : "login-error-h",
url : "/global/login",
init : function() {
var obj = this;
$$("[class~='login-link']").each(function(e) {e.onclick = function() {obj.popForm();};});
},
popForm : function() {
var obj = this;
var onsubmit = function(){obj.submit()};
this.dialog = this.xrutil.createAjaxForm(this.url, new Hash({"part":"true","tokenURL":this.tokenURL}),this.id_form,936,onsubmit, null, true);
if($("init-login-bg")) {
this.dialog.showCloseIcon = false;
$("init-login-bg").remove();
$$("body")[0].select("[class='lightbox-dialog-closeicon']")[0].remove();
}
},
submit : function() {
var form = $(this.id_form);
var obj = this;
var params = new Hash(form.serialize(true));
params.set("part","true");
var xreq = new Ajax.Request(form.action, {
method :"post", encoding :"utf-8",
parameters : params.toObject(),
onLoading : function(t) { form.disable();obj.dialog.showLoader(); },
onSuccess : function(t) {
setTimeout(function(){
location.reload(true);
},250);
obj.xrutil.mayReport(t, "success");
},
on202 : function(t) {
obj.xrutil.on202(t, obj.dialog, obj.id_error, obj.id_form);
setTimeout(function(){$(obj.id_error).appear({duration:0.0});},620);
},
onFailure : function(t) { obj.xrutil.onFailure(t, obj.dialog, obj.id_form); }
});
return false;
}
};
function LightboxReg(lang,name,id) {  this.xrutil = new AjaxRequestUtil(this.lang);this.name=name;this.id=id; this.init();};
LightboxReg.prototype = {
id_form : "reg-form", id_error : "reg-error-h",
url : "/ajax/user_registration/askname.jsp",
init : function() {
var obj = this;
$$("[class~='login-link']").each(function(e) {e.onclick = function() {obj.popForm();};});
},
popForm : function() {
var obj = this;
var onsubmit = function(){obj.submit()};
this.dialog = this.xrutil.createAjaxForm(this.url,
new Hash({"name":this.name,"openId":this.id})
,this.id_form,564,onsubmit,null,false);
if($("lboxreg-bg")) {
$("lboxreg-bg").remove();
$$("#lightbox-dialog-h-center img[title='close']").each(function(e){e.remove();});
}
},
submit : function() {
var form = $(this.id_form);
var obj = this;
var params = new Hash(form.serialize(true));
params.set("part","true");
var xreq = new Ajax.Request(form.action, {
method :"post", encoding :"utf-8",
parameters : params.toObject(),
onLoading : function(t) { form.disable();obj.dialog.showLoader(); },
onSuccess : function(t) {
setTimeout(function(){
obj.dialog.hideLoader();
$("reg-body").replace(t.responseText);
},250);
obj.xrutil.mayReport(t, "success");
},
on202 : function(t) { obj.xrutil.onFailure(t, obj.dialog, obj.id_form); },
onFailure : function(t) { obj.xrutil.onFailure(t, obj.dialog, obj.id_form); }
});
return false;
}
};

function LightboxDialog(element, lang, dialogWidth) {
this.maydispose = true;
this.dialogWidth = dialogWidth;
this.lang = lang;
this.element = element;
this.showCloseIcon = true;
}
LightboxDialog.prototype = {
bgColor : "#444",
closeIcon : "http://static.papervitamins.com/img/util/close.png",
loaderImg : "http://static.papervitamins.com/img/util/loader.gif",
loaderImgWidth : "220",
loaderImgHeight : "19",
id_bg : "lightbox-dialog-bg",
id_root : "lightbox-dialog-root",
id_loader : "lightbox-dialog-loader",
id_center : "lightbox-dialog-h-center",
id_panel : "lightbox-dialog-h-panel",
class_msgBody : "lightbox-dialog-msg",
initialize : function() {
this.positionDialog();
var obj = this;
if(this.closeicon)
this.closeicon.onclick = function() { obj.hide(); }
},
positionDialog : function() {
var root_h =  $(this.id_root).getHeight() ;
var left = Math.round((document.viewport.getWidth()- this.dialogWidth)/2);
var top = document.viewport.getScrollOffsets().top + Math.round((document.viewport.getHeight() - root_h)/2);
top = top<0?0:top;
if($(this.id_root)!=null)
$(this.id_root).setStyle({"position": "absolute", "left":left+"px", "top": top + "px"});
var bar_x = left + (this.dialogWidth - this.loaderImgWidth)/2;
var bar_y = top + (root_h - this.loaderImgHeight)/2 + 6;
if($(this.id_loader)!=null) $(this.id_loader).select("img")[0].setStyle({"top":bar_y+"px","left":bar_x+"px","position": "absolute","zIndex":"10003"});
},
showLoader : function() {
this.maydispose = false;
Effect.Appear(this.id_loader, {duration: 0.4});
Effect.Appear(this.id_center, { duration: 0.4,  from:1.0, to: 0.3});
},
hideLoader : function() {
this.initialize();
this.maydispose = true;
Effect.Appear(this.id_center, { duration: 0.3, from:0.4 , to: 1});
$(this.id_loader).fade({duration: 0.2});
},
hide : function() {
if(this.maydispose) {
$$("body")[0].fire("lightboxdialog:onhide", { });
Effect.Fade(this.id_root,{duration: 0.2 });
Effect.Fade(this.id_bg, { duration: 0.2 });
var obj = this;
setTimeout(function(e) {
if($(obj.id_root)!=null) { $(obj.id_root).remove(); }
if($(obj.id_bg)!=null) $(obj.id_bg).remove();
if($(obj.id_loader)!=null) $(obj.id_loader).remove();
}, 220);
}
},
updatePanel_msgNoCloseButton : function(title, msgArray) {
var div = new Element("div", {"class":this.class_msgBody});
if(title != null) { div.insert(new Element("h3").insert(title)); }
var messages = new Element("div");
div.insert(messages);
var obj = this;
msgArray.each(function(msg) {
var p = new Element("p");
messages.insert(p);
p.insert(msg);
});
return this.updatePanel(div);
}
}
LightboxDialog.prototype.popup = function() {
var root = new Element("div", {"id": this.id_root});
var holder = new Element("div", {"class": "lightbox-dialog-h"});
root.insert(holder);
holder.insert(new Element("div",{"class": "lightbox-dialog-h-top"}));
var centerholder = new Element("table",{"id":"lightbox-dialog-h-center-h"})
holder.insert(centerholder);
var tbody = new Element("tbody");
centerholder.insert(tbody);
var tr = new Element("tr");
tbody.insert(tr);
tr.insert(new Element("td",{"class":"c1"}).insert("\n"));
var td2 = new Element("td",{"class":"c2"});
tr.insert(td2);
tr.insert(new Element("td",{"class":"c3"}).insert("\n"));
var center = new Element("div", {"id":this.id_center});
td2.insert(center);
this.closeButtonDiv = new Element("div",{"class": "lightbox-dialog-closeicon"});
center.insert(this.closeButtonDiv);
if(this.showCloseIcon) {
this.closeicon = new Element("img", {"src":this.closeIcon, "alt": ("ja".match(this.lang) ? "ダイアログを閉じる" : "close dialog" ),"title": ("ja".match(this.lang) ? "閉じる" : "close" )});
this.closeButtonDiv.insert(this.closeicon);
}
var panel = new Element("div",{"id":this.id_panel});
center.insert(panel);
panel.insert(this.element);
holder.insert(new Element("div",{"class": "lightbox-dialog-h-bottom"}));
var loader = new Element("div", {"id":this.id_loader});
var img = new Element("img",{"src":this.loaderImg,"alt":"processing...","title":"processing..."});
loader.insert(img);
root.setStyle({"display" : "none", "width": this.dialogWidth + "px"});
td2.setStyle({"width":(this.dialogWidth-4) + "px"});
loader.setStyle({"display" : "none"});
$$("body")[0].insert(new Element("div",{"id": this.id_bg, "style":"display:none;background-color:"+this.bgColor}));
$$("body")[0].insert(root);
$$("body")[0].insert(loader);
this.initialize();
Effect.Appear(this.id_root, { duration: 0.0 });
Effect.Appear(this.id_bg, { duration: 0.0, from:0, to: 0.6});
$(this.id_root).fire("lightboxdialog:onpopup", { });
}
LightboxDialog.prototype.updatePanel = function(element) {
var previous;
$(this.id_panel).immediateDescendants().each(function(e){ previous = e; e.remove();});
$(this.id_panel).insert(element);
$(this.id_root).setStyle({"width": this.dialogWidth + "px"});
this.positionDialog();
$(this.id_root).fire("lightboxdialog:onupdate", { });
return previous;
}
LightboxDialog.prototype.updatePanel_err = function(title, msgArray) {
var div = new Element("div", {"class":this.class_msgBody});
if(title!=null) {
var h3 = new Element("h3");
div.insert(h3);
h3.insert(title);
}
var ul = new Element("ul");
div.insert(ul);
var obj = this;
msgArray.each(function(msg) {
var li = new Element("li", {"class":"lightbox-dialog-msg-err"});
ul.insert(li);
li.insert(msg);
});
var div_back = new Element("div");
div.insert(div_back);
var back = new Element("input", {"value":"back", "type": "button"});
div_back.insert(back);
var previous;
var obj = this;
$(this.id_panel).immediateDescendants().each(function(e){
previous = e;
});
div_back.onclick = function() {
previous.select("form").each(function(form){ form.enable(); });
obj.updatePanel(previous);
}
return this.updatePanel(div);
}
LightboxDialog.prototype.updatePanel_msg = function(title, msgArray) {
var div = new Element("div", {"class":this.class_msgBody});
if(title != null) {
var h3 = new Element("h3");
div.insert(h3);
h3.insert(title);
}
var ul = new Element("ul");
div.insert(ul);
var obj = this;
msgArray.each(function(msg) {
var li = new Element("li");
ul.insert(li);
li.insert(msg);
});
var div_back = new Element("div");
div.insert(div_back);
var back = new Element("input", {"value":"close", "type": "button"});
div_back.insert(back);
var obj = this;
div_back.onclick = function() { obj.hide(); }
return this.updatePanel(div);
}

function AjaxRequestUtil(lang) {
this.lang = lang;
if("ja".match(lang)) {
this.txt_errFatal = this.txt_errFatal_ja;
}
}
AjaxRequestUtil.prototype = {
txt_errFatal : "We are sorry but we are currently experiencing some problem with this functionality. Please try again in few minutes.",
txt_errFatal_ja : "現在この機能で問題が起きています。申し訳ございせんがこの数分後に再度試行してください。",
onSuccessNoMsg : function(t, dialog) {
setTimeout(function(t){
if(dialog!=null) {
dialog.hideLoader();
dialog.hide();
}
},600);
this.mayReport(t, "success");
},
onSuccess : function(t, dialog, txt_finished) {
setTimeout(function(){
var msg = new Array();
msg[0] = txt_finished;
dialog.updatePanel_msgNoCloseButton(null, msg, 80);
dialog.hideLoader();
setTimeout(function(t) { if(dialog!=null) dialog.hide(); }, 1500);
}, 600);
this.mayReport(t, "success");
},
on202 : function(t, dialog, id_error, id_form) {
setTimeout(function(){
$(id_error).innerHTML = t.responseText;
$(id_form).enable();
dialog.hideLoader();
},600);
this.mayReport(t, "202");
},
onFailure : function(t, dialog, id_form) {
var obj = this;
setTimeout(function(){
var err = new Array();
err[0] = obj.txt_errFatal;
$(id_form).enable();
dialog.updatePanel_msgNoCloseButton(null, err, 125);
dialog.hideLoader();
}, 600);
this.mayReport(t, "failure");
},
mayReport : function(t, type) {
pageTracker._trackPageview(t.request.url + "/" + type + "?" + new Hash(t.request.parameters).toQueryString());
},
createAjaxForm : function(url, params, formId, width, onsubmit, mymethod, showCloseIcon) {
var obj = this;
var empty = new Element("div",{"style":"height:80px"});
var dialog = new LightboxDialog(empty, this.lang, width, 340);
dialog.showCloseIcon = showCloseIcon==null ? true : showCloseIcon;
dialog.popup();
dialog.showLoader();
if(mymethod==null) mymethod="post";
setTimeout(function() {
new Ajax.Request(url,{
method :mymethod, encoding :'utf-8', parameters : params.toObject(),
onLoading : function(t) {  },
onSuccess : function(t) {
var div = new Element("div").insert(t.responseText);
dialog.updatePanel(div);
setTimeout(function() {
var form = $(formId);
form.onsubmit = function() { onsubmit(); return false; };
if($("cancel-button")) $("cancel-button").onclick = function() {dialog.hide();};
obj.mayReport(t,"popform");
dialog.hideLoader();
setTimeout(function() { form.focusFirstElement(); } , 420);
},300);
},
onFailure : function(t) {
dialog.hideLoader();
dialog.updatePanel(new Element("div",{"style":"padding: 32px 16px;text-align:left;"}).insert(obj.txt_errFatal));
}
});
},420);
return dialog;
},
onAjaxFormSubmit : function(formId, errorId, dialog, action) {
var form = $(formId);
var obj = this;
var params = new Hash(form.serialize(true));
var xreq = new Ajax.Request(form.action, {
method :"post", encoding :"utf-8",
parameters : params.toObject(),
onLoading : function(t) { form.disable();dialog.showLoader(); },
onSuccess : function(t) {
dialog.hideLoader();
setTimeout(function(){
action(t, params);
dialog.hide();
},250);
obj.mayReport(t, "success");
},
on202 : function(t) { obj.on202(t, dialog, errorId, formId);	 },
onFailure : function(t) { obj.onFailure(t, dialog, formId); }
});
return false;
},
showLoader : function(e) {
var dim =  e.getDimensions();
var offset = e.cumulativeOffset();
var img_t = offset.top+dim.height/2-10;
var img_l = offset.left+ dim.width/2-110;
this.loader_mask = new Element("div").setStyle({background:"#FFF", "width":dim.width+"px","height":dim.height+"px","position":"absolute","top":offset.top+"px","left":offset.left+"px"}).setOpacity(0.5);
this.loader_img = new Element("img",{"src":"http://static.papervitamins.com/img/util/loader.gif"}).setStyle({"position":"absolute","top":img_t+"px","left":img_l+"px"});
$$("body")[0].insert(this.loader_mask);
$$("body")[0].insert(this.loader_img);
},
hideLoader : function() {
this.loader_mask.remove();
this.loader_img.remove();
}
}

sfHover = function() {
var sfEls = $$('#nav-primary li','#nav-utility li');
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onmouseover=function() {this.className+=" sfhover";}
sfEls[i].onmouseout=function() {this.className=this.className.replace(new RegExp(" sfhover\\b"), "");}
}
}
if (window.attachEvent) window.attachEvent("onload", sfHover); //use ie only window method
function Itemheader() {
this.initialize();
}
Itemheader.prototype.initialize = function() {
$("globalsearch").enable();
var globalInput = $('header-query-tf');
globalInput.onfocus = function() {
$("header-query-tf").setStyle({"color":"#333"});
if (this.value == this.defaultValue)
this.value = '';
};
globalInput.onblur = function() {
if (this.value == '')
this.value = this.defaultValue;
};
$('globalsearch').onsubmit = function() {
$('header-query-button').disabled = true;
return true;
};
var gsb = $('header-query-button');
gsb.onmouseover = function(){
gsb.src="http://static.papervitamins.com/img/util/global-search-button-hover.gif";
};
gsb.onmouseout = function(){
gsb.src="http://static.papervitamins.com/img/util/global-search-button.gif";
};
if($('nav-utility')!=null) {
var width = $('nav-utility').down('a').getWidth();
$('nav-utility').down('ul').setStyle({'width':width-2+'px'});
}
}

function Bibliography(token,gbsToken,array) {
this.token = token;
this.gbsToken = gbsToken;
var obj = this;
jQuery.each(array, function(){ obj.check(this); });
}
Bibliography.prototype = {
gbsArray : new Array(),
check : function(entry) {
var obj = this;
if(entry.ol)  $j.each(entry.ol, function(){ obj.loadImg(this, "ol", entry); });
if(entry.amazon) $j.each(entry.amazon, function(){ obj.loadImg(this, "ai", entry); });
if(entry.gbs) this.checkGBS(entry);
},
checkGBS : function(entry) {
var obj = this;
var req = "http://books.google.com/books?&jscmd=viewapi&&callback=biblio.loadGbsImg&bibkeys=";
$j.each(entry.gbs, function() {
req +=this+",";
obj.gbsArray[obj.gbsArray.length] = {"entryId":entry.id,"bibkey":this};
});
$j("body").append("<script src='" + req + "'>");
},
loadGbsImg : function(res) {
for (key in res) {
if(res[key].thumbnail_url) {
var obj = this;
if(res[key].thumbnail_url!=null){
var entryId;
$j.each(this.gbsArray, function(){ if(key == this.bibkey) entryId = this.entryId;});
this.processGBSEntry(entryId, res[key], this.gbsToken)
}
}
}
},
processGBSEntry : function(entryId, gbsInfo, gbsToken) {
var img = new Image();
var obj = this;
img.src = gbsInfo.thumbnail_url;
img.onload = function() {
if (obj.endsWith($j("#cover-" + entryId).attr("src"),"/img/book/n/s")) {
$j("#cover-" + entryId).css({"max-width":"50px"});
$j("#cover-" + entryId).attr("src", gbsInfo.thumbnail_url);
var hash = new Hash({"entityid":entryId,"entitytype":"book","beptoken":obj.gbsToken});
var innerHash = new Hash({
"bib_key":gbsInfo.bib_key,
"info_url":gbsInfo.info_url,
"preview_url":gbsInfo.preview_url,
"thumbnail_url":gbsInfo.thumbnail_url,
"preview":gbsInfo.preview,
"embeddable":gbsInfo.embeddable
});
hash.set("entry-0",innerHash.toQueryString());
new Ajax.Request("/action/bookentry/update", {method: "post",parameters: hash.toObject()});
}
}
},
loadImg : function(src,type, entry) {
var obj = this;
var img = new Image();
img.src = src;
img.onload = function() {
if (img.width > 10 && obj.endsWith($j("#cover-" + entry.id).attr("src"),"/img/book/n/s")) {
$j("#cover-" + entry.id).css({"max-width":"50px"});
$j("#cover-" + entry.id).attr("src", src);
var bi;
if("ai" == type) bi ="{'"+src.replace("http://images.amazon.com/images/P/","").replace(".01.M","")+"':'true'}";
else bi ="{'"+src.replace("http://covers.openlibrary.org/b/","").replace("-M.jpg","").replace("/",":")+"':{'width':'"+img.width+"','height':'"+img.height+"'}}";
$j.ajax({
type: "POST",
data: {"edition-igc-id":entry.id,"edition-igc-type":type,"edition-igc-token":obj.token,"edition-igc-bi": bi},
url: "/action/check-eci",
cache: false
});
}
}
},
endsWith : function(str, pattern) {
var f = false;
if(pattern.length<=str.length) f = str.substr(str.length - pattern.length) == pattern;
return f;
}
}

var linkss = $$('a.share');
linkss.each( function(yy){prepareShareMenu(yy);});
var helplinks = $$('a.help');
helplinks.each( function(zz){prepareHelpMenu(zz);});
var pageName = $$('title')[0].innerHTML;
var pageURL = location.href;
var baseURL = 'http://static.papervitamins.com';
var helpLIs;
function prepareShareMenu(ff){Event.observe(ff, 'click', function(event){buildShareMenu(ff)});};
function prepareRssMenu(ii){Event.observe(ii, 'click', function(event){buildRssMenu(ii)});};
function prepareHelpMenu(jj){Event.observe(jj, 'click', function(event){buildHelpMenu(jj);});};
function buildShareMenu(ee) {var xyShare = ee.cumulativeOffset();var shareMenu = $('sharediv');var shareURL = pageURL;var title=pageName;
$("pv_delicious").href = pvshareurl("http://del.icio.us/post?url={shareURL}&title={title}", shareURL, title);
$("pv_googlebmarks").href = pvshareurl("http://www.google.com/bookmarks/mark?op=edit&bkmk={shareURL}&title={title}", shareURL, title);
$("pv_technorati").href = pvshareurl("http://www.technorati.com/faves?add={shareURL}", shareURL, title);
$("pv_digg").href = pvshareurl("http://digg.com/submit?phase=2&url={shareURL}&title={title}", shareURL, title);
$("pv_stumble").href = pvshareurl("http://www.stumbleupon.com/submit?shareURL={shareURL}&title={title}", shareURL, title);
$("pv_furl").href = pvshareurl("http://furl.net/storeIt.jsp?u={shareURL}&t={title}", shareURL, title);
$("pv_facebook").href = pvshareurl("http://www.facebook.com/share.php?u={shareURL}", shareURL, title);
$("pv_yahoo_buzz").href = pvshareurl("http://buzz.yahoo.com/submit?submitUrl={shareURL}&submitHeadline={title}", shareURL, title);
$("pv_mixx").href = pvshareurl("http://www.mixx.com/submit?page_url={shareURL}&Title={title}", shareURL, title);
$("pv_reddit").href = pvshareurl("http://reddit.com/submit?url={shareURL}&title={title}", shareURL, title);
$("pv_friendfeed").href = pvshareurl("http://friendfeed.com/share?url={shareURL}&title=={title}", shareURL, title);
$("pv_magnolia").href = pvshareurl("http://ma.gnolia.com/bookmarklet/add?url={shareURL}&title={title}", shareURL, title);
$("pv_windows_live").href = pvshareurl("https://favorites.live.com/quickadd.aspx?marklet=1&mkt=en-us&url={shareURL}&title={title}&top=1", shareURL, title);
$("pv_tailrank").href = pvshareurl("http://tailrank.com/share/?link_href={shareURL}&title={title}", shareURL, title);
shareMenu.style.left=(xyShare[0]-150)+"px";
shareMenu.style.top=(xyShare[1]+16)+"px";
new Effect.toggle(shareMenu,'appear',{duration:0.5});
};
function pvshareurl(base, shareURL, title) {base = base.replace('{shareURL}', shareURL);return base.replace('{title}', title);}
document.write("<div id=\"sharediv\"  style=\"display:none;\"><h3><a href=\"javascript:void($('sharediv').style.display='none');\"  class=\"close\">close</a></h3><h4>Share this with</h4><div><ul><li><a href=\"#\" id=\"pv_delicious\"><img src=\""+baseURL+"/img/util/extIcons/delicious.gif\" alt=\"\" />del.icio.us</a></li><li><a href=\"#\" id=\"pv_digg\"><img src=\""+baseURL+"/img/util/extIcons/digg.gif\" alt=\"digg\" />Digg</a></li><li><a href=\"#\" id=\"pv_stumble\"><img src=\""+baseURL+"/img/util/extIcons//stumble.gif\" alt=\"\" />Stumble</a></li><li><a href=\"#\" id=\"pv_furl\"><img src=\""+baseURL+"/img/util/extIcons/furl.gif\" alt=\"\" />Furl</a></li><li><a href=\"#\" id=\"pv_facebook\"><img src=\""+baseURL+"/img/util/extIcons/facebook.gif\" alt=\"Facebook\" />Facebook</a></li><li><a href=\"#\" id=\"pv_yahoo_buzz\"><img src=\""+baseURL+"/img/util/extIcons/yahoo-buzz.gif\" alt=\"\" />Yahoo! Buzz</a></li><li><a href=\"#\" id=\"pv_technorati\"><img src=\""+baseURL+"/img/util/extIcons/technorati.gif\" alt=\"\" />Technorati</a></li></ul><ul><li><a href=\"#\" id=\"pv_googlebmarks\"><img src=\""+baseURL+"/img/util/extIcons/google.gif\" alt=\"\" />Google Bookmarks</a></li><li><a href=\"#\" id=\"pv_mixx\"><img src=\""+baseURL+"/img/util/extIcons/mixx.gif\" alt=\"\" />Mixx</a></li><li><a href=\"#\" id=\"pv_reddit\"><img src=\""+baseURL+"/img/util/extIcons/reddit.gif\" alt=\"\" />reddit</a></li><li><a href=\"#\" id=\"pv_friendfeed\"><img src=\""+baseURL+"/img/util/extIcons/friendfeed.gif\" alt=\"\" />FriendFeed</a></li><li><a href=\"#\" id=\"pv_magnolia\"><img src=\""+baseURL+"/img/util/extIcons/magnolia.gif\" alt=\"\" />ma.gnolia</a></li><li><a href=\"#\" id=\"pv_windows_live\"><img src=\""+baseURL+"/img/util/extIcons/windowslive.gif\" alt=\"\" />Windows Live</a></li><li><a href=\"#\" id=\"pv_tailrank\"><img src=\""+baseURL+"/img/util/extIcons/tailrank.gif\" alt=\"\" />Tailrank</a></li></ul><br/><br/></div></div>");
function buildHelpMenu(pp) {var xyHelp = pp.cumulativeOffset();var helpMenu = $('helpmenu');var pidHelp = pp.up('div',1).id;var pClassHelp = pp.up('div',1).className;var txtHelp = pp.getAttribute('title');var linkHelp = pp.getAttribute('href');var elem = "<a href="+linkHelp+">read the full section »</a>";pp.setAttribute('href','javascript:void(0)');$('helpmenuul').innerHTML = txtHelp+'<br/><br/>'+elem;helpMenu.style.left=(xyHelp[0])+"px"; helpMenu.style.top=(xyHelp[1]+16)+"px";new Effect.toggle(helpMenu,'appear',{duration:0.4});};document.write("<div id=\"helpmenu\"  style=\"display:none;\"><h3><a href=\"javascript:void($('helpmenu').style.display='none');\"  class=\"close\">X</a></h3><h4>Info</h4><div id=\"helpmenuul\"></div></div>");
function pvAlert(id, txt) {
makeErrorHTML(txt);
var dms = $(id).getDimensions();
var dmsX = dms.width - 20;
var dmsY = dms.height - 40;
var offs = $(id).cumulativeOffset();
$('alertinner').setStyle( {
'top' :offs[1] + 'px',
'left' :offs[0] + 10 + 'px',
'width' :dmsX + 'px',
'height' :dmsY + 'px',
'margin' :'30px 0 0 0',
'min-height' :'70px'
});
new Effect.Appear($('pvalertholder'), {
duration :0.2
});
};
function pvAlertRec(id,txt) {makeErrorHTML(txt);var dms = $(id).getDimensions();var dmsX = '170'; var dmsY = dms.height;var offs = $(id).cumulativeOffset();$('alertinner').setStyle({'top':offs[1]+'px','left':offs[0]-40+'px','width':dmsX+'px', 'height':dmsY+40+'px', 'margin':'0 0 0 0', 'min-height': '70px'}); new Effect.Appear($('pvalertholder'),{duration:0.4});init(); };
function makeErrorHTML(s){$('alertinnerp').innerHTML = s;};
function pvLoaderCLose(){ $('pvloaderholder').hide();};
function pvLoader(id) {var dms = $(id).getDimensions();var offs = $(id).cumulativeOffset();$('loaderinner').setStyle({'top':offs[1]+'px','left':offs[0]+10+'px','width':dms.width-20+'px', 'height':dms.height-40+'px', 'margin':'30px 0 0 0' }); new Effect.Appear($('pvloaderholder'),{duration:0.4});};document.write("<div id=\"pvalertholder\" style=\"display:none;\"><div id=\"alertinner\"><h3>ERROR</h3><h6><a id=\"alerclose\" href=\"javascript:void($('pvalertholder').style.display='none')\">CLOSE X</a></h6><p id=\"alertinnerp\"> </p></div></div>");
document.write("<div id=\"pvloaderholder\" style=\"display:none;\"><div id=\"loaderinner\"> </div></div>");
$$('h2').each(function(g) {if(g.up('div').className=='itemcomponentheader'){
g.onclick =
function(){
Effect.toggle(g.up('div').next('.componentcontent'), 'blind', {duration: 0.2});
g.up('div').next('.componentend').toggle();
classChanger(g);
};
}});
function classChanger(e) {
if ($(e).hasClassName('off')) {
$(e).addClassName('on');
$(e).removeClassName('off');
$(e).up('div').style.marginBottom = '0';
} else {
$(e).addClassName('off');
$(e).removeClassName('on');
setTimeout(function() {
$(e).up('div').style.marginBottom='30px';
},200);
}
};
$j("img.item-image-asset").each(function(){
$j(this).ready(function(){
if(this.width<20 && this.height<20) i.src='http://static.papervitamins.com/img/util/item_main_none.gif';
});
});
function trimString(stringToTrim) {
return stringToTrim.replace(/^\s+|\s+$/g,"");
}
sfHover = function() {
var sfEls = $$('#header li');
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onmouseover=function() {
this.className+=" sfhover";
}
sfEls[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
}
}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

