
function getId(id)
{
var e=null;
if(document.getElementById)
{
e=document.getElementById(id);
}
else if(document.all)
{
e=document.all(id);
}
if(!e)
{
e=null;
}
return(e);
}
String.prototype.trim=function()
{
return(this.toString()?
this.toString().replace(/\s+$|^\s*/g,""):"")
}
String.prototype.compareTo=function(arg)
{
var base=this.toString();
if(base==arg)
{
return 0;
}
var array=[base,arg];
array.sort();
if(array[0]==base)
{
return 1;
}
else
{
return -1;
}
}
String.prototype.compareToIgnoreCase=function(arg)
{
return this.toLowerCase().compareTo(arg.toLowerCase());
}
String.prototype.startsWith=function(arg)
{
return(this.search(arg)==0);
}
function uGetURLParameterValue(paramName)
{
return uGetURLParameterValueFromString(paramName,document.location.href);
}
function uGetURLParameterValueFromString(paramName,string)
{
paramName=paramName.toLowerCase();
var paramValue="";
var index=string.indexOf("?");
if(index!=-1)
{
var querystr=string.substring(index+1);
var params=querystr.split("&");
for(var i=0;i<params.length;i++)
{
var parts=params[i].split("=");
if(parts.length>1)
{
if(parts[0].toLowerCase()==paramName)
{
paramValue=unescape(parts[1]).toLowerCase();
break;
}
}
}
}
return(paramValue);
}
function uSetElementDisplay(id,show)
{
uSetDisplay(id,(show?"":"none"));
}
function uSetDisplay(id,display)
{
var el=getId(id);
if(el)
{
el.style.display=display;
}
else
{
vTrace("Could not set display on element "+id,"Alert");
}
}
function uExtractXMLTag(str,tag)
{
var lcont;
var lxmltag="<"+tag+">";
var lstart=str.indexOf(lxmltag);
if(lstart<0)
{
throw Error("Start Tag not found: "+tag);
}
var lend=str.indexOf("</"+tag+">");
if(lend<0)
{
throw Error("End Tag not found: "+tag);
}
else if(lstart>=lend)
{
throw Error("Tag in incorrect order: "+tag);
}
lstart+=lxmltag.length;
lcont=str.substring(lstart,lend);
return(lcont);
}
function uQuickCreateElement(type,className,id,parentNode,insertBeforeEl)
{
var newEl=document.createElement(type);
if(className)
{
newEl.className=className;
}
if(id)
{
newEl.id=id;
}
if(parentNode)
{
if(insertBeforeEl==null)
{
if(parentNode.appendChild)
{
parentNode.appendChild(newEl);
}
}
else
{
parentNode.insertBefore(newEl,insertBeforeEl);
}
}
return(newEl);
}
function uStopEventPropagation(e)
{
if(typeof event!='undefined')
{
event.cancelBubble=true;
}
else
{
e.stopPropagation();
}
}
function uGetKeyCode(e)
{
var key=0;
if(e)
{
if(e.keyCode)
{
key=e.keyCode;
}
else
{
key=e.which;
}
}
else if(typeof event!='undefined')
{
key=event.keyCode;
}
return(key);
}
function uIsHelpKey(e)
{
if((typeof e=='undefined')||
(typeof e.charCode=='undefined'))
{
return false;
}
else if(vIsSafari)
{
return(e.keyCode==0xF704);
}
else if(e.charCode!=0)
{
return false;
}
else
{
return(e.keyCode==0x70);
}
}
function uRemoveAllChildren(node)
{
while(node.hasChildNodes())
{
uEventsRelease(node.firstChild);
node.removeChild(node.firstChild);
}
}
function uReplaceChild(node,newChild)
{
uRemoveAllChildren(node);
node.appendChild(newChild);
}
function uReplaceText(id,text)
{
var el=getId(id);
uReplaceChild(el,document.createTextNode(text));
}
function getAppletHTML(isPreinstalled,name,klass,codebase,archive,cabfile,appletTagParams,params)
{
var html='<applet NAME="'+name+'" ID="'+name+'" '+
'CODE="'+klass+'.class" ';
if(!isPreinstalled)
{
html+='CODEBASE="'+codebase+'" ARCHIVE="'+archive+'" ';
}
html+=appletTagParams+'>';
if(cabfile!='')
{
html+='<param name="CABBASE" value="'+cabfile+'">';
}
if(params)
{
for(var pp in params)
{
html+='<param name="'+params[pp][0]+'" value="'+params[pp][1]+'">';
}
}
html+='</applet>';
return html;
}
function createApplet(name,klass,codebase,archive,cabfile,appletTagParams,params)
{
document.write(getAppletHTML(false,name,klass,codebase,archive,cabfile,appletTagParams,params));
}
function createAppletPreinstalled(name,klass,codebase,archive,cabfile,appletTagParams,params)
{
document.write(getAppletHTML(true,name,klass,codebase,archive,cabfile,appletTagParams,params));
}
function createHTML(html)
{
document.write(html);
}
function uGetChildrenWithClass(e,className,previousChildren)
{
if(e.className&&(e.className.indexOf(className)!=-1))
{
previousChildren[previousChildren.length]=e;
}
for(var ii=0;ii<e.childNodes.length;ii++)
{
previousChildren=uGetChildrenWithClass(e.childNodes[ii],className,previousChildren);
}
return(previousChildren);
}
function uCopyPrototype(descendant,parent)
{
var constructor=parent.toString();
var match=constructor.match(/\s*function (.*)\(/);
if(match!=null)
{
descendant.prototype[match[1]]=parent;
}
for(var ii in parent.prototype)
{
descendant.prototype[ii]=parent.prototype[ii];
}
}
function uAddStyleSheetRule(ssIndex,selector,declaration)
{
var ss=document.styleSheets[ssIndex];
if(ss!=null)
{
if(ss.addRule)
{
ss.addRule(selector,declaration);
}
else
{
var rule=selector+"{"+declaration+"}";
ss.insertRule(rule,ss.cssRules.length);
}
}
}
function uEventAttach(el,name,functionName,isCapture)
{
if(el.attachEvent)
{
el.attachEvent("on"+name,functionName);
}
else if(el.addEventListener)
{
if(typeof isCapture=='undefined')
{
isCapture=false;
}
el.addEventListener(name,functionName,isCapture);
}
}
function uEventDetach(el,name,functionName,isCapture)
{
if(el.detachEvent)
{
el.detachEvent("on"+name,functionName);
}
else if(el.removeEventListener)
{
if(typeof isCapture=='undefined')
{
isCapture=false;
}
el.removeEventListener(name,functionName,isCapture);
}
}
function uEventGetTarget(e)
{
return((typeof event=='undefined')?e.target:event.srcElement);
}
function uEventsRelease(el)
{
var events=["focus","blur","change","click","mousedown",
"mouseup","mouseover","keypress","keydown",
"keyup","keypress","error","help","submit"];
var i;
for(i=0;i<events.length;i++)
{
if(typeof el["on"+events[i]]!="undefined")
{
el["on"+events[i]]=null;
}
}
for(i=0;i<el.childNodes.length;i++)
{
uEventsRelease(el.childNodes[i]);
}
}
function uEventsReleaseDocument()
{
uEventDetach(window,"unload",uEventsReleaseDocument,false);
uEventsRelease(document);
}
uEventAttach(window,"unload",uEventsReleaseDocument,false);


