//Copyright 2003-2006 A9.com or its affiliates
var a9search=new Object;
a9search.defText="Give it a try, go ahead kick our tires.";
a9search.defText2="Go ahead, test drive the A9 Product Search.";
a9search.blur=function(elemName){
if(!elemName)
elemName="q";
var t=document.getElementById(elemName);
var inputDefText=t.defText;
if(!t.defText&&t.getAttribute("defText"))
inputDefText=t.getAttribute("defText");
if(t.value==""||t.value==a9search.defText||
(t.value==inputDefText)){
t.style.color="#aaa";
if( inputDefText )
t.value=inputDefText;
else
t.value=a9search.defText;
}
if(t.value==""||t.value==a9search.defText2){
t.style.color="#aaa";
t.value=a9search.defText2;
}
}
a9search.focus=function(elemName){
if(!elemName)
elemName="q";
var t=document.getElementById(elemName);
var inputDefText=t.defText;
if(!t.defText&&t.getAttribute("defText"))
inputDefText=t.getAttribute("defText");
a9search.noInitBlur=true;
if(t.value==a9search.defText)
t.value="";
if(t.value==a9search.defText2)
t.value="";
if(t.value==inputDefText)
t.value="";
t.style.color="black";
}
function getSearchUrl(base,val){
val=a9Trim(val);
if(val=="robots.txt"||val=="favicon.ico"||val=="siteinfo.xml"){
val='"'+val+'"';
}
if( /.*field-keywords=$/.test(base) )
return base+a9Encode(val);
else
return base.replace(/(?:q=|([?]|$))/,a9Encode(val)+"$1");
}
function checkSearchAction(formName,selectName,booksOnly){
if(!formName)
formName="sf";
if(!selectName)
selectName="searchSelect";
var form=document.getElementById(formName);
var searchSelect=document.getElementById(selectName);
if( searchSelect&&!searchSelect.checked ){
form.action=a9productSearchUrl;
}
else
form.action=a9searchUrl.replace(/http:\/\/[^\/]+\//,"http://"+document.location.host+"/");
if( booksOnly )
form.action=a9bookSearchUrl;
}
function submitProductSearch(val){
if(val==null){
val="";
}
var u=getSearchUrl(a9productSearchUrl,val);
u=fixUrl(u);
location.href=u;
return false;
}
function submitSearch(elemName,formName,selectName,booksOnly){
if(!elemName)
elemName="q";
if(!formName)
formName="sf";
var form=document.getElementById(formName);
var q=document.getElementById(elemName);
var val=q.value;
var defValue=q.defValue;
if(!q.defValue&&q.getAttribute("defValue"))
defValue=q.getAttribute("defValue");
if(!defValue )
defValue=a9search.defText;
var defText=q.defText;
if(!q.defText&&q.getAttribute("defText"))
defText=q.getAttribute("defText");
checkSearchAction(formName,selectName,booksOnly);
if(val==null){
val="";
}
else if((val==defText)||(val=="")){
val=defValue;
}
var u=getSearchUrl(form.action,val);
u=fixUrl(u);
location.href=u;
return false;
}
function fixUrl(u){return u;}
function ferr(s){
}
function a9SetAttribute(obj,attr,value){
try{
if(a9IsSafari){
obj[attr]=""+value;
}else{
obj.setAttribute(attr,value);
}
}catch (e){}
}
function a9GetAttribute(obj,attr){
try{
if(a9IsSafari){
return obj[attr];
}else{
return obj.getAttribute?obj.getAttribute(attr):null;
}
}catch (e){
return null;
}
}
function a9Encode(s){
if(typeof(encodeURIComponent)!="undefined"){
return encodeURIComponent(s);
}
return escape(s);
}
function a9Decode(s){
if(typeof(decodeURIComponent)!="undefined"){
return decodeURIComponent(s);
}
return unescape(s);
}
function a9PopupWin(url,name,options){
var win=window.open(url,name,options);
win.opener=this;
win.focus();
}
function a9GetElText(el){
var tt=a9GetAttribute(el, "textTitle");
if(tt){
if(tt==1){
if(el.title){
return el.title;
}
}else{
return tt;
}
}
if(el.innerText){
return el.innerText;
}
function getElTextInt(el){
var text="";
var children=el.childNodes;
for(var i=0;i<children.length;i++){
if(children[i].nodeType==3){
text+=children[i].nodeValue;
}else{
text+=getElTextInt(children[i]);
}
}
return text;
}
return getElTextInt(el).replace(/^\s+/,"").replace(/\s+$/,"");
}
function a9Image(name,ext){
return A9IMAGES+"/"+name+"."+(ext?ext:"gif");
}
function a9Png(name){return a9Image(name,"png");}
function getOffsetLeft(el){
var l=0;
while(el){
l+=el.offsetLeft-el.scrollLeft;
el=el.offsetParent;
}
return l;
}
function getOffsetTop(el){
var t=0;
while(el){
t+=el.offsetTop-el.scrollTop;
el=el.offsetParent;
}
return t;
}
function a9Trim(s){
return s.replace(/^\s+/,"").replace(/\s+$/,"")
}
function cloneNoId(n,iehack){
function removeIds(n){
if(n.id) n.id="";
for(var i=0;i<n.childNodes.length;i++) removeIds(n.childNodes[i]);
}
var c;
if(a9IsIE&&iehack&&n.getElementsByTagName("style").length){
c=document.createElement(n.tagName);
c.innerHTML=n.innerHTML;
c.className=n.className;
}else{
c=n.cloneNode(true);
}
removeIds(c);
return c;
}
function getStyle(el,attr){
if(window.getComputedStyle){
return window.getComputedStyle(el, "")[attr];
}
if(document.defaultView&&document.defaultView.getComputedStyle){
return document.defaultView.getComputedStyle(el, "")[attr];
}
if(el.currentStyle){
return el.currentStyle[attr];
}
return null;
}
function getPxStyle(el,attr){
var sz=getStyle(el,attr);
if(sz){
return parseInt(sz.replace("px", ""));
}
return 0;
}
function Anim(){
this.a=new Array;
this.time=300;
this.steps=8;
}
Anim.MOVE=0;
Anim.CLOSE=1;
Anim.OPEN=2;
Anim.prototype.addNode=function(n,m,s){
if(a9IsIE&&a9VersionMajor==5&&a9VersionMinor<5){
return;
}
if(!n) return;
var c=cloneNoId(n,true);
var r=m==Anim.OPEN?s:n;
var ai={n:n,c:c,m:m,s:s,sl:getOffsetLeft(r),st:getOffsetTop(r),sw:r.offsetWidth,sh:r.offsetHeight}
c.style.position="absolute";
c.style.overflow="hidden";
c.style.top=ai.st+"px";
c.style.left=ai.sl+"px";
c.style.width=ai.sw+"px";
c.style.height=ai.sh+"px";
c.style.zIndex=1000+this.a.length;
document.body.appendChild(c);
n.style.visibility="hidden";
c.style.visibility="";
if(a9IsMac&&a9IsMoz){
n.className+=" macMozHide";
}
this.a.push(ai);
}
Anim.prototype.go=function(){
var th=this;
function step(){
if(++th.step==th.steps){
th.clean();
if(th.doneCB) th.doneCB(th.doneArg);
}else{
for(var i=0;i<th.a.length;i++){
var ai=th.a[i];
if(ai.jump) continue;
var steps=th.steps;
if(ai.m==Anim.CLOSE)--steps;
var c=ai.c;
c.style.top=(ai.st+(ai.et-ai.st) * th.step / steps)+"px";
c.style.left=(ai.sl+(ai.el-ai.sl) * th.step / steps)+"px";
if(ai.sw!=ai.ew||ai.sh!=ai.eh){
c.style.clip="rect(0 "+(ai.sw+(ai.ew-ai.sw) * th.step / steps)+"px "+(ai.sh+(ai.eh-ai.sh) * th.step / steps)+"px 0)";
}
}
setTimeout(step,th.time/th.steps);
}
}
if(a9IsIE&&a9VersionMajor==5&&a9VersionMinor<5){
return;
}
for(var i=0;i<this.a.length;i++){
var ai=this.a[i];
if(!ai.jump) ai.c.className=ai.c.className+" animate"
ai.c.style.display="";
var n=ai.m==Anim.CLOSE?ai.s:ai.n;
if(!n||n.style.display=="none"||n.offsetParent==null){
ai.el=ai.sl;
ai.et=ai.et;
ai.ew=ai.eh=0;
}else{
ai.el=getOffsetLeft(n);
ai.et=getOffsetTop(n);
ai.ew=n.offsetWidth;
ai.eh=n.offsetHeight;
}
ai.c.style.width=(ai.sw>ai.ew ? ai.sw : ai.ew)+"px";
ai.c.style.height=(ai.sh>ai.eh ? ai.sh : ai.eh)+"px";
}
this.step=0;
step();
}
Anim.prototype.clean=function(){
for(var i=0;i<this.a.length;i++){
var ai=this.a[i];
ai.n.style.visibility="";
if(a9IsMac&&a9IsMoz){
ai.n.className=ai.n.className.replace(/ *macMozHide/g, "");
}
document.body.removeChild(ai.c);
}
this.a.length=0;
}
Anim.prototype.setZ=function(n,z){
var ai=this.findAi(n);
if(ai&&ai.c){
ai.c.style.zIndex=z;
}
}
Anim.prototype.setJump=function(n){
this.findAi(n).jump=true;
}
Anim.prototype.findAi=function(n){
for(var i=0;i<this.a.length;i++){
if(this.a[i].n==n){
this.lastN=n;
this.lastAi=this.a[i];
return this.lastAi;
}
}
return null;
}
Anim.prototype.setDoneCB=function(f,arg){
this.doneCB=f;
this.doneArg=arg;
}
/* cookies.js
Based on Example File From "JavaScript and DHTML Cookbook"
Published by O'Reilly&Associates
Copyright 2003 Danny Goodman
*/
function cookieGetExpDate(days,hours,minutes){
var expDate=new Date();
if(typeof days=="number"&&typeof hours=="number"&&typeof hours=="number"){
expDate.setDate(expDate.getDate()+parseInt(days));
expDate.setHours(expDate.getHours()+parseInt(hours));
expDate.setMinutes(expDate.getMinutes()+parseInt(minutes));
return expDate.toGMTString();
}
}
function _getCookieVal(offset){
var endstr=document.cookie.indexOf (";", offset);
if(endstr==-1){
endstr=document.cookie.length;
}
return a9Decode(document.cookie.substring(offset,endstr));
}
function getCookie(name){
var arg=name+"=";
var alen=arg.length;
var clen=document.cookie.length;
var i=0;
while(i<clen){
var j=i+alen;
if(document.cookie.substring(i,j)==arg){
return _getCookieVal(j);
}
i=document.cookie.indexOf(" ", i)+1;
if(i==0) break;
}
return null;
}
function cookieEncode(v){
return a9Encode(v).replace(/%7B/g,"{").replace(/%7D/g,"}").
replace(/%5B/g,"[").replace(/%5D/g,"]").
replace(/%22/g, "\"").replace(/%3A/g,":");
}
function setCookie(name,value,expires,path,domain,secure){
document.cookie=name+"="+cookieEncode (value)+
((expires) ? ";expires="+expires : "")+
((path) ? ";path="+path : "")+
((domain) ? ";domain="+domain : "")+
((secure) ? ";secure" : "");
}
function deleteCookie(name,path,domain){
if(getCookie(name)){
document.cookie=name+"="+
((path) ? ";path="+path : "")+
((domain) ? ";domain="+domain : "")+
";expires=Thu, 01-Jan-70 00:00:01 GMT";
}
}
var COL_COOKIE_EXPIRE_DAYS=365;
var COL_COOKIE="col";
function getColCookie(){
return getJSONCookie(COL_COOKIE, COL_COOKIE_EXPIRE_DAYS, 0, 0, "/", ".a9.com");
}
function JSONObject(string){
if(string){
eval ("this.o="+string);
if(!this.o||typeof this.o!="object"){
this.o=new Object;
}
}else{
this.o=new Object;
}
}
JSONObject.prototype.put=function(key,value){
this.o[key]=value;
}
JSONObject.prototype.opt=function(key){
return this.o[key];
}
JSONObject.prototype.remove=function(key){
delete this.o[key];
}
JSONObject.prototype.toString=function(){
function stringify(arg){
function isUndefined(a){
return typeof a=='undefined';
}
function quote(s){
return '"'+s.replace(/(["\\])/g, '\\$1')+'"';
}
var i,o,v;
switch (typeof arg){
case 'object':
if(arg){
if(arg.constructor==Array){
o='[';
for(i=0;i<arg.length;++i){
v=stringify(arg[i]);
if(v!='function'&&!isUndefined(v)){
o+=(o!='[' ? ',' : '')+v;
}else{
o+=',';
}
}
return o+']';
}else if(typeof arg.toString!='undefined'){
o='{';
for(i in arg){
v=stringify(arg[i]);
if(v!='function'&&!isUndefined(v)){
o+=(o!='{' ? ',' : '')+
quote(i)+':'+v;
}
}
return o+'}';
}else{
return;
}
}
return 'null';
case 'unknown':
case 'undefined':
return;
case 'string':
return quote(arg);
case 'function':
return 'function';
default:
return String(arg);
}
}
return stringify(this.o);
}
function getJSONCookie(name,expDays,expHours,expMinutes,path,domain,secure){
var nm="_CK"+name;
if(!top[nm]){
top[nm]=new JSONCookie(name,expDays,expHours,expMinutes,path,domain,secure);
}
return top[nm];
}
function JSONCookie(name,expDays,expHours,expMinutes,path,domain,secure){
this.name=name;
this.expDays=expDays;
this.expHours=expHours;
this.expMinutes=expMinutes;
this.path=path;
this.domain=domain;
this.secure=secure;
this.jo=new JSONObject(getCookie(name));
}
JSONCookie.prototype.getObject=function(){
return this.jo;
}
JSONCookie.prototype.save=function(){
var s=this.jo.toString();
var exp=null;
if(this.expDays||this.expHours||this.expMinutes){
exp=cookieGetExpDate(this.expDays,this.expHours,this.expMinutes);
}
setCookie(this.name,s,exp,this.path,this.domain,this.secure);
}
function GroupInfo(){
this.cookie=getColCookie();
this.obj=this.cookie.getObject();
}
GroupInfo.prototype.save=function(){
this.cookie.save();
}
GroupInfo.prototype.getGroup=function(gn){
var g=this.obj.opt("g");
if(g){
for(var i=0;i<g.length;i++){
if(g[i].n==gn){
return g[i];
}
}
}
return null;
}
GroupInfo.prototype.moveGrp=function(src,tgt,b4){
var g=this.obj.opt("g");
var sg=this.getGroup(src);
var tg=this.getGroup(tgt);
if(sg&&tg){
var ng=new Array;
for(var i=0;i<g.length;i++){
if(g[i]==sg) continue;
if(g[i]==tg){
if(b4){
ng.push(sg);
ng.push(tg);
}else{
ng.push(tg);
ng.push(sg);
}
}else{
ng.push(g[i]);
}
}
this.obj.put("g", ng);
}
}
GroupInfo.prototype.setHeight=function(h){
this.obj.put("h", h);
}//Copyright 2003-2006 A9.com or its affiliates
GroupInfo.prototype.addGroup=function(id,l){
var g=this.obj.opt("g");
if(g){
g.push({n:id,L:l,t:[]});
}
}
GroupInfo.prototype.addGroupJSON=function(json){
var g=this.obj.opt("g");
if(g){
g.push(json);
}
}
GroupInfo.prototype.delGroup=function(id){
var g=this.obj.opt("g");
if(g){
for(var i=0;i<g.length;i++){
if(g[i].n==id){
g.splice(i,1);
break;
}
}
}
}// This file creates an "continuous scroller" (also known as an infinite
Cscroll.LOAD_DELAY=100;
Cscroll.CHECK_FREQ=200;
Cscroll.PREFETCH=2;
Cscroll.BLOCK_SIZE=1;
Cscroll.SHORT_SPACER=true;
Cscroll.SHORT_CONTENTS="<div class='short-block-loading'>"+"Loading more results..."+"</div>";
Cscroll.CONTENT=1;
Cscroll.SPACER_FIRST=2;
Cscroll.SPACER_LATER=3;
Cscroll.BLOCKED=4;
Cscroll.ADDED=5;
Cscroll.ERROR=6;
Cscroll.NORMAL=1;
Cscroll.IMAGE=2;
Cscroll.FLOAT=3;
Cscroll.scrollInterval=null;
Cscroll.cscrolls=new Array;
function Cscroll(parent,tileName,maxPages,type,url){
this.maxPages=maxPages;
this.type=type;
this.url=url;
switch (type){
case Cscroll.IMAGE:
case Cscroll.FLOAT:
this.cClass="span";
break;
default:
this.cClass="div";
break;
}
var curPage=0;
var nPages=0;
this.tileName=tileName;
this.parent=document.getElementById(parent);
if(!this.parent){
ferr("no parent for "+parent);
return;
}
this.index=Cscroll.cscrolls.length;
this.parent.scrollIndex=this.index;
this.endDiv=null;
Cscroll.cscrolls[Cscroll.cscrolls.length]=this;
var divs=this.parent.getElementsByTagName(this.cClass);
var theDiv;
for(var i=0;i<divs.length;i++){
if(divs[i].className=="cscrollInfo"){
theDiv=divs[i];
curPage=parseInt(theDiv.getAttribute("a9x:curPage"));
nPages=parseInt(theDiv.getAttribute("a9x:nPages"));
var pageArgs=a9GetAttribute(theDiv, "a9x:args");
if(pageArgs){
this.pageArgs=pageArgs;
}
var count=theDiv.getAttribute("a9x:count");
if(count){
cbCall("cscrollCount",{t:tileName, c:count});
}
break;
}
}
for(var i=0;i<divs.length;i++){
if(divs[i].className=="a9info"){
if(divs[i].getAttribute("a9x:type")=="end"){
this.addEnd(divs[i]);
}
}
}
if(nPages>this.maxPages){
nPages=this.maxPages;
}
this.nPages=nPages;
this.blockEnd=Math.floor(curPage+(Cscroll.BLOCK_SIZE-1)/Cscroll.BLOCK_SIZE)*Cscroll.BLOCK_SIZE;
if(this.blockEnd>nPages){
this.blockEnd=nPages;
}
this.a=new Array;
for(var i=0;i<=this.blockEnd;i++){
this.a[i]={"type":Cscroll.SPACER_LATER}
}
for(var i=this.blockEnd+1;i<=nPages;i++){
this.a[i]={"type":Cscroll.BLOCKED}
}
if(curPage>0){
this.a[curPage]={"div":theDiv, "type":Cscroll.CONTENT};
if(curPage>1){
var spacer=document.createElement("div");
if(Cscroll.SHORT_SPACER){
spacer.innerHTML=Cscroll.SHORT_CONTENTS;
}else{
spacer.className="block-loading";
spacer.style.height=this.getHeight(theDiv) * (curPage-1)+"px";
}
this.parent.insertBefore(spacer,theDiv);
this.a[1]={"div":spacer, "type":Cscroll.SPACER_FIRST, "size": curPage-1};
}
if(curPage<this.blockEnd){
var spacer=document.createElement("div");
if(Cscroll.SHORT_SPACER){
spacer.innerHTML=Cscroll.SHORT_CONTENTS;
}else{
spacer.className="block-loading";
spacer.style.height=this.getHeight(theDiv) * (this.blockEnd-curPage)+"px";
}
this.parent.insertBefore(spacer,null);
this.a[curPage+1]={"div":spacer, "type":Cscroll.SPACER_FIRST, "size": this.blockEnd-curPage};
}
if(this.parent.addEventListener){
this.parent.addEventListener("scroll", checkScroll, true);
}else{
this.parent.onscroll=checkScroll;
}
if(!Cscroll.scrollInterval&&!a9IsIE){
Cscroll.scrollInterval=setInterval("checkScrolls()", Cscroll.CHECK_FREQ);
}
}
}
Cscroll.prototype.checkScroll=function(){
var parent=this.parent;
if(parent.offsetHeight==this.offsetHeight&&
parent.offsetWidth==this.offsetWidth&&
parent.scrollTop==this.scrollTop){
return;
}
this.offsetHeight=parent.offsetHeight;
this.offsetWidth=parent.offsetWidth;
this.scrollTop=parent.scrollTop;
cbCall("saveScrolls");
var st=parent.scrollTop;
var oh=parent.offsetHeight;
var loadPage=0;
for(var i=1;i<=this.blockEnd;i++){
if(this.a[i].type==Cscroll.SPACER_FIRST){
var sp=this.a[i].div;
if(sp.offsetTop-(Cscroll.PREFETCH*oh)<st+oh&&sp.offsetTop+sp.offsetHeight>st){
var pixelOffset=st-sp.offsetTop;
if(pixelOffset<0){
pixelOffset=0;
}
loadPage=Math.floor(this.a[i].size * pixelOffset / sp.offsetHeight)+i;
break;
}
}
}
if(loadPage==0&&this.blockEnd<this.nPages&&
(this.a[this.blockEnd].type==Cscroll.CONTENT||this.a[this.blockEnd].type==Cscroll.ADDED)&&
this.a[this.blockEnd+1].type==Cscroll.BLOCKED&&
st+oh>=parent.scrollHeight-(Cscroll.PREFETCH*oh)){
var firstPage=this.blockEnd+1;
this.blockEnd+=Cscroll.BLOCK_SIZE;
if(this.blockEnd>this.nPages){
this.blockEnd=this.nPages;
}
var spacer=document.createElement("div");
if(Cscroll.SHORT_SPACER){
spacer.innerHTML=Cscroll.SHORT_CONTENTS;
}else{
spacer.className="block-loading";
}
parent.insertBefore(spacer,null);
this.a[firstPage]={"div":spacer, "type":Cscroll.SPACER_FIRST, "size": this.blockEnd-firstPage+1};
for(var i=firstPage+1;i<=this.blockEnd;i++){
this.a[i]={"type":Cscroll.SPACER_LATER};
}
this.adjustSizes();
return;
}
if(loadPage!=this.loadPage){
if(this.loadTimeout){
clearTimeout(this.loadTimeout);
this.loadTimeout=null;
}
this.loadPage=loadPage;
if(loadPage){
this.loadTimeout=setTimeout("doLoad("+this.index+")", Cscroll.LOAD_DELAY);
}
}
cbCall("cscrollScroll"+this.tileName, parent);
}
function checkScroll(evt){
evt=evt ? evt : event;
var target=evt.currentTarget?evt.currentTarget:evt.srcElement;
Cscroll.cscrolls[target.scrollIndex].checkScroll();
}
function checkScrolls(){
for(var i=0;i<Cscroll.cscrolls.length;i++){
Cscroll.cscrolls[i].checkScroll();
}
}
Cscroll.prototype.doLoad=function(){
this.loadTimeout=null;
var loadPage=this.loadPage;
this.checkScroll();
if(loadPage==this.loadPage){
var parent=this.parent;
var st=parent.scrollTop;
var oh=parent.offsetHeight;
for(var i=1;i<=this.blockEnd;i++){
if(this.a[i].type==Cscroll.SPACER_FIRST){
var sp=this.a[i].div;
if(sp.offsetTop-(Cscroll.PREFETCH*oh)<st+oh&&sp.offsetTop+sp.offsetHeight>st){
var pixelOffset=st-sp.offsetTop;
var lPixelOffset=pixelOffset+parent.offsetHeight;
if(pixelOffset<0){
pixelOffset=0;
}
if(lPixelOffset<0){
lPixelOffset=0;
}
if(lPixelOffset>sp.offsetHeight){
lPixelOffset=sp.offsetHeight;
}
var firstPage=Math.floor(this.a[i].size * pixelOffset / sp.offsetHeight)+i;
var lastPage=Math.floor(this.a[i].size * lPixelOffset / sp.offsetHeight)+i;
if(lastPage>=i+this.a[i].size){
lastPage=i+this.a[i].size-1;
}
for(var j=firstPage;j<=lastPage;j++){
if(!this.a[j].pending){
var url=this.url+"&p="+j;
if(this.pageArgs){
url+="&"+this.pageArgs;
}
if(startXmlHttpRequest(url, pageRep,{"scroller":this.index,"page":j}, null, "_t")){
this.a[j].pending=true;
}else{
ferr("bad HttpRequest");
}
}
}
}
}
}
this.loadPage=null;
}
}
function doLoad(i){
Cscroll.cscrolls[i].doLoad();
}
Cscroll.prototype.pageRep=function(txt,page,status){
var isError=false;
var parent=this.parent;
if(page>=this.a.length){
return;
}
var ent=this.a[page];
if(!(ent.type==Cscroll.SPACER_FIRST||ent.type==Cscroll.SPACER_LATER||ent.type==Cscroll.ERROR)){
ferr("page "+page+" type "+ent.type);
return;
}
if(!ent.pending){
ferr("page "+page+" not pending");
return;
}
ent.pending=false;
var div=document.createElement(this.cClass);
div.innerHTML=txt;
var theDiv;
var curPage=0;
var nPages=0;
if(status!=200&&status!="s"){
theDiv=div=document.createElement("div");
div.innerHTML="There was an error loading this page of results: "+
"There was an error contacting a9.com."+
"<div>"+
"<button onclick='cscrollRetry("+this.index+","+page+")'>"+"Try Again"+"</button>"+
"</div>";
curPage=page;
nPages=this.nPages;
isError=true;
}else{
var infos=div.getElementsByTagName("div");
for(var i=0;i<infos.length;i++){
if(infos[i].className=="a9info"){
switch (infos[i].getAttribute("a9x:type")){
case "error":
theDiv=div=document.createElement("div");
div.innerHTML="There was an error loading this page of results: "+
infos[i].innerHTML+
"<div>"+
"<button onclick='cscrollRetry("+this.index+","+page+")'>"+"Try Again"+"</button>"+
"</div>";
curPage=page;
nPages=this.nPages;
isError=true;
break;
case "end":
this.addEnd(infos[i]);
break;
}
}
}
}
if(!isError){
var divs=div.getElementsByTagName(this.cClass);
for(var i=0;i<divs.length;i++){
if(divs[i].className=="cscrollInfo"){
theDiv=divs[i];
cbCall("cscrollLoad"+this.tileName, theDiv);
curPage=parseInt(a9GetAttribute(theDiv, "a9x:curPage"));
nPages=parseInt(a9GetAttribute(theDiv, "a9x:nPages"));
var count=theDiv.getAttribute("a9x:count");
if(count){
cbCall("cscrollCount",{t:this.tileName, c:count});
}
break;
}
}
}
if(curPage!=page){
ferr("page "+page+" returned page "+curPage);
return;
}
if(nPages==0){
ferr("page "+page+" returned nPages "+nPages);
return;
}
if(nPages<this.nPages){
for(var i=nPages+2;i<=this.nPages;i++){
if(this.a[i].type!=Cscroll.SPACER_LATER&&this.a[i].type!=Cscroll.BLOCKED){
ferr("nPages shrunk to "+nPages+" but "+i+" is type "+this.a[i].type);
return;
}
}
if(this.blockEnd>nPages){
this.blockEnd=nPages;
}
var firstDel=this.a[nPages+1];
switch (firstDel.type){
case Cscroll.SPACER_FIRST:
parent.removeChild(firstDel.div);
break;
case Cscroll.SPACER_LATER:
for(var i=nPages;i>0;i--){
if(this.a[i].type==Cscroll.SPACER_LATER){
continue;
}else if(this.a[i].type==Cscroll.SPACER_FIRST){
var first=this.a[i];
var newSize=this.blockEnd-i+1;
var oldSize=first.size;
first.size=newSize;
first.div.style.height=Math.floor(first.div.offsetHeight * newSize / oldSize)+"px";
break;
}else{
ferr("SPACER_LATER at "+(nPages+1)+" preceded by "+this.a[i].type+" at "+i+" instead of SPACER_FIRST");
return;
}
}
break;
case Cscroll.BLOCKED:
break;
default:
ferr("nPages shrunk to "+nPages+" but "+(nPages+1)+" is type "+this.a[nPages+1].type);
return;
}
this.a.length=nPages+1;
this.nPages=nPages;
if(nPages<curPage){
this.checkScroll();
return;
}
}
if(ent.type==Cscroll.SPACER_FIRST){
if(this.type==Cscroll.FLOAT&&page>1&&
(this.a[page-1].type==Cscroll.CONTENT||this.a[page-1].type==Cscroll.ADDED)&&!isError){
var p=page-1;
while(this.a[p].type==Cscroll.ADDED){
p--;
}
var aDiv=this.a[p].div;
while(theDiv.firstChild){
aDiv.appendChild(theDiv.firstChild);
}
ent.type=Cscroll.ADDED;
}else{
parent.insertBefore(div,ent.div);
}
if(ent.size==1){
parent.removeChild(ent.div);
}else{
var nextEnt=this.a[page+1];
if(nextEnt.type!=Cscroll.SPACER_LATER){
ferr("page "+(page+1)+"after insertedPage type "+nextEnt.type+"instead of SPACER_LATER");
return;
}
nextEnt.type=Cscroll.SPACER_FIRST;
var oldSize=ent.size;
nextEnt.size=ent.size-1;
nextEnt.div=ent.div;
nextEnt.div.style.height=Math.floor(nextEnt.div.offsetHeight * nextEnt.size / oldSize)+"px";
}
}else if(ent.type==Cscroll.SPACER_LATER){
for(var i=page-1;i>0;i--){
if(this.a[i].type==Cscroll.SPACER_LATER){
continue;
}else if(this.a[i].type==Cscroll.SPACER_FIRST){
var first=this.a[i];
parent.insertBefore(div,first.div.nextSibling);
if(page-i==first.size-1){
var oldSize=first.size;
first.size--;
first.div.style.height=Math.floor(first.div.offsetHeight * first.size / oldSize)+"px";
}else{
var newSpDiv=document.createElement("div");
if(Cscroll.SHORT_SPACER){
newSpDiv.innerHTML=Cscroll.SHORT_CONTENTS;
}else{
newSpDiv.className="block-loading";
newSpDiv.style.height=Math.floor(first.div.offsetHeight * newSp.size / first.size)+"px";
}
var newSp=this.a[page+1];
newSp.div=newSpDiv;
newSp.type=Cscroll.SPACER_FIRST;
newSp.size=first.size-(page-i)-1;
parent.insertBefore(newSpDiv,div.nextSibling);
var oldSize=first.size;
first.size=page-i;
first.div.style.height=Math.floor(first.div.offsetHeight * first.size / oldSize)+"px";
}
break;
}else{
ferr("SPACER_LATER at "+(page)+" preceded by "+this.a[i].type+" at "+i+" instead of SPACER_FIRST");
return;
}
}
}else if(ent.type==Cscroll.ERROR){
parent.insertBefore(div,ent.div);
parent.removeChild(ent.div);
}else{
ferr("adding ent, type="+ent.type);
}
if(ent.type!=Cscroll.ADDED){
ent.type=isError?Cscroll.ERROR:Cscroll.CONTENT;
ent.div=div;
}
if(curPage==this.blockEnd&&curPage<this.nPages){
this.blockEnd+=Cscroll.BLOCK_SIZE;
if(this.blockEnd>nPages){
this.blockEnd=nPages;
}
var spacer=document.createElement("div");
if(Cscroll.SHORT_SPACER){
spacer.innerHTML=Cscroll.SHORT_CONTENTS;
}else{
spacer.className="block-loading";
}
parent.insertBefore(spacer,this.endDiv);
this.a[curPage+1]={"div":spacer, "type":Cscroll.SPACER_FIRST, "size": this.blockEnd-curPage};
for(var i=curPage+2;i<=this.blockEnd;i++){
this.a[i]={"type":Cscroll.SPACER_LATER};
}
}
if(!isError&&status!="s"){
addToText("cscrollSave", txt, this.tileName, "page="+page);
}
this.adjustSizes();
}
function pageRep(xml,arg,txt,status){
Cscroll.cscrolls[arg.scroller].pageRep(txt,arg.page,status);
}
Cscroll.prototype.adjustSizes=function(){
var relative=0;
var relativeOffset;
var parent=this.parent;
var st=parent.scrollTop;
var oh=parent.offsetHeight;
for(var i=1;i<=this.blockEnd;i++){
if(this.a[i].type==Cscroll.CONTENT){
var co=this.a[i].div;
if(co.offsetTop<st+oh&&co.offsetTop+this.getHeight(co)>st){
relative=co;
relativeOffset=co.offsetTop-st;
break;
}
}
}
var nFound=0;
var totalHeight=0;
for(var i=1;i<=this.blockEnd;i++){
switch (this.a[i].type){
case Cscroll.CONTENT:
if(i==this.nPages&&nFound>0){
continue;
}
var oh=this.getHeight(this.a[i].div);
if(oh==0){
continue;
}
nFound++;
totalHeight+=oh;
break;
case Cscroll.ADDED:
nFound++;
break;
}
}
if(nFound<=0){
ferr("adjustSizes: nFound="+nFound);
return;
}
var avgHeight=totalHeight / nFound;
if(!Cscroll.SHORT_SPACER){
for(i=1;i<=this.blockEnd;i++){
if(this.a[i].type==Cscroll.SPACER_FIRST){
this.a[i].div.style.height=Math.floor(this.a[i].size * avgHeight)+"px";
}
if(this.a[i].type==Cscroll.ERROR){
this.a[i].div.style.height=Math.floor(avgHeight)+"px";
}
}
}
if(relative){
parent.scrollTop=relative.offsetTop-relativeOffset;
}
if(a9IsSafari){
++parent.scrollTop;--parent.scrollTop;
}
cbCall("saveScrolls");
this.offsetHeight=-1;
this.checkScroll();
}
Cscroll.prototype.getHeight=function(el){
switch (this.type){
case Cscroll.FLOAT:
case Cscroll.IMAGE:
var children=el.childNodes;
var first,last;
for(var i=0;i<children.length;i++){
if(children[i].offsetHeight){
first=children[i];
break;
}
}
for(var i=children.length-1;i>=0;i--){
if(children[i].offsetHeight){
last=children[i];
break;
}
}
if(first&&last){
return last.offsetTop+last.offsetHeight-first.offsetTop;
}
default:
return el.offsetHeight;
}
}
Cscroll.prototype.retry=function (page){
var ent=this.a[page];
if(ent.type!=Cscroll.ERROR){
ferr("retry: type="+ent.type);
return;
}
if(!ent.pending){
ent.div.innerHTML="<div class='block-loading' style='width:100%;height:100%'></div>";
var url=this.url+"&p="+page;
if(this.pageArgs){
url+="&"+this.pageArgs;
}
if(startXmlHttpRequest(url, pageRep,{"scroller":this.index,"page":page}, null, "_t")){
ent.pending=true;
}else{
ferr("bad HttpRequest");
}
}
}
Cscroll.prototype.addEnd=function(div){
if(!this.endDiv){
this.parent.appendChild(div);
this.endDiv=div;
div.className="";
}
}
function cscrollRetry(idx,page){
Cscroll.cscrolls[idx].retry(page);
}
function cscrollRestore(){
var a=getMultiFromText("cscrollSave");
if(a&&a.length){
for(var i=0;i<a.length;i++){
var tn=a[i].tile;
for(var j=0;j<Cscroll.cscrolls.length;j++){
if(Cscroll.cscrolls[j].tileName==tn){
var p=parseInt(a[i].page);
Cscroll.cscrolls[j].a[p].pending=true;
Cscroll.cscrolls[j].pageRep(a[i].text, p, "s");
break;
}
}
}
}
}
var _cbList;
function cbAdd(name,f,data){
if(!_cbList){
_cbList=new Object;
}
var a=_cbList[name];
if(!a){
a=_cbList[name]=new Array;
}
var o=new Object;
o.f=f;
o.data=data;
a[a.length]=o;
}
function cbCall(name,arg){
if(_cbList){
var a=_cbList[name];
if(a){
for(var i=0;i<a.length;i++){
try{
a[i].f(arg,a[i].data);
}catch (e){}
}
}
}
}
function cbCheck(name){
return _cbList&&_cbList[name];
}
function startXmlHttpRequest(url,func,arg,postData,ts){
try{
var xmlhttp;
if(a9IsIE){
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}else{
xmlhttp=new XMLHttpRequest();
}
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4){
func(xmlhttp.responseXML,arg,xmlhttp.responseText,xmlhttp.status);
}
}
if(a9IsSafari&&postData&&a9VersionMajor<312){
url+="?"+postData;
postData=null;
}
if(ts){
ts+="="+(new Date).getTime();
if(postData){
postData+="&"+ts;
}else{
url+=(url.indexOf("?")<0?"?":"&")+ts;
}
}
xmlhttp.open(postData?"POST":"GET", url, true);
if(postData){
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
}
xmlhttp.send(postData);
return true;
}catch (e){}
return false;
}
var grpDlg;
function showGrpDlg(force){
if(force&&grpDlg){
try{
document.body.removeChild(grpDlg);
}catch (e){}
grpDlg=null;
}
if(grpDlg){
grpDlg.style.display="";
if(a9IsMoz&&a9IsMac){
var main=document.getElementById("main");
if(main){
main.className="nosb";
}
}
}else{
if(!startXmlHttpRequest(A9NOSEARCH+"/opensearch/addGroup.jsp", showGrpLd, null, null, "_t")){
showGrpErr();
}
}
}
function showGrpErr(){
if(confirm("There was an error contacting the server.  Try again?")){
showGrpDlg();
}
}
function showGrpLd(xml,arg,txt,status){
if(!grpDlg){
if(status!=200){
showGrpErr();
}else{
grpDlg=document.createElement("div");
grpDlg.innerHTML=txt;
grpDlg.style.visibility="hidden";
document.body.appendChild(grpDlg);
cbAdd("resize", grpSize);
grpSize();
grpDlg.style.visibility="";
if(a9IsMoz&&a9IsMac){
var main=document.getElementById("main");
if(main){
main.className="nosb";
}
}
}
}
}
function hideGrpDlg(){
if(a9IsMoz&&a9IsMac){
var main=document.getElementById("main");
if(main){
main.className="";
}
}
grpDlg.style.display="none";
}
function grpSize(){
var foot=document.getElementById("botRight");
if(!foot) foot=document.getElementById("footer");
var h=getOffsetTop(foot)+foot.offsetHeight;
var w=document.body.clientWidth;
if(!w){
w=document.body.parentNode.clientWidth;
}
var base=document.getElementById("dialogBase");
var dlg=document.getElementById("dialogAddGroup");
var shdow=document.getElementById("dialogAddGroupShadow");
base.style.height=h+"px";
base.style.width=w+"px";
var dh=h-getPxStyle(dlg, "top") * 2;
var dw=w-getPxStyle(dlg, "left") * 2;
var dc=document.getElementById("dialogContent");
dc.style.height=dh-
document.getElementById("dialogHead").offsetHeight-
document.getElementById("dialogSubHead").offsetHeight-
document.getElementById("dialogFooter").offsetHeight-
getPxStyle(dc, "paddingTop")-getPxStyle(dc, "paddingBottom")-
getPxStyle(dc.parentNode, "paddingTop")-getPxStyle(dc.parentNode, "paddingBottom")+"px";
dlg.style.height=shdow.style.height=dh+"px";
dlg.style.width=shdow.style.width=dw+"px";
}//Copyright 2003-2006 A9.com or its affiliates
var DND_DRAG_GET_DATA=1;
var DND_DRAG_START=2;
var DND_DRAG_BEFORE_DROP=3;
var DND_DRAG_AFTER_DROP=4;
var DND_DRAG_MOVING=5;
var DND_DRAG_CANCEL=6;
var DND_DROP_GET_TYPES=11;
var DND_DROP_DRAG_ENTER=12;
var DND_DROP_DRAG_MOVE=13;
var DND_DROP_DRAG_LEAVE=14;
var DND_DROP_DRAG_DROP=15;
var dndDragInfo;
var dndTargetInfo;
var dndDragClone;
var dndDragMouseOriginX,dndDragMouseOriginY;
var dndDragObjOriginX,dndDragObjOriginY;
var dndDragDeltaX,dndDragDeltaY;
var dndDragEventSave=new Object;
var DND_MIN_DRAG_DIST=4;
var dndDragUpdateTimeout;
var dndLeftMouse;
function dndInit(){
if(a9IsMoz||a9IsSafari||(a9IsIE&&a9IsWindows)){
dndLeftMouse=a9IsMoz?0:1;
if(window.addEventListener){
window.addEventListener("mousedown", dndHandleMouseDown, false);
}else{
window.onmousedown=dndHandleMouseDown;
document.onmousedown=dndHandleMouseDown;
}
}
}
function dndGetCallback(el,attr){
var f=a9GetAttribute(el,attr);
if(f){
if(typeof f=="string"){
f=eval(f);
el[attr]=f;
}
}
return f;
}
function dndGetElAtPos(x,y,require,block){
function getElInt(el,scrollX,scrollY){
if(block&&a9GetAttribute(el,block)){
return null;
}
var curX=getOffsetLeft(el)-scrollX;
var curY=getOffsetTop(el)-scrollY;
if((x>=curX&&y>=curY&&(x<curX+el.offsetWidth||!el.offsetWidth)&&(y<curY+el.offsetHeight||!el.offsetHeight))||a9GetAttribute(el, "a9x:dndPass")){
scrollX+=el.scrollLeft;
scrollY+=el.scrollTop;
for(var i=0;i<el.childNodes.length;i++){
var child=el.childNodes[i];
if(child.nodeType==1&&child.style&&child.style.display!="none"&&child.style.visibility!="hidden"){
var childEl=getElInt(child,scrollX,scrollY);
if(childEl){
return childEl;
}
}
}
if(a9GetAttribute(el,require)&&el.offsetWidth&&el.offsetHeight){
var o=new Object;
o.el=el;
o.dx=x-curX;
o.dy=y-curY;
return o;
}
}
return null;
}
return getElInt(document.body,0,0);
}
function dndGetPosInEl(el,x,y){
var ox=getOffsetLeft(el);
var oy=getOffsetTop(el);
var p=el.parentNode;
while(p){
if(p.scrollLeft){
ox-=p.scrollLeft;
}
if(p.scrollTop){
oy-=p.scrollTop;
}
p=p.parentNode;
}
if(x>=ox&&x<ox+el.offsetWidth&&y>=oy&&y<oy+el.offsetHeight){
var o=new Object;
o.dx=x-ox;
o.dy=y-oy;
return o;
}
return null;
}
function dndHandleMouseDown(evt){
if(dndDragClone){
document.body.removeChild(dndDragClone);
dndDragClone=null;
if(dndDragInfo){
dndDragInfo.cb(dndDragInfo.el,DND_DRAG_CANCEL);
}
if(dndTargetInfo&&dndDragInfo&&dndTargetInfo.type){
dndTargetInfo.cb(dndTargetInfo.el,DND_DROP_DRAG_LEAVE,dndDragInfo.el,
dndTargetInfo.type,dndTargetInfo.data);
}
if(window.removeEventListener){
window.removeEventListener("mousemove", dndHandleMouseMove, true);
window.removeEventListener("mouseup", dndHandleMouseUp, true);
}else if(dndDragInfo&&dndDragInfo.el&&dndDragInfo.el.releaseCapture){
dndDragInfo.el.releaseCapture();
dndDragInfo.el.onmousemove="";
dndDragInfo.el.onmouseup="";
}else{
window.onmousemove="";
window.onmouseup="";
document.body.onmousemove="";
document.body.onmouseup="";
document.onmousemove="";
document.onmouseup="";
}
window.onmousemove=null;
window.onmouseup=null;
dndTargetInfo=null;
dndDragInfo=null;
if(dndDragUpdateTimeout){
clearTimeout(dndDragUpdateTimeout);
dndDragUpdateTimeout=null;
}
cbCall("dnd", false);
return;
}
evt=evt ? evt : event;
if(evt.altKey||evt.shiftKey||evt.ctrlKey){
return;
}
var tgt=evt.target?evt.target:evt.srcElement;
if(tgt&&tgt.tagName.toLowerCase()=="select") return;
if(evt&&evt.button==dndLeftMouse){
var clientX=evt.clientX,clientY=evt.clientY;
if(a9IsSafari){
clientX-=document.body.scrollLeft;
clientY-=document.body.scrollTop;
}
var dragElInfo=dndGetElAtPos(clientX, clientY, "a9x:dragSource");
var dragEl=dragElInfo?dragElInfo.el:null;
if(dragEl){
var cb=dndGetCallback(dragEl, "a9x:dragSource");
var st=cb(dragEl,DND_DRAG_START);
if(!st){
return;
}
if(typeof st=="object"){
dragEl=st;
}
dndDragInfo=new Object;
dndDragInfo.el=dragEl;
dndDragInfo.cb=cb;
dndDragMouseOriginX=clientX;
dndDragMouseOriginY=clientY;
dndDragObjOriginX=dragEl.offsetLeft;
dndDragObjOriginY=dragEl.offsetTop;
var parent=dragEl.offsetParent;
while(parent){
dndDragObjOriginX+=parent.offsetLeft;
dndDragObjOriginY+=parent.offsetTop;
parent=parent.offsetParent;
}
parent=dragEl;
while(parent){
if(parent.scrollLeft){
dndDragObjOriginX-=parent.scrollLeft;
}
if(parent.scrollTop){
dndDragObjOriginY-=parent.scrollTop;
}
parent=parent.parentNode;
}
dndDragObjOriginX+=document.body.scrollLeft;
dndDragObjOriginY+=document.body.scrollTop;
dndDragDeltaX=clientX-dndDragObjOriginX;
dndDragDeltaY=clientY-dndDragObjOriginY;
dndDragClone=null;
if(window.addEventListener){
window.addEventListener("mousemove", dndHandleMouseMove, true);
window.addEventListener("mouseup", dndHandleMouseUp, true);
}else if(dragEl.setCapture){
dragEl.setCapture();
dragEl.onmousemove=dndHandleMouseMove;
dragEl.onmouseup=dndHandleMouseUp;
}else{
window.onmousemove=dndHandleMouseMove;
window.onmouseup=dndHandleMouseUp;
document.onmousemove=dndHandleMouseMove;
document.onmouseup=dndHandleMouseUp;
document.body.onmousemove=dndHandleMouseMove;
document.body.onmouseup=dndHandleMouseUp;
}
if(evt.preventDefault){
evt.preventDefault();
}
}
}
}
function dndHandleMouseMove(evt){
evt=evt ? evt : event;
var newX,newY,deltaX,deltaY;
var clientX=evt.clientX,clientY=evt.clientY;
if(a9IsSafari){
clientX-=document.body.scrollLeft;
clientY-=document.body.scrollTop;
}
if(evt&&dndDragInfo){
newX=clientX;
newY=clientY;
deltaX=newX-dndDragMouseOriginX;
deltaY=newY-dndDragMouseOriginY;
dndDragEventSave.clientX=evt.clientX;
dndDragEventSave.clientY=evt.clientY;
if(!dndDragClone&&Math.abs(deltaX)+Math.abs(deltaY)>=DND_MIN_DRAG_DIST){
cbCall("dnd", true);
dndDragClone=cloneNoId(dndDragInfo.el,true);
dndDragClone.style.zIndex="99999";
a9SetAttribute(dndDragClone, "noDrop", true);
dndDragClone.style.width=dndDragInfo.el.offsetWidth+"px";
if(a9IsIE){
dndDragClone.style.filter="progid:DXImageTransform.Microsoft.Alpha(opacity=75)";
}else{
dndDragClone.style.opacity=0.75;
}
dndDragClone.style.position="absolute";
dndDragClone.style.left=dndDragObjOriginX+"px";
dndDragClone.style.top=dndDragObjOriginY+"px";
document.body.appendChild(dndDragClone);
dndDragInfo.cb(dndDragInfo.el,DND_DRAG_MOVING);
}
if(dndDragClone){
var left=dndDragObjOriginX+deltaX;
var top=dndDragObjOriginY+deltaY;
dndDragClone.style.left=left+"px";
dndDragClone.style.top=top+"px";
if(a9IsSafari){
document.body.removeChild(dndDragClone);
document.body.appendChild(dndDragClone);
}
if(!dndDragUpdateTimeout){
dndDragUpdateTimeout=setTimeout(dndDragUpdate,0);
}
}
}
}
function dndHandleMouseUp(evt){
evt=evt ? evt : event;
if(dndDragUpdateTimeout){
clearTimeout(dndDragUpdateTimeout);
dndDragUpdateTimeout=null;
}
if(dndDragInfo&&evt){
if(dndDragClone){
dndUpdateTarget(evt);
if(dndTargetInfo&&dndTargetInfo.type){
dndDragInfo.cb(dndDragInfo.el,DND_DRAG_BEFORE_DROP,dndTargetInfo.el);
dndTargetInfo.cb(dndTargetInfo.el,DND_DROP_DRAG_DROP,
dndDragInfo.el,
dndTargetInfo.type,dndTargetInfo.data,
dndTargetInfo.dx,dndTargetInfo.dy,dndDragClone);
dndDragInfo.cb(dndDragInfo.el,DND_DRAG_AFTER_DROP,dndTargetInfo.el);
}else{
dndDragInfo.cb(dndDragInfo.el,DND_DRAG_CANCEL);
}
document.body.removeChild(dndDragClone);
dndDragClone=null;
}
if(window.removeEventListener){
window.removeEventListener("mousemove", dndHandleMouseMove, true);
window.removeEventListener("mouseup", dndHandleMouseUp, true);
}else if(dndDragInfo.el.releaseCapture){
dndDragInfo.el.releaseCapture();
dndDragInfo.el.onmousemove="";
dndDragInfo.el.onmouseup="";
}else{
window.onmousemove="";
window.onmouseup="";
document.body.onmousemove="";
document.body.onmouseup="";
document.onmousemove="";
document.onmouseup="";
}
window.onmousemove=null;
window.onmouseup=null;
dndDragInfo=null;
cbCall("dnd", false);
}
}
function dndIsDragging(){
return dndDragInfo!=null;
}
function dndDragUpdate(){
dndUpdateTarget(dndDragEventSave);
if(dndTargetInfo){
dndTargetInfo.cb(dndTargetInfo.el,DND_DROP_DRAG_MOVE,
dndDragInfo.el,
dndTargetInfo.type,dndTargetInfo.data,
dndTargetInfo.dx,dndTargetInfo.dy);
}
dndDragUpdateTimeout=null;
}
function dndUpdateTarget(evt){
var clientX=evt.clientX,clientY=evt.clientY;
if(a9IsSafari){
clientX-=document.body.scrollLeft;
clientY-=document.body.scrollTop;
}
var overElInfo=dndGetElAtPos(clientX, clientY, "a9x:dropTarget", "noDrop");
var overEl=overElInfo?overElInfo.el:null;
if(dndTargetInfo&&dndTargetInfo.el==overEl){
dndTargetInfo.dx=overElInfo.dx;
dndTargetInfo.dy=overElInfo.dy;
return;
}
var oldInfo=dndTargetInfo;
dndTargetInfo=null;
while(overEl&&!dndTargetInfo){
var cb=dndGetCallback(overEl, "a9x:dropTarget");
if(cb){
var types=cb(overEl,DND_DROP_GET_TYPES);
if(types){
var typesA=types.split(",");
for(var i=0;i<typesA.length;i++){
var type=typesA[i];
if(typeof dndDragInfo[type]=="undefined"){
dndDragInfo[type]=dndDragInfo.cb(dndDragInfo.el,
DND_DRAG_GET_DATA,type);
}
if(dndDragInfo[type]){
var info=dndTargetInfo=new Object;
info.el=overEl;
info.dx=overElInfo.dx;
info.dy=overElInfo.dy;
info.cb=cb;
info.type=type;
info.data=dndDragInfo[type];
info.cb(dndTargetInfo.el,DND_DROP_DRAG_ENTER,
dndDragInfo.el,
dndTargetInfo.type,dndTargetInfo.data,
dndTargetInfo.dx,dndTargetInfo.dy);
break;
}
}
}
}
if(!dndTargetInfo){
do{
overEl=overEl.parentNode;
}while(overEl&&!a9GetAttribute(overEl, "a9x:dropTarget"));
}
}
if(oldInfo&&oldInfo.el!=overEl&&oldInfo.type){
oldInfo.cb(oldInfo.el,DND_DROP_DRAG_LEAVE,oldInfo.el,oldInfo.type,oldInfo.data);
}
}
function lck(evt){
function ct(){
if(tgt.to){
clearTimeout(tgt.to);
tgt.to=null;
}
}
function de(){
ct();
t1.dispatchEvent(evt);
}
function st(){
if(doNav&&!tgt.to){
if(a9IsSafari){
tgt.to=setTimeout(de,2000);
}else{
tgt.to=setTimeout("location.href='"+tgt.href+"'", 2000);
}
}
}
function lrsp(){
tgt.cst=2;
if(tgt.doNav){
ct();
if(a9IsSafari){
de();
}else{
location.href=tgt.href;
}
}
}
evt=evt ? evt : event;
var tgt=evt.currentTarget?evt.currentTarget:evt.srcElement;
var t1=tgt;
while(tgt&&tgt.nodeName!="A"){
tgt=tgt.parentNode;
}
if(!tgt){
return true;
}
var doNav=evt.type=="click"&&!(evt.altKey||evt.shiftKey||evt.ctrlKey||evt.metaKey)&&(!tgt.target||tgt.target=="_top");
if(doNav){
tgt.doNav=true;
}
var t=tgt;
var tnm=null;
var lt=null;
while(t&&!tnm){
if(!lt) lt=a9GetAttribute(t, "a9x:lt");
tnm=a9GetAttribute(t, "a9x:t");
t=t.parentNode;
}
switch (tgt.cst){
case 2:
if(a9IsSafari&&tgt.doNav){
ct();
location.href=tgt.href;
return false;
}
return true;
case 1:
st();
return!doNav;
default:
var rid="";
var pinf=document.getElementById("_rid");
if(pinf){
rid=a9GetAttribute(pinf, "a9x:rid");
}
if(!rid) rid="";
var ordinalString="";
var candidate=evt.currentTarget?evt.currentTarget:evt.srcElement;
while(!(candidate==null||candidate.className=="container"||candidate==document) ){
candidate=candidate.parentNode;
}
if(candidate!=null&&candidate!=document){
var linkFound=0;
var allCtr=0;
var pageOrdinal=0;
var all=candidate.getElementsByTagName('span');
for(var k=0;k<all.length;k++){
if(all[k].id=="a9PageOrdinal"){
pageOrdinal=parseInt(a9GetAttribute(all[k],"val"));
break;
}
}
if(!isNaN(pageOrdinal)&&pageOrdinal>0){
all=candidate.getElementsByTagName('a');
var lt=a9GetAttribute(tgt, "lt");
var linkCtr=0;
var adCtr=0;
for(k=0;k<all.length;k++){
if(a9GetAttribute(all[k], "a9c")!=null&&a9GetAttribute(all[k],"lt")==null){
linkCtr++;
if(all[k]==tgt){
linkFound=linkCtr;
break;
}
}else if(a9GetAttribute(all[k], "lt")!=null&&a9GetAttribute(all[k],"lt")==lt){
adCtr++;
if(all[k]==tgt){
linkFound=adCtr;
break;
}
}
}
if(linkFound>0&&pageOrdinal>0){
ordinalString="&o="+linkFound;
ordinalString=ordinalString+"&p="+pageOrdinal;
}
}
}
var u=A9NOSEARCH+"/search/cl.jsp?u="+a9Encode(tgt.href)+"&s="+a9Encode(location.href)+"&t="+a9Encode(a9GetElText(tgt))+"&r="+a9Encode(rid)+ordinalString;
if(tnm) u+="&c="+tnm;
if(top.a9query) u+="&q="+a9Encode(top.a9query);
if(lt) u+="&l="+lt;
if(startXmlHttpRequest(u,lrsp)){
tgt.cst=1;
st();
return!doNav;
}
tgt.cst=2;
var img=new Image;
img.src=u;
ct();
return true;
}
}
var GRP_PUP_TO=50;
var GRP_PDN_TO=50;
var grpHl;
var grpPupTo,grpPdnTo;
var grpPupDiv;
var grpOldCls;
function grpOvr(e,s,h){
function showPup(){
grpPupTo=null;
if(grpPdnTo){
clearTimeout(grpPdnTo);
grpPdnTo=null;
}
if(!grpPupDiv){
grpPupDiv=document.createElement("div");
grpPupDiv.className="navLeftExpanded";
grpPupDiv.style.display="none";
document.body.appendChild(grpPupDiv);
if(grpPupDiv.addEventListener){
grpPupDiv.addEventListener("mouseover", grpPupOvr, false);
grpPupDiv.addEventListener("mouseout", grpOut, false);
}else{
grpPupDiv.onmouseover=grpPupOvr;
grpPupDiv.onmouseout=grpOut;
}
}
grpPupDiv.innerHTML="<span class='navLeftExpandedHead'>"+"Search :"+"</span>"+s;
if(h){
grpPupDiv.style.top=getOffsetTop(e)+e.offsetHeight+"px";
grpPupDiv.style.left=getOffsetLeft(e)+"px";
}else{
grpPupDiv.style.top=getOffsetTop(e)+"px";
grpPupDiv.style.left=getOffsetLeft(e)+e.offsetWidth+"px";
}
grpPupDiv.style.display="";
if(grpHl&&grpHl!=e){
grpHl.className=grpOldCls;
}
grpOldCls=e.className;
e.className=h?"navPrimaryOver":"navLeftOn";
grpHl=e;
}
if(grpPupTo){
clearTimeout(grpPupTo);
}
grpPupTo=setTimeout(showPup,GRP_PUP_TO);
}
function grpPupOvr(){
if(grpPupTo){
clearTimeout(grpPupTo);
grpPupTo=null;
}
if(grpPdnTo){
clearTimeout(grpPdnTo);
grpPdnTo=null;
}
}
function grpOut(){
function hidePup(){
grpPdnTo=null;
if(grpHl){
grpHl.className=grpOldCls;;
grpHl=null;
}
if(grpPupDiv){
grpPupDiv.style.display="none";
}
}
if(grpPupTo){
clearTimeout(grpPupTo);
grpPupTo=null;
}
if(!grpPdnTo){
grpPdnTo=setTimeout(hidePup,GRP_PDN_TO);
}
}
function grpCBDrag(el,purpose,arg1){
switch (purpose){
case DND_DRAG_START:
return true;
case DND_DRAG_GET_DATA:
return grpCBGetData(el,arg1);
case DND_DRAG_MOVING:
return grpCBMoving(el);
case DND_DRAG_CANCEL:
return grpCBCancel(el);
}
}
function grpCBGetData(el,type){
if(type=="grpCB"){
return true;
}
return null;
}
function grpCBMoving(el){
el.style.visibility="hidden";
}
function grpCBCancel(el){
el.style.visibility="";
}
function grpCBTgt(el,purpose,arg1,arg2,arg3,arg4,arg5,arg6){
switch (purpose){
case DND_DROP_GET_TYPES:
return "grpCB";
case DND_DROP_DRAG_ENTER:
return grpCBEnter(el,arg1);
case DND_DROP_DRAG_LEAVE:
return grpCBLeave(el);
case DND_DROP_DRAG_DROP:
return grpCBDrop(el,arg1,arg2,arg3,arg4,arg5,arg6);
}
return null;
}
function grpCBEnter(tgt,src){
tgt.className+=" droppable-"+(getOffsetTop(src)<getOffsetTop(tgt)?"below":"above");
}
function grpCBLeave(tgt){
tgt.className=tgt.className.replace(/ *droppable-\w*/g, "");
}
function grpCBDrop(tgt,src,type,data,dx,dy,sprite){
grpCBLeave(tgt);
moveTile(a9GetAttribute(src, "a9x:t"), a9GetAttribute(tgt, "a9x:t"),
sprite,1);
}
function grpDrag(el,purpose,arg1){
switch (purpose){
case DND_DRAG_START:
return true;
case DND_DRAG_GET_DATA:
return grpGetData(el,arg1);
case DND_DRAG_MOVING:
return grpMoving(el);
case DND_DRAG_CANCEL:
return grpCancel(el);
}
}
function grpGetData(el,type){
if(type=="grp"){
return true;
}
return null;
}
function grpMoving(el){
el.style.visibility="hidden";
}
function grpCancel(el){
el.style.visibility="";
}
function grpTgt(el,purpose,arg1,arg2,arg3,arg4,arg5,arg6){
switch (purpose){
case DND_DROP_GET_TYPES:
return "grpCB,tile,tilex,grp";
case DND_DROP_DRAG_ENTER:
return grpEnter(el,arg1,arg2);
case DND_DROP_DRAG_LEAVE:
return grpLeave(el);
case DND_DROP_DRAG_DROP:
return grpDrop(el,arg1,arg2,arg3,arg4,arg5,arg6);
}
return null;
}
function curGrpTgt(el,purpose,arg1,arg2,arg3,arg4,arg5,arg6){
if(purpose==DND_DROP_GET_TYPES){
return "grp";
}
return grpTgt(el,purpose,arg1,arg2,arg3,arg4,arg5,arg6);
}
function grpEnter(tgt,src,type){
switch (type){
case "grpCB":
case "tile":
case "tilex":
tgt.className+=" droppable-grp";
break;
case "grp":
if(a9GetAttribute(src, "a9x:g")==a9GetAttribute(tgt, "a9x:g")){
return;
}
tgt.className+=" droppable-"+(getOffsetTop(src)<getOffsetTop(tgt)?"below":"above");
break;
}
}
function grpLeave(tgt){
tgt.className=tgt.className.replace(/ *droppable-\w*/g, "");
}
function curTabLab(){return a9GetAttribute(document.getElementById("curGrpLab"), "a9x:lab");}
function grpDrop2(st,dg){}
function findGroup(n){
while(n&&n.className!="navLeftOff"&&n.className!="navLeftSel") n=n.parentNode;
return n;
}
function grpDrop(tgt,src,type,data,dx,dy,sprite){
grpLeave(tgt);
src.style.visibility="";
src.className=src.className.replace(/ *macMozHide/g, "");
switch (type){
case "grpCB":
case "tile":
case "tilex":
var st=a9GetAttribute(src, "a9x:t");
var dg=a9GetAttribute(tgt, "a9x:g");
if(st&&dg){
var gi=new GroupInfo;
var pi=gi.getGroup(dg);
if(pi&&pi.t){
var f=false;
for(var i=0;i<pi.t.length;i++){
if(pi.t[i].n==st){
f=true;
}
}
if(!f){
var o=new Object;
o.n=st;
pi.t[i]=o;
gi.save();
}
grpDrop2(st,dg);
var anim=new Anim;
anim.addNode(sprite,Anim.CLOSE,tgt);
anim.go();
var msg;
if(type=="tilex"){
msg="%1 has been added to %2.";
}else{
msg="%1 has been copied to %2.  Do you also wish to remove it from %3?";
}
msg=msg.replace("%1", a9GetAttribute(src, "a9x:lab")).
replace("%2", a9GetAttribute(tgt, "a9x:lab")).
replace("%3", curTabLab());
function checkDel(){
if(type=="tilex"){
alert(msg);
}else{
if(confirm(msg)){
delTile(st);
}
}
}
setTimeout(checkDel,0);
}
}
break;
case "grp":
var sg=a9GetAttribute(src, "a9x:g");
var tg=a9GetAttribute(tgt, "a9x:g");
if(sg==tg) return;
var gi=new GroupInfo;
if(sg&&tg){
src=findGroup(src);
tgt=findGroup(tgt);
if(src&&tgt){
var anim=new Anim;
anim.addNode(src,Anim.OPEN,sprite);
if(getOffsetTop(src)<getOffsetTop(tgt)){
tgt.parentNode.insertBefore(src,tgt.nextSibling);
gi.moveGrp(sg,tg,false);
}else{
tgt.parentNode.insertBefore(src,tgt);
gi.moveGrp(sg,tg,true);
}
anim.go();
gi.save();
}
}
break;
}
}
var tileHash;
var MY_COLUMNS=8;
var ADULT_CONTENT=16;
var IS_A9_TILE=32;
var SORT_RANK=1;
var SORT_POP=2;
var SORT_DATE=3;
var curSort=-1;
var SCROLLCHK_FREQ=100;
var SCROLLCHECK_TO=50;
var TEXT_TO=250;
var filtered;
var avgHt;
var spacers=new Array;
var scrollTop;
var scrollWidth;
var scrollHeight;
var scrollTO;
var textTO;
var newGrpNm;
function init(ng){
newGrpNm=ng?a9Decode(ng):null
if(tileInfo.length>0&&!tileInfo[tileInfo.length-1]){
tileInfo.length--;
}
tileHash=new Object;
for(var i=0;i<tileInfo.length;i++){
tileHash[tileInfo[i].i]=tileInfo[i];
}
a9resize();
sortChanged();
updState();
var tl=document.getElementById("tileList")
if(tl.addEventListener){
tl.addEventListener("scroll", chkScroll, true);
}else{
tl.onscroll=chkScroll;
}
if(!a9IsIE){
setInterval("chkScroll()", SCROLLCHK_FREQ);
}
if(newGrpNm){
newGrp(newGrpNm);
}
dndInit();
}
function getTile(evt){
evt=evt ? evt : event;
var tgt=evt.currentTarget?evt.currentTarget:evt.srcElement;
while(tgt&&!tgt.t){
tgt=tgt.parentNode;
}
return tgt;
}
function doSort(ascend){
function compare(c1,c2){
if(c1.key>c2.key) return 1;
if(c1.key<c2.key) return-1;
return 0;
}
function compareDesc(c1,c2){
if(c1.key>c2.key) return-1;
if(c1.key<c2.key) return 1;
return 0;
}
tileInfo.sort(ascend?compare:compareDesc);
}
function sortByDate(){
for(var i=0;i<tileInfo.length;i++){
var t=tileInfo[i];
t.key=t.c;
}
doSort(false);
}
function sortByPop(){
for(var i=0;i<tileInfo.length;i++){
var t=tileInfo[i];
t.key=0;
if(t.p){
t.key=t.p;
}
if(t.key==0){
t.key=t.c;
}
if(t.key==0){
t.key=99999;
}
}
doSort(true);
}
function sortByRank(){
for(var i=0;i<tileInfo.length;i++){
var t=tileInfo[i];
t.key=0;
if(t.r){
t.key=t.r;
}
if(!t.key){
t.key=t.c;
}
if(!t.key){
t.key=99999;
}
}
doSort(true);
}
function sortChanged(){
var sortOrder=document.getElementById("sortOrder");
if(sortOrder){
var mode=parseInt(sortOrder.options[sortOrder.selectedIndex].value);
if(mode!=curSort){
switch (mode){
case SORT_DATE:
sortByDate();
break;
case SORT_POP:
sortByPop();
break;
case SORT_RANK:
sortByRank();
break;
}
curSort=mode;
}
update();
}
}
function tagChanged(){
var filter=document.getElementById("tagFilter");
var tag=filter.value;
if(tag=="_other_"){
tag=(prompt("Enter a tag to filter on")+"").replace(/>/g,"&gt;").replace(/</g,"&lt;");
if(tag){
var os=filter.options;
for(var i=1;i<os.length-1;i++){
if(os[i].value==tag){
filter.selectedIndex=i;
update();
return;
}
}
var opt=document.createElement("option");
opt.innerHTML=tag.replace(/>/g,"&gt;").replace(/</g,"&lt;");
opt.value=tag.replace(/>/g,"&gt;").replace(/</g,"&lt;");
filter.add(opt,a9IsIE?os.length:os[os.length-1]);
filter.selectedIndex=os.length-2;
}else{
filter.selectedIndex=0;
}
}
update();
}
function langChanged(){
update();
}
var defTextF="search all descriptions";
var textFilterFocus=false;
function textFilterOn(){
var tf=document.getElementById("textFilter");
textFilterFocus=true;
if(tf.value==defTextF){
tf.value="";
tf.style.color="black";
}
}
function textFilterOff(){
var tf=document.getElementById("textFilter");
if(tf.value==""&&!textFilterFocus){
tf.value=defTextF;
tf.style.color="gray";
}
}
function textFilter(){
if(!textTO){
text=setTimeout("update()", TEXT_TO);
}
}
function update(){
if(textTO){
clearTimeout(textTO);
textTO=null;
}
var tagFilter=document.getElementById("tagFilter").value;
var lang=document.getElementById("langFilter").value;
var tagRe;
if(tagFilter&&tagFilter!="_other_"){
tagRe=new RegExp(tagFilter, "i");
}
var textFilter=document.getElementById("textFilter").value;
if(textFilter==defTextF) textFilter="";
textFilter=textFilter.toLowerCase();
var tl=document.getElementById("tileList");
filtered=new Array;
for(var i=0;i<tileInfo.length;i++){
try{
var show=true;
var t=tileInfo[i];
if(show&&lang){
if(lang=="?"){
show=!t.lng;
}else{
show=t.lng&&t.lng.indexOf(lang)>=0;
}
}
if(show&&tagRe){
show=tagRe.test(t.t)
}
if(show&&textFilter){
var s=t.l+"|"+t.d;
if(t.ll){
s+="|"+t.ll;
}
if(t.a){
s+="|"+t.a;
}
if(t.t){
s+="|"+t.t;
}
if(t.adm){
s+="|"+t.adm;
}
show=s.toLowerCase().indexOf(textFilter)>=0;
}
if(show){
filtered.push(t);
}
if(t.div){
t.div.style.display="none";
}
if(t.spacer){
putSpacer(t.spacer);
t.spacer=null;
}
t.vis=false;
}catch (e){}
}
tl.scrollTop=0;
var INITIAL=10;
for(i=0;i<filtered.length&&i<INITIAL;i++){
var t=filtered[i];
if(!t.div){
fillDiv(t);
}
t.div.className="dialogManageMainContent"+(i&1?"One":"Two");
tl.appendChild(t.div);
t.div.style.display="";
}
if(filtered.length>INITIAL){
var lastD=filtered[INITIAL-1].div;
avgHeight=Math.floor((getOffsetTop(lastD)+lastD.offsetHeight) / INITIAL);
var sp=getSpacer();
filtered[INITIAL].spacer=sp;
sp.style.height=avgHeight * (filtered.length-INITIAL)+"px";
tl.appendChild(sp);
sp.style.display="";
scrollTop=-1;
updScroll();
}else{
avgHeight=0;
}
document.getElementById("tileCount").innerHTML=filtered.length+" match"+(filtered.length==1?"":"es")+"<span class='dialogManageMainSortSources'>&nbsp;in "+tileInfo.length+" sources</span>";
if(textFilter){
document.getElementById("textFilter").style.color="black";
}else{
textFilterOff();
}
updState();
}
function adup(t,s){return s;}
function fillDiv(t){
var s=document.getElementById("tileTmpl").innerHTML;
s=s.replace(/\s/g, " ");
s=s.replace(/__id__/g,t.i);
var img=null;
if(t.u){
img=A9STATICBASE+"/opensearch/colimg.gif?id="+t.i+"."+t.u;
}
if(!img){
img=a9Image("ico-64-unavailable");
}
var imgWidth=64,imgHeight=64;
try{
if(t.iw&&t.ih){
var iw=parseInt(t.iw);
var ih=parseInt(t.ih);
if(iw>0&&ih>0){
if(iw<=64&&ih<=64){
imgWidth=iw;
imgHeight=ih;
}else if(iw<ih){
imgWidth=Math.floor(iw * 64 / ih);
imgHeight=64;
}else{
imgHeight=Math.floor(ih * 64 / iw);
imgWidth=64;
}
}
}
}catch (e){
imgWidth=imgHeight=64;
}
s=s.replace(/__img__/g,img).replace(/__iw__/g,imgWidth).replace(/__ih__/g,imgHeight);
s=s.replace(/src_src/g, "src");
var l=t.ll;
if(!l){l=t.l;}
s=s.replace(/__label__/g,l);
if(t.f&MY_COLUMNS){
s=s.replace(/___owner_/, "").replace(/_owner___/, "");
}else{
s=s.replace(/___owner_.*_owner___/, "");
}
s=s.replace(/__desc__/g,t.d);
s=adup(t,s);
t.div=document.createElement("div");
t.div.innerHTML=s;
t.div.style.display="none";
document.getElementById("tileList").appendChild(t.div);
if(groupInfo[curGrp].t[t.i]){
document.getElementById("add"+t.i).style.visibility="hidden";
}
t.div.t=t;
}
function a9resize(){
var foot=document.getElementById("footer");
var h=getOffsetTop(foot)+foot.offsetHeight;
var w=document.body.clientWidth;
if(!w){
w=document.body.parentNode.clientWidth;
}
var base=document.getElementById("dialogManageBase");
var dlg=document.getElementById("dialogManageGroup");
var shdow=document.getElementById("dialogManageGroupShadow");
base.style.height=h+"px";
base.style.width=w+"px";
var dh=h-getPxStyle(dlg, "top") * 2;
var dw=w-getPxStyle(dlg, "left") * 2;
dlg.style.height=shdow.style.height=dh+"px";
dlg.style.width=shdow.style.width=dw+"px";
var head=document.getElementById("dmHead");
var foot=document.getElementById("dmFooter");
var dev=document.getElementById("dialogManageDevelopers");
var div=document.getElementById("dialogManageNavDiv");
document.getElementById("tileList").style.height=dh-dev.offsetHeight-200+"px";
var p=div.parentNode;
div.style.height=
getOffsetTop(foot)+foot.offsetHeight-getOffsetTop(head)-
getPxStyle(p, "paddingTop")-getPxStyle(p, "paddingBottom")-25+"px";
cbCall("resize");
}
function openGrp(g){
if(g!=curGrp){
var cgon=document.getElementById("g"+curGrp+"-on");
var cgoff=document.getElementById("g"+curGrp+"-off");
var ngon=document.getElementById("g"+g+"-on");
var ngoff=document.getElementById("g"+g+"-off");
var anim=new Anim;
anim.addNode(ngon,Anim.OPEN,ngoff);
cgon.style.display="none";
cgoff.style.display="";
curGrp=g;
ngoff.style.display="none";
ngon.style.display="";
/*
document.getElementById("curGrpLab").innerHTML=groupInfo[curGrp].l;
*/
document.getElementById("sf").action=groupInfo[curGrp].su;
a9resize();
updState();
anim.go();
}
}
function addTileBtn(n,grp){
if(!grp) grp=curGrp;
var t=tileHash[n];
var s=document.getElementById("gbTmpl").innerHTML;
s=s.replace(/\s/g, " ");
s=s.replace(/__id__/g,n);
s=s.replace(/__label__/g,t.l);
var div=document.createElement("div");
div.innerHTML=s;
for(var i=0;i<div.childNodes.length;i++){
if(div.childNodes[i].nodeName.toLowerCase()=="div"){
div=div.childNodes[i];
break;
}
}
div.id="gb"+grp+"_"+n;
if(grp==curGrp){
div.style.visibility="hidden";
}
var ins=document.getElementById("ins"+grp);
ins.parentNode.insertBefore(div,ins);
document.getElementById("ns"+grp).style.display="none";
return div;
}
function addTile(evt){
var t=getTile(evt);
if(t){
var n=t.t.i;
groupInfo[curGrp].t[n]=1;
var gb=document.getElementById("gb"+curGrp+"_"+n);
if(gb){
var anim=new Anim;
anim.addNode(t,Anim.CLOSE,gb);
anim.go();
}else{
var div=addTileBtn(n);
var anim=new Anim;
anim.addNode(t,Anim.CLOSE,div);
anim.setDoneCB(function (){div.style.visibility="";});
anim.go();
var gi=new GroupInfo;
var pi=gi.getGroup(curGrp);
if(!pi) return;
var o=new Object;
o.n=n;
o.o=1;
pi.t.push(o);
gi.save();
}
}
updState();
}
function delTile(tn){
groupInfo[curGrp].t[tn]=0;
var gb=document.getElementById("gb"+curGrp+"_"+tn);
if(gb){
gb.parentNode.removeChild(gb);
var gi=new GroupInfo;
var pi=gi.getGroup(curGrp);
if(!pi) return;
var a=pi.t;
for(var i=0;i<pi.t.length;i++){
if(pi.t[i].n==tn){
pi.t.splice(i,1);
if(pi.t.length==0){
document.getElementById("ns"+curGrp).style.display="";
}
break;
}
}
gi.save();
}
updState();
}
function renameGroup(){
var curLab=groupInfo[curGrp].l;
var newLab=(prompt("Enter a new name for this group", curLab)+"").replace(/>/g,"&gt;").replace(/</g,"&lt;");
if(newLab&&newLab!=curLab){
groupInfo[curGrp].l=newLab;
document.getElementById("l"+curGrp+"-on").innerHTML=
document.getElementById("l"+curGrp+"-off").innerHTML=
/* document.getElementById("curGrpLab").innerHTML=*/ newLab;
var gi=new GroupInfo;
var pi=gi.getGroup(curGrp);
if(!pi) return;
pi.L=newLab;
gi.save();
}
return false;
}
function fillGrp(id,lab){
var s=document.getElementById("grpTmpl").innerHTML;
s=s.replace(/\s/g, " ");
s=s.replace(/__id__/g,id);
s=s.replace(/__label__/g,lab);
var div=document.createElement("div");
div.innerHTML=s;
return div;
}
function newGrp(lab){
if(!lab){
lab=(prompt("Enter a name for this group")+"").replace(/>/g,"&gt;").replace(/</g,"&lt;");
}
if(lab){
var id=genId(lab);
var o=new Object;
o.l=lab;
o.hu=groupInfo.tmpl.hu.replace("%",id);
o.su=groupInfo.tmpl.su.replace("%",id);
o.t=new Object;
groupInfo[id]=o;
var div=fillGrp(id,lab);
var ng=document.getElementById("newGrp");
ng.parentNode.insertBefore(div,ng);
openGrp(id);
var gi=new GroupInfo;
gi.addGroup(id,lab);
gi.save();
}
}
function delGrp(grp){
if(!grp) grp=curGrp;
var g=document.getElementById("g"+grp+"-on");
var l=groupInfo[grp].l;
if(groupInfo[grp].nd){
alert("%1 is a built in group and can not be deleted.".replace("%1", l));
return false;
}
if(confirm(("Are you sure you want to delete %1?").replace("%1", l))){
if(grp==curGrp){
openGrp("general");
}
groupInfo[grp]=null;
var g2=document.getElementById("g"+grp+"-off");
g2.parentNode.removeChild(g2);
g.parentNode.removeChild(g);
var gi=new GroupInfo;
gi.delGroup(grp);
gi.save();
return true;
}
return false;
}
function revGrp(){
var dg=defGrp[curGrp];
if(!dg){
alert("This is not a built in group, and can not be reverted.");
return false;
}
var l=groupInfo[curGrp].l;
if(confirm(("Are you sure you want to revert %1 to its default searches?").replace("%1", l))){
var dgo=new JSONObject(dg);
var dgt=dgo.opt("t");
var gi=groupInfo[curGrp];
gi.t=new Object;
var div=fillGrp(curGrp,l);
var p=document.getElementById("g"+curGrp+"-on").parentNode;
p.innerHTML="";
p.appendChild(div);
for(var i=0;i<dgt.length;i++){
var nt=dgt[i].n;
if(nt&&tileHash[nt]){
var div=addTileBtn(nt);
div.style.visibility="";
gi.t[nt]=1;
}
}
}
var ginf=new GroupInfo;
var pi=ginf.getGroup(curGrp);
if(pi){
pi.t=dgt;
ginf.save();
}
updState();
a9resize();
return false;
}
function genId(l){
var id="_"+l.replace(/\W/g, "");
var tid=id;
var gi=new GroupInfo;
var i=0;
while(gi.getGroup(id)){
id=tid+(++i);
}
return id;
}
function updState(){
/*
document.getElementById("delgrp").style.display=groupInfo[curGrp].nd ? "none": "";
document.getElementById("revgrp").style.display=defGrp[curGrp] ? "": "none";
*/
for(var i=0;i<tileInfo.length;i++){
var ti=tileInfo[i];
if(ti.div){
var id=ti.i;
document.getElementById("add"+id).style.visibility=groupInfo[curGrp].t[id]?"hidden":"";
}
}
}
function moreInfo(id){
document.getElementById("mi"+id).style.display="";
document.getElementById("li"+id).style.display="none";
var ti=tileHash[id];
if(!ti.mi){
ti.mi=1;
var url=A9NOSEARCH+"/opensearch/searchInfo.jsp?tile="+id;
if(q){
url+="&q="+q;
}
if(!startXmlHttpRequest(url, miLoaded, id, null, "_t")){
a9err("moreInfo bad HttpRequest");
}
}
return false;
}
function lessInfo(id){
document.getElementById("li"+id).style.display="";
document.getElementById("mi"+id).style.display="none";
return false
}
function miLoaded(xml,id,txt,status){
var mid=document.getElementById("mid"+id);
if(status==200){
mid.innerHTML=txt;
if(document.getElementById("prt"+id).value){
preview(id);
}
}else{
var ti=tileHash[id];
ti.mi=0;
mid.innerHTML="There was an error contacting the server. "+
"<button onclick='moreInfo(\""+id+"\")'>"+"Try Again"+"</button>";
}
}
function preview(id){
var q=document.getElementById("prt"+id).value;
if(q){
var url=A9NOSEARCH+"/layout/snippet.jsp?dtile="+id+"&dptp=xmlhttp&initial=1&tgt=blank&q="+a9Encode(q);
var prv=document.getElementById("prv"+id);
a9SetAttribute(prv, "a9x:q", q);
prv.className="search-preview block-loading";
prv.innerHTML="";
if(!startXmlHttpRequest(url, previewLoaded, id, null, "_t")){
a9err("tileChoose preview bad HttpRequest");
}
}else{
alert("Please enter a search term to view a preview.");
}
return false;
}
function previewLoaded(xml,id,txt,status){
var error=false;
var prv=document.getElementById("prv"+id);
prv.className="search-preview";
if(status==200){
prv.innerHTML=txt;
var infos=prv.getElementsByTagName("div");
for(var i=0;i<infos.length;i++){
if(infos[i].className=="a9info"){
switch (infos[i].getAttribute("a9x:type")){
case "error":
error=true;
prv.innerHTML=infos[i].innerHTML;
break;
}
}
}
}else{
error=true;
prv.innerHTML="There was an error contacting a9.com.";
}
if(error){
var div=document.createElement("div");
div.innerHTML="<button onclick='preview(\""+id+"\")'>"+"Try Again"+"</button>";
prv.appendChild(div);
}else{
var cs=a9GetAttribute(prv, "a9x:cs");
var mp=a9GetAttribute(prv, "a9x:mp");
if(cs){
var url=A9NOSEARCH+"/layout/snippet.jsp?dtile="+id+"&dptp=xmlhttp&tgt=blank&q="+a9Encode(a9GetAttribute(document.getElementById("prv"+id),"a9x:q"));
new Cscroll("prv"+id, id, mp?mp:100, cs, url);
}
}
}
function chkScroll(){
var tl=document.getElementById("tileList");
var st=tl.scrollTop;
var ow=tl.offsetWidth;
var oh=tl.offsetHeight;
if(st!=scrollTop||ow!=scrollWidth||oh!=scrollHeight){
scrollTop=st;
scrollWidth=ow;
scrollHeight=oh;
if(scrollTO){
clearTimeout(scrollTO);
}
scrollTO=setTimeout("updScroll()", SCROLLCHECK_TO);
}
}
function updScroll(){
clearTimeout(scrollTO);
if(!avgHeight) return;
var tl=document.getElementById("tileList");
var st=tl.scrollTop;
var oh=tl.offsetHeight;
var sb=st+oh;
for(var i=0;i<filtered.length;i++){
if(filtered[i].spacer){
var sp=filtered[i].spacer;
var spt=sp.offsetTop;
var sph=sp.offsetHeight;
var spb=spt+sph;
spt-=200;spb+=200;
if((spt<st&&spb>st)||(spt>=st&&spt<sb)){
var first=Math.floor((st-spt)/avgHeight)+i-5;
if(first<i) first=i;
var last=Math.ceil((sb-spt)/avgHeight)+i+5;
for(var j=first;j<last;j++){
if(j>=filtered.length||filtered[j].vis||(filtered[j].spacer&&j!=i)){
last=j;
}
}
if(first>=last) continue;
var nextC=sp.nextSibling;
for(var j=first;j<last;j++){
var t=filtered[j];
if(!t.div){
fillDiv(t);
}
t.div.className="dialogManageMainContent"+(j&1?"One":"Two");
tl.insertBefore(t.div,nextC);
t.div.style.display="";
t.vis=true;
}
if(first==i){
filtered[i].spacer=null;
putSpacer(sp);
}else{
sp.style.height=(first-i) * avgHeight+"px";
}
for(var k=last;k<filtered.length&&!filtered[k].vis&&!filtered[k].spacer;k++)
;
if(k>last){
filtered[last].spacer=sp=getSpacer();
sp.style.height=(k-last) * avgHeight+"px";
tl.insertBefore(sp,nextC);
sp.style.display="";
}
chkScroll();
break;
}
}
}
}
function putSpacer(sp){
sp.style.display="none";
spacers.push(sp);
}
function getSpacer(){
var sp=spacers.pop();
if(!sp){
sp=document.createElement("div");
sp.className="block-loading";
}
return sp;
}
function done(){
if(q){
var qt=document.getElementById("q");
if(!a9Trim(qt.value)){
qt.value=q;
}
submitSearch();
}else{
location.href=groupInfo[curGrp].hu;
}
}
function custGrp(){
hideGrpDlg();
newGrp();
}
function addGroup(grp){
hideGrpDlg();
if(groupInfo[grp]){
openGrp(grp);
}else{
var dg=defGrp[grp];
var dgo=new JSONObject(dg);
var lab=dgo.opt("L");
var div=fillGrp(grp,lab);
var ng=document.getElementById("newGrp");
ng.parentNode.insertBefore(div,ng);
var o=new Object;
o.l=lab;
o.hu=groupInfo.tmpl.hu.replace("%",grp);
o.su=groupInfo.tmpl.su.replace("%",grp);
o.t=new Object;
groupInfo[grp]=o;
openGrp(grp);
var dgt=dgo.opt("t");
for(var i=0;i<dgt.length;i++){
var nt=dgt[i].n;
if(nt&&tileHash[nt]){
var div=addTileBtn(nt);
div.style.visibility="";
o.t[nt]=1;
}
}
var gi=new GroupInfo;
gi.addGroupJSON(dgo.o);
gi.save();
}
}
function addToText(){}
function moveTile(st,dt,sprite){
if(st&&dt&&st!=dt){
var sb=document.getElementById("gb"+curGrp+"_"+st);
var db=document.getElementById("gb"+curGrp+"_"+dt);
var anim=new Anim;
anim.addNode(sb,Anim.OPEN,sprite);
var b4;
if(getOffsetTop(sb)<getOffsetTop(db)){
sb.parentNode.insertBefore(sb,db.nextSibling);
b4=false;
}else{
sb.parentNode.insertBefore(sb,db);
b4=true;
}
anim.go();
var gi=new GroupInfo;
var pi=gi.getGroup(curGrp);
var t=pi.t;
var o;
for(var i=0;i<t.length;i++){
if(t[i].n==st){
o=t[i];
break;
}
}
if(o){
var a=new Array;
for(i=0;i<t.length;i++){
var n=t[i].n;
if(n==st) continue;
if(n==dt){
if(b4){
a.push(o);
a.push(t[i]);
}else{
a.push(t[i]);
a.push(o);
}
}else{
a.push(t[i]);
}
}
pi.t=a;
gi.save();
}
}
}
function curTabLab(){
return groupInfo[curGrp].l;
}
function grpDrop2(st,dg){
if(!groupInfo[dg].t[st]){
groupInfo[dg].t[st]=1;
addTileBtn(st,dg);
}
}
function findGroup(n){
while(n&&n.className!="dialogManageNavLeftOff"&&n.className!="dialogManageNavLeftSel") n=n.parentNode;
return n?n.parentNode:n;
}

