var _redirectUrl 	= '';
var _activeTab 		= 'showInschrijving';
var _reactieID		= '';

function addOnloadFunction(func) { 
    if( window.onload ) { 
        var oldfunc = window.onload; 
        window.onload = function() {  
            oldfunc();  
            func();  
        }; 
    } 
    else { 
        window.onload = func; 
    } 
}

function wonion_LoadTab(tab, edit)
{
	tabInactive();

	if($('link_'+tab))
	{
		$('link_'+tab).className = 'active';
		_activeTab = tab;
	}
	
	new Effect.Appear('mijnContentLaden', {duration:.0});
	new Effect.Fade('mijnContent', {duration:.0});
	setTimeout("doRequest('"+tab+"', '"+edit+"')" , 400);
}

function wonion_SaveTab(tab, url)
{
	if($('in_adres[straatnaam]') && $('in_adres[woonplaats]'))
	{
		toggleField($('in_adres[straatnaam]'), true);
		toggleField($('in_adres[woonplaats]'), true);
	}
	new Effect.Appear('mijnContentLaden', {duration:.0});
	new Effect.Fade('mijnContent', {duration:.0});
	setTimeout("doSaveRequest('"+tab+"', '"+url+"')" , 400);
}

function tabInactive()
{
	$('link_'+_activeTab).className = '';
}

function getVerantwoording(selectbox, registratienummer)
{
	if (selectbox.value !== '')
	{
		new Ajax.Request(
			'/ajax/verantwoording/' + selectbox.value + '/' + registratienummer,
			{
				method:'get',
				asynchronous:false,
				onSuccess:function(t)
					{
						//request is gelukt
						check = t.responseText;
						$('verantwoordingTabel').innerHTML = check;
					},
				onFailure:function(t)
					{
						//request is mislukt
						alert('Request is mislukt met code: ' + t.status);
					}
			}
		);
	}
}
			
function doRequest(tab, edit)
{
	var	response = "";
	var params = 'tab=' + tab + '&edit='+edit;

	new Ajax.Updater(
		'mijnContent',
		'/ik_zoek_een_woning/mijngegevens/show/'+tab+'/'+edit,
		{
			method:'get',
			evalScripts:true,
			asynchronous:false,
			parameters:params,
			onSuccess:function(t)
				{
					var returnwaarde = t.responseText;

					if(returnwaarde == 'LOGIN')
					{
						requireLogin('/ik_zoek_een_woning/mijngegevens');
					}
					
					new Effect.Fade('mijnContentLaden', {duration:.0});
					new Effect.Appear('mijnContent', {duration:.3});
				},
			onFailure:function(t)
				{
					//request is mislukt
					alert('Request is mislukt met code: ' + t.status);
				}
		}
	);
}

function doSaveRequest(tab, url)
{
	var	response = "";
	
	new Ajax.Updater(
		'mijnContent',
		url,
		{
			method:'post',
			evalScripts:true,
			asynchronous:false,
			parameters:Form.serialize("defaultForm"),
			onSuccess:function(t)
				{
					new Effect.Fade('mijnContentLaden', {duration:.0});
					new Effect.Appear('mijnContent', {duration:.3});
				},
			onFailure:function(t)
				{
					//request is mislukt
					alert('Request is mislukt met code: ' + t.status);
				}
		}
	);
}

function requireLogin(url)
{
	var check;
	_redirectUrl = url;

	var myRequest = new Ajax.Request(
		'/ajax/requirelogin',
	  	{
		  	method: 'get',
		  	asynchronous:false,
			evalScripts:true,
			onSuccess:function(t)
				{
					//request is gelukt
					check = t.responseText;
				},
			onFailure:function(t)
				{
					//request is mislukt
					alert('Request is mislukt met code: ' + t.status);
				}
		}
	 );

	if (check == 1)
	{
		document.location.href = _redirectUrl;
	}
	else
	{
		document.getElementById('inlogError').innerHTML = '';
		openTopLayer('inlogLayer', 1);
		
		$('popupContent').style.display = 'none';
		$('popupContentInlog').style.display = 'block';
		
	}
}

function inloggen()
{
	wachtwoord = document.getElementById('wachtwoord').value;
	hash = hex_md5(wachtwoord);
	document.getElementById('wachtwoord').value = hash;

	new Ajax.Request(
		'/ajax/inloggen',
		{
			method:'post',
			asynchronous:false,
			parameters:Form.serialize("inlogForm"),
			onSuccess:function(t)
			{
				//request is gelukt
				check = t.responseText;
			},
			onFailure:function(t)
			{
				//request is mislukt
				alert('Request is mislukt met code: ' + t.status);
			}
		}
	);

	$('wachtwoord').value = '';



	if(check == 1)
	{
		//Inloggen is gelukt ga door naar de pagina waar je heen wilde
		document.location.href = _redirectUrl;
	}
	else
	{
		//Inloggen mislukt toon error en try again.

		if(check != "")
		{
			document.getElementById('inlogError').innerHTML = check;
		}
		else
		{
			document.getElementById('inlogError').innerHTML = 'Uw inlog gegevens zijn niet correct';
		}
	}
}

function showRegistratienummerVergeten(titel, content)
{
	$('popupContent').innerHTML = "<h4>"+titel+"</h4><br /><p>"+content+"</p><br />";
	$('popupContent').style.display = 'block';
	$('popupContentInlog').style.display = 'none';
}

function wachtwoordvergeten()
{
	new Ajax.Request(
		'/ajax/wachtwoordvergeten',
		{
			method:'post',
			asynchronous:false,
			parameters:Form.serialize("wachtwoordForm"),
			onSuccess:function(t)
				{
					//request is gelukt
					check = t.responseText;
				},
			onFailure:function(t)
				{
					//request is mislukt
					alert('Request is mislukt met code: ' + t.status);
				}
		}
	);

	if(check == 1)
	{
		//wachtwoord opvragen is gelukt
		document.getElementById('wachtwoordForm').innerHTML = '';
		document.getElementById('resultWachtwoord').innerHTML = 'Uw wachtwoord wordt u toegezonden.';

	}
	else
	{
		//Wachtwoord opvragen mislukt
		document.getElementById('wachtwoordError').innerHTML = check;
	}
}

function showWachtwoordVergeten()
{
	document.getElementById('wachtwoordError').innerHTML = '';
	closeTopLayer('inlogLayer', 0);
	openTopLayer('wachtwoordLayer', 1);
}

function showVerwijderReactie(reactieID)
{
	var content = 'Weet u zeker dat u deze reactie wilt verwijderen?<br/>';
	
	content += '<div class="bar">';
	content += '	<form name="defaultForm" action="#" method="post" onsubmit="return false;">';
	content += '		 <input type="submit" onclick="doVerwijderReactie();" class="barNext" value="Verwijderen" />';
	content += '	</form>';
	content += '</div>';
	
	var oInfo = {title:'Let op:',content: content};
	oAlertPopup = showAlertPopup(oInfo);

	_reactieID = reactieID;
}

function showVerwijderOptie(optieID)
{
	_reactieID = optieID;
	
	var content = 'Weet u zeker dat u deze optie wilt verwijderen?<br/>';
	
	content += '<div class="bar">';
	content += '	<form name="defaultForm" action="#" method="post" onsubmit="return false;">';
	content += '		 <input type="submit" onclick="doVerwijderOptie();" class="barNext" value="Verwijderen" />';
	content += '	</form>';
	content += '</div>';
	
	var oInfo ={title:'Let op:',content: content};
	oAlertPopup = showAlertPopup(oInfo);
}

function doVerwijderReactie( module )
{
	new Ajax.Request(
		'/ajax/removeReactie/'+_reactieID,
		{
			method:'get',
			asynchronous:false,
			onSuccess:function(t)
			{
				//request is gelukt
				check = t.responseText;

			},
			onFailure:function(t)
			{
				//request is mislukt
				alert('Request is mislukt met code: ' + t.status);
			}
		}
	);


	if(check == 1)
	{
		if( module == "mijnspectrum" )
		{
			//closeTopLayer('verwijderReactie', 0);
			wonion_LoadTab('showLopendeReacties', 0, '')
		}
		else
		{
			document.location.reload();
		}
	}
	else
	{
		alert('Er is iets mis gegaan bij het verwijderen. Probeer het opnieuw of neem contact op met Wonion.\n\nFoutmelding: '+check);
		//closeTopLayer('verwijderReactie', 0);
	}
}

function doVerwijderOptie( module )
{
	new Ajax.Request(
		'/ajax/removeOptie/'+_reactieID,
		{
			method:'get',
			asynchronous:false,
			onSuccess:function(t)
				{
					//request is gelukt
					check = t.responseText;
				},
			onFailure:function(t)
				{
					//request is mislukt
					alert('Request is mislukt met code: ' + t.status);
				}
		}
	);

	if(check == 1)
	{
		if( module == "mijngegevens" )
		{
			//closeTopLayer('verwijderOptie', 0);
			wonion_LoadTab('showOptiesBeheren', 0, '')
		}
		else
		{
			document.location.reload();
		}
	}
	else
	{
		//closeTopLayer('verwijderOptie', 0);
		alert('Er is iets mis gegaan bij het verwijderen. Probeer het opnieuw of neem contact op met Wonion.\n\nFoutmelding:'+check);
	}
}


function afmelden()
{
	new Ajax.Request(
		'/ik_zoek_een_woning/mijngegevens/uitloggen',
		{
			method:'get',
			asynchronous:false,
			onSuccess:function(t)
				{
					//request is gelukt
					check = t.responseText;
				},
			onFailure:function(t)
				{
					//request is mislukt
					alert('Request is mislukt met code: ' + t.status);
				}
		}
	);

	//Afmelden is klaar
	document.location.href = '/';
}


/**
 * open/close Toplayer.
 * arg1 = het layerID die op display block of none gezet wordt
 * arg2 = de status van het disableScreen nadat de functie klaar is. 1 = tonen, 0 = verbergen
 */

function openTopLayer(layerID, disableScreenStatus)
{



	disableScreen(disableScreenStatus);
	hideSelectBoxen(1);
	gradientshadow.create();

	new Effect.Appear("shadowContainer", {duration:.3});
	new Effect.Appear(layerID, {duration:.4});
}

function closeTopLayer(layerID, disableScreenStatus)
{
	new Effect.Fade("shadowContainer", {duration:.3});
	new Effect.Fade(layerID, {duration:.3});
	gradientshadow.hide();

	hideSelectBoxen(0);
	disableScreen(disableScreenStatus)
}

 /**
  * Functie om de selectboxen te hidden als de toplayer er is.
  * Alleen nodig in IE omdat daar de selectboxen altijd ontop zitten.
  *
  */

function hideSelectBoxen(value)
{
	//Alleen in IE6 komen de select boxen boven de layer te staan dus alleen daar verwijderen en weer tonen
	if(navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.match("^.*?(MSIE 6.0).*?$"))
	{
		var a = document.getElementsByTagName('select');
		for(i=0; i<a.length;i++)
		{
			if(value == 1)
			{
				a[i].style.visibility = 'hidden';
			}
			else
			{
				a[i].style.visibility = 'visible';
			}
		}
	}
}

/**
 *
 * disableScreen zorgt ervoor dat het scherm gedisabled wordt.
 * status is een 0 of een 1
 * bij 1 wordt het scherm gedisabled
 *
 */

function disableScreen(status)
{
	var disableScreen = document.getElementById('disableScherm');

	if(status == 1)
	{
		//was visible even uitgezet ivm met IE7 mantis: 0006376
		disableScreen.style.visibility = 'hidden';
	}
	else
	{
		disableScreen.style.visibility = 'hidden';
	}
}
var yesyes = false;
/** zoekscherm
 *  elementID id of the element in string format.
 * 	valueList slash '/' seperated values beginning with slash
 **/
function updateFormData(elementname, ref2element)
{
	var searchKeyLUT = Array();
	searchKeyLUT['83'] 	= "in_83";
	searchKeyLUT['94'] 	= "select_container_94";
	searchKeyLUT['80'] 	= "select_container_80";
	searchKeyLUT['85'] 	= "checkbox_container_85";
	searchKeyLUT['147']	= "checkbox_container_147";
	searchKeyLUT['139']	= "checkbox_container_139";

	var elementIDprefix = "in_";
	if (('83' == elementname) || ('94' == elementname) || ('80' == elementname))
	{
		var serializedValues = getSerializedValues(elementname);
	}
	else
	{
		 var serializedValues = [];
		 var checkedFound = false;
		// we hebben een checkbox wijziging
		var matches = elementname.match(/(.*)\[(.*)\].*/);
		var singleElementID = elementIDprefix + matches[1] + "_" + 	matches[2];


		if (matches[1] == '85')
		{
			serializedValues = getSerializedCheckboxVals(matches[1]);
		} 
		else if (matches[1] == '139')
		{
			serializedValues =  getSerializedCheckboxVals('139') + '&' + getSerializedCheckboxVals('85');
		}
		
		serializedValues =  serializedValues + "&" + getSerializedValues(elementname);		
	}

	//alert($(singleElementID).serialize(true)   	$("in_85_1").serialize(true) +	$("in_147_1").serialize(true));

	new Ajax.Request(
		'/ajax/updateformdata',
		{
			method:'get',
			asynchronous:false,
			parameters: serializedValues,
			onSuccess:function(t)
				{
					var respFields = t.responseText.split("::::");
					//alert(t.responseText);
					//if (yesyes)
					//console.info(t.responseText);
					//document.write(t.responseText);document.close();

					for (var index= 0, length = respFields.length; index < length; index++)
					{
						var keyvaluePair 		= respFields[index];
						var keyvaluePairArray 	= keyvaluePair.split("::");
						var fieldKey 			=  keyvaluePairArray[0];
						var fieldValue			=  keyvaluePairArray[1];

						switch (fieldKey)
						{
						case "83":
						case "94":
						case "80":
								updateSelect(searchKeyLUT[fieldKey], fieldValue);
							break;
						case "85":
						case "147":
						case "139":
								updateCheckbox(searchKeyLUT[fieldKey], fieldValue);
							break;
						default:
								//console.log("within default");
								//request is gelukt
								check = t.responseText;
								alert("request mislukt(onsuccess)" + t.responseText);
							break;
						} // end of switch
					}// end of for
				},
			onFailure:function(t)
				{
					//request i mslukt
					alert('Request is mislukt (onfailure) met code: ' + t.status);
				}
		}
	);

	function getSerializedCheckboxVals(keyfield)
	{
		var checkboxList = $(searchKeyLUT[keyfield]).getElementsByTagName("input");
		var serializedValues = [];
		
		if (checkboxList.length > 0)
		{
			for (var index = 0, length = checkboxList.length; index < length; index++)
			{
				if (checkboxList[index].checked)
				{
					checkedFound = true;
					serializedValues[serializedValues.length] = $(checkboxList[index].id).serialize(true)
				}
			}
			serializedValues = serializedValues.join("&");

			if (!checkedFound)
			{
				var serializedValues = keyfield.toString() +  "=";
			}		
		}
		return 	serializedValues;	
	}
		
	function getSerializedValues(keyfield)
	{
		var serializedValues = [];
		switch (keyfield)
		{
			case '83':

				var singleElementID = $(elementIDprefix + keyfield).id;
				var serializedValues = $(singleElementID).serialize(true)
				return serializedValues;
			break;
			
			case '94':		
				var singleElementID 						= $(elementIDprefix + keyfield).id;
				serializedValues[serializedValues.length] 	= $(singleElementID).serialize(true);
				serializedValues[serializedValues.length]	= $("in_83").serialize(true);
				return serializedValues.join("&");
			break;
			
			case '80':
				var singleElementID 						= $(elementIDprefix + keyfield).id;
				serializedValues[serializedValues.length] 	= $(singleElementID).serialize(true);
				serializedValues[serializedValues.length]	= $("in_83").serialize(true);
				serializedValues[serializedValues.length]	= $("in_94").serialize(true);
				return serializedValues.join("&");
			break;

			default	:
				serializedValues[serializedValues.length]	= $("in_83").serialize(true);
				serializedValues[serializedValues.length]	= $("in_94").serialize(true);
				serializedValues[serializedValues.length]	= $("in_80").serialize(true);
				return serializedValues.join("&");
			break;
		}
	}
/*
	if(check == 1)
	{
		//Inloggen is gelukt ga door naar de pagina waar je heen wilde

	}
*/
}

function reageerWoning(woningID)
{
	new Ajax.Request(
		'/ajax/addwoningreactie/' + woningID,
		{
			method:'get',
			asynchronous:false,
			onSuccess:function(t)
				{
					//request is gelukt
					check = t.responseText;

					alert(check);
				},
			onFailure:function(t)
				{
					//request is mislukt
					alert('Request is mislukt met code: ' + t.status);
				}
		}
	);

	if(check == 1)
	{
		//Inloggen is gelukt ga door naar de pagina waar je heen wilde
		document.location.href = _redirectUrl;
	}
}

document.observe("dom:loaded", function()
{
	$$('a[rel]').each(function(oAnchor) 
	{	
		$(oAnchor).observe('click', function(oEvent)
		{
			var oTargetAnchor = oEvent.target;
			oEvent.stop();
			
			if (typeof(oTargetAnchor.rel) == 'undefined')
			{
				// target has no "rel" attribute
				// maybe we clicked on the image and we have to select its parent anchor
				oTargetAnchor = oTargetAnchor.parentNode;
			}
			
			var sAlbumName = oTargetAnchor.rel;
			
			// determine index
			var iIndex = 0;
			var aAlbumAnchors = $$('a[rel^='+sAlbumName+'])');

			for (var i = 0 ; i < aAlbumAnchors.length ; i++)
			{	
				if (aAlbumAnchors[i] == oTargetAnchor)
				{
					break;
				}			

				iIndex++;	
			}

			var oImagePopup = new ZigImagePopup($('lightbox'), {minWidth: 400, verticalScroll: false});
			oImagePopup.setImagesFromSelector(sAlbumName);
			oImagePopup.show(iIndex)
		});
	});		
});
/* ************************************ */
/* ************************************ */
/* ************************************ */
/* New code added for website restyling */



/**
 * Toggle Show - Hide ID
 */
var activeActive = '';
var activeHide = '';

function toggleId(tActive, tHide)
{
	if (activeActive != tActive)
	{
		$(tActive).addClassName('active');
		$(tHide).removeClassName('hidden');
		activeActive = tActive;
		activeHide = tHide;
	}
	else
	{
		$(tActive).removeClassName('active');
		$(tHide).addClassName('hidden');
		activeActive = null;
		activeHide = null;
	}
}

/**
 * Show Howto enlarge text in popup
 */
function enlargeInfo()
{
	var oInfo ={title:'Lettergroote instellen',content: '<img src="/images/popupEnlargeInfo.png" alt="Uitleg over lettervergroting" />'};
	oAlertPopup = showAlertPopup(oInfo);
	oAlertPopup.setWidth(570);
	$('popup').addClassName('popupAlbum');
}

/**
*	This function is called in "IK ZOEK EEN WONING" -> Mijn Gegevens 
*	and takes care to set the active status to the right tab. That because we work herein
*	not with link redirections but in background with javascript.
*
*/
function setActiveTabMyDatas()
{
	var aItems = $$('div.zigTabs ul li');
	
	aItems.each(function(oItem)
		{
			Event.observe(oItem, 'click', function()
				{
					// First of all, resetting the eventual active class
					aItems.each(function(oObj){
						if( oObj.hasClassName('active') )
						{
							oObj.removeClassName('active');
						}
					});
					// Set the clicked item as active.
					oItem.addClassName('active');
				}
			);
		}
	);
	// The first time we need to set the first tab as active.
	if(aItems)
	{
		aItems[0].addClassName('active');
	}
	
}
