/*

 * Plugin 'Company Accordions' for the 'wwsc_flashmap' extension.

 *

 * @author	Stefan Gandlau <stefan@gandlau.net>

 * @package	TYPO3

 * @subpackage	tx_wwscflashmap

 */



var xmlCode = "";

var accordion;

var flashmap;

var accordionToXML = new Array();

var firstUse = false;



function updateTagboxes(xmlstring) {

  if(firstUse == true) {

    firstUse = false

  } else

    $('myContent').updateTagBoxes(xmlstring);

}



function xmlToFlash(code) {
  accordionToXML = new Array();

  xmlCode = code;

  parser = new DOMParser();

  xmlDoc = parser.parseFromString(xmlCode, "text/xml");

  var companies = xmlDoc.getElementsByTagName("company");

  accordionToXML["-1"] = -1;

  if (companies.length > 0) {
    for (var x = 0; x < companies.length; x++) {
      accordionToXML[companies[x].getAttribute("uid")] = x;

    }

  }

  $('myContent').showCompanies(xmlCode);

  startAccordion();

}



function startAccordion() {

  accordion = new Accordion('div.PREtoggler', 'div.element', {

    onActive: function(toggler, element) {

      toggler.setStyle("background", "#f2d169 url(fileadmin/templates/images/accordion_active.gif) 160px 8px no-repeat");

      onAccordionSelect(toggler.id.replace("togg", ""));

    },

    onBackground: function(toggler, element) {

      toggler.setStyle("background", "#f2d169 url(fileadmin/templates/images/accordion_inactive.gif) 160px 8px no-repeat");

    },

    display: -1

  }, $('cnetwork'));

}



function onAccordionSelect(id) {

  $('myContent').selectFlag(id);

}



function onTagSelected(tagId, method, tools) {

  tx_wwscflashmap_pi1processFormData("companyXML", tagId, method, tools);

}



function onFlagSelected(uid) {

  accordion.display(accordionToXML[uid]);

}





/* IE Fix for missing DOMParser Object */



if (typeof DOMParser == "undefined") {

   DOMParser = function () {}



   DOMParser.prototype.parseFromString = function (str, contentType) {

      if (typeof ActiveXObject != "undefined") {

         var d = new ActiveXObject("MSXML.DomDocument");

         d.loadXML(str);

         return d;

      } else if (typeof XMLHttpRequest != "undefined") {

         var req = new XMLHttpRequest;

         req.open("GET", "data:" + (contentType || "application/xml") + ";charset=utf-8," + encodeURIComponent(str), false);

         if (req.overrideMimeType)

            req.overrideMimeType(contentType);

         req.send(null);

         return req.responseXML;

      }

   }

}

