
var g_Style=new Object();g_Style["highlightColor"]="#EEE9BF";g_Style["result-highlight-color"]="#fbd390";var g_nDefaultFolderMouseWait=140;var g_nDefaultSubfolderMouseWait=250;var g_nDefaultMenuMouseWait=250;var g_nDefaultToolTipMouseWait=600;var g_nDefaultShadowGradient=6;var g_nDefaultShadowSize=4;var g_nShadowOpacityStart=5;var g_nShadowOpacityEnd=10;var g_nShadowYOffset=1;var g_nShadowXOffset=0;var g_nShadowFactorXY=50;var g_nMS=3;var g_nTabDragSens=20;var g_nObjectDragSens=10;var g_bDisableCDT=false;var g_nFolderTitleLength=20;var g_nMaxSelectLength=20;var g_nMaxToolTipUrlLength=65;var xfID="id";var xfFavourites="a";var xfFavourite="b";var xfTabs="c";var xfTab="d";var xfValue="e";var xfName="f";var xfOrderList="g";var xfColumnPosition="h";var xfFolderOrder="i";var xfParentID="j";var xfUrl="l";var xfIsFolder="m";var xfTagID="n";var xfTagText="o";var xfDescription="p";var xfCount="q";var xfNotes="r";var xfTags="s";var xfTag="t";var xfFolders="u";var xfFolder="v";var xfUserID="w";var xfAlert="x";var xfSuccess="y";var xfAJAXResponse="z";var xfErrors="a0";var xfElement="b0";var xfMsg="c0";var xfSite="d0";var xfShowAlphabet="e0";var xfSortURLCount="f0";var xfTagCountThreshold="g0";var xfErrorField="h0";var xfValidField="i0";var xfSuggestion="j0";var xfUsernameTaken="k0";var xfRequest="l0";var xfValid="m0";var xfError="n0";var xfSelected="o0";var xfSubCategory="p0";var xfCategory="q0";var xfCategories="r0";var xfTitle="s0";var xfTip="t0";var g_bDebug=true;function debug(strText,bClear)
{var d=$("debug");if(!d)
{d=document.createElement("div");d.id="debug";document.body.insertBefore(d,document.body.firstChild);}
else if(bClear)
{d.innerHTML="";}
d.innerHTML+=strText+" | ";return true;}
function assert(expr)
{if(!expr)
{alert("Expression failed:"+expr);throw("Expression failed:"+expr);}}
function dot(x,y,parent)
{var dot=$("dot");if(!dot)
{dot=document.createElement("div");dot.id="dot";if(parent)
{parent.appendChild(dot);}
else
{document.body.appendChild(dot);}}
dot.style.left=px(x);dot.style.top=px(y);}
function dot2(x,y,parent)
{var dot=$("dot2");if(!dot)
{dot=document.createElement("div");dot.id="dot2";if(parent)
{parent.appendChild(dot);}
else
{document.body.appendChild(dot);}}
dot.style.left=px(x);dot.style.top=px(y);}
var codeTimer=function(){this.total=0;};codeTimer.prototype.start=function(){var dt=new Date();this.startTime=dt.getTime();};codeTimer.prototype.end=function(){var dt=new Date();this.endTime=dt.getTime();this.time=this.endTime-this.startTime;debug(this.time,true);};var ct=new codeTimer();function getUserName()
{return(g_strUserName);}
function $(){if(arguments.length==1)
{var el=arguments[0];if(typeof el=='string'&&arguments[0]&&arguments[0].length)
{return(document.getElementById(arguments[0]));}
else
{return(el);}}
var elements=new Array();for(var i=0;i<arguments.length;i++){var element=arguments[i];if(typeof element=='string')
element=document.getElementById(element);if(arguments.length==1)
return element;elements.push(element);}
return elements;}
function inElementOfClass(el,strClass)
{var element=el.parentNode;while(element.parentNode)
{if(element.className==strClass)return(true);element=element.parentNode;}
return(false)}
function targetIsHandle(object)
{if(object.dragHandle)
{return(mouseInObjectBounds(object.dragHandle));}
else
{return(true);}}
function getParentNodeByTagName(node,tagName)
{var thisNode=node;while(thisNode.tagName!=tagName)
{if(thisNode.parentNode)
thisNode=thisNode.parentNode;else
return null;}
return(thisNode.tagName==tagName?thisNode:null);}
function getParentNodeByFlag(node,flag)
{var thisNode=node;while(!thisNode[flag])
{if(thisNode.parentNode)
thisNode=thisNode.parentNode;else
return null;}
return(thisNode[flag]?thisNode:null);}
function getParentNodeByObjectType(node,strObjectType)
{var thisNode=node;while(thisNode.objectType!=strObjectType)
{if(thisNode.parentNode)
thisNode=thisNode.parentNode;else
return null;}
return(thisNode.objectType==strObjectType?thisNode:null);}
function getParentNodeByClass(node,strClass)
{var thisNode=node;while(thisNode.className!=strClass)
{if(thisNode.parentNode)
thisNode=thisNode.parentNode;else
return null;}
return(thisNode.className==strClass?thisNode:null);}
function getElementsByClass(searchClass,node,tag){var classElements=new Array();if(node==null)
node=document;if(tag==null)
tag='*';var els=node.getElementsByTagName(tag);var elsLen=els.length;var pattern=new RegExp('(^|\\s)'+searchClass+'(\\s|$)');for(i=0,j=0;i<elsLen;i++){if(pattern.test(els[i].className)){classElements[j]=els[i];j++;}}
return classElements;}
function getElementsByExactClass(searchClass,node,tag){var classElements=new Array();if(node==null)
node=document;if(tag==null)
tag='*';var els=node.getElementsByTagName(tag);var elsLen=els.length;for(var i=0,j=0;i<elsLen;i++){if(els[i].className==searchClass){classElements[j]=els[i];j++;}}
return classElements;}
function getElementByExactClass(searchClass,node,tag){if(node==null)
node=document;if(tag==null)
tag='*';var els=node.getElementsByTagName(tag);var elsLen=els.length;for(i=0,j=0;i<elsLen;i++){if(els[i].className==searchClass){return els[i];}}}
function removeElement(el)
{if(el)
{if(el.parentNode)
{hideShadow(el);unlockParent(el);el.parentNode.removeChild(el);}
delete el;}}
function hideElement(object)
{object.style.display="none";if(object.shadow)
{hideShadow(object);}}
function showElement(object)
{object.style.display="";}
function hideThis()
{hideElement(this);}
function showThis()
{showElement(this);}
function getTarget(e)
{if(!e)e=event;if(e.target)
return e.target;else if(e.srcElement)
return e.srcElement;return null;}
function escapeQuotes(strText)
{if(strText&&strText.length)return(strText.replace(/'/g,"\\'"));return("");}
function getShadowXY(element)
{var _y=Math.round(((100/getHeight(document.documentElement))*g_Mouse.position.y)/g_nShadowFactorXY);var x=findPosX(element)+g_nDefaultShadowSize+g_nShadowXOffset+_y;var y=findPosY(element)+g_nDefaultShadowSize+g_nShadowYOffset+_y;return({x:x,y:y});}
function doShadow(element)
{var nAmount=g_nDefaultShadowGradient;var nElementW=getWidth(element);var nElementH=getHeight(element);if(nElementW==0&&nElementH==0)return false;var dv=$("shadow-"+element.id);if(!dv)
{var dv=document.createElement("div");dv.className="shadow";}
dv.innerHTML="";for(var i=0;i<nAmount-1;i++)
{var sh=document.createElement("div");sh.className="i-s";var nOpacity=Math.round(((g_nShadowOpacityEnd-g_nShadowOpacityStart)/nAmount)*i)+g_nShadowOpacityStart;var nWidth=nElementW-(i*2);var nHeight=nElementH-(i*2);sh.style.width=px(nWidth);sh.style.height=px(nHeight);sh.style.top=px(i);sh.style.left=px(i);dv.appendChild(sh);setOpacity(sh,nOpacity);}
dv.nAmount=nAmount;dv.style.width=px(nElementW);dv.style.height=px(nElementH);if(element.style.zIndex)
{dv.style.zIndex=element.style.zIndex;}
var c=getShadowXY(element);dv.style.top=px(c.y);dv.style.left=px(c.x);if(element.id)dv.id="shadow-"+element.id;element.parentNode.insertBefore(dv,element);return(dv);}
function hideShadow(element)
{var dv=$("shadow-"+element.id);if(dv)dv.parentNode.removeChild(dv);delete dv;}
function addEvent(obj,type,fn){if(obj.addEventListener){obj.addEventListener(type,fn,false);EventCache.add(obj,type,fn);}
else if(obj.attachEvent){obj["e"+type+fn]=fn;obj[type+fn]=function(){obj["e"+type+fn](window.event);}
obj.attachEvent("on"+type,obj[type+fn]);EventCache.add(obj,type,fn);}
else{obj["on"+type]=obj["e"+type+fn];}}
var EventCache=function(){var listEvents=[];return{listEvents:listEvents,add:function(node,sEventName,fHandler){listEvents.push(arguments);},flush:function(){var i,item;for(i=listEvents.length-1;i>=0;i=i-1){item=listEvents[i];if(item[0].removeEventListener){item[0].removeEventListener(item[1],item[2],item[3]);};if(item[1].substring(0,2)!="on"){item[1]="on"+item[1];};if(item[0].detachEvent){item[0].detachEvent(item[1],item[2]);};item[0][item[1]]=null;};},remove:function(obj,type,fn){var i,item;for(i=listEvents.length-1;i>=0;i=i-1){item=listEvents[i];if(item[0]==obj&&item[1]==type&&item[2]==fn)
{if(item[0].removeEventListener){item[0].removeEventListener(item[1],item[2],item[3]);};if(item[1].substring(0,2)!="on"){item[1]="on"+item[1];};if(item[0].detachEvent){item[0].detachEvent(item[1],item[2]);};item[0][item[1]]=null;}}}};}();addEvent(window,'unload',EventCache.flush);var g_Mouse=new Object();g_Mouse.onmove=null;function startTrackMouse()
{if(!g_Mouse.position)g_Mouse.position={x:0,y:0};addEvent(document,"mouseup",trackMouseUp);addEvent(document,"mousedown",trackMouseDown);addEvent(document,"mousemove",trackMouseMove);}
function trackMouseMove(e)
{if(!e)
{e=event;}
g_Mouse.e=e;g_Mouse.position=getMousePos(e);if(g_Mouse.onmove)
{g_Mouse.onmove();}
if(!g_Mouse.bDragDropInProgress&&!g_Mouse.bTabMoveInProgress&&!g_Mouse.bMouseMoveInProgress)return false;preventDefaultEvent(e);if(g_Mouse.position.y<5)
{cancelDragDrop();}
if(g_Mouse.callback)
{g_Mouse.callback();}
if(g_Mouse.bCheckDropTarget)
{checkDropTarget(e);}
else if(g_Mouse.bCheckTabMove)
{checkTabMove(e);}}
function trackMouseDown(e)
{if(!e)
{e=event;}
g_Mouse.e=e;g_Mouse.button=e.button;if(g_Mouse.bDragDropInProgress||g_Mouse.bTabMoveInProgress||g_Mouse.bMouseMoveInProgress)preventDefaultEvent(e);var targ=getTarget(e);if(targ.className!="menu"&&!inElementOfClass(targ,"menu"))
{closeAllMenus();}
doOperaContextMenu();}
function trackMouseUp(e)
{if(!e)
{e=event;}
g_Mouse.e=e;g_Mouse.button=e.button;g_Mouse.onmove=null;if(g_Mouse.bDragDropInProgress||g_Mouse.bTabMoveInProgress||g_Mouse.bMouseMoveInProgress)preventDefaultEvent(e);if(g_Mouse.bDragDropInProgress)
{releaseDragTarget(e);}
else
{g_Mouse.bDragDropInitialized=false;}
if(g_Mouse.bTabMoveInitialized)
{releaseTabMove(e);}
else if(g_Mouse.bMouseMoveInitialized)
{stopMouseMoveElement();}
var targ=getTarget(e);if(targ)
{if(targ.className!="subfolder"&&!g_Mouse.bDragDropInProgress&&inElementOfClass(targ,"subfolder"))
{closeAllSubfolders();}}}
startTrackMouse();var noEvent=function(e){if(!e)e=event;e.bubble=false;e.cancel=true;return(false);};function doOperaContextMenu(func)
{var targ=getTarget(g_Mouse.e);if(g_Mouse.e.button==2&&isOpera())
{if(targ.oncontextmenu)
{targ.oncontextmenu();return;}
var contextNode=getParentWithContext(targ);if(contextNode)
{contextNode.oncontextmenu();return;}
if(func)func();}}
function getParentWithContext(node)
{var thisNode=node;while(thisNode&&!thisNode.oncontextmenu)
{thisNode=thisNode.parentNode;}
if(thisNode.oncontextmenu)
{return(thisNode);}}
function customEvent()
{this.eventHandlers=new Array();}
customEvent.prototype.addHandler=function(eventHandler)
{if(eventHandler)this.eventHandlers.push(eventHandler);}
customEvent.prototype.raise=function(args)
{for(var i=0;i<this.eventHandlers.length;i++)
{this.eventHandlers[i](args);}}
function hilightErrorField(el,bHilight)
{if(bHilight)
{$(el).style.color='red';$(el).style.border='2px solid red';}
else
{$(el).style.color='';$(el).style.border='1px solid #7f9db9';}}
function PageQuery(q){if(q.length>1)this.q=q.substring(1,q.length);else this.q=null;this.keyValuePairs=new Array();if(q){for(var i=0;i<this.q.split("&").length;i++){this.keyValuePairs[i]=this.q.split("&")[i];}}
this.getKeyValuePairs=function(){return this.keyValuePairs;}
this.getValue=function(s){for(var j=0;j<this.keyValuePairs.length;j++){if(this.keyValuePairs[j].split("=")[0]==s)
return this.keyValuePairs[j].split("=")[1];}
return("");}
this.getParameters=function(){var a=new Array(this.getLength());for(var j=0;j<this.keyValuePairs.length;j++){a[j]=this.keyValuePairs[j].split("=")[0];}
return a;}
this.getLength=function(){return this.keyValuePairs.length;}}
function queryString(key){var page=new PageQuery(window.location.search);return unescape(page.getValue(key));}
function createCookie(name,value,days){if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires="; expires="+date.toGMTString();}
else var expires="";document.cookie=name+"="+value+expires+"; path=/; domain="+g_strCookieDomain;}
function readCookie(name){var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' ')c=c.substring(1,c.length);if(c.indexOf(nameEQ)==0)return c.substring(nameEQ.length,c.length);}
return null;}
function clearCookie()
{createCookie("Favowitz","",-1);}
function Set_Cookie(name,value,expires,path,domain,secure)
{var today=new Date();today.setTime(today.getTime());if(expires)
{expires=expires*1000*60*60*24;}
var expires_date=new Date(today.getTime()+(expires));document.cookie=name+"="+escape(value)+
((expires)?";expires="+expires_date.toGMTString():"")+
((path)?";path="+path:"")+
((domain)?";domain="+domain:"")+
((secure)?";secure":"");}
function Get_Cookie(name){var start=document.cookie.indexOf(name+"=");var len=start+name.length+1;if((!start)&&(name!=document.cookie.substring(0,name.length)))
{return null;}
if(start==-1)return null;var end=document.cookie.indexOf(";",len);if(end==-1)end=document.cookie.length;return unescape(document.cookie.substring(len,end));}
function getXMLHTTP()
{var _ms_XMLHttpRequest_ActiveX=null;var AJAX;if(window.XMLHttpRequest){AJAX=new XMLHttpRequest();}else if(window.ActiveXObject){if(_ms_XMLHttpRequest_ActiveX){AJAX=new ActiveXObject(_ms_XMLHttpRequest_ActiveX);}else{var versions=["Msxml2.XMLHTTP.7.0","Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.5.0","Msxml2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];for(var i=0;i<versions.length;i++){try{AJAX=new ActiveXObject(versions[i]);if(self.AJAX){_ms_XMLHttpRequest_ActiveX=versions[i];break;}}
catch(objException){};};}}
return(AJAX);}
function getDOMDoc()
{var progIDs=['Msxml2.DOMDocument.6.0','Msxml2.DOMDocument.3.0','Microsoft.XMLDOM'];for(var i=0;i<progIDs.length;i++){try{var xmlDOM=new ActiveXObject(progIDs[i]);return xmlDOM;}
catch(ex){}}
return null;}
function getXMLDocFromText(strText)
{var xmlDoc;if(window.ActiveXObject)
{xmlDoc=getDOMDoc();xmlDoc.async=false;xmlDoc.loadXML(strText);}
else if(document.implementation&&document.implementation.createDocument)
{var parser=new DOMParser();var xmlDoc=parser.parseFromString(strText,"text/xml");}
return(xmlDoc);}
function AJAXRq(){};var _AJAXRq=AJAXRq.prototype;_AJAXRq.engaged=false;_AJAXRq.xmlResponse="";_AJAXRq.callback=null;_AJAXRq.xmlhttp=null;_AJAXRq.timerid=null;_AJAXRq.args=null;_AJAXRq.bText=false;_AJAXRq.queue=null;function AJAXPool(nPoolSize)
{this.arrRqPool=Array();this.nPoolSize=nPoolSize;this.timeout=5000;this.bText=false;this.bAlert=false;this.bRedir=false;this.queue=new Array();for(var i=0;i<this.nPoolSize;i++)
{this.arrRqPool[i]=new AJAXRq();this.arrRqPool[i].xmlhttp=getXMLHTTP();}}
var _AJAXPool=AJAXPool.prototype;_AJAXPool.Request=function(strRqUrl,request)
{for(var i=0;i<this.nPoolSize;i++)
{if(this.arrRqPool[i].engaged!=true)
{this.arrRqPool[i].engaged=true;this.arrRqPool[i].bText=request.bText?true:false;this.arrRqPool[i].bAlert=request.bAlert?true:false;if(request.bRedir)document.location.href=strRqUrl;this.arrRqPool[i].callback=request.callback;this.arrRqPool[i].args=request.args;var t=this;this.arrRqPool[i].xmlhttp.onreadystatechange=function(){t.doStateChange(i)};var rnd=Math.random();this.arrRqPool[i].xmlhttp.open(request.type?request.type:"GET",strRqUrl+(strRqUrl.indexOf("?")!=-1?"&":"?")+"rnd="+rnd);this.arrRqPool[i].xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');this.arrRqPool[i].timerid=setTimeout
(function()
{if(t.arrRqPool[i].engaged)
{t.arrRqPool[i].engaged=false;t.arrRqPool[i].callback(getXMLDocFromText("<ajaxresponse><success timeout='true'>False</success></ajaxresponse>"),t.arrRqPool[i].args);}},request.timeout?request.timeout:this.timeout);this.arrRqPool[i].xmlhttp.send(request.postdata?request.postdata:null);if(request.bQueued)this.deQueue(request.nQueuePosition);return(i);}}
if(!request.bQueued)this.queue.push({strRqUrl:strRqUrl,request:request});return(null);}
_AJAXPool.deQueue=function(i)
{this.queue[i]=null;}
_AJAXPool.doQueue=function()
{for(var i=0;i<this.queue.length;i++)
{var request=this.queue[i];if(request)
{request.request.bQueued=true;request.request.nQueuePosition=i;this.Request(request.strRqUrl,request.request);}}}
_AJAXPool.free=function(i)
{this.arrRqPool[i].xmlhttp.abort();this.arrRqPool[i].engaged=false;this.doQueue();}
_AJAXPool.doStateChange=function(i)
{if(this.arrRqPool[i].xmlhttp&&this.arrRqPool[i].xmlhttp.readyState==4)
{clearTimeout(this.arrRqPool[i].timerid);var xmlText=this.arrRqPool[i].xmlhttp.responseText;if(this.arrRqPool[i].bAlert)alert(xmlText);var cookie=this.arrRqPool[i].xmlhttp.getResponseHeader("Set-Cookie");if(cookie)
{var myCookie=cookie+(cookie.toString().indexOf("domain=")==-1?";domain="+g_strCookieDomain:"");document.cookie=myCookie;}
if(this.bText||this.arrRqPool[i].bText)
{this.arrRqPool[i].callback(xmlText,this.arrRqPool[i].args);}
else
{this.arrRqPool[i].callback(getXMLDocFromText(xmlText),this.arrRqPool[i].args);}
this.free(i);}}
var g_AJAXPool=new AJAXPool(10);var g_XML=new Object();function noError(xmldoc)
{if(!getTagValue(xmldoc,xfSuccess))
{return true;}
else
{var alertNodes=getTagNodes(xmldoc,xfAlert);if(alertNodes&&alertNodes.length)
{for(var iNode=0;iNode<alertNodes.length;iNode++)
{alert(alertNodes[iNode].getAttribute(xfTitle)+": "+alertNodes[iNode].getAttribute(xfMsg));}}
return false;}
if(g_bDebug)
{alert("xmlerror:"+xmldoc.xml);}}
function parseBool(strBool)
{if(strBool&&strBool.length)
{if(strBool.toString()=="1"||strBool.toLowerCase()=="true")
{return(true);}
else
{return(false);}}}
function getTagValue(xmldoc,tag)
{if(!xmldoc)return;var ret=xmldoc.getElementsByTagName(tag);if(ret&&ret[0]&&ret[0].childNodes&&ret[0].childNodes[0])
{return(ret[0].childNodes[0].nodeValue);}
else
{return("");}}
function getTagAttribute(xmldoc,tag,attribute)
{if(!xmldoc)return;var ret=xmldoc.getElementsByTagName(tag);if(ret&&ret[0]&&ret[0].childNodes&&ret[0].childNodes[0])
{var attributeValue=ret[0].childNodes[0].getAttribute(attribute);if(attributeValue&&attributeValue.value)return(attributeValue.value);}
else
{return("");}}
function getNodeText(node)
{if(node)
{var textValue=node.textContent||node.innerText||node.text||null;if(!textValue&&node.childNodes&&node.childNodes[0]&&node.childNodes[0].nodeValue)
{textValue=node.childNodes[0].nodeValue;}
return(textValue||"");}
else
{return("");}}
function getNodeAttribute(node,attribute)
{if(node)
{var attributeValue=node.getAttribute(attribute);return(attributeValue||"");}
else
{return("");}}
function getTagNodes(xmldoc,tag)
{var ret=xmldoc.getElementsByTagName(tag);return(ret);}
function attachError(xmldoc)
{var bValid=parseBool(getTagValue(xmldoc,"valid"));if(bValid)
{strMsg="";}
else
{strMsg=getTagValue(xmldoc,"msg");}
var elid=getTagValue(xmldoc,"id");var elErr;if($(elid+"_msg"))
{elErr=$(elid+"_msg");elErr.innerHTML=strMsg;}
else
{elErr=document.createElement("span");elErr.id=elid+"_msg";elErr.innerHTML=strMsg;$(elid).parentNode.appendChild(elErr);}}
function attachMsg(container,strMsg)
{var elErr;var elErrMsgId=$(container).id+"_msg";if($(elErrMsgId))
{elErr=$(elErrMsgId);elErr.innerHTML=strMsg;}
else
{elErr=document.createElement("p");elErr.id=elErrMsgId;elErr.className='error-msg';elErr.innerHTML=strMsg;if($(container).firstChild)
{$(container).insertBefore(elErr,$(container).firstChild);}
else
{$(container).insertBefore(elErr,$(container));}}}
function attachElMsg(el,strMsg)
{var elErr;var elErrMsgId=$(el).id+"_msg";if($(elErrMsgId))
{elErr=$(elErrMsgId);elErr.innerHTML=strMsg;elErr.style.display="";}
else
{elErr=document.createElement("div");elErr.id=elErrMsgId;elErr.className="error-msg";elErr.innerHTML=strMsg;$(el.parentNode).insertBefore(elErr,$(el));}}
function showFormErrors(xmldoc,form)
{var formNodes=form.getElementsByTagName("input");for(var iNode=0;iNode<formNodes.length;iNode++)
{hilightErrorField(formNodes[iNode],false);if(formNodes[iNode].previousSibling&&formNodes[iNode].previousSibling.className=="error-msg")
{formNodes[iNode].previousSibling.style.display="none";}}
var formNodes=form.getElementsByTagName("textarea");for(var iNode=0;iNode<formNodes.length;iNode++)
{hilightErrorField(formNodes[iNode],false);if(formNodes[iNode].previousSibling&&formNodes[iNode].previousSibling.className=="error-msg")
{formNodes[iNode].previousSibling.style.display="none";}}
var errorNodes=xmldoc.getElementsByTagName(xfError);for(iNode=0;iNode<errorNodes.length;iNode++)
{var el=$(errorNodes[iNode].getAttribute(xfElement));if(el)
{var msg=errorNodes[iNode].getAttribute(xfMsg);attachElMsg(el,msg);hilightErrorField(el,true);}}}
function urlEncode(strUrl)
{strUrl=escape(strUrl);strUrl=strUrl.replace(/\+/g,"%2B");return(strUrl);}
function getFormFieldValue(form,strFieldName)
{form=$(form);var formNodes=form.getElementsByTagName("input");for(var iNode=0;iNode<formNodes.length;iNode++)
{var formNode=formNodes[iNode];if(formNode.name==strFieldName&&!formNode.disabled)
{switch(formNode.type.toLowerCase())
{case"text":return(iNode==0?"":"&")+formNode.name+"="+urlEncode(formNode.innerHTML);break;case"textarea":return(iNode==0?"":"&")+formNode.name+"="+urlEncode(formNode.value);break;case"hidden":return(iNode==0?"":"&")+formNode.name+"="+urlEncode(formNode.value);break;case"radio","checkbox":if(formNode.checked)return(iNode==0?"":"&")+urlEncode(formNode.name+"="+formNode.value);break;}}}}
function getFormFieldValueOnly(form,strFieldName,bPlainText)
{form=$(form);var formNodes=form.getElementsByTagName("input");for(var iNode=0;iNode<formNodes.length;iNode++)
{var formNode=formNodes[iNode];if(formNode&&formNode.name==strFieldName&&!formNode.disabled)
{var strValue;switch(formNode.type.toLowerCase())
{case"text":strValue=formNode.value;break;case"textarea":strValue=formNode.innerHTML;break;case"hidden":strValue=formNode.value;break;case"radio","checkbox":if(formNode.checked)
{strValue=formNode.value;}
else
{return"";}
break;}
if(bPlainText)
return(strValue);else
return urlEncode(strValue.replace(/ /g,"+"));}}
var inputUBound=iNode;formNodes=form.getElementsByTagName("select");for(iNode=0;iNode<formNodes.length;iNode++)
{var formNode=formNodes[iNode];if(formNode&&!formNode.disabled&&formNode.options&&formNode.options.length)
{return urlEncode(formNode.options[formNode.selectedIndex].value.replace(/ /g,"+"));}}
return("");}
function getFormPostData(form)
{form=$(form);var strPostData="";var formNodes=form.getElementsByTagName("input");for(var iNode=0;iNode<formNodes.length;iNode++)
{var formNode=formNodes[iNode];if(formNode&&!formNode.disabled)
{switch(formNode.type.toLowerCase())
{case"text":strPostData+=(iNode==0?"":"&")+formNode.name+"="+urlEncode(formNode.value);break;case"hidden":strPostData+=(iNode==0?"":"&")+formNode.name+"="+urlEncode(formNode.value);break;case"radio","checkbox":if(formNode.checked)strPostData+=(iNode==0?"":"&")+urlEncode(formNode.name+"="+formNode.value);break;}}}
var inputUBound=iNode;formNodes=form.getElementsByTagName("select");for(iNode=0;iNode<formNodes.length;iNode++)
{var formNode=formNodes[iNode];if(formNode&&!formNode.disabled&&formNode.options&&formNode.options.length)
{strPostData+=((inputUBound==0&&iNode==0)?"":"&")+formNode.name+"="+urlEncode(formNode.options[formNode.selectedIndex].value);}}
var selectUBound=iNode;formNodes=form.getElementsByTagName("textarea");for(iNode=0;iNode<formNodes.length;iNode++)
{var formNode=formNodes[iNode];strPostData+=(inputUBound==0&&selectUBound==0&&iNode==0?"":"&")+formNode.name+"="+urlEncode(formNode.value);}
return(strPostData);}
function populateSelect(el,strUrl,strTagName,strValueField,strDisplayField,defaultValue)
{var rqID=g_AJAXPool.Request(strUrl,{callback:onPopulateSelectResponse,args:{el:el,strValueField:strValueField,strDisplayField:strDisplayField,strTagName:strTagName,defaultValue:defaultValue}});}
function onPopulateSelectResponse(xmldoc,args)
{var selectNodes=xmldoc.getElementsByTagName(args.strTagName);var el=$(args.el);if(el.options.length)el.options.length=0;for(var iNode=0;iNode<selectNodes.length;iNode++)
{var selectNode=selectNodes[iNode];var strValue=selectNode.getAttribute(args.strValueField);var strDisplay=selectNode.getAttribute(args.strDisplayField);var bSelected=parseBool(selectNode.getAttribute(xfSelected));el.options[iNode]=new Option(strDisplay,strValue);if((args.defaultValue&&strValue==args.defaultValue)||bSelected)el.options[iNode].selected=true;}}
function populateSelect2(el,strUrl,oFields,defaultValue)
{var rqID=g_AJAXPool.Request(strUrl,{callback:onPopulateSelect2Response,args:{el:el,oFields:oFields,defaultValue:defaultValue}});}
function onPopulateSelect2Response(xmldoc,args)
{var el=$(args.el);el.options.length=0;var oFields=args.oFields;var nodes;var iDepth=0;var myNodes=xmldoc;nodes=myNodes.getElementsByTagName(oFields[iDepth].strTag);doSelectNodes2(el,nodes,iDepth,oFields);if(args.defaultValue)changeSelection(el,args.defaultValue);}
function makeStr(strChar,nTimes)
{var strText="";for(var i=0;i<nTimes;i++)
{strText+=strChar;}
return(strText);}
function doSelectNodes2(el,nodes,iDepth,oFields)
{var strDisplay="";var strValue="";for(var i=0;i<nodes.length;i++)
{var oField=oFields[iDepth];if(oField.strValueField)strValue=nodes[i].getAttribute(oField.strValueField);if(oField.strDisplayField)strDisplay=nodes[i].getAttribute(oField.strDisplayField);el.options[el.options.length]=new Option(strLimit(strDisplay,g_nMaxSelectLength),strValue);el.options[el.options.length-1].innerHTML=makeStr("&nbsp;",iDepth*4)+el.options[el.options.length-1].innerHTML;el.options[el.options.length-1].strTag=oField.strTag;if(oFields[iDepth+1])doSelectNodes2(el,nodes[i].getElementsByTagName(oFields[iDepth+1].strTag),iDepth+1,oFields);}}
function changeSelection(el,value)
{var el=$(el);for(var i=0;i<el.options.length;i++)
{var option=el.options[i];var strText=option.text.toString();if(option.value.toString().toLowerCase()==value.toString().toLowerCase()||strText.toLowerCase().replace(/ /g,"")==value.toString().toLowerCase().replace(/ /g,""))
{option.selected=true;return;}
else
{option.selected=false;}}}
function findPosX(obj)
{var curleft=0;if(obj.parentNode&&obj.offsetParent)
{while(obj.offsetParent)
{curleft+=obj.offsetLeft;obj=obj.offsetParent;}}
else if(obj.x)
curleft=obj.x;return curleft;}
function findPosY(obj)
{var curtop=0;if(obj.parentNode&&obj.offsetParent)
{while(obj.offsetParent)
{curtop+=obj.offsetTop;obj=obj.offsetParent;}}
else if(obj.y)
curtop=obj.y;return curtop;}
function isIE()
{var IE4plus=(document.all)?true:false;var browser=navigator.userAgent.toLowerCase();if(IE4plus&&browser.indexOf("msie 6")!=-1)return(6);if(IE4plus&&browser.indexOf("msie 7")!=-1)return(7);if(IE4plus&&browser.indexOf("msie")!=-1)return(true);}
function isSafari()
{var browser=navigator.userAgent.toLowerCase();var bIsSafari=(browser.indexOf("safari")!=-1)?true:false;return(bIsSafari);}
function isFF()
{return((!document.all&&document.implementation)?true:false);}
function isFFMac()
{return(isFF()&&(navigator.appVersion.indexOf("Mac")!=-1)?true:false);}
function isOpera()
{var browser=navigator.userAgent.toLowerCase();var bIsSafari=(browser.indexOf("opera")!=-1)?true:false;return(bIsSafari);}
function diff(n1,n2)
{var a=n1-n2;var b=n2-n1;return(a>b?a:b);}
function preventDefaultEvent(e)
{if(!e)e=event;if(typeof e.preventDefault=='function'&&e.cancelable)
{e.preventDefault();}
else
{e.returnValue=false;}}
function stopEventBubble(e)
{if(!e)e=event;if(e)
{if(isFF())
{e.stopPropagation();}
else
{e.cancelBubble=true;}}}
function mouseMoveElement(e)
{if(!e)e=event;if(((!isIE()||!isFF())&&e.button==0)||((isIE()||isSafari())&&e.button==1))
{g_Mouse.bMouseMoveInitialized=true;preventDefaultEvent(e);g_Mouse.targetObject=this.parentNode;g_Mouse.button=e.button;g_Mouse.offset=getTargetOffset(e);g_Mouse.dragstart={x:g_Mouse.position.x,y:g_Mouse.position.y};g_Mouse.onmove=doMouseMoveElement;stopEventBubble(e);}}
function doMouseMoveElement()
{var object=g_Mouse.targetObject;if(diff(g_Mouse.position.x,g_Mouse.dragstart.x)<1)
{return;}
else
{g_Mouse.onmove=null;}
if(object&&(!object.dragHandle||targetIsHandle(object)))
{g_Mouse.bMouseMoveInProgress=true;g_Mouse.callback=dragElement;}}
function stopMouseMoveElement()
{g_Mouse.targetObject=null;g_Mouse.onmove=null;g_Mouse.callback=null;g_Mouse.bMouseMoveInProgress=false;}
function showPhantomObject(object)
{if(object.previousSibling)
{var nDistance;if(object.nextSibling)
{nDistance=getDistanceBetweenObjects(object.previousSibling,object.nextSibling);}
else
{nDistance=getHeight(object);}
showPhantomObject.lastObjectChangedMargin=object.previousSibling.style.marginBottom;object.previousSibling.style.marginBottom=px(nDistance);showPhantomObject.lastObjectChanged=object.previousSibling;showPhantomObject.lastDirection="previous";}
else if(object.nextSibling)
{var containerY=findPosY(object.parentNode.parentNode);var nextY=findPosY(object.nextSibling);var nDistance=nextY-containerY
showPhantomObject.lastObjectChangedMargin=object.nextSibling.style.marginTop;object.nextSibling.style.marginTop=px(nDistance);showPhantomObject.lastObjectChanged=object.nextSibling;showPhantomObject.lastDirection="next";}}
function hidePhantomObject()
{if(showPhantomObject.lastDirection=="previous")
{showPhantomObject.lastObjectChanged.style.marginBottom=showPhantomObject.lastObjectChangedMargin;}
else if(showPhantomObject.lastDirection=="next")
{showPhantomObject.lastObjectChanged.style.marginTop=showPhantomObject.lastObjectChangedMargin;}
if(showPhantomObject.lastObjectChanged&&showPhantomObject.lastObjectChanged.pid)
{var p=getFolder(showPhantomObject.lastObjectChanged.pid);if(p&&p.shadow)
{p.shadow=doShadow(p);}}
showPhantomObject.lastDirection=null;}
function setMouseOffset(e)
{var t=getTarget(e);if(t)
{var x=g_Mouse.position.x-findPosX(t);var y=g_Mouse.position.y-findPosY(t);g_Mouse.offset={x:x,y:y};}
else
{g_Mouse.offset={x:0,y:0};}
if(!g_Mouse.offset.x||g_Mouse.offset.x<10)g_Mouse.offset.x=10;if(!g_Mouse.offset.y||g_Mouse.offset.y<10)g_Mouse.offset.y=10;}
function setDragTarget(e,object)
{if(!object)object=this;if(!e)e=event;g_Mouse.bJustDoneDragDrop=false;g_Mouse.bDragDropInitialized=true;if(((!isIE()||!isFF())&&e.button==0)||((isIE()||isSafari())&&e.button==1))
{preventDefaultEvent(e);stopEventBubble(e);g_Mouse.targetObject=getParentNodeByFlag(object,"bDragable");g_Mouse.button=e.button;setMouseOffset(e);g_Mouse.dragstart={x:g_Mouse.position.x,y:g_Mouse.position.y};g_Mouse.onmove=doSetDragTarget;}
return false;}
function doSetDragTarget()
{if(!g_Mouse.bDragDropInitialized||(diff(g_Mouse.position.x,g_Mouse.dragstart.x)<g_nObjectDragSens&&diff(g_Mouse.position.y,g_Mouse.dragstart.y)<g_nObjectDragSens))
{preventDefaultEvent(g_Mouse.e);return false;}
else
{g_Mouse.onmove=null;}
var object=g_Mouse.targetObject;g_Mouse.bDragDropInProgress=true;var tooltip=getTooltip();if(tooltip)tooltip.hide();if((!object.dragHandle||targetIsHandle(object)))
{closeAllMenus();if(object.objectType!="subfolder")showPhantomObject(object);g_Mouse.bCheckDropTarget=true;if(object.parentNode.tagName!="BODY")recordElementPosition(object);var nWidth=getWidth(object);if(object.objectType=="basefolder"||object.objectType=="fol"||object.objectType=="subfolder")removeSubfolders(object);removeElement(object);if(object.objectType!="fol")
{var l=getLinkObject(object.nID);if(l)removeElement(l);delete link;}
if(object.pid)
{var p=getFolder(object.pid);if(p&&p.objectType=="subfolder")
{hideShadow(p);p.shadow=doShadow(p);}}
hideLinkButton(object);document.body.appendChild(object);object.style.zIndex=400;object.style.position="absolute";hideShadow(g_Mouse.targetObject);if(isFolder(g_Mouse.targetObject)||isLink(g_Mouse.targetObject))setOpacity(g_Mouse.targetObject,70);object.style.width=px(nWidth);g_Mouse.callback=dragElement;}}
function doDropCursor(object,column,activeFolder)
{if(mouseInBetweenObjectsY(activeFolder,activeFolder.nextSibling,5))
{showDropCursorH(activeFolder,activeFolder.nextSibling);g_Mouse.dropTarget=column;g_Mouse.dropTargetAnchor=activeFolder.nextSibling;return true;}
else if(mouseInBetweenObjectsY(activeFolder.previousSibling,activeFolder,5))
{showDropCursorH(activeFolder.previousSibling,activeFolder);g_Mouse.dropTarget=column;g_Mouse.dropTargetAnchor=activeFolder;return true;}
else
{return false;}}
function checkDropTarget(e,bClear)
{if(!e)e=event;if(bClear||(g_Mouse.previous&&diff(g_Mouse.position.x,g_Mouse.previous.x)<g_nMS&&diff(g_Mouse.position.y,g_Mouse.previous.y)<g_nMS))
{return false;}
g_Mouse.previous={x:g_Mouse.position.x,y:g_Mouse.position.y};if(g_Mouse.previousTabButton)
{g_Mouse.previousTabButton.firstChild.className="";g_Mouse.previousTabButton=null;}
if(bClear)return false;var targetObject=g_Mouse.targetObject;var column=getActiveColumn();var activeFolder,tabButton;if(column)
{activeFolder=getAnyActiveFolder(column);}
else
{activeFolder=getAnyActiveFolder(null);}
if(activeFolder&&!folderOverItself(activeFolder,targetObject))
{showMovingCursor();g_Mouse.dropTarget=activeFolder;g_Mouse.dropTargetAnchor=getActiveLink(activeFolder);if(g_Mouse.dropTargetAnchor&&g_Mouse.dropTargetAnchor.objectType=="fol")
{var f=function()
{if(!g_Mouse.dropTargetAnchor)return;if(getFolder(g_Mouse.dropTargetAnchor.nID))return;var folder=openSubfolder
(g_Mouse.position.x+16,g_Mouse.position.y,g_Mouse.dropTargetAnchor.parentNode.nID,g_Mouse.dropTargetAnchor.nID,g_Mouse.dropTargetAnchor.strName,true);if(folder)
{folder.lock("mouseover");checkDropTarget.nFrozenFolderID=g_Mouse.dropTargetAnchor.nID;}}
waitForMouse(g_Mouse.dropTargetAnchor,g_nDefaultSubfolderMouseWait,f,null);}
else if(!g_Mouse.dropTargetAnchor)
{var activeLinks=getActiveLinks(activeFolder);if(activeLinks&&activeLinks.length&&activeLinks[0]&&activeLinks[1])
{g_Mouse.dropTargetAnchor=activeLinks[1];showDropCursorH(activeLinks[0],activeLinks[1],findPosX(activeFolder),getWidth(activeFolder));return false;}}
if(g_Mouse.dropTargetAnchor&&g_Mouse.dropTargetAnchor.objectType)
{showDropCursorH(g_Mouse.dropTargetAnchor.previousSibling||null,g_Mouse.dropTargetAnchor,findPosX(activeFolder),getWidth(activeFolder));return false;}
else if(mouseBelowLastObjectY(activeFolder))
{g_Mouse.dropTargetAnchor=null;showDropCursorH(activeFolder.childNodes[activeFolder.childNodes.length-1],null,findPosX(activeFolder),(getWidth(activeFolder)));return false;}
return false;}
else if(tabButton=getActiveTabButton())
{if((getTabID(tabButton)!=myTabs.GetCurrentTabID())&&targetNotfvl())
{showMovingCursor();tabButton.firstChild.className="highlight";g_Mouse.previousTabButton=tabButton;g_Mouse.dropTargetAnchor=null;g_Mouse.dropTarget=tabButton;hideDropCursorH();return false;}}
else if(column&&targetNotfvl())
{showMovingCursor();var activeFolders=getActiveFolders(column);if(activeFolders&&activeFolders[0]&&activeFolders[1])
{showDropCursorH(activeFolders[0],activeFolders[1]);this.previousColumn=column;g_Mouse.dropTarget=column;g_Mouse.dropTargetAnchor=activeFolders[1];return false;}
else
{g_Mouse.dropTargetAnchor=null;if(mouseAboveFirstObjectY(column))
{showDropCursorH(null,column.childNodes[0]);g_Mouse.dropTargetAnchor=column.childNodes[0];}
else if(mouseBelowLastObjectY(column))
{showDropCursorH(column.childNodes[column.childNodes.length-1],null);}
else if(column.childNodes.length==0)
{showDropCursorH(null,column);}
g_Mouse.dropTarget=column;return false;}}
if(targetNotfvl())
{showNotAllowedCursor();hideDropCursorH();g_Mouse.dropTarget=null;g_Mouse.dropTargetAnchor=null;return false;}}
function releaseDragTarget(e)
{if(!e)e=event;stopEventBubble(e);preventDefaultEvent(e);g_Mouse.onmove=null;g_Mouse.callback=null;if(g_Mouse.previousTabButton)
{g_Mouse.previousTabButton.firstChild.className="";g_Mouse.previousTabButton=null;}
resetLastCursorChangeElement();hideDropCursorH();var bSuccessfulDrop=false;var targetObject=g_Mouse.targetObject;var dropTargetAnchor=g_Mouse.dropTargetAnchor;if(targetObject)
{showLinkButton(targetObject);removeSubfolders(targetObject);removeElement(targetObject);if(targetObject.objectType=="fol")
{var subfolderInstance=getFolder(targetObject.nID);removeElement(subfolderInstance);}
if(isFolder(targetObject)||isLink(g_Mouse.targetObject))setOpacity(targetObject,100);var dropTarget=g_Mouse.dropTarget;if(dropTarget)
{var el=targetObject;switch(getObjectType(dropTarget))
{case"tab":changeTargetSubfolderToBasefolder();moveFolderToTab(el,myTabs.GetCurrentTabID(),getTabID(dropTarget));bSuccessfulDrop=true;closeAllSubfolders();break;case"column":if(el.objectType!="fvl")
{moveFolderToRoot(el,dropTarget,dropTargetAnchor);bSuccessfulDrop=true;}
closeAllSubfolders();break;case"basefolder":removeSubfolders(dropTarget);if(dropTarget&&(!dropTargetAnchor||isLink(dropTargetAnchor)))
{changeTargetSubfolderToBasefolder();moveFolderToFolder(el,el.pid,dropTarget.nID,dropTargetAnchor);bSuccessfulDrop=true;}
closeAllSubfolders();break;case"subfolder":removeSubfolders(dropTarget);changeTargetSubfolderToBasefolder();if((!dropTargetAnchor||(dropTargetAnchor&&!dropTargetAnchor.objectType))||isLink(dropTargetAnchor))
{moveFolderToFolder(el,el.pid,dropTarget.nID,dropTargetAnchor);bSuccessfulDrop=true;}
else
{bSuccessfulDrop=false;}
break;default:bSuccessfulDrop=false;break;}}
g_Mouse.bDragDropInProgress=false;}
if(!bSuccessfulDrop&&targetObject)
{revertDragDrop(targetObject);closeAllSubfolders();}
else if(targetObject)
{targetObject.style.zIndex=10;}
g_Mouse.bJustDoneDragDrop=true;clearDropTarget();}
function startTabMove(e,object)
{if(!object)object=this;if(!e)e=event;preventDefaultEvent(e);if(((!isIE()||!isFF())&&e.button==0)||((isIE()||isSafari())&&e.button==1))
{g_Mouse.bTabMoveInitialized=true;g_Mouse.targetObject=object?object:this;g_Mouse.button=e.button;setMouseOffset(e);g_Mouse.dragstart={x:g_Mouse.position.x,y:g_Mouse.position.y};g_Mouse.onmove=doStartTabMove;}
return false;}
function doStartTabMove()
{var object=g_Mouse.targetObject;if(diff(g_Mouse.position.x,g_Mouse.dragstart.x)<g_nTabDragSens)
{preventDefaultEvent(g_Mouse.e);return false;}
else
{g_Mouse.onmove=null;}
g_Mouse.bCheckTabMove=true;g_Mouse.bTabMoveInProgress=true;if(object.parentNode.tagName!="BODY")recordElementPosition(object);var nWidth=getWidth(object);var y=findPosY(object);recordElementPosition(object);var objectParent=object.parentNode;removeElement(object);removeElement(objectParent);document.body.appendChild(object);object.style.zIndex=100;object.style.position="absolute";object.style.top=px(y);object.className="tablink";setOpacity(object,70);object.style.width=px(nWidth);g_Mouse.callback=dragElementX;}
function checkTabMove(e,bClear)
{if(bClear||(g_Mouse.previous&&diff(g_Mouse.position.x,g_Mouse.previous.x)<g_nMS))
{return false;}
g_Mouse.bValidTabPosition=false;if(g_Mouse.position.x<2||g_Mouse.position.x>getWidth(document.body)-5)
{cancelTabMove();g_Mouse.bValidTabPosition=false;return false;}
g_Mouse.dropTarget=null;g_Mouse.bTabMoveInProgress=true;g_Mouse.previous={x:g_Mouse.position.x,y:g_Mouse.position.y};hideDropCursorV();if(bClear)return false;var tabButton=getActiveTabButtonX();if(tabButton)
{showMovingCursor();g_Mouse.dropTargetAnchor=tabButton;showDropCursorV(tabButton.previousSibling,tabButton,0,getHeight(tabButton),8);g_Mouse.bValidTabPosition=true;}
else
{var tabEl=getTabContainer();if(mousePastLastObjectX(tabEl))
{tabButton=tabEl.childNodes[tabEl.childNodes.length-1];var firstTab=tabEl.childNodes[0];g_Mouse.dropTargetAnchor=null;showDropCursorV(null,tabButton,0,getHeight(firstTab),8);g_Mouse.bValidTabPosition=true;}
else
{g_Mouse.bValidTabPosition=false;}}
if(tabButton==g_Mouse.targetObject)g_Mouse.bValidTabPosition=false;}
function clearTabMove()
{g_Mouse.bCheckTabMove=false;g_Mouse.onmove=null;g_Mouse.bTabMoveInProgress=false;checkTabMove(null,true);}
function releaseTabMove(e)
{if(!e)e=event;stopEventBubble(e);g_Mouse.onmove=null;g_Mouse.callback=null;resetLastCursorChangeElement();hideDropCursorV();if(!g_Mouse.bTabMoveInProgress)
{return false;}
if(!g_Mouse.bValidTabPosition)
{cancelTabMove();return false;}
preventDefaultEvent(e);var tab=g_Mouse.targetObject;removeElement(tab);var tabEl=getTabContainer();resetTabPosition(tab);var li=document.createElement("li");li.appendChild(tab);li.id="tab_"+tab.nID;if(myTabs.GetCurrentTabID()==tab.nID)
{tab.className="current-tab";}
setOpacity(tab,100);tabEl.insertBefore(li,g_Mouse.dropTargetAnchor||tabEl.childNodes[tabEl.childNodes.length-1]);updateTabPositions();clearTabMove();}
function strLimit(strText,nLength)
{if(strText.length>nLength)
{return(strText.substr(0,nLength)+"...");}
else
{return(strText.substr(0,nLength));}}
function cancelTabMove()
{setOpacity(g_Mouse.targetObject,100);hideDropCursorV();resetDOMPosition(g_Mouse.targetObject);resetTabPosition(g_Mouse.targetObject);clearTabMove();g_Mouse.onmove=null;g_Mouse.callback=null;g_Mouse.bTabMoveInProgress=false;g_Mouse.bTabMoveInitialized=false;g_Mouse.bCheckTabMove=false;}
function resetTabPosition(tab)
{resetElementPosition(tab);tab.className=(getTabID(tab)==myTabs.GetCurrentTabID())?"current-tab":"tab";}
function folderOverItself(a,b)
{if(a.nID.toString()!=b.nID.toString())
{return(false);}
else
{removeElement(a);g_Mouse.dropTarget=null;g_Mouse.dropTargetAnchor=null;return(true);}}
function showNormalCursor(element)
{var el=element||getTarget(g_Mouse.e);el.style.cursor="";g_Mouse.lastCursorChangeElement=null;}
function showMovingCursor(element)
{resetLastCursorChangeElement();var el=element||getTarget(g_Mouse.e);el.style.cursor="move";g_Mouse.lastCursorChangeElement=el;}
function showNotAllowedCursor(element)
{resetLastCursorChangeElement();var el=element||getTarget(g_Mouse.e);el.style.cursor="not-allowed";g_Mouse.lastCursorChangeElement=el;}
function resetLastCursorChangeElement()
{if(g_Mouse.lastCursorChangeElement)showNormalCursor(g_Mouse.lastCursorChangeElement);}
function targetNotfvl()
{if(g_Mouse.targetObject.objectType=='fvl'||g_Mouse.targetObject.objectType=='tablink')
{showNotAllowedCursor();return(false);}
else
{return(true);}}
function getDistanceBetweenObjects(object1,object2)
{var nResultMargin=(object1&&object2)?findPosY(object2)-(findPosY(object1)+getHeight(object1)):0;return(nResultMargin);}
function showDropCursorH(object1,object2,nLeft,nWidth)
{var dc=$("drop-cursor-h");if(!dc)
{dc=document.createElement("div");dc.id="drop-cursor-h";dc.innerHTML="<div class='left'></div><div class='mid'></div><div class='right'></div>";document.body.appendChild(dc);}
if(object1||object2)
{var bParentIsSubfolder=false;if((object1&&object1.parentNode&&object1.parentNode.objectType=="subfolder")||(object2&&object2.parentNode&&object2.parentNode.objectType=="subfolder"))bParentIsSubfolder=true;var nMarginX=isIE()?3:isFF()?2:1;var nOffsetX=(isSafari()&&!bParentIsSubfolder)?9:isFF()?1:0;var nMarginY=0;if(object1&&object1.style&&object1.style.marginBottom)
{var nMarginBottom=parseInt(object1.style.marginBottom);if(nMarginBottom!='NaN'&&object2&&nMarginBottom==getHeight(g_Mouse.targetObject))
nMarginY+=Math.round(nMarginBottom/2);}
dc.style.width=px((nWidth?nWidth:(object2?getWidth(object2):getWidth(object1)))+nMarginX);dc.style.left=px((nLeft?nLeft:object2?findPosX(object2):findPosX(object1))+nOffsetX);if(object1&&object2&&object1.objectType&&object2.objectType&&(object1.objectType=="basefolder"||object1.objectType=="subfolder")&&(object2.objectType=="basefolder"||object2.objectType=="subfolder"))
{dc.style.top=px((object2?findPosY(object2)-(getDistanceBetweenObjects(object1,object2)/2):(findPosY(object1)+(getHeight(object1))))-nMarginY);}
else
{dc.style.top=px((object2?findPosY(object2)+(isFF()?2:0):(findPosY(object1)+(getHeight(object1))))-nMarginY);}
dc.style.display='block';}}
function showDropCursorV(object1,object2,nTop,nHeight,nOffsetX)
{var dc=$("drop-cursor-v");if(!dc)
{dc=document.createElement("div");dc.id="drop-cursor-v";dc.innerHTML="<div class='top'></div><div class='mid'></div><div class='bottom'></div>";document.body.appendChild(dc);}
if(object1||object2)
{dc.style.height=px((nHeight?nHeight:(object2?getHeight(object2):getHeight(object1))));dc.style.top=px(nTop?nTop:object2?findPosY(object2):findPosY(object1));dc.style.left=px((object2?findPosX(object2):(findPosX(object1)+(getWidth(object1))))+nOffsetX);dc.style.display='block';}}
function hideDropCursorH()
{var dc=$("drop-cursor-h");if(dc)dc.style.display='none';}
function hideDropCursorV()
{var dc=$("drop-cursor-v");if(dc)dc.style.display='none';}
function clearDropTarget()
{g_Mouse.bCheckDropTarget=false;g_Mouse.onmove=null;checkDropTarget(null,true);}
function changeTargetSubfolderToBasefolder()
{if(g_Mouse.targetObject.objectType=="subfolder")
{g_Mouse.targetObject.objectType="basefolder";}}
function cancelDragDrop()
{hidePhantomObject();if(!g_Mouse.bDragDropInProgress)return;if(g_Mouse.targetObject)
{revertDragDrop(g_Mouse.targetObject);}
g_Mouse.bDragDropInProgress=false;g_Mouse.callback=null;resetLastCursorChangeElement();hideDropCursorH();clearDropTarget();}
function revertDragDrop(el)
{if(!el)return;setOpacity(el,100);el.style.zIndex=10;hidePhantomObject();if(el.parentNode)
{el.parentNode.removeChild(el);}
if(el.previousContainer)
{el.previousContainer.insertBefore(el,el.previousNextSibling||null);resetElementPosition(el);return;}
else if(el.pid)
{getFavourites(getFolder(el.pid),el.pid);}
else
{document.location.reload();}}
function hideLinks(folder)
{if(folder.objectType=="basefolder"||folder.objectType=="subfolder")
{for(var i=0;i<folder.childNodes.length;i++)
{if(folder.childNodes[i].style&&i>0)folder.childNodes[i].style.visibility="hidden";}}}
function showLinks(folder)
{if(folder.objectType=="basefolder"||folder.objectType=="subfolder")
{for(var i=0;i<folder.childNodes.length;i++)
{if(folder.childNodes[i].style&&i>0)folder.childNodes[i].style.visibility="visible";}}}
function recordElementPosition(el)
{el.previousPosition=el.style.position;el.previousWidth=el.style.width||"";el.absWidth=getWidth(el);el.absHeight=getHeight(el);el.previousLeft=el.style.left;el.previousTop=el.style.top;el.previousContainer=el.parentNode;el.previousNextSibling=el.nextSibling||null;el.previousZIndex=el.style.zIndex;}
function resetDOMPosition(el)
{if(el.parentNode)el.parentNode.removeChild(el);if(el.previousContainer)el.previousContainer.insertBefore(el,el.previousNextSibling);}
function resetElementPosition(el)
{el.style.position=el.previousPosition||"";el.style.width=el.previousWidth||"";el.style.left=el.previousLeft||"";el.style.top=el.previousTop||"";el.style.zIndex=el.previousZIndex||"";}
function doborder(object,colour)
{if(!doborder.lastObject)
{doborder.lastObject=new Array();}
else
{if(doborder.lastObject[colour])doborder.lastObject[colour].style.border=doborder.lastBorder;}
doborder.lastBorder=object.style.border;object.style.border="1px solid "+colour;doborder.lastObject[colour]=object;}
function getLinkWidth(linkNode)
{if(linkNode.objectType=="fol"||linkNode.objectType=="fvl")
{var dv=linkNode.getElementsByTagName("div")[0];var a=linkNode.getElementsByTagName("a")[0];if(a&&dv)return(dv.clientWidth+a.clientWidth+20);}
else
{return(0);}}
function getWidth(object)
{return(object.offsetWidth||0);}
function getHeight(object)
{return(object.offsetHeight||0);}
function getObjectType(object)
{if(object.objectType)
return(object.objectType);else if(getTabID(object))
return("tab");}
function isLink(object)
{if(object.objectType&&(object.objectType=="fol"||object.objectType=="fvl"))return(true);return(false);}
function EnsureYIsOnScreen(y,height)
{if((y+height-document.documentElement.scrollTop)>(document.documentElement.clientHeight))
y=y-height;if(y<0)y=0;return(y);}
function EnsureXIsOnScreen(x,width)
{if(((x+width)-document.documentElement.scrollLeft)>(document.documentElement.clientWidth))
{x=x-width;}
if(x<0)x=0;return(x);}
function updateBaseFolderPosition(el,column,activeFolder)
{if(column.childNodes.length)
{var nFolderID=activeFolder?activeFolder.nID:null;var strList=listInsertAfter(getColumnFolderPositionList(column),nFolderID,el.nID);}
else
{var strList=el.nID;}
setFolderPosition(el.nID,column.nID,strList);}
function getNewFolderPositionList(el,column,activeFolder)
{if(column.childNodes.length)
{var strList;if(activeFolder)
{var nFolderID=activeFolder.nID;strList=listInsertBefore(getColumnFolderPositionList(column),nFolderID,el.nID);}
else
{strList=listInsertLast(getColumnFolderPositionList(column),el.nID);}}
else
{var strList=el.nID;}
return(strList);}
function dragDropTarget(e)
{if(!e)e=event;if(g_Mouse&&g_Mouse.bDragDropInProgress)
{this.style.backgroundColor="#FF0000";}}
function waitForMouse(el,nMillisecondsWait,fn,caller)
{var id=el.id;if(!id)
{id=genID();el.id=id;}
var waitFunc=function(){if(mouseInObjectBounds(id))fn();if(caller&&caller.bProcessing)caller.bProcessing=false;};el.mtid=setTimeout(waitFunc,nMillisecondsWait);}
function cancelMouseWait()
{clearTimeout(this.mtid);}
function genID()
{return("anonid_"+Math.random().toString().replace(/\./,""));}
function getActiveElement(nodes)
{for(var i=0;i<nodes.length;i++)
{var node=nodes[i];if(mouseInObjectBounds(node))
{return(node);}}}
function getActiveElementZ(nodes,notThisNode)
{var nIndex;for(var i=0;i<nodes.length;i++)
{if(mouseInObjectBounds(nodes[i])&&(notThisNode==null||nodes[i]!=notThisNode))
{nIndex=i;}}
return(nodes[nIndex]);}
function getActiveElementW(nodes)
{for(var i=0;i<nodes.length;i++)
{if(mouseInObjectBoundsW(nodes[i]))
{return(nodes[i]);}}}
function getActiveElements(nodes)
{for(i=0;i<nodes.length;i++)
{if(mouseInBetweenObjectsY(nodes[i],nodes[i].nextSibling,5))
{return(Array(nodes[i],nodes[i].nextSibling));}}}
function getActiveColumnFolder(column)
{var node=getActiveElement(column.childNodes);if(node&&node.nextSibling)return(node.nextSibling);return(null);}
function getActiveFolder(column)
{var node=getActiveElement(column.childNodes);return(node);}
function getActiveSubfolder(notThisNode)
{var node=getActiveElementZ(getElementsByClass("subfolder",document.body,"div"),notThisNode);return(node);}
function getActiveFolders(column)
{if(column.childNodes.length)
{var nodes=getActiveElements(column.childNodes);return(nodes);}
else
{return(Array(0,0));}}
function getActiveLink(folder)
{var node=getActiveElement(folder.childNodes);if(node==folder.childNodes[0])return(folder.childNodes[1]);return(node);}
function getActiveLinks(folder)
{if(folder.childNodes.length)
{var nodes=getActiveElements(folder.childNodes);return(nodes);}
else
{return(Array(0,0));}}
function getActiveColumn()
{var myFavourites=$('myFavourites');var node=getActiveElementW(myFavourites.childNodes);return(node);}
function getActiveTabButton()
{var tabNodes=myTabs.childNodes;var node=getActiveElement(tabNodes);return(node);}
function getActiveTabButtonX()
{var tabNodes=myTabs.childNodes;var node=getActiveElementW(tabNodes);if(node!=tabNodes[tabNodes.length-1])
{return(node);}}
function setOpacity(element,percentage)
{if(percentage==100)
{if(isIE())
{element.style.filter=element.preFilter;element.preFilter=null;}
else
{element.style.opacity="";}}
else
{if(isIE())
{element.preFilter=element.style.filter;element.style.filter="alpha(opacity="+percentage+")";}
else
{element.style.opacity="."+Math.round(percentage/10);}}}
function dragElement()
{var element=g_Mouse.targetObject;element.style.left=px(g_Mouse.position.x-g_Mouse.offset.x);element.style.top=px(g_Mouse.position.y-g_Mouse.offset.y);if(element.shadow)
{var c=getShadowXY(element);element.shadow.style.left=px(c.x);element.shadow.style.top=px(c.y);}}
function dragElementX()
{var element=g_Mouse.targetObject;if(g_Mouse.position.x<0)return false;element.style.left=px(g_Mouse.position.x-g_Mouse.offset.x);if(element.shadow)
{element.shadow.style.left=px(g_Mouse.position.x-g_Mouse.offset.x+element.shadow.nAmount);}}
function getTargetOffset(e)
{if(!e)e=event;var OffsetX=e.offsetX;var OffsetY=e.offsetY;if(OffsetX!=undefined&&OffsetY!=undefined)return({x:OffsetX,y:OffsetY});var Element=getTarget(e);var CalculatedTotalOffsetLeft=0;var CalculatedTotalOffsetTop=0;while(Element.offsetParent)
{CalculatedTotalOffsetLeft+=Element.offsetLeft;CalculatedTotalOffsetTop+=Element.offsetTop;Element=Element.offsetParent;}
OffsetX=e.pageX-CalculatedTotalOffsetLeft;OffsetY=e.pageY-CalculatedTotalOffsetTop;return({x:OffsetX,y:OffsetY});}
function getMousePos(e){var posx=0;var posy=0;if(!e)var e=event;if(!e)return;if(e.pageX||e.pageY){posx=e.pageX;posy=e.pageY;}
else if(e.clientX||e.clientY){posx=e.clientX;if(document.body)posx+=document.body.scrollLeft;if(document.documentElement)posx+=document.documentElement.scrollLeft;posy=e.clientY;if(document.body)posy+=document.body.scrollTop
if(document.documentElement)posy+=document.documentElement.scrollTop;}
return({x:posx,y:posy});}
function listInsertAfter(strList,item1,item2)
{return(strList.replace(item1,item1+","+item2));}
function listInsertBefore(strList,item1,item2)
{return(strList.replace(item1,item2+","+item1));}
function listInsertFirst(strList,item)
{return(item+","+strList);}
function listInsertLast(strList,item)
{return(strList+","+item);}
function closeAllSubfolders()
{var subFolderNodes=getElementsByClass("subfolder",document.body,"div");for(var i=0;i<subFolderNodes.length;i++)
{var l=getLinkObject(subFolderNodes[i].nID);if(l)fHighlightOff(null,l);removeElement(subFolderNodes[i]);}}
function trackKeys(e)
{if(!e)e=event;var keyCode=e.which?e.which:event.keyCode;switch(keyCode)
{case 27:cancelDragDrop();closeAllMenus();hideTopDialog();break;}}
addEvent(document,"keydown",trackKeys);function px(n)
{return(n+"px");}
function loadHTML(el,strUrl)
{g_AJAXPool.Request(strUrl,{callback:setHTML,bText:true,args:{el:el}});}
function setHTML(xml,args)
{args.el.innerHTML=xml;}
function setFocus(el)
{if(el.enabled!=false&&(!el.style.visibility||el.style.visibility.toLowerCase()=="visible")&&(!el.style.display||el.style.display.toLowerCase()!="none"))
{el.focus();}}
var g_arrDialogs=Array();function Dialog(strID,strTitle,bOverlay,strClass)
{var bPosition=false;strID="dialog-"+strID;var _Dialog=Dialog.prototype;this.bOverlay=bOverlay;_Dialog.createDialog=function(strID)
{var dialog=document.createElement("div");dialog.className=strClass||"dialog";dialog.id=strID;var toolbox=document.createElement("div");toolbox.className="toolbox";toolbox.id=strID+"-toolbox";if(!strTitle)strTitle="";dialog.appendChild(toolbox);var html=document.createElement("div");html.className="html";html.id='html_'+strID;dialog.appendChild(html);dialog.onClose=new customEvent();toolbox.onmousedown=mouseMoveElement;dialog.style.display='none';document.body.appendChild(dialog);if(strTitle.length>40)strTitle=strTitle.substring(0,40)+"...";toolbox.innerHTML="<h3>"+strTitle+"</h3>";var x=document.createElement("div");x.onclick=new Function("closeDialogWithId( '"+strID.replace(/dialog\-/,"")+"' );");x.className="close";toolbox.appendChild(x);if(bOverlay)
dialog.style.zIndex="52";else
dialog.style.zIndex="51";dialog.bOverlay=bOverlay;if(!bOverlay)
{hideAllDialogs();showDialogPlate();}
_Dialog.hideSelects();return(dialog);}
_Dialog.center=function()
{bCenter=true;bPosition=false;_Dialog.centerDialog();}
_Dialog.centerDialog=function()
{var dialog=$(content);dialog.style.top=px(Math.round((document.documentElement.clientHeight)/2)-(dialog.clientHeight/2));dialog.style.left=px(Math.round(document.body.clientWidth/2)-(dialog.clientWidth/2));}
_Dialog.positionDialog=function()
{bPosition=true;bCenter=false;}
_Dialog.doPositionDialog=function()
{var dialog=$(content);if(bPosition)
{var x,y;if(g_Mouse&&g_Mouse.position)
{x=g_Mouse.position.x;y=g_Mouse.position.y;}
else
{x=0;y=0;g_Mouse.position={x:x,y:y};}
x=EnsureXIsOnScreen(x,getWidth(dialog));y=EnsureYIsOnScreen(y,getHeight(dialog));dialog.style.left=px(x);dialog.style.top=px(y);}
dialog.shadow=doShadow(dialog);}
_Dialog.close=function()
{var dialog=this.content;var id=dialog.id;dialog.onClose.raise();hideShadow(dialog);_Dialog.showSelects();removeElement(dialog);delete g_arrDialogs[id];delete dialog;}
_Dialog.setHTML=function(xmltext,args)
{content.args=args;document.getElementById('html_'+content.id).innerHTML=xmltext;content.style.display='';if(bCenter)
{_Dialog.centerDialog();}
_Dialog.doPositionDialog();if(args&&args.init)args.init();var inputNodes=content.getElementsByTagName("input");var firstInput;for(var i=0;!firstInput&&i<inputNodes.length;i++)
{if(inputNodes[i].type.toLowerCase()=="text"&&inputNodes[i].enabled!=false&&(!inputNodes[i].style.visibility||inputNodes[i].style.visibility.toLowerCase()=="visible")&&(!inputNodes[i].style.display||inputNodes[i].style.display.toLowerCase()!="none"))
{firstInput=inputNodes[i];}}
if(firstInput)
{if(!firstInput.id)firstInput.id=genID();setTimeout("var fi = $('"+firstInput.id+"'); if( fi ) fi.focus();",100);}}
_Dialog.loadHTML=function(strUrl,args)
{g_AJAXPool.Request(strUrl,{callback:_Dialog.setHTML,bText:true,args:args});}
_Dialog.hideSelects=function()
{var selectNodes=document.getElementsByTagName("select");for(var iNode=0;iNode<selectNodes.length;iNode++)
{var node=selectNodes[iNode];if(findPosX(node)>=findPosX(content)&&findPosX(node)<(findPosX(content)+content.clientWidth)&&findPosY(node)>=findPosY(content)&&findPosY(node)<(findPosY(content)+content.clientHeight))
{if(node.style.visibility!="hidden")
{node.style.visibility="hidden";hiddenSelects.push(node);}}}}
_Dialog.showSelects=function()
{var selectNodes=hiddenSelects;if(selectNodes&&selectNodes.length)
{for(var iNode=0;iNode<selectNodes.length;iNode++)
{var node=selectNodes[iNode];if(node.style.visibility=="hidden")
{node.style.visibility="visible";}}
hiddenSelects.length=0;}}
bCenter=false;hiddenSelects=Array();content=_Dialog.createDialog(strID);this.content=content;g_arrDialogs[strID]=this;}
function closeDialogWithId(strID)
{if($("dialog-"+strID))
{var dialog=getDialogObject("dialog-"+strID);closeDialog(dialog);}}
function closeDialog(dialog)
{if(dialog)
{if(dialog.close)
{dialog.close();}
else
{getDialogObject(dialog.id).close();}
if(!dialog.bOverlay)hideDialogPlate();}}
function getDialogObject(dialogElement)
{return(g_arrDialogs[$(dialogElement).id]);}
function getDialog(el)
{var element=$(el);for(;element&&element.className!='dialog';element=element.parentNode){}
if(element&&element.className=='dialog')return(element);}
function hideAllDialogs()
{for(iNode in g_arrDialogs)
{closeDialog(g_arrDialogs[iNode]);}
hideDialogPlate();}
function isHidden(el)
{return(el.style.display=="none"?true:false);}
function hideTopDialog()
{var dialog,nZIndex=0,nCount=0;for(iNode in g_arrDialogs)
{if(!isHidden(g_arrDialogs[iNode].content)&&g_arrDialogs[iNode].content.style.zIndex>=nZIndex)
{dialog=g_arrDialogs[iNode];nZIndex=g_arrDialogs[iNode].content.style.zIndex;}
nCount++;}
if(dialog)
{closeDialog(dialog);if(nCount==1)hideDialogPlate();}}
function showDialogPlate()
{var plate=$("dialog-plate");if(!plate)
{plate=document.createElement("div");plate.id="dialog-plate";document.getElementsByTagName("body")[0].appendChild(plate);}
sizeDialogPlate();plate.style.display='';}
function sizeDialogPlate()
{var plate=$("dialog-plate");if(plate)
{plate.style.height=px(document.body.scrollHeight);plate.style.width=px(document.body.scrollWidth);}}
function hideDialogPlate()
{var plate=$("dialog-plate");if(plate)
{plate.style.display='none';}}
function userConfirm(strTitle,strButtonText,func,strText,strImgClass)
{closeAllSubfolders();var dialog=new Dialog("userConfirm",strTitle);var d=$("html_dialog-userConfirm");if(strImgClass&&strImgClass.length)
{d.innerHTML+="<div class=\""+strImgClass+" uc-b\"></div>";}
d.innerHTML+="<div class='ucc'></div>";var ucc=getElementByExactClass("ucc",d,"div");if(strText&&strText.length)
{ucc.innerHTML+="<div class='txt'>"+strText+"</div>";}
else
{ucc.innerHTML+="<div class='txt'>Would you like to perform this operation?</div>";}
var btc=document.createElement("div");var button=$("doUserConfirm")
if(!button)
{button=document.createElement("input");button.value=strButtonText||"Confirm";button.value+="...";button.type="button";button.id="doUserConfirm";button.className="stButton";btc.appendChild(button);var cancel=document.createElement("input");cancel.onclick=function(){closeDialogWithId('userConfirm');};cancel.value="Cancel";cancel.style.marginLeft="3px";cancel.type="button";cancel.className="stButton";btc.appendChild(cancel);}
button.value=strButtonText;ucc.appendChild(btc);var confirmFunc=new Function(func.toString()+"\ncloseDialogWithId( 'userConfirm' );");button.onclick=confirmFunc;dialog.content.style.display='';dialog.positionDialog();dialog.doPositionDialog();}
function showEditSectionDialog(nID)
{var dialog=new Dialog("editSection","Edit Section");dialog.positionDialog();dialog.loadHTML("/html/form_editSection.asp?id="+nID,{nID:nID,init:initShowEditSectionDialog});}
function initShowEditSectionDialog()
{var dialog=$('dialog-editSection');var oFields=[{strTag:xfCategory,strDisplayField:xfValue,strValueField:xfID},{strTag:xfSubCategory,strDisplayField:xfValue,strValueField:xfID}];populateSelect2('pid','/ajax-asp/GetCategories.ajax.asp',oFields,dialog.args.nCategoryID);}
function showEditAccountDefaultDialog(nID,nCategoryID)
{var dialog=new Dialog("editAccountDefaultLink","Edit Link");dialog.positionDialog();dialog.loadHTML("/html/forum_editAccountDefault.asp?id="+nID,{nCategoryID:nCategoryID,nID:nID,init:initShowEditAccountDefaultDialog});}
function initShowEditAccountDefaultDialog()
{var dialog=$('dialog-editAccountDefaultLink');var oFields=[{strTag:xfCategory,strDisplayField:xfValue,strValueField:xfID},{strTag:xfSubCategory,strDisplayField:xfValue,strValueField:xfID}];populateSelect2('pid','/ajax-asp/GetCategories.ajax.asp',oFields,dialog.args.nCategoryID);}
function showAddAccountDefaultDialog(pid)
{var dialog=new Dialog("addAccountDefaultLink","Add New Link");dialog.positionDialog();dialog.loadHTML("/html/forum_addAccountDefault.asp?id="+pid,{pid:pid,init:initAddAccountDefaultDialog});}
function initAddAccountDefaultDialog(dialog)
{var dialog=$('dialog-addAccountDefaultLink');var oFields=[{strTag:xfCategory,strDisplayField:xfValue,strValueField:xfID},{strTag:xfSubCategory,strDisplayField:xfValue,strValueField:xfID}];populateSelect2('pid','/ajax-asp/GetCategories.ajax.asp',oFields,dialog.args.pid);}
function showAddLinkCategoryDialog(nSelID)
{var dialog=new Dialog("addLinkCategory","Add New Link Category",true);dialog.positionDialog();dialog.loadHTML("/html/form_addLinkCategory.asp?id="+nSelID,{init:initAddLinkCategoryDialog});}
function initAddLinkCategoryDialog()
{}
function showAddFavouriteDialog(nFolderID,bCenter)
{var dialog=new Dialog("addFavourite","Add New Bookmark");if(bCenter)
dialog.center();else
dialog.positionDialog();var pid;var strFolderType="";var strFolderName="";var folder=getFolder(nFolderID);if(folder)
{pid=folder.pid;strFolderType=folder.objectType;strFolderName=folder.strName;}
dialog.loadHTML("/html/form_AddFavouriteBookmarklet.html",{nFolderID:nFolderID,pid:pid,strFolderType:strFolderType,strFolderName:strFolderName,init:frmAddFavouriteInit});}
function getCurrentTabFirstFolderID()
{var myFavourites=$('myFavourites');for(var i=0;i<myFavourites.childNodes.length;i++)
{var c=myFavourites.childNodes[i];if(c.childNodes&&c.childNodes.length>0)
{return(c.firstChild.nID);}}
return(myTabs.GetCurrentTabID());}
function frmAddFavouriteInit()
{var dialog=$('dialog-addFavourite');if(dialog.args.strFolderType==''||dialog.args.strFolderType=='basefolder')
{var oFields=[{strTag:xfTab,strDisplayField:xfName,strValueField:xfID},{strTag:xfFolder,strDisplayField:xfName,strValueField:xfID}];populateSelect2('folderID','/ajax-asp/GetFolderList.ajax.asp?tabID='
+myTabs.GetCurrentTabID()
+'&folderID='+dialog.args.pid,oFields,dialog.args.nFolderID||getCurrentTabFirstFolderID());var select=$("folderID");select.selectedIndex=select.selectedIndex+1;}
else if(dialog.args.strFolderType=='subfolder')
{$('lnkShowAddFolder').href='javascript:showAddSubfolderDialog( '+dialog.args.nFolderID+' );';var folderIDField=$('folderID');if(folderIDField)
{var newFolderIDField=document.createElement("select");newFolderIDField.name="folderID";newFolderIDField.id="folderID";newFolderIDField.options[0]=new Option(dialog.args.strFolderName,dialog.args.nFolderID);folderIDField.replaceNode(newFolderIDField);}}
var url=$("url");var strUrl=queryString("url");var strName=queryString("name");if(strUrl.length>0||strName.length>0)
{dialog.args.url=strUrl;dialog.onClose.addHandler
(function()
{var url=$('dialog-addFavourite').args.url;if(url)
{setTimeout("document.location.href = '"+url+"';",1);}});if(url)url.value=strUrl;if(strName&&strName.length)
{var name=$("name");if(name)name.value=strName;getFavouriteSuggestedInfo(strUrl,true);}
else
{getFavouriteSuggestedInfo(strUrl,false);}}
if(url)url.select();}
function showEditFavouriteDialog(nFavouriteID)
{var dialog=new Dialog("editFavourite","Edit Bookmark");dialog.positionDialog();dialog.loadHTML("/html/form_EditFavourite.asp?favouriteID="+nFavouriteID,{nFavouriteID:nFavouriteID});}
function showAddFolderDialog(nColumn,bSubmitAddFavourite,bOverlay,nTabID,bSendTo,nSendFavouriteID)
{var dialog=new Dialog("addFolder","Add New Folder",bOverlay);dialog.positionDialog();if(bSubmitAddFavourite)
{dialog.loadHTML("/html/form_AddFolderAndFavourite.html",{nColumn:nColumn,nTabID:nTabID,init:showAddFolderInit});}
else if(bSendTo)
{dialog.loadHTML("/html/form_AddFolderAndSend.html",{nColumn:nColumn,nTabID:nTabID,nSendFavouriteID:nSendFavouriteID,init:showAddFolderInit});}
else
{dialog.loadHTML("/html/form_AddFolder.html",{nColumn:nColumn,nTabID:nTabID,init:showAddFolderInit});}}
function showAddFolderInit()
{$('tabID').value=$('dialog-addFolder').args.nTabID;$('column').value=$('dialog-addFolder').args.nColumn;var sFID=$('sendFavouriteID');if(sFID)sFID.value=$('dialog-addFolder').args.nSendFavouriteID;var folderName=$('foldername');folderName.value='My bookmarks'+(getTabFolderCount()>0?getTabFolderCount():'');folderName.focus();folderName.select();}
function showEditFolderDialog(nFolderID)
{var dialog=new Dialog("editFolder","Edit Folder");dialog.positionDialog();dialog.loadHTML("/html/form_EditFolder.asp?folderID="+nFolderID,{nFolderID:nFolderID});}
function showEditSubfolderDialog(nFolderID)
{var dialog=new Dialog("editSubfolder","Edit Subfolder");dialog.positionDialog();dialog.loadHTML("/html/form_EditSubfolder.asp?folderID="+nFolderID,{nFolderID:nFolderID});}
function showAddSubfolderDialog(pid)
{var dialog=new Dialog("addSubfolder","Add New Subfolder");dialog.positionDialog();dialog.loadHTML("/html/form_AddSubfolder.html",{pid:pid});}
function showEditTabDialog(nTabID)
{var dialog=new Dialog("editTab","Edit Tab");dialog.positionDialog();dialog.loadHTML("/html/form_EditTab.asp?tabID="+nTabID,{nTabID:nTabID});}
function showAddTabDialog()
{var dialog=new Dialog("addTab","Add New Tab");dialog.positionDialog();dialog.loadHTML("/html/form_AddTab.html",{init:initAddTab});}
function initAddTab()
{var tabName=$('tabname');tabName.value='My Tab'+(getTabCount()>0?getTabCount():'');tabName.focus();tabName.select();}
var g_aMenus=Array();function ContextMenu(strInstanceName)
{this.instanceName=strInstanceName;g_aMenus[strInstanceName]=this;this.Items=Array();this.x=0;this.y=0;this.bLockMenu=false;this.timer=null;}
var _ContextMenu=ContextMenu.prototype;_ContextMenu.clear=function()
{this.Items.length=0;bLockMenu=false;}
_ContextMenu.addItem=function(strItemText,strHREF,strType)
{this.Items.push({strItemText:strItemText,strHREF:strHREF,eventType:strType||"click"});}
_ContextMenu.addDivider=function()
{this.Items.push({bDivider:true});}
_ContextMenu.display=function(e,openerID,button)
{closeAllMenus();var tooltip=$("tooltip");if(tooltip)tooltip.hide();if(!e)e=event;stopEventBubble(e);var menu=$("menu-"+this.instanceName);if(!menu)
{menu=document.createElement("div");menu.className="menu";menu.id="menu-"+this.instanceName;menu.controller=this;menu.lock=lockFunc;menu.unlock=unLockFunc;menu.objectType="menu";menu.style.zIndex=200;document.body.appendChild(menu);}
this.content=menu;if(openerID)
{if($(openerID)&&$(openerID).lock)
{$(openerID).lock("context");}
this.content.openerID=openerID;}
if(button&&button.id)this.content.buttonID=button.id;var strDisplayHtml="<ul onmousemove='doMenuHighlight( this );'>";for(var iItem in this.Items)
{if(this.Items[iItem].eventType=="href")
{strDisplayHtml+="<li><a class='v-mid' onclick=\"g_aMenus[ 'menu' ].bDone = true; g_aMenus[ '"+this.instanceName+"' ].hideMenu();\" href=\""+this.Items[iItem].strHREF+"\">"+this.Items[iItem].strItemText+"</a></li>";}
else if(this.Items[iItem].eventType=="click")
{strDisplayHtml+="<li><a class='v-mid' onclick=\"g_aMenus[ 'menu' ].bDone = true; "+this.Items[iItem].strHREF+"g_aMenus[ '"+this.instanceName+"' ].hideMenu();\" href=\"javascript:void(0);\">"+this.Items[iItem].strItemText+"</a></li>";}
else if(this.Items[iItem].eventType=="mouseover")
{strDisplayHtml+="<li><a class='v-mid' onmouseover=\"var opener = this;"+this.Items[iItem].strHREF+"\">"+this.Items[iItem].strItemText+"<span class='arrow-right'></span></a></li>";}
else if(this.Items[iItem].bDivider)
{strDisplayHtml+="<div class='divider'></div>";}}
strDisplayHtml+="</ul>";menu.innerHTML=strDisplayHtml;var mouse=getMousePos(e);if(isOpera())
{this.x=EnsureXIsOnScreen(mouse.x,getWidth(menu));this.y=EnsureYIsOnScreen(mouse.y-getHeight(menu),getHeight(menu));}
else
{this.x=EnsureXIsOnScreen(mouse.x,getWidth(menu));this.y=EnsureYIsOnScreen(mouse.y,getHeight(menu));}
menu.style.top=px(this.y);menu.style.left=px(this.x);menu.style.display="";doShadow(menu);return false;}
_ContextMenu.menuHilight=function(row)
{if(this.lastRow)this.menuLolight(this.lastRow);if(row)
{row.className="locked";this.lastRow=row;}}
function doMenuHighlight(ul)
{var menu=getParentNodeByObjectType(ul,"menu");var row=getActiveElement(ul.childNodes);var a;if(row)a=row.getElementsByTagName("a")[0];if(menu&&a)
{menu.controller.menuHilight(a);}}
_ContextMenu.menuLolight=function(row)
{row.className="";this.lastRow=null;}
function closeMenuTree(menu)
{if(menu.childMenu)
{closeMenuTree(menu.childMenu);}
if(menu.unlock)
{menu.unlock('mouseover');menu.unlock('context');}}
_ContextMenu.displaySub=function(opener)
{this.menuHilight(null);var menu=$("menu-"+this.instanceName);if(!menu)
{menu=document.createElement("DIV");menu.className="menu";menu.id="menu-"+this.instanceName;menu.controller=this;menu.lock=lockFunc;menu.unlock=unLockFunc;menu.objectType="menu";document.body.appendChild(menu);}
this.content=menu;var openerMenu=opener?getParentNodeByTagName(opener,"DIV"):null;if(openerMenu)
{if(openerMenu.lock)openerMenu.lock("context");this.content.openerID=openerMenu.id;openerMenu.onmousemove=new Function("var m = $( '"+menu.id+"' ); if( m ){ closeMenuTree( m ); }");openerMenu.childMenu=menu;}
menu.lock("link");if(opener)
{opener.onmouseout=new Function("this.className = ''; var m = $( '"+menu.id+"' ); if( m && m.unlock ) m.unlock( 'link' );");this.content.subOpener=opener;menu.onmouseover=function()
{this.unlock("link");var parent=getParentNodeByObjectType(opener,"menu");if(parent)parent.controller.menuHilight(opener);};}
var strDisplayHtml="<ul onmousemove='doMenuHighlight( this );'>";for(var iItem in this.Items)
{if(this.Items[iItem].eventType=="href")
{strDisplayHtml+="<li><a class='v-mid' onclick=\"g_aMenus[ 'menu' ].bDone = true; g_aMenus[ '"+this.instanceName+"' ].hideMenu();\" href=\""+this.Items[iItem].strHREF+"\">"+this.Items[iItem].strItemText+"</a></li>";}
else if(this.Items[iItem].eventType=="click")
{strDisplayHtml+="<li><a class='v-mid' onclick=\"g_aMenus[ 'menu' ].bDone = true; "+this.Items[iItem].strHREF+"g_aMenus[ '"+this.instanceName+"' ].hideMenu();\" href=\"javascript:void(0);\">"+this.Items[iItem].strItemText+"</a></li>";}
else if(this.Items[iItem].eventType=="mouseover")
{strDisplayHtml+="<li><a class='v-mid' onmouseover=\"var opener = this; waitForMouse( this, g_nDefaultMenuMouseWait, function(){"+this.Items[iItem].strHREF+"}, this );\">"+this.Items[iItem].strItemText+"<span class='arrow-right'></span></a></li>";}
else if(this.Items[iItem].bDivider)
{strDisplayHtml+="<div class='divider'></div>";}}
strDisplayHtml+="</ul>";menu.innerHTML=strDisplayHtml;var nOpenerX=findPosX(opener.parentNode);var nMenuWidth=getWidth(this.content);this.x=nOpenerX+getWidth(opener);this.y=EnsureYIsOnScreen(findPosY(opener),getHeight(opener));if(this.x+nMenuWidth>=getWidth(document.documentElement))
{this.x=nOpenerX-nMenuWidth;}
menu.style.top=px(this.y);menu.style.left=px(this.x);menu.style.display="";doShadow(menu);this.checkHideMenu();return false;}
_ContextMenu.hideMenu=function()
{var opener=$(this.content.openerID);if(opener)
{if(this.content.buttonID)
{var editButton=$(this.content.buttonID);if(editButton)setOpacity(editButton,50);}
if(opener.unlock)
{opener.unlock("context");}
if(opener.controller&&opener.controller.hideMenu&&(!mouseInObjectBounds(opener)||g_aMenus["menu"].bDone))
{opener.controller.hideMenu();}
g_aMenus["menu"].bDone=false;}
this.menuHilight(null);hideShadow(this.content);this.content.style.display="none";if(this.onclose)this.onclose();this.content.parentNode.removeChild(this.content);delete this.content;}
_ContextMenu.onclose=function(){return true;};_ContextMenu.checkHideMenu=function()
{var instanceName=this.instanceName;this.timer=setTimeout(function()
{var menu=g_aMenus[instanceName];if(!menu||!menu.content)return;var opener=$(g_aMenus[instanceName].content.openerID);var mouse=g_Mouse;if(mouseInObjectBounds(menu.content)||(this.bLockMenu&&opener&&mouseInObjectBounds(opener)))
{g_aMenus[instanceName].content.lock("mouseover");g_aMenus[instanceName].content.unlock("link");}
else
{}
if(isLocked(g_aMenus[instanceName].content))
{g_aMenus[instanceName].checkHideMenu();}
else
{if(opener&&opener.unlock)
{opener.unlock("context");}
g_aMenus[instanceName].hideMenu();}},100);}
function closeAllMenus()
{var menuNodes=getElementsByClass("menu",document.body,"div");for(var i=0;i<menuNodes.length;i++)
{menuNodes[i].controller.hideMenu();}}
function getButton(strType)
{switch(strType)
{case"add":return("<div class='add-btn float-left'></div>");break;case"add-dark":return("<div class='add-btn-dark float-left'></div>");break;case"edit":return("<div class='edit-btn float-left'></div>");break;case"delete":return("<div class='delete-btn float-left'></div>");break;case"tab":return("<div class='tab-btn float-left'></div>");break;case"folder":return("<div class='folder-icon float-left'></div>");break;case"favourite":return("<div class='f-i float-left'></div>");break;case"result":return("<div class='f-i'></div>");break;default:return("<div class='no-btn float-left'></div>");break;}}
var mainMenu=new ContextMenu("menu");var subMenu=new ContextMenu("subMenu");var subMenu2=new ContextMenu("subMenu2");function showTabSubMenu(opener,nFolderID)
{var tabNodes=myTabs.childNodes;if(tabNodes.length>1||myFavourites.childNodes.length>1)
{var m=g_aMenus[subMenu.instanceName];m.clear();if(tabNodes&&tabNodes.length>=1)
{for(var i=0;i<tabNodes.length-1;i++)
{var nTabID=getTabID(tabNodes[i]);m.addItem(getButton("tab")+tabNodes[i].firstChild.innerHTML.match(/[^<]*/),"showFolderSubMenu( opener, "+nTabID+", "+nFolderID+" );","mouseover");}
m.displaySub(opener);}}}
function showFolderSubMenu(opener,nTabID,nFolderID)
{var rqid=g_AJAXPool.Request("/ajax-asp/GetFolders.ajax.asp?tabID="+nTabID+"&do=0",{callback:onShowFolderSubMenuResponse,args:{opener:opener,nTabID:nTabID,nFolderID:nFolderID}});return(false);}
function onShowFolderSubMenuResponse(xmldoc,args)
{var m=g_aMenus[subMenu2.instanceName];m.clear();var nCurrentTabID=myTabs.GetCurrentTabID();var object=getFolderOrLink(args.nFolderID);var bShowMoveToThisTab=true;if(object.objectType!="fvl"&&(args.nTabID!=nCurrentTabID||object.objectType!="basefolder"))
{m.addItem(getButton("tab")+"This Tab","moveFolderToTab2( "+args.nFolderID+", "+nCurrentTabID+", "+args.nTabID+" );");bShowMoveToThisTab=true;}
m.addItem(getButton("add-dark")+"Add New Folder...","javascript:showAddFolderDialog( 0, false, false, "+args.nTabID+", true, "+args.nFolderID+" );");var folderNodes=getTagNodes(xmldoc,xfFolder);var bShowItems=false;if(folderNodes&&folderNodes.length>0)
{if(bShowMoveToThisTab)
{m.addDivider();}
for(var i=0;i<folderNodes.length;i++)
{var nFolderID=getNodeAttribute(folderNodes[i],xfID);var strName=getNodeAttribute(folderNodes[i],xfName);var folder=getFolderOrLink(args.nFolderID);if(folder.pid!=nFolderID&&args.nFolderID!=nFolderID)
{m.addItem(getButton("folder")+strName,"sendFolder( "+args.nFolderID+", "+args.nTabID+", "+(folder?folder.pid:"null")+", "+nFolderID+", null );");bShowItems=true;}}}
if(bShowMoveToThisTab||bShowItems)m.displaySub(args.opener);}
function doSendToMenuItem(m,object)
{var myTabs=$("tabset_myTabs");if(!myTabs)return;var tabNodes=myTabs.childNodes;if(tabNodes&&tabNodes.length>0)
{var strTypeName="Item";if(object.objectType=="fol"||object.objectType=="subfolder")strTypeName="Sub-Folder";if(object.objectType=="basefolder")strTypeName="Folder";if(object.objectType=="fvl")strTypeName="Bookmark";if(tabNodes.length==1)
m.addItem(getButton()+"Move "+strTypeName+" To","showFolderSubMenu( opener, "+GetCurrentTabID()+", "+object.nID+" );","mouseover");else
m.addItem(getButton()+"Move "+strTypeName+" To","showTabSubMenu( opener, "+object.nID+" );","mouseover");}}
function onFolderContext(e)
{if(!e)e=event;var t=getTarget(e);if(t&&t.tagName=="H3")
{return showFolderMenu(e,this);}
else
{return true;}}
function showFolderMenu(e,folder)
{closeAllSubfolders();var m=g_aMenus[mainMenu.instanceName];m.clear();m.addItem(getButton("edit")+'Edit Folder Name...','javascript:showEditFolderDialog('+folder.nID+');');m.addDivider();m.addItem(getButton("add-dark")+'Add Bookmark To This Folder...','javascript:showAddFavouriteDialog( '+folder.nID+' );');m.addItem(getButton("add-dark")+'Add New Sub-Folder...','javascript:showAddSubfolderDialog('+folder.nID+');');m.addDivider();doSendToMenuItem(m,folder);m.addDivider();m.addItem(getButton("delete")+"Remove Folder","javascript:userConfirm( 'Remove Folder: "+htmlEncode(folder.strName)+"', 'Remove Folder', 'removeFolder("+folder.nID+");', 'Would you like to remove the Folder called <q>"+folder.strName+"</q>?','uc-default' );");return m.display(e,folder.id);}
function onSubfolContext(e)
{closeAllSubfolders();if(!e)e=event;var parentFolder=getFolder(this.pid);return showSubfolderMenu(e,this,parentFolder);}
function onSubfolderContext(e)
{if(!e)e=event;var t=getTarget(e);if(t&&t.tagName=="H3")
return showSubfolderMenu(e,this,this);else
return true;}
function showSubfolderMenu(e,subfol,opener,button)
{if(!e)e=event;stopEventBubble(e);var m=g_aMenus[mainMenu.instanceName];m.clear();m.addItem(getButton("edit")+'Edit Sub-Folder Name...','javascript:showEditSubfolderDialog( '+subfol.nID+' );');m.addDivider();m.addItem(getButton("add-dark")+'Add Bookmark To This Sub-Folder...','javascript:showAddFavouriteDialog( '+subfol.nID+' );');m.addItem(getButton("add-dark")+'Add New Sub-Folder...','javascript:showAddSubfolderDialog('+subfol.nID+');');m.addDivider();doSendToMenuItem(m,subfol);m.addDivider();m.addItem(getButton("delete")+'Remove Sub-Folder','javascript:userConfirm( \'Remove Sub-Folder: '+subfol.strName+'\', \'Remove Sub-Folder\', \'removeSubfolder( '+subfol.nID+' );\', \'Would you like to remove the Sub-Folder called <q>'+subfol.strName+'</q>?\',\'uc-default\' ); ');var openerID=opener?opener.id:"";return m.display(e,openerID,button);}
function onFavouriteContext(e)
{if(!e)e=event;var parentFolder=getFolder(this.pid);return showFavouriteMenu(e,this,parentFolder);}
function showTabMenu(e,tab)
{if(!e)e=event;var m=g_aMenus[mainMenu.instanceName];m.clear();m.addItem(getButton("edit")+"Edit Tab Name...","javascript:showEditTabDialog( "+tab.nID+" );");m.addDivider();m.addItem(getButton("add-dark")+"Add New Tab...","javascript:showAddTabDialog();");var p=getTabContainer();if(p&&p.childNodes.length>2)
{m.addDivider();m.addItem(getButton("delete")+"Remove Tab","javascript:userConfirm( 'Remove Tab: "+htmlEncode(getTabName(tab))+"', 'Remove Tab', 'removeTab( "+tab.nID+" );', 'Would you like to remove the Tab called &lt;q&gt;"+escapeQuotes(getTabName(tab))+"&lt;/q&gt;?','uc-default' ) ;");}
return m.display(e,getTab(tab.nID));}
function showFavouriteMenu(e,fvl,opener)
{if(!e)e=event;stopEventBubble(e);var m=g_aMenus[mainMenu.instanceName];m.clear();m.addItem(getButton("edit")+'Edit Bookmark...','javascript:showEditFavouriteDialog( '+fvl.nID+' );');m.addDivider();m.addItem(getButton("add-dark")+'Add Bookmark To This Folder...','javascript:showAddFavouriteDialog( '+fvl.pid+' );');m.addItem(getButton("add-dark")+'Add New Sub-Folder...','javascript:showAddSubfolderDialog('+fvl.pid+');');m.addDivider();doSendToMenuItem(m,fvl);m.addDivider();m.addItem(getButton("delete")+"Remove Bookmark","javascript:userConfirm( 'Remove Bookmark: "+escapeQuotes(fvl.strName)+"', 'Remove Bookmark', 'removeFavourite("+fvl.pid+", "+fvl.nID+");','Would you like to remove the Bookmark called "+escapeQuotes(fvl.strName)+"?','uc-default' );");m.bLockMenu=true;var openerID=opener?opener.id:"";return m.display(e,openerID);}
var onResultButtonMouseDown=function(e)
{if(!e)e=event;var l=getLink(this.nID);this.id=genID();showResultMenu(e,l,this);}
function showResultMenu(e,resultLink,opener)
{if(!e)e=event;stopEventBubble(e);var m=g_aMenus[mainMenu.instanceName];m.clear();m.addItem(getButton("edit")+'Edit Bookmark...','javascript:showEditFavouriteDialog( '+resultLink.nID+' );');m.addItem(getButton("delete")+'Remove Bookmark','javascript:userConfirm( \'Remove Bookmark: '+htmlEncode(resultLink.strName)+'\', \'Remove Bookmark\', \'removeFavourite( '+resultLink.pid+', '+resultLink.nID+');\' );');m.bLockMenu=true;var openerID=opener?opener.id:"";return m.display(e,openerID);}
function onBaseContext(e)
{if(!e)e=event;var t=getTarget(e);if(!t||t.id!="myFavourites")return;var activeColumn=getActiveColumn();var m=g_aMenus[mainMenu.instanceName];m.clear();m.addItem(getButton("edit")+'Edit Tab Name...','javascript:showEditTabDialog( '+myTabs.GetCurrentTabID()+' );');m.addDivider();m.addItem(getButton("add-dark")+'Add Bookmark...','javascript:showAddFavouriteDialog();');if(activeColumn)
{m.addItem(getButton("add-dark")+'Add New Folder...','javascript:showAddFolderDialog( '+activeColumn.nID+' );');}
else
{m.addItem(getButton("add-dark")+'Add New Folder...','javascript:showAddFolderDialog( 0 );');}
m.addItem(getButton("add-dark")+'Add New Tab...','javascript:showAddTabDialog();');return m.display(e,this.id);}
function showSignIn()
{var d=new Dialog("signin","Sign In to your existing account",false,"hp-signin");d.bPosition=false;d.loadHTML("/html/login.html");}
function checkPasswords()
{if($('cp').value!=$('cp2').value)
{return("The passwords do not match.");}
if($('cp').value.length<1)
{return("The password needs to be at least 1 characters in length.");}
return("");}
function checkCreateAccount(sender)
{var rqid=g_AJAXPool.Request("/ajax-asp/CheckValidUsername.ajax.asp?"+"cu="+$('cu').value,{callback:submitCreateAccount});}
function submitCreateAccount(xmldoc)
{var strPasswordError=checkPasswords();var bValidPassword=false;if(strPasswordError=="")bValidPassword=true;var strMsg="";var strSuggestion="";var bTaken;var bValidUsername=false;bValidUsername=parseBool(getTagValue(xmldoc,xfValid));if(bValidUsername&&bValidPassword)
{$('frmCreateAccount').action="do_CreateAccount.asp"
$('frmCreateAccount').submit();return;}
else
{if(!bValidUsername)
{strMsg=getTagValue(xmldoc,xfMsg);strSuggestion=getTagValue(xmldoc,xfSuggestion);bTaken=parseBool(getTagValue(xmldoc,xfUsernameTaken));hilightErrorField('cu',true);}
else
{hilightErrorField('cu',false);}
if(bValidUsername&&!bValidPassword)
{strMsg=strPasswordError;hilightErrorField('cp',true);hilightErrorField('cp2',true);}
else
{hilightErrorField('cp',false);hilightErrorField('cp2',false);}}
if(bTaken&&strSuggestion&&strSuggestion.length)
{strMsg+=" Try "+strSuggestion+" instead.";$('cu').value=strSuggestion;}
attachMsg('frmCreateAccount',strMsg);}
function autoLogin()
{var rqid=g_AJAXPool.Request("/ajax-asp/AutoLogin.ajax.asp?en=0",{callback:onAutoLoginResponse,bText:true});return(false);}
function checkLogin(sender)
{var rqid=g_AJAXPool.Request("/ajax-asp/CheckLogin.ajax.asp?en=0&"+"lu="+$('lu').value+"&lp="+$('lp').value+"&la="+$('la').value,{callback:doLogin});return(false);}
function doLogin(xmldoc,args)
{if(!noError(xmldoc))
{attachMsg('frmLogin',"You could not be signed in. Please try again.");hilightErrorField('lu',true);hilightErrorField('lp',true);setFocus($('lu'));var s=$('dialog-signin');s.shadow=doShadow(s);return false;}
else
{var strRedirectUrl=getTagValue(xmldoc,"redirect");if(strRedirectUrl.length==0)
{strRedirectUrl="/";}
document.location.href=strRedirectUrl;}}
function onAutoLoginResponse(xmldoc,args)
{if(noError(xmldoc))
{var strRedirectUrl=queryString("url");if(strRedirectUrl.length==0)
{strRedirectUrl="/";}
if(strRedirectUrl.length!=0)document.location.href=strRedirectUrl;}}
var onTabChange=new customEvent();function switchTab(strName)
{document.location.href="/favowitz/"+getUserName()+"/"+escape(strName);}
function GetCurrentTabID()
{return(this.nCurrentTabID);}
function SetCurrentTabID(nTabID)
{this.nCurrentTabID=nTabID;setTab(nTabID);}
function addTab(form)
{var rqid=g_AJAXPool.Request("/ajax-asp/AddNewTab.ajax.asp",{postdata:getFormPostData(form),callback:onAddTabResponse,args:{form:form},type:"POST"});return(false);}
function onAddTabResponse(xmldoc,args)
{if(noError(xmldoc))
{closeDialog(getDialog(args.form));myTabs.switchTab(getTagValue(xmldoc,xfName));return;}
else
{showFormErrors(xmldoc,args.form);}}
function editTab(form)
{var rqid=g_AJAXPool.Request("/ajax-asp/EditTab.ajax.asp",{postdata:getFormPostData(form),callback:onEditTabResponse,args:{form:form,strName:$('edit-tabname').value},type:"POST"});return(false);}
function onEditTabResponse(xmldoc,args)
{if(noError(xmldoc))
{var nTabID=getTagValue(xmldoc,"tabID");var tab=getTab(nTabID);if(tab)
{var tn=document.createTextNode(args.strName);var cn=tab.getElementsByTagName("a")[0].firstChild;if(cn)
{tab.getElementsByTagName("a")[0].setAttribute("strName",args.strName);cn.parentNode.replaceChild(tn,cn);}}
closeDialog(getDialog(args.form));onTabChange.raise();return;}
else
{showFormErrors(xmldoc,args.form);}}
function getTab(nTabID)
{return($("tab_"+nTabID));}
function getTabID(tab)
{return(tab.id.toString().replace(/tab_/,""));}
function getPreviousOrNextTab(nTabID)
{var tab=getTab(nTabID);if(tab)
{if(tab.previousSibling)return(tab.previousSibling);if(tab.nextSibling)
{return(tab.nextSibling);}}
return false;}
function getTabName(tab)
{return(tab.getAttribute("strName"));}
function removeTab(nTabID)
{var previousTab=getPreviousOrNextTab(nTabID);var strName=getTabName(previousTab.firstChild);var rqid=g_AJAXPool.Request("/ajax-asp/RemoveTab.ajax.asp?tabID="+nTabID,{callback:onRemoveTabResponse,args:{strName:strName,nTabID:nTabID}});}
function onRemoveTabResponse(xmldoc,args)
{if(myTabs.GetCurrentTabID()==args.nTabID)
{myTabs.switchTab(args.strName);}
else
{var t=getTab(myTabs.GetCurrentTabID());myTabs.switchTab(getTabName(t.firstChild));}}
function setTab(nTabID)
{var rqid=g_AJAXPool.Request("/ajax-asp/SetTab.ajax.asp?tabID="+nTabID,{callback:onSetTabResponse});}
function onSetTabResponse(xmldoc,args)
{return(false);}
function updateTabPositions()
{var rqid=g_AJAXPool.Request("/ajax-asp/ChangeTabPosition.ajax.asp?orderList="+getTabPositionList(),{callback:onUpdateTabPositions});return(false);}
function onUpdateTabPositions(xmldoc,args)
{return;}
function getTabPositionList()
{var tabNodes=myTabs.childNodes;var strList="";for(var i=0;i<=tabNodes.length;i++)
{if(tabNodes[i])
{var nTabID=getTabID(tabNodes[i]);if(nTabID)
{if(strList.length)strList+=",";strList+=nTabID;}}}
return(strList);}
function getTabCount()
{var tabContainer=getTabContainer();return(tabContainer?tabContainer.childNodes.length:0);}
function getTabContainer()
{var tabEl=$("tabset_myTabs");if(tabEl)return(tabEl);}
var onFolderChange=new customEvent();var g_currentTopLevelSubfolder;function getTabFolderCount()
{return(g_nLastFolderCount||0);}
function getFolderHeading(folder)
{return("<div class=\"heading\">"+"<div id=\"lb-"+folder.nID+"\" class=\"e-b f-b\"></div>"+"<h3 id=\"handle_"+folder.nID+"\">"+strLimit(folder.strName,g_nFolderTitleLength)+"</h3>"+"</div>");}
var lockFunc=function(strLockID)
{if(!this.lockArray)this.lockArray=Object();this.lockArray[strLockID]=true;}
var unLockFunc=function(strLockID)
{if(this.lockArray)delete this.lockArray[strLockID];}
function isLocked(object)
{if(!object.lockArray)return false;var bIsLocked=false;for(var i in object.lockArray)
{bIsLocked=true;}
return(bIsLocked);}
function lockSet(object,strLockID)
{if(object.lockArray[strLockID])
return(true);else
return(false);}
function getFolderColumn(folder)
{var currentFolder=folder;while(currentFolder)
{if(!currentFolder.pid&&currentFolder.objectType=="basefolder")
{var nColumn=currentFolder.parentNode.nID;return(nColumn);}
if(!currentFolder.pid)return;currentFolder=getFolder(currentFolder.pid);}}
function createFolder(nID,strName,nColumn,pid,targetAnchor)
{if(!strName||!nID)return;var myFavourites=$('myFavourites');if(nColumn==null||nColumn>=myFavourites.childNodes.length)return;var folder=document.createElement("div");folder.id="folder_"+nID;folder.nID=nID;folder.strName=strName;folder.className="curvybox "+(pid?"subfolder":"folder");folder.innerHTML=getFolderHeading(folder);folder.pid=pid;folder.nColumn=nColumn;folder.lock=lockFunc;folder.unlock=unLockFunc;folder.style.zIndex=100;init_folder(folder);var column=getColumn(nColumn);if(pid)
{var parent=getFolder(pid);if(!parent)return;folder.style.top=px(g_Mouse.position.y);folder.style.left=px(g_Mouse.position.x);document.body.appendChild(folder);if(parent)folder.style.width=px(getWidth(parent));}
else
{if(!column)
{column=getColumn(0);}
column.insertBefore(folder,targetAnchor||null);}
if(pid)getFavourites(folder,nID);return(folder);}
function recreateFolder(folder)
{var nID=folder.nID;var strName=folder.strName;var nColumn=folder.nColumn;var pid=null;if(folder.parentNode)folder.parentNode.removeChild(folder);folder=createFolder(nID,strName,nColumn,pid);getFavourites(folder,nID);return(folder);}
function getOpenSubfolderRoot()
{var folderNodes=getElementsByClass("subfolder",document.body,"div");return(getRootFolder(folderNodes[folderNodes.length-1]));}
function getSubfols(folder)
{var linkNodes=getElementsByExactClass("fol",folder,"table");return linkNodes;}
function isDescendant(folder1,folder2)
{if(!folder1)return(false);var subfols=getSubfols(folder1);for(var i=0;i<subfols.length;i++)
{if(subfols[i]==folder2)
{return(true);}
else
{if(isDescendant(subfols[i],folder2))
{return(true);}}}
return(false);}
function openSubfolder(x,y,pid,nSubfolderID,strName,bGlobalPosition)
{if(mainMenu&&mainMenu.content&&mainMenu.content.parentNode&&mainMenu.content.style.display!="hidden")return;var l=getLinkObject(nSubfolderID);fHighlightOn(null,l);var parentFolder=getFolder(pid);if(g_currentTopLevelSubfolder&&parentFolder)
{if(g_currentTopLevelSubfolder.nID!=parentFolder.nID)
{if(!g_Mouse.bDragDropInProgress)
{removeSubfolders(getFolder(g_currentTopLevelSubfolder.pid));}}}
var subfolder=getFolder(nSubfolderID);if(!subfolder&&parentFolder&&pid)
{subfolder=createFolder(nSubfolderID,strName,getFolderColumn(parentFolder),pid);}
var column=parentFolder.parentNode;if(bGlobalPosition)
{subfolder.style.left=px(x);subfolder.style.top=px(y);}
else
{subfolder.style.left=px(x-findPosX(column));subfolder.style.top=px(y-findPosY(column));}
subfolder.onmouseover=function()
{var nID=this.nID;var l=getLinkObject(nID);if(l)fHighlightOn(null,l);subfolder.onmouseover=null;};if(parentFolder&&parentFolder.lock)
{parentFolder.lock("child");}
g_currentTopLevelSubfolder=subfolder;checkHideSubfolder(nSubfolderID);return(subfolder);}
function recreateFolder(folder)
{var nID=folder.nID;var strName=folder.strName;var nColumn=folder.nColumn;var pid=null;if(folder.parentNode)folder.parentNode.removeChild(folder);folder=createFolder(nID,strName,nColumn,pid);getFavourites(folder,nID);return(folder);}
function getOpenSubfolderRoot()
{var folderNodes=getElementsByClass("subfolder",document.body,"div");return(getRootFolder(folderNodes[folderNodes.length-1]));}
function moveFolderToTab2(nFolderID,nSourceTabID,nDestinationTabID)
{var object=getFolderOrLink(nFolderID);var nColumn;if(object.objectType=="basefolder")
{nColumn=object.nColumn;removeElement(object);}
else
{var rootFolder=getRootFolder(object);nColumn=rootFolder.nColumn;var l=getLinkObject(nFolderID);removeElement(l);}
var rqid=g_AJAXPool.Request("/ajax-asp/MoveFolder.ajax.asp?folderID="+nFolderID+"&column="+nColumn+"&sourceTabID="+nSourceTabID+"&destinationTabID="+nDestinationTabID,{callback:onMoveFolderToTabResponse,args:{folder:object,nDestinationTabID:nDestinationTabID,nColumn:nColumn}});return false;}
function moveFolderToTab(folder,nSourceTabID,nDestinationTabID)
{if(nSourceTabID==nDestinationTabID)
{cancelDragDrop();return false;}
var nColumn;if(folder.objectType=="basefolder")
{nColumn=folder.nColumn;}
else
{var rootFolder=getRootFolder(folder);nColumn=rootFolder.nColumn;}
var rqid=g_AJAXPool.Request("/ajax-asp/MoveFolder.ajax.asp?folderID="+folder.nID+"&column="+nColumn+"&sourceTabID="+nSourceTabID+"&destinationTabID="+nDestinationTabID,{callback:onMoveFolderToTabResponse,args:{folder:folder,nDestinationTabID:nDestinationTabID,nColumn:nColumn}});return(false);}
function onMoveFolderToTabResponse(xmldoc,args)
{if(noError(xmldoc))
{if(myTabs.GetCurrentTabID()==args.nDestinationTabID)
{var nColumn=args.nColumn;var folder;if(args.folder.objectType=='fol')
{folder=createFolder(args.folder.nID,args.folder.strName,nColumn,null,null);hidePhantomObject();getFavourites(folder,folder.nID);}
else
{var parentFolder=getFolder(args.folder.pid);if(parentFolder&&parentFolder.unlock)parentFolder.unlock("child");folder=args.folder;resetFolderPosition(folder);if(folder)removeElement(folder);var fol=getLink(folder.nID);if(fol)removeElement(fol.parentNode);var column=getColumn(nColumn);column.insertBefore(folder,null);convertSubFolderToRoot(folder);hidePhantomObject();}
if(folder.pid)
{folder.pid=null;}}
else
{var folder=args.folder;if(folder)removeElement(folder);var fol=getLink(folder.nID);if(fol)removeElement(fol.parentNode);hidePhantomObject();return(false);}}
else
{revertDragDrop(args.folder);}
return(false);}
function moveFolderToRoot(folder,column,activeFolder)
{if(!activeFolder)
{if(!mouseBelowLastObjectY(column)&&column.childNodes.length)
{cancelDragDrop();return;}}
var nFolderID=folder.nID;var rqid=g_AJAXPool.Request("/ajax-asp/MoveFolder.ajax.asp?folderID="+nFolderID+"&destinationTabID="+myTabs.GetCurrentTabID()+"&column="+column.nID+"&orderlist="+getNewFolderPositionList(folder,column,activeFolder),{callback:onMoveFolderToRootResponse,args:{folder:folder,column:column,activeFolder:activeFolder}});return(false);}
function onMoveFolderToRootResponse(xmldoc,args)
{if(noError(xmldoc))
{var folder;if(args.folder.objectType=='fol')
{folder=createFolder(args.folder.nID,args.folder.strName,args.column.nID,null,args.activeFolder);hidePhantomObject();getFavourites(folder,folder.nID);}
else
{folder=args.folder;resetFolderPosition(folder);var parentFolder=getFolder(folder.pid);if(parentFolder&&parentFolder.unlock)parentFolder.unlock("child");folder.nColumn=args.column.nID;args.column.insertBefore(folder,args.activeFolder||null);convertSubFolderToRoot(folder);hidePhantomObject();}
if(folder.pid)
{folder.pid=null;}
g_currentTopLevelSubfolder=null;return;}
revertDragDrop(args.folder);}
function convertSubFolderToRoot(folder)
{folder.objectType="basefolder";folder.className="curvybox folder";}
function resetFolderPosition(folder)
{folder.style.width="";folder.style.position="relative";folder.style.top="";folder.style.left="0px";}
function moveFolderToFolder(folder,nSourceFolderID,nDestinationFolderID,activeLink)
{var rqid=g_AJAXPool.Request("/ajax-asp/MoveFolder.ajax.asp?folderID="+folder.nID+"&destinationFolderID="+nDestinationFolderID+"&orderlist="+getNewLinkPositionList(folder.nID,getFolder(nDestinationFolderID),activeLink),{callback:onMoveFolderToFolderResponse,args:{folder:folder,nSourceFolderID:nSourceFolderID,nDestinationFolderID:nDestinationFolderID,activeLink:activeLink}});return(false);}
function getFolderOrLink(objectID)
{var object=getFolder(objectID);if(object)return(object);object=getLink(objectID);if(object)return(object);}
function isFolder(object)
{return((object.objectType=="basefolder"||object.objectType=="subfolder")?true:false);}
function convertFolderToLink(folder,parentFolder)
{var nID=folder.nID;var strName=folder.strName;var pid=parentFolder.nID;var nColumn=parentFolder.nColumn;removeElement(folder);delete folder;var link=createLink(nID,pid,strName,null,true,null);return(link);}
function resetLinkPosition(link)
{link.style.position=isIE()?"":"relative";link.style.top="";link.style.left="";link.style.width="";link.style.height="";}
function debugStyle(el)
{debug("<br />||<br />");for(var i in el.style)
if(el.style[i])debug(i+": "+el.style[i]);}
function debugAttributes(el)
{debug("<br />||<br />");for(var i in el.attributes)
if(el.attributes[i])debug(i+": "+el.attributes[i]);}
function updateParentID(folder,pid)
{folder.getElementsByTagName("a")[0].pid=pid;}
function onMoveFolderToFolderResponse(xmldoc,args)
{if(noError(xmldoc))
{hidePhantomObject();var parentFolder=getFolder(args.nSourceFolderID);var destinationFolder=getFolder(args.nDestinationFolderID);if(destinationFolder)
{args.folder.nColumn=destinationFolder.nColumn;var folder;var objectType=args.folder.objectType;switch(objectType)
{case"fvl":case"fol":folder=args.folder;resetLinkPosition(folder);updateParentID(folder,args.nDestinationFolderID);break;case"basefolder":case"subfolder":folder=convertFolderToLink(args.folder,destinationFolder);break;}
if(folder)
{destinationFolder.insertBefore(folder,args.activeLink);if(destinationFolder.objectType=="subfolder")doShadow(destinationFolder);}
fHighlightOff(null,folder);g_currentTopLevelSubfolder=null;return false;}}
else
{revertDragDrop(args.folder);}}
function sendFolder(nFolderID,nDestinationTabID,nSourceFolderID,nDestinationFolderID)
{var rqid=g_AJAXPool.Request("/ajax-asp/MoveFolder.ajax.asp?folderID="+nFolderID+"&nTabID="+nDestinationTabID+"&destinationFolderID="+nDestinationFolderID,{callback:onSendFolderResponse,args:{nDestinationTabID:nDestinationTabID,folder:getFolderOrLink(nFolderID),nSourceFolderID:nSourceFolderID,nDestinationFolderID:nDestinationFolderID}});return(false);}
function removeLinkObject(nID)
{var l=getLinkObject(nID);if(l)removeElement(l);var f=getFolder(nID);if(f)removeElement(f);}
function onSendFolderResponse(xmldoc,args)
{if(noError(xmldoc))
{var destinationFolder=getFolder(args.nDestinationFolderID);var parentFolder=getFolder(args.nSourceFolderID);if(parentFolder&&parentFolder.unlock)parentFolder.unlock("child");if(args.nDestinationTabID!=myTabs.GetCurrentTabID())
{removeLinkObject(args.folder.nID);return;}
args.folder.nColumn=destinationFolder.nColumn;var folder;switch(args.folder.objectType)
{case"fvl":case"fol":var l=getLinkObject(args.folder.nID);resetLinkPosition(l);updateParentID(l,args.nDestinationFolderID);removeLinkObject(args.folder.nID);folder=l;break;case"basefolder":case"subfolder":folder=convertFolderToLink(args.folder,destinationFolder);break;}
if(folder)
{destinationFolder.insertBefore(folder,null);}
else
{resetFolder(destinationFolder);getFavourites(destinationFolder,destinationFolder.nID);}
g_currentTopLevelSubfolder=null;return;}
else
{revertDragDrop(args.folder);}}
function addFolder(form)
{var nTabID=myTabs.GetCurrentTabID();var rqid=g_AJAXPool.Request("/ajax-asp/AddNewFolder.ajax.asp?tabID="+nTabID,{postdata:getFormPostData(form),callback:onAddFolderResponse,args:{form:form,nTabID:nTabID},type:"POST"});return(false);}
function getSelectOptionIndexByValue(select,value)
{for(var i=0;i<select.options.length;i++)
{if(select.options[i].value==value)
{return(i);}}}
function insertOptionAfterValue(select,strValue,strInsertName,strInsertValue)
{var nIndex=getSelectOptionIndexByValue(select,strValue);if(nIndex>=0)
{var insertNode=select.childNodes[nIndex+(isFF()?2:1)];var option=document.createElement("option");option.innerHTML=strInsertName;option.value=strInsertValue;select.insertBefore(option,insertNode||null);return(nIndex+1);}}
function onAddFolderResponse(xmldoc,args)
{if(noError(xmldoc))
{closeDialog(getDialog(args.form));if(args.favouriteForm)
{var nFolderID=getTagValue(xmldoc,xfID);var strName=getTagValue(xmldoc,xfName);var nColumn=getTagValue(xmldoc,xfColumnPosition);if(args.nTabID==myTabs.GetCurrentTabID())createFolder(nFolderID,strName,nColumn,0,null);var folder=$("folderID");folder.selectedIndex=insertOptionAfterValue(folder,args.nTabID,makeStr("&nbsp;",4)+strName,nFolderID);}
else if(args.nSendFavouriteID)
{var nFolderID=getTagValue(xmldoc,xfID);var strName=getTagValue(xmldoc,xfName);var nColumn=getTagValue(xmldoc,xfColumnPosition);var sf=getLink(args.nSendFavouriteID);sendFolder(args.nSendFavouriteID,args.nTabID,sf.pid,nFolderID);if(args.nTabID==myTabs.GetCurrentTabID())createFolder(nFolderID,strName,nColumn,0,null);}
else
{var nID=getTagValue(xmldoc,xfID);var strName=getTagValue(xmldoc,xfName);var nColumn=getTagValue(xmldoc,xfColumnPosition);if(args.nTabID==myTabs.GetCurrentTabID())createFolder(nID,strName,nColumn,0,null);}
onFolderChange.raise();return true;}
else
{showFormErrors(xmldoc,args.form);}}
function editFolder(form)
{var strName=getFormFieldValueOnly(form,"foldername",true);var rqid=g_AJAXPool.Request("/ajax-asp/EditFolder.ajax.asp",{postdata:getFormPostData(form),callback:onEditFolderResponse,args:{form:form,strName:strName},type:"POST"});return(false);}
function updateLinkName(nFolderID,strName)
{var link=getLink(nFolderID);if(link)
{link.strName=strName;link.innerHTML=strName;}}
function updateFolderHeading(nFolderID,strName)
{var folder=getFolder(nFolderID);if(folder)
{var h3=folder.getElementsByTagName("h3")[0];if(h3)h3.innerHTML=strName;}}
function onEditFolderResponse(xmldoc,args)
{if(noError(xmldoc))
{var nFolderID=$('edit-folderID').value;updateFolderHeading(nFolderID,args.strName);updateLinkName(nFolderID,args.strName);closeDialog(getDialog(args.form));onFolderChange.raise();return;}
else
{showFormErrors(xmldoc,args.form);}}
function resetFolder(folder)
{folder.innerHTML=getFolderHeading(folder);}
function updateFolder(nFolderID)
{var folder=getFolder(nFolderID);if(folder)
{resetFolder(folder);getFavourites(folder,nFolderID);}
else
{var fol=getfol(nFolderID);if(fol)
{var folder=getFolder(fol.pid);resetFolder(folder);getFavourites(folder,folder.nID);}}}
function addFolderAndSend(form)
{var nTabID=getFormFieldValueOnly(form,"tabID",true);var nSendFavouriteID=getFormFieldValueOnly(form,"sendFavouriteID",true);var rqid=g_AJAXPool.Request("/ajax-asp/AddNewFolder.ajax.asp?tabID="+nTabID,{postdata:getFormPostData(form),callback:onAddFolderResponse,args:{nTabID:nTabID,form:form,nSendFavouriteID:nSendFavouriteID},type:"POST"});return(false);}
function addFolderAndFavourite(form)
{var nTabID=$('tabID').value||myTabs.GetCurrentTabID();var rqid=g_AJAXPool.Request("/ajax-asp/AddNewFolder.ajax.asp?tabID="+nTabID,{postdata:getFormPostData(form),callback:onAddFolderResponse,args:{nTabID:nTabID,form:form,favouriteForm:$("frmAddFavourite")},type:"POST"});return(false);}
function removeFolder(folderID)
{var rqid=g_AJAXPool.Request("/ajax-asp/RemoveFolder.ajax.asp?folderID="+folderID,{callback:onRemoveFolderResponse,args:{folderID:folderID}});}
function onRemoveFolderResponse(xmldoc,args)
{if(noError(xmldoc))
{if(args.folderID)
{var folder=getFolder(args.folderID);removeElement(folder);}}
onFolderChange.raise();}
function addSubfolder(form,pid)
{var rqid=g_AJAXPool.Request("/ajax-asp/AddNewSubfolder.ajax.asp?parentID="+pid,{postdata:getFormPostData(form),callback:onAddSubfolderResponse,args:{form:form,pid:pid,strName:getFormFieldValueOnly(form,"subfoldername")},type:"POST"});return(false);}
function onAddSubfolderResponse(xmldoc,args)
{if(noError(xmldoc))
{closeDialog(getDialog(args.form));var nSubfolderID=getTagValue(xmldoc,"folderID");var parent=getFolder(args.pid);if(parent)
{createLink(nSubfolderID,args.pid,args.strName,null,true,parent,false);}
onFolderChange.raise();return false;}
else
{showFormErrors(xmldoc,args.form);}}
function removeSubfolder(subfolderID)
{var rqid=g_AJAXPool.Request("/ajax-asp/RemovesubFolder.ajax.asp?subfolderID="+subfolderID,{callback:onRemoveSubfolderResponse,args:{subfolderID:subfolderID}});}
function onRemoveSubfolderResponse(xmldoc,args)
{if(noError(xmldoc))
{var folder=getFolder(args.subfolderID);if(folder)removeElement(folder);var fol=getLinkObject(args.subfolderID);if(fol)removeElement(fol);onFolderChange.raise();}}
function removeFolderTree(nFolderID)
{var folder=getFolder(nFolderID);if(folder)
{if(folder.pid)
{var l=getLinkObject(this.nID);fHighlightOff(null,l);hideShadow(folder);removeElement(folder);removeFolderTree(folder.pid);}}}
function removeSubfolders(folder)
{if(!folder)return;var childFolders=getSubfols(folder);if(childFolders&&childFolders.length>0)
{for(var i=0;i<childFolders.length;i++)
{if(childFolders[i]&&childFolders[i].pid)
{removeSubfolders(childFolders[i]);var l=getLinkObject(childFolders[i].nID);fHighlightOff(null,l);var myFolder=getFolder(childFolders[i].nID);if(myFolder)
{hideShadow(myFolder);removeElement(myFolder);delete folder;}}}}}
function removeTreeTop(nFolderID)
{var folder=getFolder(nFolderID);if(folder)
{if(!mouseInObjectBounds(folder))
{var pid=folder.pid;var nID=folder.nID;if(pid)
{removeElement(folder);var l=getLinkObject(nID);if(l)fHighlightOff(null,l);hideShadow(folder);removeTreeTop(pid);}}}}
function unlockParent(folder)
{var parent=getFolder(folder.pid);if(parent&&parent.unlock)parent.unlock("child");}
function getAnyActiveFolder(column)
{var activeFolder=getActiveSubfolder(g_Mouse.targetObject);if(!activeFolder&&column)
{activeFolder=getActiveFolder(column);}
return(activeFolder);}
function mouseInObjectBounds(obj)
{obj=$(obj);if(obj)
{var mouse=g_Mouse;if(mouse&&mouse.position&&(mouse.position.x>=findPosX(obj))&&(mouse.position.x<=(findPosX(obj)+(getWidth(obj))))&&(mouse.position.y>=findPosY(obj))&&(mouse.position.y<=(findPosY(obj)+(getHeight(obj)))))
{return(true);}}
return(false);}
function mouseInObjectBoundsW(obj)
{obj=$(obj);if(obj)
{var mouse=g_Mouse;if(mouse&&mouse.position&&(mouse.position.x>=findPosX(obj))&&(mouse.position.x<=(findPosX(obj)+(getWidth(obj)))))
{return(true);}}
return(false);}
function mouseInObjectBoundsH(obj)
{obj=$(obj);if(obj)
{var mouse=g_Mouse;if(mouse&&mouse.position&&(mouse.position.y>=findPosY(obj))&&(mouse.position.y<=(findPosY(obj)+(getHeight(obj)))))
{return(true);}}
return(false);}
function mouseAboveFirstObjectY(container)
{if(container.childNodes.length)
{if(g_Mouse.position.y<=(findPosY(container.childNodes[0])))return true;}
return false;}
function mouseBelowLastObjectY(container)
{if(container.childNodes.length)
{if(g_Mouse.position.y>=(findPosY(container.childNodes[container.childNodes.length-1])))return true;}
return false;}
function mousePastLastObjectX(container)
{if(container.childNodes.length)
{if(g_Mouse.position.x>=(findPosX(container.childNodes[container.childNodes.length-1])))return true;}
return false;}
function mouseInBetweenObjectsY(objA,objB,nMargin)
{objA=$(objA);objB=$(objB);if(objA&&objB)
{var mouse=g_Mouse;if(mouse&&mouse.position&&(mouse.position.x>=findPosX(objA))&&((mouse.position.x<=(findPosX(objA)+(getWidth(objA))))||(mouse.position.x<=(findPosX(objB)+(getWidth(objB)))))&&((findPosY(objA)<findPosY(objB)&&(mouse.position.y>=(findPosY(objA)-nMargin+((getHeight(objA)))))&&(mouse.position.y<=(findPosY(objB)+(nMargin*2))))))
{return(true);}}
return(false);}
function mouseInRect(x1,y1,x2,y2,nMarginX,nMarginY)
{if(!nMarginX)nMarginX=0;if(!nMarginY)nMarginY=0;if(y1>=0&&y2>=0)
{var mouse=g_Mouse;if(mouse&&mouse.position&&(mouse.position.x>=x1)&&((mouse.position.x>=(x1)-nMarginX)&&(mouse.position.x<=(x2)+nMarginX))&&((y1<y2&&(mouse.position.y>=(y1-nMarginY))&&(mouse.position.y<=(y2+(nMarginY*2))))))
{return(true);}}
return(false);}
function mouseInTreeBounds(nSubfolderID)
{var subfolder=getFolder(nSubfolderID);if(mouseInObjectBounds(subfolder))
{return(true);}
else
{if(subfolder&&subfolder.pid)
{return(mouseInTreeBounds(subfolder.pid));}}}
function checkHideSubfolder(nSubfolderID)
{var subfolder=getFolder(nSubfolderID);if(!subfolder||!subfolder.pid)return;subfolder.timer=setTimeout(function()
{var mySubfolder=getFolder(nSubfolderID);if(mySubfolder)
{var link;if(mouseInObjectBounds(mySubfolder))
{mySubfolder.lock("mouseover");mySubfolder.unlock("link");}
else
{link=getLink(mySubfolder.nID);mySubfolder.unlock("mouseover");}
if((link&&mouseInObjectBounds(link)))
{mySubfolder.lock("link");}
else
{mySubfolder.unlock("link");}
if(g_Mouse.bDragDropInProgress&&g_Mouse.targetObject&&g_Mouse.targetObject.pid==nSubfolderID)
{mySubfolder.lock("linkdrag");}
else
{mySubfolder.unlock("linkdrag");}
if(isLocked(mySubfolder))
{checkHideSubfolder(mySubfolder.nID);}
else
{var l=getLinkObject(mySubfolder.nID);if(l)
{fHighlightOff(null,l);hideShadow(mySubfolder);}
removeTreeTop(mySubfolder.nID);return false;}}},100);}
function getRootFolder(folder)
{var currentFolder=folder;while(currentFolder&&currentFolder.pid)
{currentFolder=getFolder(currentFolder.pid);}
return(currentFolder);}
function getFolder(nSubfolderID)
{return($('folder_'+nSubfolderID));}
function getColumn(i)
{if(!i)i=0;var myFavourites=$('myFavourites');var columnNodes=getElementsByClass("column",myFavourites,"div");return(columnNodes[i]);}
function clearColumns(columns)
{for(var i=0;i<columns.length;i++)
{columns[i].innerHTML="";}}
function setColumnWidths()
{var container=myFavourites;if(!container||!container.parentNode)return;var nContainerWidth=getWidth(container)-(container.childNodes.length);if(nContainerWidth<1)return;for(var i=0;i<container.childNodes.length;i++)
{var nColumnWidth=Math.floor(nContainerWidth/container.childNodes.length);container.childNodes[i].style.width=px(nColumnWidth);}}
function getElementPosition(element)
{if(element&&element.parentNode&&element.parentNode.childNodes.length)
{var siblingNodes=element.parentNode.childNodes;for(var i=0;i<siblingNodes.length;i++)
{if(element==siblingNodes[i])return(i);}}
else
{return(0);}}
function getFolderPosition(folder)
{return(getElementPosition(folder));}
function setFolderPosition(nFolderID,nColumnID,strFolderOrderList)
{var rqid=g_AJAXPool.Request("/ajax-asp/ChangeFolderPosition.ajax.asp?folderID="+nFolderID+"&column="+nColumnID,{postdata:"orderlist="+strFolderOrderList,callback:onSetFolderPosition,type:"POST",bText:true});return(false);}
function onSetFolderPosition(xmldoc,args)
{return(false);}
function getColumnFolderPositionList(column)
{var strList="";for(var i=0;i<column.childNodes.length;i++)
{if(column.childNodes[i]&&column.childNodes[i].nID)
{if(strList.length)strList+=",";strList+=column.childNodes[i].nID;}}
return(strList);}
function getFolderID(folder)
{return(folder.id.match(/\d+/));}
var onFolderButtonMousedown=function(e)
{if(!e)e=event;var folder=getFolder(this.nID);this.id=genID();return showFolderMenu(e,folder);}
var onSubFolderButtonMousedown=function(e)
{if(!e)e=event;var folder=getFolder(this.nID);this.id=genID();return showSubfolderMenu(e,folder,folder,this);}
var opacityHigh=function()
{this.style.backgroundImage="url( /i/edit.gif )";}
var opacityLow=function()
{this.style.backgroundImage="url( /i/edit2.gif )";}
function getColumns(container)
{var columnNodes=getElementsByClass("column",container,"div");return(columnNodes);}
function event_init_columns()
{var myFavourites=$('myFavourites');myFavourites.nColumns=g_nColumns;var columnNodes=getColumns(myFavourites);for(var i=0;i<g_nColumns;i++)
{columnNodes[i].objectType="column";columnNodes[i].nID=i;}}
function event_init_folders()
{var myFavourites=$('myFavourites');var folderNodes=getElementsByExactClass("curvybox folder",myFavourites,"div");for(var i=0;i<folderNodes.length;i++)
{init_folder(folderNodes[i]);}}
function htmlDecode(strText)
{var strMod=strText.replace(/&amp;/,"&");return strMod;}
function init_folder(folder)
{var nID=getFolderID(folder);folder.nID=nID;folder.bDragable=true;var h3=folder.getElementsByTagName("h3")[0];h3.id="handle_"+nID;var strName=htmlDecode(h3.innerHTML);folder.strName=strName;if(!folder.nColumn)folder.nColumn=folder.getAttribute("nColumn");folder.oncontextmenu=folder.pid?onSubfolderContext:onFolderContext;folder.objectType=folder.pid?"subfolder":"basefolder";var heading=getElementByExactClass("heading",folder,"div");heading.onmousedown=setDragTarget;heading.onmousedown=setDragTarget;var button=getElementByExactClass("e-b f-b",folder,"div");button.onmouseover=opacityHigh;button.onmouseout=opacityLow;button.onmousedown=folder.pid?onSubFolderButtonMousedown:onFolderButtonMousedown;button.oncontextmenu=preventDefaultEvent;button.nID=nID;}
function getFolderSelectTabID(f)
{if(f.options[f.selectedIndex].text.charCodeAt(0)==160)
{for(var i=f.selectedIndex;i>=0;i--)
{if(f.options[i].text.charCodeAt(0)!=160)return(f.options[i].value);}}
else
{return(f.options[f.selectedIndex].value);}}
var onFavouriteChange=new customEvent();function fHighlightOn(e,link)
{if(!link)link=this;link.style.backgroundColor=g_Style["highlightColor"];var td=link.getElementsByTagName("td")[0];if(td)td.style.backgroundImage="url( /i/edit.gif )";}
function fHighlightOff(e,link)
{if(!link)link=this;link.style.backgroundColor="";var td=link.getElementsByTagName("td")[0];if(td)td.style.backgroundImage="url( /i/edit2.gif )";}
function emptyFolder(folder)
{var linkNodes=folder.getElementsByTagName("TABLE");if(linkNodes.length)
{folder.innerHTML=getFolderHeading(folder);}
return false;}
function getFavourites(container,nFolderID)
{var rqid=g_AJAXPool.Request("/ajax-asp/GetFavourites.ajax.asp?folderID="+nFolderID,{callback:onFavouritesResponse,args:{container:container,pid:nFolderID}});return(false);}
function onFavouritesResponse(xmldoc,args)
{emptyFolder(args.container);var favouriteNodes=getTagNodes(xmldoc,xfFavourite);var folder=$(args.container);if(!folder)return;var aFavourites=new Array();for(var i=0;i<favouriteNodes.length;i++)
{var nFavouriteID=getNodeAttribute(favouriteNodes[i],xfID);if(nFavouriteID)aFavourites[nFavouriteID]=favouriteNodes[i];}
var orderNodes=getTagNodes(xmldoc,xfOrderList);for(var iOrder=0;iOrder<orderNodes.length;iOrder++)
{var strFavouritePositions=getNodeText(orderNodes[iOrder]);if(strFavouritePositions)
{var aFavouritePositions=strFavouritePositions.toString().split(",");for(var iFavouritePosition=0;iFavouritePosition<aFavouritePositions.length;iFavouritePosition++)
{var nID=aFavouritePositions[iFavouritePosition];if(aFavourites[nID])
{createFavourite(aFavourites[nID],folder);aFavourites[nID]=null;}}}}
for(var i=0;i<aFavourites.length;i++)
{if(aFavourites[i])
{var nID=getNodeAttribute(aFavourites[i],xfID);createFavourite(aFavourites[nID],folder);aFavourites[nID]=null;}}
if(args.container.objectType=="subfolder")
{var link=getLink(args.container.nID);hideShadow(args.container);args.container.shadow=doShadow(args.container);}}
var aFunction=function()
{if(g_Mouse.bDragDropInProgress)return false;var fol=this.getElementsByTagName("a")[0];if(!fol)return false;var nFolderID=fol.nID;if(getFolder(nFolderID)||this.bProcessing)return;this.bProcessing=true;var parent=getFolder(fol.pid);if(!parent)return false;var column=getColumn(parent.nColumn);var x=0,y=0;var parentFolder=getFolder(fol.pid);var strFavouriteName=fol.strName;var nFavouriteParentID=fol.pid;var linkID=this.id;var f=function()
{x+=g_Mouse.position.x;y+=g_Mouse.position.y;var folder=openSubfolder(x,y,nFavouriteParentID,nFolderID,strFavouriteName,true);};waitForMouse(fol,g_nDefaultFolderMouseWait,f,this);}
function htmlEncode(strText)
{if(!strText)return"";var value=strText.replace(/\&/g,"&amp;");value=value.replace("<","&lt;");value=value.replace(">","&gt;");value=value.replace(/'/g,"");return(value);}
function createFavourite(favouriteNode,folder)
{var nID=getNodeAttribute(favouriteNode,xfID);var pid=getNodeAttribute(favouriteNode,xfParentID);var strName=getNodeAttribute(favouriteNode,xfName);var strUrl=getNodeAttribute(favouriteNode,xfUrl);var bIsFolder=parseBool(getNodeAttribute(favouriteNode,xfIsFolder));createLink(nID,pid,strName,strUrl,bIsFolder,folder);}
function createfvl(strName,strUrl,nID,folder,pid,strClassName)
{var a=document.createElement("a");a.innerHTML=htmlEncode(strName);a.href=htmlEncode(strUrl);a.nID=nID;a.pid=pid;a.id="fvl-"+nID;return(a);}
function createLink(nID,pid,strName,strUrl,bIsFolder,folder,bHideIcon)
{var dv=document.createElement("table");var tb=document.createElement("tbody");var tr=document.createElement("tr");var td=document.createElement("td");var th=document.createElement("th");dv.className=bIsFolder?"fol":"fvl";var a;if(bIsFolder)
{var parentFolder=getFolder(pid);a=document.createElement("a");a.id="fol-"+nID;a.innerHTML=htmlEncode(strName);a.pid=pid;a.strName=htmlEncode(strName);a.nID=nID;dv.nID=nID;th.appendChild(a);}
else
{a=createfvl(strName,strUrl,nID,folder,pid,null);th.appendChild(a);}
tr.appendChild(th);tr.appendChild(td);tb.appendChild(tr);dv.appendChild(tb);init_link(dv);if(folder)folder.appendChild(dv);return(dv);}
function hideLinkButton(object)
{var button=getElementsByClass("e-b",object,"DIV")[0];if(button)button.style.display='none';}
function showLinkButton(object)
{var button=getElementsByClass("e-b",object,"DIV")[0];if(button)button.style.display='';}
function submitAddNewFavourite(form)
{var folder=$("folderID");if(folder.options.length==0||folder.options[folder.selectedIndex].strTag==xfTab)
{showAddFolderDialog(0,true,true,folder.options[folder.selectedIndex].value);return true;}
else
{addFavourite(form);return false;}}
function addFavourite(form)
{var rqid=g_AJAXPool.Request("/ajax-asp/AddNewFavourite.ajax.asp?",{postdata:getFormPostData(form),callback:onAddFavourite,args:{form:form},type:"POST"});return(false);}
function onAddFavourite(xmldoc,args)
{if(noError(xmldoc))
{closeDialog(getDialog(args.form));var strName=getFormFieldValueOnly(args.form,"name",true);var strUrl=getFormFieldValueOnly(args.form,"url",true);var f=getTagNodes(xmldoc,xfFavourite)[0];var nID=f.getAttribute(xfID);var pid=getFormFieldValueOnly(args.form,"folderID",true);var parentFolder=getFolder(pid);createLink(nID,pid,strName,strUrl,false,parentFolder);onFavouriteChange.raise();return;}
else
{showFormErrors(xmldoc,args.form);}}
function submitEditFavourite(form)
{var data=getFormPostData(form);var rqid=g_AJAXPool.Request("/ajax-asp/EditFavourite.ajax.asp",{postdata:data,callback:onEditFavourite,args:{form:form,pid:getFormFieldValueOnly(form,"folderID"),strName:unescape(getFormFieldValueOnly(form,"name",true)),strUrl:unescape(getFormFieldValueOnly(form,"url",true)),tags:getFormFieldValueOnly(form,"tags")},type:"POST"});return(false);}
function getFavouriteTags(container,nFavouriteID)
{var rqid=g_AJAXPool.Request("/ajax-asp/GetFavouriteTags.ajax.asp?favouriteID="+nFavouriteID,{callback:onGetFavouriteTags,args:{container:container}});return(false);}
function onGetFavouriteTags(xmldoc,args)
{if(noError(xmldoc))
{var tagNodes=xmldoc.getElementsByTagName(xfTag);var strTagHTML="";for(var i=0;i<tagNodes.length;i++)
{var strTagValue=getNodeAttribute(tagNodes[i],xfValue);strTagHTML+="<a class=\"resultlink\" onclick=\"tS(this);\">"+strTagValue+"</a> ";}
args.container.innerHTML=strTagHTML;}}
function onEditFavourite(xmldoc,args)
{if(noError(xmldoc))
{closeDialog(getDialog(args.form));var nFavouriteID=getTagValue(xmldoc,"favouriteID");var link=getLink(nFavouriteID);if(link)
{if(getParentNodeByObjectType(link,"searchresult"))
{var tagNode=$("tags-"+nFavouriteID);if(tagNode)
{getFavouriteTags(tagNode,nFavouriteID);}}
link.strName=args.strName;link.innerHTML=args.strName;link.href=args.strUrl;}
onFavouriteChange.raise();}
else
{showFormErrors(xmldoc,args.form);}}
function getfvlObject(nFavouriteID)
{var fvl=$("fvl-"+nFavouriteID);return(fvl);}
function getfolObject(nFolderID)
{var fol=$("fol-"+nFolderID);return(fol);}
function getfol(nID)
{return($("fol-"+nID));}
function getLink(nID)
{var link=$("fol-"+nID);if(link)
return(link);link=$("fvl-"+nID);if(link)
return(link);}
function getLinkObject(nID)
{var l=getLink(nID);if(!l)return false;var p=getParentNodeByTagName(l,"TABLE");return(p);}
function removeFavourite(nFolderID,nFavouriteID)
{var rqid=g_AJAXPool.Request("/ajax-asp/RemoveFavourite.ajax.asp?favouriteID="+nFavouriteID,{callback:onRemoveFavouriteResponse,args:{nFavouriteID:nFavouriteID}});}
function onRemoveFavouriteResponse(xmldoc,args)
{if(noError(xmldoc))
{var favourite=getfvlObject(args.nFavouriteID);if(favourite)
{if($("myResults"))
{var parentNode=getParentNodeByObjectType(favourite,"searchresult");removeElement(parentNode);}
else
{var parentNode=getParentNodeByClass(favourite,"fvl");if(parentNode)removeElement(parentNode);}}
onFavouriteChange.raise();}}
function getFavouriteSuggestedInfo(strUrl,bLeaveTitle)
{var rqid=g_AJAXPool.Request("/ajax-asp/GetFavouriteSuggestedInfo.ajax.asp?url="+strUrl,{callback:getFavouriteSuggestedInfoResponse,args:{bLeaveTitle:bLeaveTitle}});return(false);}
function getFavouriteSuggestedInfoResponse(xmldoc,args)
{if(noError(xmldoc))
{var site=getTagNodes(xmldoc,xfSite)[0];var strName=getTagValue(xmldoc,xfName);var txtName=document.getElementById("name");if(!args.bLeaveTitle&&strName&&document.getElementById("name")&&!txtName.value.length)
{txtName.value=strName;}
var strNotes=getTagValue(xmldoc,xfDescription);var txtNotes=document.getElementById("notes");if(strNotes&&!txtNotes.value.length)
{txtNotes.value=strNotes;}
var txtTags=document.getElementById("tags");var tagNodes=getTagNodes(xmldoc,xfTag);if(tagNodes&&tagNodes.length&&!txtTags.value.length)
{var strTags="";for(var iNode=0;iNode<tagNodes.length;iNode++)
{strTags+=(tagNodes[iNode].getAttribute(xfTagText)||"")+" ";}
strTags=strTags.replace(/\s$/,"");txtTags.value=strTags;}}}
function getLinkPositionList(folder)
{var strList="";for(var i=0;i<folder.childNodes.length;i++)
{if(folder.childNodes[i]&&folder.childNodes[i].nID)
{if(strList.length)strList+=",";strList+=folder.childNodes[i].nID;}}
return(strList);}
function getNewLinkPositionList(nLinkID,folder,activeLink)
{if((folder.childNodes.length-1)>0)
{var nActiveLinkID=activeLink?activeLink.nID:null;if(nActiveLinkID)
var strList=listInsertBefore(getLinkPositionList(folder),nActiveLinkID,nLinkID);else
var strList=listInsertLast(getLinkPositionList(folder),nLinkID);}
else
{var strList=nLinkID;}
return(strList);}
function getLinkID(link)
{return(link.id.match(/\d+/));}
var falseOnDragDrop=function(){if(g_Mouse.bJustDoneDragDrop)return false;};function event_init_tags()
{var tagContent=$('tagcontent');var tagNodes=tagContent.getElementsByTagName("a");for(var i=0;i<tagNodes.length;i++)
{init_tag(tagNodes[i]);}}
function init_tag(tag)
{var strName=tag.innerHTML.replace(/<[^>]+>/g,"");tag.strName=strName;var tags=g_strTagList.replace(/ /g,"+");tag.href="/favowitz/"+getUserName()+"/tags/"+tags+(tags.length?"+":"")+strName;}
function event_init_favourites(folder)
{var myFavourites=$('myFavourites');var favouriteNodes=getElementsByClass("fvl",folder||myFavourites,"table");for(var i=0;i<favouriteNodes.length;i++)
{init_link(favouriteNodes[i]);}
var favouriteNodes=getElementsByClass("fol",folder||myFavourites,"table");for(var i=0;i<favouriteNodes.length;i++)
{init_link(favouriteNodes[i]);}}
var onfvlButtonDown=function(e){if(!e)e=event;var l=getLink(this.nID);showFavouriteMenu(e,l,getFolder(this.pid),this);};var onSubfolButtonDown=function(e){if(!e)e=event;var l=getLink(this.nID);showSubfolderMenu(e,l,getFolder(this.pid),this);};function returnTrue()
{return true;}
function init_link(linkObject)
{var th=linkObject.getElementsByTagName("th")[0];var link=linkObject.getElementsByTagName("a")[0];if(link)
{var objectType=linkObject.className;var nID=getLinkID(link);if(!link.nID)link.nID=nID;link.objectType=objectType;link.target="_blank";link.onclick=falseOnDragDrop;var button=linkObject.getElementsByTagName("td")[0];button.nID=nID;button.pid=link.pid;if(objectType=="fol")
{th.onmousemove=aFunction;th.onclick=aFunction;link.oncontextmenu=onSubfolContext;button.onmousedown=onSubfolButtonDown;button.oncontextmenu=preventDefaultEvent;}
else if(objectType=="fvl")
{link.onmouseover=showFavouriteToolTip;link.onmouseout=hideToolTip;link.oncontextmenu=returnTrue;button.onmousedown=onfvlButtonDown;button.oncontextmenu=preventDefaultEvent;}
if(!link.pid)link.pid=link.getAttribute("pid");var strName=link.innerHTML.replace(/<\/?SPAN>/ig,"");link.strName=strName;linkObject.bDragable=true;linkObject.onmousedown=setDragTarget;linkObject.nID=nID;linkObject.strName=strName;linkObject.objectType=objectType;linkObject.pid=link.pid;linkObject.onmousemove=fHighlightOn;linkObject.onmouseout=fHighlightOff;}}
function init_result_link(resultObject)
{resultObject.objectType="searchresult";var link=resultObject.getElementsByTagName("a")[0];if(link)
{var objectType=link.className;var nID=getLinkID(link);if(!link.nID)link.nID=nID;link.objectType=objectType;link.target="_blank";link.onclick=falseOnDragDrop;var button=getElementByExactClass("e-b",resultObject,"div");button.nID=nID;button.pid=link.pid;button.onmousedown=onResultButtonMouseDown;button.oncontextmenu=preventDefaultEvent;if(objectType=="fvl")
{link.onmouseover=showFavouriteToolTip;link.onmouseout=hideToolTip;link.oncontextmenu=stopEventBubble;button.onmousedown=onResultButtonMouseDown;button.oncontextmenu=preventDefaultEvent;}
if(!link.pid)link.pid=link.getAttribute("pid");var strName=link.innerHTML.replace(/<\/?SPAN>/ig,"");link.strName=strName;}}
function CDictionary()
{this.Add=fAdd;this.Lookup=fLookup;this.Delete=fRemove;}
function fAdd(strKeyName,lValue)
{this[strKeyName]=lValue;}
function fLookup(strKeyName)
{return(this[strKeyName]);}
function fRemove(strKeyName)
{this[strKeyName]=null;}
onTabChange.addHandler(populateTagbox);onFolderChange.addHandler(populateTagbox);onFavouriteChange.addHandler(populateTagbox);function populateTagbox()
{var myTagbox=$("tagbox");if(!myTagbox)return;if(g_strTagList.length>0)
{var rqid=g_AJAXPool.Request("/ajax-asp/GetTagTagboxLinks.ajax.asp?tagList="+g_strTagList.replace(/ /g,","),{callback:onPopulateTagboxResponse});}
else
{var rqid=g_AJAXPool.Request("/ajax-asp/GetTagTagboxLinks.ajax.asp",{callback:onPopulateTagboxResponse});}
return(false);}
function onPopulateTagboxResponse(xmldoc,args)
{var myTagbox=$("tagcontent");if(noError(xmldoc)&&myTagbox)
{var tagshowalphabet=xmldoc.getElementsByTagName(xfShowAlphabet);var bShowAlphabet=1;bShowAlphabet=parseInt(getNodeAttribute(tagshowalphabet[0],xfValue));var tagsorturlcount=xmldoc.getElementsByTagName(xfSortURLCount);var bsorturlcount=1;bsorturlcount=getNodeAttribute(tagsorturlcount[0],xfValue);var TagCountThreshold=xmldoc.getElementsByTagName(xfTagCountThreshold);var nIgnoreCount=0;if(g_strTagList.length==0)nIgnoreCount=parseInt(getNodeAttribute(TagCountThreshold[0],xfValue));var tagNodes=xmldoc.getElementsByTagName(xfTag);myTagbox.innerHTML="";var arrInnerHTML=new Array();var strFistrCharLast="";var mapFont=new CDictionary;var nTagCount=GenerateFontMap(tagNodes,nIgnoreCount,mapFont,arrInnerHTML);for(var i=0;i<tagNodes.length;i++)
{var strValue=getNodeAttribute(tagNodes[i],xfValue);var nTagID=getNodeAttribute(tagNodes[i],xfID);var nCount=getNodeAttribute(tagNodes[i],xfCount);if(nCount<nIgnoreCount)
{continue;}
var strValueName="000000000"+nCount;strValueName=strValueName.substr(strValueName.length-9,strValueName.length);var strClassName="00"+mapFont["NR"+strValueName];strClassName="tags_"+strClassName.substr(strClassName.length-2,strClassName.length);strClass=strClassName;if(bShowAlphabet)
{var strValueOUT=strValue;var strFistrCharOUT="";var strFistrChar=strValue.charAt(0).toUpperCase();if(strFistrChar!=strFistrCharLast)
{strFistrCharOUT="<em>"+strFistrChar+"</em>";strFistrCharLast=strFistrChar;strValueOUT=strValue.substr(1,strValue.length);}
else
{}
arrInnerHTML.push("<a nID=\""+nTagID+"\" class=\""+strClass+"\">"+strFistrCharOUT+strValueOUT+"</a>&#32;");}
else
{arrInnerHTML.push("<a nID=\""+nTagID+"\" class=\""+strClass+"\">"+strValue+"</a>&#32;");}}
myTagbox.innerHTML+=arrInnerHTML.join("");event_init_tags();}}
function GenerateFontMap(tagNodes,nIgnoreCount,mapFont,arrInnerHTML)
{var mapCount=new CDictionary;var nMinCount=999999;var nMaxCount=0;var nIgnoreCountTotal=0;for(var i=0;i<tagNodes.length;i++)
{var nCount=parseInt(getNodeAttribute(tagNodes[i],xfCount));if(nCount<nIgnoreCount)
{nIgnoreCountTotal++;continue;}
var strValueName="000000000"+nCount;strValueName=strValueName.substr(strValueName.length-9,strValueName.length);var nValue=mapCount.Lookup("NR"+strValueName);if(!nValue)nValue=0;mapCount.Add("NR"+strValueName,nValue+1);}
var arrCount=new Array();for(var objCount in mapCount)
{if(objCount.substr(0,2)=="NR")
{arrCount.push(objCount);}}
arrCount.sort();var nFont=1;var nC1=arrCount.length/8;var nC=nC1;for(var n=0;n<arrCount.length;n++)
{if(n>nC){nFont++;nC+=nC1;}
mapFont.Add(arrCount[n],nFont);}
var nTagCount=tagNodes.length;mapCount=null;arrCount=null;return nTagCount-nIgnoreCountTotal;}
var g_oTags=new Object();function tS(a)
{var strTagName=a.innerHTML.replace(/<[^>]+>/g,"");strTagName=strTagName.replace(/Navigate To /,"");var loc="/favowitz/"+getUserName()+"/tags/"+(g_strTagList.length?urlEncode(g_strTagList).replace(/ /g,"+")+"+":"")+strTagName;document.location.href=loc;}
function getTagList()
{return(g_strTagList);}
function getTagListNames()
{var arrstr=new Array()
for(var i in g_oTags)
{arrstr.push(i);}
return arrstr.join(",");}
function getTagListID(strName)
{return(g_oTags[strName]||"");}
function getTagListName(nID)
{for(var i in g_oTags)
{if(g_oTags[i]==nID)return(i);}}
function clearNavigation()
{var tagTitle=$("tagbox").getElementsByTagName("h2")[0];tagTitle.innerHTML="Tags";var navigation=$("navigation");var nNodes=navigation.childNodes.length;if(navigation&&nNodes>1)
{for(var i=nNodes-1;i>1;i--)
{var navigationNode=navigation.childNodes[i];navigation.removeChild(navigationNode);delete navigationNode;}
navigation.childNodes[0].getElementsByTagName("a")[0].href="javascript:void(0);";}}
function updateTagList()
{var arr=new Array();clearNavigation();var navigation=$("navigation");if(navigation)
{var n=0;var nNumTags=getSearchTagCount();for(var i in g_oTags)
{if(n==nNumTags-1)
{arr.push("<li>/"+i+"</li>");}
else
{arr.push("<li>/<a href=\"javascript:backTrackTagSearch('"+i+"');\">"+i+"</a></li>");}
n++;}
navigation.innerHTML+=arr.join("");if(navigation.childNodes.length!=1)
{navigation.childNodes[0].getElementsByTagName("a")[0].href="/";var tagTitle=$("tagbox").getElementsByTagName("h2")[0];tagTitle.innerHTML="Tags&nbsp;<a href=\"javascript:clearTagSearch();\">[ clear ]</a>";}}}
function getSearchTagCount()
{var n=0;for(var i in g_oTags)
{n++;}
return(n);}
function tagSearchIsEmpty()
{for(var i in g_oTags)
{return(false);}
return(true);}
function clearTagSearch()
{for(var i in g_oTags)
{delete g_oTags[i];}
g_oTags=new Object();populateTagbox();clearNavigation();viewMyFavourites();addColumnsToPage();myTabs.showTabs();}
function backTrackTagSearch(strTagValue)
{var oTmpTags=new Object();for(var i in g_oTags)
{oTmpTags[i]=g_oTags[i];if(i==strTagValue)
{g_oTags=oTmpTags;updateTagList();populateTagbox();getTagSearchResults();return;}}}
function getTagSearchResults()
{var strTagList=getTagList();var rqid=g_AJAXPool.Request("/ajax-asp/GetTagSearchResults.ajax.asp?tagList="+strTagList,{callback:onGetTagSearchResultsResponse,args:{strTagList:strTagList}});}
function viewMyResults()
{if(!myResults.parentNode||!myResults.parentNode.tagName)
{var parentNode=myFavourites.parentNode;parentNode.replaceChild(myResults,myFavourites);myOptions.style.display="none";}}
function viewMyFavourites()
{if(!myResults.myFavourites||!myResults.myFavourites.tagName)
{var parentNode=myResults.parentNode;parentNode.replaceChild(myFavourites,myResults);myOptions.style.display="";}}
var resultHighlight=function()
{if(resultHighlight.lastHighlighted)resultHighlight.lastHighlighted.style.backgroundColor="";this.style.backgroundColor=g_Style['result-highlight-color'];resultHighlight.lastHighlighted=this;}
var resultLowLight=function()
{if(resultHighlight.lastHighlighted)resultHighlight.lastHighlighted.style.backgroundColor="";}
function onGetTagSearchResultsResponse(xmldoc,args)
{if(noError(xmldoc))
{viewMyResults();var myTagbox=$("myTagBox");myTabs.hideTabs();var strTagListNames=getTagListNames();var arrTagListNames=strTagListNames.split(",");strTagListNames="";for(var i=0;i<arrTagListNames.length;i++)
{if(strTagListNames!="")strTagListNames+=" AND ";strTagListNames+="<span class=\"tw\">"+arrTagListNames[i]+"</span>";}
myResults.innerHTML="<h3 class='title'>Favourites tagged with "+strTagListNames+"</h3><br />";var favouriteNodes=xmldoc.getElementsByTagName(xfFavourite);if(favouriteNodes.length>0)
{for(i=0;i<favouriteNodes.length;i++)
{var strName=getNodeAttribute(favouriteNodes[i],xfName);var strUrl=getNodeAttribute(favouriteNodes[i],xfUrl);var nID=getNodeAttribute(favouriteNodes[i],xfID);var pid=getNodeAttribute(favouriteNodes[i],xfParentID);var fvl=createLink(nID,pid,strName,strUrl,false,null,true);var result=document.createElement("div");result.objectType="searchresult";result.onmousemove=resultHighlight;myResults.onmouseout=resultLowLight;result.className="result";fvl.className="resultlink";result.innerHTML=getButton("result");result.appendChild(fvl);var tagNodes=favouriteNodes[i].getElementsByTagName(xfTag);var strTagHTML="<div><div class=\"result-options\"><div class=\"e-b\" onmousedown=\"var l = getLink( "+nID+"); this.id = genID(); showFavouriteMenu( event, l, this );\"></div></div><div id=\"tags-"+nID+"\" class=\"tags\">";for(var j=0;j<tagNodes.length;j++)
{var strTagValue=getNodeAttribute(tagNodes[j],xfValue);strTagHTML+="<a href=\"javascript:tS(this);\">"+strTagValue+"</a> ";}
strTagHTML+="</div></div>";result.innerHTML+=strTagHTML;myResults.appendChild(result);}}
else
{myResults.innerHTML+="<h4>None found!!!</h4>";myTagbox.innerHTML+="<h4>None found!!!</h4>";}}}
function showInfoTip(strTipName)
{hideInfoTip();var rqid=g_AJAXPool.Request("/ajax-asp/GetTip.ajax.asp?t="+strTipName,{callback:onShowInfoTip,args:{strTipName:strTipName},bAlert:true});return(false);}
function onShowInfoTip(xmldoc,args)
{if(noError(xmldoc))
{var tooltip=$("infotip");if(!tooltip)
{tooltip=document.createElement("div");tooltip.id="infotip";tooltip.style.zIndex=500;tooltip.hide=hideThis;tooltip.lock=lockFunc;tooltip.unlock=unLockFunc;tooltip.show=showThis;document.body.appendChild(tooltip);}
else
{tooltip.show();}
tooltip.className="favourite-tooltip";tooltip.opener=getLink(args.nFavouriteID);var favouriteNode=xmldoc.getElementsByTagName(xfFavourite)[0];var strTitle=htmlEncode(getNodeAttribute(favouriteNode,xfUrl));var strTip=htmlEncode(getNodeAttribute(favouriteNode,xfName));tooltip.innerHTML="<h4>"+strTitle+"</h4>"+"<div class='info'>"+strTip+"</div>";tooltip.style.left=px(EnsureXIsOnScreen(g_Mouse.position.x,getWidth(tooltip)));tooltip.style.top=px(EnsureYIsOnScreen(g_Mouse.position.y,getHeight(tooltip)));tooltip.shadow=doShadow(tooltip);}}
function showFavouriteToolTip(e,fvl)
{if(hideToolTip)hideToolTip();if(!fvl)fvl=this;var nFavouriteID=fvl.nID;if(g_Mouse.bDragDropInProgress)return;var link=getLink(nFavouriteID);waitForMouse(link,g_nDefaultToolTipMouseWait,function(){doShowFavouriteToolTip(nFavouriteID);},null);}
function doShowFavouriteToolTip(nFavouriteID)
{if(g_Mouse.bDragDropInProgress)return;var menu=$("menu-menu");if(menu&&menu.style.display==""&&this.nLastFavouriteID==nFavouriteID)return;var rqid=g_AJAXPool.Request("/ajax-asp/GetFavourite.ajax.asp?favouriteID="+nFavouriteID,{callback:onShowFavouriteToolTip,args:{nFavouriteID:nFavouriteID}});this.nLastFavouriteID=nFavouriteID;return(false);}
function abbrevStr(strText)
{var nLength=strText.length;if(nLength>g_nMaxToolTipUrlLength)
{var nPos=Math.floor(g_nMaxToolTipUrlLength/2);var strReturn=strText.substr(0,nPos);strReturn+="...";strReturn+=strText.substr(nLength-nPos,nLength);return(strReturn);}
return(strText);}
function getTooltip()
{var tooltip=$("tooltip");return(tooltip);}
function onShowFavouriteToolTip(xmldoc,args)
{if(noError(xmldoc))
{var tooltip=$("tooltip");if(!tooltip)
{tooltip=document.createElement("div");tooltip.id="tooltip";tooltip.style.zIndex=500;tooltip.checkHide=checkHideToolip;tooltip.hide=hideThis;tooltip.lock=lockFunc;tooltip.unlock=unLockFunc;tooltip.show=showThis;document.body.appendChild(tooltip);}
else
{tooltip.show();}
tooltip.className="favourite-tooltip";tooltip.opener=getLink(args.nFavouriteID);var favouriteNode=xmldoc.getElementsByTagName(xfFavourite)[0];var strUrl=htmlEncode(getNodeAttribute(favouriteNode,xfUrl));var strName=htmlEncode(getNodeAttribute(favouriteNode,xfName));var strNotes=htmlEncode(getNodeAttribute(favouriteNode,xfNotes));var strTags=htmlEncode(getNodeAttribute(favouriteNode,xfTags));tooltip.innerHTML="<h4>"+strName+"</h4>"+"<div class='info'>"+abbrevStr(strUrl)+"</div>"+"<div class='tip-divider'></div>"+"<div class='info'>"+strNotes+"</div>"+"<div class='tags'>Tags: "+strTags+"</div>";tooltip.style.left=px(EnsureXIsOnScreen(g_Mouse.position.x+16,getWidth(tooltip)));tooltip.style.top=px(EnsureYIsOnScreen(g_Mouse.position.y+16,getHeight(tooltip)));tooltip.shadow=doShadow(tooltip);tooltip.checkHide();}}
function hideToolTip()
{var tooltip=getTooltip();if(tooltip)tooltip.hide();}
var checkHideToolip=function()
{var instanceName=this.instanceName;var tooltip=this;this.timer=setTimeout(function()
{var mouse=g_Mouse;if(!g_Mouse.bDragDropInProgress&&mouseInObjectBounds(tooltip.opener))
{tooltip.lock("mouseover");}
else
{tooltip.unlock("mouseover");}
if(isLocked(tooltip))
{tooltip.checkHide();}
else
{tooltip.hide();}},10);}
function sendMessage(form)
{var rqid=g_AJAXPool.Request("/ajax-asp/SendMessage.ajax.asp?",{postdata:getFormPostData(form),callback:onSendMessage,args:{form:form},type:"POST"});return(false);}
function onSendMessage(xmldoc,args)
{if(noError(xmldoc))
{var m=$('sendMessage');if(m)
{m.innerHTML="<p>Thanks! The message has been sent.</p>";}
return;}
else
{showFormErrors(xmldoc,args.form);}}
