
		email = "";
		pnr = "";
		flightnr = "";
		mainresult = true;
		
		invalidemail = "";
		invalidpnr = "";
		invaliddate = "";
		invalidflightnr = "";
		invalidlang = "";
		fill = "";
		route ="";
		
		function setCategory() {
			var cbx = returnObjById("claimattachment");
			var ddl = returnObjById("claimmaincategory");
			var ddl_sub = returnObjById("claimsubcategory");
			returnObjById("hidclaimcategory").value = ddl.options[ ddl.selectedIndex ].text;
			setMandatories();
			ddl_sub.disabled = ( ddl.selectedIndex != 16 );
			var cnt = ddl_sub.options.length;
			var idx = -1;
			if (ddl_sub.disabled) {
			    for (var i = 0; i < cnt; i++) {
			        if (ddl_sub.options[i].value == '---') {
			            ddl_sub.selectedIndex = i;
			            ddl_sub.options[i].selected = "selected";
			        }
			    }
			}
			
			cbx.checked = "";
			cbx.disabled = ( ddl.selectedIndex == 13 || ddl.selectedIndex == 15 || ddl.selectedIndex == 16 );
			
		}
		
		function setSubCategory() {
			var ddl = returnObjById("claimsubcategory");
			returnObjById("hidclaimsubcategory").value = ddl.options[ ddl.selectedIndex ].text;
		}

		function returnObjById( id )
		{
			if (document.getElementById)
				var returnVar = document.getElementById(id);
			else if (document.all)
				var returnVar = document.all[id];
			else if (document.layers)
				var returnVar = document.layers[id];
			return returnVar;
		}
		
		function validateEmail(isEmptyAllowed) {
			src = returnObjById("claimemail").value;
			var result = true;
			if ( isEmptyAllowed && 0 == src.length ) {
				mainresult = mainresult && result;
			}
			if ( result && src.length > 0 ) {
				var regex = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
				result = regex.test(src);
				mainresult = mainresult && result;
				if ( ! result ) {
					alert( invalidemail  );
				}
			}
			return result;
		}

		function validatePNR(isEmptyAllowed) {
			src = returnObjById("claimpnr").value;
			var result = true;
			if ( isEmptyAllowed && 0 == src.length ) {
				mainresult = mainresult && result;
			}
			if ( result && src.length > 0 ) {
				var regex = /^[a-zA-Z0-9]{6}$/;
				result = regex.test(src);
				mainresult = mainresult && result;
				if ( ! result ) {
					alert( invalidpnr  );
				}
			}
			return result;

        }
        function validateLanguage() {
            var result = true;
            var ddl = returnObjById("claimlanguage");
            if ("---" == ddl.options[ddl.selectedIndex].value) {
                result = false;
                alert(invalidlang);
            }
            return result;
        }
		 
		
		function validateDate(isEmptyAllowed) {
			var result = true;
			
			var cy = returnObjById("claimflightdatey").value;
			var cd = returnObjById("claimflightdated").value;
			var cm = returnObjById("claimflightdatem").value;
			
			if ( isEmptyAllowed && 0 == cy.length && 0 == cm.length && 0 == cd.length ) {
				mainresult = mainresult && result;
				return result;
			}
			
			var dayobj = new Date(cy, cm-1, cd);

			dayobj.setUTCFullYear(cy);
			
			result = ! ( ((dayobj.getMonth()+1!=cm)||(dayobj.getDate()!=cd)||(dayobj.getUTCFullYear()!=cy)) ) && dayobj.getUTCFullYear() > 2003;
		
			if ( ! result ) {
				alert( invaliddate )
			}
			return result;
		}

		function validateFlightNr(isEmptyAllowed) {
			src = returnObjById("claimflightno").value;
			var result = true;
			if ( isEmptyAllowed && 0 == src.length ) {
				mainresult = mainresult && result;
			}
			if ( result && src.length > 0 ) {
				var regex = /^[0-9]{0,3}$/;
				result = regex.test(src);
				if ( ! result ) {
					alert( invalidflightnr  );
				}
			}
			return result;
		}
		
		function validateReqFields() {
			var result = true;

			if ( isAllNeeded()  ) {
				result &= returnObjById('claimflightdatey').value.length > 0;
				result &= returnObjById('claimflightdatem').value.length > 0;
				result &= returnObjById('claimflightdated').value.length > 0;
				result &= returnObjById('claimpnr').value.length > 0;
				result &= returnObjById('claimflightno').value.length > 0;
			}			

			result &= returnObjById('claimcustomername').value.length > 0;
			result &= returnObjById('claimemail').value.length > 0;
			result &= returnObjById('claimtext').value.length > 0;
			if ( ! result ) {
				alert( fill  );
			}
			return result;
		}
		
		function validateRoute() {
			var result = true;

			var ddl = returnObjById("claimroutefrom");
			var from = ddl.options[ ddl.selectedIndex ].value;
			
			ddl = returnObjById("claimrouteto");
			var to = ddl.options[ ddl.selectedIndex ].value;
			
			result = ! ( "---" == from || "---" == to );
			
			if ( ! result ) {
				alert( route  );
			}
			return result;
		}

		function validateCategories() {
		    var result = true;
		    var ddl = returnObjById("claimmaincategory");
		    var ddl_sub = returnObjById("claimsubcategory");
		    if (ddl.selectedIndex == 16) {
		        var subc = ddl_sub.options[ddl_sub.selectedIndex].value;
		        if ("---" == subc) {
		            result = false;
		        }
		    }

		    if (!result) {
		        alert(invalidsubcat);
		    }
		    return result;
		}
		
		function isAllNeeded() {
			var ddl = returnObjById("claimmaincategory");
			var cat = ddl.options[ ddl.selectedIndex ].value;
			
			return cat.indexOf("11.") == -1 && cat.indexOf("13.") == -1  && cat.indexOf("15.") == -1 && cat.indexOf("16.") == -1  && cat.indexOf("17.") == -1;
		}
		
		function setMandatories() {
			var vis = "hidden";
			if ( isAllNeeded() ) {
				vis = "visible";
			}
			returnObjById("m1").style.visibility = vis;
			returnObjById("m2").style.visibility = vis;
			returnObjById("m3").style.visibility = vis;
			returnObjById("m4").style.visibility = vis;
		}
		 
		function checkAndSubmit() {
		
			mainresult = true;

			mainresult &= validateReqFields();
			
			var isEmptyAllowed = ! isAllNeeded();
			
			mainresult &= validatePNR(isEmptyAllowed);
			mainresult &= validateDate(isEmptyAllowed);
			mainresult &= validateLanguage();
			mainresult &= validateCategories();
			
			if ( isAllNeeded() ) {
				mainresult &= validateRoute(isEmptyAllowed);
			}
			mainresult &= validateFlightNr(isEmptyAllowed);
		
			mainresult &= validateEmail(email);
			
			if ( mainresult ) {
				myform = returnObjById('claimform');
				if ( myform ) {
					myform.submit();
				}
				else {
					return false;
				}
			}
			else {
				return false;
			}
		}
		

