var u = navigator.userAgent;
var v = navigator.appVersion;
var isIE6 = u.indexOf("MSIE 6") >= 0;
var isIE7 = u.indexOf("MSIE 7") >= 0;
var isIE8 = u.indexOf("MSIE 8") >= 0;
var isFF3 = u.indexOf("Firefox/3") >= 0;


var footer_lang_status = 0;
var top_lang_status = 0;
var lang_dom = { "en": "com", "fr": "fr", "ro": "ro", "de": "de", "en_GB": "co.uk" };

function doLogin(form_id)
{
	var f = $(form_id);
	if (f.username.value.length < 1 || f.username.value == "Loginname")
	{
		f.username.focus();
		return;
	}
	if (f.password.value.length < 1)
	{
		f.password.focus();
		return;
	}
	
	new Ajax.Request(f.action,
	{
		method: f.method,
		parameters: f.serialize(true),
		onSuccess: function(transport)
		{
			var json=transport.responseText.evalJSON();
			if (json==false)
			{
				alert("Json Error");
			} else
			{
				if (json.err == true)
				{
					alert(json.err_msg);
					$(form_id).username.select();
					$(form_id).username.focus();
				} else
				{
					top.location.href = json.gotoUrl;
				}
			}
		},
		onFailure: function()
		{
			alert("Ajax Error");
		}
	});
}

function onsubmit_doLogin(form_id)
{
	doLogin(form_id);
	return false;
}

function langDivClose(event)
{
	if (footer_lang_status == 1 && Event.element(event).identify().indexOf("selected_footer_lang") == -1)
	{
		hideFooterLang();
	}
	
	if (top_lang_status == 1 && Event.element(event).identify().indexOf("selected_top_lang") == -1)
	{
		hideTopLang();
	}
	
	Event.stopObserving(document, "click", langDivClose);
}

function hideFooterLang()
{
	new Effect.Morph("SelLangFooter", {
		style: "height: 21px; top: 0px; padding-top: 0px;",
		duration: 0.3
	});
	
	$("selected_footer_lang").setStyle({background: "url(/static/images/lang-arrow.gif) center right no-repeat"});
	
	footer_lang_status = 0;
}

function showFooterLang()
{
	new Effect.Morph("SelLangFooter", {
		style: "height: 90px; top: -71px; padding-top: 2px;",
		duration: 0.3
	});
	
	$("selected_footer_lang").setStyle({background: "url(/static/images/lang-arrow-close.gif) center right no-repeat"});
	Event.observe(document, "click", langDivClose);

	footer_lang_status = 1;
}

function showTopLang()
{
	new Effect.Morph("SelLangTop", {
		style: "height: 110px;",
		duration: 0.3
	});
	
	Event.observe(document, "click", langDivClose);

	top_lang_status = 1;
}

function hideTopLang()
{
	new Effect.Morph("SelLangTop", {
		style: "height: 24px;",
		duration: 0.3
	});	
	
	top_lang_status = 0;
}

function chooseFooterLang()
{
	if (footer_lang_status == 0)
	{
		showFooterLang();
	} else
	{
		hideFooterLang();
	}
}

function chooseTopLang()
{
	if (top_lang_status == 0)
	{
		showTopLang(); 
	} else
	{
		hideTopLang();
	}
}

function setLang(lang)
{
	var l = window.location.toString();
	var qs = "";
	var pos = l.indexOf("?");
	if (pos != -1)
	{
		qs = l.substr(pos + 1);
		l = l.substr(0, pos);
	} 
	
	var params = qs.toQueryParams();
	params["lang"] = lang;
	
	if (l.indexOf("tx.cabanova.ro") != -1 || l.indexOf("www.cabanova.ro") != -1) c_lang = "ro";
	else if (l.indexOf("tx.cabanova.de") != -1 || l.indexOf("www.cabanova.de") != -1) c_lang = "de";
	else if (l.indexOf("tx.cabanova.fr") != -1 || l.indexOf("www.cabanova.fr") != -1) c_lang = "fr";
	else if (l.indexOf("tx.cabanova.com") != -1 || l.indexOf("www.cabanova.com") != -1) c_lang = "en";
	else if (l.indexOf("tx.cabanova.co.uk") != -1 || l.indexOf("www.cabanova.co.uk") != -1) c_lang = "en_GB";
	else c_lang = false;
	
	// check if we're live
	if (c_lang != false)
	{
		l = l.sub("cabanova." + lang_dom[c_lang], "cabanova." + lang_dom[lang]);
		params[SID_name] = SID;
	}
	
	window.location.href = l + "?" + $H(params).toQueryString();
}



/* FANCY TABLES HERE */
var u = navigator.userAgent;
var v = navigator.appVersion;
var isIE6 = u.indexOf("MSIE 6") >= 0;
var isIE7 = u.indexOf("MSIE 7") >= 0;
var isIE8 = u.indexOf("MSIE 8") >= 0;
var isFF3 = u.indexOf("Firefox/3") >= 0;

function get_table_elements()
{
	var elements = [];
	var tags = document.getElementsByTagName("TABLE");
	var el_ok;
	for (var i = 0; i < tags.length; i++)
	{
		if(tags[i].className.indexOf(" ") >= 0)
		{
			el_ok = "";
			var classes = tags[i].className.split(" ");
			for (var j = 0; j < classes.length; j++)
			{
				if (el_ok != "no" && classes[j] == "tableDataGrid" && tags[i].innerHTML.indexOf("corner_middle") < 0) el_ok = "yes";
				if (classes[j] == "nojs") el_ok = "no";
			}
			if (el_ok == "yes") elements.push(tags[i]);
		}
		else if (tags[i].className == "tableDataGrid" && tags[i].innerHTML.indexOf("corner_middle") < 0) elements.push(tags[i]);
	}
	return elements;
}

function make_table_corners()
{
	var i, j, el, rows = [], _rows, tbodyObj, row, cols, col, started, start_pos;

	var step = 0;	
	var elements = get_table_elements();
	
	for (i = 0; i < elements.length; i++)
	{
		var el = elements[i];
		
		if (el.firstChild.tagName == "TBODY")
		{
			_rows = el.firstChild.childNodes;
			tbodyObj = el.firstChild;
		}
		else
		{
			_rows = el.childNodes[1].childNodes;
			tbodyObj = el.childNodes[1];
		}

		//get the actual TR elements
		var rows = [];		
		for (j = 0; j < _rows.length; j++)
		{
			if (_rows[j].nodeType == 1) rows.push(_rows[j]);
		}

		for (var j = 0; j < rows[rows.length - 1].childNodes.length; j++)
		{
			if (rows[rows.length - 1].childNodes[j].nodeType == 1)
			{
				if (rows[rows.length - 1].childNodes[j].tagName.toUpperCase() == "TD")
				{
					if (rows[rows.length - 1].childNodes[j].className.indexOf("noborder") < 0)
					{
						rows[rows.length - 1].childNodes[j].className = rows[rows.length - 1].childNodes[j].className + " noborder";
					}
				}
			}
		}


		has_data = false;
		j = -1;
		while (!has_data && j<rows.length-1)
		{
			j++;
			var row = rows[j];
			for (k = 0; k < row.childNodes.length; k++)
			{
				if (row.childNodes[k].nodeType == 1 && row.childNodes[k].tagName.toUpperCase() == "TD")
				{
					if (row.childNodes[k].className.indexOf("data") >= 0)
					{
						has_data = true;
					}
				}
			}
		}
		
		//get the actual TD elements in the current TR
		cols = [];
		for (j = 0; j < row.childNodes.length; j++)
		{
			if (row.childNodes[j].nodeType == 1 && row.childNodes[j].tagName.toUpperCase() == "TD")
			{
				cols.push(row.childNodes[j]);
			}
		}

		if (!has_data) cols = [];
		
		started = false;
		start_pos = -1;
		col_width = 0;
		var new_row = document.createElement("TR");
		for (j = 0; j <= cols.length; j++)
		{
			col = cols[j];
			if (j < cols.length && col.className.indexOf("data") >= 0)
			{
				if (!started)
				{
					var new_col = document.createElement("TD");
					started = true;
					start_pos = j;
					col_width = 0;
				}
				col_width += col.offsetWidth;
			}
			else if (started)
			{
				var corner_topleft = document.createElement("DIV");
				corner_topleft.className = "corner_topleft";

				var corner_topright = document.createElement("DIV");
				corner_topright.className = "corner_topright";
				corner_topright.style.marginLeft = (col_width - 6) + "px";

				var corner_middle = document.createElement("DIV");
				corner_middle.className = "corner_middle";
				corner_middle.style.width = (col_width - 12) + "px";
				
				if (isIE7 || isIE6)
				{
					corner_topleft.style.marginTop = "0px";
					corner_topright.style.marginTop = "0px";
					corner_middle.style.marginTop = "0px";
				}

				new_col.className = "noborder";
				new_col.colSpan = j - start_pos;
				new_col.style.height = "6px";
				
				new_col.appendChild(corner_topleft);
				new_col.appendChild(corner_topright);
				new_col.appendChild(corner_middle);
				
				new_row.appendChild(new_col);
			}
			else
			{
				var td_empty = document.createElement("TD");
				td_empty.className = "noborder";
				new_row.appendChild(td_empty);
			}
		}
		tbodyObj.insertBefore(new_row, row);
		
		
		first_cols = cols;
		

		var row = rows[rows.length - 1];
		//get the actual TD elements in the current TR
		cols = [];
		for (j = 0; j < row.childNodes.length; j++)
		{
			if (row.childNodes[j].nodeType == 1 && row.childNodes[j].tagName.toUpperCase() == "TD")
			{
				cols.push(row.childNodes[j]);
			}
		}

		started = false;
		start_pos = -1;
		col_width = 0;
		var new_row = document.createElement("TR");
		for (j = 0; j <= cols.length; j++)
		{
			col = cols[j];
			if (j < cols.length && col.className.indexOf("data") >= 0)
			{
				if (!started)
				{
					var new_col = document.createElement("TD");
					started = true;
					start_pos = j;
					col_width = 0;
				}
				if (first_cols[j] != undefined)
					col_width += first_cols[j].offsetWidth;
			}
			else if (started)
			{
				var corner_bottomleft = document.createElement("DIV");
				corner_bottomleft.className = "corner_bottomleft";

				var corner_bottomright = document.createElement("DIV");
				corner_bottomright.className = "corner_bottomright";
				corner_bottomright.style.marginLeft = (col_width - 6) + "px";

				var corner_middle = document.createElement("DIV");
				corner_middle.className = "corner_middle";
				corner_middle.style.width = (col_width - 12) + "px";
				
				if (isIE7 || isIE6)
				{
					corner_middle.style.marginTop = "0px";
				}

				if (navigator.userAgent.indexOf("Firefox") != -1 || navigator.userAgent.indexOf("Chrome") != -1 || navigator.userAgent.indexOf("Safari") != -1 || navigator.appVersion.indexOf("MSIE 8") > 0)
				{
					corner_bottomleft.style.marginTop = "-3px";
					corner_bottomright.style.marginTop = "-3px";
					corner_middle.style.marginTop = "-3px";
				}

				new_col.className = "noborder";
				new_col.colSpan = j - start_pos;
				new_col.style.height = "6px";
				
				new_col.appendChild(corner_bottomleft);
				new_col.appendChild(corner_bottomright);
				new_col.appendChild(corner_middle);
				
				new_row.appendChild(new_col);
			}
			else
			{
				var td_empty = document.createElement("TD");
				td_empty.className = "noborder";
				new_row.appendChild(td_empty);
			}
		}
		tbodyObj.appendChild(new_row);
	}
}

Event.observe(window, 'load',
		function()
		{
			make_table_corners();
			pos_footer();
			$("FooterContainer").style.visibility = "visible";
		}
);

Event.observe(window, 'resize',
		function()
		{
			pos_footer();
		}
);

Event.observe(window, 'scroll',
		function()
		{
			pos_footer();
		}
);

function pos_footer()
{
	var w = f_clientWidth();
	var h = f_clientHeight();
	var l = f_scrollLeft();
	var t = f_scrollTop();
	var sw = getScrollWidth();
	var sh = getScrollHeight();
	var f = $("FooterContainer");
	var c = $("InternalContent");

	if (document.body.offsetHeight <= h)
	{
		f.style.position = "absolute";
		f.style.bottom = "0";
	}
	else
	{
		f.style.position = "static";
		f.style.bottom = "";
	}
}

function f_clientWidth() {
	return f_filterResults (
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
}
function f_clientHeight() {
	return f_filterResults (
		window.innerHeight ? window.innerHeight : 0,
		document.documentElement ? document.documentElement.clientHeight : 0,
		document.body ? document.body.clientHeight : 0
	);
}
function f_scrollLeft() {
	return f_filterResults (
		window.pageXOffset ? window.pageXOffset : 0,
		document.documentElement ? document.documentElement.scrollLeft : 0,
		document.body ? document.body.scrollLeft : 0
	);
}
function f_scrollTop() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}

function getScrollWidth()
{
   var w = window.pageXOffset ||
           document.body.scrollLeft ||
           document.documentElement.scrollLeft;
           
   return w ? w : 0;
}

function getScrollHeight()
{
   var h = window.pageYOffset ||
           document.body.scrollTop ||
           document.documentElement.scrollTop;
           
   return h ? h : 0;
}

function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}

function toggleInfo(idx)
{
	var el = $("info" + idx);

	if (el.style.position == "absolute")
	{
		el.style.position = "static";
		el.style.display = "";
		el.style.visibility = "visible";
		el.style.height = "auto";
		el.style.width = "650px";
	}
	else
	{
		el.style.display = el.style.display == "none" ? "" : "none";
	}
}