
function $(id) {return document.getElementById(id);}
var CLASMA={};
CLASMA.namespace=function(ns)
{
var o=CLASMA;
var s=ns.split(".");
var n=(s[0]=="CLASMA")?1:0;
while(n<s.length)
{
if(!o[s[n]]) o[s[n]]={};
o=o[s[n++]];
}
return o;
};
CLASMA.libPath="lib/";
CLASMA.cssPath="css/";
CLASMA.resPath="res/";
Number.prototype.NaN0=function() {return isNaN(this)?0:this;};
String.prototype.regrep=function(p,s) {return this.replace(new RegExp(p,"gi"),s);};
String.prototype.regrem=function(p) {return this.replace(new RegExp(p,"gi"),"");};
String.prototype.regmatch=function(p) {return this.match(new RegExp(p,"gi"));};
String.prototype.ltrim=function() {return this.regrem("^\\s+");};
String.prototype.rtrim=function() {return this.regrem("\\s+$");};
String.prototype.trim=function() {return this.ltrim().rtrim();};
String.prototype.trimsplit=function(c) {var s=this.split(c); for(var n=0;n<s.length;n++) s[n]=s[n].trim(); return s;};
String.prototype.addBreaks=function() {return this.regrep("\r\n|\n|\r","<br/>");};
String.prototype.removeBreaks=function() {return this.regrep("<br\/>","\r\n");};
String.prototype.escapeTabs=function() {return this.regrep("\t","&nbsp;&nbsp;&nbsp;&nbsp;");};
String.prototype.escapeHtml=function() {return this.regrep("&","&amp;").regrep("<","&lt;").regrep(">","&gt;");};
String.prototype.unescapeHtml=function() {return this.regrep("&amp;","&").regrep("&lt;","<").regrep("&gt;",">");};
String.prototype.stripTags=function() {return this.regrem("<([^>]+)>");};
String.prototype.encode=function() {return encodeURIComponent(this);};
String.prototype.parseUrl=function()
{
var m=new RegExp(
"^(?:([^:/?#.]+):)?(?://)?"+
"(([^:/?#]*)(?::(\\d*))?)?"+
"((/(?:[^?#](?![^?#/]*\\.[^?#/.]+(?:[\\?#]|$)))*/?)?([^?#/]*))?(?:\\?([^#]*))?"+
"(?:#(.*))?").exec(this);
var k=["source","protocol","authority","domain","port","path","directory","file","query","hash"];
var o={};
for(var n=0;n<10;n++)
o[k[n]]=(m[n]?m[n]:"");
return o;
};
String.prototype.parseFile=function()
{
var d={path:"",file:"",ext:""};
var n=this.lastIndexOf(".");
if(n>=0) d.ext=this.substr(n+1);
else n=this.length;
var nn=this.lastIndexOf(String.fromCharCode(92));
if(nn<0)
{
nn=this.lastIndexOf("/");
if(nn<0) nn=this.lastIndexOf(":");
}
nn++;
d.file=this.substr(nn,n-nn);
d.path=this.substr(0,nn);
return d;
};
String.prototype.parseEmail=function()
{
var m=this.split("@");
return (m && m.length==2)?{local:m[0],domain:m[1]}:null;
};
String.prototype.validEmail=function()
{
var len=this.length-1;
var at=this.lastIndexOf("@");
if(at<1 || at==len) return false;
var dot=this.lastIndexOf(".");
if(dot<=at+1 || dot==len) return false;
return true;
};
String.prototype.validPassword=function()
{
if(this.length>=6)
{
for(var n=0;n<this.length;n++)
if(CLASMA.lang.isNum(this.charAt(n))) return true;
}
return false;
};
String.prototype.oneOf=function(ar)
{
for(var n=0;n<ar.length;n++)
if(this.toLowerCase()==ar[n].toLowerCase()) return n;
return -1;
};
String.prototype.toTitle=function()
{
function fn(a) {return a.toUpperCase();}
return this.replace(/\b[a-z]/g,fn);
};
Date.prototype.strTime=function(secs)
{
var h=this.getHours();
var m=this.getMinutes();
var pm=(h>=12);
var n=false;
h%=12;
if(h==0)
{
if(m==0) n=true;
h=12;
}
if(m<10) m="0"+m;
var ts=h+":"+m;
if(secs)
{
var s=this.getSeconds();
if(s<10) s="0"+s;
ts+=":"+s;
}
if(n) ts+=" "+(pm?"Noon":"Midnight");
else ts+=" "+(pm?"pm":"am");
return ts;
};
CLASMA.namespace("CLASMA.lang");
CLASMA.lang=function() {
var number="0123456789";
var lower="abcdefghijklmnopqrstuvwxyz";
var upper="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var isValid=function(s,v)
{
if(s && s!="")
{
for(var n=0;n<s.length;n++)
if(v.indexOf(s.charAt(n))==-1) return false;
}
return true;
};
return {
isUndefined:function(o) {return typeof o=="undefined";},
isNull:function(o) {return o===null;},
isBoolean:function(o) {return typeof o=="boolean";},
isString:function(o) {return typeof o=="string";},
isNumber:function(o) {return typeof o=="number" && isFinite(o);},
isObject:function(o) {return typeof o=="object";},
isFunction:function(o) {return typeof o=="function";},
isNum:function(s) {return isValid(s,number);},
isUpper:function(s) {return isValid(s,upper);},
isLower:function(s) {return isValid(s,lower);},
isAlpha:function(s) {return isValid(s,upper+lower);},
isAlphaNum:function(s) {return isValid(s,upper+lower+number);},
tween:function(t,b,c,d) {return b+((c-b)*(t/d));},
floorit:function(v,n) {v+=n; return v<0?0:v;}
}; }();
CLASMA.namespace("CLASMA.detect");
CLASMA.detect=function() {
var sniffles=[
"MSIE ([\\d|\\.]+);",
"Firefox\\/([\\d|\\.]+)",
"Version\\/([\\d|\\.]+) Safari",
"Chrome\\/([\\d|\\.]+)"];
var types=[
"IE",
"FireFox",
"Safari",
"Chrome"];
return {
agent:"Unknown",
platform:"Unknown",
type:"Unknown",
ver:"?",
vermaj:0,
vermin:0,
verbuild:0,
ie:false,
firefox:false,
safari:false,
chrome:false,
sniff:function()
{
var a=navigator.userAgent;
this.platform=navigator.platform;
this.agent=a;
for(var n=0;n<sniffles.length;n++)
{
var re=new RegExp(sniffles[n],"i");
if(re.test(a))
{
this.type=types[n];
this.ver=RegExp.$1;
var v=this.ver.split(".");
this.vermaj=v.length>0?parseInt(v[0]):0;
this.vermin=v.length>1?parseInt(v[1]):0;
this.verbuild=v.length>2?parseInt(v[2]):0;
break;
}
}
this.ie=(n==0);
this.firefox=(n==1);
this.safari=(n==2);
this.chrome=(n==3);
}
}; }();
CLASMA.detect.sniff();
CLASMA.namespace("CLASMA.dom");
CLASMA.dom=function() {
var cdd=CLASMA.detect;
var loadList=null;
var evalList=null;
var fnDomLoad=null;
var getE=function(id) {return CLASMA.lang.isString(id)?$(id):id;};
var getS=function(id) {var e=getE(id); return e?e.style:null;};
return {
getDocument:function() {return document;},
getHead:function(doc) {if(!doc) doc=document; return doc.getElementsByTagName("head")[0];},
getBody:function(doc) {if(!doc) doc=document; return doc.getElementsByTagName("body")[0];},
getElement:function(id) {return getE(id);},
getStyle:function(id) {return getS(id);},
getParent:function(id) {var e=getE(id); return e?e.parentNode:null;},
getFirst:function(id) {var e=getE(id); return e?e.firstChild:null;},
getLast:function(id) {var e=getE(id); return e?e.lastChild:null;},
getNext:function(id) {var e=getE(id); return e?e.nextSibling:null;},
getPrev:function(id) {var e=getE(id); return e?e.prevSibling:null;},
getTag:function(id) {var e=getE(id); return e?e.tagName.toLowerCase():null;},
setId:function(id,v) {var e=getE(id); if(e) e.id=v;},
getId:function(id) {var e=getE(id); return e?e.id:null;},
setClass:function(id,v) {var e=getE(id); if(e) e.className=v;},
getClass:function(id) {var e=getE(id); return e?e.className:null;},
setHtml:function(id,v) {var e=getE(id); if(e) e.innerHTML=v;},
getHtml:function(id) {var e=getE(id); return e?e.innerHTML:null;},
setSrc:function(id,v) {var e=getE(id); if(e) e.src=v;},
getSrc:function(id) {var e=getE(id); return e?e.src:null;},
setScrollTop:function(id,v) {var e=getE(id); if(e) e.scrollTop=v;},
getScrollTop:function(id) {var e=getE(id); return e?e.scrollTop:null;},
setScrollLeft:function(id,v) {var e=getE(id); if(e) e.scrollLeft=v;},
getScrollLeft:function(id) {var e=getE(id); return e?e.scrollLeft:null;},
getScrollHeight:function(id) {var e=getE(id); return e?e.scrollHeight:null;},
getScrollWidth:function(id) {var e=getE(id); return e?e.scrollWidth:null;},
setValue:function(id,v) {var e=getE(id); if(e) e.value=v;},
getValue:function(id) {var e=getE(id); return e?e.value:null;},
setChecked:function(id,v) {var e=getE(id); if(e) e.checked=v;},
getChecked:function(id) {var e=getE(id); return e?e.checked:null;},
isChecked:function(id) {return this.getChecked(id);},
setDisabled:function(id,v) {var e=getE(id); if(e) e.disabled=v?"disabled":"";},
getDisabled:function(id) {var e=getE(id); return e?e.disabled:null;},
isDisabled:function(id) {return this.getDisabled(id);},
setAttr:function(id,n,v) {var e=getE(id); if(e) e.setAttribute(n,v);},
getAttr:function(id,n) {var e=getE(id); return e?e.getAttribute(n):null;},
setTop:function(id,v) {var s=getS(id); if(s) s.top=v+"px";},
getTop:function(id) {var s=getS(id); return s?s.top:null;},
setLeft:function(id,v) {var s=getS(id); if(s) s.left=v+"px";},
getLeft:function(id) {var s=getS(id); return s?s.left:null;},
setBottom:function(id,v) {var s=getS(id); if(s) s.bottom=v+"px";},
getBottom:function(id) {var s=getS(id); return s?s.bottom:null;},
setRight:function(id,v) {var s=getS(id); if(s) s.right=v+"px";},
getRight:function(id) {var s=getS(id); return s?s.right:null;},
setWidth:function(id,v) {var s=getS(id); if(s) s.width=v+"px";},
getWidth:function(id) {var s=getS(id); return s?s.width:null;},
setHeight:function(id,v) {var s=getS(id); if(s) s.height=v+"px";},
getHeight:function(id) {var s=getS(id); return s?s.height:null;},
setBackImage:function(id,v) {var s=getS(id); if(s) s.backgroundImage="url("+v+")";},
getBackImage:function(id) {var s=getS(id); return s?s.backgroundImage:null;},
setBackColor:function(id,v) {var s=getS(id); if(s) s.backgroundColor=v;},
getBackColor:function(id) {var s=getS(id); return s?s.backgroundColor:null;},
setColor:function(id,v) {var s=getS(id); if(s) s.color=v;},
getColor:function(id) {var s=getS(id); return s?s.color:null;},
setMarginTop:function(id,v) {var s=getS(id); if(s) s.marginTop=v+"px";},
getMarginTop:function(id) {var s=getS(id); return s?s.marginTop:null;},
setMarginLeft:function(id,v) {var s=getS(id); if(s) s.marginLeft=v+"px";},
getMarginLeft:function(id) {var s=getS(id); return s?s.marginLeft:null;},
setMarginBottom:function(id,v) {var s=getS(id); if(s) s.marginBottom=v+"px";},
getMarginBottom:function(id) {var s=getS(id); return s?s.marginBottom:null;},
setMarginRight:function(id,v) {var s=getS(id); if(s) s.marginRight=v+"px";},
getMarginRight:function(id) {var s=getS(id); return s?s.marginRight:null;},
setFrame:function(id,v,w) {var s=getS(id); if(s) s.backgroundPosition=(-(v*w))+"px 0px";},
getFrame:function(id) {var s=getS(id); return s?s.backgroundPosition:null;},
setZIndex:function(id,i) {var s=getS(id); if(s) s.zIndex=i;},
getZIndex:function(id) {var s=getS(id); return s?s.zIndex:null;},
setDisplay:function(id,v) {var s=getS(id); if(s) s.display=v;},
getDisplay:function(id) {var s=getS(id); return s?s.display:null;},
setPosition:function(id,v) {var s=getS(id); if(s) s.position=v;},
getPosition:function(id) {var s=getS(id); return s?s.position:null;},
setVisibility:function(id,v) {var s=getS(id); if(s) s.visibility=v;},
getVisibility:function(id) {var s=getS(id); return s?s.visibility:null;},
setShow:function(id,v) {var s=getS(id); if(s) s.display=v?"block":"none";},
getShow:function(id) {var s=getS(id); return s?s.display:null;},
isVisible:function(id) {var s=getS(id); return s && s.display!="none";},
createElement:function()
{
var a=arguments;
var n=0;
var doc=CLASMA.lang.isString(a[n])?document:a[n++];
var e=doc.createElement(a[n++]);
if(!e) return null;
while(n<a.length)
{
var o=a[n++].trimsplit("=");
if(o.length==2) e.setAttribute(o[0],o[1]);
}
return e;
},
appendBody:function(e)
{
document.body.appendChild(e);
},
appendChild:function(parent,e)
{
var p=getE(parent);
if(!p) return;
parent.appendChild(e);
},
insertChild:function(before,e)
{
var c=getE(before);
if(!c) return;
c.parentNode.insertBefore(e,c);
},
deleteElement:function(id)
{
var e=getE(id);
if(!e) return;
var p=CLASMA.dom.getParent(e);
if(p) p.removeChild(e);
},
removeElements:function(id)
{
var e=getE(id);
if(!e) return;
while(e.firstChild)
e.removeChild(e.firstChild);
},
getElements:function(tag,parent,cls)
{
if(!tag) tag="*";
if(!parent) parent=document;
parent=getE(parent);
if(!parent) return [];
var e=(tag=="*" && parent.all)?parent.all:parent.getElementsByTagName(tag);
if(!cls) return e;
var l=[];
var r=new RegExp("(^|\\s)"+cls+"(\\s|$)");
for(var n=0;n<e.length;n++)
if(r.test(CLASMA.dom.getClass(e[n]))) l.push(e[n]);
return l;
},
getElementById:function(parent,id)
{
if(!parent || parent==document)
return document.getElementById(id);
var e=CLASMA.dom.getElements(null,parent,null);
for(var n=0;n<e.length;n++)
if(CLASMA.dom.getId(e[n])==id) return(e[n]);
return null;
},
getElementByClass:function(parent,cls)
{
var e=CLASMA.dom.getElements(null,parent,cls);
return e.length>0?e[0]:null;
},
getParentElement:function(from,tag,cls)
{
if(!tag) tag="*";
var r=cls?(new RegExp("(^|\\s)"+cls+"(\\s|$)")):null;
var e=CLASMA.dom.getParent(from);
while(e && e!=document)
{
if((tag=="*" || CLASMA.dom.getTag(e)==tag) &&
(!r || r.test(CLASMA.dom.getClass(e))))
return e;
e=CLASMA.dom.getParent(e);
}
return null;
},
enableFormElements:function(form,enable,exempt)
{
if(typeof enable=="undefined") enable=true;
if(typeof exempt=="undefined") exempt=null;
form=getE(form);
if(!form) return;
for(var n=0;n<form.elements.length;n++)
{
var e=form.elements[n];
if(e) e.disabled=!enable;
}
if(exempt)
{
var ex=exempt.split(",")
for(n=0;n<ex.length;n++)
$(ex[n]).disabled=enable;
}
},
processScripts:function(t)
{
loadList=[];
evalList=[];
var s1=new RegExp("<script","gi");
var s2=new RegExp("</script>","gi");
var s3=new RegExp(" src=","gi");
while(true)
{
var n1=t.search(s1);
if(n1==-1) break;
var n2=t.search(s2);
if(n2==-1) break;
var s=t.substring(n1,n2);
t=t.substring(0,n1)+t.substring(n2+9);
var n1=s.indexOf(">");
if(n1==-1) break;
var a=s.substring(0,n1+1);
var n2=a.search(s3);
if(n2>=0)
{
var c=a.charAt(n2+5);
var n=a.indexOf(c,n2+6);
a=a.substring(n2+6,n);
if(a!="") loadList.push(a);
}
s=s.substring(n1+1);
if(s!="") evalList.push(s);
}
return t;
},
runScripts:function()
{
for(var n=0;n<loadList.length;n++)
this.loadScript(loadList[n]);
for(var n=0;n<evalList.length;n++)
this.evalScript(evalList[n]);
loadList=null;
evalList=null;
},
loadScript:function(src)
{
var e=this.createElement("script");
e.type="text/javascript";
e.src=src;
try {this.getHead().appendChild(e);}
catch(err) {return alert(err.description);}
return null;
},
evalScript:function(t)
{
var e=this.createElement("script");
e.type="text/javascript";
e.text=t;
try {this.getHead().appendChild(e);}
catch(err) {return alert(err.description);}
return null;
},
getBoundingBox:function(id)
{
var e=getE(id);
if(!e) return null;
var box={top:0,left:0,bottom:0,right:0,width:0,height:0};
if(e.getBoundingClientRect)
{
var br=e.getBoundingClientRect();
box.top=parseInt(br.top);
box.left=parseInt(br.left);
box.bottom=parseInt(br.bottom);
box.right=parseInt(br.right);
box.width=parseInt(br.right-br.left);
box.height=parseInt(br.bottom-br.top);
return box;
}
if(document.getBoxObjectFor)
{
var bo=document.getBoxObjectFor(e);
box.top=parseInt(bo.y);
box.left=parseInt(bo.x);
box.width=parseInt(bo.width);
box.height=parseInt(bo.height);
box.bottom=parseInt(box.top+bo.height);
box.right=parseInt(box.left+bo.width);
return box;
}
return CLASMA.dom.getOffsetBox(e);
},
getOffsetBox:function(id)
{
var e=getE(id);
if(!e) return null;
var box={top:0,left:0,bottom:0,right:0,width:0,height:0};
box.width=parseInt(e.offsetWidth);
box.height=parseInt(e.offsetHeight);
while(e)
{
box.top+=e.offsetTop;
box.left+=e.offsetLeft;
e=e.offsetParent;
}
box.top=parseInt(box.top);
box.left=parseInt(box.left);
box.bottom=parseInt(box.top+box.height);
box.right=parseInt(box.left+box.width);
return box;
},
ptInBoundingBox:function(id,pt)
{
var b=this.getBoundingBox(id);
return pt.top>=b.top && pt.top<b.bottom &&
pt.left>=b.left && pt.left<b.right;
},
isChild:function(p,e)
{
while(e)
{
if(e==p) return true;
e=e.parentNode;
}
return false;
},
addEvent:function(id,name,fn,capture)
{
var e=getE(id);
if(!e) return;
if(typeof capture=="undefined") capture=false;
if(e.addEventListener)
{
if(cdd.firefox)
{
switch(name)
{
case "mousewheel":
name="DOMMouseScroll";
break;
}
}
e.addEventListener(name,fn,capture);
}
else
{
if(e.attachEvent) e.attachEvent("on"+name,fn);
else e["on"+name]=fn;
}
},
removeEvent:function(id,name,fn,capture)
{
var e=getE(id);
if(!e) return;
if(typeof capture=="undefined") capture=false;
if(e.removeEventListener) e.removeEventListener(name,fn,capture);
else
{
if(e.detachEvent) e.detachEvent("on"+name,fn);
else e["on"+name]=null;
}
},
cssAddRule:function(css,selector,rule)
{
if(css>=document.styleSheets.length) return;
var s=document.styleSheets[css];
if(cdd.ie) s.addRule(selector,rule);
else s.insertRule(selector+" {"+rule+"}");
},
setOnDomLoaded:function()
{
if(cdd.safari)
{
var timer=setInterval(function()
{
if(document.readyState=="loaded" ||
document.readyState=="complete")
{
clearInterval(timer);
CLASMA.dom.ondomloaded();
}
},10);
return;
}
if(cdd.ie)
{
document.write("<script id=\"__ie_load\" defer=\"defer\" src=\"javascript:void(0)\"></script>");
var e=$("__ie_load");
e.onreadystatechange=function()
{
if(e.readyState=="complete")
{
e.onreadystatechange=null;
e.removeNode(true);
CLASMA.dom.ondomloaded();
}
}
return;
}
if(document.addEventListener)
{
document.addEventListener("DOMContentLoaded",this.ondomloaded,false);
return;
}
window.onload=this.ondomloaded;
},
ondomloaded:function()
{
if(!arguments.callee.done)
{
arguments.callee.done=true;
if(fnDomLoad) fnDomLoad();
}
},
addDomLoadEvent:function(fn)
{
var pfn=fnDomLoad;
fnDomLoad=function()
{
if(pfn) pfn();
fn();
}
},
addLoadEvent:function(fn)
{
var pfn=window.onload;
window.onload=function()
{
if(pfn) pfn();
fn();
}
}
}; }();
CLASMA.dom.setOnDomLoaded();
CLASMA.namespace("CLASMA.framework");
CLASMA.framework=function() {
var cdd=CLASMA.detect;
var cd=CLASMA.dom;
var hint="";
var isExemptTag=function(e)
{
var n=cd.getTag(e);
if(n=="textarea")
return true;
if(n=="select" && (cdd.safari || cdd.chrome))
return true;
if(n=="input")
{
var t=e.getAttribute("type");
if(t=="text" || t=="password")
return true;
}
return false;
};
return {
K_BREAK:3,
K_BS:8,
K_TAB:9,
K_RETURN:13,
K_SHIFT:16,
K_CTRL:17,
K_ALT:18,
K_PAUSE:19,
K_CAPSLOCK:20,
K_ESCAPE:27,
K_SPACE:32,
K_PREV:33,
K_NEXT:34,
K_END:35,
K_HOME:36,
K_LEFT:37,
K_UP:38,
K_RIGHT:39,
K_DOWN:40,
K_PRINT:44,
K_INSERT:45,
K_DELETE:46,
K_F1:112,
K_F2:113,
K_F3:114,
K_F4:115,
K_F5:116,
K_F6:117,
K_F7:118,
K_F8:119,
K_F9:120,
K_F10:121,
K_F11:122,
K_F12:123,
K_NUMLOCK:145,
K_SCROLL:145,
reloadSite:function()
{
if(window.location.hash!="")
window.location.hash="";
CLASMA.framework.reloadPage();
},
reloadPage:function()
{
window.location.reload(true);
},
isEditKey:function(k)
{
switch(k)
{
case this.K_BS:
case this.K_LEFT:
case this.K_RIGHT:
case this.K_HOME:
case this.K_END:
case this.K_DEL:
return true;
}
return false;
},
help:function(chapter)
{
var url="/pv/help/default.asp";
var args="";
if(chapter && chapter!=0)
args+="c="+chapter;
if(args!="") url+="?"+args;
var s=
"width=680,"+
"height=500,"+
"toolbar=no,"+
"menubar=no,"+
"scrollbars=no,"+
"status=no,"+
"resizable=yes,"+
"location=no,"+
"directories=no";
window.open(url,"CLASMA_help",s).focus();
return false;
},
setTitle:function(title) {cd.getDocument().title=title;},
getTitle:function() {return cd.getDocument().title;},
getFocus:function()
{
return document.activeElement;
},
setFocus:function(id)
{
if(!id)
{
var e=CLASMA.framework.getFocus();
if(!e) return;
e.blur();
if(cdd.safari || cdd.chrome)
document.activeElement=null;
return;
}
var e=cd.getElement(id);
if(!e) return;
if(e.focus) e.focus();
if(cd.getTag(e)=="textarea")
return;
if(e.select) e.select();
},
selectRange:function(id,start,end)
{
var e=cd.getElement(id);
if(!e) return;
if(e.setSelectionRange)
{
e.focus();
e.setSelectionRange(start,end);
return;
}
if(!e.createTextRange) return;
var range=e.createTextRange();
range.collapse(true);
range.moveEnd("character",end);
range.moveStart("character",start);
range.select();
},
selectReplace:function(id,s)
{
var e=cd.getElement(id);
if(!e) return;
if(e.setSelectionRange)
{
var ss=e.selectionStart;
var se=e.selectionEnd;
e.value=e.value.substring(0,ss)+s+e.value.substring(se);
if(ss==se) this.selectRange(e,ss+s.length,ss+s.length);
else this.selectRange(e,ss,ss+s.length);
return;
}
if(!document.selection) return;
var r=document.selection.createRange();
if(r.parentElement()!=e) return;
var c=(r.text=="");
r.text=s;
if(c) return;
r.moveStart("character",-s.length);
r.select();
},
gradient:function(id,c1,c2,type)
{
var s=cd.getStyle(id);
if(typeof c1=="undefined") c1="black";
if(typeof c2=="undefined") c2="white";
if(typeof type=="undefined") type="0";
if(cdd.ie)
{
var a=c1?"startColorstr='"+c1+"',endColorstr='"+c2+"',gradientType='"+type+"'":null;
s.filter=a?"progid:DXImageTransform.Microsoft.Gradient("+a+")":"";
return;
}
},
opacity:function(id,level)
{
var s=cd.getStyle(id);
if(typeof level=="undefined") level=0.25;
if(cdd.ie)
{
var a=(level<1)?"Opacity='"+(level*100)+"',Style='0'":null;
s.filter=a?"progid:DXImageTransform.Microsoft.Alpha("+a+")":"";
return;
}
s.opacity=(level<1)?level:"";
},
shadow:function(id,radius)
{
var s=cd.getStyle(id);
if(cdd.ie)
{
return;
}
var a=radius?"2px 2px "+radius+"px rgba(0,0,0,0.5)":"";
if(cdd.firefox)
{
s.MozBoxShadow=a;
return;
}
if(cdd.safari || cdd.chrome)
{
s.WebkitBoxShadow=a;
return;
}
s.boxShadow=a;
},
fade:function(id,from,to,duration,callback)
{
if(typeof from=="undefined") from=1;
if(typeof to=="undefined") to=0;
if(typeof duration=="undefined") duration=250;
CLASMA.framework.onfadetimer(id,from,to,duration,0,callback);
},
fadeIn:function(e,callback) {CLASMA.framework.fade(e,0,1,250,callback);},
fadeOut:function(e,callback) {CLASMA.framework.fade(e,1,0,250,callback);},
crossFade:function(fromId,toId,duration,callback)
{
CLASMA.framework.fadeOut(fromId,
function(){CLASMA.framework.fadeIn(toId,callback);});
},
onfadetimer:function(id,from,to,duration,time,callback)
{
if(typeof callback=="undefined")
callback=null;
var e=cd.getElement(id);
var o=CLASMA.lang.tween(time,from,to,duration);
CLASMA.framework.opacity(e,o);
if(time==0 && from==0)
cd.setShow(e,true);
if(time>=duration)
{
if(to==0) cd.setShow(e,false);
if(callback) callback();
return;
}
setTimeout(function(){CLASMA.framework.onfadetimer(id,from,to,duration,time+50,callback);},50);
},
getTarget:function(e)
{
if(!e) e=event;
return e.target?e.target:e.srcElement;
},
getCoords:function(e)
{
if(!e) e=event;
return {left:e.clientX,top:e.clientY};
},
getButtons:function(e)
{
if(!e) e=event;
return e.button;
},
getShift:function(e)
{
if(!e) e=event;
return e.shiftKey==1;
},
getFrom:function(e)
{
if(!e) e=event;
return cdd.ie?e.fromElement:e.relatedTarget;
},
getTo:function(e)
{
if(!e) e=event;
return cdd.ie?e.toElement:e.relatedTarget;
},
getKey:function(e)
{
if(!e) e=event;
return e.keyCode?e.keyCode:e.which;
},
getWheelDelta:function(e)
{
if(!e) e=event;
return e.wheelDelta?(e.wheelDelta/120):((-e.detail)/3);
},
cancelBubble:function(e)
{
if(!e) e=event;
if(e.stopPropagation) e.stopPropagation();
if(cdd.ie) e.cancelBubble=true;
},
cancelDefault:function(e)
{
if(!e) e=event;
if(e.preventDefault) e.preventDefault();
if(cdd.ie) e.returnValue=false;
},
getScreenWidth:function() {return screen.width;},
getScreenHeight:function() {return screen.height;},
getClientWidth:function() {return document.documentElement.clientWidth;},
getClientHeight:function() {return document.documentElement.clientHeight;},
getDocumentWidth:function() {return document.body.offsetWidth;},
getDocumentHeight:function() {return document.body.offsetHeight;},
getScrollPos:function()
{
if(cdd.ie)
{
return {top:document.documentElement.scrollTop,
left:document.documentElement.scrollLeft};
}
return {top:window.pageYOffset,
left:window.pageXOffset};
},
setCursor:function(c)
{
if(typeof c=="undefined" || !c) c="default";
cd.getBody().style.cursor=c;
},
styleBrowser:function()
{
if(cdd.safari || cdd.chrome)
cd.cssAddRule(0,"textarea","resize:none");
if(!cdd.ie) return;
var bk=$("themeHover");
var bb=$("themeBorder");
var bf=$("themeFace");
if(!bk || !bb || !bf) return;
var k=cd.getStyle(bk).color;
var b=cd.getStyle(bb).color;
var f=cd.getStyle(bf).color;
var s=
"scrollbar-base-color:"+f+";"+
"scrollbar-face-color:"+f+";"+
"scrollbar-3dlight-color:"+k+";"+
"scrollbar-highlight-color:"+b+";"+
"scrollbar-shadow-color:"+b+";"+
"scrollbar-darkshadow-color:"+k+";"+
"scrollbar-track-color:"+k+";"+
"scrollbar-arrow-color:#32210b;";
cd.cssAddRule(0,"div",s);
cd.cssAddRule(0,"textarea",s);
},
disableBrowser:function(e)
{
e=(typeof e=="undefined" || !e)?document:cd.getElement(e);
cd.addEvent(e,"contextmenu",this.oncheckexempt);
if(!cdd.ie)
{
cd.addEvent(e,"mousedown",this.onmousedown);
cd.addEvent(e,"mouseup",this.onmouseup);
}
else cd.addEvent(e,"selectstart",this.oncheckexempt);
cd.addEvent(e,"dragstart",this.ondisable);
},
onvalidate:function(e,test)
{
var k=this.getKey(e);
if(this.isEditKey(k))
return true;
var re=new RegExp(test,"i");
return re.test(String.fromCharCode(k));
},
oncheckexempt:function(e)
{
var t=CLASMA.framework.getTarget(e);
if(isExemptTag(t)) return true;
if(cdd.safari && window.getSelection)
{
var s=window.getSelection();
if(s && s.removeAllRanges) s.removeAllRanges();
}
CLASMA.framework.cancelBubble(e);
CLASMA.framework.cancelDefault(e);
return false;
},
onmousedown:function(e)
{
if(CLASMA.framework.oncheckexempt(e))
return true;
var s=cd.getBody().style;
if(cdd.firefox)
{
s.MozUserSelect="none";
return true;
}
if(cdd.safari || cdd.chrome)
{
s.KhtmlUserSelect="none";
return true;
}
return false;
},
onmouseup:function(e)
{
var s=cd.getBody().style;
if(cdd.firefox)
{
s.MozUserSelect="";
return true;
}
if(cdd.safari || cdd.chrome)
{
s.KhtmlUserSelect="";
return true;
}
return true;
},
onenable:function()
{
return true;
},
ondisable:function()
{
return false;
},
onelementfocus:function(e)
{
var f=CLASMA.framework.getTarget(e);
if(!f) return;
document.activeElement=(f==document)?null:f;
},
onhintfocus:function(e)
{
hint=e.value;
e.value="";
},
onhintblur:function(e)
{
e.value=hint;
},
oncheckshow:function(e,id)
{
cd.setShow(id,cd.isChecked(e));
},
oncheckhide:function(e,id)
{
cd.setShow(id,!cd.isChecked(e));
},
ontextlimit:function(e,m)
{
var v=cd.getValue(e);
if(v.length>m+1)
alert("Your input exceeds the maximum of "+m+" characters and will be truncated.");
if(v.length>m)
cd.setValue(e,v.substring(0,m));
},
ontextedit:function(id,e)
{
switch(this.getKey(e))
{
case this.K_TAB:
this.selectReplace(id,String.fromCharCode(9));
setTimeout("document.getElementById('"+id.id+"').focus();",0);
return false;
}
return true;
},
onautosize:function(id)
{
var e=cd.getElement(id);
if(!e) return;
var h=e.contentWindow.document.body.scrollHeight;
cd.setHeight(e,h+10);
},
onprint:function(id)
{
var e=cd.getElement(id);
if(!e)
{
alert("Print context '"+id+"' not found.");
return;
}
id="PRINT_output";
var d=$(id);
if(d)
{
d=d.parentNode;
d.parentNode.removeChild(d);
}
var style="overflow:auto;background-color:white;margin:0px;padding:0px";
var framestyle="style=\"position:absolute;top:-100px;left:-100px;width:0px;height:0px;\"";
var htmlstyle="style=\"overflow:auto;height:auto\"";
var bodystyle="style=\""+style+";height:auto\"";
var divstyle="style=\"display:block;border:none;"+style+"\"";
d=document.createElement("div");
d.innerHTML="<iframe id=\""+id+"\" name=\""+id+"\" "+framestyle+"></iframe>";
document.body.appendChild(d);
var f=document.getElementById(id);
var doc=null;
if(f.contentDocument) doc=f.contentDocument;
else
{
if(f.contentWindow) doc=f.contentWindow.document;
else doc=window.frames[id].document;
}
doc.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\" ");
doc.write("\"http://www.w3.org/TR/html4/strict.dtd\">");
doc.write("<html "+htmlstyle+">");
doc.write("<head>");
if(cdd.ie) doc.write("<meta http-equiv=\"X-UA-Compatible\" content=\"IE=7\">")
var l=document.getElementsByTagName("link");
for(var n=0;n<l.length;n++)
{
if(l[n].rel.toLowerCase()=="stylesheet")
doc.write("<link type=\"text/css\" rel=\"stylesheet\" href=\""+l[n].href+"\"/>");
}
doc.write("<title>PointView</title>");
doc.write("</head>");
doc.write("<body onload=\"this.focus(); this.print();\" "+bodystyle+">");
var h=e.innerHTML;
while(e)
{
var c=e.className;
if(c && c!="") h="<div class=\""+c+"\" "+divstyle+">"+h+"</div>";
e=e.parentNode;
}
doc.write(h);
doc.write("</body>");
doc.write("</html>");
doc.close();
setTimeout("PRINT_output.focus()",5000);
},
onprintframe:function(id)
{
var e=window.frames[id];
if(!e)
{
alert("Print context frame '"+id+"' not found.");
return;
}
e.focus();
e.print();
}
}; }();
if(typeof document.activeElement=="undefined")
{
document.activeElement=null;
CLASMA.dom.addEvent(document,"focus",CLASMA.framework.onelementfocus,true);
}
CLASMA.namespace("CLASMA.ajax");
CLASMA.ajax=function() {
var cdd=CLASMA.detect;
var cd=CLASMA.dom;
var response=Array("ok","bad","act");
var heartTm=0;
var heartFn=null;
var heartId=null;
var createRequest=function()
{
var r;
try {r=new XMLHttpRequest();}
catch(e)
{
try {r=new ActiveXObject("Microsoft.XMLHTTP");}
catch(e)
{
throw new Error("Ajax not supported");
}
}
return r;
};
var createFrame=function(callback,src)
{
if(typeof src=="undefined" || !src) src="about:blank";
for(var f=0;f<CLASMA.ajax.frames.length;f++)
if(!CLASMA.ajax.frames[f]) break;
var id="XMLHTTP_request"+f;
var s="CLASMA.ajax.onframeload("+f+")";
var d=cd.createElement("div");
cd.setHtml(d,"<iframe id=\""+id+"\" name=\""+id+"\" onload=\""+s+"\" style=\"display:none\"></iframe>");
cd.appendBody(d);
var e=cd.getElementById(null,id);
CLASMA.ajax.frames[f]=e;
CLASMA.ajax.framescb[f]=callback;
e.src=src;
return id;
};
var destroyFrame=function(f)
{
var e=CLASMA.ajax.frames[f];
var d=e.parentNode;
CLASMA.ajax.frames[f]=null;
CLASMA.ajax.framescb[f]=null;
d.parentNode.removeChild(d);
};
var setMsg=function(id,icon,msg)
{
CLASMA.ajax.setResponse(id,CLASMA.ajax.makeMsg(icon,msg));
};
return {
GET:"GET",
POST:"POST",
HEAD:"HEAD",
RS_UNINITIALIZED:0,
RS_LOADING:1,
RS_LOADED:2,
RS_INTERACTIVE:3,
RS_COMPLETED:4,
S_OFFLINE:0,
S_OK:200,
S_NOTFROUND:404,
RS_INVALID:-1,
RS_NONE:0,
RS_OK:1,
RS_BAD:2,
RS_ACT:3,
user:null,
password:null,
frames:new Array,
framescb:new Array,
isReady:function(r) {return r.readyState==this.RS_COMPLETED;},
isValid:function(r) {return r.status==this.S_OK;},
setWait:function(id) {setMsg(id);},
setInvalid:function(id,r) {setMsg(id,"error","Ajax: #"+r.status+" "+r.statusText);},
setError:function(id,err) {setMsg(id,"error",err);},
request:function(url,method,args,callback,async)
{
if(typeof method=="undefined" || !method) method=this.GET;
if(typeof args=="undefined" || !args) args="";
if(typeof async=="undefined") async=true;
var r=createRequest();
if(r)
{
r.onreadystatechange=function()
{
if(CLASMA.ajax.isReady(r))
{
CLASMA.ajax.resetHeartbeat();
if(callback) callback(r);
}
}
r.open(method,url,async,this.user,this.password);
if(method==this.POST)
r.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
r.send(args);
return r;
}
return null;
},
include:function(url,id,args,callback)
{
var cb=function(r)
{
if(CLASMA.ajax.isValid(r)) CLASMA.ajax.setResponse(id,r.responseText);
else CLASMA.ajax.setInvalid(id,r);
if(callback) callback(r);
}
try {this.request(url,this.POST,args,cb);}
catch(e) {this.setError(id,e.message);}
},
getResponse:function(r)
{
if(!this.isValid(r))
return {code:this.RS_INVALID,info:null};
var t=r.responseText;
if(t && t!="")
{
for(var n=0;n<response.length;n++)
{
if(t.indexOf(response[n])==0)
{
var l=response[n].length;
if(t.charAt(l)==":")
return {code:n+1,info:t.substr(l+1)};
return {code:n+1,info:null};
}
}
}
return {code:this.RS_NONE,info:null};
},
setResponse:function(id,s)
{
var e=cd.getElement(id);
if(e) e.innerHTML=s;
},
makeMsg:function(icon,msg)
{
if(typeof icon=="undefined" || !icon) icon="wait";
if(typeof msg=="undefined" || !msg) msg="Requesting content...";
var h=
"<table cellspacing=\"0\" cellpadding=\"0\" class=\"msg\">"+
"<tr>"+
"<td><div class=\"icon"+icon+"\"></div></td>"+
"<td>"+msg+"</td>"+
"</tr>"+
"</table>";
return h;
},
submitMultiForm:function(f,callback)
{
var id=createFrame(callback);
f.setAttribute("target",id);
f.submit();
},
onframeload:function(f)
{
CLASMA.ajax.resetHeartbeat();
var callback=CLASMA.ajax.framescb[f];
if(callback)
{
var id="XMLHTTP_request"+f;
var e=cd.getElementById(null,id);
var r=new Object;
r.readyState=CLASMA.ajax.RS_COMPLETED;
r.responseText="";
r.status=CLASMA.ajax.S_OK;
r.statusText="";
var d;
if(e.contentDocument) d=e.contentDocument;
else
{
if(e.contentWindow) d=e.contentWindow.document;
else d=e.document;
}
if(d && d.location && d.location.href!="about:blank")
{
r.responseText=d.body.innerHTML;
}
else
{
r.status=CLASMA.ajax.S_NOTFOUND;
r.statusText="File not found";
}
callback(r);
}
destroyFrame(f);
},
setHeartbeat:function(tm,fn)
{
if(typeof tm=="undefined") tm=0;
if(typeof fn=="undefined") fn=null;
heartTm=tm;
heartFn=fn;
CLASMA.ajax.resetHeartbeat();
},
resetHeartbeat:function()
{
if(heartId) clearTimeout(heartId);
if(heartTm>0) heartId=setTimeout(CLASMA.ajax.onheartbeat,heartTm);
},
onheartbeat:function()
{
heartId=null;
if(heartFn) heartFn();
}
}; }();
function argu() {this.a="";}
argu.prototype.a="";
argu.prototype.set=function(v) {if(!v) v=""; this.a=v;}
argu.prototype.get=function() {return this.a;}
argu.prototype.getu=function() {return this.a!=""?("?"+this.a):"";}
argu.prototype.add=function(n,v)
{
if(typeof v=="boolean") v=v?"y":"n";
if(typeof v=="number") v+="";
if(!v || v=="") return;
if(this.a!="") this.a+="&";
this.a+=encodeURIComponent(n)+"="+encodeURIComponent(v);
}
argu.prototype.opt=function(v,o)
{
if(!v) v="";
if(!o) o="";
if(o!="") o=":"+o;
return v+o;
}
CLASMA.namespace("CLASMA.history");
CLASMA.history=function() {
var cd=CLASMA.dom;
var cdd=CLASMA.detect;
var histId="historyFrame";
var histUrl="history.htm";
var histTitle;
var histBase;
var histHash=null;
var histTimerId=null;
var histTimer=200;
var histChange=null;
var histUseNotify;
var histUseFrame;
var histUseUrl;
var histUseTimer;
var histUseTimerAdd;
var getHash=function()
{
var hash=window.location.hash;
return hash?stripHash(hash):"";
};
var setHash=function(hash)
{
if(!cdd.ie || hash!="" || stripHash(window.location.hash)!="")
window.location.hash=hash;
};
var stripHash=function(hash)
{
if(hash && hash.indexOf("#")==0)
return hash.substring(1);
return hash;
};
var writeFrame=function(s)
{
var d=$(histId).contentWindow.document;
d.open("javascript:\"<html></html>\"");
d.write(s);
d.close();
};
var triggerChange=function(hash)
{
if(histUseFrame)
$(histId).contentWindow.document.title=histTitle;
if(histChange) histChange(hash);
};
return {
create:function(title,fnChange)
{
histTitle=title?title:document.title;
histChange=fnChange;
histBase=getHash();
histHash=null;
histUseNotify=false;
histUseFrame=cdd.ie;
histUseUrl=false;
histUseTimer=true;
histUseTimerAdd=cdd.ie;
if(histUseNotify)
{
window.onhashchange=CLASMA.history.onhashchange;
histUseFrame=false;
histUseTimer=false;
CLASMA.history.onhashchange();
}
if(histUseFrame)
{
var e=cd.createElement("iframe");
if(histUseUrl) cd.setSrc(e,histUrl);
cd.setId(e,histId);
cd.setShow(e,false);
cd.appendBody(e);
}
if(histUseTimer)
histTimerId=setTimeout(CLASMA.history.ontimer,histTimer);
},
destroy:function()
{
if(histUseNotify)
window.onhashchange=null;
if(histUseFrame)
document.body.removeChild($(histId));
if(histUseTimer && histTimerId)
{
clearTimeout(histTimerId);
histTimerId=null;
}
},
setTitle:function(t)
{
if(histUseFrame)
$(histId).contentWindow.document.title=t;
},
getBaseHash:function()
{
return histBase;
},
add:function(hash)
{
setHash(hash);
if(histUseFrame)
{
writeFrame(
"<html>"+
"<head>"+
"<script type=\"text/javascript\">"+
"parent.CLASMA.history.onframechange('"+hash+"');"+
"</script>"+
"</head>"+
"<body></body>"+
"</html>");
}
},
onhashchange:function()
{
var hash=getHash();
triggerChange(hash);
},
onframeload:function()
{
var hash=CLASMA.history.getBaseHash();
CLASMA.history.onframechange(hash);
},
onframechange:function(hash)
{
histHash=hash;
hash=stripHash(hash);
setHash(hash);
triggerChange(hash);
},
ontimer:function()
{
var hash=getHash();
if(hash!=histHash)
{
histHash=hash;
if(histUseTimerAdd) CLASMA.history.add(hash);
else triggerChange(hash);
}
histTimerId=setTimeout(CLASMA.history.ontimer,histTimer);
}
}; }();
CLASMA.namespace("CLASMA.analytics");
CLASMA.analytics=function() {
var ga_svtestsite="UA-6056827-1";
var ga_pointview="UA-6056827-2";
return {
create:function(account,user)
{
if(!account)
{
account=(location.hostname=="www.svtestsite.com" ||
location.hostname=="svtestsite.com")?ga_svtestsite:ga_pointview;
}
var tracker=_gat._getTracker(account);
if(user) CLASMA.analytics.setUserVar(tracker,user);
return tracker;
},
setUserVar:function(tracker,user)
{
if(!tracker) return;
tracker._setVar(user);
},
trackPage:function(tracker,page)
{
if(!tracker) return;
tracker._trackPageview(page);
},
trackEvent:function(tracker,category,action,label,value)
{
if(!tracker) return;
tracker._trackEvent(category,action,label,value);
}
}; }();
CLASMA.namespace("CLASMA.online.site");
CLASMA.online.site=function() {
var cdd=CLASMA.detect;
var cd=CLASMA.dom;
var cf=CLASMA.framework;
var ca=CLASMA.ajax;
var ch=CLASMA.history;
var can=CLASMA.analytics;
var AN_START="<!-- ANALYTICS=";
var AN_STOP=" -->";
var subMenuId=null;
var clearHideId=null;
var inputOk1=false;
var inputOk2=false;
var trackPage=function(page)
{
can.trackPage(CLASMA.online.site.eventTracker,page);
can.trackPage(CLASMA.online.site.siteTracker,page);
};
var processAnalytics=function(h,type,id)
{
if(!type) return h;
var page;
var m=h.indexOf(AN_START);
var s=h.indexOf(AN_STOP);
if(m>-1 && s>m)
{
page=h.substring(m+AN_START.length,s);
h=h.substr(s+AN_STOP.length);
}
else
{
page="/"+_siteTitle+"/"+type.toTitle();
if(id) page+="/"+id;
}
cf.setTitle(page.substr(1).replace(new RegExp("\/","gi")," - "));
trackPage(page);
return h;
};
var getArticles=function(m,c,p,nid)
{
};
var getComments=function(m,c,p,nid)
{
var h=splitHash(window.location.hash);
var callback=function(r)
{
if(ca.isValid(r)) cd.setHtml(c,r.responseText);
else siteError(m,"#"+r.status+" "+r.statusText);
}
var args=new argu();
var url=CLASMA.online.site.getDispatchUrl(args);
args.add("action","forum");
args.add("forum",args.opt(h.type,h.id));
args.add("thread",nid);
args.add("page",p);
try {ca.request(url,ca.POST,args.get(),callback);}
catch(e) {siteError(m,e.message);}
};
var refreshMainMenu=function(page)
{
var callback=function(r)
{
if(ca.isValid(r))
{
cd.setHtml("menu",r.responseText);
if(page) CLASMA.online.site.getPage();
}
else ca.setInvalid("menu",r);
}
var args=new argu();
var url=CLASMA.online.site.getDispatchUrl(args);
args.add("action","menu");
try {ca.request(url,ca.POST,args.get(),callback);}
catch(e) {ca.setError("menu",e.message);}
};
var splitHash=function(hash)
{
if(hash.charAt(0)=="#") hash=hash.substr(1);
if(hash=="") hash="home";
else hash=hash.toLowerCase();
if(hash.indexOf("_")!=-1)
{
var s=hash.split("_");
return {type:s[0],id:s[1]};
}
return {type:hash,id:null};
};
var siteError=function(id,msg)
{
cd.setHtml(id,
"<div class=\"vcpara\">"+
"<table cellspacing=\"0\" cellpadding=\"0\" class=\"msg\">"+
"<tr>"+
"<td><div class=\"iconerror\"></div></td>"+
"<td>Ajax: "+msg+"</td>"+
"</tr>"+
"</table>"+
"</div>");
};
var showSubMenu=function(id)
{
clearHideSubMenu();
subMenuId="submenu"+id;
var e=$(subMenuId);
var box=cd.getOffsetBox("menu"+id);
if(cdd.ie) box.left--;
box.bottom++;
cd.setTop(e,box.bottom);
cd.setLeft(e,box.left);
cd.setDisplay(e,"block");
};
var hideSubMenu=function()
{
if(!subMenuId) return;
cd.setDisplay(subMenuId,"none");
subMenuId=null;
};
var delayHideSubMenu=function()
{
clearHideSubMenu();
clearHideId=setTimeout("CLASMA.online.site.onsubmenutimer()",200);
};
var clearHideSubMenu=function()
{
if(!clearHideId) return;
clearTimeout(clearHideId)
clearHideId=null;
};
return {
eventTracker:null,
siteTracker:null,
getPage:function(hash)
{
if(typeof hash=="undefined" || !hash)
hash=window.location.hash;
var h=splitHash(hash);
cd.setId("current","");
var td=cd.getElements("th","menu");
for(var n=0;n<td.length;n++)
{
var a=cd.getElements("a",td[n]);
if(a.length>0 && a[0].href &&
a[0].href.parseUrl().hash.toLowerCase()==h.type)
{
cd.setId(td[n],"current");
break;
}
}
var args=new argu();
var url=CLASMA.online.site.getDispatchUrl(args);
args.add("hash",args.opt(h.type,h.id));
CLASMA.online.site.getPageUrl(h.type,h.id,url,args);
},
getPageUrl:function(type,id,url,args)
{
var p=$("content");
inputOk1=false;
inputOk2=false;
var callback=function(r)
{
if(ca.isValid(r))
{
var t=r.responseText;
t=processAnalytics(t,type,id);
t=cd.processScripts(t);
cd.setHtml(p,t);
cd.runScripts(t);
window.scrollTo(0,0);
}
else siteError(p,"#"+r.status+" "+r.statusText);
};
try {ca.request(url,ca.POST,args.get(),callback);}
catch(e) {siteError(p,e.message);}
},
getDispatchUrl:function(args)
{
var h=window.location.hostname;
var pv=(h.indexOf("pointview.com")>-1 ||
h.indexOf("svtestsite.com")>-1);
if(pv && args) args.add("site",_siteId);
return pv?"/pv/online/inc/default.asp":"default.asp";
},
ondomload:function()
{
cf.styleBrowser();
trackPage("/"+_siteTitle);
if(cdd.safari || cdd.chrome)
{
var s=cd.getBody().style;
s.overflowX="hidden";
s.overflowY="scroll";
}
cd.addEvent(document,"click",hideSubMenu);
if(typeof CLASMA.online.strip=="undefined")
CLASMA.online.site.onstriphome();
},
onhistory:function(hash)
{
CLASMA.online.site.getPage(hash);
},
onlockedlink:function()
{
var args=new argu();
var url=CLASMA.online.site.getDispatchUrl(args);
args.add("action","locked");
CLASMA.online.site.getPageUrl(null,null,url,args);
},
onshowsubmenu:function(id)
{
hideSubMenu();
if(id) showSubMenu(id);
},
onhidesubmenu:function()
{
delayHideSubMenu();
},
onsubmenuover:function()
{
clearHideSubMenu();
},
onsubmenuout:function(e)
{
var to=cf.getTo(e);
var sm=subMenuId?$(subMenuId):null;
if(!sm || !cd.isChild(sm,to))
hideSubMenu()
},
onsubmenutimer:function()
{
hideSubMenu();
},
onsubignore:function(e)
{
CLASMA.framework.cancelBubble(e);
CLASMA.framework.cancelDefault(e);
return false;
},
onnewsmore:function(p)
{
var m=$("c_morenews");
var c=$("c_morenews"+p);
ca.setWait(m);
getArticles(m,c,p);
},
onforummore:function(p)
{
var m=$("c_more");
var c=$("c_more"+p);
ca.setWait(m);
getComments(m,c,p);
},
onforumfocus:function(e)
{
if(inputOk1) return;
cd.setValue("c_forumcomment","");
inputOk1=true;
},
onforumsubmit:function()
{
var d=$("c_forumdialog");
var c=$("c_forumcomment");
var b=$("c_forumsubmit");
if(cd.isDisabled(b)) return;
var v=cd.getValue(c);
if(!inputOk1 || !v || v=="")
{
cf.setFocus(c);
return;
}
cd.setDisabled(c,true);
cd.setDisabled(b,true);
inputOk1=false;
var h=splitHash(window.location.hash);
var callback=function(r)
{
if(ca.isValid(r)) getComments(d,"vcforum",1);
else siteError(d,"#"+r.status+" "+r.statusText);
}
var args=new argu();
var url=CLASMA.online.site.getDispatchUrl(args);
args.add("action","forum");
args.add("forum",args.opt(h.type,h.id));
args.add("comment",v);
try {ca.request(url,ca.POST,args.get(),callback);}
catch(e) {siteError(d,e.message);}
},
onthreadfocus:function()
{
if(inputOk2) return;
cd.setValue("c_threadcomment","");
inputOk2=true;
},
onthreadsubmit:function(nid)
{
var d=$("c_threaddialog");
var c=$("c_threadcomment");
var b=$("c_threadsubmit");
var t=$("c_thread"+nid);
if(cd.isDisabled(b)) return;
var v=cd.getValue(c);
if(!inputOk2 || !v || v=="")
{
cf.setFocus(c);
return;
}
cd.setDisabled(c,true);
cd.setDisabled(b,true);
inputOk2=false;
var h=splitHash(window.location.hash);
var callback=function(r)
{
if(ca.isValid(r)) getComments(d,t,0,nid);
else siteError(d,"#"+r.status+" "+r.statusText);
}
var args=new argu();
var url=CLASMA.online.site.getDispatchUrl(args);
args.add("action","forum");
args.add("forum",args.opt(h.type,h.id));
args.add("thread",nid);
args.add("comment",v);
try {ca.request(url,ca.POST,args.get(),callback);}
catch(e) {siteError(d,e.message);}
},
onthreadcomment:function(e,nid)
{
var c=$("c_threaddialog");
var p=$("c_thread"+nid);
var t=cd.getFirst(p);
if(c)
{
cd.deleteElement(c);
if(t==c) return;
}
c=cd.createElement("div");
cd.setId(c,"c_threaddialog");
cd.setClass(c,"vcforumthread");
cd.setHtml(c,
"<table cellpadding=\"0\" cellspacing=\"0\" class=\"vcflowtable\">"+
"<tr>"+
"<td class=\"vcflowcol\">"+
"<textarea id=\"c_threadcomment\" "+
"onfocus=\"CLASMA.online.site.onthreadfocus()\" class=\"vcforuminput\">"+
"Reply to comment...\r\n"+
"(Visible to the public)"+
"</textarea>"+
"</td>"+
"<td><div style=\"width:5px\"></div></td>"+
"<td class=\"vcflowcel\">"+
"<div id=\"c_threadsubmit\" onclick=\"CLASMA.online.site.onthreadsubmit('"+nid+"')\" "+
"class=\"vcbutton\">Submit</div>"+
"</td>"+
"</tr>"+
"</table>");
if(t) cd.insertChild(t,c);
else cd.appendChild(p,c);
inputOk2=false;
},
onforumremove:function(c,nid,thread)
{
var ok=confirm("Are you sure you want to remove this comment?");
if(!ok) return;
var p=cd.getParentElement(c,"div",thread?"vcforumthread":"vcforumitem");
var h=splitHash(window.location.hash);
var callback=function(r)
{
if(ca.isValid(r)) cd.deleteElement(p);
else siteError(p,"#"+r.status+" "+r.statusText);
}
var args=new argu();
var url=CLASMA.online.site.getDispatchUrl(args);
args.add("action","forum");
args.add("forum",args.opt(h.type,h.id));
args.add("remove",nid);
try {ca.request(url,ca.POST,args.get(),callback);}
catch(e) {siteError(p,e.message);}
},
ontipshow:function(e,id)
{
var c=$("vctip"+id);
var s=cf.getScrollPos()
var p=cf.getCoords(e);
cd.setTop(c,p.top+21+s.top);
cd.setLeft(c,p.left+s.left);
cd.setDisplay(c,"block");
},
ontiphide:function(id)
{
cd.setDisplay("vctip"+id,"");
},
onstrip:function(cmd,id)
{
if(typeof CLASMA.online.strip=="undefined")
{
alert("Cannot invoke strip command '"+cmd+"'.\n"+
"You must first enable the strip for this site.");
return;
}
CLASMA.online.strip.invoke(cmd,id);
},
onstriphome:function()
{
ch.create(_siteTitle,CLASMA.online.site.onhistory);
},
onstriplogin:function(user)
{
CLASMA.online.site.onstripprofile(user);
refreshMainMenu(false);
ch.create(_siteTitle,CLASMA.online.site.onhistory);
},
onstripassume:function(user)
{
CLASMA.online.site.getPage();
},
onstriplogout:function()
{
CLASMA.online.site.onstripprofile(null);
refreshMainMenu(true);
},
onstripprofile:function(user)
{
can.setUserVar(CLASMA.online.site.eventTracker,user);
can.setUserVar(CLASMA.online.site.siteTracker,user);
},
onstripupdate:function()
{
CLASMA.online.site.getPage();
}
}; }();
if(_eventAnalytics!="") CLASMA.online.site.eventTracker=CLASMA.analytics.create(_eventAnalytics);
if(_siteAnalytics!="") CLASMA.online.site.siteTracker=CLASMA.analytics.create(_siteAnalytics);
CLASMA.dom.addDomLoadEvent(CLASMA.online.site.ondomload);
CLASMA.namespace("CLASMA.online.strip");
CLASMA.online.strip=function() {
var cl=CLASMA.lang;
var cdd=CLASMA.detect;
var cc=CLASMA.cookie;
var cd=CLASMA.dom;
var cf=CLASMA.framework;
var ca=CLASMA.ajax;
var can=CLASMA.analytics;
var co=(typeof CLASMA.online.site=="undefined")?
CLASMA.pointview:
CLASMA.online.site;
var loggedIn=false;
var loggedPid=null;
var loggedUser="";
var secTest=false;
var secButton=null;
var secAction=null;
var secDialog=null;
var secWidth=0;
var secTab=null;
var secParams=null;
var secRight=false;
var secModal=false;
var secBuffer=false;
var listGroup="major";
var dlgModal=false;
var storeErase="";
var storeSet="";
var storeValues="";
var updateId=1;
var login=function(user,pass,reconnect)
{
var err="Login problem";
showWait("Logging in...");
var callback=function(r)
{
var resp=ca.getResponse(r);
switch(resp.code)
{
case ca.RS_OK:
secTest=(!reconnect || typeof CLASMA.pointview!="undefined");
if(!reconnect) storeLogin("yes");
userLogin(resp.info);
co.onstriplogin(loggedUser);
break;
case ca.RS_ACT:
showError(err,
"<h2>Account not activated</h2>"+
"<p>You have not yet activated your account.<br/>"+
"Follow the instructions in your <b>Account Activation</b> Email.</p>");
if(reconnect) storeLogin(null);
break;
case ca.RS_BAD:
showError(err,
"<h2>Incorrect login details</h2>"+
"<p>Your Email address or password is incorrect.<br/>"+
"Please check and try again.</p>"+
"<p>To receive your password, <a onclick=\"CLASMA.online.strip.onreceive()\">click here</a>.</p>");
if(reconnect) storeLogin(null);
break;
default:
showError(err);
break;
}
}
var args=new argu();
var url=co.getDispatchUrl(args);
args.add("action","login");
args.add("user",user);
args.add("pass",pass);
args.add("reconnect",reconnect?"y":"n");
try {ca.request(url,ca.POST,args.get(),callback);}
catch(e) {showError(err,"<h2>"+e.message+"<h2>");}
};
var logout=function()
{
var err="Logout problem";
showWait("Logging out...");
var callback=function(r)
{
var resp=ca.getResponse(r);
switch(resp.code)
{
case ca.RS_OK:
storeLogin(null);
if(!cd.isChecked("c_keep"))
{
cd.setValue("c_user","");
cd.setValue("c_pass","");
cd.setChecked("c_keep",true);
}
userLogout()
co.onstriplogout();
break;
case ca.RS_BAD:
showError(err,"<h2>Failed to logout</h2>");
break;
default:
showError(err);
break;
}
}
var args=new argu();
var url=co.getDispatchUrl(args);
args.add("action","logout");
try {ca.request(url,ca.POST,args.get(),callback);}
catch(e) {showError(err,"<h2>"+e.message+"<h2>");}
};
var assume=function(pid,action)
{
var err="Identity assume problem";
showWait("Assuming identity...");
var callback=function(r)
{
var resp=ca.getResponse(r);
switch(resp.code)
{
case ca.RS_OK:
userLogin(resp.info);
co.onstripassume(loggedUser);
break;
case ca.RS_BAD:
showError(err,
"<h2>Failed to assume identity</h2>",
"<p>"+resp.info+"</p>");
break;
default:
showError(err);
break;
}
}
var args=new argu();
var url=co.getDispatchUrl(args);
args.add("action",action);
args.add("pid",pid);
try {ca.request(url,ca.POST,args.get(),callback);}
catch(e) {showError(err,"<h2>"+e.message+"<h2>");}
};
var signup=function(email,fname,lname,company,pass)
{
var err="Sign-up problem";
showWait("Signing-up...");
var callback=function(r)
{
if(ca.isValid(r))
{
var resp=ca.getResponse(r);
switch(resp.code)
{
case ca.RS_OK:
showInfo("Sign-up successful",
"<h1>Your sign-up request has been accepted</h1>"+
"<p>Check for an <b>Account Activation</b> Email that we<br/>have sent to your sign-up address.</p>"+
"<div class=\"note\">Note: Allow 1-2 minutes for your Email to arrive.</div>");
var email=cd.getValue("c_email");
cd.setValue("c_user",email);
cd.setValue("c_pass","");
enableButtons();
break;
default:
showError(err,r.responseText);
break;
}
}
else showError(err);
}
var args=new argu();
var url=co.getDispatchUrl(args);
args.add("action","signup");
args.add("email",email);
args.add("fname",fname);
args.add("lname",lname);
args.add("company",company);
args.add("pass",pass);
try {ca.request(url,ca.POST,args.get(),callback);}
catch(e) {showError(err,"<h2>"+e.message+"<h2>");}
};
var request=function(email)
{
var err="Password request problem";
showWait("Requesting password...");
var callback=function(r)
{
var resp=ca.getResponse(r);
switch(resp.code)
{
case ca.RS_OK:
showInfo("Password request accepted",
"<h1>Your password has been sent</h1>"+
"<p>Check your Email and login using the enclosed<br/>Email address and password.</p>"+
"<div class=\"note\">Note: Allow 1-2 minutes for your Email to arrive.</div>");
break;
case ca.RS_BAD:
showError(err,
"<h2>Email address not registered</h2>"+
"<p>Your Email address has not been registered.<br/>"+
"Please check and try again.</p>");
break;
default:
showError(err);
break;
}
}
var args=new argu();
var url=co.getDispatchUrl(args);
args.add("action","request");
args.add("email",email);
try {ca.request(url,ca.POST,args.get(),callback);}
catch(e) {showError(err,"<h2>"+e.message+"<h2>");}
};
var membership=function(oid)
{
var err="Membership problem";
showWait("Requesting membership...");
var callback=function(r)
{
var resp=ca.getResponse(r);
switch(resp.code)
{
case ca.RS_OK:
showInfo("Membership successful",
"<h1>Membership request accepted</h1>"+
"<div>Your membership request has been accepted.</div>");
break;
default:
showError(err);
break;
}
}
var args=new argu();
var url=co.getDispatchUrl(args);
args.add("action","membership");
args.add("oid",oid);
try {ca.request(url,ca.POST,args.get(),callback);}
catch(e) {showError(err,"<h2>"+e.message+"<h2>");}
};
var security=function(pass)
{
var err="Security check problem";
showWait("Security check...");
var callback=function(r)
{
var resp=ca.getResponse(r);
switch(resp.code)
{
case ca.RS_OK:
secTest=true;
showMenu(false);
showContent(secButton,secAction,secDialog,secWidth,secTab,secParams,secRight,secModal,secBuffer);
break;
case ca.RS_BAD:
showError(err,
"<h2>Incorrect password</h2>"+
"<p>The password you have entered is incorrect.<br/>"+
"Please check and try again.</p>");
break;
default:
showError(err);
break;
}
}
var args=new argu();
var url=co.getDispatchUrl(args);
args.add("action","check");
args.add("pass",pass);
try {ca.request(url,ca.POST,args.get(),callback);}
catch(e) {showError(err,"<h2>"+e.message+"<h2>");}
};
var fetchlist=function(c,action)
{
var err="Request problem";
var callback=function(r)
{
if(ca.isValid(r)) cd.setHtml(c,r.responseText);
else showError(err);
}
var args=new argu();
var url=co.getDispatchUrl(args);
args.add("action",action);
args.add("group",listGroup);
try {ca.request(url,ca.POST,args.get(),callback);}
catch(e) {showError(err,"<h2>"+e.message+"<h2>"); return;}
var l=cd.getElements("div",c,"tabclient");
if(l.length<1) return;
var p=l[0];
cd.setHeight(p,cl.floorit(cd.getBoundingBox(p).height,-21));
ca.setWait(p);
};
var details=function(i,action,type,id,curr)
{
var err="Request problem";
var c=cd.getParentElement(i,null,"stripdialog");
if(!c) return;
c=cd.getElementById(c,id);
if(!c) return;
var callback=function(r)
{
var resp=ca.getResponse(r);
switch(resp.code)
{
case ca.RS_OK:
cd.getStyle(c).height="";
cd.setHtml(c,resp.info);
break;
default:
showError(err);
break;
}
if(curr)
{
cd.setId(curr,"");
if(i) cd.setId(i,curr);
}
}
var args=new argu();
var url=co.getDispatchUrl(args);
args.add("action",action);
args.add("details",type);
try {ca.request(url,ca.POST,args.get(),callback);}
catch(e) {showError(err,"<h2>"+e.message+"<h2>"); return;}
cd.setHeight(c,cl.floorit(cd.getBoundingBox(c).height,-21));
ca.setWait(c);
};
var taskupdate=function(id,title,desc,assignpid,duedate,priority)
{
var err="Task problem";
showWait((id?"Updating":"Creating")+" task...");
var callback=function(r)
{
var resp=ca.getResponse(r);
switch(resp.code)
{
case ca.RS_OK:
showStrip();
co.onstripupdate();
break;
case ca.RS_BAD:
showError(err,
"<h2>Failed to update</h2>"+
"<p>The task could not be updated.<br/>"+
"Please try again.</p>");
break;
default:
showError(err);
break;
}
}
var args=new argu();
var url=co.getDispatchUrl(args);
args.add("action","tasks");
if(id) args.add("update",id);
else args.add("create",loggedPid);
args.add("title",title);
args.add("description",desc);
args.add("assignpid",assignpid);
args.add("duedate",duedate);
args.add("priority",priority);
try {ca.request(url,ca.POST,args.get(),callback);}
catch(e) {showError(err,"<h2>"+e.message+"<h2>");}
};
var taskpresstatus=function(id,status,dist)
{
var err="Update problem";
showWait("Updating task...");
var callback=function(r)
{
var resp=ca.getResponse(r);
switch(resp.code)
{
case ca.RS_OK:
resetTaskList();
co.onstripupdate();
switch(status)
{
case "4":
showInfo("Update successful",
"<h1>Confirmation request accepted</h1>"+
"<div>Your confirmation request has been accepted.</div>");
break;
case "5":
showInfo("Update successful",
"<h1>Make changes request accepted</h1>"+
"<div>Your request to make changes request has been accepted.</div>");
break;
case "6":
showInfo("Update successful",
"<h1>Finalize request accepted</h1>"+
"<div>Your finalize request has been accepted.</div>");
break;
case "10":
showInfo("Update successful",
"<h1>Decline request accepted</h1>"+
"<div>Your decline request has been accepted.</div>");
break;
default:
}
break;
default:
showError(err);
break;
}
}
var args=new argu();
var url=co.getDispatchUrl(args);
args.add("action","tasks");
args.add("presstatus",args.opt(id,status));
if(typeof dist!="undefined")
args.add("distribute",dist?"y":"n");
try {ca.request(url,ca.POST,args.get(),callback);}
catch(e) {showError(err,"<h2>"+e.message+"<h2>");}
};
var taskstatus=function(id,status,dist)
{
var err="Update problem";
showWait("Updating task...");
var callback=function(r)
{
showSpinner(false);
var resp=ca.getResponse(r);
switch(resp.code)
{
case ca.RS_OK:
showStrip();
co.onstripupdate();
break;
default:
showError(err);
break;
}
}
var args=new argu();
var url=co.getDispatchUrl(args);
args.add("action","tasks");
args.add("status",args.opt(id,status));
try {ca.request(url,ca.POST,args.get(),callback);}
catch(e) {showError(err,"<h2>"+e.message+"<h2>"); return;}
showSpinner(true);
};
var submitfile=function(fid)
{
var err="Update problem";
showWait("Updating...");
var callback=function(r)
{
var resp=ca.getResponse(r);
switch(resp.code)
{
case ca.RS_OK:
resetTaskList();
co.onstripupdate();
showMenu(false);
break;
default:
showError(err,r.responseText);
break;
}
}
var args=new argu();
var url=co.getDispatchUrl(args);
args.add("action","files");
args.add("submit",fid);
args.add("title",cd.getValue("_title"));
args.add("description",cd.getValue("_description"));
args.add("before",cd.isChecked("_before"));
args.add("during",cd.isChecked("_during"));
args.add("after",cd.isChecked("_after"));
try {ca.request(url,ca.POST,args.get(),callback);}
catch(e) {showError(err,"<h2>"+e.message+"<h2>");}
};
var deletefile=function(fid)
{
var err="File problem";
showWait("Deleting...");
var callback=function(r)
{
var resp=ca.getResponse(r);
switch(resp.code)
{
case ca.RS_OK:
resetTaskList();
co.onstripupdate();
showInfo("Delete successful",
"<h1>File delete request accepted</h1>"+
"<div>Your file has been deleted from the server.</div>");
break;
default:
showError(err,r.responseText);
break;
}
}
var args=new argu();
var url=co.getDispatchUrl(args);
args.add("action","files");
args.add("delete",fid);
try {ca.request(url,ca.POST,args.get(),callback);}
catch(e) {showError(err,"<h2>"+e.message+"<h2>");}
};
var submission=function(sid,id,title,abst,topics,notes)
{
var err=(id?"Update":"Submission")+" problem";
showWait(id?"Updating...":"Submitting...");
var callback=function(r)
{
var resp=ca.getResponse(r);
switch(resp.code)
{
case ca.RS_OK:
resetSubmitList();
resetTaskList();
co.onstripupdate();
if(id)
{
showMenu(false);
break;
}
showInfo("Submission successful",
"<h1>Your submission is now under review</h1>"+
"<p>You have been sent an Email with further instructions<br/>"+
"to your sign-up address: "+cd.getValue("c_user")+".</p>"+
"<div class=\"note\">Note: Allow 1-2 minutes for your Email to arrive.</div>");
break;
case ca.RS_BAD:
showError(err,
"<h2>Failed to "+(id?"update":"submit")+"</h2>"+
"<p>"+(id?"Your changes could not be updated.":"Your submission could not be processed.")+"<br/>"+
"Please try again.</p>");
break;
default:
showError(err);
break;
}
}
var args=new argu();
var url=co.getDispatchUrl(args);
args.add("action","submit");
if(id) args.add("update",id);
else args.add("create",sid);
args.add("title",title);
args.add("abstract",abst);
args.add("topics",topics);
args.add("notes",notes);
try {ca.request(url,ca.POST,args.get(),callback);}
catch(e) {showError(err,"<h2>"+e.message+"<h2>");}
};
var sendmail=function(id,subject,text,managers,speakers,copyme)
{
var err="Email problem";
showWait("Sending...");
var callback=function(r)
{
var resp=ca.getResponse(r);
switch(resp.code)
{
case ca.RS_OK:
showInfo("Email successful",
"<h1>Email has been sent</h1>"+
"<p>Your Email has been successfully sent.</p>");
break;
case ca.RS_BAD:
showError(err,
"<h2>Failed to send Email</h2>"+
"<p>Your Email could not be sent.</p>");
break;
default:
showError(err);
break;
}
}
var args=new argu();
var url=co.getDispatchUrl(args);
args.add("action","email");
args.add("send",id);
args.add("subject",subject);
args.add("text",text);
args.add("managers",managers?"y":"n");
args.add("speakers",speakers?"y":"n");
args.add("copyme",copyme?"y":"n");
try {ca.request(url,ca.POST,args.get(),callback);}
catch(e) {showError(err,"<h2>"+e.message+"<h2>");}
};
var sendupload=function(id,ppt)
{
var err="Upload problem";
var callback=function(r)
{
cd.setDisplay("c_uploadwait","none");
var resp=ca.getResponse(r);
switch(resp.code)
{
case ca.RS_OK:
cd.setDisplay("c_uploadok","");
if(ppt)
{
convertppt(id);
break;
}
resetTaskList();
co.onstripupdate();
showUploadResult(false,
"<h1>Upload successful</h1>"+
"<div>Your file has now been successfully uploaded.</div>");
break;
case ca.RS_BAD:
cd.setDisplay("c_uploadbad","");
showUploadResult(true,
"<h6>Failed to upload file</h6>"+
"<p>"+resp.info+"<br/>Make sure your file exists and try again.</p>");
break;
default:
showError(err);
break;
}
}
var f=document.forms["c_uploadform"];
ca.submitMultiForm(f,callback);
var e=getStripItem("c_menustrip","tasks");
showUploading(e,408,true,true);
};
var convertppt=function(id)
{
var err="Conversion problem";
var callback=function(r)
{
cd.setDisplay("c_convwait","none");
var resp=ca.getResponse(r);
switch(resp.code)
{
case ca.RS_OK:
cd.setDisplay("c_convok","");
resetTaskList();
co.onstripupdate();
showUploadResult(false,
"<h1>Upload successful</h1>"+
"<div>Your file has now been successfully uploaded.</div>");
break;
case ca.RS_BAD:
cd.setDisplay("c_convbad","");
showUploadResult(true,
"<h6>Failed to convert file</h6>"+
"<p>An error occured during conversion.</p>");
break;
default:
showError(err);
break;
}
}
var args=new argu();
var url=co.getDispatchUrl(args);
args.add("action","convert");
args.add("ppt",id);
try {ca.request(url,ca.POST,args.get(),callback);}
catch(e) {showError(err,"<h2>"+e.message+"<h2>"); return;}
cd.setDisplay("c_convwait","");
};
var profile=function(email,salute,fname,lname,cert,tel,mobile,company,title,dept,curl,assname,assemail,asstel,bio,pass)
{
var err="Update problem";
showWait("Updating...");
var callback=function(r)
{
var resp=ca.getResponse(r);
switch(resp.code)
{
case ca.RS_OK:
loggedUser=resp.info;
cd.setValue("c_user",email);
cd.setValue("c_femail",email);
if(pass!="") cd.setValue("c_pass",pass);
if(cd.isChecked("c_keep"))
{
storeStart();
storeValue("user",email);
if(pass!="") storeValue("pass",pass);
storeUpdate();
}
co.onstripprofile(loggedUser);
co.onstripupdate();
showUser();
showMenu(false);
break;
case ca.RS_BAD:
showError(err,
"<h2>Failed to update</h2>"+
"<p>Your profile could not be updated.<br/>"+
"Please try again.</p>");
break;
default:
showError(err);
break;
}
}
var args=new argu();
var url=co.getDispatchUrl(args);
args.add("action","profile");
args.add("update","0");
args.add("email",email);
args.add("salute",salute);
args.add("fname",fname);
args.add("lname",lname);
args.add("cert",cert);
args.add("tel",tel);
args.add("mobile",mobile);
args.add("company",company);
args.add("title",title);
args.add("dept",dept);
args.add("url",curl);
args.add("assname",assname);
args.add("assemail",assemail);
args.add("asstel",asstel);
args.add("bio",bio);
args.add("pass",pass)
try {ca.request(url,ca.POST,args.get(),callback);}
catch(e) {showError(err,"<h2>"+e.message+"<h2>");}
};
var heartbeat=function()
{
var callback=function(r)
{
var resp=ca.getResponse(r);
switch(resp.code)
{
case ca.RS_OK:
break;
case ca.RS_BAD:
if(!resp.info)
{
userLogout();
co.onstriplogout();
break;
}
userLogin(resp.info);
co.onstripassume(loggedUser);
break;
default:
break;
}
}
var args=new argu();
var url=co.getDispatchUrl(args);
args.add("action","heartbeat");
args.add("pid",loggedPid);
try {ca.request(url,ca.POST,args.get(),callback);}
catch(e) {}
};
var userLogin=function(info)
{
var s=info.split("=");
loggedIn=true;
loggedPid=s[0];
loggedUser=s[1];
showUser();
showMenu(false);
}
var userLogout=function()
{
loggedIn=false;
loggedPid=null;
loggedUser="";
showUser();
showMenu(true);
}
var showUser=function()
{
var e=getStripItem("c_menustrip","user");
if(!e) return;
cd.setHtml(e,loggedUser?(
"<table cellpadding=\"0\" cellspacing=\"0\">"+
"<tr>"+
"<td style=\"white-space:nowrap\">"+loggedUser+"</td>"+
"<td><div class=\"userbutton\"></div></td>"+
"</tr>"+
"</table>"):"&nbsp;");
cd.setClass(e,loggedUser?"stripbl":"stript");
e.onclick=loggedUser?
function(){CLASMA.online.strip.onstrip(e);}:
function(){CLASMA.online.strip.onhidestrip();};
};
var showUploading=function(button,width,right,show)
{
removeDialogs();
if(!show) return;
cd.setId(button,"stripcur");
cd.setDisplay("c_uploadwait","");
cd.setDisplay("c_uploadok","none");
cd.setDisplay("c_uploadbad","none");
cd.setDisplay("c_convwait","none");
cd.setDisplay("c_convok","none");
cd.setDisplay("c_convbad","none");
cd.setDisplay("c_uploadresult","none");
cd.setDisplay("c_uploadprob","none");
cd.setHtml("c_uploadcancel","Cancel");
showDialog("c_uploading",width,right,true);
};
var showUploadResult=function(bad,info)
{
cd.setHtml("c_uploadresult",info);
cd.setDisplay("c_uploadprob",bad?"":"none");
cd.setDisplay("c_uploadresult","");
cd.setHtml("c_uploadcancel","Close");
};
var showWaiting=function(button,width,right,show)
{
removeDialogs();
if(!show) return;
cd.setId(button,"stripcur");
showDialog("c_waiting",width,right,true);
};
var showSpinner=function(show)
{
cd.setDisplay("c_pvicon",show?"none":"");
cd.setDisplay("c_waiticon",show?"inline":"none");
};
var showWait=function(t)
{
showStrip(t);
};
var showMenu=function(login)
{
displayStripItem("c_menustrip","signup",login);
displayStripItem("c_menustrip","login",login);
displayStripItem("c_menustrip","submit",!login);
displayStripItem("c_menustrip","tasks",!login);
displayStripItem("c_menustrip","profile",!login);
displayStripItem("c_menustrip","logout",!login);
showStrip();
};
var showInfo=function(t,s)
{
cd.setDisplay("c_infowarning","inline");
cd.setDisplay("c_infoerror","none");
showStrip(t,s);
var e=getStripItem("c_infostrip","ok");
if(e) cd.setId(e,"stripcur");
cd.setHtml("c_infocontent",s);
showDialog("c_info",400,false,false);
};
var showError=function(t,s)
{
if(typeof s=="undefined")
s="<h2>Invalid server response</h2>";
cd.setDisplay("c_infowarning","none");
cd.setDisplay("c_infoerror","inline");
showStrip(t,s);
var e=getStripItem("c_infostrip","ok");
if(e) cd.setId(e,"stripcur");
cd.setHtml("c_errorcontent",s);
showDialog("c_error",408,false,false);
};
var showStrip=function(t,s)
{
removeDialogs();
var w=false;
var i=false;
var m=false;
if(s) i=true;
else
{
if(t) w=true;
else m=true;
}
if(!w) removeBack();
cd.setDisplay("c_waitstrip",w?"block":"none");
cd.setDisplay("c_infostrip",i?"block":"none");
cd.setDisplay("c_menustrip",m?"block":"none");
var e=null;
if(w) e=getStripItem("c_waitstrip","text");
if(i) e=getStripItem("c_infostrip","text");
if(e) cd.setHtml(e,t);
};
var showAbout=function(e)
{
var args=new argu();
args.add("font",cookie_font);
args.add("fontsize",cookie_fontsize);
args.add("fontspace",cookie_fontspace);
args.add("theme",cookie_theme);
args.add("hue",cookie_hue);
args.add("saturation",cookie_saturation);
args.add("lightness",cookie_lightness);
args.add("background",cookie_background);
showContent(e,"about","c_about",400,null,args.get(),false,true,false);
};
var showSecure=function(button,action,dialog,width,tab,params,right,modal,buffer)
{
if(typeof button=="string")
button=getStripItem("c_menustrip",button);
if(secTest)
{
showContent(button,action,dialog,width,tab,params,right,modal,buffer);
return;
}
removeDialogs();
if(button) cd.setId(button,"stripcur");
cd.setValue("c_secpass","");
enableButtons();
secButton=button;
secAction=action;
secDialog=dialog;
secWidth=width;
secTab=tab;
secParams=params;
secRight=right;
secModal=modal;
secBuffer=buffer;
showDialog("c_security",240,true,false);
};
var showContent=function(button,action,dialog,width,tab,params,right,modal,buffer)
{
var err="Content request problem";
var c=dialog+"content";
if(typeof button=="string")
button=getStripItem("c_menustrip",button);
if(buffer && cd.getHtml(c)!="")
{
if(button) cd.setId(button,"stripcur");
if(tab) setTab(action,tab);
showDialog(dialog,width,right,modal);
return;
}
var callback=function(r)
{
if(button) showWaiting(null,0,false,false);
if(!ca.isValid(r))
{
showError(err);
return;
}
var resp=ca.getResponse(r);
switch(resp.code)
{
case ca.RS_BAD:
showError(err,
"<h2>Request failed</h2>"+
"<p>"+resp.info+"</p>");
break;
default:
cd.setHtml(c,r.responseText);
showDialog(dialog,width,right,modal);
if(button) cd.setId(button,"stripcur");
if(tab) setTab(action,tab);
break;
}
}
var args=new argu();
var url=co.getDispatchUrl(args);
args.add("action",action);
if(action=="submit" || action=="tasks")
args.add("group",listGroup);
var p=args.get();
if(params && params!="")
{
if(p && p!="") p+="&";
p+=params;
}
try {ca.request(url,ca.POST,p,callback);}
catch(e) {showError(err,"<h2>"+e.message+"<h2>"); return;}
if(button) showWaiting(button,width,right,true);
};
var showDialog=function(id,width,right,modal)
{
showBack();
dlgModal=modal;
var d=$(id);
cd.setWidth(d,width);
cd.setDisplay(d,"block");
alignDialog(d,right);
enableButtons();
setInitialFocus(d);
};
var alignDialog=function(d,right)
{
d=cd.getElement(d);
if(!d) return;
var sh=parseInt($("c_strip").offsetHeight)
cd.setTop(d,sh);
if(right)
{
var cl=cf.getClientWidth()-parseInt(d.offsetWidth);
if(cl<0) cl=0;
cd.setLeft(d,cl);
}
else cd.setLeft(d,0);
};
var removeDialogs=function()
{
cd.setDisplay("c_login","none");
cd.setDisplay("c_forgot","none");
cd.setDisplay("c_signup","none");
cd.setDisplay("c_security","none");
cd.setDisplay("c_about","none");
cd.setDisplay("c_delegate","none");
cd.setDisplay("c_submit","none");
cd.setDisplay("c_tasks","none");
cd.setDisplay("c_profile","none");
cd.setDisplay("c_dialog","none");
cd.setDisplay("c_waiting","none");
cd.setDisplay("c_uploading","none");
cd.setDisplay("c_info","none");
cd.setDisplay("c_error","none");
cd.setId("stripcur","");
};
var showBack=function()
{
cd.setDisplay("c_stripback","block");
cf.shadow("c_strip",2);
};
var removeBack=function()
{
cd.setDisplay("c_stripback","none");
cf.shadow("c_strip",0);
};
var setInitialFocus=function(id)
{
var f=null;
var t=cd.getElements(null,id);
for(var n=0;!f && n<t.length;n++)
{
var e=t[n];
switch(cd.getTag(e))
{
case "input":
case "textarea":
case "select":
if(e.getAttribute("type")!="hidden" &&
!e.getAttribute("readonly") &&
!e.onfocus) f=e;
break;
}
}
if(!f) return;
try {cf.setFocus(f);}
catch(e) {}
};
var displayHint=function(e,text,field,dialog,tab)
{
if(text)
{
if(dialog) setTab(dialog,tab);
cd.setHtml(e,text);
cd.setDisplay(e,"block");
if(field) cf.setFocus(field);
}
else cd.setDisplay(e,"none");
};
var enableButtons=function()
{
displayHint("c_loginhint");
displayHint("c_forgothint");
displayHint("c_signuphint");
displayHint("c_securityhint");
displayHint("c_submithint");
displayHint("c_taskhint");
displayHint("c_mailhint");
displayHint("c_uploadhint");
displayHint("c_profilehint");
var d=(cd.getValue("c_user")=="" ||
cd.getValue("c_pass")=="");
cd.setAttr("c_loginbtn","disabled",d?"disabled":"");
d=(cd.getValue("c_femail")=="");
cd.setAttr("c_fbtn","disabled",d?"disabled":"");
d=(cd.getValue("c_email")=="" ||
cd.getValue("c_fname")=="" ||
cd.getValue("c_lname")=="" ||
cd.getValue("c_password")=="" ||
cd.getValue("c_confirm")=="" ||
!cd.isChecked("c_terms"));
cd.setAttr("c_subtn","disabled",d?"disabled":"");
if(!cd.getValue("c_password").validPassword())
{
displayHint(
"c_signuphint",
"Your password must be at least 6 characters long and contain at least one number.");
}
d=(cd.getValue("c_secpass")=="")
cd.setAttr("c_secbtn","disabled",d?"disabled":"");
var c=cd.getElementById("tabssubmit","tabcurrent");
if(c && cd.getAttr(c,"form")=="notes")
{
cd.setDisplay("c_smnextbtn","none");
cd.setDisplay("c_smbtn","");
}
var c=cd.getElementById("tabsabout","tabcurrent");
if(c && cd.getAttr(c,"form")=="options")
{
cd.setDisplay("c_optsavebtn","");
cd.setHtml("c_optclosebtn","Cancel");
}
};
var getStripItem=function(d,id)
{
var e=cd.getElements("td",d);
for(var n=0;n<e.length;n++)
{
if(cd.getAttr(e[n],"stripitem")==id)
return e[n];
}
return null;
};
var displayStripItem=function(d,id,visible)
{
var e=getStripItem(d,id);
if(e) cd.setDisplay(e,visible?"":"none");
};
var setTab=function(dialog,tab)
{
var id="tabs"+dialog;
var c=cd.getElementById(id,"tabcurrent");
if(c)
{
cd.setId(c,"");
cd.setDisplay("tab"+cd.getAttr(c,"form"),"none");
}
var t=cd.getElements("td",id);
for(var n=0;n<t.length;n++)
{
if(cd.getAttr(t[n],"form")==tab)
{
c="tab"+tab;
cd.setId(t[n],"tabcurrent");
cd.setDisplay(c,"block");
setInitialFocus(c);
break;
}
}
enableButtons();
};
var resetSubmitList=function()
{
cd.setHtml("c_submitcontent","");
};
var resetTaskList=function()
{
cd.setHtml("c_taskscontent","");
};
var toggleListIcon=function(e,v,i1,i2)
{
var n=cd.getElements("div",e,v?i1:i2);
if(n.length>0)
{
cd.setClass(n[0],v?i2:i1);
return true;
}
return false;
};
var storeLogin=function(v)
{
storeStart();
storeValue("login",v);
storeUpdate();
};
var storeStart=function()
{
storeErase="";
storeSet="";
storeValues="";
};
var storeOption=function(s)
{
var v=cd.getValue("_"+s);
if(v=="default") v=null;
storeValue(s,v);
};
var storeValue=function(s,v)
{
var d=(cookieMethod=="direct");
if(!v || v=="")
{
if(d) cc.erase(s);
else
{
if(storeErase!="") storeErase+=",";
storeErase+=s;
}
return;
}
if(d) cc.set(s,v);
else
{
if(storeSet!="") storeSet+=",";
storeSet+=s;
storeValues+="&value"+s+"="+encodeURIComponent(v);
}
};
var storeUpdate=function()
{
if(storeErase!="") pointviewCookies("erase",storeErase,"");
if(storeSet!="") pointviewCookies("set",storeSet,storeValues);
};
var storeReload=function()
{
if(cookieMethod=="direct") cf.reloadPage();
else setTimeout(cf.reloadPage,3000);
};
var pointviewCookies=function(action,cookies,values)
{
if(cdd.ie || cdd.firefox || cdd.chrome)
{
var e=cd.createElement("script");
cd.setAttr(e,"type","text/javascript");
cd.setSrc(e,cookieBase+"/pv/cookies.asp?action="+action+"&method=server&cookies="+cookies+values);
cd.appendBody(e);
return;
}
window.open(
cookieBase+"/pv/cookies.asp?action="+action+"&method=client&cookies="+cookies+values,
"cookieUpdate"+updateId,
"top=10,left=10,width=60,height=60,"+
"menubar=no,"+
"toolbar=no,"+
"location=no,"+
"scrollbars=no,"+
"resizable=no,"+
"status=no");
updateId++;
};
return {
invoke:function(cmd,id)
{
switch(cmd)
{
case "about":
case "signup":
case "submit":
case "tasks":
case "profile":
case "login":
case "logout":
break;
default:
alert("Unknown Strip command '"+cmd+"'.");
return;
}
if(cd.getDisplay("c_menustrip")!="block")
{
alert("Cannot invoke strip command '"+cmd+"' while Strip is busy.");
return;
}
var e=getStripItem("c_menustrip",cmd);
if(cd.getDisplay(e)=="none")
{
if(cmd=="logout") return;
if(cmd!="submit" && cmd!="tasks" && cmd!="profile")
{
alert("Cannot invoke strip command '"+cmd+"' when context is wrong.");
return;
}
cmd="login";
e=getStripItem("c_menustrip",cmd);
}
if(cmd=="submit" && typeof id!="undefined")
{
removeDialogs();
cd.setId(e,"stripcur");
CLASMA.online.strip.onsubmission(id);
return;
}
CLASMA.online.strip.onstrip(e);
},
onload:function()
{
cf.disableBrowser("c_strip");
cf.opacity("c_stripback");
cd.addEvent(window,"resize",CLASMA.online.strip.onresize);
cd.addEvent(window,"scroll",CLASMA.online.strip.onresize);
CLASMA.online.strip.onresize();
cd.setValue("c_user",cookie_user);
cd.setValue("c_pass",cookie_pass);
enableButtons();
cd.setChecked("c_keep",true);
ca.setHeartbeat(
1*(15*1000),
CLASMA.online.strip.onheartbeat);
if(cookie_user!="" && cookie_pass!="" && cookie_login=="yes")
{
login(cookie_user,cookie_pass,true);
return;
}
showMenu(true);
co.onstriphome();
},
onresize:function()
{
var cw=cf.getClientWidth();
var ch=cf.getClientHeight();
var sh=parseInt($("c_strip").offsetHeight);
var e=$("c_stripback");
cd.setTop(e,sh);
cd.setWidth(e,cw);
cd.setHeight(e,cl.floorit(ch,-sh));
alignDialog("c_login",true);
alignDialog("c_forgot",true);
alignDialog("c_signup",true);
alignDialog("c_security",true);
alignDialog("c_submit",true);
alignDialog("c_tasks",true);
alignDialog("c_profile",true);
alignDialog("c_dialog",true);
},
onstrip:function(e)
{
var id=cd.getAttr(e,"stripitem");
var c=$("stripcur");
removeDialogs();
if(e==c)
{
removeBack();
switch(id)
{
case "ok":
showStrip();
break;
}
return;
}
switch(id)
{
case "about":
showAbout(e);
return;
case "user":
showContent(e,"delegate","c_delegate",240,null,"",false,false,false);
break;
case "login":
showDialog("c_login",190,true,false);
break;
case "signup":
showDialog("c_signup",240,true,true);
break;
case "submit":
showContent(e,"submit","c_submit",480,null,"",true,false,false);
return;
case "tasks":
showContent(e,"tasks","c_tasks",480,null,"",true,false,false);
return;
case "profile":
showSecure(e,"profile","c_profile",408,null,"",true,true,false);
return;
case "logout":
logout();
break;
default:
showError("Option problem",
"<h2>Not yet implemented</h2>"+
"<p>This option has not yet been implemented.<br/>"+
"Please be patient and check back soon.</p>");
return;
}
cd.setId(e,"stripcur");
},
onhidestrip:function()
{
if(dlgModal) return;
var m=(cd.getDisplay("c_info")=="block" ||
cd.getDisplay("c_error")=="block");
removeDialogs();
removeBack();
if(m) showMenu(!loggedIn);
},
onlogin:function()
{
if(cd.getAttr("c_loginbtn","disabled")=="disabled")
return;
var user=cd.getValue("c_user");
var pass=cd.getValue("c_pass");
if(user=="" || pass=="")
{
cf.setFocus("c_user");
return;
}
if(!user.validEmail())
{
displayHint(
"c_loginhint",
"Your Email address does not look valid.",
"c_user");
return;
}
displayHint("c_loginhint");
if(cd.isChecked("c_keep"))
{
storeStart();
storeValue("user",user);
storeValue("pass",pass);
storeUpdate();
}
login(user,pass,false);
},
onreceive:function()
{
var email=cd.getValue("c_user");
request(email);
},
onsignup:function()
{
if(cd.getAttr("c_subtn","disabled")=="disabled")
return;
var email=cd.getValue("c_email");
var fname=cd.getValue("c_fname");
var lname=cd.getValue("c_lname");
var company=cd.getValue("c_company");
var pass=cd.getValue("c_password");
var conf=cd.getValue("c_confirm");
if(email=="" || fname=="" || lname=="" || pass=="" || conf=="")
{
displayHint(
"c_signuphint",
"A required field is missing.",
"c_email");
return;
}
if(!email.validEmail())
{
displayHint(
"c_signuphint",
"Your Email address does not look valid.",
"c_email");
return;
}
if(!pass.validPassword())
{
displayHint(
"c_signuphint",
"Your password must be at least 6 characters long and contain at least one number.",
"c_password");
return;
}
if(pass!=conf)
{
displayHint(
"c_signuphint",
"Your password confirmation does not match.",
"c_confirm");
return;
}
if(!cd.isChecked("c_terms"))
{
displayHint(
"c_signuphint",
"You must agree to our terms of service before you can continue.",
"c_terms");
return;
}
displayHint("c_signuphint");
signup(email,fname,lname,company,pass);
},
onresend:function()
{
if(cd.getAttr("c_fbtn","disabled")=="disabled")
return;
var email=cd.getValue("c_femail");
if(email=="")
{
displayHint(
"c_forgothint",
"Enter your Email address.",
"c_femail");
return;
}
if(!email.validEmail())
{
displayHint(
"c_forgothint",
"Your Email address does not look valid.",
"c_femail");
return;
}
cd.setValue("c_user",email);
enableButtons();
displayHint("c_forgothint");
request(email);
},
onforgot:function(ditch)
{
cd.setDisplay("c_login","none");
cd.setDisplay("c_security","none");
var email=cd.getValue("c_user");
cd.setValue("c_femail",email);
enableButtons();
showDialog("c_forgot",240,true,false);
},
onrequest:function()
{
var email=cd.getValue("c_email");
request(email);
},
onkeep:function()
{
if(!cd.isChecked("c_keep"))
{
storeStart();
storeValue("user",null);
storeValue("pass",null);
storeValue("login",null);
storeUpdate();
}
},
ontermschange:function()
{
enableButtons();
},
onshowterms:function()
{
window.open(cookieBase+"/pv/policy.asp");
cd.setChecked("c_terms",true);
enableButtons();
},
onsecurity:function()
{
if(cd.getAttr("c_secbtn","disabled")=="disabled")
return;
var pass=cd.getValue("c_secpass");
if(pass=="")
{
displayHint(
"c_securityhint",
"Enter your password to continue.",
"c_secpass");
return;
}
displayHint("c_securityhint");
security(pass);
},
onmembership:function(oid)
{
membership(oid);
},
ondelegate:function(pid)
{
assume(pid,"delegate");
},
onassume:function(pid)
{
var ok=confirm("Are you sure you want to assume the identity of this person?");
if(!ok) return;
assume(pid,"assume");
},
onlistsection:function(e)
{
var n=e.nextSibling;
var v=cd.isVisible(n);
cd.setShow(n,!v);
if(!toggleListIcon(e,v,"icond","iconr"))
toggleListIcon(e,v,"iconuu","icondd");
},
onsubdetails:function(e,type)
{
if(cd.getId(e)!="subcurr")
details(e,"submit",type,"c_subdetails","subcurr");
},
onsubmission:function(sid)
{
showSecure("submit","submit","c_dialog",480,null,"new="+sid,true,true,false);
},
onsubmit:function(sid,id)
{
var title=cd.getValue("c_smtitle");
var abst=cd.getValue("c_smabstract");
var notes=cd.getValue("c_smnotes");
if(abst=="")
{
displayHint(
"c_submithint",
"You must enter an abstract.",
"c_smabstract",
"submit",
"abstract");
return;
}
var topics="";
var e=cd.getElements("input","tabtopics");
for(var n=0;n<e.length;n++)
{
var c=e[n];
var s=cd.getId(c);
if(s.substr(0,7)=="c_topic" && cd.isChecked(c))
{
if(topics!="") topics+=",";
topics+=s.substr(7);
}
}
displayHint("c_submithint");
submission(sid,id,title,abst,topics,notes);
},
onsubmitnext:function()
{
var n;
var c=cd.getElementById("tabssubmit","tabcurrent");
switch(cd.getAttr(c,"form"))
{
case "introduction": n="details"; break;
case "details": n="abstract"; break;
case "abstract": n="topics"; break;
case "topics": n="notes"; break;
default: return;
}
setTab("submit",n);
},
ontaskdetails:function(e,type)
{
if(cd.getId(e)!="taskcurr")
details(e,"tasks",type,"c_taskdetails","taskcurr");
},
ontaskmanage:function(type,id)
{
removeDialogs();
removeBack();
var hash=type+"_"+id;
if(typeof CLASMA.pointview=="undefined")
{
window.location=cookieBase+"/pv/pointview.asp#"+hash;
return;
}
resetSubmitList();
resetTaskList();
window.location.hash=hash;
},
ontaskadd:function()
{
showSecure("tasks","tasks","c_dialog",408,null,"add="+loggedPid,true,true,false);
},
ontaskedit:function(id)
{
showSecure("tasks","tasks","c_dialog",408,null,"edit="+id,true,true,false);
},
ontaskupdate:function(id)
{
var title=cd.getValue("c_title");
var desc=cd.getValue("c_description");
var assignpid=cd.getValue("c_assignpid");
var duedate=cd.getValue("c_duedate");
var priority=cd.getValue("c_priority");
if(title=="")
{
displayHint(
"c_taskhint",
"A required field is missing.",
"c_title");
return;
}
displayHint("c_taskhint");
taskupdate(id,title,desc,assignpid,duedate,priority);
},
ontaskview:function(id)
{
removeDialogs();
removeBack();
window.location.hash="task_"+id;
},
ontaskpresedit:function(id)
{
showSecure("tasks","submit","c_dialog",480,null,"edit="+id,true,true,false);
},
ontaskmore:function(e)
{
var c=cd.getParentElement(e,null,"striplistdetails");
if(!c) return;
c=cd.getElementById(c,"c_taskmore");
if(!c) return;
var v=(cd.getDisplay(c)=="none");
cd.setValue(e,v?"Less":"More");
cd.setDisplay(c,v?"block":"none");
},
ontaskconfirm:function(id)
{
showSecure("tasks","tasks","c_dialog",480,null,"confirm="+id,true,true,false);
},
ontaskconfirmed:function(id)
{
for(var n=1;n<5;n++)
{
var f="c_con"+n;
if(!cd.isChecked(f))
{
displayHint(
"c_submithint",
"A required field is missing.",
f);
return;
}
}
var dist=cd.isChecked("c_distribute");
displayHint("c_submithint");
taskpresstatus(id,"4",dist);
},
ontaskwithdraw:function(id)
{
showSecure("tasks","tasks","c_dialog",480,null,"withdraw="+id,true,true,false);
},
ontaskdecline:function(id)
{
showSecure("tasks","tasks","c_dialog",480,null,"decline="+id,true,true,false);
},
ontaskdeclined:function(id)
{
taskpresstatus(id,"10");
},
ontasknoppt:function(id)
{
showSecure("tasks","tasks","c_dialog",480,null,"noppt="+id,true,true,false);
},
ontaskfinalize:function(id)
{
showSecure("tasks","tasks","c_dialog",480,null,"finalize="+id,true,true,false);
},
ontaskfinalized:function(id)
{
taskpresstatus(id,"6");
},
ontaskchange:function(id)
{
showSecure("tasks","tasks","c_dialog",480,null,"change="+id,true,true,false);
},
ontaskchanged:function(id)
{
taskpresstatus(id,"5");
},
ontaskstart:function(id)
{
taskstatus(id,"1");
},
ontaskcomplete:function(id)
{
taskstatus(id,"2");
},
ontaskclose:function(id)
{
taskstatus(id,"3");
},
ontasklater:function(e)
{
var c=cd.getParentElement(e,null,"striplistdetails");
if(!c) return;
cd.setHtml(c,"<div class=\"sdetails4anp\">Select an item from the list to see its details.</div>");
},
ongroupby:function(e)
{
listGroup=cd.getAttr(e,"form");
var c=cd.getParentElement(e,"div");
if(!c) return;
var action=(c.id=="c_taskscontent")?"tasks":"submit";
fetchlist(c,action);
},
onfiles:function(id)
{
var args="source=presentation:"+id;
showSecure("tasks","files","c_dialog",480,null,args,true,false,false);
},
onfiledetails:function(e,type)
{
details(e,"files",type,"c_filedetails","taskcurr");
},
onfileview:function(url)
{
window.open(url,'_blank')
},
onfileedit:function(fid)
{
var args="edit="+fid;
showSecure("tasks","files","c_dialog",408,null,args,true,true,false);
},
onfilesubmit:function(fid)
{
submitfile(fid);
},
onfiledelete:function(fid)
{
var ok=confirm("Are you sure you want to delete this file?");
if(!ok) return;
deletefile(fid);
},
onfilechange:function(e)
{
var sour=cd.getValue("_sourfile1");
cd.setValue("_title",sour.parseFile().file);
},
onfileupload:function(id,type)
{
var args=type+"="+id;
showSecure("tasks","upload","c_dialog",408,null,args,true,true,false);
},
onfilesend:function(id,ppt,types)
{
var sour=cd.getValue("_sourfile1");
var dest=cd.getValue("_destfile1");
if(sour=="")
{
displayHint(
"c_uploadhint",
"You must select a file to upload.",
"_sourfile1");
return;
}
var s=sour.parseFile();
var e=s.ext.toLowerCase();
if(types.indexOf("."+e+",")==-1)
{
displayHint(
"c_uploadhint",
"File type '"+e+"' is not valid for upload.",
"_sourfile1");
return;
}
if(!ppt && cd.getValue("_title")=="")
{
displayHint(
"c_uploadhint",
"You must supply a title for your file.",
"_title");
return;
}
if(cd.getValue("_destexist1")=="yes")
{
var ok=confirm("A version of this file has previously been uploaded.\nDo you want to overwrite it?");
if(!ok) return false;
}
var d=dest.parseFile();
cd.setValue("_destfile1",d.path+d.file+"."+e);
sendupload(id,ppt);
},
onemail:function(id)
{
showSecure("tasks","email","c_dialog",408,null,"new="+id,true,true,false);
},
onsendemail:function(id)
{
var subject=cd.getValue("c_emsubject");
var text=cd.getValue("c_emtext");
var managers=cd.isChecked("c_emmanagers");
var speakers=cd.isChecked("c_emspeakers");
var copyme=cd.isChecked("c_emcopyme");
if(subject=="")
{
displayHint(
"c_mailhint",
"You must supply a subject for your Email.",
"c_emsubject");
return;
}
if(text=="")
{
displayHint(
"c_mailhint",
"You must supply a message for your Email.",
"c_emtext");
return;
}
if(!managers && !speakers)
{
displayHint(
"c_mailhint",
"You specify who you want to send your Email to.",
"c_emmanagers");
return;
}
displayHint("c_mailhint");
sendmail(id,subject,text,managers,speakers,copyme);
},
onprofileedit:function(tab)
{
removeDialogs();
showSecure("profile","profile","c_profile",408,tab,"",true,true,true);
},
onprofile:function()
{
var email=cd.getValue("c_acemail");
var salute=cd.getValue("c_acsalute");
var fname=cd.getValue("c_acfname");
var lname=cd.getValue("c_aclname");
var cert=cd.getValue("c_accert");
var tel=cd.getValue("c_actel");
var mobile=cd.getValue("c_acmobile");
var company=cd.getValue("c_accompany");
var title=cd.getValue("c_actitle");
var dept=cd.getValue("c_acdept");
var url=cd.getValue("c_acurl");
var assname=cd.getValue("c_acassname");
var assemail=cd.getValue("c_acassemail");
var asstel=cd.getValue("c_acasstel");
var bio=cd.getValue("c_acbio");
var pass=cd.getValue("c_acpass");
var conf=cd.getValue("c_acconf");
if(email=="" || fname=="" || lname=="")
{
displayHint(
"c_profilehint",
"A required field is missing.",
"c_acemail",
"profile",
"personal");
return;
}
if(!email.validEmail())
{
displayHint(
"c_profilehint",
"Your Email address does not look valid.",
"c_acemail",
"profile",
"personal");
return;
}
if(assemail!="" && !assemail.validEmail())
{
displayHint(
"c_profilehint",
"Your assistants Email address does not look valid.",
"c_acassemail",
"profile",
"assistant");
return;
}
if(pass!="" || conf!="")
{
if(!pass.validPassword())
{
displayHint(
"c_profilehint",
"Your password must be at least 6 characters long and contain at least one number.",
"c_acpass",
"profile",
"password");
return;
}
if(pass!=conf)
{
displayHint(
"c_profilehint",
"Your password confirmation does not match.",
"c_acconf",
"profile",
"password");
return;
}
}
displayHint("c_profilehint");
profile(email,salute,fname,lname,cert,tel,mobile,
company,title,dept,url,
assname,assemail,asstel,
bio,
pass);
},
onprofilecancel:function()
{
showMenu(false);
setTimeout(function(){cd.setHtml("c_profilecontent","");},100);
},
onopttheme:function()
{
var v=(cd.getValue("_theme")=="custom");
cd.setDisplay("c_custtheme",v?"":"none");
},
onoptsave:function()
{
storeStart();
storeOption("font");
storeOption("fontsize");
storeOption("fontspace");
storeOption("theme");
storeOption("hue");
storeOption("saturation");
storeOption("lightness");
storeOption("background");
storeOption('_blank');
storeUpdate();
CLASMA.online.strip.oncancel();
storeReload();
},
ontab:function(dialog,tab)
{
setTab(dialog,tab);
enableButtons();
},
oneditfield:function(e)
{
enableButtons();
return true;
},
onnextfield:function(e,next)
{
enableButtons();
if(cf.getKey(e)==cf.K_RETURN)
{
cf.setFocus(next);
return false;
}
return true;
},
onnexttab:function(e,dialog,tab)
{
enableButtons();
if(cf.getKey(e)==cf.K_RETURN)
{
setTab(dialog,tab);
return false;
}
return true;
},
onlastfield:function(e,fn)
{
enableButtons();
if(cf.getKey(e)==cf.K_RETURN)
{
fn();
return false;
}
return true;
},
oncancel:function()
{
showMenu(!loggedIn);
},
onheartbeat:function()
{
heartbeat();
}
}; }();
CLASMA.dom.addDomLoadEvent(CLASMA.online.strip.onload);
