
var inputRuleList = new Array();
inputRuleList["ruleMandatory"] = new RegExp(".");
inputRuleList["ruleIATA"] = new RegExp("[0-9]{8}");
inputRuleList["ruleNumeric"] = new RegExp("[0-9]{1,}");
inputRuleList["ruleAlpha"] = new RegExp("[A-Za-z]{1,}");
inputRuleList["ruleEmail"] = new RegExp(".{1,}@.{1,}..{1,}");
inputRuleList["ruleInteger"] = new RegExp("^[0-9]*$");
var inputRuleMessage = new Array();
inputRuleMessage["ruleMandatory"] = "- mandatory field";
inputRuleMessage["ruleConditional"] = "- conditional field";
inputRuleMessage["ruleIATA"] = "- 8-digit numeric required";
inputRuleMessage["ruleNumeric"] = "- Not numeric";
inputRuleMessage["ruleAlpha"] = "- Not alphabetic";
inputRuleMessage["ruleEmail"] = "- Invalid email format";
inputRuleMessage["ruleInteger"] = "- Not numeric";
var inputConditionList = new Array();
var inputConditionLabel = new Array();
var conditionalInput = new Array();
var overrideLabel = new Array();
var sameAsInput = new Array();
var notEqualInput = new Array();
function FieldElement(formNameParam, forValue, forLabel)
{
this.formName = formNameParam;
this.fieldId = forValue;
this.fieldName = getIdElement(forValue).name;
this.fieldType = eval("document." + formNameParam + "." + forValue + ".type");
this.fieldValue = returnInputValue(this.formName, this.fieldName, this.fieldId);
this.fieldClassName = getIdElement(forValue).className;
this.fieldLabel = forLabel;
this.conditional = (typeof conditionalInput[this.fieldName] == "undefined") ? false : true;
this.conditionalPassed = (this.conditional && eval(conditionalInput[this.fieldName])) ? true : false;
this.sameAs = (typeof sameAsInput[this.fieldName] == "undefined") ? false : true;
this.sameAsPassed = false;
if(this.sameAs)
{
var a = returnInputValue(this.formName, this.fieldName, this.fieldId);
var b = returnInputValue(this.formName, sameAsInput[this.fieldName], this.fieldId);
this.sameAsPassed = (a == b) ? true : false;
}
this.notEqual = (typeof notEqualInput[this.fieldName] == "undefined") ? false : true;
this.notEqualPassed = false;
if(this.notEqual)
{
var a = returnInputValue(this.formName, this.fieldName, this.fieldId);
var b = returnInputValue(this.formName, notEqualInput[this.fieldName], this.fieldId);
this.notEqualPassed = (a != b) ? true : false;
}
if( typeof inputConditionList[ this.fieldName ] == "undefined" )
{
this.externalCondition = false;
this.externalConditionPassed = false;
}
else
{
this.externalCondition = inputConditionList[ this.fieldName ];
this.externalConditionPassed = eval( inputConditionList[ this.fieldName ] );
}
}
function hideBLSErrors()
{
var blsErrors = getIdElement("blsErrors");
if(typeof blsErrors != "undefined" && blsErrors != null)
{
blsErrors.style.display="none";
}
}
function checkInputFields(formParam)
{
hideBLSErrors();
var displayErrMsg = "";
var oldFieldName = "";
var noOfErrors = 0;
var formRef = eval( "document." + formParam );
if(getChildElementsByTagName(formRef,"label").length>0)
{
var labels = getChildElementsByTagName(formRef,"label");
for(var i=0; i<labels.length; i++)
{
if ( labels[i].htmlFor != '' )
{
fieldObj = new FieldElement(formParam, labels[i].htmlFor, labels[i].innerHTML);
var errMsg = checkValidInput(fieldObj);
if(errMsg == "")
{
labels[i].style.color = "";
}
else
{
if(fieldObj.fieldName != oldFieldName)
{
if (typeof overrideLabel[fieldObj.fieldName] == "undefined")
{
displayErrMsg = "<li>" + fieldObj.fieldLabel + " " + errMsg + "</li>";
}
else
{
displayErrMsg = "<li>" + overrideLabel[fieldObj.fieldName] + " " + errMsg + "</<li>";
}
addErrorLineToDisplay("errorMsgArea", displayErrMsg, noOfErrors)
noOfErrors++;
}
labels[i].style.color = "#FF0000";
oldFieldName = fieldObj.fieldName;
}
delete fieldObj;
}
}
}
if(noOfErrors > 0)
{
if (document.documentElement && document.documentElement.scrollTop)
{
document.documentElement.scrollTop=1;
}
else if (document.body && document.body.scrollTop)
{
document.body.scrollTop=1;
}
if(getIdElement("smeEnroErrPod")){
getIdElement("smeEnroErrPod").style.display = "block";
}
if(getIdElement("errorMsgArea")){
getIdElement("errorMsgArea").style.display = "block";
}
return false;
}
else
{
if(getIdElement("smeEnroErrPod")){
getIdElement("smeEnroErrPod").style.display = "none";
}
if(getIdElement("errorMsgArea")){
getIdElement("errorMsgArea").style.display = "none";
}
return true;
}
}
function addErrorLineToDisplay(errorID, errMsg, noErrs)
{
if(noErrs == 0)
{
getIdElement(errorID).innerHTML = "";
}
getIdElement(errorID).innerHTML += errMsg;
}
function checkValidInput(fieldObj)
{
var languageCode = document.forms.nav_form.language.value;
if (languageCode != 'fr' && languageCode != 'de' && languageCode != 'it' && languageCode != 'es')
{
languageCode = 'en';
}
var errMsg = "";
var classArray = fieldObj.fieldClassName.split(" ");
if(classArray.length != "undefined")
{
for(var i=0; i < classArray.length; i++)
{
if (typeof inputRuleList[classArray[i]] != "undefined")
{
if(!fieldObj.conditional || fieldObj.conditionalPassed)
{
if(!fieldObj.fieldValue.match(inputRuleList[classArray[i]]))
{
errMsg = inputRuleMessage[classArray[i]];
if (languageCode != 'en')
{
errMsg = getTranslatedErrorMessages(errMsg, languageCode);
}
break;
}
}
}
}
}
var defaultErrorMsgs = new Array();
defaultErrorMsgs['en'] = "<li> input not as expected, please check format </li>";
defaultErrorMsgs['fr'] = "<li> saisie non conforme, veuillez v\u00E9rifier le format </li>";
defaultErrorMsgs['de'] = "<li> Die Eingaben entsprechen nicht den Anforderungen. Bitte \u00FCberpr\u00FCfen Sie sie nochmals. </li>";
defaultErrorMsgs['it'] = "<li> immissione diversa dal previsto, verificare formato </li>";
defaultErrorMsgs['es'] = "<li> los datos no coinciden con lo esperado, compruebe el formato </li>";
var defaultError = defaultErrorMsgs[languageCode];
if(errMsg == "")
{
if(!fieldObj.conditional || fieldObj.conditionalPassed)
{
if(fieldObj.sameAs && !fieldObj.sameAsPassed)
{
errMsg = (typeof inputConditionLabel[ fieldObj.fieldName ] == "undefined") ? defaultError : inputConditionLabel[ fieldObj.fieldName ];
return errMsg;
}
}
}
if(errMsg == "")
{
if(!fieldObj.conditional || fieldObj.conditionalPassed)
{
if(fieldObj.notEqual && !fieldObj.notEqualPassed)
{
errMsg = (typeof inputConditionLabel[ fieldObj.fieldName ] == "undefined") ? fieldObj.fieldName + " " + defaultError : inputConditionLabel[ fieldObj.fieldName ];
return errMsg;
}
}
}
if(errMsg == "" )
{
if(!fieldObj.conditional || fieldObj.conditionalPassed)
{
if(fieldObj.externalCondition && !fieldObj.externalConditionPassed)
{
errMsg = (typeof inputConditionLabel[ fieldObj.fieldName ] == "undefined") ? fieldObj.fieldName + " " + defaultError : inputConditionLabel[ fieldObj.fieldName ];
return errMsg;
}
}
}
return errMsg;
}
function getTranslatedErrorMessages(errorMessage, languageCode)
{
var mandatoryInputRuleMsgs = new Array();
mandatoryInputRuleMsgs['fr'] = "- champ obligatoire";
mandatoryInputRuleMsgs['de'] = "- Pflichtfeld";
mandatoryInputRuleMsgs['it'] = "- campo obbligatorio";
mandatoryInputRuleMsgs['es'] = "- campo obligatorio";
var conditionalInputRuleMsgs = new Array();
conditionalInputRuleMsgs['fr'] = "- champ conditionnel";
conditionalInputRuleMsgs['de'] = "- Bedingtes Feld";
conditionalInputRuleMsgs['it'] = "- campo facoltativo";
conditionalInputRuleMsgs['es'] = "- campo condicional";
var IATAInputRuleMsgs = new Array();
IATAInputRuleMsgs['fr'] = "- Huit chiffres n\u00E9cessaires";
IATAInputRuleMsgs['de'] = "- 8-stellige Zahl erforderlich";
IATAInputRuleMsgs['it'] = "- necessario codice numerico a 8 cifre";
IATAInputRuleMsgs['es'] = "- n\u00FAmero de 8 d\u00EDgitos obligatorio";
var numericInputRuleMsgs = new Array();
numericInputRuleMsgs['fr'] = "- Non num\u00E9rique";
numericInputRuleMsgs['de'] = "- Keine Zahl";
numericInputRuleMsgs['it'] = "- Non numerico";
numericInputRuleMsgs['es'] = "- No num\u00E9rico";
var alphaInputRuleMsgs = new Array();
alphaInputRuleMsgs['fr'] = "- Non alphab\u00E9tique";
alphaInputRuleMsgs['de'] = "- Keine Buchstaben";
alphaInputRuleMsgs['it'] = "- Non alfabetico";
alphaInputRuleMsgs['es'] = "- No alfab\u00E9tico";
var emailInputRuleMsgs = new Array();
emailInputRuleMsgs['fr'] = "- Le format de l'adresse e-mail n'est pas valide";
emailInputRuleMsgs['de'] = "- Ung\u00FCltiges E-Mail-Format";
emailInputRuleMsgs['it'] = "- Formato email non valido";
emailInputRuleMsgs['es'] = "- Formato de e-mail no v\u00E1lido";
var integerInputRuleMsgs = new Array();
integerInputRuleMsgs['fr'] = "- Non num\u00E9rique";
integerInputRuleMsgs['de'] = "- Keine Zahl";
integerInputRuleMsgs['it'] = "- Non numerico";
integerInputRuleMsgs['es'] = "- No num\u00E9rico";
if (errorMessage == inputRuleMessage["ruleMandatory"])	{errorMessage = mandatoryInputRuleMsgs[languageCode];}
else if (errorMessage == inputRuleMessage["ruleConditional"])	{errorMessage = conditionalInputRuleMsgs[languageCode];}
else if (errorMessage == inputRuleMessage["ruleIATA"])	{errorMessage = IATAInputRuleMsgs[languageCode];}
else if (errorMessage == inputRuleMessage["ruleNumeric"])	{errorMessage = numericInputRuleMsgs[languageCode];}
else if (errorMessage == inputRuleMessage["ruleAlpha"])	{errorMessage = alphaInputRuleMsgs[languageCode];}
else if (errorMessage == inputRuleMessage["ruleEmail"])	{errorMessage = emailInputRuleMsgs[languageCode];}
else if (errorMessage == inputRuleMessage["ruleInteger"])	{errorMessage = integerInputRuleMsgs[languageCode];}
return errorMessage;
}
function returnInputValueByObject(fieldObj)
{
var returnValue = "";
var formHeader = "document." + fieldObj.formName + "." + fieldObj.fieldName;
switch(fieldObj.fieldType)
{
case "text": returnValue = eval(formHeader + ".value"); break;
case "password": returnValue = eval(formHeader + ".value"); break;
case "textarea": returnValue = eval(formHeader + ".value"); break;
case "select-one": returnValue = eval(formHeader + ".value"); break;
case "checkbox": returnValue = (eval(formHeader + ".checked")) ? "checked" : ""; break;
case "radio": var radioGroup = document.forms[fieldObj.formName].elements[fieldObj.fieldName];
if(radioGroup.length == "undefined")
{
if(radioGroup.checked)
{
returnValue = radioGroup.value;
}
}
else
{
for(var i=0; i < radioGroup.length; i++)
{
if(radioGroup[i].checked)
{
returnValue = radioGroup[i].value;
}
}
}
break;
}
return returnValue;
}
function returnInputValue(formParam, fieldParam, idParam)
{
var returnValue = "";
var formHeader = "document." + formParam + "." + fieldParam;
var typeParam = eval("document." + formParam + "." + idParam + ".type");
switch(typeParam)
{
case "text": returnValue = eval(formHeader + ".value"); break;
case "password": returnValue = eval(formHeader + ".value"); break;
case "textarea": returnValue = eval(formHeader + ".value"); break;
case "select-one": returnValue = eval(formHeader + ".value"); break;
case "checkbox": returnValue = (eval(formHeader + ".checked")) ? "checked" : ""; break;
case "radio": var radioGroup = document.forms[formParam].elements[fieldParam];
if(radioGroup.length == "undefined")
{
if(radioGroup.checked)
{
returnValue = radioGroup.value;
}
}
else
{
for(var i=0; i < radioGroup.length; i++)
{
if(radioGroup[i].checked)
{
returnValue = radioGroup[i].value;
}
}
}
break;
}
return returnValue;
}
function removeErrorClass(classString, stringToRemove)
{
if (typeof stringToRemove == "undefined" || stringToRemove == "")
{
stringToRemove = "errorDisplay";
}
var classArray = classString.split(" ");
var newClassString = "";
for(var i=0; i < classArray.length; i++)
{
if(classArray[i] != stringToRemove)
{
newClassString = newClassString + classArray[i] + " ";
}
}
return newClassString;
}
function removeMandatoryClass(fieldParam)
{
if(document.getElementsByTagName("label").length>0)
{
var labels = document.getElementsByTagName("label");
for(var i=0; i<labels.length; i++)
{
if(labels[i].htmlFor == fieldParam)
{
labels[i].className += " nonMandatory";
labels[i].className = removeErrorClass(labels[i].className,"mandatory");
getIdElement(fieldParam).className = removeErrorClass(getIdElement(fieldParam).className, "ruleMandatory");
}
}
}
}
function addMandatoryClass(fieldParam)
{
if(document.getElementsByTagName("label").length>0)
{
var labels = document.getElementsByTagName("label");
for(var i=0; i<labels.length; i++)
{
if(labels[i].htmlFor == fieldParam)
{
labels[i].className += " mandatory";
labels[i].className = removeErrorClass(labels[i].className,"nonMandatory");
getIdElement(fieldParam).className += " ruleMandatory";
}
}
}
}
function resetInputLabels(classToRemove)
{
if (typeof classToRemove == "undefined" || classToRemove == "")
{
classToRemove = "errorDisplay";
}
if(document.getElementsByTagName("label").length>0)
{
var labels = document.getElementsByTagName("label");
for(var i=0; i<labels.length; i++)
{
labels[i].className = removeErrorClass(labels[i].className, classToRemove);
}
}
getIdElement("errorMsgArea").style.display = "none";
}
function getChildElementsByTagName( parentNode, tagName )
{
if( parentNode.nodeType == 1 )
{
var nodes = new Array();
if( parentNode.childNodes.length > 0 )
{
if( parentNode.nodeName == tagName.toUpperCase() )
{
nodes = nodes.concat( parentNode );
}
for( var i = 0; i < parentNode.childNodes.length; i++ )
{
var children = getChildElementsByTagName( parentNode.childNodes[ i ], tagName );
if( children && children.length > 0 )
{
nodes = nodes.concat( children );
}
}
}
return nodes;
}
}
function showProduct(cat) {
alert("Hello in func ");
document.getElementById('flightPanel').style.display='none';
document.getElementById('UpgradePanel').style.display='none';
document.getElementById('hotelPanel').style.display='none';
panelToShow=cat+'Panel';
document.getElementById(panelToShow).style.display='block';
document.getElementById('flightTab').style.backgroundPosition='top left';
document.getElementById('UpgradeTab').style.backgroundPosition='top left';
document.getElementById('hotelTab').style.backgroundPosition='top left';
tabToHighlight=cat+'Tab';
document.getElementById(tabToHighlight).style.backgroundPosition='-174px 0px';
alert(" panelToShow " + panelToShow + " tabToHighlight " + tabToHighlight );
}
