
// first, predefined function from the net
/*
	Written by Jonathan Snook, http://www.snook.ca/jonathan
	Add-ons by Robert Nyman, http://www.robertnyman.com
*/
/*
To get all a elements in the document with a “info-links” class.
    getElementsByClassName(document, "a", "info-links");
To get all div elements within the element named “container”, with a “col” class.
    getElementsByClassName(document.getElementById("container"), "div", "col"); 
To get all elements within in the document with a “click-me” class.
    getElementsByClassName(document, "*", "click-me");
*/

function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}

// variables defined

var aren_postid = "post"; // the post class name
var aren_enid = "en-post";
var aren_arid = "ar-post";
var aren_ar_link_text = "المقالة موجودة أيضاً بالغة العربية";
var aren_en_link_text = "This post is also available in English";

function aren_init(aren_post_string) {
	// first we look for the post tags in the html document
	var aren_postCollection = getElementsByClassName(aren_post_string, "div", "post");

	// divCollection now contains the objects of the posts
	// we loop through them and find if they have ar-post and en-post children.
	for (var i=0; i<aren_postCollection.length; i++) {
		var englishPosts =  getElementsByClassName(aren_postCollection[i], "div", "en-post");
		var arabicPosts =  getElementsByClassName(aren_postCollection[i], "div", "ar-post");
	
		if (englishPosts.length > 0 && arabicPosts.length > 0) {
			// we have both english and arabic texts so lets add the line to convert the post
			addLanguageLink(aren_postCollection[i], englishPosts, arabicPosts);
		}
	}
	return new_aren_post;
}

function addLanguageLink(postObj, enPostsObj, arPostsObj) {
	// create a div first
	var langLinkDiv = document.createElement("div");
	langLinkDiv.setAttribute("class","langswitch");
	langLinkDiv.innerHTML = "This post is also available in <a class=\"switchlink\" href=\"#\">Arabic</a><br/>";
	langLinkDiv.getElementsByTagName("a")[0].onclick = switchLanguage;
	// get the location of the first "p"
	var allPtags = postObj.getElementsByTagName("div");
	for (var i=0; i<allPtags.length; i++) {
	    postObj.insertBefore(langLinkDiv,allPtags[0]);
	}
	// see which divs to hide
	switch (showlang) {
		case "en":
			hideLangDiv(arid);
			showLangDiv(enid);
			break;
		case "ar":
			hideLangDiv(enid);
			showLangDiv(arid);
			break;
	}
}

function hideLangDiv(langDivToHide, htmlObj){
	if (htmlObj == null) { htmlObj = document; }
	var allDivClassNames =  getElementsByClassName(htmlObj, "div", langDivToHide);
	for (var i=0; i<allDivClassNames.length; i++){
		allDivClassNames[i].style.display = "none";
	}
}
function showLangDiv(langDivToShow, htmlObj){
	if (htmlObj == null) { htmlObj = document; }
	var allDivClassNames =  getElementsByClassName(htmlObj, "div", langDivToShow);
	for (var i=0; i<allDivClassNames.length; i++){
		allDivClassNames[i].style.display = "";
	}
}

function switchLanguage(obj) {
	postObj = obj.parentNode.parentNode;
	var allLangSwitchLinks = getElementsByClassName(postObj, "a", "aren_switchlink");
	for (var i=0; i<allLangSwitchLinks.length; i++) {
		// alert(allLangSwitchLinks[i].innerHTML);
		// alert(postObj.innerHTML);
		switch (allLangSwitchLinks[i].innerHTML) {
			case aren_ar_link_text:
				allLangSwitchLinks[i].innerHTML = aren_en_link_text;
				hideLangDiv(aren_enid, postObj);
				showLangDiv(aren_arid, postObj);
				break;
			case aren_en_link_text:
				allLangSwitchLinks[i].innerHTML = aren_ar_link_text;
				hideLangDiv(aren_arid, postObj);
				showLangDiv(aren_enid, postObj);
				break;
		}
	}
}