var SetUpCopy = {

  characterLimit: null,
  className: "toggle",
  arraypos: 0,
  moreLink: " ",
  lessLink: " ",

  initialize: function(charLimit, langPref) {
  	this.characterLimit = charLimit;
  	var textBlocks = this.crawlDOMForCopyToggles();
  	this.setLinkLanguage(langPref);
    this.checkForCharacterLimit(textBlocks);
  },
  
  
  crawlDOMForCopyToggles: function() {
    var pTagsToToggle =  new Array();
    var allPTags = document.getElementsByTagName("p");
    for(var i = 0; i < allPTags.length; i++) {
      var tempClass = allPTags[i].getAttribute("className") || allPTags[i].getAttribute("class");    
    	if(this.className == tempClass) {
    	   pTagsToToggle.push(allPTags[i]);
    	}
    }
    
    return pTagsToToggle;
  },

  setLinkLanguage: function(languagePref) {
  switch(languagePref) {
    case "en":
    this.moreLink = "More...";
    this.lessLink  = "...Shrink";
    break;

    case "es":
    this.moreLink = "Más información...";
    this.lessLink  = "...Reducir";
    break;

    case "fr":
    this.moreLink = "Lire la suite...";
    this.lessLink  = "...Réduire";
    break;

    case "de":
    this.moreLink = "Lesen Sie weiter...";
    this.lessLink  = "...Weniger";
    break;

    case "it":
    this.moreLink = "Continua...";
    this.lessLink  = "...Riduci";
    break;
  }
  },

  checkForCharacterLimit: function(textBlocks) {

  var CopyTagsToToggle = new Array();
  for(var i = 0; i < textBlocks.length; i++){
    if(textBlocks[i].innerHTML.length > this.characterLimit) {
      CopyTagsToToggle[this.arraypos] = textBlocks[i];
      this.arraypos++;
    }
  }

  this.buildNewString(CopyTagsToToggle);

  },

  buildNewString: function(CopyTagsToToggle) {

    var textToDisplay = "";
    var textToHide = "";
    var startingSpan = "<div class=\"copyToToggle\" style=\"display: none;\" id=\"copyToToggle";
    var closingSpan = "</div>";
    var startingHref = "<a onClick=\"ToggleCopy.actionToTake(this.id)\" href=\"javascript:void(0)\"";
    var hrefExpandID = " id=\"expand-";
    var hrefCollapseID = " id=\"collapse-";
    var closingHref = "</a>";

    for(var i = 0; i < CopyTagsToToggle.length; i++) {
      var text = CopyTagsToToggle[i].innerHTML;
      text = text.replace(/\"/g, "");
      var newCopy = "";
      var tempContainer = document.createElement('DIV');
      if (Math.abs(text.length - this.characterLimit) > 50) {
        var spacepos = text.substring(this.characterLimit, text.length).indexOf(" ");
        textToDisplay = text.substring(0, this.characterLimit + spacepos);
        textToHide = text.substring(this.characterLimit + spacepos, text.length);
        tempContainer.innerHTML  = textToDisplay + " " + startingHref + hrefExpandID + i + "\">" + this.moreLink + closingHref + startingSpan + i + "\">" + textToHide + " " + startingHref + hrefCollapseID + i + "\">" + this.lessLink + closingHref + closingSpan;
        CopyTagsToToggle[i].innerHTML = "";
        CopyTagsToToggle[i].appendChild(tempContainer);
      }
    }
  }
};

var ToggleCopy = {

  actionToTake: function(href) {

    var inddexOfDelimiter = href.indexOf("-");
    var actionToTake = href.substring(0, inddexOfDelimiter);
    var IdToAppend = href.substring(inddexOfDelimiter + 1);
    this.expandCollapse(actionToTake, IdToAppend);
  },

  expandCollapse: function(actionToTake, IdToAppend) {

    var idToToggle = "copyToToggle" + IdToAppend;
    var spanClicked = "expand-" + IdToAppend;
    if (actionToTake == "expand"){
      document.getElementById(spanClicked).style.display = "none";
      document.getElementById(idToToggle).style.display = "inline";
    } else {
      document.getElementById(idToToggle).style.display = "none";
      document.getElementById(spanClicked).style.display = "inline";
    }

  }
};
