
var oFactionMenuButton;var oClearButton;var oHelpButton;var oHelpModule;var oSaveListButton;var oLoadListButton;var oContractMenuButton;var bHelpVisible=true;var simpleListModule;var bSimpleListVisible=false;var contractModule;var bContractModuleVisible=false;var strFactionFileDirectory="factions/";var XMLHttpRequestObject=false;var XMLDoc=false;var isIE=false;var html_root="http%3A%2F%2Fwww.engineeringcalculator.net%2F";var waitContainer=new YAHOO.widget.Panel("wait",{width:"240px",fixedcenter:true,close:true,draggable:false,zindex:4,modal:true,visible:false});waitContainer.render(document.body);var saveDialog=new YAHOO.widget.Dialog("saveDialog",{width:"300px",fixedcenter:true,visible:false,modal:true,zindex:4,draggable:true,constraintoviewport:true,buttons:[{text:"Save",handler:handleSaveDialogSave,isDefault:true},{text:"Cancel",handler:handleSaveDialogCancel}]});saveDialog.render();var loadDialog=new YAHOO.widget.SimpleDialog("loadDialog",{width:"500px",fixedcenter:true,visible:false,draggable:false,close:true,modal:true,zindex:4,text:"Yout lists here...",icon:YAHOO.widget.SimpleDialog.ICON_HELP,constraintoviewport:true,buttons:[{text:"Cancel",handler:handleLoadDialogCancel}]});loadDialog.render();var messageDialog=new YAHOO.widget.SimpleDialog("messageDialog",{width:"300px",fixedcenter:true,visible:false,draggable:false,close:true,modal:true,zindex:6,text:"Do you want to continue?",icon:YAHOO.widget.SimpleDialog.ICON_HELP,constraintoviewport:true,buttons:[{text:"Ok",handler:handleMessageDialogOk,isDefault:true}]});messageDialog.setHeader("Warmachine & Hordes Army Builder");messageDialog.render("messageBox");function handleSaveDialogSave(){var data=this.getData();if(data.filename===""){messageDialog.setBody("Please enter a name for your list.");messageDialog.show();this.cancel();return;}
else if(data.filename.length>128)
{messageDialog.setBody("File name must be less than 128 characters.");messageDialog.show();this.cancel();return;}
this.cancel();var armyCost=getArmyCost();var phpURL=this.saveList+"&filename="+data.filename+"&points="+armyCost;loadXMLDoc(phpURL,saveListStateChange);waitContainer.setHeader("Saving your list...");waitContainer.show();}
function handleSaveDialogCancel(){this.cancel();}
function handleLoadDialogCancel(){this.cancel();}
function handleMessageDialogOk(){this.hide();}
function setCookie(c_name,value,expiredays)
{var exdate=new Date();exdate.setDate(exdate.getDate()+expiredays);document.cookie=c_name+"="+escape(value)+((expiredays==null)?"":";expires="+exdate.toGMTString());}
function getCookie(c_name)
{if(document.cookie.length>0)
{c_start=document.cookie.indexOf(c_name+"=");if(c_start!=-1)
{c_start=c_start+c_name.length+1;c_end=document.cookie.indexOf(";",c_start);if(c_end==-1)
{c_end=document.cookie.length;}
return unescape(document.cookie.substring(c_start,c_end));}}
return"";}
if(window.ActiveXObject)
{isIE=true;XMLHttpRequestObject=new ActiveXObject("Microsoft.XMLHTTP");XMLDoc=new ActiveXObject("Microsoft.XMLDOM");}else if(window.XMLHttpRequest)
{XMLHttpRequestObject=new XMLHttpRequest();XMLDoc=document.implementation.createDocument("","",null);}
else
{alert("Sorry, your bowser is not compatible with this service.");}
var xmlhttp;function loadXMLDoc(url,stateChangeFunction)
{xmlhttp=null;if(window.XMLHttpRequest)
{xmlhttp=new XMLHttpRequest();}
else if(window.ActiveXObject)
{xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
if(xmlhttp!=null)
{xmlhttp.onreadystatechange=stateChangeFunction;xmlhttp.open("GET",url,true);xmlhttp.send(null);}
else
{alert("Your browser does not support XMLHTTP.");}}
function loadFactionMenuButtonStateChange()
{if(xmlhttp.readyState==4)
{if(xmlhttp.status==200)
{XMLDoc=xmlhttp.responseXML;loadFactionMenuButton();waitContainer.hide();}
else
{waitContainer.hide();alert("Problem retrieving XML data");}}}
var bLoading=false;function loadFactionFileListStateChange()
{document.getElementById('wait_cursor').innerHTML=" - Loading, please wait...";if(xmlhttp.readyState==4)
{if(xmlhttp.status==200)
{XMLDoc=xmlhttp.responseXML;var faction=oFactionMenuButton.get("label");if(faction==="Mercenaries")
{filterMercXMLDoc();}
loadFactionFileList(1);waitContainer.hide();}
else
{waitContainer.hide();alert("Problem retrieving XML data");}
waitContainer.hide();}}
function getUserArmyListsStateChange(){if(xmlhttp.readyState==4){if(xmlhttp.status==200){var responseText=xmlhttp.responseText;waitContainer.hide();var savedListCount=getCookie("ArmyBuilderListCount");if(savedListCount==="")
{savedListCount=0;}
oSaveListButton.set("label","Save ("+savedListCount+"/50)");loadDialog.setBody(responseText);loadDialog.show();}
else{waitContainer.hide();messageDialog.setBody("There was a problem retrieving your lists. Try signing out and signing back in.");messageDialog.show();}}}
function getArmyListByIDStateChange(){if(xmlhttp.readyState==4){if(xmlhttp.status==200){var xmlList=xmlhttp.responseText;try
{XMLDoc=new ActiveXObject("Microsoft.XMLDOM");XMLDoc.async="false";XMLDoc.loadXML(xmlList);}
catch(e)
{try
{var parser=new DOMParser();XMLDoc=parser.parseFromString(xmlList,"text/xml");}
catch(e){alert(e.message);};}
loadFactionFileList(2);waitContainer.hide();loadDialog.hide();}
else{waitContainer.hide();messageDialog.setBody("There was a problem retrieving your list. Try signing out and signing back in.");messageDialog.show();}}}
function trashListStateChange()
{if(xmlhttp.readyState==4){if(xmlhttp.status==200){var responseText=xmlhttp.responseText;waitContainer.hide();messageDialog.setBody(responseText);messageDialog.show();var savedListCount=getCookie("ArmyBuilderListCount");if(savedListCount==="")
{savedListCount=0;}
oSaveListButton.set("label","Save ("+savedListCount+"/50)");loadDialog.hide();}
else{waitContainer.hide();messageDialog.setBody("There was a problem deleting your list. Try signing out and signing back in.");messageDialog.show();}}}
function saveListStateChange(){if(xmlhttp.readyState==4){if(xmlhttp.status==200){var responseText=xmlhttp.responseText;waitContainer.hide();messageDialog.setBody(responseText);messageDialog.show();var savedListCount=getCookie("ArmyBuilderListCount");if(savedListCount==="")
{savedListCount=0;}
oSaveListButton.set("label","Save ("+savedListCount+"/50)");}
else{waitContainer.hide();messageDialog.setBody("There was a problem saving your list. Try signing out and signing back in.");messageDialog.show();}}}
var factions=new Array();var factionFiles=new Array();var contracts=new Array();var nArmyList=1;var models=new Array();var warcaster=new Array();var warcasterAttachments=new Array();var warjacks=new Array();var units=new Array();var solos=new Array();var assignableSolo=new Array();var uas=new Array();var was=new Array();var droppedOn2;function onClearButtonClick(){var ul2=Dom.get("ul2");modelNodes=ul2.getElementsByTagName("li");for(var i=modelNodes.length-1;i>=0;i--)
{ul2.removeChild(modelNodes[i]);}
var rows=2*(warcasters.length+warjacks.length+warcasterAttachments.length+units.length+assignableSolos.length+solos.length+uas.length+was.length);new YAHOO.util.DDTarget("ul2");for(var j=1;j<rows+1;j=j+1){new YAHOO.example.DDList("li"+2+"_"+j);}
document.getElementById('listbox2').innerHTML="";document.getElementById('army_cost').innerHTML="<h3>Army List</h3>";updateArmyPoints();}
function onHelpButtonClick(){if(bHelpVisible){helpModule.hide();bHelpVisible=false;oHelpButton.set("label","Show Help");setCookie("ShowHelp","false",999);}else{helpModule.show();bHelpVisible=true;oHelpButton.set("label","Hide Help");setCookie("ShowHelp","true",999);}}
function onSimpleListButtonClick(){if(bSimpleListVisible){simpleListModule.hide();bSimpleListVisible=false;oSimpleListButton.set("label","Show Copy & Paste List");setCookie("ShowSimpleList","false",999);}else{simpleListModule.show();bSimpleListVisible=true;oSimpleListButton.set("label","Hide Copy & Paste List");setCookie("ShowSimpleList","true",999);updateArmyPoints();}}
var savedListVisibleState=false;function onBeforePrintList()
{savedListVisibleState=bSimpleListVisible;bSimpleListVisible=true;onSimpleListButtonClick();}
function onAfterPrintList()
{bSimpleListVisible=savedListVisibleState;onSimpleListButtonClick();}
function onFactionMenuItemClick(p_sType,p_aArgs,p_oItem){oFactionMenuButton.set("label",p_oItem.cfg.getProperty("text"));if(p_oItem.cfg.getProperty("text")==="Mercenaries")
{contractModule.show();}
else
{contractModule.hide();}
setCookie("Faction",p_oItem.cfg.getProperty("text"),999);readFactionFile(strFactionFileDirectory+factionFiles[p_oItem.index]);}
function onContractMenuItemClick(p_sType,p_aArgs,p_oItem){oContractMenuButton.set("label",p_oItem.cfg.getProperty("text"));setCookie("ArmyBuilderContract",p_oItem.cfg.getProperty("text"),999);readFactionFile(strFactionFileDirectory+"Mercenary.xml");}
function onLoadLinkClicked(fileID,isMKII){var getListURL="ArmyBuilderLoadList.php?listID="+fileID;loadXMLDoc(getListURL,getArmyListByIDStateChange);waitContainer.setHeader("Retrieving list...");waitContainer.show();}
function onTrashLinkClicked(fileID){var trashListURL="ArmyBuilderTrashList.php?listID="+fileID;loadXMLDoc(trashListURL,trashListStateChange);waitContainer.setHeader("Tossing list...");waitContainer.show();}
function readFactionList(filename)
{var message=" - Loading, please wait...";if(getCookie("faction")=="")
{message=" - Please select a faction";}
document.getElementById('wait_cursor').innerHTML=message;waitContainer.setHeader("Loading factions...");waitContainer.show();loadXMLDoc(filename,loadFactionMenuButtonStateChange);}
function loadFactionMenuButton()
{var userName=getCookie("ArmyBuilderUserName");if(userName!=="")
{var loginText="<b>"+userName+"</b> | ";loginText+="<a href='http://www.engineeringcalculator.net/legacy/ArmyBuilder.html'>Legacy (MKI)</a> | ";loginText+="<a href=ArmyBuilderSignOut.php?destination="+html_root+"ArmyBuilder.html>Sign Out</a>";document.getElementById('loginarea').innerHTML=loginText;}
factionNodes=XMLDoc.getElementsByTagName("factionName");factions=new Array();factionFileNodes=XMLDoc.getElementsByTagName("factionFile");factionFiles=new Array();for(i=0;i<factionNodes.length;i++)
{factions.push(factionNodes[i].childNodes[0].nodeValue);}
for(i=0;i<factionFileNodes.length;i++)
{factionFiles.push(factionFileNodes[i].childNodes[0].nodeValue);}
aFactionMenu=new Array();for(i=0;i<factions.length;i++)
{aFactionMenu.push({text:factions[i],value:i,onclick:{fn:onFactionMenuItemClick}});}
oFactionMenuButton=new YAHOO.widget.Button({type:"menu",label:"Choose a Faction...",name:"mymenubutton",menu:aFactionMenu,container:"menubuttonsfromjavascript"});oClearButton=new YAHOO.widget.Button({label:"Clear Current List",id:"clearbutton",container:"menubuttonsfromjavascript"});oClearButton.on("click",onClearButtonClick);oSimpleListButton=new YAHOO.widget.Button({label:"Show Copy & Paste List",id:"simplelistbutton",container:"menubuttonsfromjavascript"});oSimpleListButton.on("click",onSimpleListButtonClick);oSaveListButton=new YAHOO.widget.Button({label:"Save List",id:"savebutton",container:"menubuttonsfromjavascript"});oSaveListButton.on("click",onSaveButtonClick);oLoadListButton=new YAHOO.widget.Button({label:"Load List",id:"loadbutton",container:"menubuttonsfromjavascript"});oLoadListButton.on("click",onLoadButtonClick);contractNodes=XMLDoc.getElementsByTagName("contractName");contracts=new Array();contracts.push("None (Show All Mercs)");for(i=1;i<contractNodes.length;i++)
{contracts.push(contractNodes[i].childNodes[0].nodeValue);}
aContractMenu=new Array();for(i=0;i<contracts.length;i++)
{aContractMenu.push({text:contracts[i],value:i,onclick:{fn:onContractMenuItemClick}});}
oContractMenuButton=new YAHOO.widget.Button({type:"menu",label:"None (Show All Mercs)",name:"contractmenubutton",menu:aContractMenu,container:"contract_fieldset"});if(userName!=="")
{oSaveListButton.set("disabled",false);oLoadListButton.set("disabled",false);oSaveListButton.set("label","Save");oLoadListButton.set("label","Load");}
else
{oSaveListButton.set("disabled",true);oLoadListButton.set("disabled",true);oSaveListButton.set("label","Save (sign in)");oLoadListButton.set("label","Load (sign in)");}
oHelpButton=new YAHOO.widget.Button({label:"Hide Help",id:"helpbutton",container:"menubuttonsfromjavascript"});oHelpButton.on("click",onHelpButtonClick);simpleListModule=new YAHOO.widget.Module("simplelistmodule",{visible:false});simpleListModule.render();if(getCookie("ShowSimpleList")=="false"){simpleListModule.hide();bSimpleListVisible=false;oSimpleListButton.set("label","Show Copy & Paste List");}
helpModule=new YAHOO.widget.Module("helpmodule",{visible:true});helpModule.render();if(getCookie("ShowHelp")=="false"){helpModule.hide();bHelpVisible=false;oHelpButton.set("label","Show Help");}
contractModule=new YAHOO.widget.Module("contract_module",{visible:false});contractModule.render();var factionCookie=getCookie("Faction");var contractCookie=getCookie("ArmyBuilderContract");if(factionCookie==="Mercenaries")
{contractModule.show();if(contractCookie!=="")
{oContractMenuButton.set("label",contractCookie);}}
for(i=0;i<factions.length;i++)
{if(factionCookie===factions[i])
{oFactionMenuButton.set("label",factions[i]);readFactionFile(strFactionFileDirectory+factionFiles[i]);break;}}}
function readFactionFile(filename)
{var message=" - Loading, please wait...";if(getCookie("Faction")==="")
{message=" Please select a faction";}
document.getElementById('wait_cursor').innerHTML=message;waitContainer.setHeader("Loading models...");waitContainer.show();var request=YAHOO.util.Connect.asyncRequest('GET',filename,{success:readFactionFileSuccess,failure:readFactionFileFailure});}
function readFactionFileSuccess(o)
{XMLDoc=o.responseXML;var faction=oFactionMenuButton.get("label");if(faction==="Mercenaries")
{filterMercXMLDoc();}
loadFactionFileList(1);waitContainer.hide();}
function readFactionFileFailure(o)
{waitContainer.hide();alert("Problem retrieving XML data");}
function sortByName(a,b)
{var x=a.name.toLowerCase();var y=b.name.toLowerCase();return((x<y)?-1:((x>y)?1:0));}
function sortByCost(a,b)
{var x=a.cost;var y=b.cost;return x-y;}
var bByName=true;function sortPredicate(a,b)
{if(bByName=="true")
{return sortByName(a,b);}
else
{return sortByCost(a,b);}}
function toggleSortAndReloadFileList(byName)
{bByName=byName;loadFactionFileList(1);}
function removeModelFromArmyList(elem)
{elem.parentNode.removeChild(elem);updateArmyPoints();}
function onAddButtonClick(p_oEvent)
{var elem=this.get("parentNode").parentNode.parentNode.parentNode.parentNode;addModelToArmyList(elem);}
function onRemoveButtonClick(p_oEvent)
{var elem=this.get("parentNode").parentNode.parentNode.parentNode.parentNode;removeModelFromArmyList(elem);}
function replaceAddButton(clone,buttonID,buttonContainer,uniqueID)
{clone.childNodes[0].childNodes[0].childNodes[0].childNodes[4].innerHTML="";var cloneButtonID="remove_"+buttonID.split('_')[1]+"_"+uniqueID;var cloneContainerID="remove_"+buttonContainer.split('_')[1]+"_"+uniqueID;clone.childNodes[0].childNodes[0].childNodes[0].childNodes[4].id=cloneContainerID;oPushButton=new YAHOO.widget.Button({label:"<b>X</b>",id:cloneButtonID,container:cloneContainerID,onclick:{fn:onRemoveButtonClick}});}
function addModelToArmyList(elem)
{if(nArmyList<0||isNaN(nArmyList)||nArmyList==="")
{nArmyList=1;}
var clone=elem.cloneNode(true);clone.id="li2"+"_"+nArmyList;nArmyList+=1;clone.className="list2";cloneid=clone.id;var buttonID=clone.childNodes[0].childNodes[0].childNodes[0].childNodes[4].childNodes[0].id;var buttonContainerID=clone.childNodes[0].childNodes[0].childNodes[0].childNodes[4].id;cloneElement=clone;Dom.setStyle(clone,"visibility","");Dom.get("ul2").appendChild(clone);replaceAddButton(clone,buttonID,buttonContainerID,nArmyList);updateArmyPoints();}
function onLoadButtonClick()
{var userName=getCookie("ArmyBuilderUserName");if(userName===""){messageDialog.setBody("Please sign in first!");messageDialog.show();return;}
var getListURL="ArmyBuilderGetUserLists.php";loadXMLDoc(getListURL,getUserArmyListsStateChange);waitContainer.setHeader("Retrieving your lists...");waitContainer.show();}
function onSaveButtonClick()
{var ul2=Dom.get("ul2");var modelNodes=ul2.getElementsByTagName("li");if(modelNodes.length<=0)
{messageDialog.setBody("Please add models to the <b>Army List</b> box first.");messageDialog.show();}
else
{var costNodeName="mkiicost";var expandCostNodeName="mkiiexpand";var xmlList='<forceList xmlns="http://www.engineeringcalculator.net/warmachine/forcelist">\n<version>1.0</version>\n';xmlList+="<ruleSet>MKII</ruleSet>";for(var i=0;i<modelNodes.length;i++)
{var modelType=modelNodes[i].childNodes[0].childNodes[0].childNodes[0].childNodes[0].innerHTML.split('(');var modelType_0=modelType[0].toLowerCase();if(modelType_0==="warcaster attachment")
{modelType_0="warcasterAttachment";}
else if(modelType_0==="assignable solo")
{modelType_0="assignableSolo";}
else if(modelType_0==="unit attachment")
{modelType_0="unitAttachment";}
else if(modelType_0==="weapon attachment")
{modelType_0="specWpnAttachment";}
xmlList+="<"+modelType_0+">\n";var name=modelNodes[i].childNodes[0].childNodes[0].childNodes[0].childNodes[1].innerHTML;xmlList+="\t<name>"+name.split('(')[0]+"</name>\n";if(modelType.length>1){var unitCount=modelType[1].split('/');var baseSize=modelNodes[i].childNodes[0].childNodes[0].childNodes[0].childNodes[0].id;if(unitCount.length>1){var currentSize=unitCount[0];var maxSize=unitCount[1].split(')')[0];xmlList+="\t<currentSize>"+currentSize+"</currentSize>\n";xmlList+="\t<baseSize>"+baseSize+"</baseSize>\n";xmlList+="\t<maxSize>"+maxSize+"</maxSize>\n";if(name.split('(').length>1){var expandCost=name.split('(')[1].split(' ')[0];xmlList+="\t<"+expandCostNodeName+">"+expandCost+"</"+expandCostNodeName+">\n";}}
else{var maxSize=unitCount[0].split(')')[0];xmlList+="\t<currentSize>"+maxSize+"</currentSize>\n";xmlList+="\t<baseSize>"+maxSize+"</baseSize>\n";xmlList+="\t<maxSize>"+maxSize+"</maxSize>\n";}}
var cost=modelNodes[i].childNodes[0].childNodes[0].childNodes[0].childNodes[2].innerHTML;if(cost.split('-').length>1)
{cost=cost.split('-')[1];}
xmlList+="\t<"+costNodeName+">"+cost+"</"+costNodeName+">\n";var vp=modelNodes[i].childNodes[0].childNodes[0].childNodes[0].childNodes[3].innerHTML;xmlList+="\t<vp>"+vp+"</vp>\n";var basicFA=modelNodes[i].childNodes[0].childNodes[0].childNodes[0].childNodes[4].innerHTML;xmlList+="\t<basicFA>"+basicFA+"</basicFA>\n";xmlList+="</"+modelType_0+">\n";}
xmlList+="</forceList>";var userName=getCookie("ArmyBuilderUserName");if(userName===""){messageDialog.setBody("Please sign in first!");messageDialog.show();return;}
var intBMKII=1;var addList="ArmyBuilderSaveList.php?username="+userName+"&xmlDoc="+xmlList+"&isMKII="+intBMKII;saveDialog.saveList=addList;saveDialog.show();}}
function filterMercXMLDoc()
{var contract=oContractMenuButton.get("label");function removeNodesBasedOnContract(contract,modelNodes)
{for(i=modelNodes.length-1;i>=0;i--)
{var excludeNodes=modelNodes[i].getElementsByTagName("excludeFaction");for(j=0;j<excludeNodes.length;j++)
{if(excludeNodes[j].childNodes[0].nodeValue===contract)
{XMLDoc.documentElement.removeChild(modelNodes[i]);break;}}}}
warcasterNodes=XMLDoc.getElementsByTagName("warcaster");removeNodesBasedOnContract(contract,warcasterNodes);warcasterAttachmentNodes=XMLDoc.getElementsByTagName("warcasterAttachment");removeNodesBasedOnContract(contract,warcasterAttachmentNodes);warjackNodes=XMLDoc.getElementsByTagName("warjack");removeNodesBasedOnContract(contract,warjackNodes);unitNodes=XMLDoc.getElementsByTagName("unit");removeNodesBasedOnContract(contract,unitNodes);soloNodes=XMLDoc.getElementsByTagName("solo");removeNodesBasedOnContract(contract,soloNodes);uaNodes=XMLDoc.getElementsByTagName("unitAttachment");removeNodesBasedOnContract(contract,uaNodes);waNodes=XMLDoc.getElementsByTagName("specWpnAttachment");removeNodesBasedOnContract(contract,waNodes);}
function loadFactionFileList(listNum)
{var text="";var cssClassNum="list1";var buttonid_refix="add_button_";var buttoncontainer_prefix="add_buttoncontainer_";if(listNum===2)
{cssClassNum="list2";buttonid_prefix="remove_button_";buttoncontainer_prefix="remove_buttoncontainer_";}
warcasterNodes=XMLDoc.getElementsByTagName("warcaster");casterType="Warcaster";if(warcasterNodes.length<=0){warcasterNodes=XMLDoc.getElementsByTagName("warlock");casterType="Warlock";}
var costNodeName="mkiicost";var uniqueButtonID=1;warcasters=new Array();for(i=0;i<warcasterNodes.length;i++)
{warcaster=warcasterNodes[i].getElementsByTagName("name")[0].firstChild.nodeValue;pointNodes=warcasterNodes[i].getElementsByTagName(costNodeName);pointCost=pointNodes[0].childNodes[0].nodeValue;pointCost="-"+pointCost;var buttonid=buttonid_refix+uniqueButtonID;var buttoncontainer=buttoncontainer_prefix+uniqueButtonID;uniqueButtonID+=1;var htmlTableString="<table border = '0'><tr><th width='75' >"+casterType;htmlTableString+="<td width='225' align='center'>"+warcaster;htmlTableString+="<td width='25' align='center'>"+pointCost;htmlTableString+="<td width='25' align='center'>C";htmlTableString+="<td width='25' class='addButton' align='center' id='"+buttoncontainer+"'></table>";warcasters.push({name:warcaster,cost:pointCost,listItem:htmlTableString,addButtonContainer:buttoncontainer,addButtonID:buttonid});}
warcasters.sort(sortPredicate);var index=0;for(i=0;i<warcasters.length;i++)
{index=index+1;text+='<li class="'+cssClassNum+'" id="li'+listNum+'_'+index+'">'+warcasters[i].listItem+'</li>';}
warcasterAttachmentNodes=XMLDoc.getElementsByTagName("warcasterAttachment");casterType="Warcaster Attachment";if(warcasterAttachmentNodes.length<=0){warcasterAttachmentNodes=XMLDoc.getElementsByTagName("warlockAttachment");casterType="Warlock Attachment";}
if(warcasterAttachmentNodes.length>0)
{warcasterAttachments=new Array();for(i=0;i<warcasterAttachmentNodes.length;i++)
{warcasterAttachment=warcasterAttachmentNodes[i].getElementsByTagName("name")[0].firstChild.nodeValue;pointNodes=warcasterAttachmentNodes[i].getElementsByTagName(costNodeName);pointCost=pointNodes[0].childNodes[0].nodeValue;var buttonid=buttonid_refix+uniqueButtonID;var buttoncontainer=buttoncontainer_prefix+uniqueButtonID;uniqueButtonID+=1;var htmlTableString="<table border = '0'><tr><th width='75' >"+casterType;htmlTableString+="<td width='225' align='center'>"+warcasterAttachment;htmlTableString+="<td width='25' align='center'>"+pointCost;htmlTableString+="<td width='25' align='center'>C";htmlTableString+="<td width='25' align='center' id='"+buttoncontainer+"'></table>";warcasterAttachments.push({name:warcasterAttachment,cost:pointCost,listItem:htmlTableString,addButtonContainer:buttoncontainer,addButtonID:buttonid});}
warcasterAttachments.sort(sortPredicate);for(i=0;i<warcasterAttachments.length;i++)
{index=index+1;text+='<li class="'+cssClassNum+'" id="li'+listNum+'_'+index+'">'+warcasterAttachments[i].listItem+'</li>';}}
warjackNodes=XMLDoc.getElementsByTagName("warjack");jackType="Warjack";if(warjackNodes.length<=0){warjackNodes=XMLDoc.getElementsByTagName("warbeast");jackType="Warbeast";}
warjacks=new Array();for(i=0;i<warjackNodes.length;i++)
{warjack=warjackNodes[i].getElementsByTagName("name")[0].firstChild.nodeValue;pointNodes=warjackNodes[i].getElementsByTagName(costNodeName);pointCost=pointNodes[0].childNodes[0].nodeValue;faNodes=warjackNodes[i].getElementsByTagName("basicFA");fa="1";if(faNodes.length>0)
{fa=faNodes[0].childNodes[0].nodeValue;if(fa=="999"){fa="U";}}
var buttonid=buttonid_refix+uniqueButtonID;var buttoncontainer=buttoncontainer_prefix+uniqueButtonID;uniqueButtonID+=1;var htmlTableString="<table border = '0'><tr><th width='75' >"+jackType;htmlTableString+="<td width='225' align='center'>"+warjack;htmlTableString+="<td width='25' align='center'>"+pointCost;htmlTableString+="<td width='25' align='center'>"+fa;htmlTableString+="<td width='25' align='center' id='"+buttoncontainer+"'></table>";warjacks.push({name:warjack,cost:pointCost,listItem:htmlTableString,addButtonContainer:buttoncontainer,addButtonID:buttonid});}
warjacks.sort(sortPredicate);for(i=0;i<warjacks.length;i++)
{index=index+1;text+='<li class="'+cssClassNum+'" id="li'+listNum+'_'+index+'">'+warjacks[i].listItem+'</li>';}
var expandCostNodeName="mkiiexpand";unitNodes=XMLDoc.getElementsByTagName("unit");units=new Array();for(i=0;i<unitNodes.length;i++)
{unit=unitNodes[i].getElementsByTagName("name")[0].firstChild.nodeValue;baseSizeNodes=unitNodes[i].getElementsByTagName("baseSize");baseSize=baseSizeNodes[0].childNodes[0].nodeValue;pointNodes=unitNodes[i].getElementsByTagName(costNodeName);pointCost=pointNodes[0].childNodes[0].nodeValue;maxUnitNodes=unitNodes[i].getElementsByTagName("maxSize");maxSize=maxUnitNodes[0].childNodes[0].nodeValue;expandCostNodes=unitNodes[i].getElementsByTagName(expandCostNodeName);expandCost=0;if(expandCostNodes.length>0)
{expandCost=expandCostNodes[0].childNodes[0].nodeValue;}
faNodes=unitNodes[i].getElementsByTagName("basicFA");fa="1";if(faNodes.length>0)
{fa=faNodes[0].childNodes[0].nodeValue;if(fa=="999"){fa="U";}}
add_unit_num="add_unit_"+i;sub_unit_num="sub_unit_"+i;var currentSize=baseSize;if(listNum===2)
{currentSize=unitNodes[i].getElementsByTagName("currentSize")[0].childNodes[0].nodeValue;}
str="<table border = '0'><tr><th width='75' id="+baseSize+">Unit "+" ("+currentSize;if(expandCost>0){str+="/"+maxSize;}
str+=")";str+="<td width='250' align='center'>"+unit;if(expandCost>0)
{str+=" ("+pointCost+"/"+expandCost+" pts.)";}
str+="<td width='25' align='center'>"+pointCost+"<td width='25' align='center'>"+fa;var buttonid=buttonid_refix+uniqueButtonID;var buttoncontainer=buttoncontainer_prefix+uniqueButtonID;uniqueButtonID+=1;str+="<td width='25' align='center' id='"+buttoncontainer+"'></table>";units.push({name:unit,cost:pointCost,listItem:str,addButtonContainer:buttoncontainer,addButtonID:buttonid});}
units.sort(sortPredicate);for(i=0;i<units.length;i++)
{index=index+1;text+='<li class="'+cssClassNum+'" id="li'+listNum+'_'+index+'">'+units[i].listItem+'</li>';}
assignableSoloNodes=XMLDoc.getElementsByTagName("assignableSolo");assignableSolos=new Array();for(i=0;i<assignableSoloNodes.length;i++)
{assignableSolo=assignableSoloNodes[i].getElementsByTagName("name")[0].firstChild.nodeValue;pointNodes=assignableSoloNodes[i].getElementsByTagName(costNodeName);pointCost=pointNodes[0].childNodes[0].nodeValue;faNodes=assignableSoloNodes[i].getElementsByTagName("basicFA");fa="1";if(faNodes.length>0)
{fa=faNodes[0].childNodes[0].nodeValue;if(fa=="999"){fa="U";}}
var buttonid=buttonid_refix+uniqueButtonID;var buttoncontainer=buttoncontainer_prefix+uniqueButtonID;uniqueButtonID+=1;var htmlTableString="<table border = '0'><tr><th width='75' >Assignable Solo";htmlTableString+="<td width='225' align='center'>"+assignableSolo;htmlTableString+="<td width='25' align='center'>"+pointCost;htmlTableString+="<td width='25' align='center'>"+fa;htmlTableString+="<td width='25' align='center' id='"+buttoncontainer+"'></table>";assignableSolos.push({name:assignableSolo,cost:pointCost,listItem:htmlTableString,addButtonContainer:buttoncontainer,addButtonID:buttonid});}
assignableSolos.sort(sortPredicate);for(i=0;i<assignableSolos.length;i++)
{index=index+1;text+='<li class="'+cssClassNum+'" id="li'+listNum+'_'+index+'">'+assignableSolos[i].listItem+'</li>';}
soloNodes=XMLDoc.getElementsByTagName("solo");solos=new Array();for(i=0;i<soloNodes.length;i++)
{solo=soloNodes[i].getElementsByTagName("name")[0].firstChild.nodeValue;pointNodes=soloNodes[i].getElementsByTagName(costNodeName);pointCost=pointNodes[0].childNodes[0].nodeValue;faNodes=soloNodes[i].getElementsByTagName("basicFA");fa="1";if(faNodes.length>0)
{fa=faNodes[0].childNodes[0].nodeValue;if(fa=="999"){fa="U";}}
var buttonid=buttonid_refix+uniqueButtonID;var buttoncontainer=buttoncontainer_prefix+uniqueButtonID;uniqueButtonID+=1;var htmlTableString="<table border = '0'><tr><th width='75' >Solo";htmlTableString+="<td width='225' align='center'>"+solo;htmlTableString+="<td width='25' align='center'>"+pointCost;htmlTableString+="<td width='25' align='center'>"+fa;htmlTableString+="<td width='25' align='center' id='"+buttoncontainer+"'></table>";solos.push({name:solo,cost:pointCost,listItem:htmlTableString,addButtonContainer:buttoncontainer,addButtonID:buttonid});}
solos.sort(sortPredicate);for(i=0;i<solos.length;i++)
{index=index+1;text+='<li class="'+cssClassNum+'" id="li'+listNum+'_'+index+'">'+solos[i].listItem+'</li>';}
uaNodes=XMLDoc.getElementsByTagName("unitAttachment");uas=new Array();for(i=0;i<uaNodes.length;i++)
{ua=uaNodes[i].getElementsByTagName("name")[0].firstChild.nodeValue;pointNodes=uaNodes[i].getElementsByTagName(costNodeName);pointCost=pointNodes[0].childNodes[0].nodeValue;faNodes=uaNodes[i].getElementsByTagName("basicFA");fa="1";if(faNodes.length>0)
{fa=faNodes[0].childNodes[0].nodeValue;if(fa=="999"){fa="U";}}
var buttonid=buttonid_refix+uniqueButtonID;var buttoncontainer=buttoncontainer_prefix+uniqueButtonID;uniqueButtonID+=1;var htmlTableString="<table border = '0'><tr><th width='75' >Unit Attachment";htmlTableString+="<td width='225' align='center'>"+ua;htmlTableString+="<td width='25' align='center'>"+pointCost;htmlTableString+="<td width='25' align='center'>"+fa;htmlTableString+="<td width='25' align='center' id='"+buttoncontainer+"'></table>";uas.push({name:ua,cost:pointCost,listItem:htmlTableString,addButtonContainer:buttoncontainer,addButtonID:buttonid});}
uas.sort(sortPredicate);for(i=0;i<uas.length;i++)
{index=index+1;text+='<li class="'+cssClassNum+'" id="li'+listNum+'_'+index+'">'+uas[i].listItem+'</li>';}
waNodes=XMLDoc.getElementsByTagName("specWpnAttachment");was=new Array();for(i=0;i<waNodes.length;i++)
{wa=waNodes[i].getElementsByTagName("name")[0].firstChild.nodeValue;pointNodes=waNodes[i].getElementsByTagName(costNodeName);pointCost=pointNodes[0].childNodes[0].nodeValue;faNodes=waNodes[i].getElementsByTagName("basicFA");fa="1";if(faNodes.length>0)
{fa=faNodes[0].childNodes[0].nodeValue;if(fa=="999"){fa="U";}}
var buttonid=buttonid_refix+uniqueButtonID;var buttoncontainer=buttoncontainer_prefix+uniqueButtonID;uniqueButtonID+=1;var htmlTableString="<table border = '0'><tr><th width='75' >Weapon Attachment";htmlTableString+="<td width='225' align='center'>"+wa;htmlTableString+="<td width='25' align='center'>"+pointCost;htmlTableString+="<td width='25' align='center'>"+fa;htmlTableString+="<td width='25' align='center' id='"+buttoncontainer+"'></table>";was.push({name:wa,cost:pointCost,listItem:htmlTableString,addButtonContainer:buttoncontainer,addButtonID:buttonid});}
was.sort(sortPredicate);for(i=0;i<was.length;i++)
{index=index+1;text+='<li class="'+cssClassNum+'" id="li'+listNum+'_'+index+'">'+was[i].listItem+'</li>';}
if(listNum===1)
{document.getElementById('listbox1').innerHTML=text;document.getElementById('listbox2').innerHTML="";}
else
{document.getElementById('ul2').innerHTML="<div id=listbox2></div>"+text;}
var rows=2*(warcasters.length+warjacks.length+units.length+assignableSolos.length+solos.length+uas.length+was.length),cols=2,i,j;for(i=1;i<cols+1;i=i+1){new YAHOO.util.DDTarget("ul"+i);}
for(i=1;i<cols+1;i=i+1){for(j=1;j<rows+1;j=j+1){new YAHOO.example.DDList("li"+i+"_"+j);}}
document.getElementById('wait_cursor').innerHTML="";function addButtons(modelArray)
{for(i=0;i<modelArray.length;i++)
{var buttonContainer=modelArray[i].addButtonContainer;var buttonID=modelArray[i].addButtonID;if(listNum===1)
{var oPushButton=new YAHOO.widget.Button({label:"Add",id:buttonID,container:buttonContainer,onclick:{fn:onAddButtonClick}});}
else if(listNum===2)
{var oPushButton=new YAHOO.widget.Button({label:"<b>X</b>",id:buttonID,container:buttonContainer,onclick:{fn:onRemoveButtonClick}});nArmyList=parseInt(buttonID.split('_')[2]);if(isNaN(nArmyList))
{var d=new Date();nArmyList=d.getUTCMilliseconds();}}}}
addButtons(warcasters);addButtons(warcasterAttachments);addButtons(warjacks);addButtons(units);addButtons(assignableSolos);addButtons(solos);addButtons(uas);addButtons(was);if(listNum===2){updateArmyPoints();}
waitContainer.hide();}
function updateSimpleList()
{var ul2=Dom.get("ul2");var modelNodes=ul2.getElementsByTagName("li");var army_cost=0;var simpleListText="<table border = '0'><tr><td width='300'>Name<td width='25' align='center'>Cost";simpleListText+="</tr>";var totalCost=0;for(i=0;i<modelNodes.length;i++)
{var type=modelNodes[i].firstChild.firstChild.firstChild.childNodes[0].firstChild.nodeValue;var name=modelNodes[i].firstChild.firstChild.firstChild.childNodes[1].firstChild.nodeValue;var cost=modelNodes[i].firstChild.firstChild.firstChild.childNodes[2].firstChild.nodeValue;totalCost+=parseFloat(cost);if(type[0]=="U")
{name=name.split('(')[0];type=type.split('(')[1];name=name+" ("+type;}
simpleListText+="<tr><td width='300' >"+name+"<td width='25' align='center'>"+cost;simpleListText+="</tr>";}
simpleListText+="</table>";var text="Army Points: "+totalCost;text+="<p>";text+=simpleListText;if(modelNodes.length>0)
{document.getElementById('simple_list').innerHTML=text;}
else
{document.getElementById('simple_list').innerHTML="Please add models to the <b>Army List</b> box below.";}}
function getArmyCost()
{var ul2=Dom.get("ul2");var modelNodes=ul2.getElementsByTagName("li");var army_cost=0;var army_vp=0;var pointLevel=new Array();pointLevel[0]=15;pointLevel[1]=20;pointLevel[2]=25;pointLevel[3]=30;pointLevel[4]=35;pointLevel[5]=40;pointLevel[6]=45;pointLevel[7]=75;pointLevel[8]=100;var currentPointLevel=35;var pointsRemaining=0;for(i=0;i<modelNodes.length;i++)
{army_cost+=parseFloat(modelNodes[i].firstChild.firstChild.firstChild.childNodes[2].firstChild.nodeValue);army_vp+=parseFloat(modelNodes[i].firstChild.firstChild.firstChild.childNodes[3].firstChild.nodeValue);}
return army_cost;}
function updateArmyPoints()
{var ul2=Dom.get("ul2");var modelNodes=ul2.getElementsByTagName("li");var army_cost=0;var army_vp=0;var pointLevel=new Array();pointLevel[0]=15;pointLevel[1]=20;pointLevel[2]=25;pointLevel[3]=30;pointLevel[4]=35;pointLevel[5]=40;pointLevel[6]=45;pointLevel[7]=75;pointLevel[8]=100;var currentPointLevel=35;var pointsRemaining=0;for(i=0;i<modelNodes.length;i++)
{army_cost+=parseFloat(modelNodes[i].firstChild.firstChild.firstChild.childNodes[2].firstChild.nodeValue);army_vp+=parseFloat(modelNodes[i].firstChild.firstChild.firstChild.childNodes[3].firstChild.nodeValue);}
for(i=0;i<pointLevel.length;i++)
{if(army_cost<=pointLevel[i])
{currentPointLevel=pointLevel[i];pointsRemaining=currentPointLevel-army_cost;break;}}
if(army_cost>0)
{text="<h4>Army Cost: "+army_cost+"/"+currentPointLevel+"&nbsp&nbsp&nbsp Remaining: "+pointsRemaining+"</h4>";document.getElementById('army_cost').innerHTML=text;}
else
{document.getElementById('army_cost').innerHTML="<h3>Army List</h3>";}
updateSimpleList();}
var oCurrentModelNode=null;var oContextMenu=null;String.prototype.trim=function(){var s=this.replace(/^\s+/,"");return s.replace(/\s+$/,"");};YAHOO.util.Event.onContentReady("ul2",function(){function minUnit()
{listItemText=oCurrentModelNode.firstChild.firstChild.firstChild.childNodes[0].firstChild.nodeValue;minUnitSize=parseFloat(oCurrentModelNode.firstChild.firstChild.firstChild.firstChild.id);currentUnitSize=parseFloat(listItemText.split('/')[0].split('(')[1]);maxUnitSize=parseFloat(listItemText.split('/')[1].split(')')[0]);costText=oCurrentModelNode.firstChild.firstChild.firstChild.childNodes[1].firstChild.nodeValue;minCost=parseFloat(costText.split('(')[1].split('/')[0]);oCurrentModelNode.firstChild.firstChild.firstChild.childNodes[2].innerHTML=minCost;oCurrentModelNode.firstChild.firstChild.firstChild.childNodes[0].innerHTML="Unit ("+minUnitSize+"/"+maxUnitSize+")";updateArmyPoints();}
function maxUnit()
{listItemText=oCurrentModelNode.firstChild.firstChild.firstChild.childNodes[0].firstChild.nodeValue;currentUnitSize=parseFloat(listItemText.split('/')[0].split('(')[1]);maxUnitSize=parseFloat(listItemText.split('/')[1].split(')')[0]);costText=oCurrentModelNode.firstChild.firstChild.firstChild.childNodes[1].firstChild.nodeValue;maxCost=parseFloat(costText.split('(')[1].split('/')[1]);oCurrentModelNode.firstChild.firstChild.firstChild.childNodes[2].innerHTML=maxCost;oCurrentModelNode.firstChild.firstChild.firstChild.childNodes[0].innerHTML="Unit ("+maxUnitSize+"/"+maxUnitSize+")";updateArmyPoints();}
function removeModel()
{if(oCurrentModelNode!==null){oCurrentModelNode.parentNode.removeChild(oCurrentModelNode);oCurrentModelNode=null;updateArmyPoints();}}
function GetTableRowFromEventTarget(p_oNode){if(p_oNode.tagName.toUpperCase()==="TR"){return p_oNode;}
else{do{if(p_oNode.tagName.toUpperCase()==="TR"){return p_oNode;}}
while((p_oNode=p_oNode.parentNode));}}
function getListItemFromEventTarget(p_oNode){if(p_oNode.tagName.toUpperCase()==="LI"){return p_oNode;}
else{do{if(p_oNode.tagName.toUpperCase()==="LI"){return p_oNode;}}
while((p_oNode=p_oNode.parentNode));}}
var oContextMenuItems={"type1":[{text:"Remove Model",onclick:{fn:removeModel}}],"type2":[{text:"Min Unit",onclick:{fn:minUnit}},{text:"Full Unit",onclick:{fn:maxUnit}},{text:"Remove Model",onclick:{fn:removeModel}}]};function onContextMenuBeforeShow(p_sType,p_aArgs){var oTR=GetTableRowFromEventTarget(this.contextEventTarget),aMenuItems,aClasses;tableHeadingText=oTR.childNodes[0].childNodes[0].nodeValue;tableHeadingTextSplit=tableHeadingText.split(' ');oLI=getListItemFromEventTarget(this.contextEventTarget);oCurrentModelNode=oLI;if(tableHeadingTextSplit[0]==="Unit"&&tableHeadingText.split('/').length>1)
{aMenuItems=oContextMenuItems['type2'];}
else
{aMenuItems=oContextMenuItems['type1'];}
this.clearContent();this.addItems(aMenuItems);this.render();YAHOO.util.Dom.addClass(oTR,"selected");}
function onContextMenuHide(p_sType,p_aArgs){var oTR=GetTableRowFromEventTarget(this.contextEventTarget);YAHOO.util.Dom.removeClass(oTR,"selected");}
function onContextMenuClick(p_sType,p_aArgs){var oItem=p_aArgs[1],oLI;if(oItem){oLI=getListItemFromEventTarget(this.contextEventTarget);oCurrentModelNode=oLI;alert(oCurrentModelNode);alert(oLI.firstChild.firstChild.firstChild.childNodes[0].firstChild.nodeValue);}}
function onContextMenuRender(p_sType,p_aArgs){this.subscribe("click",onContextMenuClick);}
oContextMenu=new YAHOO.widget.ContextMenu("contextmenu",{trigger:"ul2",lazyload:true});oContextMenu.beforeShowEvent.subscribe(onContextMenuBeforeShow);oContextMenu.hideEvent.subscribe(onContextMenuHide);});var Dom=YAHOO.util.Dom;var Event=YAHOO.util.Event;var DDM=YAHOO.util.DragDropMgr;var cloneid;var cloneElement;YAHOO.example.DDApp={init:function(){var rows=1,cols=2,i,j;for(i=1;i<cols+1;i=i+1){new YAHOO.util.DDTarget("ul"+i);}
readFactionList("factions/Factions.xml");}};Event.on('ul1','dblclick',function(ev){var tar=Event.getTarget(ev);if(tar.nodeName.toUpperCase()==='TD')
{elem=tar.parentNode.parentNode.parentNode.parentNode;addModelToArmyList(elem);}});Event.on('ul2','dblclick',function(ev){var tar=Event.getTarget(ev);if(tar.nodeName.toUpperCase()==='TD')
{elem=tar.parentNode.parentNode.parentNode.parentNode;removeModelFromArmyList(elem);}});YAHOO.example.DDList=function(id,sGroup,config){YAHOO.example.DDList.superclass.constructor.call(this,id,sGroup,config);var el=this.getDragEl();Dom.setStyle(el,"opacity",0.67);this.goingUp=false;this.lastY=0;};YAHOO.extend(YAHOO.example.DDList,YAHOO.util.DDProxy,{startDrag:function(x,y){var dragEl=this.getDragEl();var clickEl=this.getEl();if(clickEl.className.toLowerCase()==="list2")
Dom.setStyle(clickEl,"visibility","hidden");dragEl.innerHTML=clickEl.innerHTML;Dom.setStyle(dragEl,"color",Dom.getStyle(clickEl,"color"));Dom.setStyle(dragEl,"backgroundColor",Dom.getStyle(clickEl,"backgroundColor"));Dom.setStyle(dragEl,"border","2px solid gray");},endDrag:function(e){var srcEl=this.getEl();var proxy=this.getDragEl();var srcElem=srcEl;if(droppedOn2)
{srcElem=cloneElement;srcElem.className="list2";srcElem.id="li2"+"_"+nArmyList;nArmyList+=1;droppedOn2=false;}
Dom.setStyle(srcElem,"visibility","");Dom.setStyle(proxy,"visibility","");var a=new YAHOO.util.Motion(proxy,{points:{to:Dom.getXY(srcElem)}},0.2,YAHOO.util.Easing.easeOut);var proxyid=proxy.id;var thisid=this.id;a.onComplete.subscribe(function(){Dom.setStyle(proxyid,"visibility","hidden");Dom.setStyle(thisid,"visibility","");});a.animate();},onDragDrop:function(e,id){if(DDM.interactionInfo.drop.length===1)
{var pt=DDM.interactionInfo.point;var region=DDM.interactionInfo.sourceRegion;if(!region.intersect(pt))
{elem=this.getEl();if(id==="ul2"&&elem.parentNode.id!=="ul2")
{droppedOn2=true;var destDD=DDM.getDDById(id);addModelToArmyList(elem);destDD.isEmpty=false;DDM.refreshCache();}
else if(id==="ul1"&&elem.parentNode.id==="ul2")
{removeModelFromArmyList(elem);DDM.refreshCache();}}
else
{droppedOn2=false;}}else if(id==="ul2"){elem=this.getEl();if(elem.parentNode.id!=="ul2")
{droppedOn2=true;var destDD=DDM.getDDById(id);addModelToArmyList(elem);destDD.isEmpty=false;DDM.refreshCache();}}else if(id==="ul1"&&this.getEl().parentNode.id==="ul2"){elem=this.getEl();removeModelFromArmyList(elem);}},onDrag:function(e){var y=Event.getPageY(e);if(y<this.lastY){this.goingUp=true;}else if(y>this.lastY){this.goingUp=false;}
this.lastY=y;},onDragOver:function(e,id){var srcEl=this.getEl();var destEl=Dom.get(id);if(destEl.nodeName.toLowerCase()==="li"){var orig_p=srcEl.parentNode;var p=destEl.parentNode;if(p.id==="ul2")
{if(srcEl.parentNode.id==="listbox1")
{}
else
{if(this.goingUp){p.insertBefore(srcEl,destEl);}else{p.insertBefore(srcEl,destEl.nextSibling);}}
DDM.refreshCache();}}}});Event.onDOMReady(YAHOO.example.DDApp.init,YAHOO.example.DDApp,true);