var visibleLayer = new Array();
var visibleList  = new Array();
var tabdataList  = new Array();
var disabled;

function getLayerObject(layerName)
{
    if (typeof layerName == "object")
	{
		return layerName;
	}
	else if(document.layers)
    {
        return document.layers[layerName];
    }
    else
    {
		if (document.getElementById(layerName))
        {
            return document.getElementById(layerName);
        }
    }
}

function showLayer(layerName, listName)
{
    myLayer = getLayerObject(layerName);
    if (myLayer)
	{
		myLayer.style.display = "";
	}

	myList = getLayerObject(listName);
    if (myList)
	{
		if (myList.className == "tabdata")
		{
			tabdataList[myList.id] = 1;
    		myList.className = "tabondata";
		}
        else
        {
            myList.className = "tabon";
        }
	}
}

function hideLayer(layerName, listName)
{
    myLayer = getLayerObject(layerName);
    if (myLayer)
	{
		myLayer.style.display = "none";
	}

	myList = getLayerObject(listName);
    if (myList)
	{
		if (tabdataList[myList.id] == 1)
		{
			myList.className = "tabdata";
		}
		else if (myList.className != "tabdata")
		{
			myList.className = "taboff";
		}
		else
		{
			myList.className = "taboff";
		}
	}
}

function disableLayer()
{
    /*if (disabled == true)
	{
		return;
	}*/

	var argument = disableLayer.arguments;
	for (var i = 0; i < argument.length; i++)
	{
		myList = getLayerObject(argument[i]);
		if (myList)
		{
			if (myList.className != "tabdisabled")
			{
				myList.className = "tabdisabled";
			}
		}
	}
	//disabled = true;
}

function enableLayer()
{
	var argument = enableLayer.arguments;
	for (var i = 0; i < argument.length; i++)
	{
		myList = getLayerObject(argument[i]);
		if (myList)
		{
			if (myList.className != "")
			{
				myList.className = "";
			}
		}
	}

	//disabled = false;
}

function SwitchLayer(layerName, listName, box)
{
	myList = getLayerObject(listName);
	if (myList.className != "tabdisableds")
	{
		hideLayer(visibleLayer[box], visibleList[box]);
		showLayer(layerName, listName);
		visibleLayer[box] = layerName;
		visibleList[box]  = listName;
	}
}

function UncheckAll()
{
	UnSetAllRegionen();
	tabdataList['tab2_2'] = 0;
	UnSetAllKantone();
	tabdataList['tab2_3'] = 0;
	UnSetAllOrtschaften();
	tabdataList['tab2_4'] = 0;
}

/*
  Funktionen für Kantone
*/

var kantone   = new Array();
var kantoneAr = new Array();

function ShowKanton(kanton)
{
	object = getLayerObject('kanton_name');
	if (object)
	{
		object.innerHTML = kantoneAr[kanton];
	}
	if (kantone[kanton] != true)
	{
		object = getLayerObject('kanton_' + kanton);
		object.style.display = "";
		//object.style.zIndex = 5;
	}
}

function HideKanton(kanton)
{
	if (kantone[kanton] != true)
	{
		object = getLayerObject('kanton_' + kanton);
		object.style.display = "none";
		//object.style.zIndex = 5;
	}
}

function SetKanton(kanton)
{
	if (kantone[kanton] != true)
	{
		object = getLayerObject('kanton_' + kanton);
		if (object)
		{
			object.style.display = "";
		}
		object = getLayerObject('kanton_checkbox_' + kanton);
		if (object)
		{
			object.checked = true;
		}
		kantone[kanton] = true;
	}
	else
	{
		UnSetKanton(kanton);
	}

	var output = "";

	for (var i in kantoneAr)
	{
		if (kantone[i] == true)
		{
			output = output + '<a href="javascript://" onClick="SetKanton(\'' + i + '\');">' + kantoneAr[i] + '</a><br>';
		}
	}

	object = getLayerObject('kanton_box');
	if (output.length > 0)
	{
		object.innerHTML = output;
	}
	else
	{
		object.innerHTML = '-';
	}

	if (CountChecked() > 0)
	{
		disableLayer('tab2_2', 'tab2_4');
		tabdataList['tab2_3'] = 1;
	}
	else
	{
		enableLayer('tab2_2', 'tab2_4');
		tabdataList['tab2_3'] = 0;
	}
}

function UnSetKanton(kanton)
{
	object = getLayerObject('kanton_' + kanton);
	if (object)
	{
		object.style.display = "none";
	}
	object = getLayerObject('kanton_checkbox_' + kanton);
	if (object)
	{
		object.checked = false;
	}
	kantone[kanton] = false;
}

function PreSetKanton(presetkantone)
{
	for (var i in presetkantone)
	{
		SetKanton(i);
	}
}

function UnSetAllKantone()
{
	for (var i in kantoneAr)
	{
		UnSetKanton(i);
	}
	object = getLayerObject('kanton_box');
	if (object)
	{
		object.innerHTML = '-';
	}
}

/*
  Funktionen für Regionen
*/
var regionen   = new Array();
var regionenAr = new Array();

function ShowRegion(region)
{
	if (regionen[region] != true)
	{
		object = getLayerObject('region_' + region);
		if (object)
		{
			object.style.display = "";
			//object.style.zIndex = 5;
		}
	}
}

function HideRegion(region)
{
	if (regionen[region] != true)
	{
		object = getLayerObject('region_' + region);
		if (object)
		{
			object.style.display = "none";
			//object.style.zIndex = 5;
		}
	}
}

function SetRegion(region)
{
	if (regionen[region] != true)
	{
		object = getLayerObject('region_' + region);
		if (object)
		{
			object.style.display = "";
		}
		object = getLayerObject('region_checkbox_' + region);
		if (object)
		{
			object.checked = true;
		}
		regionen[region] = true;
	}
	else
	{
		UnSetRegion(region);
	}

	if (CountChecked() > 0)
	{
		disableLayer('tab2_3', 'tab2_4');
		tabdataList['tab2_2'] = 1;
	}
	else
	{
		enableLayer('tab2_3', 'tab2_4');
		tabdataList['tab2_2'] = 0;
	}
}

function UnSetRegion(region)
{
	object = getLayerObject('region_' + region);
	if (object)
	{
		object.style.display = "none";
	}
	object = getLayerObject('region_checkbox_' + region);
	if (object)
	{
		object.checked = false;
	}
	regionen[region] = false;
}

function PreSetRegion(presetregion)
{
	for (var i in presetregion)
	{
		SetRegion(i);
	}
}

function UnSetAllRegionen()
{
	for (var i in regionenAr)
	{
		UnSetRegion(i);
	}
}

function ChangeOrtschaft()
{
	if (CountChecked() > 0)
	{
		disableLayer('tab2_2', 'tab2_3');
		tabdataList['tab2_4'] = 1;
	}
	else
	{
		enableLayer('tab2_2', 'tab2_3');
		tabdataList['tab2_4'] = 0;
	}
}

function UnSetAllOrtschaften()
{
    jQuery('#locations').removeClass('autocompleted');
    jQuery('#locations').val('');
    jQuery('#locationid').val('');
}

function CountChecked()
{
	var count = 0;

	for (var i in kantoneAr)
	{
		if (kantone[i] == true)
		{
			count = count + 1;
		}
	}

	for (var i in regionenAr)
	{
		if (regionen[i] == true)
		{
			count = count + 1;
		}
	}

    if (jQuery('#locations').hasClass('autocompleted'))
    {
        count++;
    }
	return count;
}

function CheckRegister()
{
	var register1 = 0;
	var register2 = 0;
	var register3 = 0;
	var register4 = 0;

	// Register 1
	register1 += Check(2, 'count_');
	register1 += Check(4, 'va_');
	register1 += Check(2, 'price_');
	register1 += Check(6, 'date_');

	// Register 2
	register2 += Check(13, 'zm_');

	// Register 3
	register3 += Check(11, 'ht_');
	register3 += Check(8, 'lg_');

	// Register 4
	register4 += Check(4, 'ss_');
	register4 += Check(3, 'ar_');

	tabdataList['tab1_1'] = register1 > 0 ? 1 : 0;
	tabdataList['tab1_2'] = register2 > 0 ? 1 : 0;
	tabdataList['tab1_3'] = register3 > 0 ? 1 : 0;
	tabdataList['tab1_4'] = register4 > 0 ? 1 : 0;
	//alert(tabdataList['tab1_4']);
}

function Check(count, name)
{
	var counter = 0;

	for (var i = 1; i <= count; i++)
	{
		object = getLayerObject(name + i);
		if (object)
		{
			if (object.type == "checkbox")
			{
				if (object.checked == true)
				{
					counter += 1;
				}
			}
			else if (object.type == "text")
			{
				var value = TrimString(object.value);
				if (value.length > 0)
				{
					counter += 1;
				}
			}
			else if (object.type == "select-one")
			{
				if (object.value > 0)
				{
					counter += 1;
				}
			}
		}
	}
	return counter;
}

function TrimString(sInString)
{
    sInString = sInString.replace( /^\s+/g, "" );// strip leading
    return sInString.replace( /\s+$/g, "" );// strip trailing
}

function ShowDebug(id)
{
	var imagebox = getLayerObject('image' + id);
	var debugbox = getLayerObject('debugbox' + id);
	var state = 'close';

	if (debugbox)
	{
		if (debugbox.style.display != 'none')
		{
			debugbox.style.display = 'none';
			state = 'close';
		}
		else
		{
			debugbox.style.display = '';
			state = 'open';
		}
	}

	if (imagebox)
	{
		if (state == 'open')
		{
			imagebox.src = imagebox.src.replace(/plus/,"minus");
		}
		else
		{
			imagebox.src = imagebox.src.replace(/minus/,"plus");
		}
	}
}

function getIFrameDoc(name)
{
	var IFrameDoc;
	var Height;
	var IFrameObj = document.getElementById(name);

	if (typeof document.frames != 'undefined') {
		IFrameObj = document.frames[name];
	}

	if (typeof IFrameObj == 'undefined') {
		return false;
	} else if (IFrameObj.contentDocument) {
		// For NS6
		IFrameDoc = IFrameObj.contentDocument;
	} else if (IFrameObj.contentWindow) {
		// For IE5.5 and IE6
		IFrameDoc = IFrameObj.contentWindow.document;
	} else if (IFrameObj.document) {
		// For IE5
		IFrameDoc = IFrameObj.document;
	} else {
		return false;
	}

	if(typeof IFrameDoc.body != 'undefined')
	{
		return IFrameDoc.body;
	}
	else
	{
		return IFrameDoc.documentElement;
	}
}

/*
* gets the height of an iframe document
*/
function getIFrameDocHeight( name )
{
	var IFrameDoc = getIFrameDoc(name);
	if(typeof IFrameDoc == 'undefined') {
		return false;
	}
	else {
		return IFrameDoc.scrollHeight;
	}
}
