<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<script>
function trimRight(theString)  {
  while (theString != "")  {
    if (theString.charAt(theString.length-1) == " ")
      theString = theString.substring(0,theString.length-1);
    else
      break;
  }
  return theString;
}

function trimLeft(theString)  {
  while (theString != "")  {
    if (theString.charAt(0) == " ")
      theString = theString.substring(1);
    else
      break;
  }
  return theString;
}

function StringReplace(theString, origStr, newStr)  {
  var returnString = theString;
  if (theString.indexOf(origStr)>=0)  {
    returnString = theString.substring(0,theString.indexOf(origStr))+newStr+theString.substring(theString.indexOf(origStr)+origStr.length);
  }
  return returnString;
}

// for finding path information
function relativeToAbsoluteURL(ppath)     {
  var theDOM = dw.getDocumentDOM();
  var cpath  = theDOM.URL;
  cpath = cpath.substring(0,cpath.lastIndexOf("/"));
  var siteRoot = dw.getSiteRoot();
  while (ppath.indexOf("../") == 0)     {
    ppath = ppath.substring(3);
    cpath = cpath.substring(0,cpath.lastIndexOf("/"));
  }
  return cpath + "/" + ppath;
}

function absoluteToRelativeURL(getURL, startURL)     {
  retFil = "";
  getFol = getURL.substring(0,getURL.lastIndexOf("/"));
  getFil = getURL.substring(getURL.lastIndexOf("/")+1);
  staFol = startURL.substring(0,startURL.lastIndexOf("/"));
  while (getFol.toUpperCase().indexOf(staFol.toUpperCase()) < 0)     {
    retFil += "../"
    staFol = staFol.substring(0,staFol.lastIndexOf("/"));
  }
  retFil += getFol.substring(staFol.length+1);
  if (retFil != "" && retFil.charAt(retFil.length-1) != "/")     {
    retFil += "/";
  }
  retFil += getFil;
  return retFil;
}

//End Standard WA functions
function isATag(tagString)  {
  tagString = tagString.substring(1,tagString.length-1);
  var quoteArray = tagString.match(/['"]/g);
  var TagEnd = "";
  if (!(quoteArray))  {
    if (tagString.lastIndexOf("<")>=0)  {
	  tagString = tagString.substring(0,tagString.lastIndexOf("<"));
	  return "<"+tagString;
	}
	else
	  return true;
  }
  else  {
	  if (quoteArray)  {
	    var theCurQuote = quoteArray[quoteArray.length-1];
	    while (tagString.lastIndexOf(theCurQuote)>=0)  {
		  if (tagString.lastIndexOf("<")>tagString.lastIndexOf(theCurQuote))  {
		    return "<"+tagString.substring(0,tagString.lastIndexOf("<"));
		  }
	      var TagEnd = tagString.substring(tagString.lastIndexOf(theCurQuote)) + TagEnd;
		  tagString = tagString.substring(0,tagString.lastIndexOf(theCurQuote));
		  var secondQuoteIndex = tagString.lastIndexOf(theCurQuote);
		  var theProp = tagString.substring(secondQuoteIndex);
		  if (secondQuoteIndex != -1)
 		    tagString = tagString.substring(0,secondQuoteIndex);
	      else  {
		    var theTest = tagString.match(/=\s*/g);
		    if (theTest)  {
		      var lastIndexTest = theTest[theTest.length-1];
		      if (tagString.lastIndexOf(lastIndexTest)+lastIndexTest.length == tagString.length)  {
		        return ("<"+tagString+theCurQuote);
			    }
		    }
		  }
		  // TagEnd = already tested and ready to return
		  // theProp = "text contained inside
		  // tag string = before theProp so that (tagString + theProp + TagEnd) = theEntireTag
		  var theTest = tagString.match(/=\s*/g);
		  if (theTest)  {
		    var lastIndexTest = theTest[theTest.length-1];
		    if (tagString.lastIndexOf(lastIndexTest)+lastIndexTest.length == tagString.length)  {
			  tagString = tagString.substring(0,tagString.lastIndexOf(lastIndexTest));
			}
		  }
		  quoteArray = tagString.match(/['"]/g);
		  if (quoteArray)
		    theCurQuote = quoteArray[quoteArray.length-1];
		  else
		    break;
		} 
	  }
	}
  return true;
}

function isASingleTag(XMLString)  {
  var theRegEx = /\/\s*>/g;
  var theMatch = XMLString.match(theRegEx);
  if (theMatch)  {
    theMatch = theMatch[theMatch.length-1];
    if (XMLString.lastIndexOf(theMatch)+theMatch.length == XMLString.length)
      return true;
  }
  return false;
}

function findOpenTag(XMLString,Tag)  {
  var ReturnString = "";
  var XMLTag = new RegExp('<'+Tag+'[\\s>\/>]',"i");
  var parameterExpression = /\s\w{1,}\s*=\s*(['"])/;
  var theIndex = (XMLString.search(XMLTag));
  
  if (theIndex < 0)
    XMLString = "";
  else
    XMLString = XMLString.substring(theIndex);
    
  if (XMLString.length>2000)
    XMLString = XMLString.substring(0,2000);
    
  if (XMLTag.test(XMLString))  {
  	XMLString = XMLString.substring(0,XMLString.lastIndexOf(">")+1);
  	var nextEnd = XMLString.substring(0,XMLString.indexOf(">")+1);
  	var afterEnd = XMLString.substring(XMLString.indexOf(">")+1);
  	ReturnString += nextEnd;
  	FullTag = isATag(nextEnd);
  	while (FullTag!=true)  {
  	  FullTag = isATag(FullTag + afterEnd.substring(0,afterEnd.indexOf(">")+1));
  	  ReturnString += afterEnd.substring(0,afterEnd.indexOf(">")+1);
  	  afterEnd = afterEnd.substring(afterEnd.indexOf(">")+1);
  	}    
  }
  return ReturnString;
}  
  
function findTag(XMLString,Tag,includetag)  {
  if (XMLString == "")
    return "";
  var XMLTag = new RegExp('<\\s*'+Tag+'[^>]*>',"i");
  var endXMLTag = new RegExp('<\/\\s*'+Tag+'[^>]*>',"i");
  var subExpression = new RegExp('<\\s*'+Tag+'[\\s>\/]',"i");
  var OrigString = "";
  var ReturnString = "";
  var levelsin = 1;
  var FirstMatch = findOpenTag(XMLString,Tag);
  if (FirstMatch != "")  {
    if (includetag)  {
      ReturnString += FirstMatch;
      OrigString = String(XMLString).substring(XMLString.indexOf(FirstMatch)+FirstMatch.length);
    }
    else {
      if (isASingleTag(FirstMatch))
        levelsin = 0;
      OrigString = String(XMLString).substring(XMLString.indexOf(FirstMatch)+FirstMatch.length);
    }
  }
  
  if (isASingleTag(ReturnString))  {
    levelsin = 0;
  }
  while (levelsin > 0 && OrigString.length > 0)  {
    var nextTag = findOpenTag(OrigString,Tag);
    while (isASingleTag(nextTag)  && (OrigString.search(XMLTag) <= OrigString.search(endXMLTag)))  {
      ReturnString += OrigString.substring(0,OrigString.indexOf(nextTag) + nextTag.length);
      OrigString = OrigString.substring(OrigString.indexOf(nextTag) + nextTag.length);
      nextTag = findOpenTag(OrigString,Tag);
    }
    if (nextTag != "" && (OrigString.indexOf(nextTag) <= OrigString.search(endXMLTag)))  {
      ReturnString += OrigString.substring(0,OrigString.indexOf(nextTag));
      OrigString = OrigString.substring(OrigString.indexOf(nextTag));
      var FirstMatch = findOpenTag(OrigString,Tag);
      ReturnString += FirstMatch;
      OrigString = OrigString.substring(FirstMatch.length);
      levelsin++;
    }
    else  {
      if (endXMLTag.test(OrigString))  {
        if ((levelsin != 1) || includetag)  {
          ReturnString += OrigString.substring(0,OrigString.search(endXMLTag));
          OrigString = OrigString.substring(OrigString.search(endXMLTag));
          var MatchArray = OrigString.match(endXMLTag);
          var FirstMatch = String(MatchArray[0]);
          ReturnString += FirstMatch;
          OrigString = OrigString.substring(FirstMatch.length);
        }
        else  {
          ReturnString += OrigString.substring(0,OrigString.search(endXMLTag));
        }
        levelsin--;
      }
      else  {
        ReturnString += OrigString;
        OrigString = "";
      }
    }
  }
  return ReturnString;
}

function getTagType(theNewNode)  {
  var theFirstTagReg = /<[^!][^>]*/;
  var theFirstTag = (unescape(theNewNode).match(theFirstTagReg));
  if (theFirstTag)  {
    theFirstTag == String(theFirstTag[0]);
    theFirstTag = String(theFirstTag).replace(/<\s*/,"");
    if (theFirstTag.indexOf(" ")>0)
      theFirstTag = theFirstTag.substring(0,theFirstTag.indexOf(" "));
  }
  else
    theFirstTag = "";
  return theFirstTag;
}


function replaceTagVal(XMLString,Tag,NewVal)  {
  var returnString = XMLString;
  var origTag = findTag(XMLString,Tag,true);
  var origContents = findTag(XMLString,Tag,false);
  var newTag = origTag; 
  if (origTag != "")  {
    if (isASingleTag(XMLString))  {
      newTag = origTag.replace(/\/>/g,">")+NewVal+"</"+Tag+">";
    }
    else  {
      newTag = StringReplace(newTag,String('>'+origContents+'<'),String(">"+NewVal+"<"));
    }
    returnString = StringReplace(returnString,origTag,newTag);
  }
  return returnString;
}

function deleteTag(XMLString,Tag)  {
  var ReturnString = XMLString;
  var theTag = findTag(XMLString,Tag,true);
  if (theTag!="")  {
    theTagStart = XMLString.indexOf(theTag);
    theTagEnd = theTagStart + theTag.length;
    while (theTagStart != 0 && XMLString.charAt(theTagStart-1).search(/\s/) == 0)  {
      theTagStart--;
    }
    while (theTagEnd != XMLString.length && XMLString.charAt(theTagEnd).search(/\s/) == 0)  {
      theTagEnd++;
    }
    theTag = XMLString.substring(theTagStart,theTagEnd);
    ReturnString = StringReplace(ReturnString,theTag,"");
  }
  return ReturnString;
}

function getTagProp(XMLString,Tag,NewProp)  {
  var strippedTag = findOpenTag(XMLString,Tag);
  var origPropRegExp = new RegExp(' ' + NewProp + "\\s*=\\s*(['\"])[\\w\\W]*\\1","gi");
  var returnProp = "";
  if (origPropRegExp.test(strippedTag))  {
    var origProp = strippedTag.match(origPropRegExp)[0];
    origProp = origProp.match(/(['"])[\w\W]*\1/)[0];
    var tempOrig = origProp.replace(/\\['"]/g,"WA");
    tempOrig = tempOrig.substring(1,tempOrig.length-1);
    var theQuote = origProp.charAt(0);
    returnProp = origProp.substring(1,origProp.length-1);
    if (tempOrig.indexOf(theQuote) >= 0)
      returnProp = returnProp.substring(0,tempOrig.indexOf(theQuote));
  } 
  return returnProp;
}

function updateTagProp(XMLString,Tag,NewProp,NewPropVal)  {
  var theQuote = '"';
  var testProp = NewPropVal.replace(/\\["']/g,"WA");
  if (testProp.indexOf(theQuote)!=-1 && testProp.indexOf("'") == -1)  {
    theQuote = "'";
    NewPropVal = NewPropVal.replace(/'/g,"&#39;");
  }
  else
    NewPropVal = NewPropVal.replace(/"/g,"&quot;");
  var returnXML = XMLString;
  var XMLTag = new RegExp('<\\s*'+Tag+'[^>]*>',"i");
  var strippedTag =  findOpenTag(XMLString,Tag);
  if (strippedTag != "")  {
    strippedTag = strippedTag.substring(1,strippedTag.length-1);
    var origPropRegExp = new RegExp(' ' + NewProp + "\\s*=\\s*(['\"])?[\\w\\W]*\\1","gi");
    var newStrippedTag = strippedTag;
    var newPropPair = " "+NewProp+'='+theQuote + NewPropVal + theQuote;
  
    if (NewPropVal == "")
      newPropPair = "";
  
    if (origPropRegExp.test(strippedTag))  {
      var origProp = strippedTag.match(origPropRegExp)[0];
      var theQuote = origProp.charAt(origProp.indexOf("=")+1);
      if (theQuote!="'" && theQuote!='"')  {
        origPropRegExp = new RegExp(' ' + NewProp + "\\s*=\\s*\\w*","gi");
        origProp = origProp.match(origPropRegExp)[0];
      }
      else {
        var endProp = origProp.substring(origProp.indexOf(theQuote)+1).replace(/\\['"]/g,"WA");
        origProp = origProp.substring(0,origProp.indexOf(theQuote)+endProp.indexOf(theQuote)+2);
      }
      newStrippedTag = StringReplace(strippedTag,origProp,newPropPair);
    }
    else  {
      if (newStrippedTag.replace(/ /g,"").lastIndexOf("/")+1 >= newStrippedTag.replace(/ /g,"").length)
        newStrippedTag = newStrippedTag.substring(0,newStrippedTag.lastIndexOf("/")) + newPropPair + newStrippedTag.substring(newStrippedTag.lastIndexOf("/"));
      else
        newStrippedTag += newPropPair;
    }
  
    if (newStrippedTag != strippedTag && strippedTag !="")  {
      returnXML = XMLString.replace(strippedTag,newStrippedTag);
    }
  }
  return returnXML;
}

function WA_getConfigurationPath(pathFromConfig)     {
  var cPath = dw.getConfigurationPath();
  var tPath  = dw.getTempFolderPath();
  tPath  = tPath.substring(0, tPath.lastIndexOf("/"));
  tPath += pathFromConfig;
  if (DWfile.exists(tPath))     {
    return tPath;
  }
  return cPath + pathFromConfig;
}

if (!DWfile.exists(WA_getConfigurationPath('/Commands/Insert PayPal Buy Now.htm')))  {
  removePayPal();
}

function removePayPal()  {
  var theKeyfile = "/Startup/PayPal.htm";
  var theKeyLoc  = WA_getConfigurationPath('/Menus/ccmenus.xml');
  var theMenuXML = DWfile.read(WA_getConfigurationPath('/Menus/ccmenus.xml'));
  var theToolbar = DWfile.read(WA_getConfigurationPath('/Toolbars/cctoolbars.xml'));
  var alreadyThere = (theToolbar.indexOf("DW_PP_Insert_SIP")>0);

  if (alreadyThere)  {
    var tempToolbar = theToolbar;
    var theFirstToolbar = findTag(tempToolbar,"toolbar",true);
	
	while (theFirstToolbar!="" && alreadyThere)  {
	  if (getTagProp(theFirstToolbar,"toolbar","id")=="DW_Toolbar_Objects")  {
	    var theContents = findTag(theFirstToolbar,"toolbar",false);
		var newContents = theContents.substring(0,theContents.search(/<separator\/>\s*<menubutton\s*id=\s*"DW_PP_Insert_SIP"/i));
		theContents = theContents.substring(theContents.search(/<separator\/>\s*<menubutton\s*id=\s*"DW_PP_Insert_SIP"/i));
		theContents = theContents.substring(theContents.indexOf("/>")+2);
		newContents += theContents.substring(theContents.indexOf("/>")+2);
		DWfile.write(WA_getConfigurationPath('/Toolbars/cctoolbars.xml'),StringReplace(theToolbar,theFirstToolbar,replaceTagVal(theFirstToolbar,"toolbar",newContents)));
		alreadyThere = false;
	  }
	  else  {
	    tempToolbar = tempToolbar.substring(tempToolbar.indexOf(theFirstToolbar)+theFirstToolbar.length);
	    theFirstToolbar = findTag(tempToolbar,"toolbar",true);
      }
	}
  }

  if (theMenuXML.indexOf("PayPalPopup")>0)  {
    theNewXML = theMenuXML.substring(0,theMenuXML.search(/<menubar\s*name=".*"\s*id="PayPalPopup">/i));
    theMenuXML = theMenuXML.substring(theMenuXML.search(/<menubar\s*name=".*"\s*id="PayPalPopup">/i));
	theNewXML += theMenuXML.substring(theMenuXML.indexOf("</menubar>")+10);
	
    var tempMenu = theNewXML;
    var theFirstMenu = findTag(tempMenu,"menu",true);
	var alreadyThere = false;
	while (theFirstMenu != "" && !alreadyThere)  {
	  if (getTagProp(theFirstMenu,"menu","id")=="DWMenu_Insert")  {
	    var theContents = findTag(theFirstMenu,"menu",false);
		var newContents = theContents.substring(0,theContents.search(/\s*<menu name="_PayPal" id="DWMenu_PayPal"/i));
		theContents = theContents.substring(theContents.search(/\s*<menu name="_PayPal" id="DWMenu_PayPal"/i));
		newContents += theContents.substring(theContents.indexOf("</menu>")+7);
		DWfile.write(WA_getConfigurationPath('/Menus/ccmenus.xml'),StringReplace(theNewXML,theFirstMenu,replaceTagVal(theFirstMenu,"menu",newContents)));
		alreadyThere = true;
	  }
	  else  {
	    tempMenu = tempMenu.substring(tempMenu.indexOf(theFirstMenu)+theFirstMenu.length);
	    theFirstMenu = findTag(tempMenu,"menu",true);
      }
	}
  DWfile.remove(WA_getConfigurationPath('/Startup/PayPal_Menu.htm'));
  }
}

</script>
	<title>Untitled</title>
</head>

<body>



</body>
</html>