





_jsc_package(["com","coremedia","dom"]);

(function(){

var $=com.coremedia.dom.DomUtil=com_coremedia_dom_DomUtil=function(){
};$.constructorname='com.coremedia.dom.DomUtil';$.superconstructor=Object;$=$.prototype=new Object();$.super$Object=Object;$.constructor=com.coremedia.dom.DomUtil;

com.coremedia.dom.DomUtil.isDescendantOf=function(node1,node2){
if(!node1)return false;
if(!node2)return false;
if(node1==node2)return true;

return com.coremedia.dom.DomUtil.isDescendantOf(node1.parentNode,node2);
};




com.coremedia.dom.DomUtil.moveChildren=function(sourceNode,targetNode,insertionPoint){
if(typeof(insertionPoint)=="undefined")
insertionPoint=null;
var child=sourceNode.firstChild;
while(child){
var nextChild=child.nextSibling;
targetNode.insertBefore(child,insertionPoint);
child=nextChild;
}
};





com.coremedia.dom.DomUtil.removeNodeKeepChildren=function(node){
var parent=node.parentNode;
var child=node.firstChild;
while(child){
var nextChild=child.nextSibling;
parent.insertBefore(child,node);
child=nextChild;
}
parent.removeChild(node);
};











com.coremedia.dom.DomUtil.findEnclosingElement=function(node,elementNames,rootElement){
var n=node;
while(n&&n!=rootElement&&n.nodeType!=Node.ELEMENT_NODE){
n=n.parentNode;
}
while(n&&n.nodeType==Node.ELEMENT_NODE){
if(com.coremedia.dom.DomUtil.isElement(n,elementNames)){
return n;
}
if(n==rootElement)
return null;
n=n.parentNode;
}
return null;
};




com.coremedia.dom.DomUtil.removeNode=function(node){
if(node&&node.parentNode)
node.parentNode.removeChild(node);
};








com.coremedia.dom.DomUtil.importNode=function(doc,node,deep){



var result=null;

if(!node)return null;

var nodeType=node.nodeType;

switch(nodeType){
case Node.ELEMENT_NODE:
var name=node.nodeName;
if(name.length==0||name.charAt(0)=='/'){


return null;
}
result=doc.createElement(name);

if(name=="IMG"&&node.cloneNode){
result.mergeAttributes(node);
return result;
}
var attributes=node.attributes;
for(var i=0;i<attributes.length;i++){
var attribute=attributes.item(i);
if(attribute.specified){
var attrName=attribute.name;
if(attrName=="class"||attrName=="CLASS")
com.coremedia.dom.HtmlDomUtil.setClassAttribute(result,
com.coremedia.dom.HtmlDomUtil.getClassAttribute(node));
else{
var value=node.getAttribute(attrName);
result.setAttribute(attrName,value);
}
}
}
if(deep){
var child=node.firstChild;
while(child){
var newChild=com.coremedia.dom.DomUtil.importNode(doc,child,true);
if(newChild){
result.appendChild(newChild);
}
child=child.nextSibling;
}
}
break;
case Node.TEXT_NODE:
result=doc.createTextNode(node.nodeValue);
break;
case Node.COMMENT_NODE:
result=doc.createComment(node.nodeValue);
break;
default:
logging.Logger.log("com.coremedia.dom.DomUtil.importNode(): Unknown or unexpected node type, ignored: "+nodeType);
}
return result;
};


com.coremedia.dom.DomUtil._regexpCache=new Object();








com.coremedia.dom.DomUtil.isElement=function(node,elementNames){
if(!node||node.nodeType!=Node.ELEMENT_NODE)
return false;
var element=node;
var elementName=element.nodeName;
if(elementName==elementNames)
return true;
var regexp=com.coremedia.dom.DomUtil._regexpCache[elementNames];
if(!regexp){
regexp=com.coremedia.dom.DomUtil._regexpCache[elementNames]=
new RegExp("^("+elementNames+")$","i");
}
return regexp.test(elementName);
};

com.coremedia.dom.DomUtil.findDirectChild=function(root,descendant){
return!descendant
?null
:descendant.parentNode==root
?descendant
:this.findDirectChild(root,descendant.parentNode);
};

com.coremedia.dom.DomUtil.findOutermostSibling=function(node,root){
var directChild=com.coremedia.dom.DomUtil.findDirectChild(root,node);
return directChild?directChild.nextSibling:null;
};

com.coremedia.dom.DomUtil.findNextSibling=function(elem,elementNames){
while(elem&&!com.coremedia.dom.DomUtil.isElement(elem,elementNames))
elem=elem.nextSibling;
return elem;
};

com.coremedia.dom.DomUtil.insertBefore=function(node,ref,force){
if(!force&&(node===ref||node.nextSibling===ref))
return false;
var parent=ref.parentNode;
parent.insertBefore(node,ref);
return true;
};

com.coremedia.dom.DomUtil.insertAfter=function(node,ref,force){
var pn=ref.parentNode;
if(ref==pn.lastChild){
if((!force)&&(node===ref)){
return false;
}
pn.appendChild(node);
}else
return com.coremedia.dom.DomUtil.insertBefore(node,ref.nextSibling,force);
return true;
};

com.coremedia.dom.DomUtil.insertAtPosition=function(node,ref,position){
if((!node)||(!ref)||(!position)){return false;}
switch(position.toLowerCase()){
case"before":
return com.coremedia.dom.DomUtil.insertBefore(node,ref);
case"after":
return com.coremedia.dom.DomUtil.insertAfter(node,ref);
case"first":
if(ref.firstChild){
return com.coremedia.dom.DomUtil.insertBefore(node,ref.firstChild);
}else{
ref.appendChild(node);
return true;
}
break;
default:
ref.appendChild(node);
return true;
}
};

com.coremedia.dom.DomUtil.insertAtIndex=function(node,containingNode,insertionIndex){
var siblingNodes=containingNode.childNodes;

if(!siblingNodes.length||insertionIndex<0||insertionIndex>=siblingNodes.length){
containingNode.appendChild(node);
return true;
}


return com.coremedia.dom.DomUtil.insertBefore(node,siblingNodes.item(insertionIndex));
};

com.coremedia.dom.DomUtil.prependChild=function(node,parent){
if(parent.firstChild){
parent.insertBefore(node,parent.firstChild);
}else{
parent.appendChild(node);
}
return true;
};

})();






_jsc_package(["com","coremedia","dom"]);

(function(){

var $=com.coremedia.dom.HtmlDomUtil=com_coremedia_dom_HtmlDomUtil=function(){
};$.constructorname='com.coremedia.dom.HtmlDomUtil';$.superconstructor=Object;$=$.prototype=new Object();$.super$Object=Object;$.constructor=com.coremedia.dom.HtmlDomUtil;








com.coremedia.dom.HtmlDomUtil.getClassAttribute=function(element){
var value=element.className;
if(!value)value=element.getAttribute("class");
return value;
};












com.coremedia.dom.HtmlDomUtil.setClassAttribute=function(element,value){
element.removeAttribute("className");
element.removeAttribute("class");

if(value&&value!=""){
element.className=value;
}
};






com.coremedia.dom.HtmlDomUtil.parseStyleSelectors=function(attrValue){
if(!attrValue)
return[];
var selectors=attrValue.split(" ");
var j=0;
for(var i=0;i<selectors.length;i++){
var selector=selectors[i];
if(selector.length!=0){
selectors[j++]=selector;
}
}

selectors.splice(j,selectors.length-j);


selectors.sort();

return selectors;
};






com.coremedia.dom.HtmlDomUtil.unparseStyleSelectors=function(selectors){
return selectors.join(' ');
};









com.coremedia.dom.HtmlDomUtil.mergeStyleSelectors=function(selectors1,selectors2,formatVariantSeparator){
var result=new Array(0);
var i=0;
var k=0;
while(i<selectors1.length&&k<selectors2.length){
var selector1=selectors1[i];
var selector2=selectors2[k];
if(selector1==selector2||com.coremedia.dom.HtmlDomUtil.isSameFormat(selector1,selector2,formatVariantSeparator)){
result[result.length]=selector1;
i++;
k++;
}else if(selector1<selector2){
result[result.length]=selector1;
i++;
}else{
result[result.length]=selector2;
k++;
}
}
while(i<selectors1.length){
result[result.length]=selectors1[i++];
}
while(k<selectors2.length){
result[result.length]=selectors2[k++];
}
return result;
};















com.coremedia.dom.HtmlDomUtil.mergeAttributes=function(sourceElement,targetElement,formatVariantSeparator){
var sourceAttributes=sourceElement.attributes;
for(var i=0;i<sourceAttributes.length;i++){
var attribute=sourceAttributes.item(i);
if(attrName=="class"){
com.coremedia.dom.HtmlDomUtil.mergeClassAttribute(sourceElement,targetElement,true,formatVariantSeparator);
}else if(attribute.specified){
var attrName=attribute.nodeName;
var attrValue=attribute.nodeValue;
targetElement.setAttribute(attrName,attrValue);
}
}
};












com.coremedia.dom.HtmlDomUtil.mergeClassAttribute=function(sourceElement,
targetElement,
sourceElementTakesPrecedence,
formatVariantSeparator){
var selectors1=com.coremedia.dom.HtmlDomUtil.parseStyleSelectors(com.coremedia.dom.HtmlDomUtil.getClassAttribute(sourceElement));
var selectors2=com.coremedia.dom.HtmlDomUtil.parseStyleSelectors(com.coremedia.dom.HtmlDomUtil.getClassAttribute(targetElement));
var newSelectors=
com.coremedia.dom.HtmlDomUtil.mergeStyleSelectors(
sourceElementTakesPrecedence?selectors1:selectors2,
sourceElementTakesPrecedence?selectors2:selectors1,
formatVariantSeparator);
var newValue=com.coremedia.dom.HtmlDomUtil.unparseStyleSelectors(newSelectors);
com.coremedia.dom.HtmlDomUtil.setClassAttribute(targetElement,newValue);
};






com.coremedia.dom.HtmlDomUtil.isSameFormat=function(selector1,selector2,formatVariantSeparator){
if(selector1==selector2)
return true;
if(formatVariantSeparator){
var i1=selector1.indexOf(formatVariantSeparator);
if(i1>=0){
var i2=selector2.indexOf(formatVariantSeparator);
if(i1==i2){
return selector1.substring(0,i1)==selector2.substring(0,i2);
}
}
}
return false;
};


com.coremedia.dom.HtmlDomUtil.phraseLevelElementsRegExp="(EM|STRONG|DFN|CODE|Q|SUB|SUP|SAMP|KBD|VAR|CITE|ABBR|ACRONYM)";


com.coremedia.dom.HtmlDomUtil.inlineLevelElementsRegExp=
"(TT|I|B|U|S|STRIKE|BIG|SMALL|"+
com.coremedia.dom.HtmlDomUtil.phraseLevelElementsRegExp+
"|A|IMG|APPLET|OBJECT|FONT|BASEFONT|BR|"+
"SCRIPT|MAP|SPAN|BDO|IFRAME|INPUT|SELECT|TEXTAREA|LABEL|BUTTON|NOBR)";


com.coremedia.dom.HtmlDomUtil.blockLevelElementsRegExp=
"(H1|H2|H3|H4|H5|H6|P|UL|OL|DIR|MENU|PRE|DL|DIV|CENTER|NOSCRIPT|NOFRAMES|BLOCKQUOTE|FORM|ISINDEX|HR|TABLE|FIELDSET|ADDRESS)";


com.coremedia.dom.HtmlDomUtil.flowLevelElementsRegExp=
"(INS|DEL|SCRIPT|NOSCRIPT|"+
com.coremedia.dom.HtmlDomUtil.blockLevelElementsRegExp+
"|"+
com.coremedia.dom.HtmlDomUtil.inlineLevelElementsRegExp+
")";


com.coremedia.dom.HtmlDomUtil.flowContentElementsRegExp="(LI|DIV|DD|INS|DEL|TH|TD)";

com.coremedia.dom.HtmlDomUtil.blockContentElementsRegExp="("+com.coremedia.dom.HtmlDomUtil.flowContentElementsRegExp+"|BLOCKQUOTE|BODY)";

com.coremedia.dom.HtmlDomUtil.inlineContentElementsRegExp=
"("+
com.coremedia.dom.HtmlDomUtil.flowContentElementsRegExp+
"|(TT|I|B|U|S|STRIKE|BIG|SMALL|FONT|BASEFONT|SPAN|BUTTON)|"+
com.coremedia.dom.HtmlDomUtil.phraseLevelElementsRegExp+
"|P|H1|H2|H3|H4|H5|H6|DT|ADDRESS|NOBR)";

com.coremedia.dom.HtmlDomUtil.allowsBlockContent=function(node){
return com.coremedia.dom.DomUtil.isElement(node,com.coremedia.dom.HtmlDomUtil.blockContentElementsRegExp);
};

com.coremedia.dom.HtmlDomUtil.allowsInlineContent=function(node){
return com.coremedia.dom.DomUtil.isElement(node,com.coremedia.dom.HtmlDomUtil.inlineContentElementsRegExp);
};

com.coremedia.dom.HtmlDomUtil.allowsTextContent=function(node){
return com.coremedia.dom.DomUtil.isElement(node,com.coremedia.dom.HtmlDomUtil.inlineContentElementsRegExp+"|A");
};

com.coremedia.dom.HtmlDomUtil.allowsFlowContent=function(node){
return com.coremedia.dom.DomUtil.isElement(node,com.coremedia.dom.HtmlDomUtil.flowContentElementsRegExp);
};


















com.coremedia.dom.HtmlDomUtil.isAllowedIn=function(node,
potentialParent,insertionPoint){
if(!node)return false;
if(node.nodeType==Node.TEXT_NODE)
return com.coremedia.dom.HtmlDomUtil.allowsTextContent(potentialParent);
if(com.coremedia.dom.HtmlDomUtil.isInlineLevelElement(node))
return com.coremedia.dom.HtmlDomUtil.allowsInlineContent(potentialParent)||
(com.coremedia.dom.DomUtil.isElement(potentialParent,"PRE")&&
!com.coremedia.dom.DomUtil.isElement(potentialParent,"IMG|OBJECT|BIG|SMALL|SUB|SUP"))||
(com.coremedia.dom.DomUtil.isElement(potentialParent,"A")&&
!com.coremedia.dom.DomUtil.isElement(node,"A"));
if(com.coremedia.dom.HtmlDomUtil.isBlockLevelElement(node))
return com.coremedia.dom.HtmlDomUtil.allowsBlockContent(potentialParent);
if(com.coremedia.dom.HtmlDomUtil.isFlowLevelElement(node))
return com.coremedia.dom.HtmlDomUtil.allowsFlowContent(potentialParent);
if(com.coremedia.dom.DomUtil.isElement(potentialParent,"THEAD|TFOOT|TBODY"))
return com.coremedia.dom.DomUtil.isElement(node,"TR");
if(com.coremedia.dom.DomUtil.isElement(potentialParent,"TR"))
return com.coremedia.dom.DomUtil.isElement(node,"TH|TD");
if(com.coremedia.dom.DomUtil.isElement(potentialParent,"OL|UL"))
return com.coremedia.dom.DomUtil.isElement(node,"LI");
if(com.coremedia.dom.DomUtil.isElement(potentialParent,"DL"))
return com.coremedia.dom.DomUtil.isElement(node,"DD|DT");
if(com.coremedia.dom.DomUtil.isElement(potentialParent,"TABLE")){
if(com.coremedia.dom.DomUtil.isElement(node,"TFOOT|TBODY"))
return!insertionPoint||com.coremedia.dom.DomUtil.isElement(insertionPoint,"TBODY");
if(com.coremedia.dom.DomUtil.isElement(node,"THEAD"))
return!insertionPoint||com.coremedia.dom.DomUtil.isElement(insertionPoint,"TFOOT|TBODY");
if(com.coremedia.dom.DomUtil.isElement(node,"CAPTION"))
return!insertionPoint||
(com.coremedia.dom.DomUtil.isElement(insertionPoint,"COLGROUP|COL|THEAD|TBODY|TFOOT")&&
!insertionPoint.previousSibling);
if(com.coremedia.dom.DomUtil.isElement(node,"COLGROUP|COL"))
return!insertionPoint||
(com.coremedia.dom.DomUtil.isElement(insertionPoint,"THEAD|TBODY|TFOOT|"+node.nodeName)&&
(!insertionPoint.previousSibling||
com.coremedia.dom.DomUtil.isElement(insertionPoint.previousSibling,"CAPTION|"+node.nodeName)));
return false;
}
if(com.coremedia.dom.DomUtil.isElement(potentialParent,"COLGROUP"))
return com.coremedia.dom.DomUtil.isElement(node,"COL");
return false;
};








com.coremedia.dom.HtmlDomUtil.findInnermostLegalParent=function(node,
potentialParent,insertionPoint){
if(!potentialParent||!node)
return null;
if(com.coremedia.dom.HtmlDomUtil.isAllowedIn(node,potentialParent,insertionPoint))
return potentialParent;
return com.coremedia.dom.HtmlDomUtil.findInnermostLegalParent(node,potentialParent.parentNode);
};

com.coremedia.dom.HtmlDomUtil.isBlockLevelElement=function(node){
return com.coremedia.dom.DomUtil.isElement(node,com.coremedia.dom.HtmlDomUtil.blockLevelElementsRegExp);
};

com.coremedia.dom.HtmlDomUtil.isInlineLevelElement=function(node){
return com.coremedia.dom.DomUtil.isElement(node,com.coremedia.dom.HtmlDomUtil.inlineLevelElementsRegExp);
};

com.coremedia.dom.HtmlDomUtil.isFlowLevelElement=function(node){
return com.coremedia.dom.DomUtil.isElement(node,com.coremedia.dom.HtmlDomUtil.flowLevelElementsRegExp);
};

com.coremedia.dom.HtmlDomUtil.isFlowLevel=function(node){
return node&&(node.nodeType==Node.TEXT_NODE||
com.coremedia.dom.HtmlDomUtil.isFlowLevelElement(node));
};

com.coremedia.dom.HtmlDomUtil.isInlineLevel=function(node){
return node&&(node.nodeType==Node.TEXT_NODE||
com.coremedia.dom.HtmlDomUtil.isInlineLevelElement(node));
};




com.coremedia.dom.HtmlDomUtil.findNonInlineParent=function(node){
if(!node)
return null;
var parent=node.parentNode;
if(!parent||parent.nodeType!=Node.ELEMENT_NODE)
return null;
if(!com.coremedia.dom.HtmlDomUtil.isInlineLevelElement(parent))
return parent;
return com.coremedia.dom.HtmlDomUtil.findNonInlineParent(parent);
};








com.coremedia.dom.HtmlDomUtil.attributesEqual=function(element1,
element2,attributeNames){
if(attributeNames){
for(var i=0;i<attributeNames.length;i++){
var name=attributeNames[i];
if(name=="class"||name=="CLASS"){
var value1=com.coremedia.dom.HtmlDomUtil.getClassAttribute(element1);
var value2=com.coremedia.dom.HtmlDomUtil.getClassAttribute(element2);
var selectors1=com.coremedia.dom.HtmlDomUtil.parseStyleSelectors(value1);
var selectors2=com.coremedia.dom.HtmlDomUtil.parseStyleSelectors(value2);
if(selectors1.length!=selectors2.length)
return false;
for(var k=0;k<selectors1.length;k++){
if(selectors1[k]!=selectors2[k])
return false;
}
}else{
var value1=element1.getAttribute(name);
var value2=element2.getAttribute(name);
if((!value1&&value2)||
(value1&&!value2))
return false;
if(value1!=value2)
return false;
}
}
}
return true;
};

com.coremedia.dom.HtmlDomUtil._contains=function(array,item){
for(var i=0;i<array.length;i++){
if(array[i]==item){
return true;
}
}
return false;
};




com.coremedia.dom.HtmlDomUtil.containsSelector=function(element,selector){
var selectorString=com.coremedia.dom.HtmlDomUtil.getClassAttribute(element);
var selectors=com.coremedia.dom.HtmlDomUtil.parseStyleSelectors(selectorString);
return com.coremedia.dom.HtmlDomUtil._contains(selectors,selector);
};




com.coremedia.dom.HtmlDomUtil.addSelector=function(element,selector){
var selectorString=com.coremedia.dom.HtmlDomUtil.getClassAttribute(element);
var selectors=com.coremedia.dom.HtmlDomUtil.parseStyleSelectors(selectorString);

if(com.coremedia.dom.HtmlDomUtil._contains(selectors,selector)){
return;
}
selectors.splice(0,0,selector);
com.coremedia.dom.HtmlDomUtil.setClassAttribute(element,com.coremedia.dom.HtmlDomUtil.unparseStyleSelectors(selectors));
};




com.coremedia.dom.HtmlDomUtil.removeSelector=function(element,selector){
var selectors=com.coremedia.dom.HtmlDomUtil.parseStyleSelectors(com.coremedia.dom.HtmlDomUtil.getClassAttribute(element));
for(var i=0;i<selectors.length;i++){
if(selectors[i]==selector){
selectors.splice(i,1);
break;
}
}
com.coremedia.dom.HtmlDomUtil.setClassAttribute(element,com.coremedia.dom.HtmlDomUtil.unparseStyleSelectors(selectors));
};

com.coremedia.dom.HtmlDomUtil.setColSpan=function(cell,newValue){

if(newValue==1)
cell.removeAttribute("colSpan");
else
cell.colSpan=newValue;
return newValue;
};

com.coremedia.dom.HtmlDomUtil.setRowSpan=function(cell,newValue){
if(newValue==1)
cell.removeAttribute("rowSpan");
else
cell.rowSpan=newValue;

return newValue;
};

com.coremedia.dom.HtmlDomUtil.getElementSelector=function(elem){
var path="";
while(elem){
var selector=elem.nodeName.toLowerCase();
var clazz=this.getClassAttribute(elem);
if(clazz)
selector+="."+clazz;
var id=elem.getAttribute("id");
if(id)
selector+="#"+id;
path=selector+"\n"+path;
elem=elem.parentNode;
}
return path;
};


})();




_jsc_package(["com","coremedia","dom"]);

(function(){

var $=com.coremedia.dom.DomFormatter=com_coremedia_dom_DomFormatter=function(){
};$.constructorname='com.coremedia.dom.DomFormatter';$.superconstructor=Object;$=$.prototype=new Object();$.super$Object=Object;$.constructor=com.coremedia.dom.DomFormatter;




$.format=function(document,node){
if(!node)
return document.createTextNode("null");
else if(node==undefined)
return document.createTextNode("null");
else{
var ul=document.createElement("ul");
this._format(document,ul,node);
return ul;
}
};

$._format=function(document,targetElement,node){

var li=document.createElement("li");
targetElement.appendChild(li);
switch(node.nodeType){
case Node.ELEMENT_NODE:
var attributes=node.attributes;
for(var i=0;i<attributes.length;i++){
var attribute=attributes.item(i);
if(attribute.specified){
var name=attribute.nodeName;
var value=name=="class"
?com.coremedia.dom.HtmlDomUtil.getClassAttribute(node)
:node.getAttribute(name);
li.appendChild(document.createTextNode(" "+
name+
"=\""+
value+"\""));
}
}

default:
li.insertBefore(document.createTextNode(node.nodeName),li.firstChild);
var children=node.childNodes;
if(children.length>0){
var ul=document.createElement("ul");
li.appendChild(ul);
for(var i=0;i<children.length;i++){
var child=children[i];
this._format(document,ul,child);
}
}
break;
case Node.TEXT_NODE:
li.appendChild(document.createTextNode("\""+node.nodeValue+"\""));
break;
case Node.COMMENT_NODE:
li.appendChild(document.createTextNode("<!-- "+node.nodeValue+"-->"));
break;
}
};


})();




_jsc_package(["com","coremedia","dom"]);





(function(){

var $=com.coremedia.dom.DomElementAttributes=com_coremedia_dom_DomElementAttributes=function(element,attributes){
this._element=element;
this._attributes=attributes;
this._map=new Object();
this.reset();
};$.constructorname='com.coremedia.dom.DomElementAttributes';$.superconstructor=Object;$=$.prototype=new Object();$.super$Object=Object;$.constructor=com.coremedia.dom.DomElementAttributes;





com.coremedia.dom.DomElementAttributes._MAP_PREFIX="com_coremedia_dom_DomElementAttributes_";

$._getAttributeKey=function(name){
return com.coremedia.dom.DomElementAttributes._MAP_PREFIX+name;
};

$._setAttribute=function(name,value){
this._map[this._getAttributeKey(name)]=(value?value:"");
};






$.getAttribute=function(name){
var value=this._map[this._getAttributeKey(name)];
return value;
};




$.supportsAttribute=function(name){
for(var i=0;i<this._attributes.length;i++)
if(this._attributes[i]==name)
return true;
return false;
};






$.isElementChildOf=function(domElementAttributes){
if(typeof this._element.parentElement=="undefined")
return this._element.parentNode==domElementAttributes._element;
else
return this._element.parentElement==domElementAttributes._element;
};




$.isElementDescendantOf=function(domElementAttributes){
return com.coremedia.dom.DomUtil.isDescendantOf(this._element,domElementAttributes._element);
};




$.getElementName=function(){
return this._element.nodeName;
};






$.setAttribute=function(name,value){

this._setAttribute(name,value);
};





$.getAttributeNames=function(){
return this._attributes;
};





$.reset=function(){
var names=this.getAttributeNames();
for(var i=0;i<names.length;i++){
var name=names[i];
var value=name.search(new RegExp("^class$","i"))==0
?com.coremedia.dom.HtmlDomUtil.getClassAttribute(this._element)
:name=="valign"
?this._element.vAlign
:name.indexOf(':')>=0
?this._element.getAttribute(name)
:this._element[name];
if((name=="width"||name=="height")&&typeof value=="string"){

value=value.split("px")[0];
}
this._setAttribute(name,value);
}
};




$.save=function(){
var names=this.getAttributeNames();
var elements=[];

if(window.__wage__selectedElements)elements=window.__wage__selectedElements;
else elements.push(this._element);
for(var i=0;i<this._attributes.length;i++){
var name=names[i];
var value=this.getAttribute(name);
for(var j=0;j<elements.length;j++){
if(name.search(new RegExp("^class$","i"))==0){
com.coremedia.dom.HtmlDomUtil.setClassAttribute(elements[j],value);
}else if(name=="style"){

}else{
if(name=="valign"){
name="vAlign";
}
if(value&&value.length>0){
elements[j][name]=value;
}else{
elements[j][name]="";
elements[j].removeAttribute(name);
}
if(name=="width"||name=="height"){
if(typeof elements[j].style.removeAttribute=="function"){

elements[j].style.removeAttribute(name);
}else{
elements[j].style[name]="";
}
}
}
}
}
};


})();