MediaWiki:Mobile.js: различия между версиями

Материал из Абдулопедии
Перейти к навигации Перейти к поиску
м
Метки: правка из мобильной версии правка с мобильного устройства
м
Метка: отменено
Строка 144: Строка 144:
       }
       }
   }, 100); // check every 100ms
   }, 100); // check every 100ms
//***** ED Collapse gallerey *****//
setInterval(function () {
  var elements = document.getElementsByClassName('blink');
  for (index = 0; index < elements.length; index++) {
    if (elements[index].style.visibility === 'visible') {
      elements[index].style.visibility = 'hidden';
    } else {
      elements[index].style.visibility = 'visible';
    }
  }
}, 1000);
/* Collapsible toggle */
$(document).ready(function() {
$(".collapsibletoggletext").click(function() {
$(this).parent().children(".collapsibletoggletext").toggleClass("hiddentext");
});
});
/* Cycle forwards or backwards through elements one at a time via click */
$(function(){
    $(".cyclesequence").find(".cyclesequencelinknext").click(function(){
        if ($(this).closest(".cyclesequence").find(".cyclesequenceitem:visible").next(".cyclesequenceitem").length === 0) {
            $(this).closest(".cyclesequence").find(".cyclesequenceitem:first").removeClass("hiddentext").siblings(".cyclesequenceitem").addClass("hiddentext");
      }
      else {
          $(this).closest(".cyclesequence").find(".cyclesequenceitem:visible").next(".cyclesequenceitem").removeClass("hiddentext").siblings(".cyclesequenceitem").addClass("hiddentext");
        }
    });
    $(".cyclesequence").find(".cyclesequencelinkprev").click(function(){
        if ($(this).closest(".cyclesequence").find(".cyclesequenceitem:visible").prev(".cyclesequenceitem").length === 0) {
            $(this).closest(".cyclesequence").find(".cyclesequenceitem:last").removeClass("hiddentext").siblings(".cyclesequenceitem").addClass("hiddentext");
      }
      else {
          $(this).closest(".cyclesequence").find(".cyclesequenceitem:visible").prev(".cyclesequenceitem").removeClass("hiddentext").siblings(".cyclesequenceitem").addClass("hiddentext");
        }
    });
});
/* Click link to show one or more items and hide other items */
$(function() {
$(".morphlink").click(function() {
var correspondingContent = $(this).data("correspondingcontent");
if ($(this).parents(".morphcontainer").length) {
$(this).parents(".morphcontainer").find(".morphcontent").addClass("hiddentext");
if ($("#" + correspondingContent).length) // morphing object uses IDs
$("#" + correspondingContent).removeClass("hiddentext");
else // morphing object uses classes
$("." + correspondingContent).removeClass("hiddentext");
}
else {
if ($("#" + correspondingContent).length) { // morphing object uses IDs
$("#" + correspondingContent).removeClass("hiddentext");
$("#" + correspondingContent).siblings().filter($(".morphcontent")).addClass("hiddentext");
}
else { // morphing object uses classes
$("." + correspondingContent).removeClass("hiddentext");
$("." + correspondingContent).siblings().filter($(".morphcontent")).addClass("hiddentext");
}
}
});
});
/* Legacy collapse code. Being kept for backwards compatibility.
  Based on WhiteMystery's original script, but jQuery-fied. */
function createLegacyCollapsibles() {
var allElements = $("span");
var collapsibleRegex = new RegExp("^co;(.+?);(.+?);(.+?);(.+?)(;(.+?))?$");
for (var i = 0; i < allElements.length; i++) {
if (collapsibleRegex.test(allElements[i].className)) {
console.warn("co; is deprecated. Use collapsibletoggle instead.");
var collapsibleValues = collapsibleRegex.exec(allElements[i].className);
var collapseText = collapsibleValues[1];
var expandText = collapsibleValues[2];
var defaultState = collapsibleValues[3];
var correspondingContent = collapsibleValues[4];
var toggleColor = collapsibleValues[6];
var collapsibleContent = $("." + correspondingContent);
var toggleLink;
allElements[i].innerHTML = "<a class=\"collapsibletoggle legacycollapsible\" data-collapsetext=\"" + collapseText + "\" data-expandtext=\"" + expandText + "\" data-correspondingcontent=\"" + correspondingContent + "\"></a>";
toggleLink = $(allElements[i]).find("a");
if (defaultState == "0") {
toggleLink[0].innerHTML = expandText;
collapsibleContent[0].className += " hiddentext";
}
else
toggleLink[0].innerHTML = collapseText;
if (toggleColor)
toggleLink[0].style.color = toggleColor;
}
}
}
$(document).ready(function() {
createLegacyCollapsibles();
$(".legacycollapsible").click(function() {
var expandText = $(this).data("expandtext");
var collapseText = $(this).data("collapsetext");
var correspondingContent = $(this).data("correspondingcontent");
$("." + correspondingContent).toggleClass("hiddentext");
if ($(this).text() == expandText)
$(this).text(collapseText);
else
$(this).text(expandText);
});
});
/* Function that creates collapsing objects and toggle links.
* Added 7/13/2008 by WhiteMystery ([email protected]) */
function createToggleLinks() {
var stateArray = new Array();
var allObjects = document.getElementsByTagName('span');
var rCollapsingObject = new RegExp("^co;(.+?);(.+?);(.+?);(.+?)(;(.+?))?$");
for ( var i = 0; i < allObjects.length; i++ ) {
if ( rCollapsingObject.test(allObjects[i].className) ) {
var collapsingInformation = rCollapsingObject.exec(allObjects[i].className);
var collapseText = collapsingInformation[1];
var expandText = collapsingInformation[2];
var initialState = collapsingInformation[3];
var targetClass = collapsingInformation[4];
var linkColor = collapsingInformation[6];
var toggleLink = document.createElement("a");
if ( initialState == "0" ) {
toggleLink.appendChild(document.createTextNode(expandText));
stateArray[targetClass] = "none";
}
else {
toggleLink.appendChild(document.createTextNode(collapseText));
stateArray[targetClass] = "inline";
}
toggleLink.setAttribute("href", "javascript:toggleCollapse('" + targetClass + "','" + collapseText + "','" + expandText + "')");
if ( linkColor != undefined && linkColor != "undefined" && linkColor != "" )
toggleLink.style.color = linkColor;
allObjects[i].innerHTML = "";
allObjects[i].appendChild(toggleLink);
}
else if ( allObjects[i].className == "morphMaster" ) {
var spanID = allObjects[i].getAttribute("id");
var targetID = spanID.substr(0, spanID.length - 6);
var counter = 1;
// Create forward and backward paging if the paging elements exist
if ( returnObjById(targetID + "LinkNext") && returnObjById(targetID + "LinkPrev") && returnObjById(targetID + "Content1") ) {
// Create the forward link
var nextLink = document.createElement("a");
nextLink.appendChild(document.createTextNode(returnObjById(targetID + "LinkNext").innerHTML));
nextLink.setAttribute("href", "javascript:morphForward('" + targetID + "')");
returnObjById(targetID + "LinkNext").innerHTML = "";
returnObjById(targetID + "LinkNext").appendChild(nextLink, 0);
// Create the backward link
var prevLink = document.createElement("a");
prevLink.appendChild(document.createTextNode(returnObjById(targetID + "LinkPrev").innerHTML));
prevLink.setAttribute("href", "javascript:morphBackward('" + targetID + "')");
returnObjById(targetID + "LinkPrev").innerHTML = "";
returnObjById(targetID + "LinkPrev").appendChild(prevLink, 0);
// Initialize content panes
while ( returnObjById(targetID + "Content" + counter) ) {
if ( counter == 1 )
returnObjById(targetID + "Content" + counter).style.display = "inline";
else
returnObjById(targetID + "Content" + counter).style.display = "none";
counter++;
}
}
counter = 1;
// Whether or not there is paging, generate normal links
while ( returnObjById(targetID + "Link" + counter) && returnObjById(targetID + "Content" + counter) ) {
var morphLink = document.createElement("a");
morphLink.appendChild(document.createTextNode(returnObjById(targetID + "Link" + counter).innerHTML));
morphLink.setAttribute("href", "javascript:performMorph('" + targetID + "','" + counter + "')");
returnObjById(targetID + "Link" + counter).innerHTML = "";
returnObjById(targetID + "Link" + counter).appendChild(morphLink, 0);
// Initialize content panes
if ( counter == 1 )
returnObjById(targetID + "Content" + counter).style.display = "inline";
else
returnObjById(targetID + "Content" + counter).style.display = "none";
counter++;
}
allObjects[i].innerHTML = "1";
allObjects[i].style.display = "none";
}
}
// Set state of appropriate objects
allObjects = document.getElementsByTagName('*');
for ( var i = 0; i < allObjects.length; i++ ) {
if ( stateArray[allObjects[i].className] )
allObjects[i].style.display = stateArray[allObjects[i].className];
}
}
/* Function that toggles collapsing objects.
* Added 7/13/2008 by WhiteMystery ([email protected]) */
function toggleCollapse(targetClass, collapseText, expandText) {
var allObjects = document.getElementsByTagName('*');
var rCollapsingObject = new RegExp("^co;(.+?);(.+?);(.+?);" + targetClass + "(;(.+?))?$");
var linkType;
for ( var i = 0; i < allObjects.length; i++ ) {
if ( allObjects[i].className == targetClass ) {
if ( allObjects[i].style.display == "none" ) {
allObjects[i].style.display = "inline";
linkType = "Collapse";
}
else {
allObjects[i].style.display = "none";
linkType = "Expand";
}
}
}
allObjects = document.getElementsByTagName('span');
for ( var i = 0; i < allObjects.length; i++ ) {
if ( rCollapsingObject.test(allObjects[i].className) ) {
var collapsingInformation = rCollapsingObject.exec(allObjects[i].className);
var collapseText = collapsingInformation[1];
var expandText = collapsingInformation[2];
var linkColor = collapsingInformation[5];
var toggleLink = document.createElement("a");
if ( linkType == "Expand" )
toggleLink.appendChild(document.createTextNode(expandText));
else if ( linkType == "Collapse" )
toggleLink.appendChild(document.createTextNode(collapseText));
toggleLink.setAttribute("href", "javascript:toggleCollapse('" + targetClass + "','" + collapseText + "','" + expandText + "')");
if ( linkColor != undefined && linkColor != "undefined" && linkColor != "" )
toggleLink.style.color = linkColor;
allObjects[i].innerHTML = "";
allObjects[i].appendChild(toggleLink);
}
}
}

Версия 07:34, 13 октября 2023

/* All JavaScript here will be loaded for users of the mobile site */

 var timer = setInterval(function() {
       if ($('.menu ul:first').length) {
           console.log("mobile menu exists");
           clearInterval(timer);
           $('.menu ul:first').after(
                 '<ul class="level1"> \
                      <li> \
                      <a href="#" \
                            class="mw-ui-icon mw-ui-icon-before mw-ui-icon-minerva-articles"> \
                      <span>Статьи по категориям</span> \
                      </a> \
                      </li> \
                      <ul class ="level2"> \
                           <li> \
                           <a href="/Category:Абдулокультура" \
                                 class="mw-ui-icon mw-ui-icon-before"> \
                           <span>Абдулокультура</span> \
                           </a> \
                           </li> \
                           <li> \
                           <a href="/Category:Абдулонаука" \
                                 class="mw-ui-icon mw-ui-icon-before"> \
                           <span>Абдулонаука</span> \
                           </a> \
                           </li> \
                           <li> \
                           <a href="/Category:Грешники" \
                                 class="mw-ui-icon mw-ui-icon-before"> \
                           <span>Грешники</span> \
                           </a> \
                           </li> \
                           <li> \
                           <a href="/Category:Великие грешники" \
                                 class="mw-ui-icon mw-ui-icon-before"> \
                           <span>Великие грешники</span> \
                           </a> \
                           </li> \
                           <li> \
                           <a href="/Category:Грехоболезни" \
                                 class="mw-ui-icon mw-ui-icon-before"> \
                           <span>Грехоболезни</span> \
                           </a> \
                           </li> \
                           <li> \
                           <a href="/Category:Абдулоистория" \
                                 class="mw-ui-icon mw-ui-icon-before"> \
                           <span>Абдулоистория</span> \
                           </a> \
                           </li> \
                           <li> \
                           <a href="/Category:Сониблядство" \
                                 class="mw-ui-icon mw-ui-icon-before"> \
                           <span>Сониблядство</span> \
                           </a> \
                           </li> \
                           <li> \
                           <a href="/Category:Абдулоосновы" \
                                 class="mw-ui-icon mw-ui-icon-before"> \
                           <span>Абдулоосновы</span> \
                           </a> \
                           </li> \
                           <li> \
                           <a href="/Category:Юмор" \
                                 class="mw-ui-icon mw-ui-icon-before"> \
                           <span>Юмор</span> \
                           </a> \
                           </li> \
                           <li> \
                           <a href="/Category:Абдулопередачи" \
                                 class="mw-ui-icon mw-ui-icon-before"> \
                           <span>Абдулопередачи</span> \
                           </a> \
                           </li> \
                           <li> \
                           <a href="/Category:Мерзость" \
                                 class="mw-ui-icon mw-ui-icon-before"> \
                           <span>Мерзость</span> \
                           </a> \
                           </li> \
                           <li> \
                           <a href="/Category:Автономии адептов" \
                                 class="mw-ui-icon mw-ui-icon-before"> \
                           <span>Автономии адептов</span> \
                           </a> \
                           </li> \
                           <li> \
                           <a href="/Category:Абдулопредатели" \
                                 class="mw-ui-icon mw-ui-icon-before"> \
                           <span>Абдулопредатели</span> \
                           </a> \
                           </li> \
                           <li> \
                           <a href="/Category:Негативные явления" \
                                 class="mw-ui-icon mw-ui-icon-before"> \
                           <span>Негативные явления</span> \
                           </a> \
                           </li> \
                           <li> \
                           <a href="/Category:Абдулоиконы" \
                                 class="mw-ui-icon mw-ui-icon-before"> \
                           <span>Абдулоиконы</span> \
                           </a> \
                           </li> \
                      </ul> \
                 </ul> \
                 <ul> \
                           <li> \
                          <a href="/Абдулопедия:Читать Биборан" \
                            class="mw-ui-icon mw-ui-icon-before mw-ui-icon-minerva-read"> \
                          <span>Читать Биборан</span> \
                          </a> \
                           </li> \
                 </ul> \
                 <ul> \
                      <li> \
                      <a href="/Special:RecentChanges" \
                            class="mw-ui-icon mw-ui-icon-before mw-ui-icon-minerva-rchanges"> \
                      <span>Свежие правки</span> \
                      <a href="/Абдулопедия:Устав" \
                            class="mw-ui-icon mw-ui-icon-before mw-ui-icon-minerva-rules"> \
                      <span>Правила Абдулопедии</span> \
                      <a href="/Абдулопедия:Поддержать_проект" \
                            class="mw-ui-icon mw-ui-icon-before mw-ui-icon-minerva-donate"> \
                      <span>Поддержать Абдулопедию</span> \
                      <a href="/Служебная:Contact" \
                            class="mw-ui-icon mw-ui-icon-before mw-ui-icon-minerva-contact"> \
                      <span>Написать нам</span> \
                      <a href="/Абдулопедия:Создать статью" \
                            class="mw-ui-icon mw-ui-icon-before mw-ui-icon-minerva-newarticle"> \
                      <span>Создать статью</span> \
                      <a href="/Абдулопедия:Чем_помочь%3F" \
                            class="mw-ui-icon mw-ui-icon-before mw-ui-icon-minerva-help"> \
                      <span>Чем нам можно помочь</span> \
                      </a> \
                      </li> \
                 </ul>'
            );
            $(".menu").find(".level2").hide(); // hide level2 until level1 is clicked
            $(".level1").click(function(event){ 
                 $(this).find(".level2").slideToggle(500);
            }); // if level1 is clicked, dropdown level2
       }
  }, 100); // check every 100ms

//***** ED Collapse gallerey *****//
setInterval(function () {
  var elements = document.getElementsByClassName('blink');
  for (index = 0; index < elements.length; index++) {
    if (elements[index].style.visibility === 'visible') {
      elements[index].style.visibility = 'hidden';
    } else {
      elements[index].style.visibility = 'visible';
    }
  }
}, 1000);

/* Collapsible toggle */

$(document).ready(function() {
	$(".collapsibletoggletext").click(function() {
		$(this).parent().children(".collapsibletoggletext").toggleClass("hiddentext");
	});
});

/* Cycle forwards or backwards through elements one at a time via click */

$(function(){
    $(".cyclesequence").find(".cyclesequencelinknext").click(function(){
        if ($(this).closest(".cyclesequence").find(".cyclesequenceitem:visible").next(".cyclesequenceitem").length === 0) {
            $(this).closest(".cyclesequence").find(".cyclesequenceitem:first").removeClass("hiddentext").siblings(".cyclesequenceitem").addClass("hiddentext");
       }
       else {
           $(this).closest(".cyclesequence").find(".cyclesequenceitem:visible").next(".cyclesequenceitem").removeClass("hiddentext").siblings(".cyclesequenceitem").addClass("hiddentext");
         }
    });
    $(".cyclesequence").find(".cyclesequencelinkprev").click(function(){
        if ($(this).closest(".cyclesequence").find(".cyclesequenceitem:visible").prev(".cyclesequenceitem").length === 0) {
            $(this).closest(".cyclesequence").find(".cyclesequenceitem:last").removeClass("hiddentext").siblings(".cyclesequenceitem").addClass("hiddentext");
       }
       else {
           $(this).closest(".cyclesequence").find(".cyclesequenceitem:visible").prev(".cyclesequenceitem").removeClass("hiddentext").siblings(".cyclesequenceitem").addClass("hiddentext");
         }
    });
});

/* Click link to show one or more items and hide other items */

$(function() {
	$(".morphlink").click(function() {
		var correspondingContent = $(this).data("correspondingcontent");
		if ($(this).parents(".morphcontainer").length) {
			$(this).parents(".morphcontainer").find(".morphcontent").addClass("hiddentext");
			if ($("#" + correspondingContent).length) // morphing object uses IDs
				$("#" + correspondingContent).removeClass("hiddentext");
			else // morphing object uses classes
				$("." + correspondingContent).removeClass("hiddentext");
		}
		else {
			if ($("#" + correspondingContent).length) { // morphing object uses IDs
				$("#" + correspondingContent).removeClass("hiddentext");
				$("#" + correspondingContent).siblings().filter($(".morphcontent")).addClass("hiddentext");
			}
			else { // morphing object uses classes
				$("." + correspondingContent).removeClass("hiddentext");
				$("." + correspondingContent).siblings().filter($(".morphcontent")).addClass("hiddentext");
			}
		}
	});
});

/* Legacy collapse code. Being kept for backwards compatibility.
   Based on WhiteMystery's original script, but jQuery-fied. */

function createLegacyCollapsibles() {
	var allElements = $("span");
	var collapsibleRegex = new RegExp("^co;(.+?);(.+?);(.+?);(.+?)(;(.+?))?$");
	for (var i = 0; i < allElements.length; i++) {
		if (collapsibleRegex.test(allElements[i].className)) {
			console.warn("co; is deprecated. Use collapsibletoggle instead.");
			var collapsibleValues = collapsibleRegex.exec(allElements[i].className);
			var collapseText = collapsibleValues[1];
			var expandText = collapsibleValues[2];
			var defaultState = collapsibleValues[3];
			var correspondingContent = collapsibleValues[4];
			var toggleColor = collapsibleValues[6];
			var collapsibleContent = $("." + correspondingContent);
			var toggleLink;
			allElements[i].innerHTML = "<a class=\"collapsibletoggle legacycollapsible\" data-collapsetext=\"" + collapseText + "\" data-expandtext=\"" + expandText + "\" data-correspondingcontent=\"" + correspondingContent + "\"></a>";
			toggleLink = $(allElements[i]).find("a");
			if (defaultState == "0") {
				toggleLink[0].innerHTML = expandText;
				collapsibleContent[0].className += " hiddentext";
			}
			else
				toggleLink[0].innerHTML = collapseText;
			if (toggleColor)
				toggleLink[0].style.color = toggleColor;
		}
	}
}

$(document).ready(function() {
	createLegacyCollapsibles();
	$(".legacycollapsible").click(function() {
		var expandText = $(this).data("expandtext");
		var collapseText = $(this).data("collapsetext");
		var correspondingContent = $(this).data("correspondingcontent");
		$("." + correspondingContent).toggleClass("hiddentext");
		if ($(this).text() == expandText)
			$(this).text(collapseText);
		else
			$(this).text(expandText);
	});
});

/* Function that creates collapsing objects and toggle links.
 * Added 7/13/2008 by WhiteMystery ([email protected]) */

function createToggleLinks() {

	var stateArray = new Array();
	var allObjects = document.getElementsByTagName('span');
	var rCollapsingObject = new RegExp("^co;(.+?);(.+?);(.+?);(.+?)(;(.+?))?$");

	for ( var i = 0; i < allObjects.length; i++ ) {

		if ( rCollapsingObject.test(allObjects[i].className) ) {

			var collapsingInformation = rCollapsingObject.exec(allObjects[i].className);

			var collapseText = collapsingInformation[1];
			var expandText = collapsingInformation[2];
			var initialState = collapsingInformation[3];
			var targetClass = collapsingInformation[4];
			var linkColor = collapsingInformation[6];

			var toggleLink = document.createElement("a");

			if ( initialState == "0" ) {

				toggleLink.appendChild(document.createTextNode(expandText));
				stateArray[targetClass] = "none";
			}

			else {

				toggleLink.appendChild(document.createTextNode(collapseText));
				stateArray[targetClass] = "inline";
			}

			toggleLink.setAttribute("href", "javascript:toggleCollapse('" + targetClass + "','" + collapseText + "','" + expandText + "')");

			if ( linkColor != undefined && linkColor != "undefined" && linkColor != "" )
				toggleLink.style.color = linkColor;

			allObjects[i].innerHTML = "";
			allObjects[i].appendChild(toggleLink);
		}

		else if ( allObjects[i].className == "morphMaster" ) {

			var spanID = allObjects[i].getAttribute("id");
			var targetID = spanID.substr(0, spanID.length - 6);
			var counter = 1;

			// Create forward and backward paging if the paging elements exist
			if ( returnObjById(targetID + "LinkNext") && returnObjById(targetID + "LinkPrev") && returnObjById(targetID + "Content1") ) {

				// Create the forward link
				var nextLink = document.createElement("a");
				nextLink.appendChild(document.createTextNode(returnObjById(targetID + "LinkNext").innerHTML));
				nextLink.setAttribute("href", "javascript:morphForward('" + targetID + "')");

				returnObjById(targetID + "LinkNext").innerHTML = "";
				returnObjById(targetID + "LinkNext").appendChild(nextLink, 0);

				// Create the backward link
				var prevLink = document.createElement("a");
				prevLink.appendChild(document.createTextNode(returnObjById(targetID + "LinkPrev").innerHTML));
				prevLink.setAttribute("href", "javascript:morphBackward('" + targetID + "')");

				returnObjById(targetID + "LinkPrev").innerHTML = "";
				returnObjById(targetID + "LinkPrev").appendChild(prevLink, 0);

				// Initialize content panes
				while ( returnObjById(targetID + "Content" + counter) ) {

					if ( counter == 1 )
						returnObjById(targetID + "Content" + counter).style.display = "inline";
					else
						returnObjById(targetID + "Content" + counter).style.display = "none";

					counter++;
				}
			}

			counter = 1;

			// Whether or not there is paging, generate normal links
			while ( returnObjById(targetID + "Link" + counter) && returnObjById(targetID + "Content" + counter) ) {

				var morphLink = document.createElement("a");
				morphLink.appendChild(document.createTextNode(returnObjById(targetID + "Link" + counter).innerHTML));
				morphLink.setAttribute("href", "javascript:performMorph('" + targetID + "','" + counter + "')");

				returnObjById(targetID + "Link" + counter).innerHTML = "";
				returnObjById(targetID + "Link" + counter).appendChild(morphLink, 0);

				// Initialize content panes
				if ( counter == 1 )
					returnObjById(targetID + "Content" + counter).style.display = "inline";
				else
					returnObjById(targetID + "Content" + counter).style.display = "none";

				counter++;
			}

			allObjects[i].innerHTML = "1";
			allObjects[i].style.display = "none";
		}
	}

	// Set state of appropriate objects
	allObjects = document.getElementsByTagName('*');

	for ( var i = 0; i < allObjects.length; i++ ) {

		if ( stateArray[allObjects[i].className] )
			allObjects[i].style.display = stateArray[allObjects[i].className];
	}
}

/* Function that toggles collapsing objects.
 * Added 7/13/2008 by WhiteMystery ([email protected]) */

function toggleCollapse(targetClass, collapseText, expandText) {

	var allObjects = document.getElementsByTagName('*');
	var rCollapsingObject = new RegExp("^co;(.+?);(.+?);(.+?);" + targetClass + "(;(.+?))?$");

	var linkType;

	for ( var i = 0; i < allObjects.length; i++ ) {

		if ( allObjects[i].className == targetClass ) {

			if ( allObjects[i].style.display == "none" ) {

				allObjects[i].style.display = "inline";
				linkType = "Collapse";
			}

			else {

				allObjects[i].style.display = "none";
				linkType = "Expand";
			}
		}
	}

	allObjects = document.getElementsByTagName('span');

	for ( var i = 0; i < allObjects.length; i++ ) {

		if ( rCollapsingObject.test(allObjects[i].className) ) {

			var collapsingInformation = rCollapsingObject.exec(allObjects[i].className);

			var collapseText = collapsingInformation[1];
			var expandText = collapsingInformation[2];
			var linkColor = collapsingInformation[5];

			var toggleLink = document.createElement("a");

			if ( linkType == "Expand" )

				toggleLink.appendChild(document.createTextNode(expandText));

			else if ( linkType == "Collapse" )

				toggleLink.appendChild(document.createTextNode(collapseText));

			toggleLink.setAttribute("href", "javascript:toggleCollapse('" + targetClass + "','" + collapseText + "','" + expandText + "')");

			if ( linkColor != undefined && linkColor != "undefined" && linkColor != "" )
				toggleLink.style.color = linkColor;

			allObjects[i].innerHTML = "";
			allObjects[i].appendChild(toggleLink);
		}
	}
}