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 EditionChecker(identifiers, token, id) {
this.identifiers = identifiers;
this.token = token;
this.editionArray = new Array();
this.id = id;
}
EditionChecker.prototype = {
OL_URL : "http://openlibrary.org/api/books?callback=?",
GBS_SEARCHURL : "http://ajax.googleapis.com/ajax/services/search/books?v=1.0&callback=?",
GBS_SERACH_PREFIX : new Array("isbn","oclc","gbs","lccn"),
invoke : function() {
var obj = this;
this.__ol_searchresults = new Array();
this.__gbs_searchresults = new Array();
$j.each(this.identifiers, function(i, identifier){
$j.getJSON(obj.OL_URL, { "details":"true","bibkeys":identifier },function(json){ obj.ol_process(json);});
});
var query = "";
$j.each(this.identifiers, function(i, identifier){
if(obj.isGBSSearchable(identifier)){
if(identifier.startsWith("gbs"))identifier = identifier.replace("gbs:", "GGKEY");
$j.getJSON(obj.GBS_SEARCHURL,{"q":identifier},function(json){obj.gbs_process(json, identifier)});
}
else obj.__gbs_searchresults.unshift(null);
});
},
isGBSSearchable : function(identifier) {
identifier = identifier.toLowerCase();
var isSearchable = false;
$j.each(this.GBS_SERACH_PREFIX, function(i,prefix) {
if(identifier.startsWith(prefix)) isSearchable = true;
});
return isSearchable;
},
gbs_process : function(json, identifier) {
if(json.responseData.results.length==0) this.__gbs_searchresults.unshift(null);
else this.__gbs_searchresults.push(json);
this.maysubmit();
},
ol_process : function(json, identifier) {
var isEmpty = true;
for(member in json) {
isEmpty = false;
break;
}
if(isEmpty) this.__ol_searchresults.unshift(null);
else this.__ol_searchresults.push(json);
this.maysubmit();
},
maysubmit : function() {
var length = this.identifiers.length;
if(this.__gbs_searchresults.length>=length&&this.__ol_searchresults.length>=length){
$j.post("/action/ol_ec", {
"id":this.id,
"type":"book",
"ec-token":this.token,
"gbs": this.arrayToJSONString(this.__gbs_searchresults),
"ol": this.arrayToJSONString(this.__ol_searchresults)
});
}
},
arrayToJSONString : function(array) {
var str = "[";
first = true;
$j.each(array, function(i,v) {
if(v!=null) {
if(first) first = false;
else str += ",";
str +=  JSON.stringify(v);
}
});
str += "]"
return str;
}
}

if(!this.JSON){this.JSON={}}(function(){function f(n){return n<10?'0'+n:n}if(typeof Date.prototype.toJSON!=='function'){Date.prototype.toJSON=function(key){return isFinite(this.valueOf())?this.getUTCFullYear()+'-'+f(this.getUTCMonth()+1)+'-'+f(this.getUTCDate())+'T'+f(this.getUTCHours())+':'+f(this.getUTCMinutes())+':'+f(this.getUTCSeconds())+'Z':null};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf()}}var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==='string'?c:'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+string+'"'}function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==='object'&&typeof value.toJSON==='function'){value=value.toJSON(key)}if(typeof rep==='function'){value=rep.call(holder,key,value)}switch(typeof value){case'string':return quote(value);case'number':return isFinite(value)?String(value):'null';case'boolean':case'null':return String(value);case'object':if(!value){return'null'}gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==='[object Array]'){length=value.length;for(i=0;i<length;i+=1){partial[i]=str(i,value)||'null'}v=partial.length===0?'[]':gap?'[\n'+gap+partial.join(',\n'+gap)+'\n'+mind+']':'['+partial.join(',')+']';gap=mind;return v}if(rep&&typeof rep==='object'){length=rep.length;for(i=0;i<length;i+=1){k=rep[i];if(typeof k==='string'){v=str(k,value);if(v){partial.push(quote(k)+(gap?': ':':')+v)}}}}else{for(k in value){if(Object.hasOwnProperty.call(value,k)){v=str(k,value);if(v){partial.push(quote(k)+(gap?': ':':')+v)}}}}v=partial.length===0?'{}':gap?'{\n'+gap+partial.join(',\n'+gap)+'\n'+mind+'}':'{'+partial.join(',')+'}';gap=mind;return v}}if(typeof JSON.stringify!=='function'){JSON.stringify=function(value,replacer,space){var i;gap='';indent='';if(typeof space==='number'){for(i=0;i<space;i+=1){indent+=' '}}else if(typeof space==='string'){indent=space}rep=replacer;if(replacer&&typeof replacer!=='function'&&(typeof replacer!=='object'||typeof replacer.length!=='number')){throw new Error('JSON.stringify');}return str('',{'':value})}}if(typeof JSON.parse!=='function'){JSON.parse=function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==='object'){for(k in value){if(Object.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v}else{delete value[k]}}}}return reviver.call(holder,key,value)}cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4)})}if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,''))){j=eval('('+text+')');return typeof reviver==='function'?walk({'':j},''):j}throw new SyntaxError('JSON.parse');}}}());

Preview.prototype.texts = new Hash({
"full":"Full view",
"noview" : "No Preview",
"partial":"Limited preview"
});
Preview.prototype.text_ja = new Hash({
"full":"全文表示の書籍を検索",
"noview" : "No Preview",
"partial":"部分プレビューの書籍を検索"
});
function Preview(entityId, entityType, token, isLoggedIn, lang, identifiers) {
this.entityId = entityId;
this.entityType = entityType;
this.token = token;
this.isLoggedIn = isLoggedIn;
this.lang = lang;
this.identifiers = identifiers;
this.id_element = "preview-" + entityId;
google.load("books", "0");
google.setOnLoadCallback(initialize);
var obj = this;
function initialize() {
obj.checkViewability();
obj.newCanvasCount = 0;
$(obj.id_element).select("tr").each(function(e) {
e.select("img")[0].onclick = function (evt) { BookPreview.getGBSPreview(evt, $(e)); };
});
}
}
Preview.prototype.maySubmit = function(booksInfo) {
var i;
var hash = new Hash({"entityid":this.entityId,"entitytype":this.entityType,"beptoken":this.token});
var pos = 0;
var hashArray = new Array();
for (i in booksInfo) {
var book = booksInfo[i];
var innerHash = new Hash({
"bib_key":book.bib_key,
"info_url":book.info_url,
"preview_url":book.preview_url,
"thumbnail_url":book.thumbnail_url,
"preview":book.preview,
"embeddable":book.embeddable
});
hash.set("entry-" + ++pos,innerHash.toQueryString());
if(book.embeddable) hashArray[hashArray.length] = innerHash;
}
var obj = this;
for(var j=0;j<hashArray.length;j++) {
var tr = obj.getEntry(hashArray[j].get("bib_key"));
if(tr!=null) {
}
else {
tr = new Element("tr", {"id":hashArray[j].get("bib_key")});
$(obj.id_element).select("tbody")[0].insert(tr);
var td1 = new Element("td",{"class":"icon"});
tr.insert(td1);
var img = new Element("img",{"src":"http://static.papervitamins.com/img/util/gbs_preview_button_en.gif","alt":"preview"});
td1.insert(img);
var td2 = new Element("td",{"class":"level"}).insert(this.texts.get(hashArray[j].get("preview")));
tr.insert(td2);
var td3 = new Element("td",{"class":"title"}).insert(hashArray[j].get("bib_key"));
tr.insert(td3);
img.onclick = function(evt) { BookPreview.getGBSPreview(evt,  $(this.parentNode.parentNode)); };
}
}
var xreq = new Ajax.Request("/action/bookentry/update", {method: "post",parameters: hash.toObject()});
}
Preview.prototype.getEntry = function(bib_key) {
var array = $(this.id_element).select("tr");
for(var i=0;i<array.length;i++) {
var txt = array[i].select("td[class='title']")[0].innerHTML;
var txtArray = txt.split(",");
for(var j=0;j<txtArray.length;j++) {
var id = txtArray[j].replace(/^\s+|\s+$/g,"");
if(bib_key.match(id)) {
return array[i];
}
}
}
return null;
}
Preview.prototype.checkViewability = function() {
var request = "http://books.google.com/books?&jscmd=viewapi&callback=parseLookup&bibkeys=";
for(var i=0; i<this.identifiers.length; i++){
request +=  ("+" + this.identifiers[i]);
};
var script = new Element("script",{"src":request });
$$("body")[0].insert(script);
}
function parseLookup(booksInfo) {
preview.maySubmit(booksInfo);
}

var floatArray = new Array();
function FloatableDialog(title, id_popped, x,y,w,h, options) {
this.x = x;
this.y = y;
this.w = w;
this.h = h;
this.title = title;
this.id_popped = id_popped;
this.id_knob = this.id_popped + "_knob";
this.options = new Hash(options);
}
FloatableDialog.prototype.popup = function(e) {
if(floatArray.indexOf(this.id_popped)!=-1) {
this.moveToFront(this.id_popped);
this.onRequestFocusOnExist();
return null;
}
else {
this.root = new Element("div",{"id":this.id_popped,"class":"float"});
this.root.setStyle({padding: "0", backgroundColor: "white", width:this.w+"px",
height:this.h+"px", position:"fixed", left:this.x+"px", top:this.y+"px" });
var top = new Element("div",{"class":"header"});
this.root.insert(top);
var topdiv = new Element("div",{"class":"header_h"});
top.insert(topdiv);
topdiv.insert(new Element("h2").insert(this.title));
var top_span = new Element("span",{"class":"right"});
topdiv.insert(top_span);
var close = new Element("img",{"alt":"close","title":"close","src":"http://static.papervitamins.com/img/util/close.png"});
top_span.insert(close);
var middle = new Element("div",{"class":"content"});
this.root.insert(middle);
middle.insert(e);
var footer = new Element("div", {"class":"footer"});
this.root.insert(footer);
var footer_knob_div = new Element("div",{"class":"knob_h"});
footer.insert(footer_knob_div);
var footer_knob = new Element("img",{"id":this.id_knob,"src":"http://static.papervitamins.com/img/util/knob.jpg"});
footer_knob_div.insert(footer_knob);
$$("body")[0].insert(this.root);
this.mayAdjustPosition();
var obj = this;
floatArray[floatArray.length] = this.root.id;
close.onclick = function() {
$(obj.id_popped).remove();
floatArray[floatArray.indexOf(obj.root.id)] = null;
floatArray = floatArray.compact();
}
this.moveToFront(this.id_popped);
$(this.id_popped).onclick = function() {  obj.moveToFront(obj.id_popped); };
$(topdiv).ondblclick = function() { return obj.onMaximize(e); };
new Draggable(this.id_popped,{ handle:top, revert:false, scroll: window,
onStart: function() { obj.moveToFront(obj.id_popped); },
onEnd: function() {obj.mayAdjustPosition(); obj.moveToFront(obj.id_popped); },
starteffect: function() {},
endeffect: function() {}
});
new Draggable(this.id_knob,{
revert:true,
onStart: function(draggable,evt) {
this.x_start = Event.pointerX(evt);
this.y_start = Event.pointerY(evt);
this.dim_middle_start = $(obj.id_popped).select("div[class='content']")[0].getDimensions();
this.dim_top_start = $(obj.id_popped).select("div[class='header']")[0].getDimensions();
this.dim_footer_start = $(obj.id_popped).select("div[class='footer']")[0].getDimensions();
this.opaque = false;
this.vpDimension = document.viewport.getDimensions();
obj.moveToFront(obj.id_popped);
},
onDrag: function(draggable, evt) {
this.adjustSize(evt);
obj.onResize(evt);
},
onEnd: function(draggable, evt) {
setTimeout(function() {
obj.onResize(evt);
new Effect.Opacity(obj.id_popped,{to:1.0,duration:0.2});
obj.moveToFront(obj.id_popped);
},100);
this.adjustSize(evt);
},
adjustSize: function(evt) {
var x_diff = this.x_start-Event.pointerX(evt), y_diff = this.y_start-Event.pointerY(evt);
var w_new = (this.dim_middle_start.width-x_diff);
w_new = w_new<400 ?  400 : w_new;
w_new = w_new + "px";
var h_new = (this.dim_middle_start.height-y_diff);
h_new = h_new < 400 ? 400 : h_new;
h_new = h_new > this.vpDimension.height-64 ? this.vpDimension.height-64 : h_new;
$(obj.id_popped).select("div[class='content']")[0].setStyle({"width":w_new, "height":h_new + "px" });
$(obj.id_popped).select("div[class='header']")[0].setStyle({ "width": w_new });
$(obj.id_popped).select("div[class='footer']")[0].setStyle({ "width": w_new });
$(obj.id_popped).setStyle({
"width":w_new,
"height":(this.dim_middle_start.height+this.dim_top_start.height+this.dim_footer_start.height-y_diff) + "px"
});
}
});
}
return this.root;
}
FloatableDialog.prototype.onMaximize = function(e) {
if(this.options.get("onMaximize")!=null) this.options.get("onMaximize")(e);
}
FloatableDialog.prototype.onMinimize = function(e) {
if(this.options.get("onMinimize")!=null) this.options.get("onMinimize")(e);
}
FloatableDialog.prototype.onResize = function(evt) {
if(this.options.get("onResize")!=null) this.options.get("onResize")(evt);
}
FloatableDialog.prototype.onRequestFocusOnExist = function() {
if(this.options.get("onRequestFocusOnExist")!=null) this.options.get("onRequestFocusOnExist")(this.id_popped);
}
FloatableDialog.prototype.mayAdjustPosition = function() {
var dragPadding = 32;
var myoffset = this.root.cumulativeOffset();
var mydim = this.root.getDimensions();
var myvpdim = document.viewport.getDimensions();
if(myoffset.left+mydim.width < dragPadding) this.root.setStyle({"left": (-mydim.width + dragPadding)+"px"});
if(myoffset.left > (myvpdim.width-2*dragPadding)) this.root.setStyle({"left": (myvpdim.width-2*dragPadding) +"px"});
if(myoffset.top+dragPadding < 30) this.root.setStyle({"top": 0 +"px"});
if(myoffset.top > (myvpdim.height-2*dragPadding)) this.root.setStyle({"top": (myvpdim.height-2*dragPadding) +"px"});
}
FloatableDialog.prototype.moveToFront = function(id_popped) {
var pos = floatArray.indexOf(id_popped);
var temp = floatArray[pos];
floatArray[pos] = null;
floatArray[floatArray.length] = temp;
floatArray = floatArray.compact();
for(var i=0;i<floatArray.length;i++) {
$(floatArray[i]).setStyle({zIndex : i+500});
}
}

function BookPreview() {}
BookPreview.getGBSPreview = function(evt,e) {
var dim = document.viewport.getDimensions();
var vp_scrolloffset = document.viewport.getScrollOffsets();
var w = dim.width-64-64-32, h = dim.height-64-64-32;
w = w > 920 ? 920 : w;
h = h > 720 ? 720 : h;
var x = (dim.width - w)/2, y = (dim.height -h)/2;
var id_popped = "pop-"+e.readAttribute("id");
var mayresize = false;
var floatabledialog = new FloatableDialog(e.readAttribute("id"), id_popped, x,y,w,h,{
onMaximize : function(e) { },
onResize : function(evt) {
if(evt.type == "mousemove"){ if((mayresize=!mayresize))viewer.resize(); }
else { viewer.resize(); } },
onRequestFocusOnExist : function(id_element) {
new Effect.Move( $(id_element), { "x": x, "y": y, mode: 'absolute', duration:0.4 });
}
});
var element = new Element("div").setStyle({"width":"100%", "height":"100%",backgroundColor:"white"});
this.root = floatabledialog.popup(element);
if(this.root!=null) {
$$("body")[0].insert(this.root);
var obj = this;
var viewer = new google.books.DefaultViewer(element);
viewer.load(e.readAttribute("id"), function() {
element.setStyle({fontSize:"16px",fontWeight:"bold",textAlign:"center", padding:"32px 0 0 0"});
element.insert("Sorry we could not find this Book Preview.");
});
}
}

function ImageCheck(elementId, token, check, updateCoverImage) {
this.token = token;
this.elementId = elementId;
this.swapped = false;
this.updateCoverImage = updateCoverImage;
var topImg = $j("#item-main-image img")[0];
if(check) this.check();
else if(topImg.src==(this.loader_src)) topImg.src = this.none_src;
}
ImageCheck.prototype =  {
loader_src : "http://static.papervitamins.com/img/util/loader_arrow.gif",
none_src : "http://static.papervitamins.com/img/book/n/m",
check : function() {
var obj = this;
var checkArrayAic = new Array();
var found = false;
$("aic").select("img").each(function(img){
var b = obj.mayUpdateImage(img);
if(b) found = true;
checkArrayAic[checkArrayAic.length]= "'"+img.readAttribute("id").substring(3)+"':'"+ (img.height>20&&img.width>20) + "'";
});
this.maySubmit("ai",checkArrayAic);
var obj = this;
var checkArrayOL = new Array();
$("olic").select("img").each(function (img) {
checkArrayOL[checkArrayOL.length]="'"+img.readAttribute("id")+"':{"  + "'width':'" + img.width + "'"
+ ",'height':'" + img.height + "'" + "}";
var b = obj.mayUpdateImage(img);
if(b) found = true;
});
obj.maySubmit("ol", checkArrayOL);
if(!found && this.updateCoverImage) $("item-main-image").select("img")[0].writeAttribute("src","http://static.papervitamins.com/img/book/n/m");
},
mayUpdateImage : function(img) {
if(img.width>50&&img.height>50 && this.updateCoverImage) {
var topImg = $("item-main-image").select("img")[0];
if(topImg.readAttribute("src").endsWith("/util/loader_arrow.gif")) {
this.swapImage(topImg,img)
return true;
}
}
return false;
},
swapImage : function(topImg, newImg) {
if(!this.swapped) {
var max = newImg.width>newImg.height ? newImg.width : newImg.height;
var w,h;
if(max>160) {
var ratio = 160.0/max;
w = ratio*newImg.width + "px";
h = ratio*newImg.height + "px";
}
else {
w = newImg.width + "px";
h = newImg.height + "px";
}
topImg.setStyle({"width":topImg.width+"px","height":topImg.height+"px"});
setTimeout(function() {
topImg.writeAttribute("src","http://static.papervitamins.com/img/util/1x1_white.gif");
new Effect.Morph(topImg, { style: {"width":w,"height":h}, duration: 0.4 });
var offset = topImg.cumulativeOffset();
newImg.setStyle({"position":"relative","left":offset.left+"px","top":offset.top+"px"});
setTimeout(function() {
topImg.writeAttribute("src",newImg.readAttribute("src"));
}, 500);
},100);
this.swapped = true;
}
},
maySubmit : function(type, array) {
if(array.length > 0) {
var obj = this;
var hash = new Hash();
hash.set('edition-igc-token', obj.token);
hash.set('edition-igc-id', obj.elementId);
hash.set('edition-igc-type', type);
var entries = "";
for(var i=0;i<array.length;i++) entries += ((i==0?"{":",")+array[i]+(i==array.length-1?"}":""));
hash.set("edition-igc-bi",entries);
new Ajax.Request("/action/check-eci",{ method :'post', parameters : hash.toObject()});
}
}
}

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);

function QuickLink(){}

