function bubbleSort(inputArray, elems) {
	for (var i = inputArray.length - 1; i >= 0;  i--) {
		for (var j = 0; j <= i; j++) {
			if (inputArray[j+1] < inputArray[j]) {
				var tempValue = inputArray[j];
				inputArray[j] = inputArray[j+1];
				inputArray[j+1] = tempValue;
				var tempValue2 = elems[j];
				elems[j] = elems[j+1];
				elems[j+1] = tempValue2;
      	}
   	}
	}
	return elems;
}

function cleanSort() {
	var divs = document.getElementById("sortList");
	var alldivs = divs.getElementsByTagName("a");
	for (var i=0;i<alldivs.length;i++) {
		alldivs[i].className = '';
	}
}

function doAfterSort(actid, actorder, obj, key) {
	cleanSort();
	if (actorder.title == 'desc') {
		actorder.title = 'asc';
		obj.className = 'asc';
	} else {
		actorder.title = 'desc';
		obj.className = 'desc';
	}
	if (actid.title != key) {
		actorder.title = 'asc';
		actid.title = key;
		obj.className = 'asc';
	}
}

function tagSort(key, obj) {
	var divs = document.getElementById("tagArea");
	var elems = Array();
	var keys = Array();
	var a = 0;
	var actid = document.getElementById("activesort");
	var actorder = document.getElementById("activeorder");
	var alldivs = divs.getElementsByTagName("span");
	for (var i=0;i<alldivs.length;i++) {
		elems[a] = alldivs[i];
	    if (key == 'size')
	   	keys[a] = parseInt(elems[a].title);
		else if (key == 'name') {
			var str = elems[a].innerHTML;
			keys[a] = str.toLowerCase();
		} else if (key == 'length') {
			var str = elems[a].innerHTML;
			keys[a] = parseInt(str.length);
		}
		a = a + 1;
	}
	elems = bubbleSort(keys, elems);
	if (actid.title == key && actorder.title == 'asc') {
		var keys2 = Array();
		for (var i=0;i<keys.length;i++) {
			keys2[keys.length-i-1] = keys[i];
		}
		elems = bubbleSort(keys2, elems);
	}
	var out = '';
	for (var i=0;i<elems.length;i++) {
		out = out + '<span style="font-size: ' +
			elems[i].title + '%;" class="tag" onclick="addTag(this.innerHTML);" title="' +
			elems[i].title + '">' + elems[i].innerHTML + '</span> ';
	}
	divs.innerHTML = out;
	doAfterSort(actid, actorder, obj, key);
}

function blogSort(key, obj) {
	var divs = document.getElementById("posts");
	var elems = Array();
	var keys = Array();
	var a = 0;
	var actid = document.getElementById("activesort");
	var actorder = document.getElementById("activeorder");
	var alldivs = divs.getElementsByTagName("div");
	for (var i=0;i<alldivs.length;i++)
		if (alldivs[i].className == 'post') {
			elems[a] = alldivs[i];
			if (key == 'name') {
				var h2 = elems[a].getElementsByTagName("h2");
				var h2a = h2[0].getElementsByTagName("a");
				keys[a] = h2a[0].innerHTML;
			} else if (key == 'views') {
				var ac = elems[a].getElementsByTagName("span");
				for (var j=0;j<ac.length;j++)
					if (ac[j].className == 'accesscount')
						keys[a] = parseInt(ac[j].innerHTML);
			} else if (key == 'react') {
				var ac = elems[a].getElementsByTagName("span");
				for (var j=0;j<ac.length;j++)
					if (ac[j].className == 'react')
						keys[a] = parseInt(ac[j].innerHTML);
			} else if (key == 'date') {
				var ac = elems[a].getElementsByTagName("span");
				for (var j=0;j<ac.length;j++)
					if (ac[j].className == 'created')
						keys[a] = ac[j].innerHTML;
			}
			a = a + 1;
		}
	elems = bubbleSort(keys, elems);
	if (actid.title == key && actorder.title == 'asc') {
		var keys2 = Array();
		for (var i=0;i<keys.length;i++) {
			keys2[keys.length-i-1] = keys[i];
		}
		elems = bubbleSort(keys2, elems);
	}
	var out = '';
	for (var i=0;i<elems.length;i++) {
		out = out + '<div class="post">' + elems[i].innerHTML + '</div>';
	}
	divs.innerHTML = out;
	doAfterSort(actid, actorder, obj, key);
}