var loadcntr = 0;
var arr_obj = Array();
var tplonload = function() {}
var _startID;

function getURLVar(urlVarName) {
	var urlHalves = String(document.location).split('?');
	var urlVarValue = '';
	if(urlHalves[1]) {
		var urlVars = urlHalves[1].split('&');
		for (i=0; i<=(urlVars.length); i++) {
			if (urlVars[i]) {
				var urlVarPair = urlVars[i].split('=');
				if (urlVarPair[0] && urlVarPair[0] == urlVarName) {
					urlVarValue = urlVarPair[1];
				}
			}
		}
	}
	return urlVarValue;
}

function filldiv(phpaction, targetdiv, isasync) {
	$.ajax({
		type: "GET",
		url: phpaction,
		async: isasync,
		success: function(datastr) {
			codesplit = datastr.split("\n@JAVASCRIPT_HTML_DELIMETER@\n");
			$(targetdiv).html(codesplit[1]);
			var clickFunc = function(event) {
				event.preventDefault();
				var newurl = $(this).attr("href")+"&mode=ajax";
				filldiv(newurl, targetdiv, true);
				this.blur();
			}
			$(targetdiv+" a.ajaxlink").click(clickFunc);
			for (i=0; i<$(targetdiv+" form.ajaxform").length; i++) {
				var newurl = $(targetdiv+" form.ajaxform:eq("+i+")").attr("action")+"&mode=ajax";
 				$(targetdiv+" form.ajaxform:eq("+i+")").attr("action", newurl);
			}
			for (i=0; i<$(targetdiv+" form:not('.ajaxform')").length; i++) {
				var newurl = $(targetdiv+" form:not('.ajaxform'):eq("+i+")").attr("action")+"&mode=normal";
 				$(targetdiv+" form:not('.ajaxform'):eq("+i+")").attr("action", newurl);
			}
			prepare_ajax_formpost(targetdiv+" form.ajaxform", targetdiv);
			eval(codesplit[0]);
			/*
			for (i=0; i<$(targetdiv+" form:not('.ajaxform')").length; i++) {
				var newurl = $(targetdiv+" form:not('.ajaxform'):eq("+i+")").attr("action")+"&mode=ajax";
 				$(targetdiv+" form:not('.ajaxform'):eq("+i+")").attr("action", newurl);
			}
			*/
		}
	});
}

function findTopContainer(childObj, containerClass) {
	var parentTag = childObj;
	do {
		parentTag = $(parentTag).parent();
	} while ((!(parentTag.hasClass(containerClass))) && (parentTag.tagName!="body"));
	return parentTag;
}

function prepare_ajax_formpost(formtosend, targetdiv) {
	var options = { 
		//target: formtosend,
		success: function(datastr) {
 			codesplit = datastr.split("\n@JAVASCRIPT_HTML_DELIMETER@\n");
 			$(targetdiv).html(codesplit[1]);
 			var clickFunc = function(event) {
 				event.preventDefault();
 				filldiv($(this).attr("href")+"&mode=ajax", targetdiv, true);
 				this.blur();
 			}
 			$(targetdiv+" a.ajaxlink").click(clickFunc);
 			for (i=0; i<$(targetdiv+" form.ajaxform").length; i++) {
				var newurl = $(targetdiv+" form.ajaxform:eq("+i+")").attr("action")+"&mode=ajax";
 				$(targetdiv+" form.ajaxform:eq("+i+")").attr("action", newurl);
			}
			for (i=0; i<$(targetdiv+" form:not('.ajaxform')").length; i++) {
				var newurl = $(targetdiv+" form:not('.ajaxform'):eq("+i+")").attr("action")+"&mode=normal";
 				$(targetdiv+" form:not('.ajaxform'):eq("+i+")").attr("action", newurl);
			}
 			prepare_ajax_formpost(targetdiv+" form.ajaxform", targetdiv);
 			eval(codesplit[0]);
		}
	};
	$(formtosend).ajaxForm(options);
}

function ajaxstartlinks() {
	var clickFunc = function(event) {
		event.preventDefault();
		topContainer = findTopContainer(this, "tpl_module");
		var newurl = $(this).attr("href")+"&mode=ajax";
		filldiv(newurl, "#"+topContainer.attr("id"), true);
		this.blur();
	}
	$("div.tpl_module a.ajaxlink").click(clickFunc);
	for (i=0; i<$("form.ajaxform").length; i++) {
		var newurl = $("form.ajaxform:eq("+i+")").attr("action")+"&mode=ajax";
 		$("form.ajaxform:eq("+i+")").attr("action", newurl);
 		topContainer = findTopContainer("form.ajaxform:eq("+i+")", "tpl_module");
 		prepare_ajax_formpost("#"+topContainer.attr("id")+" form.ajaxform", "#"+topContainer.attr("id"));
	}
}

function loadjs(actionscr) {
	var arr2str = arr_obj.toString();
	if (arr2str.search(actionscr)==-1) {
		loadcntr++;
		$.getScript(actionscr, function () {
			arr_obj.push(actionscr);
			loadcntr--;
			if (loadcntr == 0) if (typeof(tplonload)!="undefined") tplonload();
		});
	}
}

function dhtmlLoadCss(url) {
	var arr2str = arr_obj.toString();
	if (arr2str.search(url)==-1) {
		var e = document.createElement("link");
		e.rel = "stylesheet";
		e.href = url;
		e.type="text/css";
		document.getElementsByTagName("head")[0].appendChild(e);
		arr_obj.push(url);
	}
}

function dhtmlLoadScript(url) {
	var arr2str = arr_obj.toString();
	if (arr2str.search(url)==-1) {
		var e = document.createElement("script");
		e.src = url;
		e.type="text/javascript";
		document.getElementsByTagName("head")[0].appendChild(e);
		arr_obj.push(url);
	}
}
