﻿var aZitemanFieldRules = new Array();
aZitemanFieldRules["text"] = 'maxchars//minchars//mustfill//validation_option//error_msg//std_text';
aZitemanFieldRules["password"] = 'maxchars//minchars//mustfill//validation_option//error_msg//std_text';
aZitemanFieldRules["checkbox"] = 'mustcheck//error_msg//ischecked';
aZitemanFieldRules["textarea"] = 'maxchars//minchars//mustfill//error_msg//std_text';
aZitemanFieldRules["radio"] = 'id//mustselect//error_msg';
aZitemanFieldRules["combobox"] = 'mustselect//error_msg';
aZitemanFieldRules["file"] = 'filesize//filetype//err_msgtype//err_msgsize//mustfill//error_msg';

function ziteman_formatDate(strValue, iSize)
{
	while(strValue.length < iSize)
	{
		strValue = "0" + strValue;
	}
	return strValue;
}

function ziteman_validateform(strFormID)
{
	var strForumEditor = '';
	var bValidate = true;
	/* get form validation list */
	var oForm = document.forms[strFormID];
	var strOwner = '';
	var strAction = '';
	if (typeof(oForm._owner) != 'undefined')
	{
		strOwner = oForm._owner.value;
	}
	if (typeof(oForm._action) != 'undefined')
	{
		strAction = oForm._action.value;
	}
	var strFieldOrder = oForm._fieldorder.value;
	if (strOwner == 'poll')
	{
		/* CHECK FOR AFSTEMNING */
		var bValid = false;
		if (typeof(oForm.ziteman_pollvote) != 'undefined')
		{
			for (var x=0; x<oForm.ziteman_pollvote.length; x++)
			{
				if (oForm.ziteman_pollvote[x].checked == true)
				{
					bValid = true;
				}
			}
			if (!bValid)
			{
				alert(oForm.ziteman_pollvote_hidden[0].value.split('//')[1]);
			}
		}
		if (bValid)
		{
			oForm.submit();
		}
		return;
	}
	
	var aValidationList = strFieldOrder.split('<ziteman_split:post>');
	if (strOwner == 'calendar')
	{
		/* Lav validering af start/slut dato */
		var oFieldRadio = oForm['daytype'];
		var strCurrentSelectType = ziteman_validateGetValue(oFieldRadio, 'radio');
		if (strCurrentSelectType != '')
		{
			var strBeginHourStart = ziteman_calendarGetFieldsValueInput(oForm, aValidationList, 'event_new_hour', 'begin_start');
			if (parseInt(strBeginHourStart) > 23)
			{
				var oField = ziteman_calendarGetField(oForm, aValidationList, 'event_new_hour', 'begin_start');
				var strElementRules = ziteman_getHiddenField(oForm, oField, 'text').value;
				var strErrorMsg = ziteman_validateGetSpecifiedType(strElementRules, aZitemanFieldRules['text'], 'error_msg');
				alert(strErrorMsg);
				oField.focus();
				bValidate = false;
			}
			var strBeginMinuteStart = ziteman_calendarGetFieldsValueInput(oForm, aValidationList, 'event_new_minute', 'begin_start');
			if (parseInt(strBeginMinuteStart) > 59 && bValidate)
			{
				var oField = ziteman_calendarGetField(oForm, aValidationList, 'event_new_minute', 'begin_start');
				var strElementRules = ziteman_getHiddenField(oForm, oField, 'text').value;
				var strErrorMsg = ziteman_validateGetSpecifiedType(strElementRules, aZitemanFieldRules['text'], 'error_msg');
				alert(strErrorMsg);
				oField.focus();
				bValidate = false;
			}
			
			if (strCurrentSelectType != 'moreday')
			{
				/* check start slut */
				var strBeginHourStartEnd = ziteman_calendarGetFieldsValueInput(oForm, aValidationList, 'event_new_hour', 'begin_stop');
				if (parseInt(strBeginHourStartEnd) > 23 && bValidate)
				{
					var oField = ziteman_calendarGetField(oForm, aValidationList, 'event_new_hour', 'begin_stop');
					var strElementRules = ziteman_getHiddenField(oForm, oField, 'text').value;
					var strErrorMsg = ziteman_validateGetSpecifiedType(strElementRules, aZitemanFieldRules['text'], 'error_msg');
					alert(strErrorMsg);
					oField.focus();
					bValidate = false;
				}
				var strBeginMinuteStartEnd = ziteman_calendarGetFieldsValueInput(oForm, aValidationList, 'event_new_minute', 'begin_stop');
				if (parseInt(strBeginMinuteStartEnd) > 59 && bValidate)
				{
					var oField = ziteman_calendarGetField(oForm, aValidationList, 'event_new_minute', 'begin_stop');
					var strElementRules = ziteman_getHiddenField(oForm, oField, 'text').value;
					var strErrorMsg = ziteman_validateGetSpecifiedType(strElementRules, aZitemanFieldRules['text'], 'error_msg');
					alert(strErrorMsg);
					oField.focus();
					bValidate = false;
				}
			}
			if (strCurrentSelectType == 'moreday')
			{
				/* check start slut */
				var strBeginHourEnd = ziteman_calendarGetFieldsValueInput(oForm, aValidationList, 'event_new_hour', 'end_stop');
				if (parseInt(strBeginHourEnd) > 23 && bValidate)
				{
					var oField = ziteman_calendarGetField(oForm, aValidationList, 'event_new_hour', 'end_stop');
					var strElementRules = ziteman_getHiddenField(oForm, oField, 'text').value;
					var strErrorMsg = ziteman_validateGetSpecifiedType(strElementRules, aZitemanFieldRules['text'], 'error_msg');
					alert(strErrorMsg);
					oField.focus();
					bValidate = false;
				}
				var strBeginMinuteEnd = ziteman_calendarGetFieldsValueInput(oForm, aValidationList, 'event_new_minute', 'end_stop');
				if (parseInt(strBeginMinuteEnd) > 59 && bValidate)
				{
					var oField = ziteman_calendarGetField(oForm, aValidationList, 'event_new_minute', 'end_stop');
					var strElementRules = ziteman_getHiddenField(oForm, oField, 'text').value;
					var strErrorMsg = ziteman_validateGetSpecifiedType(strElementRules, aZitemanFieldRules['text'], 'error_msg');
					alert(strErrorMsg);
					oField.focus();
					bValidate = false;
				}
			}
			
			if (bValidate)
			{
				var strDay = ziteman_calendarGetFieldsValue(oForm, aValidationList, 'event_new_date', 'begin');
				var strMonth = ziteman_calendarGetFieldsValue(oForm, aValidationList, 'event_new_month', 'begin');
				var strYear = ziteman_calendarGetFieldsValue(oForm, aValidationList, 'event_new_year', 'begin');
				var oDate = new Date(strYear, strMonth, strDay);

				bValidate = ziteman_validateDateInput(strDay, strMonth, strYear);
				if (!bValidate)
				{
					// Mangler alert ved fejl.. (for mange dage i måned ting)
					var oField = ziteman_calendarGetField(oForm, aValidationList, 'event_new_date', 'begin');
					var strElementRules = ziteman_getHiddenField(oForm, oField, 'combobox').value;
					var strErrorMsg = ziteman_validateGetSpecifiedType(strElementRules, aZitemanFieldRules['combobox'], 'error_msg');
					alert(strErrorMsg);
					oField.focus();
				}
			
			
				if (strCurrentSelectType != 'oneday' && bValidate)
				{
					var strDay = ziteman_calendarGetFieldsValue(oForm, aValidationList, 'event_new_date', 'end');
					var strMonth = ziteman_calendarGetFieldsValue(oForm, aValidationList, 'event_new_month', 'end');
					var strYear = ziteman_calendarGetFieldsValue(oForm, aValidationList, 'event_new_year', 'end');
		
					bValidate = ziteman_validateDateInput(strDay, strMonth, strYear);
					if (!bValidate)
					{
						// Mangler alert ved fejl.. (for mange dage i måned ting)
						var oField = ziteman_calendarGetField(oForm, aValidationList, 'event_new_date', 'end');
						var strElementRules = ziteman_getHiddenField(oForm, oField, 'combobox').value;
						var strErrorMsg = ziteman_validateGetSpecifiedType(strElementRules, aZitemanFieldRules['combobox'], 'error_msg');
						alert(strErrorMsg);
						oField.focus();
					}
				}
			}
		}
	}
	
	if (strAction != 'next')
	{
		for (var zitemanValidateCount=0; zitemanValidateCount<aValidationList.length-1; zitemanValidateCount++)
		{
			if (bValidate)
			{
				var aCurrentCheck = aValidationList[zitemanValidateCount].split('<ziteman_split:field>');
			
				var strElementName = aCurrentCheck[1];
				if (strElementName.indexOf('<ziteman_split:combo>') != -1)
				{
					strElementName = strElementName.replace('<ziteman_split:combo>', '');
				}
				var oElement = oForm[strElementName];
				if (oElement)
				{
					var strType = '';
				
					if (typeof(oElement.type) == 'undefined')
					{
						strType = oElement[0].type;
					} else {
						if (oElement.tagName == 'TEXTAREA')
						{
							strType = 'textarea';
						} else {
							if (oElement.tagName == 'SELECT')
							{
								strType = 'combobox';
							} else {
								strType = oElement.type;
							}
						}
					}
					if (strType == 'hidden')
					{
						oElement = null;
					}
				}

				if (oElement)
				{
					bValidate = ziteman_validatefield(oForm, oElement, strType);
					if (bValidate)
					{
						/* CHECK FOR INTERVAL FELT */
						if (ziteman_getHiddenField(oForm, oElement, strType) && !oElement.disabled)
						{
							var strElementRules = ziteman_getHiddenField(oForm, oElement, strType).value;
							var aElements = strElementRules.split('//');
							if (aElements[aElements.length-1] == 'two')
							{
								/* VALIDER FELT */
								var oElement = oForm[strElementName + '_two'];
								bValidate = ziteman_validatefield(oForm, oElement, strType);
							}
						}
					}
					
				}
				
				/* Check for forum editor */
				if (strOwner.toLowerCase() == 'forum' || strOwner.toLowerCase() == 'calendar')
				{
					if (aCurrentCheck.length == 3)
						if (aCurrentCheck[2].toLowerCase() == 'editor' || aCurrentCheck[2].toLowerCase() == 'event_new_editor')
							strForumEditor = aCurrentCheck[1];
				}
				
				/* CHECK FOR SPECIELLE FELTER */
				if (!oElement)
				{
					/* CHECK FOR DATE OBJEKT */
					if (oForm[strElementName + 'year'] && oForm[strElementName + 'month'] && oForm[strElementName + 'day'])
					{
					    if (oForm[strElementName + 'day'].name == strElementName + 'day')
					    {
						    /* VI HAR ET DATE OBJEKT */
						    var strDay = oForm[strElementName + 'day'].value;
						    var strMonth = oForm[strElementName + 'month'].value;
						    var strYear = oForm[strElementName + 'year'].value;
						    var strHidden = oForm[strElementName + '_hidden'].value;
    						
						    var bIsEmpty = false;
						    var bIsValidDate = false;
						    if (strDay == '' && strMonth == '' && strYear == '')
						    {
							    bIsEmpty = true;
							    if (strHidden.split("//")[0] == 'true')
							    {
								    alert(strHidden.split("//")[1]);
								    bValidate = false;
							    }
						    }
						    if (bValidate)
						    {
							    if (!bIsEmpty)
							    {
								    if (!ziteman_validateDateInput(strDay, strMonth, strYear))
								    {
									    alert(strHidden.split("//")[1]);
									    bValidate = false;
								    } else {
									    bIsValidDate = true;
								    }
							    }
						    }
						    var strFormateDate = '';
						    if (bIsValidDate)
						    {
							    /* Byg date ISO tag */
							    strDay = ziteman_formatDate(strDay, 2);
							    strMonth = ziteman_formatDate(strMonth, 2);
							    strYear = ziteman_formatDate(strYear, 4);
    							
							    strFormateDate = strYear + '-' + strMonth + '-' + strDay + 'T00:00:00';
						    }
						    oForm[strElementName].value = strFormateDate;
						}
					} /* END IF- DATE OBJECT */
				}
			}
		}
	}
	if (strOwner == 'search')
	{
		/* CHECK FOR FAQ SEARCH */
		if (oForm["dynamicfaqsearchright"])
		{
			/* SELECT ALLE VÆRDIER I BOKS */
			oForm["dynamicfaqsearchright"].multiple=true;
			for (var x=0; x<oForm["dynamicfaqsearchright"].options.length; x++)
			{
				oForm["dynamicfaqsearchright"].options[x].selected = true;
			}
		}
	}
	if (bValidate)
	{
		if (strOwner.toLowerCase() == 'forum' || strOwner.toLowerCase() == 'calendar')
		{
			if (strForumEditor != '')
			{
				var oEditor = oForm[strForumEditor];
				oEditor.value = generatePostRenderHTML(oEditor);	
			}
			
		}
		/*Submit form*/
		var sSubmit = 'postform.asp';
		if (oForm.enctype == 'multipart/form-data')
		{
		    sSubmit = 'postmultiform.asp';
		}
		if (strOwner.toLowerCase() == 'maillist' && oForm._action.value == 'ziteman_macro_action')
		{
			oForm._action.value = 'subscripe';
		}
		if (oForm._sqlaction != 'undefined' && typeof(oForm._sqlaction) != 'undefined')
		{
			if (oForm._sqlaction.value != 'undefined')
			{
				if (oForm.enctype == 'multipart/form-data')
				{
					// Datakilde Upload form submit
					oForm.action = 'postmultiform.asp?requesttype=multi';
				} else {
					// Datakilde form submit
					oForm.action = 'postmultiform.asp?requesttype=single';
				}
			} else {
				// Normal submit
				oForm.action = sSubmit + '?action=' + oForm._action.value;
			}
		} else {
			// Normal submit
			oForm.action = sSubmit + '?action=' + oForm._action.value;
		}
		oForm.submit();
	}
	return;
}

function ziteman_validatefield(oForm, oField, strType)
{
	var bValidate = true;
	if (ziteman_getHiddenField(oForm, oField, strType) && !oField.disabled)
	{
		var strObjectValue = ziteman_validateGetValue(oField, strType);
		var strElementRules = ziteman_getHiddenField(oForm, oField, strType).value;
		
		if (strElementRules != '')
		{
			var aRules = strElementRules.split('//');
			var aRuleType = aZitemanFieldRules[strType].split('//');
			if (strType == 'text')
			{
				if (aRules.length > 6)
				{
					if (aRules[6] == 'month')
					{
						/* VALIDER SOM MÅNED 
							1-12
						*/
						var strValue = ziteman_validateGetValue(oField, strType);
						var bValidMonth = true;
						if (strValue != '')
						{
							bValidMonth = false;
							if (parseInt(strValue))
							{
								strValue = ziteman_reformdate(strValue);
								if (strValue > 0 && strValue < 13)
									bValidMonth = true;
							}
							
						}
						if (!bValidMonth)
						{
							var strErrorMsg = ziteman_validateGetSpecifiedType(strElementRules, aZitemanFieldRules[strType], 'error_msg');
							alert(strErrorMsg);
							oField.focus();
							bValidate = false;
						}
					}
				}
			}
			
			
		
			/* Validate each rule */
			for (var zitemanRuleCount=0; zitemanRuleCount<aRuleType.length; zitemanRuleCount++)
			{
				if (bValidate)
				{
					if (!ziteman_validaterule(strObjectValue, aRules[zitemanRuleCount], aRuleType[zitemanRuleCount], strElementRules, aZitemanFieldRules[strType]))
					{
						/* errorvalidating rule */
						bValidate = false;
						var strErrorMsg = ziteman_validateGetSpecifiedType(strElementRules, aZitemanFieldRules[strType], 'error_msg');
						alert(strErrorMsg);
						if (strType == 'radio')
						{
							oField[0].focus();
							oField[0].select();
							
							if (typeof(oField[0].setActive) != 'undefined')
								oField[0].setActive();
						} else {
							oField.focus();
							if (strType != 'combobox')
								oField.select();
								
							if (typeof(oField.setActive) != 'undefined' && strType == 'checkbox')
								oField.setActive();						
						}
					}
				}
			}
		}
		
	}
	

	return bValidate;
}

function ziteman_getHiddenField(oForm, oField, strType)
{
	var oReturn = null;
	if (strType == 'radio')
	{
		oReturn = oForm[oField[0].name + '_hidden'];
	} else {
		oReturn = oForm[oField.name + '_hidden'];
	}
	return oReturn;
}
function ziteman_validateGetValue(oField, strType)
{
	var strValue = '';
	
	switch(strType)
	{
		case 'file':
			strValue = oField.value;
			if (strValue == '')
			{
				/* check for skjult værdi */
				var oHidField = document.getElementById(oField.getAttribute("name") + '_fieldname');
				strValue = oHidField.value;
			}
			break;
		case 'combobox':
			for (var iRunCombo=0; iRunCombo<oField.length; iRunCombo++)
			{
				if (oField[iRunCombo].selected)
				{
					if (oField[iRunCombo].value != 'NULL' && oField[iRunCombo].value != '-1')
					{
						strValue += oField[iRunCombo].value;
					}
				}
			}
			break;
		case 'radio':
			for (var iRunRadio=0; iRunRadio<oField.length; iRunRadio++)
			{
				if (oField[iRunRadio].checked)
				{
					strValue = oField[iRunRadio].value;
				}
			}
			break;
		case 'checkbox':
			strValue = oField.checked;
			break;
		default:
			strValue = oField.value;
			break;
	}
	
	return strValue;
}

function ziteman_validaterule(strObjectValue, strRuleValue, strRuleType, strElementRules, strElementRulesType)
{
	var bReturn = true;
	switch(strRuleType)
	{
		case 'maxchars':
			if (strRuleValue != '')
			{
				if (strObjectValue.length > parseInt(strRuleValue))
					bReturn = false;
			}
			break;
		case 'minchars':
			if (strRuleValue != '' && strObjectValue != '')
			{
				if (strObjectValue.length < parseInt(strRuleValue))
					bReturn = false;
			}
			break;
		case 'mustfill':
			if (strRuleValue != '' && strRuleValue != 'false')
			{
				/* Get std text for field */
				var strStdText = ziteman_validateGetSpecifiedType(strElementRules, strElementRulesType, 'std_text');
				var regX = /\r\n/g;
				strObjectValue = strObjectValue.replace(regX, '');
				if (((strStdText == strObjectValue) && (strObjectValue != '')) || (strObjectValue == ''))
					bReturn = false;
			}
			break;
		case 'validation_option':
			bReturn = ziteman_validatetext(strRuleValue, strObjectValue);
			break;
		case 'mustcheck':
			if (strRuleValue != '')
			{
				if (strRuleValue == 'true' && strObjectValue == false)
					bReturn = false;
			}
			break;
		case 'mustselect':
			if (strRuleValue != '')
			{
				if (strRuleValue == 'true' && strObjectValue == '')
					bReturn = false;
			}
			break;
		default:
			//alert('Unknown rule: ' + strRuleType);
			break;
	}
	return bReturn;
}

function ziteman_validateGetSpecifiedType(strElementRules, strElementRulesType, strType)
{
	var aRulesType = strElementRulesType.split('//');
	var aRules = strElementRules.split('//');
	var returnValue = '';
	for (var iRulesLoop=0; iRulesLoop<aRulesType.length; iRulesLoop++)
	{
		if (aRulesType[iRulesLoop] == strType)
		{
			returnValue = aRules[iRulesLoop];
		}
	}
	return returnValue;
}

function ziteman_validatetext(strRuleValue, strObjectValue)
{
	var bReturn = true;
	switch(strRuleValue)
	{
		case 'integer':
			if (strObjectValue.length > 0)
			{
				for (var runX=0; runX<strObjectValue.length; runX++)
				{
					/* 0-9 = 48-57 */
					var iLetterCode = parseInt(strObjectValue.charCodeAt(runX));
					if (iLetterCode < 48 || iLetterCode > 57)
					{
						bReturn = false;
					}
				}
			}
			break;
		case 'email':
			if (strObjectValue.length > 0)
			{
				var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-ZæøåÆØÅ\-0-9]+\.)+[a-zA-Z]{2,}))$/;
				bReturn = re.test(strObjectValue);
			}
			break;
		case 'letter':
			if (strObjectValue.length > 0)
			{
				var alphanumericexclude = "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~¡¦¨«¬"
			
				for (var runX=0; runX<strObjectValue.length; runX++)
				{
					var check = strObjectValue.substr(runX, 1);
					if (alphanumericexclude.indexOf(check) != -1)
					{
						bReturn = false;
					}
				}
				//var re = /^[a-zA-Z äÄáëËéÉöÖóÓüÜúÚÿýÝåÅæÆøØß]+$/g;
				//bReturn = re.test(strObjectValue);
			}
			break;
	}
	return bReturn;
}


function ziteman_calendarGetField(oForm, aValidationList, strType, strValue)
{
	var strReturnValue = null;
	var bFound = false;
	var iIndex = 0;
	while (!bFound && iIndex < aValidationList.length)
	{
		if (aValidationList[iIndex].indexOf(strType) != -1 && aValidationList[iIndex].indexOf(strValue) != -1)
		{
			bFound = true;
			var aPost = aValidationList[iIndex].split('<ziteman_split:field>');
			strReturnValue = oForm[aPost[1]];
		}
		iIndex++;
	}
	return strReturnValue;
}

function ziteman_calendarGetFieldsValue(oForm, aValidationList, strType, strValue)
{
	var strReturnValue = '';
	var bFound = false;
	var iIndex = 0;
	while (!bFound && iIndex < aValidationList.length)
	{
		if (aValidationList[iIndex].indexOf(strType) != -1 && aValidationList[iIndex].indexOf(strValue) != -1)
		{
			bFound = true;
			var aPost = aValidationList[iIndex].split('<ziteman_split:field>');
			if (oForm[aPost[1]])
			{
				strReturnValue = ziteman_validateGetValue(oForm[aPost[1]], 'combobox');
			}
		}
		iIndex++;
	}
	return strReturnValue;
}

function ziteman_calendarGetFieldsValueInput(oForm, aValidationList, strType, strValue)
{
	var strReturnValue = '';
	var bFound = false;
	var iIndex = 0;
	while (!bFound && iIndex < aValidationList.length)
	{
		if (aValidationList[iIndex].indexOf(strType) != -1 && aValidationList[iIndex].indexOf(strValue) != -1)
		{
			bFound = true;
			var aPost = aValidationList[iIndex].split('<ziteman_split:field>');
			if (oForm[aPost[1]])
			{
				strReturnValue = ziteman_validateGetValue(oForm[aPost[1]], 'input');
			}
		}
		iIndex++;
	}
	return strReturnValue;
}


function ziteman_calendarEnableDisableFields(oForm, aValidationList, strType, strValue, action)
{
	var bFound = false;
	var iIndex = 0;
	while (!bFound && iIndex < aValidationList.length)
	{
		if (aValidationList[iIndex].indexOf(strType) != -1 && aValidationList[iIndex].indexOf(strValue) != -1)
		{
			bFound = true;
			var aPost = aValidationList[iIndex].split('<ziteman_split:field>');
			if (oForm[aPost[1]])
			{
				oForm[aPost[1]].disabled = action;
			}
		}
		iIndex++;
	}
	return;
}

function ziteman_calendarChangeDisplayStatus(strFormID)
{
	/* 
		aktive felter:
		oneday (enable):
			time_startslut, minut_startslut
		repeatday (enable):
			time_startslut, minut_startslut
			dag_slut, måned_slut, år_slut
		moreday (enable):
			dag_slut, måned_slut, år_slut
			time_slut, minut_slut
	*/

	var oForm = document.forms[strFormID];
	var strFieldOrder = oForm._fieldorder.value;
	
	var aValidationList = strFieldOrder.split('<ziteman_split:post>');
	
	/* find typen på nuværende opret form (onedag, repeatday, moreday) */
	var oFieldRadio = oForm['daytype'];
	var strCurrentSelectType = ziteman_validateGetValue(oFieldRadio, 'radio');
	

	var aElements = new Array();
	switch(strCurrentSelectType)
	{
		case 'oneday':
			ziteman_calendarEnableDisableFields(oForm, aValidationList, 'event_new_hour', 'begin_stop', false);
			ziteman_calendarEnableDisableFields(oForm, aValidationList, 'event_new_minute', 'begin_stop', false);

			ziteman_calendarEnableDisableFields(oForm, aValidationList, 'event_new_date', 'end', true);
			ziteman_calendarEnableDisableFields(oForm, aValidationList, 'event_new_month', 'end', true);
			ziteman_calendarEnableDisableFields(oForm, aValidationList, 'event_new_year', 'end', true);
			
			ziteman_calendarEnableDisableFields(oForm, aValidationList, 'event_new_hour', 'end_stop', true);
			ziteman_calendarEnableDisableFields(oForm, aValidationList, 'event_new_minute', 'end_stop', true);
			break;
		case 'repeatday':
			ziteman_calendarEnableDisableFields(oForm, aValidationList, 'event_new_hour', 'begin_stop', false);
			ziteman_calendarEnableDisableFields(oForm, aValidationList, 'event_new_minute', 'begin_stop', false);
			
			ziteman_calendarEnableDisableFields(oForm, aValidationList, 'event_new_date', 'end', false);
			ziteman_calendarEnableDisableFields(oForm, aValidationList, 'event_new_month', 'end', false);
			ziteman_calendarEnableDisableFields(oForm, aValidationList, 'event_new_year', 'end', false);
			
			ziteman_calendarEnableDisableFields(oForm, aValidationList, 'event_new_hour', 'end_stop', true);
			ziteman_calendarEnableDisableFields(oForm, aValidationList, 'event_new_minute', 'end_stop', true);
			break;
		case 'moreday':
			ziteman_calendarEnableDisableFields(oForm, aValidationList, 'event_new_hour', 'end_stop', false);
			ziteman_calendarEnableDisableFields(oForm, aValidationList, 'event_new_minute', 'end_stop', false);
			
			ziteman_calendarEnableDisableFields(oForm, aValidationList, 'event_new_date', 'end', false);
			ziteman_calendarEnableDisableFields(oForm, aValidationList, 'event_new_month', 'end', false);
			ziteman_calendarEnableDisableFields(oForm, aValidationList, 'event_new_year', 'end', false);
			
			ziteman_calendarEnableDisableFields(oForm, aValidationList, 'event_new_hour', 'begin_stop', true);
			ziteman_calendarEnableDisableFields(oForm, aValidationList, 'event_new_minute', 'begin_stop', true);
			break;
	}
	return;
}


function ziteman_reformdate(strValue)
{
	var bStart = false;
	var strReturn = '';
	for (var x=0; x<strValue.length; x++)
	{
		if ((strValue.substr(x, 1) == '0') && (!bStart))
		{
		} else {
			strReturn += strValue.substr(x, 1);
			bStart = true;
		}
	}
	return parseInt(strReturn);
}


function ziteman_validateDateInput(strDay, strMonth, strYear)
{
	/* month 0 = januar */
	strDay = ziteman_reformdate(strDay);
	strMonth = ziteman_reformdate(strMonth) - 1;
	strYear = ziteman_reformdate(strYear);
	var oDate = new Date(strYear, strMonth, strDay);
	
	/* YEAR FIX */
	var strCurrentYear = oDate.getYear();
	if (strCurrentYear < 1900)
	{
		strCurrentYear += 1900;
	}

	if (parseInt(strYear) == strCurrentYear && parseInt(strMonth) == oDate.getMonth() && parseInt(strDay) == oDate.getDate())
	{
		bReturn = true;
	} else {
		bReturn = false;
	}
	return bReturn;
}

function ziteman_changewebshoplevering(strFormId, strCheckBoxName)
{
	var oCheckBox = document.forms[strFormId][strCheckBoxName];
	var bChecked = true;
	if (oCheckBox)
	{
		bChecked = oCheckBox.checked;
	}
	
	/* GENNEMLØB ALLE LEVERINGS FELTER */
	var oHidden = document.forms[strFormId]["_fieldorder"];
	var strFields = '';
	if (oHidden)
	{
		strFields = oHidden.value;
		var aFields = strFields.split('<ziteman_split:post>');
		
		for (var x=0; x<aFields.length; x++)
		{
			var aTmpField = aFields[x].split('<ziteman_split:field>');
			if (aTmpField.length > 2)
			{
				var strCheck = aTmpField[2].split('_')[1];
				if (strCheck == 'lev')
				{
					/* DISABLE/ENABLE FIELD */
					var oCurrent = document.forms[strFormId][aTmpField[1]];
					if (oCurrent)
					{
						oCurrent.disabled = (bChecked == true)?false:true;
					}
				}
			}
		}
	}
	return;
}

function zitemanWebshopDataComboOnChange(strFormId, strName, strDoSubmit)
{
	var oField = document.forms["form" + strFormId][strName];
	if (oField)
	{
		var strValue = ziteman_validateGetValue(oField, "combobox");
		
		/* GET CHILD FIELDS */
		var oCombo = new Array();
		var oComboList = document.getElementsByTagName("SELECT");
		for (var x=0; x<oComboList.length; x++)
		{
			var strTestName = oComboList[x].getAttribute("name");
			if (strTestName.indexOf(strFormId) != -1 && strTestName.indexOf(strName) != -1 && strTestName.indexOf("_child") != -1)
			{
				/* VALID COMBO */
				oCombo[oCombo.length] = oComboList[x];
			}
		}

		for (var x=0; x<oCombo.length; x++)
		{
			var oDiv = document.getElementById(oCombo[x].getAttribute("name") + '_runtime');
			var iCountAtt = 0;
			for (var y=0; y<oDiv.childNodes.length; y++)
			{
				if (oDiv.childNodes[y].nodeType == 1)
				{
					if (iCountAtt == 1)
					{
						var oAttValues = oDiv.childNodes[y];
						iCountAtt++;
					}
					if (iCountAtt == 0)
					{
						var oAttRelations = oDiv.childNodes[y];
						iCountAtt++;
					}
				}
			}
			
			var strRelations = oAttRelations.innerHTML;
			var strDefaultAtt = strRelations.split(':')[0];
			var aRelationsList = strRelations.split(':')[1].split('#SPLITLINE#');

			var strFindId = strValue.split(':')[0];
			var bFound = false;
			var strUseId = strDefaultAtt;
			for (var y=0; y<aRelationsList.length - 1; y++)
			{
				if (aRelationsList[y] != '' && bFound == false)
				{
					if (aRelationsList[y].split('#SPLIT#')[0] == strFindId)
					{
						strUseId = aRelationsList[y].split('#SPLIT#')[1];
						bFound = true;
					}
				}
			}

			var strValues = oAttValues.innerHTML;
			var strAttName = '';
			var aValueLines = strValues.split('#SPLITLINE#');
			bFound = false;
			for (var y=0; y<aValueLines.length - 1; y++)
			{
				if (bFound == false)
				{
					if (strUseId == aValueLines[y].split(':')[0])
					{
						strAttName = aValueLines[y].split(':')[1];
						var aCurrentValues = aValueLines[y].split(':')[2].split('#SPLIT#');
						bFound = true;
					}
				}
			}
			
			/* NULSTIL DROPDOWN */
			for (var y=oCombo[x].length-1; y>-1; y--)
			{
				if (oCombo[x][y].value != 'NULL')
				{
					oCombo[x].remove(y);
				}
			}

			if (bFound && strValue != '')
			{
				/* VI HAR NU FUNDET DE KORREKT VÆRDIER TIL DROPDOWN BOKSEN */
				for (var y=0; y<aCurrentValues.length-1; y++)
				{
					var oOption = document.createElement("OPTION");
					oOption.text = aCurrentValues[y];
					oOption.value = aCurrentValues[y] + ':' + strAttName;
					try{
						oCombo[x].add(oOption, null);
					} catch(e) {
						oCombo[x].add(oOption);
					}
				}
			}
		}
		
		if (strDoSubmit == "true")
		{
			/* LAV SUBMIT */
			document.forms["form" + strFormId]["_action"].value = "submit";
			ziteman_validateform("form" + strFormId);
		}
	}
	return;
}

function zitemanWebshopDataComboOnChangeChild(strFormId, strName, strDoSubmit)
{
	var oForm = document.forms["form" + strFormId];
	if (oForm)
	{
		if (strDoSubmit == "true")
		{
			/* LAV SUBMIT */
			document.forms["form" + strFormId]["_action"].value = "submit";
			ziteman_validateform("form" + strFormId);
		}
	}
	return;
}

function ziteman_pollvote(strFromId, strLanguageId, strPollId, strAnswerId)
{
	var oNow = new Date();
	document.location = "pollvote.asp?_fromid=" + strFromId + "&_languageid=" + strLanguageId + "&_pollid=" + strPollId + "&_answerid=" + strAnswerId + "&runcount=" + Number(oNow);
	return;
}

function ziteman_movefaqsearchleft(sFormID, bAll)
{
	var oForm = document.forms["form" + sFormID];
	if (oForm)
	{
		var oLeft = oForm["dynamicfaqsearchleft"];
		var oRight = oForm["dynamicfaqsearchright"];
		if (oLeft.selectedIndex != -1 && !bAll)
		{
			var oElement = oLeft.options[oLeft.selectedIndex];
			if (oRight.selectedIndex != -1)
			{
				oRight.options[oRight.selectedIndex].selected = false;
			}
			oRight.appendChild(oElement);
		}
		if (bAll)
		{
			var iLength = oLeft.options.length;
			for (var x=0; x<iLength; x++)
			{
				oRight.appendChild(oLeft.options[0]);
			}
		}
	}
	return;
}
function ziteman_movefaqsearchright(sFormID, bAll)
{
	var oForm = document.forms["form" + sFormID];
	if (oForm)
	{
		var oLeft = oForm["dynamicfaqsearchleft"];
		var oRight = oForm["dynamicfaqsearchright"];
		if (oRight.selectedIndex != -1 && !bAll)
		{
			var oElement = oRight.options[oRight.selectedIndex];
			if (oLeft.selectedIndex != -1)
			{
				oLeft.options[oLeft.selectedIndex].selected = false;
			}
			oLeft.appendChild(oElement);
		}
		if (bAll)
		{
			var iLength = oRight.options.length;
			for (var x=0; x<iLength; x++)
			{
				oLeft.appendChild(oRight.options[0]);
			}
		}
	}
	return;
}

function zitemancrypt_getnewimages()
{
    var oImgs = document.getElementsByTagName("IMG");
    for (var x=0;x<oImgs.length; x++)
    {
        var sName = '' + oImgs[x].getAttribute('name');
        if (sName.indexOf('zitemanimagecrypt') != -1)
        {
            /* HENT ET NYT BILLEDE */
            var sImgSrc = oImgs[x].src;
            sImgSrc += '1';
            oImgs[x].src = sImgSrc;
        }
    }
}