var GluedTools={dom:function(){if(!GluedTools._DOM){throw"Glued Tools DOM module is missing.";}else{return GluedTools._DOM;}},animator:function(){if(!GluedTools._Animator){throw"Glued Tools Animation module is missing.";}else{return GluedTools._Animator;}},form:function(){if(!GluedTools._Form){throw"Glued Tools Form module is missing.";}else{return GluedTools._Form;}},gui:function(){if(!GluedTools._GUI){throw"Glued Tools GUI module is missing.";}else{return GluedTools._GUI;}},widgetFactory:function(){if(!GluedTools._WidgetFactory){throw"Glued Tools Widget module is missing.";}else{return GluedTools._WidgetFactory;}}}
GluedTools._DOM={getBrowserType:function(){if(navigator.userAgent.indexOf("Opera")!=-1&&document.getElementById){return"OP";}else if(document.all){return"IE";}else if(document.layers){return"NN";}else if(!document.all&&document.getElementById){return"MO";}else{return"IE";}},getElementByID:function(elementID){if(document.layers){return document.layers[elementID];}else if(document.getElementById){return document.getElementById(elementID);}else if(document.all){return document.all[elementID];}},getElementsByTagName:function(elementTag){if(document.layers){return null;}else if(document.getElementsByTagName){return document.getElementsByTagName(elementID);}else if(document.all){return document.all.tags(elementID);}},getElementsByClassName:function(className){var foundElements=[];var regexp=new RegExp('\\b'+className+'\\b');var all_elements=document.all?document.all:document.getElementsByTagName("*");for(var i=0,j=all_elements.length;i<j;i++){if(regexp.test(all_elements[i].className)){foundElements.push(all_elements[i]);}}
return foundElements;},setElementStyle:function(element,attribute,value){if(document.layers){element[attribute]=value;}else{if(attribute=='opacity'){if(element.filters){element.style.filter='alpha(opacity='+value*100+')';}else{element.style.opacity=value;element.style['-moz-opacity']=value;element.style['-khtml-opacity']=value;}}else{element.style[attribute]=value;}}},getElementStyle:function(element,attribute){if(document.layers){return element[attribute];}else{if(!element.style[attribute]){if(window.getComputedStyle){this.setElementStyle(element,attribute,window.getComputedStyle(element,null)[attribute]);}else{this.setElementStyle(element,attribute,element.currentStyle[attribute]);}}
return element.style[attribute];}},addEventListener:function(element,eventtype,callback,captures){if(element.addEventListener){element.addEventListener(eventtype,callback,captures);}else if(element.attachEvent){element.attachEvent('on'+eventtype,callback,captures);}else{element['on'+eventtype]=callback;}},getElementPosition:function(element){var position=new Array;if(document.getBoxObjectFor){var box=document.getBoxObjectFor(element);position['left']=box.x;position['width']=box.width;position['top']=box.y;position['height']=box.height;}else if(element.getBoundingClientRect){var box=element.getBoundingClientRect();position['left']=box.left;position['width']=box.right-box.left;position['top']=box.top;position['height']=box.bottom-box.top;}
return position;},pageX:function(pos){if(document.all){return document.body.scrollLeft+pos;}else{return window.pageXOffset+pos;}},pageY:function(pos){if(document.all){return document.body.scrollTop+pos;}else{return window.pageYOffset+pos;}},swapNodes:function(elementA,elementB){var cloneA=elementA.cloneNode(true);elementB.parentNode.insertBefore(clonedA,elementB);elementA.parentNode.replaceNode(elementB,elementA);return true;},getViewportSize:function(){var windowSize={width:0,height:0};if(typeof window.innerWidth!='undefined'){windowSize={width:window.innerWidth,height:window.innerHeight};}else if(typeof document.documentElement!='undefined'&&typeof document.documentElement.clientWidth!='undefined'&&document.documentElement.clientWidth!=0){windowSize={width:document.documentElement.clientWidth,height:document.documentElement.clientHeight};}else{windowSize={width:document.getElementsByTagName('body')[0].clientWidth,height:document.getElementsByTagName('body')[0].clientHeight};}
return windowSize;},cloneObject:function(object){var clone={}
for(property in object){if(typeof(object[property])=="object"){clone[property]=new GluedTools._DOM.cloneObject(object[property]);}else{clone[property]=object[property];}}
return clone;},checkElementOverlap:function(positionA,positionB){var overlapFlag=true;if(positionA.top>(positionB.top+positionB.height)&&(positionA.top+positionA.height)>(positionB.top+positionB.height)){overlapFlag=false;}
if(positionA.top<positionB.top&&(positionA.top+positionA.height)<positionB.top){overlapFlag=false;}
if(positionA.left>(positionB.left+positionB.width)&&(positionA.left+positionA.width)>(positionB.left+positionB.width)){overlapFlag=false;}
if(positionA.left<positionB.left&&(positionA.left+positionA.width)<positionB.left){overlapFlag=false;}
return overlapFlag;}}