var focusColor = "#FFFFDF";
var blurColor  = "#FFFFFF";

function toggleHighlight(obj, act) {
	if (act == "on")
		$(obj).style.backgroundColor = focusColor;
	else
		$(obj).style.backgroundColor = blurColor;
}



function initToggleStatus(table, pk) {
	var images = $A(document.getElementsByTagName("img"));
	images.each(function(image) {
		if (image.id.indexOf("img_") != -1) {
			// found status image
			Event.observe(image, "click", function(){ toggleStatus(table, pk, image.id); },  false);
		}
	});
}

function toggleStatus(table, pk, id) {
	//var url = "https://luna.edu.uoc.gr/dimos/backoffice/ajax.php";
	var url = "/dimos/backoffice/ajax.php";
	var params = "ajaxAction=toggleStatus&table=" + table + "&pk=" + pk + "&id=" + id.replace(/img_/, "");
	var req = new Ajax.Request(
		url,
		{
			method: 'post',
			parameters: params,
			onComplete: function(req) {
				if ($(id).src.indexOf("ico_approved") != -1) {
					// old status was approved. change img to pending
					$(id).src = $(id).src.replace(/approved/, "pending");
					$(id).alt = "Μη Δημοσιευμένο";
					$(id).title = "Μη Δημοσιευμένο";
				} else {
					// old status was pending. change img to approved
					$(id).src = $(id).src.replace(/pending/, "approved");
					$(id).alt = "Δημοσιευμένο";
					$(id).title = "Δημοσιευμένο";
				}
			},
			onFailure: function() {
				alert("An error occured. Please, try again later.");
			}
		}
	);
}


function checkUrlSymbol(table) {
	var urlSymbol = $F("url_symbol");
	var currentUrlSymbol = $F("current_url_symbol");
	//var url = "https://luna.edu.uoc.gr/dimos/backoffice/ajax.php";
	var url = "/dimos/backoffice/ajax.php";
	var params = "ajaxAction=checkUrlSymbol&table=" + table + "&url_symbol=" + urlSymbol;
	
	if (!urlSymbol && !$("url_symbol_exists"))
		return;
	if (urlSymbol == "" || (urlSymbol == currentUrlSymbol)) {
		$("url_symbol_exists").innerHTML = "";	
		return;
	}
		
	var req = new Ajax.Request(
		url,
		{
			method: 'post',
			parameters: params,
			onComplete: function(req) {
				if (parseInt(req.responseText) == 1) {
					with ($("url_symbol_exists")) {
						className = "check error";
						innerHTML = "Η ονομασία χρησιμοποιείται.";
					}	
					
					with ($("submit")) {
						style.backgroundColor = "#ccc";
						style.border = "0";
						disabled = "disabled";
					}	
				} else {
					with ($("url_symbol_exists")) {
						className = "check correct";
						innerHTML = "Η ονομασία δεν χρησιμοποιείται.";
					}	

					with ($("submit")) {
						style.backgroundColor = $("reset").style.backgroundColor;
						style.border = $("reset").style.border;
						disabled = "";
					}
				}	
			},
			onFailure: function() {
				alert("An error occured. Please, try again later.");
			}
		}
	);
}

/* TODO remove
function addEvent(elm, evType, fn, useCapture) {
       	// cross browser event handling for IE5+, NS6+ and Mozilla/Gecko
	if (elm.addEventListener) {
		elm.addEventListener(evType, fn, useCapture);
		return true;
	} else if (elm.attachEvent) {
		var r = elm.attachEvent("on" + evType, fn);
		return r;
	} else {
		elm["on" + evType] = fn;
	}
}
*/


function initHighlight() {
	var forms 	= document.getElementsByTagName("form");
	if (forms.length == 0)
		return;
	var inputAll 	= $A(document.getElementsByTagName("input"));
	var textareaAll = $A(document.getElementsByTagName("textarea"));
	var selectAll 	= $A(document.getElementsByTagName("select"));
		
	inputAll.each( 
		function(input){
			if (input.type == "text" || input.type == "password") {
				Event.observe($(input), "focus", function() { toggleHighlight($(input), "on" ); }, false);
				Event.observe($(input), "blur" , function() { toggleHighlight($(input), "off"); }, false);
			}
		}
	);

	textareaAll.each( 
		function(textarea){
			Event.observe($(textarea), "focus", function() { toggleHighlight($(textarea), "on" ); }, false);
			Event.observe($(textarea), "blur" , function() { toggleHighlight($(textarea), "off"); }, false);
		}
	);

	selectAll.each( 
		function(select){
			Event.observe($(select), "focus", function() { toggleHighlight($(select), "on" ); }, false);
			Event.observe($(select), "blur" , function() { toggleHighlight($(select), "off"); }, false);
		}
	);

	Form.focusFirstElement(document.getElementsByTagName("form")[0]);

}

// clear all text && textarea fields
function clearDocument() {
	var inputs 	= document.getElementsByTagName("input");
	var textareas 	= document.getElementsByTagName("textarea");

	for (var i = 0; i < inputs.length; i++) {
		var thisInput = inputs.item(i);
		if (thisInput.type == "text")
			thisInput.value = "";
	}
	
	for (var i = 0; i < textareas.length; i++) {
		textareas.item(i).value = "";
	}
}


function upperCase() {
	this.value = this.value.toUpperCase();	
}

function lowerCase() {
	this.value = this.value.toLowerCase();	
}

function trim(text) {
	return text.replace(/^\s+|\s+$/g, "")
}

function repeat(str, j) {
	if (j < 1)
		return;
	var s = "";	
	j.times(function(i) {
		s += str;
	});	
	return s;
}

function printR( _array ) { 
	for( var el in _array) { 
		if (isArray(el) || isObject(el))
			printR(el); 
		else 
			alert(el);
	}		
}

function isArray(arg) { 
	return (arg instanceof Array || typeof arg == "array"); 
}

function isObject(arg) { return(typeof arg == "object" || isArray(arg) || isFunction(arg)); }

function isFunction(arg) { return (arg instanceof Function  || typeof arg == "function"); }

function fromJSON(arg) {
	return eval("(" + arg + ")");
}

function getElementsByTagNames(list, obj) {
	if (!obj) 
		var obj = document;
	var tagNames = list.split(',');
	var resultArray = new Array();
	for (var i = 0;i < tagNames.length; i++)
	{
		var tags = obj.getElementsByTagName(tagNames[i]);
		for (var j = 0; j < tags.length; j++)
		{
			resultArray.push(tags[j]);
		}
	}
	var testNode = resultArray[0];
	if (testNode.sourceIndex)
	{
		resultArray.sort(function (a,b) {
			return a.sourceIndex - b.sourceIndex;
		});
	}
	else if (testNode.compareDocumentPosition)
	{
		resultArray.sort(function (a,b) {
		return 3 - (a.compareDocumentPosition(b) & 6);
		});
	}
	return resultArray;
}

/**
 * Toggle language tab
 */
function toggleTab(e) {
	e = e.parentNode; 
	var allDivs = getElementsByTagNames("div");
	allDivs.each(function(thisDiv) {
		if (thisDiv.id.indexOf("lang_") != -1) {
			thisDiv.style.display = "none";
		}
	});
	var activeDiv = "div_" + e.id.replace(/tab_/, "");
	$(activeDiv).style.display = "";

	var allTabs = getElementsByTagNames("li");
	allTabs.each(function(thisTab) {
		if (thisTab.id.indexOf("tab_") != -1)
			thisTab.className = "normal";
	});
	
	e.className = "activ";
}

// TODO remove
function isDefined(o) {
	return o != undefined;
}

// TODO remove
function isUndefined(o) {
	return o == undefined;
}

function defined(o) {
	return o != undefined;
}

