/*
 * Copyright 2006, 2007 Savarese Software Research Corporation.
 * All rights reserved.
 */
Wispers.Element={hide:function(element){element.style.visibility='hidden';},show:function(element){element.style.visibility='visible';},disappear:function(element){element.wib_original_style_display=element.style.display;element.style.display='none';Wispers.Element.hide(element);},reveal:function(element,display){if(display)
element.style.display=display;else
element.style.display=element.wib_original_style_display;element.wib_original_style_display=null;Wispers.Element.show(element);},absoluteCoords:function(element){var coords={left:element.offsetLeft,top:element.offsetTop};while(element.offsetParent){element=element.offsetParent;coords.left+=element.offsetLeft;coords.top+=element.offsetTop;}
return coords;},clientLeft:function(element){return(element.offsetLeft+((element.offsetWidth-element.clientWidth)/2));},clientTop:function(element){return(element.offsetTop+((element.offsetHeight-element.clientHeight)/2));},setClass:function(element,value){if(Wispers.Config.MSIE)
element.className=value;else
element.setAttribute("class",value);},addClass:function(element,value){var c=element.className;if(c){c+=" ";c+=value;}else
c=value;Wispers.Element.setClass(element,c);},removeClass:function(element,value){if(element.className){var re=new RegExp("\\b"+value+"\\b","g");var c=element.className.replace(re,"");if(c!=element.className)
Wispers.Element.setClass(element,c);}},scrollToBottom:function(element){if(element.scrollHeight>element.clientHeight){element.scrollTop=element.scrollHeight-element.clientHeight;}},ownerDocument:function(element){return(element.ownerDocument||element.document);},SelectorSeparatorPattern:new RegExp('\\s*,\\s*'),IdSelectorPattern:new RegExp('^([^#]*)#(.+)$'),ClassSelectorPattern:new RegExp('^([^\\.]*)\\.(.+)$'),AttributeSelectorPattern:new RegExp('^(\\w*)\\[(\\w+)([=~\\|\\^\\$\\*]?)=?"?([^\\]"]*)"?\\]$'),_getBySelector:function(selector,root){var tree=[root];var tokens=selector.split(/\s+/);var token;var result=[];for(var i=0;i<tokens.length;++i){token=tokens[i];var match=Wispers.Element.IdSelectorPattern.exec(token);if(match){var element=root.getElementById(match[2]);if(!element||(match[1]&&match[1].toUpperCase()!=element.nodeName))
return[];tree=[element];}else if((match=Wispers.Element.ClassSelectorPattern.exec(token))){var tag=match[1];var className=match[2];var classNamePattern=new RegExp('\\b'+className+'\\b');if(!tag)
tag='*';var elements=[];for(var j=0;j<tree.length;++j)
Wispers.Array.appendTo(elements,tree[j].getElementsByTagName(tag));tree=[];for(var j=0;j<elements.length;++j){if(classNamePattern.test(elements[j].className))
tree.push(elements[j]);}}else if((match=Wispers.Element.AttributeSelectorPattern.exec(token))){return[];}else{if(tree.length<1)
return[];var elements=[];for(var j=0;j<tree.length;++j)
Wispers.Array.appendTo(elements,tree[j].getElementsByTagName(token));tree=elements;}
result=tree;}
return result;},getBySelector:function(selector,root){var result=[];if(!root)
root=document;if(root.getElementsByTagName){var selectors=selector.split(Wispers.Element.SelectorSeparatorPattern);for(var i=0;i<selectors.length;++i)
Wispers.Array.appendTo(result,Wispers.Element._getBySelector(selectors[i],root));}
return result;},getSelectedOption:function(control){return control.options[control.selectedIndex];},getSelectedOptionValueById:function(id,doc){if(!doc)
doc=document;return Wispers.Element.getSelectedOption(doc.getElementById(id)).value;}}