//////////////////////////////DHTML GOODIES:LGPL license///////////////////
////////////////////////////menu for applications//////////////////////
var DHTMLSuite=new Object();
var standardObjectsCreated=false;
DHTMLSuite.eventElements=new Array();
DHTMLSuite.createStandardObjects=function(){
DHTMLSuite.clientInfoObj=new DHTMLSuite.clientInfo();
DHTMLSuite.clientInfoObj.init();
if(!DHTMLSuite.configObj){
DHTMLSuite.configObj=new DHTMLSuite.config();
DHTMLSuite.configObj.init();
}
DHTMLSuite.commonObj=new DHTMLSuite.common();
DHTMLSuite.variableStorage=new DHTMLSuite.globalVariableStorage();
DHTMLSuite.commonObj.init();
/**window.onunload=function(){
DHTMLSuite.commonObj.__clearGarbage();
};**/
standardObjectsCreated=true;
};
DHTMLSuite.config=function(){
var _1;
var _2;
};
DHTMLSuite.config.prototype={init:function(){
this.imagePath="scripts/images_dhtmlsuite/";
this.cssPath="css/";
},setCssPath:function(_3){
this.cssPath=_3;
},setImagePath:function(_4){
this.imagePath=_4;
}};
DHTMLSuite.globalVariableStorage=function(){
var _5;
this.menuBar_highlightedItems=new Array();
var _6;
this.arrayOfDhtmlSuiteObjects=new Array();
};
DHTMLSuite.globalVariableStorage.prototype={};
DHTMLSuite.common=function(){
var _7;
var _8;
var _9;
this.cssCacheStatus=true;
this.eventElements=new Array();
};
DHTMLSuite.common.prototype={init:function(){
this.loadedCSSFiles=new Array();
},loadCSS:function(_a){
if(!this.loadedCSSFiles[_a]){
this.loadedCSSFiles[_a]=true;
var _b=document.createElement("LINK");
if(!this.cssCacheStatus){
if(_a.indexOf("?")>=0){
_a=_a+"&";
}else{
_a=_a+"?";
}
_a=_a+"rand="+Math.random();
}
_b.href=DHTMLSuite.configObj.cssPath+_a;
_b.rel="stylesheet";
_b.media="screen";
_b.type="text/css";
document.getElementsByTagName("HEAD")[0].appendChild(_b);
}
},getTopPos:function(_c){
var _d=_c.offsetTop;
while((_c=_c.offsetParent)!=null){
if(_c.tagName!="HTML"){
_d+=(_c.offsetTop-_c.scrollTop);
if(document.all){
_d+=_c.clientTop;
}
}
}
return _d;
},setCssCacheStatus:function(_e){
this.cssCacheStatus=_e;
},getLeftPos:function(_f){
var _10=_f.offsetLeft;
while((_f=_f.offsetParent)!=null){
if(_f.tagName!="HTML"){
_10+=_f.offsetLeft;
if(document.all){
_10+=_f.clientLeft;
}
}
}
return _10;
},cancelEvent:function(){
return false;
},addEvent:function(_11,_12,_13){
if(_11.attachEvent){
_11["e"+_12+_13]=_13;
_11[_12+_13]=function(){
_11["e"+_12+_13](window.event);
};
_11.attachEvent("on"+_12,_11[_12+_13]);
}else{
_11.addEventListener(_12,_13,false);
}
this.__addEventElement(_11);
delete (_11);
},removeEvent:function(_14,_15,_16){
if(_14.detachEvent){
_14.detachEvent("on"+_15,_14[_15+_16]);
_14[_15+_16]=null;
}else{
_14.removeEventListener(_15,_16,false);
}
},__clearGarbage:function(){
if(!DHTMLSuite.clientInfoObj.isMSIE){
return;
}
for(var no in DHTMLSuite.variableStorage.arrayOfDhtmlSuiteObjects){
DHTMLSuite.variableStorage.arrayOfDhtmlSuiteObjects[no]=false;
}
for(var no=0;no<DHTMLSuite.eventElements.length;no++){
DHTMLSuite.eventElements[no].onclick=null;
DHTMLSuite.eventElements[no].onmousedown=null;
DHTMLSuite.eventElements[no].onmousemove=null;
DHTMLSuite.eventElements[no].onmouseout=null;
DHTMLSuite.eventElements[no].onmouseover=null;
DHTMLSuite.eventElements[no].onmouseup=null;
DHTMLSuite.eventElements[no].onfocus=null;
DHTMLSuite.eventElements[no].onblur=null;
DHTMLSuite.eventElements[no].onkeydown=null;
DHTMLSuite.eventElements[no].onkeypress=null;
DHTMLSuite.eventElements[no].onkeyup=null;
DHTMLSuite.eventElements[no].onselectstart=null;
DHTMLSuite.eventElements[no].ondragstart=null;
DHTMLSuite.eventElements[no].oncontextmenu=null;
DHTMLSuite.eventElements[no].onscroll=null;
}
//window.onunload=null;
DHTMLSuite=null;
},__addEventElement:function(el){
DHTMLSuite.eventElements[DHTMLSuite.eventElements.length]=el;
},getSrcElement:function(e){
var el;
if(e.target){
el=e.target;
}else{
if(e.srcElement){
el=e.srcElement;
}
}
if(el.nodeType==3){
el=el.parentNode;
}
return el;
}};
DHTMLSuite.clientInfo=function(){
var _1b;
var _1c;
var _1d;
var _1e;
var _1f;
};
DHTMLSuite.clientInfo.prototype={init:function(){
this.browser=navigator.userAgent;
this.isOpera=(this.browser.toLowerCase().indexOf("opera")>=0)?true:false;
this.isFirefox=(this.browser.toLowerCase().indexOf("firefox")>=0)?true:false;
this.isMSIE=(this.browser.toLowerCase().indexOf("msie")>=0)?true:false;
this.isSafari=(this.browser.toLowerCase().indexOf("safari")>=0)?true:false;
this.navigatorVersion=navigator.appVersion.replace(/.*?MSIE (\d\.\d).*/g,"$1")/1;
}};
DHTMLSuite.menuModelItem=function(){
var id;
var _21;
var _22;
var url;
var _24;
var _25;
var _26;
var _27;
var _28;
var _29;
var _2a;
var _2b;
var _2c;
var _2d;
this.state="regular";
};
DHTMLSuite.menuModelItem.prototype={setMenuVars:function(id,_2f,_30,url,_32,_33,_34,_35,_36){
this.id=id;
this.itemText=_2f;
this.itemIcon=_30;
this.url=url;
this.parentId=_32;
this.jsFunction=_34;
this.separator=false;
this.depth=false;
this.hasSubs=false;
this.helpText=_33;
this.submenuWidth=_36;
this.visible=true;
if(!_35){
if(this.parentId){
this.type="top";
}else{
this.type="sub";
}
}else{
this.type=_35;
}
},setAsSeparator:function(id,_38){
this.id=id;
this.parentId=_38;
this.separator=true;
this.visible=true;
if(this.parentId){
this.type="top";
}else{
this.type="sub";
}
},setVisibility:function(_39){
this.visible=_39;
},getState:function(){
return this.state;
},setState:function(_3a){
	
this.state=_3a;
},setSubMenuWidth:function(_3b){
this.submenuWidth=_3b;
},setIcon:function(_3c){
this.itemIcon=_3c;
},setText:function(_3d){
this.itemText=_3d;
}};
DHTMLSuite.menuModel=function(){
var _3e;
var _3f;
var _40;
var _41;
this.menuItems=new Array();
this.menuItemsOrder=new Array();
this.submenuType=new Array();
this.submenuType[1]="top";
for(var no=2;no<20;no++){
this.submenuType[no]="sub";
}
if(!standardObjectsCreated){
DHTMLSuite.createStandardObjects();
}
};
DHTMLSuite.menuModel.prototype={addItem:function(id,_44,_45,url,_47,_48,_49,_4a,_4b){
if(!id){
id=this.__getUniqueId();
}
this.menuItems[id]=new DHTMLSuite.menuModelItem();
this.menuItems[id].setMenuVars(id,_44,_45,url,_47,_48,_49,_4a,_4b);
this.menuItemsOrder[this.menuItemsOrder.length]=id;
return this.menuItems[id];
},addItemsFromMarkup:function(_4c){
if(!document.getElementById(_4c)){
alert("<UL> tag with id "+_4c+" does not exist");
return;
}
var _4d=document.getElementById(_4c);
var _4e=_4d.getElementsByTagName("LI");
for(var no=0;no<_4e.length;no++){
var id=_4e[no].id.replace(/[^0-9]/gi,"");
if(!id){
id=this.__getUniqueId();
}
this.menuItems[id]=new DHTMLSuite.menuModelItem();
this.menuItemsOrder[this.menuItemsOrder.length]=id;
var _51=0;
if(_4e[no].parentNode!=_4d){
_51=_4e[no].parentNode.parentNode.id;
}
var _52=_4e[no].getAttribute("itemType");
if(!_52){
_52=_4e[no].itemType;
}
if(_52=="separator"){
this.menuItems[id].setAsSeparator(id,_51);
continue;
}
if(_51){
_52="sub";
}else{
_52="top";
}
var _53=_4e[no].getElementsByTagName("A")[0];
if(!_53){
continue;
}
if(_53){
var _54=_53.innerHTML;
}
var _55=_4e[no].getAttribute("itemIcon");
var url=_53.href;
if(url=="#"||url.substr(url.length-1,1)=="#"){
url="";
}
var _57=_4e[no].getAttribute("jsFunction");
var _58=false;
var _59=_53.getAttribute("title");
if(!_59){
_59=_53.title;
}
this.menuItems[id].setMenuVars(id,_54,_55,url,_51,_59,_57,_52,_58);
}
var _5a=_4d.getElementsByTagName("UL");
for(var no=0;no<_5a.length;no++){
var _5b=_5a[no].getAttribute("width");
if(!_5b){
_5b=_5a[no].width;
}
if(_5b){
var id=_5a[no].parentNode.id.replace(/[^0-9]/gi,"");
this.setSubMenuWidth(id,_5b);
}
}
_4d.style.display="none";
},setSubMenuWidth:function(id,_5d){
this.menuItems[id].setSubMenuWidth(_5d);
},setMainMenuGroupWidth:function(_5e){
this.mainMenuGroupWidth=_5e;
},addSeparator:function(_5f){
id=this.__getUniqueId();
if(!_5f){
_5f=0;
}
this.menuItems[id]=new DHTMLSuite.menuModelItem();
this.menuItems[id].setAsSeparator(id,_5f);
this.menuItemsOrder[this.menuItemsOrder.length]=id;
return this.menuItems[id];
},init:function(){
this.__getDepths();
this.__setHasSubs();
},setMenuItemVisibility:function(id,_61){
this.menuItems[id].setVisibility(_61);
},setSubMenuType:function(_62,_63){
this.submenuType[_62]=_63;
},getItems:function(_64,_65){
if(!_64){
return this.menuItems;
}
if(!_65){
_65=new Array();
}
for(var no=0;no<this.menuItemsOrder.length;no++){
var id=this.menuItemsOrder[no];
if(!id){
continue;
}
if(this.menuItems[id].parentId==_64){
_65[_65.length]=this.menuItems[id];
if(this.menuItems[id].hasSubs){
return this.getItems(this.menuItems[id].id,_65);
}
}
}
return _65;
},__getUniqueId:function(){
var num=Math.random()+"";
num=num.replace(".","");
num="99"+num;
num=num/1;
while(this.menuItems[num]){
num=Math.random()+"";
num=num.replace(".","");
num=num/1;
}
return num;
},__getDepths:function(){
for(var no=0;no<this.menuItemsOrder.length;no++){
var id=this.menuItemsOrder[no];
if(!id){
continue;
}
this.menuItems[id].depth=1;
if(this.menuItems[id].parentId){
this.menuItems[id].depth=this.menuItems[this.menuItems[id].parentId].depth+1;
}
this.menuItems[id].type=this.submenuType[this.menuItems[id].depth];
}
},__setHasSubs:function(){
for(var no=0;no<this.menuItemsOrder.length;no++){
var id=this.menuItemsOrder[no];
if(!id){
continue;
}
if(this.menuItems[id].parentId){
this.menuItems[this.menuItems[id].parentId].hasSubs=1;
}
}
},__hasSubs:function(id){
for(var no=0;no<this.menuItemsOrder.length;no++){
var id=this.menuItemsOrder[no];
if(!id){
continue;
}
if(this.menuItems[id].parentId==id){
return true;
}
}
return false;
},__deleteChildNodes:function(_6f,_70){
var _71=new Array();
for(var _72=0;_72<this.menuItemsOrder.length;_72++){
var id=this.menuItemsOrder[_72];
if(!id){
continue;
}
if(this.menuItems[id].parentId==_6f&&_6f){
this.menuItems[id]=false;
_71[_71.length]=id;
this.__deleteChildNodes(id,true);
}
}
if(!_70){
for(var _72=0;_72<_71;_72++){
if(!_71[_72]){
continue;
}
this.__deleteItemFromItemOrderArray(_71[_72]);
}
}
this.__setHasSubs();
},__deleteANode:function(id){
this.menuItems[id]=false;
this.__deleteItemFromItemOrderArray(id);
},__deleteItemFromItemOrderArray:function(id){
for(var no=0;no<this.menuItemsOrder.length;no++){
var _77=this.menuItemsOrder[no];
if(!_77){
continue;
}
if(this.menuItemsOrder[no]==id){
this.menuItemsOrder.splice(no,1);
return;
}
}
},__appendMenuModel:function(_78,_79){
if(!_78){
return;
}
var _7a=_78.getItems();
for(var no=0;no<_78.menuItemsOrder.length;no++){
var id=_78.menuItemsOrder[no];
if(!id){
continue;
}
if(!_7a[id].parentId){
_7a[id].parentId=_79;
}
this.menuItems[id]=_7a[id];
for(var no2=0;no2<this.menuItemsOrder.length;no2++){
if(!this.menuItemsOrder[no2]){
continue;
}
if(this.menuItemsOrder[no2]==_7a[id].id){
this.menuItemsOrder.splice(no2,1);
}
}
this.menuItemsOrder[this.menuItemsOrder.length]=_7a[id].id;
}
this.__getDepths();
this.__setHasSubs();
}};
DHTMLSuite.menuItem=function(){
var _7e;
var _7f;
var _80;
var _81;
var _82;
this.layoutCSS="menu-item.css";
this.cssPrefix="DHTMLSuite_";
if(!standardObjectsCreated){
DHTMLSuite.createStandardObjects();
}
var _83;
this.objectIndex=DHTMLSuite.variableStorage.arrayOfDhtmlSuiteObjects.length;
};
DHTMLSuite.menuItem.prototype={createItem:function(_84){
DHTMLSuite.commonObj.loadCSS(this.layoutCSS);
DHTMLSuite.variableStorage.arrayOfDhtmlSuiteObjects[this.objectIndex]=this;
this.modelItemRef=_84;
this.divElement=document.createElement("DIV");
this.divElement.id="DHTMLSuite_menuItem"+_84.id;
this.divElement.className=this.cssPrefix+"menuItem_"+_84.type+"_regular";
this.divElement.onselectstart=function(){
return DHTMLSuite.commonObj.cancelEvent(false,this);
};
if(_84.helpText){
this.divElement.title=_84.helpText;
}
if(_84.type=="top"){
this.__createMenuElementsOfTypeTop(this.divElement);
}
if(_84.type=="sub"){
this.__createMenuElementsOfTypeSub(this.divElement);
}
if(_84.separator){
this.divElement.className=this.cssPrefix+"menuItem_separator_"+_84.type;
this.divElement.innerHTML="<span></span>";
}else{
var _85=this.objectIndex/1;
this.divElement.onclick=function(e){
DHTMLSuite.variableStorage.arrayOfDhtmlSuiteObjects[_85].__navigate(e);
};
this.divElement.onmousedown=this.__clickMenuItem;
this.divElement.onmouseup=this.__rolloverMenuItem;
this.divElement.onmouseover=this.__rolloverMenuItem;
this.divElement.onmouseout=this.__rolloutMenuItem;
DHTMLSuite.commonObj.__addEventElement(this.divElement);
}
return this.divElement;
},setLayoutCss:function(_87){
this.layoutCSS=_87;
},__createMenuElementsOfTypeTop:function(_88){
if(this.modelItemRef.itemIcon){
var _89=document.createElement("DIV");
_89.innerHTML="<img src=\""+this.modelItemRef.itemIcon+"\">";
_89.id="menuItemIcon"+this.modelItemRef.id;
_88.appendChild(_89);
}
if(this.modelItemRef.itemText){
var div=document.createElement("DIV");
div.innerHTML=this.modelItemRef.itemText;
div.className=this.cssPrefix+"menuItem_textContent";
div.id="menuItemText"+this.modelItemRef.id;
_88.appendChild(div);
}
var div=document.createElement("DIV");
div.className=this.cssPrefix+"menuItem_top_arrowShowSub";
div.id="DHTMLSuite_menuBar_arrow"+this.modelItemRef.id;
_88.appendChild(div);
this.expandElement=div;
if(!this.modelItemRef.hasSubs){
div.style.display="none";
}
},__createMenuElementsOfTypeSub:function(_8b){
if(this.modelItemRef.itemIcon){
_8b.style.backgroundImage="url('"+this.modelItemRef.itemIcon+"')";
_8b.style.backgroundRepeat="no-repeat";
_8b.style.backgroundPosition="left center";
}
if(this.modelItemRef.itemText){
var div=document.createElement("DIV");
div.className="DHTMLSuite_textContent";
div.innerHTML=this.modelItemRef.itemText;
div.className=this.cssPrefix+"menuItem_textContent";
div.id="menuItemText"+this.modelItemRef.id;
_8b.appendChild(div);
}
var div=document.createElement("DIV");
div.className=this.cssPrefix+"menuItem_sub_arrowShowSub";
_8b.appendChild(div);
div.id="DHTMLSuite_menuBar_arrow"+this.modelItemRef.id;
this.expandElement=div;
if(!this.modelItemRef.hasSubs){
div.style.display="none";
}else{
div.previousSibling.style.paddingRight="15px";
}
},setCssPrefix:function(_8d){
this.cssPrefix=_8d;
},setIcon:function(_8e){
this.modelItemRef.setIcon(_8e);
if(this.modelItemRef.type=="top"){
var div=document.getElementById("menuItemIcon"+this.modelItemRef.id);
var img=div.getElementsByTagName("IMG")[0];
if(!img){
img=document.createElement("IMG");
div.appendChild(img);
}
img.src=_8e;
if(!_8e){
img.parentNode.removeChild(img);
}
}
if(this.modelItemRef.type=="sub"){
this.divElement.style.backgroundImage="url('"+_8e+"')";
}
},setText:function(_91){
this.modelItemRef.setText(_91);
document.getElementById("menuItemText"+this.modelItemRef.id).innerHTML=_91;
},__clickMenuItem:function(){
this.className=this.className.replace("_regular","_click");
this.className=this.className.replace("_over","_click");
},__rolloverMenuItem:function(){
this.className=this.className.replace("_regular","_over");
this.className=this.className.replace("_click","_over");
},__rolloutMenuItem:function(){
this.className=this.className.replace("_over","_regular");

},setState:function(_92){
this.divElement.className=this.cssPrefix+"menuItem_"+this.modelItemRef.type+"_"+_92;
this.modelItemRef.setState(_92);
},getState:function(){
var _93=this.modelItemRef.getState();
if(!_93){
if(this.divElement.className.indexOf("_over")>=0){
_93="over";
}
if(this.divElement.className.indexOf("_click")>=0){
_93="click";
}
this.modelItemRef.setState(_93);
}
return _93;
},__setHasSub:function(_94){
this.modelItemRef.hasSubs=_94;
if(!_94){
document.getElementById(this.cssPrefix+"menuBar_arrow"+this.modelItemRef.id).style.display="none";
}else{
document.getElementById(this.cssPrefix+"menuBar_arrow"+this.modelItemRef.id).style.display="block";
}
},hide:function(){
this.modelItemRef.setVisibility(false);
this.divElement.style.display="none";
},show:function(){
	
this.modelItemRef.setVisibility(true);
this.divElement.style.display="block";
},__hideGroup:function(){
if(this.modelItemRef.parentId){
this.divElement.parentNode.style.visibility="hidden";
if(DHTMLSuite.clientInfoObj.isMSIE){
try{
var _95=this.divElement.parentNode.id.replace(/[^0-9]/gi,"");
document.getElementById("DHTMLSuite_menuBarIframe_"+_95).style.visibility="hidden";
}
catch(e){
}
}
}
},__navigate:function(e){
if(document.all){
e=event;
}
if(e){
var _97=DHTMLSuite.commonObj.getSrcElement(e);
if(_97.id.indexOf("arrow")>=0){
return;
}
}
if(this.modelItemRef.state=="disabled"){
return;
}
if(this.modelItemRef.url){
location.href=this.modelItemRef.url;
}
if(this.modelItemRef.jsFunction){
try{
eval(this.modelItemRef.jsFunction);
}
catch(e){
//alert(e);
//alert("Defined Javascript code for the menu item( "+this.modelItemRef.jsFunction+" ) cannot be executed");
}
}
}};
DHTMLSuite.menuBar=function(){
var _98;
var _99;
var _9a;
var _9b;
var _9c;
var _9d;
var _9e;
var _9f;
var _a0;
var _a1;
var _a2;
var _a3;
var _a4;
var _a5;
var _a6;
var _a7;
var _a8;
var _a9;
this.cssPrefix="DHTMLSuite_";
this.menuItemLayoutCss=false;
this.layoutCSS="menu-bar.css";
this.menuBarBackgroundImage="menu_strip_bg.jpg";
this.menuItem_objects=new Array();
DHTMLSuite.variableStorage.menuBar_highlightedItems=new Array();
this.menuBarState=false;
this.menuBarObj=false;
this.menuBarHeight=26;
this.submenuGroups=new Array();
this.submenuIframes=new Array();
this.targetId=false;
this.activeSubItemsOnMouseOver=false;
this.menuItemCssPrefix=false;
this.createIframesForOldIeBrowsers=true;
if(!standardObjectsCreated){
DHTMLSuite.createStandardObjects();
}
};
DHTMLSuite.menuBar.prototype={init:function(){
DHTMLSuite.commonObj.loadCSS(this.layoutCSS);
this.__createDivs();
this.__createMenuItems();
this.__setBasicEvents();
window.refToThismenuBar=this;
},setTarget:function(_aa){
this.targetId=_aa;
},setLayoutCss:function(_ab){
this.layoutCSS=_ab;
},setMenuItemLayoutCss:function(_ac){
this.menuItemLayoutCss=_ac;
},setCreateIframesForOldIeBrowsers:function(_ad){
this.createIframesForOldIeBrowsers=_ad;
},addMenuItems:function(_ae){
this.menuItemObj=_ae;
this.menuItems=_ae.getItems();
},setActiveSubItemsOnMouseOver:function(_af){

this.activeSubItemsOnMouseOver=_af;
},setMenuItemState:function(_b0,_b1){
	
this.menuItem_objects[_b0].setState(_b1);
},setMenuItemCssPrefix:function(_b2){
this.menuItemCssPrefix=_b2;
},setCssPrefix:function(_b3){
this.cssPrefix=_b3;
},replaceMenuItems:function(_b4,_b5){
this.hideSubMenus();
this.__deleteMenuItems(_b4);
this.menuItemObj.__appendMenuModel(_b5,_b4);
this.__clearAllMenuItems();
this.__createMenuItems();
},deleteMenuItems:function(_b6,_b7){
this.hideSubMenus();
this.__deleteMenuItems(_b6,_b7);
this.__clearAllMenuItems();
this.__createMenuItems();
},appendMenuItems:function(_b8,_b9){
this.hideSubMenus();
this.menuItemObj.__appendMenuModel(_b9,_b8);
this.__clearAllMenuItems();
this.__createMenuItems();
},hideMenuItem:function(id){
this.menuItem_objects[id].hide();
},showMenuItem:function(id){
this.menuItem_objects[id].show();
},setText:function(id,_bd){
this.menuItem_objects[id].setText(_bd);
},setIcon:function(id,_bf){
this.menuItem_objects[id].setIcon(_bf);
},__clearAllMenuItems:function(){
for(var _c0=0;_c0<this.menuItemObj.menuItemsOrder.length;_c0++){
var id=this.menuItemObj.menuItemsOrder[_c0];
if(this.submenuGroups[id]){
this.submenuGroups[id].parentNode.removeChild(this.submenuGroups[id]);
this.submenuGroups[id]=false;
}
if(this.submenuIframes[id]){
this.submenuIframes[id].parentNode.removeChild(this.submenuIframes[id]);
this.submenuIframes[id]=false;
}
}
this.menuBarObj.innerHTML="";
},__deleteMenuItems:function(_c2,_c3){
if(_c3){
this.menuItemObj.__deleteANode(_c2);
}
if(!this.submenuGroups[_c2]){
return;
}
this.menuItem_objects[_c2].__setHasSub(false);
this.menuItemObj.__deleteChildNodes(_c2);
var _c4=this.submenuGroups[_c2];
_c4.parentNode.removeChild(_c4);
if(this.submenuIframes[_c2]){
this.submenuIframes[_c2].parentNode.removeChild(this.submenuIframes[_c2]);
}
this.submenuGroups.splice(_c2,1);
this.submenuIframes.splice(_c2,1);
},__changeMenuBarState:function(){
	
var _c5=this.getAttribute("objectRef");
var obj=DHTMLSuite.variableStorage.arrayOfDhtmlSuiteObjects[_c5];
var _c7=this.id.replace(/[^0-9]/gi,"");
var _c8=obj.menuItem_objects[_c7].getState();
if(_c8=="disabled"){
return;
}
obj.menuBarState=!obj.menuBarState;
if(!obj.menuBarState){
obj.hideSubMenus();
}else{
obj.hideSubMenus();
obj.__expandGroup(_c7);
}
},__createDivs:function(){
window.refTomenuBar=this;
this.menuBarObj=document.createElement("DIV");
this.menuBarObj.className=this.cssPrefix+"menuBar_"+this.menuItemObj.submenuType[1];
if(!document.getElementById(this.targetId)){
alert("No target defined for the menu object");
return;
}
var _c9=document.getElementById(this.targetId);
_c9.appendChild(this.menuBarObj);
},hideSubMenus:function(e){
	
if(this&&this.tagName){
if(document.all){
e=event;
}
var _cb=DHTMLSuite.commonObj.getSrcElement(e);
if(_cb.tagName.toLowerCase()=="img"){
_cb=_cb.parentNode;
}
if(_cb.className){
try{
var _cc=_cb.className.indexOf("arrow");
if(_cc&&_cc>=0){
return;
}
}
catch(err){
}
}
}
for(var no=0;no<DHTMLSuite.variableStorage.menuBar_highlightedItems.length;no++){
DHTMLSuite.variableStorage.menuBar_highlightedItems[no].setState("regular");
DHTMLSuite.variableStorage.menuBar_highlightedItems[no].__hideGroup();

}
DHTMLSuite.variableStorage.menuBar_highlightedItems=new Array();
},__expandGroup:function(_ce){
var _cf=this.submenuGroups[_ce];
var _d0=_cf.getElementsByTagName("DIV")[0];
var _d1=_d0.id.replace(/[^0-9]/g,"");
_cf.style.visibility="visible";
if(this.submenuIframes[_ce]){
this.submenuIframes[_ce].style.visibility="visible";
}
DHTMLSuite.variableStorage.menuBar_highlightedItems[DHTMLSuite.variableStorage.menuBar_highlightedItems.length]=this.menuItem_objects[_d1];
this.__positionSubMenu(_ce);
if(DHTMLSuite.clientInfoObj.isOpera){
var _d0=_cf.getElementsByTagName("DIV")[0];
_d0.className=_d0.className.replace("_over","_over");
}
},__activateMenuElements:function(_d2,_d3,_d4,isMouseOver){
	
if(!this.menuBarState&&!this.activeSubItemsOnMouseOver){
return;
}

//debugger;
var _d5=_d2.id.replace(/[^0-9]/g,"");
var _d6=this.menuItem_objects[_d5].getState();
if(_d6=="disabled"){
return;
}
if(_d4&&DHTMLSuite.variableStorage.menuBar_highlightedItems.length>0){
this.hideSubMenus();
}
var _d7="over";
if(!_d4){
_d7="active";
}
var state=this.menuItem_objects[_d5].getState();
this.menuItem_objects[_d5].setState(_d7);
if(this.submenuGroups[_d5]){
this.__expandGroup(_d5);

}

DHTMLSuite.variableStorage.menuBar_highlightedItems[DHTMLSuite.variableStorage.menuBar_highlightedItems.length]=this.menuItem_objects[_d5];
if(_d3.menuItems[_d5].parentId){
this.__activateMenuElements(_d3.menuItem_objects[_d3.menuItems[_d5].parentId].divElement,_d3,false);
}
},__createMenuItems:function(){
if(!this.globalObjectIndex){
this.globalObjectIndex=DHTMLSuite.variableStorage.arrayOfDhtmlSuiteObjects.length;
}
var _d8=this.globalObjectIndex;
DHTMLSuite.variableStorage.arrayOfDhtmlSuiteObjects[_d8]=this;
var _d9=false;
var _da=document.getElementsByTagName("DIV");
if(_da.length>0){
_d9=_da[0];
}
for(var no=0;no<this.menuItemObj.menuItemsOrder.length;no++){
var _dc=this.menuItemObj.menuItemsOrder[no];
if(!this.menuItems[_dc].id){
continue;
}
this.menuItem_objects[this.menuItems[_dc].id]=new DHTMLSuite.menuItem();
if(this.menuItemCssPrefix){
this.menuItem_objects[this.menuItems[_dc].id].setCssPrefix(this.menuItemCssPrefix);
}
if(this.menuItemLayoutCss){
this.menuItem_objects[this.menuItems[_dc].id].setLayoutCss(this.menuItemLayoutCss);
}
var ref=this.menuItem_objects[this.menuItems[_dc].id].createItem(this.menuItems[_dc]);
if(!this.menuItems[_dc].separator){
DHTMLSuite.commonObj.addEvent(ref,"mouseover",function(){
	//DHTMLSuite.variableStorage.arrayOfDhtmlSuiteObjects[_d8].hideSubMenus();
	
DHTMLSuite.variableStorage.arrayOfDhtmlSuiteObjects[_d8].__activateMenuElements(this,DHTMLSuite.variableStorage.arrayOfDhtmlSuiteObjects[_d8],true,true);

});
}
if(this.menuItem_objects[this.menuItems[_dc].id].expandElement){
var _de=this.menuItem_objects[this.menuItems[_dc].id].expandElement;
var _df=DHTMLSuite.variableStorage.arrayOfDhtmlSuiteObjects[_d8].menuItems[_dc].parentId+"";
var _e0=_de.id.replace(/[^0-9]/gi,"");
_de.setAttribute("objectRef",_d8);
_de.objectRef=_d8;
_de.onclick=this.__changeMenuBarState;
}
var _e1=this.menuBarObj;
if(this.menuItems[_dc].depth==1&&this.menuItemObj.submenuType[this.menuItems[_dc].depth]!="top"&&this.menuItemObj.mainMenuGroupWidth){
var _e2=this.menuItemObj.mainMenuGroupWidth+"";
if(_e2.indexOf("%")==-1){
_e2=_e2+"px";
}
_e1.style.width=_e2;
}
if(this.menuItems[_dc].depth=="1"){
if(this.menuItemObj.submenuType[this.menuItems[_dc].depth]=="top"){
ref.style.styleFloat="left";
ref.style.cssText="float:left";
}
}else{
if(!this.menuItems[_dc].depth){
alert("Error in menu model(depth not defined for a menu item). Remember to call the init() method for the menuModel object.");
return;
}
if(!this.submenuGroups[this.menuItems[_dc].parentId]){
this.submenuGroups[this.menuItems[_dc].parentId]=document.createElement("DIV");
this.submenuGroups[this.menuItems[_dc].parentId].style.zIndex=10000;
this.submenuGroups[this.menuItems[_dc].parentId].id="DHTMLSuite_menuBarSubGroup"+this.menuItems[_dc].parentId;
this.submenuGroups[this.menuItems[_dc].parentId].style.visibility="hidden";
if(this.menuItemObj.submenuType[this.menuItems[_dc].depth]=="sub"){
this.submenuGroups[this.menuItems[_dc].parentId].className=this.cssPrefix+"menuBar_sub";
}
if(_d9){
_d9.parentNode.insertBefore(this.submenuGroups[this.menuItems[_dc].parentId],_d9);
}else{
document.body.appendChild(this.submenuGroups[this.menuItems[_dc].parentId]);
}
if(DHTMLSuite.clientInfoObj.isMSIE&&this.createIframesForOldIeBrowsers){
this.submenuIframes[this.menuItems[_dc].parentId]=document.createElement("<IFRAME src=\"about:blank\" frameborder=0>");
this.submenuIframes[this.menuItems[_dc].parentId].id="DHTMLSuite_menuBarIframe_"+this.menuItems[_dc].parentId;
this.submenuIframes[this.menuItems[_dc].parentId].style.position="absolute";
this.submenuIframes[this.menuItems[_dc].parentId].style.zIndex=9000;
this.submenuIframes[this.menuItems[_dc].parentId].style.visibility="hidden";
if(_d9){
_d9.parentNode.insertBefore(this.submenuIframes[this.menuItems[_dc].parentId],_d9);
}else{
document.body.appendChild(this.submenuIframes[this.menuItems[_dc].parentId]);
}
}
}
_e1=this.submenuGroups[this.menuItems[_dc].parentId];
}
_e1.appendChild(ref);
if(this.menuItems[_dc].visible==false){
this.hideMenuItem(this.menuItems[_dc].id);
}
if(this.menuItems[_dc].state!="regular"){
this.menuItem_objects[this.menuItems[_dc].id].setState(this.menuItems[_dc].state);
}
}
this.__setSizeOfAllSubMenus();
this.__positionAllSubMenus();
if(DHTMLSuite.clientInfoObj.isOpera){
this.__fixLayoutOpera();
}
},__fixLayoutOpera:function(){
for(var no=0;no<this.menuItemObj.menuItemsOrder.length;no++){
var id=this.menuItemObj.menuItemsOrder[no];
if(!id){
continue;
}
this.menuItem_objects[id].divElement.className=this.menuItem_objects[id].divElement.className.replace("_regular","_regular");
}
},__setSizeOfAllSubMenus:function(){
for(var _e5 in this.submenuGroups){
this.__setSizeOfSubMenus(_e5);
}
},__positionAllSubMenus:function(){
for(var _e6 in this.submenuGroups){
this.__positionSubMenu(_e6);
}
},__positionSubMenu:function(_e7){
try{
var _e8=this.submenuGroups[_e7];
var _e9=this.menuItems[_e7].depth;
var dir=this.menuItemObj.submenuType[_e9];
if(dir=="top"){
_e8.style.left=DHTMLSuite.commonObj.getLeftPos(this.menuItem_objects[_e7].divElement)+"px";
_e8.style.top=(DHTMLSuite.commonObj.getTopPos(this.menuItem_objects[_e7].divElement)+this.menuItem_objects[_e7].divElement.offsetHeight)+"px";
}else{
_e8.style.left=(DHTMLSuite.commonObj.getLeftPos(this.menuItem_objects[_e7].divElement)+this.menuItem_objects[_e7].divElement.offsetWidth)+"px";
_e8.style.top=(DHTMLSuite.commonObj.getTopPos(this.menuItem_objects[_e7].divElement))+"px";
}
if(DHTMLSuite.clientInfoObj.isMSIE){
var _eb=this.submenuIframes[_e7];
_eb.style.left=_e8.style.left;
_eb.style.top=_e8.style.top;
_eb.style.width=_e8.clientWidth+"px";
_eb.style.height=_e8.clientHeight+"px";
}
}
catch(e){
}
},__setSizeOfSubMenus:function(_ec){
try{
var _ed=this.submenuGroups[_ec];
var _ee=Math.max(_ed.offsetWidth,this.menuItem_objects[_ec].divElement.offsetWidth);
if(this.menuItems[_ec].submenuWidth){
_ee=this.menuItems[_ec].submenuWidth;
}
_ee=_ee+"";
if(_ee.indexOf("%")==-1){
_ee=_ee+"px";
}
_ed.style.width=_ee;
if(DHTMLSuite.clientInfoObj.isMSIE){
this.submenuIframes[_ec].style.width=_ed.style.width;
this.submenuIFrames[_ec].style.height=_ed.style.height;
}
}
catch(e){
}
},__repositionMenu:function(_ef){
_ef.menuBarObj.style.top=document.documentElement.scrollTop+"px";
},__menuItemRollOver:function(_f0){

var _f1=_f0.id.replace(/[^0-9]/g,"");
_f0.className="DHTMLSuite_menuBar_menuItem_over_"+this.menuItems[_f1]["depth"];
},__menuItemRollOut:function(_f2){
var _f3=_f2.id.replace(/[^0-9]/g,"");
_f2.className="DHTMLSuite_menuBar_menuItem_"+this.menuItems[_f3]["depth"];

},__menuNavigate:function(_f4){
var _f5=_f4.id.replace(/[^0-9]/g,"");
var url=this.menuItems[_f5]["url"];
if(!url){
return;
}
alert(this.menuItems[_f5]["url"]);
}

,__setBasicEvents:function(){

//DHTMLSuite.commonObj.addEvent(document.documentElement,"click",this.setActiveactiveSubItemsOnMouseOver);
DHTMLSuite.commonObj.addEvent(document.documentElement,"click",this.hideSubMenus);


//DHTMLSuite.commonObj.addEvent(this.menuBarObj,"mouseout",this.hideSubMenus);



}


};
////////////////////////////////////////DHTML GOODIES/////////////////////////////////////
/////////////////////////////////////////////DRAG DROP////////////////////////////////////

var standardObjectsCreatedDD = false;	// The classes below will check this variable, if it is false, default help objects will be created
var clientInfoObj;	// Object of class DHTMLgoodies_clientInfo
var dhtmlSuiteConfigObj = false; 	// Object of class DHTMLgoodies_config
var dhtmlSuiteCommonObj;	// Object of class DHTMLgoodies_common

// {{{ DHTMLgoodies_createStandardObjects()
/**
 * Create objects used by all scripts
 *
 * @public
 */
    
function DHTMLgoodies_createStandardObjects()
{
	clientInfoObj = new DHTMLgoodies_clientInfo();	// Create browser info object
	clientInfoObj.init();	
	if(!dhtmlSuiteConfigObj){	// If this object isn't allready created, create it.
		dhtmlSuiteConfigObj = new DHTMLgoodies_config();	// Create configuration object.
		dhtmlSuiteConfigObj.init();
	}
	dhtmlSuiteCommonObj = new DHTMLgoodies_common();	// Create configuration object.
	dhtmlSuiteCommonObj.init();
}


// {{{ DHTMLgoodies_config()
/**
 * Constructor
 *
 * @public
 */
function DHTMLgoodies_config()
{
	var imagePath;	// Path to images used by the classes. 
	var cssPath;	// Path to CSS files used by the DHTML suite.		
}


DHTMLgoodies_config.prototype = {
	// {{{ init()
	/**
	 *
	 * @public
	 */
	init : function()
	{
		this.imagePath = 'images_dhtmlsuite/';	// Path to images		
		this.cssPath = 'css_dhtmlsuite/';	// Path to images		
	}	
	// }}}
	,
	// {{{ setCssPath()
    /**
     * This method will save a new CSS path, i.e. where the css files of the dhtml suite are located.
     *
     * @param string newCssPath = New path to css files
     * @public
     */
    	
	setCssPath : function(newCssPath)
	{
		this.cssPath = newCssPath;
	}
	// }}}
	,
	// {{{ setImagePath()
    /**
     * This method will save a new image file path, i.e. where the image files used by the dhtml suite ar located
     *
     * @param string newImagePath = New path to image files
     * @public
     */
	setImagePath : function(newImagePath)
	{
		this.imagePath = newImagePath;
	}
	// }}}
}


// {{{ DHTMLgoodies_common()
/**
 * Constructor
 *
 */
function DHTMLgoodies_common()
{
	var loadedCSSFiles;	// Array of loaded CSS files. Prevent same CSS file from being loaded twice.
}

DHTMLgoodies_common.prototype = {
	
	// {{{ init()
    /**
     * This method initializes the DHTMLgoodies_common object.
     *
     * @public
     */
    	
	init : function()
	{
		this.loadedCSSFiles = new Array();
	}	
	// }}}
	,
	// {{{ getTopPos()
    /**
     * This method will return the top coordinate(pixel) of an object
     *
     * @param Object inputObj = Reference to HTML element
     * @public
     */	
	getTopPos : function(inputObj)
	{		
	  var returnValue = inputObj.offsetTop;
	  while((inputObj = inputObj.offsetParent) != null){
	  	if(inputObj.tagName!='HTML'){
	  		returnValue += inputObj.offsetTop;
	  		if(document.all)returnValue+=inputObj.clientTop;
	  	}
	  } 
	  return returnValue;
	}
	// }}}
	
	,
	// {{{ getLeftPos()
    /**
     * This method will return the left coordinate(pixel) of an object
     *
     * @param Object inputObj = Reference to HTML element
     * @public
     */	
	getLeftPos : function(inputObj)
	{	  
	  var returnValue = inputObj.offsetLeft;
	  while((inputObj = inputObj.offsetParent) != null){
	  	if(inputObj.tagName!='HTML'){
	  		returnValue += inputObj.offsetLeft;
	  		if(document.all)returnValue+=inputObj.clientLeft;
	  	}
	  }
	  return returnValue;
	}
	// }}}
	,
	// {{{ cancelEvent()
    /**
     *
     *  This function only returns false. It is used to cancel selections and drag
     *
     * 
     * @public
     */	
    	
	cancelEvent : function()
	{
		return false;
	}
	// }}}	
	
}



function DHTMLgoodies_clientInfo()
{
	var browser;			// Complete user agent information
	
	var isOpera;			// Is the browser "Opera"
	var isMSIE;				// Is the browser "Internet Explorer"	
	var isFirefox;			// Is the browser "Firefox"
	var navigatorVersion;	// Browser version
}
	
DHTMLgoodies_clientInfo.prototype = {
	
	/**
	* 	Constructor
	*	Params: 		none:
	*  	return value: 	none;
	**/
	// {{{ init()
    /**
     *
	 *
     *  This method initializes the script
     *
     * 
     * @public
     */	
    	
	init : function()
	{
		this.browser = navigator.userAgent;	
		this.isOpera = (this.browser.toLowerCase().indexOf('opera')>=0)?true:false;
		this.isFirefox = (this.browser.toLowerCase().indexOf('firefox')>=0)?true:false;
		this.isMSIE = (this.browser.toLowerCase().indexOf('msie')>=0)?true:false;
		this.navigatorVersion = navigator.appVersion.replace(/.*?MSIE (\d\.\d).*/g,'$1')/1;
	}	
	// }}}		
}



var referenceToDragDropObject;	// A reference to an object of the class below. 

/* 
Constructor 
*/
function DHTMLgoodies_dragDrop()
{
	var mouse_x;					// mouse x position when drag is started
	var mouse_y;					// mouse y position when drag is started.
	
	var el_x;						// x position of dragable element
	var el_y;						// y position of dragable element
	
	var dragDropTimer;				// Timer - short delay from mouse down to drag init.
	var numericIdToBeDragged;		// numeric reference to element currently being dragged.
	var dragObjCloneArray;			// Array of cloned dragable elements. every
	var dragDropSourcesArray;		// Array of source elements, i.e. dragable elements.
	var dragDropTargetArray;		// Array of target elements, i.e. elements where items could be dropped.
	var currentZIndex;				// Current z index. incremented on each drag so that currently dragged element is always on top.
	var okToStartDrag;				// Variable which is true or false. It would be false for 1/100 seconds after a drag has been started.
									// This is useful when you have nested dragable elements. It prevents the drag process from staring on
									// parent element when you click on dragable sub element.
	var moveBackBySliding;			// Variable indicating if objects should slide into place moved back to their location without any slide animation.
}

DHTMLgoodies_dragDrop.prototype = {
	
	// {{{ init()
    /**
     * Initialize the script
     * This method should be called after you have added sources and destinations.
     * 
     * @public
     */	
	init : function()
	{
		if(!standardObjectsCreatedDD)DHTMLgoodies_createStandardObjects();	// This line starts all the init methods
		this.currentZIndex = 10000;
		this.dragDropTimer = -1;
		this.dragObjCloneArray = new Array();
		this.numericIdToBeDragged = false;	
		this.__initDragDropScript();	
		referenceToDragDropObject = this;	
		this.okToStartDrag = true;
		this.moveBackBySliding = true;
	}
	// }}}	
	,
	// {{{ addSource()
    /**
     * Add dragable element
     *
     * @param String sourceId = Id of source
     * @param boolean slideBackAfterDrop = Slide the item back to it's original location after drop.
     * @param boolean xAxis = Allowed to slide along the x-axis(default = true, i.e. if omitted).
     * @param boolean yAxis = Allowed to slide along the y-axis(default = true, i.e. if omitted).
     * @param String dragOnlyWithinElId = You will only allow this element to be dragged within the boundaries of the element with this id.
     * @param String functionToCallOnDrag = Function to call when drag is initiated. id of element(clone and orig) will be passed to this function . clone is a copy of the element created by this script. The clone is what you see when drag is in process.
     * 
     * @public
     */	
	addSource : function(sourceId,slideBackAfterDrop,xAxis,yAxis,dragOnlyWithinElId,functionToCallOnDrag)
	{
		if(!functionToCallOnDrag)functionToCallOnDrag=false;
		if(!this.dragDropSourcesArray)this.dragDropSourcesArray = new Array();
		if(!document.getElementById(sourceId))alert('The source element with id ' + sourceId + ' does not exists');
		var obj = document.getElementById(sourceId);
		
		if(xAxis!==false)xAxis = true;
		if(yAxis!==false)yAxis = true;
				
		this.dragDropSourcesArray[this.dragDropSourcesArray.length]  = [obj,slideBackAfterDrop,xAxis,yAxis,dragOnlyWithinElId,functionToCallOnDrag];	
		obj.setAttribute('dragableElement',this.dragDropSourcesArray.length-1);
		obj.dragableElement = this.dragDropSourcesArray.length-1;
		
	}
	// }}}	
	,
	// {{{ addTarget()
    /**
     * Add drop target
     *
     * @param String targetId = Id of drop target
     * @param String functionToCallOnDrop = name of function to call on drop. 
	 *		Input to this the function specified in functionToCallOnDrop function would be 
	 *		id of dragged element 
	 *		id of the element the item was dropped on.
	 *		mouse x coordinate when item was dropped
	 *		mouse y coordinate when item was dropped     
     * 
     * @public
     */	
	addTarget : function(targetId,functionToCallOnDrop)
	{
		if(!this.dragDropTargetArray)this.dragDropTargetArray = new Array();
		if(!document.getElementById(targetId))alert('The target element with id ' + targetId + ' does not exists');
		var obj = document.getElementById(targetId);
		this.dragDropTargetArray[this.dragDropTargetArray.length]  = [obj,functionToCallOnDrop];		
	}
	// }}}	
	,
	
	// {{{ setSlide()
    /**
     * Activate or deactivate sliding animations.
     *
     * @param boolean slide = Move element back to orig. location in a sliding animation
     * 
     * @public
     */	
	setSlide : function(slide)
	{
		this.moveBackBySliding = slide;	
		
	}
	// }}}	
	,
	
	/* Start private methods */
	
	// {{{ __initDragDropScript()
    /**
     * Initialize drag drop script - this method is called by the init() method.
     * 
     * @private
     */	
	__initDragDropScript : function()
	{
		var refToThis = this;
		for(var no=0;no<this.dragDropSourcesArray.length;no++){
			var el = this.dragDropSourcesArray[no][0].cloneNode(true);
			el.onmousedown =this.__initDragDropElement;		
			el.id = 'DHTMLgoodies_dragableElement' + no;
			el.style.position='absolute';
			el.style.visibility='hidden';
			el.style.display='none';			

			this.dragDropSourcesArray[no][0].parentNode.insertBefore(el,this.dragDropSourcesArray[no][0]);
			
			el.style.top = dhtmlSuiteCommonObj.getTopPos(this.dragDropSourcesArray[no][0]) + 'px';
			el.style.left = dhtmlSuiteCommonObj.getLeftPos(this.dragDropSourcesArray[no][0]) + 'px';
					
			this.dragDropSourcesArray[no][0].onmousedown =this.__initDragDropElement;
										
			this.dragObjCloneArray[no] = el; 
		}
		
		document.documentElement.onmousemove = this.__moveDragableElement;
		document.documentElement.onmouseup = this.__stop_dragDropElement;
		document.documentElement.onselectstart = function() { return refToThis.__cancelSelectionEvent(false,this) };
		document.documentElement.ondragstart = function() { return dhtmlSuiteCommonObj.cancelEvent(false,this) };		
	}	
	// }}}	
	,	
	
	// {{{ __initDragDropElement()
    /**
     * Initialize drag process
     *
     * @param Event e = Event object, used to get x and y coordinate of mouse pointer
     * 
     * @private
     */	
	// {{{ __initDragDropElement()
    /**
     * Initialize drag process
     *
     * @param Event e = Event object, used to get x and y coordinate of mouse pointer
     * 
     * @private
     */	
	__initDragDropElement : function(e)
	{
		if(!referenceToDragDropObject.okToStartDrag)return;
		referenceToDragDropObject.okToStartDrag = false;
		setTimeout('referenceToDragDropObject.okToStartDrag = true;',100);
		if(document.all)e = event;
		referenceToDragDropObject.numericIdToBeDragged = this.getAttribute('dragableElement');
		referenceToDragDropObject.numericIdToBeDragged = referenceToDragDropObject.numericIdToBeDragged + '';
		if(referenceToDragDropObject.numericIdToBeDragged=='')referenceToDragDropObject.numericIdToBeDragged = this.dragableElement;
		referenceToDragDropObject.dragDropTimer=0;
		
		referenceToDragDropObject.mouse_x = e.clientX;
		referenceToDragDropObject.mouse_y = e.clientY;
		
		referenceToDragDropObject.currentZIndex = referenceToDragDropObject.currentZIndex + 1;
		
		referenceToDragDropObject.dragObjCloneArray[referenceToDragDropObject.numericIdToBeDragged].style.zIndex = referenceToDragDropObject.currentZIndex;
		
		referenceToDragDropObject.currentEl_allowX = referenceToDragDropObject.dragDropSourcesArray[referenceToDragDropObject.numericIdToBeDragged][2];
		referenceToDragDropObject.currentEl_allowY = referenceToDragDropObject.dragDropSourcesArray[referenceToDragDropObject.numericIdToBeDragged][3];

		var parentEl = referenceToDragDropObject.dragDropSourcesArray[referenceToDragDropObject.numericIdToBeDragged][4];
		referenceToDragDropObject.drag_minX = false;
		referenceToDragDropObject.drag_minY = false;
		referenceToDragDropObject.drag_maxX = false;
		referenceToDragDropObject.drag_maxY = false;
		if(parentEl){
			var obj = document.getElementById(parentEl);
			if(obj){
				referenceToDragDropObject.drag_minX = dhtmlSuiteCommonObj.getLeftPos(obj);
				referenceToDragDropObject.drag_minY = dhtmlSuiteCommonObj.getTopPos(obj);
				referenceToDragDropObject.drag_maxX = referenceToDragDropObject.drag_minX + obj.clientWidth;
				referenceToDragDropObject.drag_maxY = referenceToDragDropObject.drag_minY + obj.clientHeight;				
			}		
		}
		
		
		
		
		// Reposition dragable element
		if(referenceToDragDropObject.dragDropSourcesArray[referenceToDragDropObject.numericIdToBeDragged][1]){
			referenceToDragDropObject.dragObjCloneArray[referenceToDragDropObject.numericIdToBeDragged].style.top = dhtmlSuiteCommonObj.getTopPos(referenceToDragDropObject.dragDropSourcesArray[referenceToDragDropObject.numericIdToBeDragged][0]) + 'px';
			referenceToDragDropObject.dragObjCloneArray[referenceToDragDropObject.numericIdToBeDragged].style.left = dhtmlSuiteCommonObj.getLeftPos(referenceToDragDropObject.dragDropSourcesArray[referenceToDragDropObject.numericIdToBeDragged][0]) + 'px';
		}
		referenceToDragDropObject.el_x = referenceToDragDropObject.dragObjCloneArray[referenceToDragDropObject.numericIdToBeDragged].style.left.replace('px','')/1;
		referenceToDragDropObject.el_y = referenceToDragDropObject.dragObjCloneArray[referenceToDragDropObject.numericIdToBeDragged].style.top.replace('px','')/1;

		
				
		referenceToDragDropObject.__timerDragDropElement();
		

		
		return false;
	}	
	// }}}	
	,
	
	// {{{ __timerDragDropElement()
    /**
     * A small delay from mouse down to drag starts 
     * 
     * @private
     */	
	__timerDragDropElement : function()
	{
		window.thisRef = this;
		if(this.dragDropTimer>=0 && this.dragDropTimer<5){
			this.dragDropTimer = this.dragDropTimer + 1;
			setTimeout('window.thisRef.__timerDragDropElement()',2);
			return;			
		}
		if(this.dragDropTimer>=5){
			if(this.dragObjCloneArray[this.numericIdToBeDragged].style.display=='none'){
				this.dragDropSourcesArray[this.numericIdToBeDragged][0].style.visibility = 'hidden';
				this.dragObjCloneArray[this.numericIdToBeDragged].style.display = 'block';
				this.dragObjCloneArray[this.numericIdToBeDragged].style.visibility = 'visible';
				this.dragObjCloneArray[this.numericIdToBeDragged].style.top = ((dhtmlSuiteCommonObj.getTopPos(this.dragDropSourcesArray[this.numericIdToBeDragged][0])*1)+10) + 'px';
				this.dragObjCloneArray[this.numericIdToBeDragged].style.left = ((dhtmlSuiteCommonObj.getLeftPos(this.dragDropSourcesArray[this.numericIdToBeDragged][0])*1)+10) + 'px';
			}
		
			if(this.dragDropSourcesArray[referenceToDragDropObject.numericIdToBeDragged][5]){
				var id1 = this.dragObjCloneArray[this.numericIdToBeDragged].id + '';
				var id2 = this.dragDropSourcesArray[this.numericIdToBeDragged][0].id + '';
				
				var string = this.dragDropSourcesArray[referenceToDragDropObject.numericIdToBeDragged][5] + '("' + id1 + '","' + id2 + '")';
				eval(string);
			}			
		}		
	}	
	// }}}	
	,
	
	// {{{ __cancelSelectionEvent()
    /**
     * Cancel text selection when drag is in progress
     * 
     * @private
     */	
	__cancelSelectionEvent : function()
	{
		if(this.dragDropTimer>=0)return false;
		return true;
	}	
	// }}}	
	,
	
	// {{{ __moveDragableElement()
    /**
     * Move dragable element according to mouse position when drag is in process.
     *
     * @param Event e = Event object, used to get x and y coordinate of mouse pointer
     * 
     * @private
     */	
	__moveDragableElement : function(e)
	{
		if(document.all)e = event;
		if(referenceToDragDropObject.dragDropTimer<5)return;	
		var dragObj = referenceToDragDropObject.dragObjCloneArray[referenceToDragDropObject.numericIdToBeDragged];
		
		if(referenceToDragDropObject.currentEl_allowX){			
			
			var leftPos = (e.clientX - referenceToDragDropObject.mouse_x + referenceToDragDropObject.el_x);
			if(referenceToDragDropObject.drag_maxX){
				var tmpMaxX = referenceToDragDropObject.drag_maxX - dragObj.offsetWidth;
				if(leftPos > tmpMaxX)leftPos = tmpMaxX
				if(leftPos < referenceToDragDropObject.drag_minX)leftPos = referenceToDragDropObject.drag_minX;				
			}
			dragObj.style.left = leftPos + 'px'; 
		
		}	
		if(referenceToDragDropObject.currentEl_allowY){
			var topPos = (e.clientY - referenceToDragDropObject.mouse_y + referenceToDragDropObject.el_y);
			if(referenceToDragDropObject.drag_maxY){	
				var tmpMaxY = referenceToDragDropObject.drag_maxY - dragObj.offsetHeight;		
				if(topPos > tmpMaxY)topPos = tmpMaxY;
				if(topPos < referenceToDragDropObject.drag_minY)topPos = referenceToDragDropObject.drag_minY;	
				
			}			
			
			dragObj.style.top = topPos + 'px'; 
		}
		
	}
	// }}}	
	,
	
	// {{{ __stop_dragDropElement()
    /**
     * Drag process stopped.
     * Note! In this method "this" refers to the element being dragged. referenceToDragDropObject refers to the dragDropObject.
     *
     * @param Event e = Event object, used to get x and y coordinate of mouse pointer
     * 
     * @private
     */	
	__stop_dragDropElement : function(e)
	{
		if(referenceToDragDropObject.dragDropTimer<5)return;
		if(document.all)e = event;
			
		/** cumulatelabs commented 
		if (e.target) dropDestination = e.target;
			else if (e.srcElement) dropDestination = e.srcElement;
			if (dropDestination.nodeType == 3) // defeat Safari bug
				dropDestination = dropDestination.parentNode;	**/
		
		
		var leftPosMouse = e.clientX + Math.max(document.body.scrollLeft,document.documentElement.scrollLeft);
		var topPosMouse = e.clientY + Math.max(document.body.scrollTop,document.documentElement.scrollTop);
		
		if(!referenceToDragDropObject.dragDropTargetArray)referenceToDragDropObject.dragDropTargetArray = new Array();
		// Loop through drop targets and check if the coordinate of the mouse is over it. If it is, call specified drop function.
		var dropSuccessful=false;
		for(var no=0;no<referenceToDragDropObject.dragDropTargetArray.length;no++){
			var leftPosEl = dhtmlSuiteCommonObj.getLeftPos(referenceToDragDropObject.dragDropTargetArray[no][0]);
			var topPosEl = dhtmlSuiteCommonObj.getTopPos(referenceToDragDropObject.dragDropTargetArray[no][0]);
			var widthEl = referenceToDragDropObject.dragDropTargetArray[no][0].offsetWidth;
			var heightEl = referenceToDragDropObject.dragDropTargetArray[no][0].offsetHeight;
			
			if(leftPosMouse > leftPosEl && leftPosMouse < (leftPosEl + widthEl) && topPosMouse > topPosEl && topPosMouse < (topPosEl + heightEl)){
				if(referenceToDragDropObject.dragDropTargetArray[no][1])
				{
					eval(referenceToDragDropObject.dragDropTargetArray[no][1] + '("' + referenceToDragDropObject.dragDropSourcesArray[referenceToDragDropObject.numericIdToBeDragged][0].id + '","' + referenceToDragDropObject.dragDropTargetArray[no][0].id + '",' + e.clientX + ',' + e.clientY + ')');
					dropSuccesful=false;
				}
				break;
			}			
		}
		//CUMULATE DRAW MODIFIED TO CALL CUSTOM FUNCTION if drop not successful
		if(!dropSuccessful){
			cancelDragShape();
		}
		//CUMULATE DRAW MODIFIED THIS LINE TO CHECK IF OBJECT EXISTS	
		if(referenceToDragDropObject.dragDropSourcesArray[referenceToDragDropObject.numericIdToBeDragged])
			if(referenceToDragDropObject.dragDropSourcesArray[referenceToDragDropObject.numericIdToBeDragged][1]){
				referenceToDragDropObject.__slideElementBackIntoItsOriginalPosition(referenceToDragDropObject.numericIdToBeDragged);
			}
		
		// Variable cleanup after drop
		referenceToDragDropObject.dragDropTimer = -1;
		referenceToDragDropObject.numericIdToBeDragged = false;
									
	}	
	// }}}	
	,
	
	// {{{ __slideElementBackIntoItsOriginalPosition()
    /**
     * Slide an item back to it's original position
     *
     * @param Integer numId = numeric index of currently dragged element	
     * 
     * @private
     */	
	__slideElementBackIntoItsOriginalPosition : function(numId)
	{
		// Coordinates current element position
		var currentX = this.dragObjCloneArray[numId].style.left.replace('px','')/1;
		var currentY = this.dragObjCloneArray[numId].style.top.replace('px','')/1;
		
		// Coordinates - where it should slide to
		var targetX = dhtmlSuiteCommonObj.getLeftPos(referenceToDragDropObject.dragDropSourcesArray[numId][0]);
		var targetY = dhtmlSuiteCommonObj.getTopPos(referenceToDragDropObject.dragDropSourcesArray[numId][0]);;
		
		if(this.moveBackBySliding){
			// Call the step by step slide method
			this.__processSlide(numId,currentX,currentY,targetX,targetY);
		}else{
			this.dragObjCloneArray[numId].style.display='none';
			this.dragObjCloneArray[numId].style.visibility='hidden';
			this.dragDropSourcesArray[numId][0].style.visibility = 'hidden';			
		}
			
	}
	// }}}	
	,
	
	// {{{ __processSlide()
    /**
     * Move the element step by step in this method
     *
     * @param Int numId = numeric index of currently dragged element
     * @param Int currentX = Elements current X position
     * @param Int currentY = Elements current Y position
     * @param Int targetX = Destination X position, i.e. where the element should slide to
     * @param Int targetY = Destination Y position, i.e. where the element should slide to
     * 
     * @private
     */	
	__processSlide : function(numId,currentX,currentY,targetX,targetY)
	{				
		// Find slide x value
		var slideX = Math.round(Math.abs(Math.max(currentX,targetX) - Math.min(currentX,targetX)) / 10);		
		// Find slide y value
		var slideY = Math.round(Math.abs(Math.max(currentY,targetY) - Math.min(currentY,targetY)) / 10);
		
		if(slideY<3&& Math.abs(slideX)<10)slideY = 3;	// 3 is minimum slide value
		if(slideX<3 && Math.abs(slideY)<10)slideX = 3;	// 3 is minimum slide value
		
		
		if(currentX > targetX) slideX*=-1;	// If current x is larger than target x, make slide value negative<br>
		if(currentY > targetY) slideY*=-1;	// If current y is larger than target x, make slide value negative
		
		// Update currentX and currentY
		currentX = currentX + slideX;	
		currentY = currentY + slideY;

		// If currentX or currentY is close to targetX or targetY, make currentX equal to targetX(or currentY equal to targetY)
		if(Math.max(currentX,targetX) - Math.min(currentX,targetX) < 4)currentX = targetX;
		if(Math.max(currentY,targetY) - Math.min(currentY,targetY) < 4)currentY = targetY;

		// Update CSS position(left and top)
		this.dragObjCloneArray[numId].style.left = currentX + 'px';
		this.dragObjCloneArray[numId].style.top = currentY + 'px';	
		
		// currentX different than targetX or currentY different than targetY, call this function in again in 5 milliseconds
		if(currentX!=targetX || currentY != targetY){
			window.thisRef = this;	// Reference to this dragdrop object
			setTimeout('window.thisRef.__processSlide("' + numId + '",' + currentX + ',' + currentY + ',' + targetX + ',' + targetY + ')',0);
		}else{	// Slide completed. Make absolute positioned element invisible and original element visible
			this.dragObjCloneArray[numId].style.display='none';
			this.dragDropSourcesArray[numId][0].style.visibility = 'hidden';
		}		
	}
}

///////////////////////////////////END DHTML GOODIES DRAG-DROP///////////////


///////////////////////////////////PROPERTIES PANE///////////////////////////////////////////////
var isMozilla;
var objDiv=null;
var originalDivHTML="";
var DivID="";
var over=false;

function displayFloatingDiv(_1,_2,_3,_4){
DivID=_1;

document.getElementById(_1).style.left=_3+"px";
document.getElementById(_1).style.top=_4+"px";

var _7;
if(originalDivHTML==""){
originalDivHTML=document.getElementById(_1).innerHTML;
}
_7="<table  border=\"0\"  class=\"floatingHeader\">"+"<tr class='dialogheader'><td  ondblclick=\"void(0);\" onmouseover=\"over=true;\" onmouseout=\"over=false;\" style=\"cursor:move;height:15px;\"+><img src=\"images/move.gif\">&nbsp; "+_2+" <img style='cursor:hand' onmouseover=\"this.style.cursor='pointer'\" onclick='hideShapeProperties()' src=\"images_dhtmlsuite/menu_strip_down_arrow.gif\"/></td>"+"</tr></table>";
document.getElementById(_1).innerHTML=_7+originalDivHTML;

document.getElementById(_1).style.visibility="visible";

}
function MouseDown(e){
if(over){
if(isMozilla){
objDiv=document.getElementById(DivID);
X=e.layerX;
Y=e.layerY;
return false;
}else{
objDiv=document.getElementById(DivID);
objDiv=objDiv.style;
X=event.offsetX;
Y=event.offsetY;
}
}
}
function MouseMove(e){
if(objDiv){
if(isMozilla){
objDiv.style.top=(e.pageY-Y)+"px";
objDiv.style.left=(e.pageX-X)+"px";
return false;
}else{
objDiv.pixelLeft=event.clientX-X+document.body.scrollLeft;
objDiv.pixelTop=event.clientY-Y+document.body.scrollTop;
return false;
}
}
}
function MouseUp(){
objDiv=null;
}
function init(){
isMozilla=(document.all)?0:1;
if(isMozilla){
//document.captureEvents(Event.MOUSEDOWN|Event.MOUSEMOVE|Event.MOUSEUP);
}
document.onmousedown=MouseDown;
document.onmousemove=MouseMove;
document.onmouseup=MouseUp;
}
init();
///////////////////////////////////END PROPERTIES PANE///////////////////////