function getElementFromUserContext(userContext, element){ var stringArr = userContext.split('&'); for(var i = 0; i < stringArr.length; i++){ var key = stringArr[i].substring(0,stringArr[i].indexOf('=')); var value = stringArr[i].substring(stringArr[i].indexOf('=')+1); if(key.toLowerCase() == element.toLowerCase()) return value; } return ""; } function getDisplayAttributesLocalizedText(){ var xsltParams = 'sortResultByLbl=' + escape(localizationObj.sortResultBy) + '&accomodationTypeTitleLbl=' + escape(localizationObj.accomodationTypeTitle); return xsltParams; } function getSearchLocalizedText(){ var xsltParams = 'HitsLbl=' + escape(localizationObj.numHits) + '&ShowAllHitsLbl=' + escape(localizationObj.showAll) + '&ShowAllHitsPopupTitle=' + escape(localizationObj.showAllPopupTitle) + '&ShowAllHitsPopupText=' + escape(localizationObj.showAllPopupText) + '&ShowHideAreaTitle=' + escape(localizationObj.showHideAreaTitle) + '&ShowHideAreaText=' + escape(localizationObj.showHideAreaText) + '&NoHits=' + escape(localizationObj.noHits) + '&priceTitle=' + escape(localizationObj.priceTitle); return xsltParams; } function getSearchProductLocalizedText(){ var xsltParams = 'personInformationLbl=' + escape(localizationObj.personInformation) + '&givenNameLbl=' + escape(localizationObj.givenName) + '&surnameLbl=' + escape(localizationObj.surname) + '&birthDayLbl=' + escape(localizationObj.birthDay) + '&genderLbl=' + escape(localizationObj.gender) + '&mandatoryFieldTitleLbl=' + escape(localizationObj.mandatoryFieldTitle) + '&mandatoryFieldTextLbl=' + escape(localizationObj.mandatoryFieldText)+ '&chooseGenderLbl=' + escape(localizationObj.chooseGender) + '&femaleLbl=' + escape(localizationObj.female)+ '&maleLbl=' + escape(localizationObj.male) + '&choosePersonLbl=' + escape(localizationObj.choosePerson)+ '®istredLbl=' + escape(localizationObj.registred)+ '¤cySuffixLbl=' + escape(localizationObj.currencySuffix)+ '&timePrefixLbl=' + escape(localizationObj.timePrefix)+ '&newPersonLbl=' + escape(localizationObj.newPerson)+ '&newChipCardLbl=' + escape(localizationObj.newChipCard) + '&refillChipCardLbl=' + escape(localizationObj.refillChipCard)+ '&skipassPopupTitleLbl=' + escape(localizationObj.skipassPopupTitle)+ '&skipassPopupTextLbl=' + escape(localizationObj.skipassPopupText)+ '&openSearchLbl=' + escape(localizationObj.openSearch) + '&newLbl=' + escape(localizationObj.newLbl); return xsltParams; } function getSearchProductPersonLocalizedText(){ var xsltParams = 'currencySuffixLbl=' + escape(localizationObj.currencySuffix)+ '&timePrefixLbl=' + escape(localizationObj.timePrefix); return xsltParams; } function doSearch(formular, btnName){ //Activate search var xsltParams = getSearchLocalizedText(); searchAccomodation(formular, "content=searchResult&button="+btnName, "", true, xsltParams); //Get displayAttributes GetDisplayAttributes(getElementValue(formular.elements['languageId']), getDisplayAttributesLocalizedText(), 'content=displayAttributes'); //Show searchresult showHideDiv("searchResult", true); //Show displayattributes showHideDiv("displayAttributes", true); } function searchAddon_071212(formular, userContext){ var startDate = getElementValue(formular.elements['startDate']); var query = getQueryValues(formular, 'p_'); var numPersons = getElementValue(formular.elements['antalPersoner']); var buid = getElementValue(formular.elements['buid']); var languageId = getElementValue(formular.elements['languageId']); var categoryId = getElementValue(formular.elements['catId']); var numDays = getElementValue(formular.elements['numDays']); var sortBy = getElementValue(formular.elements['sortBy']); GetAddonSearchResult(languageId, sortBy, "", startDate, startDate, numDays, categoryId, query, buid, numPersons, userContext); } function searchAddon(formular, btn, hldr){ var startDate = getElementValue(formular.elements['startDate']); var query = getQueryValues(formular, 'p_'); var numPersons = getElementValue(formular.elements['antalPersoner']); var buid = getElementValue(formular.elements['buid']); var languageId = getElementValue(formular.elements['languageId']); var categoryId = getElementValue(formular.elements['catId']); var numDays = getElementValue(formular.elements['numDays']); var sortBy = getElementValue(formular.elements['sortBy']); var hldrObj = document.getElementById(hldr); SetElementValue(hldr, ''); for(var i = 0; i < numPersons; i++){ var tmpDiv = document.createElement('div'); var tmpDivId = hldr + '_' + i tmpDiv.setAttribute('id', tmpDivId); hldrObj.appendChild(tmpDiv); if(i < (numPersons-1)){ hldrObj.appendChild(document.createElement('br')); hldrObj.appendChild(document.createElement('br')); } var userContext = 'content=' + tmpDivId; if(i == 0) userContext += '&button=' + btn; GetAddonSearchResultMain(languageId, sortBy, "", startDate, startDate, numDays, categoryId, query, buid, i, getSearchProductLocalizedText(), userContext); } //GetAddonSearchResult(languageId, sortBy, "", startDate, startDate, numDays, categoryId, query, buid, numPersons, userContext); } function filterSearchProduct(formular, personId, userContext){ var existingPersonValue = getElementValue(formular.elements['pp_'+ personId +'_personId']); var catId = getElementValue(formular.elements['catId']); var languageId = getElementValue(formular.elements['languageId']); var startDate = getElementValue(formular.elements['startDate']); var numDays = getElementValue(formular.elements['numDays']); var sortBy = getElementValue(formular.elements['sortBy']); var buid = getElementValue(formular.elements['buid']); var alder; var alderValue; var gender; var query = getQueryValues(formular, 'p_'); //Fulhack för att rädda olika facilitetsnamn mellan produktgrupperna var extraInFacName = ''; if(catId == 205) extraInFacName = '2'; else if(catId == 206) extraInFacName = '3'; if(existingPersonValue != '-1'){ alder = getElementFromUserContext(existingPersonValue, "dob"); gender = getElementFromUserContext(existingPersonValue, "g"); //Sets skipass chipcard info if(catId == 204){ //get person chipCardNr var chipCardNr = getElementFromUserContext(existingPersonValue, "chipnr"); if(chipCardNr != ""){ setElementValue(formular.elements["newChip_" + personId], "0"); formular.elements["personData_kortnr_" + personId].disabled = false; setElementValue(formular.elements["personData_kortnr_" + personId], chipCardNr); } } //query = '[Alder_min'+ extraInFacName +']<=' + }else{ alder = getElementValue(formular.elements['personData_dob_' + personId]); gender = getElementValue(formular.elements['personData_gender_' + personId]); } if(alder != ''){ var tmpStartDate = convertToDate(startDate); var tmpAlder = convertToDate(alder); alderValue = tmpStartDate.getFullYear() - tmpAlder.getFullYear(); if((tmpStartDate.getMonth() < tmpAlder.getMonth()) || (tmpStartDate.getMonth()==tmpAlder.getMonth() && tmpStartDate.getDate() < tmpAlder.getDate())) alderValue--; query += ' AND isNull([Alder_min' + extraInFacName + '], '+ alderValue +') <= ' + alderValue + ' AND isNull([Alder_maks'+ extraInFacName +'], '+ alderValue +')>=' + alderValue; } if(gender != '-1' && catId == 204) query += ' AND isNull([Kön], \''+ gender +'\')=\'' + gender + '\''; //Temporärt hack för att skipass-valideringen inte är implementerad 071217 if(catId == 204 && validateChipCardNr(getElementValue(formular.elements['personData_kortnr_' + personId]))) catId = 1204; GetAddonSearchResultPerson(languageId, sortBy, "", startDate, startDate, 0, catId, query, buid, personId, getSearchProductPersonLocalizedText(), userContext); } function filterSearchProduct2(formular, personId, userContext){ var existingPersonValue = getElementValue(formular.elements['pp_'+ personId +'_personId']); var catId = getElementValue(formular.elements['catId']); var languageId = getElementValue(formular.elements['languageId']); var startDate = getElementValue(formular.elements['startDate']); var numDays = getElementValue(formular.elements['numDays']); var sortBy = getElementValue(formular.elements['sortBy']); var buid = getElementValue(formular.elements['buid']); var alder; var alderValue; var gender; var query = getQueryValues(formular, 'p_'); //Fulhack för att rädda olika facilitetsnamn mellan produktgrupperna var extraInFacName = ''; if(catId == 205) extraInFacName = '2'; else if(catId == 206) extraInFacName = '3'; if(existingPersonValue != '-1'){ alder = getElementFromUserContext(existingPersonValue, "dob"); gender = getElementFromUserContext(existingPersonValue, "g"); //Sets skipass chipcard info if(catId == 204){ //get person chipCardNr var chipCardNr = getElementFromUserContext(existingPersonValue, "chipnr"); if(chipCardNr != ""){ setElementValue(formular.elements["newChip_" + personId], "0"); formular.elements["personData_kortnr_" + personId].disabled = false; setElementValue(formular.elements["personData_kortnr_" + personId], chipCardNr); } } //query = '[Alder_min'+ extraInFacName +']<=' + }else{ alder = getElementValue(formular.elements['personData_dob_' + personId]); gender = getElementValue(formular.elements['personData_gender_' + personId]); } if(alder != ''){ var tmpStartDate = convertToDate(startDate); var tmpAlder = convertToDate(alder); alderValue = tmpStartDate.getFullYear() - tmpAlder.getFullYear(); if((tmpStartDate.getMonth() < tmpAlder.getMonth()) || (tmpStartDate.getMonth()==tmpAlder.getMonth() && tmpStartDate.getDate() < tmpAlder.getDate())) alderValue--; query += ' AND isNull([Alder_min' + extraInFacName + '], '+ alderValue +') <= ' + alderValue + ' AND isNull([Alder_maks'+ extraInFacName +'], '+ alderValue +')>=' + alderValue; } if(gender != '-1' && catId == 204) query += ' AND isNull([Kön], \''+ gender +'\')=\'' + gender + '\''; //Temporärt hack för att skipass-valideringen inte är implementerad 071217 if(catId == 204 && validateChipCardNr(getElementValue(formular.elements['personData_kortnr_' + personId]))) catId = 1204; GetAddonSearchResultPerson(languageId, sortBy, "", startDate, startDate, 0, catId, query, buid, personId, getSearchProductPersonLocalizedText(), userContext); } function SetUsageAttributeValues(formular, personNum, userContext){ var existingPersonValue = getElementValue(formular.elements['pp_'+ personNum +'_personId']); if(existingPersonValue == '-1'){ var usageAttributesPattern = new RegExp("^usageAttribute_(\\d+)_("+ personNum +")$"); for(var i=0; i < formular.elements.length; i++){ if(usageAttributesPattern.test(formular.elements[i].name)){ formular.elements[i].value = ""; } } }else{ var languageId = getElementValue(formular.elements['languageId']); var catId = getElementValue(formular.elements['catId']); var personId = getElementFromUserContext(existingPersonValue, "id"); GetUsageAttributes(languageId, catId, "", personId, userContext); } } function putProductInBasket(formular, personNum, prodId, startTime, userContext){ //If person doesn't exist, create one var existingPersonValue = getElementValue(formular.elements['pp_'+ personNum +'_personId']); var personId = -1; var personFirstName = ''; var personLastName = ''; var personDOB = ''; var personGender = ''; var personKeyCard = ''; var validCard = true; var usageAttributes = null; if(formular.elements['personData_kortnr_' + personNum]) personKeyCard = getElementValue(formular.elements['personData_kortnr_' + personNum]); else if(existingPersonValue != -1) personKeyCard = getElementFromUserContext(existingPersonValue, "chipnr"); personKeyCard = personKeyCard.replace(/\s?\/\s?/, ' / '); personKeyCard = personKeyCard.replace(/\s?-\s?/,'-'); if(existingPersonValue != -1) personId = getElementFromUserContext(existingPersonValue, "id"); else{ if(!validatePersonData(formular, personNum)){ return false; }else{ personFirstName = getElementValue(formular.elements['personData_firstName_' + personNum]); personLastName = getElementValue(formular.elements['personData_lastName_' + personNum]); personDOB = getElementValue(formular.elements['personData_dob_' + personNum]); personGender = getElementValue(formular.elements['personData_gender_' + personNum]); } } var languageId = getElementValue(formular.elements['languageId']); //Check which usageAttributes are mandatory for this product var usageAttributeArray = new Array(); if(formular.elements['usageAttributesValidated_' + personNum]){ //get usageAttributes for product var usageAttributesToValidate = formular.elements['usageAttributesValidated_' + personNum].value; var usageAttributesPattern = new RegExp("^usageAttribute_(\\d+)_("+ personNum +")$"); var usageAttributesValidated = true; for(var i=0; i < formular.elements.length; i++){ if(usageAttributesPattern.test(formular.elements[i].name)){ var usageAttribute = new BoMan.UsageAttribute(); usageAttribute.FacId = formular.elements[i].name.replace(usageAttributesPattern, '$1'); usageAttribute.Value = getElementValue(formular.elements[i]); usageAttributeArray.push(usageAttribute); //If value is given with the wrong syntax. //This triggers even if value is not manadatory if(usageAttribute.Value.trim() != '' && !/^\d{2,}(,\d)?$/.test(usageAttribute.Value.trim())){ usageAttributesValidated = false; markField(false, formular.elements[i]); }else{ //Check if value is mandatory and not empty if((','+ usageAttributesToValidate + ',').indexOf(','+ usageAttribute.FacId +',') >= 0 && usageAttribute.Value.trim() == ''){ usageAttributesValidated = false; markField(false, formular.elements[i]); }else{ markField(true, formular.elements[i]); } } } } if(!usageAttributesValidated) return false; } var catId = getElementValue(formular.elements['catId']); var startDate = startTime;//getElementValue(formular.elements['startDate']); if(startDate.indexOf('-') == -1){ startDate = startDate.substr(0,4) + '-' + startDate.substr(4,2) + '-' + startDate.substr(6,2); } var buid = getElementValue(formular.elements['buid']); var contractId = getElementValue(formular.elements['contract']); PutNonRentalInBasket(startDate, prodId, 0, -1, -1, buid, 1, 0, '', startDate, contractId, personId, personFirstName, personLastName, personDOB, personGender, personKeyCard, usageAttributeArray, userContext); } function validatePersonData(formular, personNum){ var personFirstName = getElementValue(formular.elements['personData_firstName_' + personNum]); var personLastName = getElementValue(formular.elements['personData_lastName_' + personNum]); var personDOB = getElementValue(formular.elements['personData_dob_' + personNum]); var personGender = getElementValue(formular.elements['personData_gender_' + personNum]); var isValid = true; if(getElementValue(formular.elements['newChip_' + personNum]) == '0'){ var validCard = validateChipCardNr(getElementValue(formular.elements['personData_kortnr_' + personNum])); markField(validCard, formular.elements['personData_kortnr_' + personNum]); isValid = validCard; } if(personFirstName == ''){ markField(false, formular.elements['personData_firstName_' + personNum]); isValid = false; }else markField(true, formular.elements['personData_firstName_' + personNum]); if(personLastName == ''){ markField(false, formular.elements['personData_lastName_' + personNum]); isValid = false; }else markField(true, formular.elements['personData_lastName_' + personNum]); if(personDOB == '' || !validateDate(personDOB)){ markField(false, formular.elements['personData_dob_' + personNum]); isValid = false; }else markField(true, formular.elements['personData_dob_' + personNum]); if(personGender == '-1'){ markField(false, formular.elements['personData_gender_' + personNum]); isValid = false; }else markField(true, formular.elements['personData_gender_' + personNum]); return isValid; } function validateDate(datum){ if (datum.length == 0){return true;} var datPat = /^(\d+)([-\/])(\d+)(\2)(\d+)$/ var mArray = datum.match(datPat); if (mArray == null){ return false; }else{ var day = mArray[2]=="-"?mArray[5]:mArray[3]; var month = mArray[2]=="-"?mArray[3]:mArray[1]; var year = mArray[2]=="-"?mArray[1]:mArray[5]; if(day < 1 || day > 31 || month < 1 || month > 12){return false;} if((month == 4 || month == 6 || month == 9 || month == 11) && day > 30){return false;} if(month == 2){ var skott = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)); if(day > 29 || (day > 28 && !skott)){return false;} } return true; } } function markField(valid, field){ if(valid) field.className = 'validField'; else field.className = 'invalidField'; } function appendArea(area){ var element = document.getElementById('omrade'); var re = new RegExp(","+area+","); if(!re.test(","+element.value+",")){ if(element.value == "") element.value += "" + area; else element.value += "," + area; } } function updateCategories(formular, userContext){ var languageId = getElementValue(formular.elements['languageId']); var businessId = getElementValue(formular.elements['buid']); GetCategorySummary(languageId, businessId, userContext); } function searchAccomodation(formular, userContext, specificArea, forceSearch, xsltParams){ var dateSearchType = getElementValue(formular.elements['dateSearchType']); var dates = getSearchDates(formular, dateSearchType); var query = getQueryValues(formular, 'p_'); //If user searches for specific area, all results gets displayed var searchedArea = getElementValue(formular.elements['p_Område=']); if(searchedArea != '') appendArea(searchedArea); var accomodationName = getElementValue(formular.elements['s_accomodationId']); var attributeFilter = getAttributeFilter(formular, 'a_'); if(attributeFilter.length > 0) attributeFilter = ","+ attributeFilter +","; var sortBy = getElementValue(formular.elements['resultsort']); if(sortBy == "") sortBy = "prod_id"; var omraden = getElementValue(formular.elements['omrade']); if(omraden.length > 0) omraden = ","+ omraden +"," var languageId = getElementValue(formular.elements['languageId']); var searchKey = getElementValue(formular.elements['searchKey']); var hiddenAreas = getHiddenAreas(document.getElementById('searchResult')); var searchMode = dateSearchType == 'noDate'?-1:0; var displayNumber = getElementValue(formular.elements['displayNumber']); if(dateSearchType == 'period'){ //special for sunday to thursday if(convertToDate(dates[1]).getDay() == 4 && convertToDate(dates[0]).getDay() == 0) query += " and byttedag='"+ GetDayValue(convertToDate(dates[0])) +"'"; else query += " and byttedag='"+ GetDayValue(convertToDate(dates[1])) +"'"; } GetAccomodationSearchResult(languageId, sortBy, "", dates[0], dates[1], query, accomodationName, dates[3], searchMode, dates[2], forceSearch, searchKey, attributeFilter, omraden, specificArea, hiddenAreas, displayNumber==""?2:displayNumber, xsltParams, userContext); } function GetDayValue(date){ switch (date.getDay()) { case 1: return "måndag"; case 2: return "tisdag"; case 3: return "onsdag"; case 4: return "torsdag"; case 5: return "fredag"; case 6: return "lördag"; default: return "söndag"; } } function getAccomodationAttributes(formular, prodId, userContext){ var dates = getSearchDates(formular, getElementValue(formular.elements['dateSearchType'])); var query = getQueryValues(formular, 'p_'); var accomodationName = getElementValue(formular.elements['s_accomodationId']); var sortBy = getElementValue(formular.elements['resultsort']); if(sortBy == "") sortBy = "1"; var languageId = getElementValue(formular.elements['languageId']); var searchKey = getElementValue(formular.elements['searchKey']); var searchMode = getElementValue(formular.elements['dateSearchType']) == 'noDate'?-1:0; GetAccomodationAttributes(languageId, sortBy, "", dates[0], dates[1], query, accomodationName, dates[3], searchMode, dates[2], searchKey, prodId, userContext); } function getHiddenAreas(rootNode){ var nodeList = rootNode.getElementsByTagName("div"); var re = new RegExp("^omr_(.+?)_result$"); var output = ""; for(var i = 0; i < nodeList.length; i++) if(re.test(nodeList[i].id) && nodeList[i].style.display == "none") output += "," + nodeList[i].id.match(re)[1]; if(output.length > 0) output += ","; return output; } function getAttributeFilter(formular, prefix){ var output = ''; for(var i=0; i < formular.elements.length; i++){ var elementName = formular.elements[i].name; if(elementName.indexOf(prefix) == 0 && (','+output).indexOf(','+elementName.replace(prefix,'')+',') == -1){ var varde = getElementValue(formular.elements[elementName]); if(varde != '') output += elementName.replace(prefix, '') + ','; } } //Removes last ','-token if(output.length > 0) output = output.substring(0, output.length-1); return output; } function getSearchDates(formular, typ){ var startDate; var stopDate; var numDays; if(typ == 'noDate') return Array('','',-1,-1); else if(typ == 'period'){ //Get period value and startdate from week startDate = convertToDate(formular.elements['startDate'].value); var periodValues = formular.elements['period'].value.split(';'); startDate.setDate(startDate.getDate() + parseInt(periodValues[0])); stopDate = new Date(startDate); stopDate.setDate(stopDate.getDate() + parseInt(periodValues[1])); numDays = parseInt(periodValues[1]); weekpart = parseInt(periodValues[2]); }else if(typ == 'dates'){ //Get startdate and number of nights startDate = convertToDate(formular.elements['startDate'].value); numDays = parseInt(formular.elements['nights'].value); stopDate = new Date(startDate); stopDate.setDate(stopDate.getDate() + numDays); weekpart = -1; } startDate = startDate.getFullYear() + '-' + (startDate.getMonth()+1) + '-' + startDate.getDate(); stopDate = stopDate.getFullYear() + '-' + (stopDate.getMonth()+1) + '-' + stopDate.getDate(); return Array(startDate, stopDate, numDays, weekpart); } function convertToDate(dateStr){ var matches = dateStr.split('-'); return new Date(matches[1] +'/'+ matches[2] +'/'+ matches[0]); } function getQueryValues(formular, prefix){ var output = ''; for(var i=0; i < formular.elements.length; i++){ var elementName = formular.elements[i].name; if(elementName.indexOf(prefix) == 0 && output.indexOf(elementName.replace(prefix,'')) == -1){ var varde = ''; varde = getElementValue(formular.elements[elementName]); if(varde != ''){ if(isNaN(varde) && elementName.indexOf(' BETWEEN ') < 0) output += ' AND ' + elementName.replace(prefix, '').replace(/^([^>=\s]+)(.*)/,'[$1] $2') + '\'' + varde + '\''; else output += ' AND ' + elementName.replace(prefix, '').replace(/^([^>=\s]+)(.*)/,'[$1] $2') + varde; } } } return output; } /******************************************** Set default values on page *********************************************/ function SetElementValue(elementId, value){ var elem = document.getElementById(elementId); if(elem) elem.innerHTML = value; } function GetElementValue(elementId){ var elem = document.getElementById(elementId); if(elem) return elem.innerHTML; else return ''; } function SetFormValue(elementId, value){ var elem = document.getElementById(elementId); if(elem) elem.value = value; } function GetFormValue(elementId, value){ var elem = document.getElementById(elementId); if(elem) return elem.value; else return ''; } function LoadDefaultView(settings){ var languageId = settings["languageId"]?settings["languageId"]:0; var searchType = settings["searchtype"]?settings["searchtype"]:"period"; var omraden = settings["areas"]?settings["areas"]:""; var startDate = settings["startDate"]?settings["startDate"]:new Date(); var doSearch = settings["dosearch"]?settings["dosearch"]:false; var accomodationName = settings["accomodationName"]?settings["accomodationName"]:""; var nights = settings["numNights"]?settings["numNights"]:7; var searchParams = settings["searchParams"]?settings["searchParams"]:""; var displayNumber = 0; //Preset dateSearchType //dateSearchType_X, 1 = Fri sökning, 2 = Period, 3 = Datum var dateObj; if(searchType.toLowerCase() == "period"){ GetSearchByPeriod(languageId, settings["period"]?settings["period"]:1, startDate, 'ValjVeckaLbl='+ escape(localizationObj.periodChooseWeek) +'&ValjPeriodLbl=' + escape(localizationObj.periodChoosePeriod), 'content=searchDatePeriod&finished=ws_searchtype'); dateObj = document.getElementById('dateSearchType_2'); }else if(searchType.toLowerCase() == "dates"){ GetSearchByDate(languageId, nights, startDate, 'content=searchDatePeriod&finished=ws_searchtype'); dateObj = document.getElementById('dateSearchType_3'); }else{ window.ws_searchtype = true; dateObj = document.getElementById('dateSearchType_1'); } if(dateObj) dateObj.checked = true; GetDefaultSearchFields(languageId, searchParams, 'OppetSokLbl=' + escape(localizationObj.openSearch) + '&SokBoendeLbl=' + escape(localizationObj.searchAccomodation), 'content=searchDefaultAttributes&finished=ws_searchfields'); //If "omraden" is set and doSearch, change displayNumber = 0 if(omraden != ""){ var omrElem = document.getElementById("omrade"); if(omrElem) omrElem.value = omraden; if(doSearch) document.getElementById("displayNumber").value = 0; } if(doSearch) doDefaultSearch(0); //searchAccomodation(document.forms['aspnetForm'], "content=searchResult", "", true); //GetAccomodationSearchResult(languageId, sortBy, "", startDate, endDate, searchParams, accomodationName, -1, searchMode, nights, true, searchKey, "", omraden, "", "", displayNumber, 'content=searchResult'); } function doDefaultSearch(num){ var finished = true; if(!window.ws_searchtype) finished = false; if(!window.ws_searchfields) finished = false; //searchAccomodation(document.forms['aspnetForm'], "content=searchResult", "", true); if(finished) doSearch(document.forms['aspnetForm'], 'searchBtn'); else if(num < 20) setTimeout('doDefaultSearch('+ (num++) +')',1000); } /******************************************** Show/hide div *********************************************/ function showHideDiv(imgId, divId, show){ var img = document.getElementById(imgId); var div = document.getElementById(divId); if(div){ if(show){ div.style.display = 'block'; if(img) img.src='/bokning/bilder/ikoner/pil_upp.gif'; } else { div.style.display = 'none'; if(img) img.src='/bokning/bilder/ikoner/pil_ner.gif'; } } } /******************************************** Initiate autocomplete *********************************************/ function InitiateAutoComplete(txtFieldId, hiddenFieldId){ var hiddenField = document.getElementById(hiddenFieldId); var txtField = document.getElementById(txtFieldId); if(hiddenField.value != ""){ var obj = actb(txtField,hiddenField.value.split(','),window.s_accomodationId_hasFocus); }else GetAccomodationCodes("fieldname="+txtFieldId+"&hiddenfield=" + hiddenFieldId); } function EvaluateScript(contentDiv){ var scripts = contentDiv.getElementsByTagName("script"); for(var i=0; i < scripts.length; i++){ eval(scripts[i].innerHTML); } } /******************************************** Get checked value from select/checkbox/radio *********************************************/ function getElementValue(element){ var varde=''; if(!element) return varde; if(element.length){ for(var n=0;n < element.length;n++){ if(element[n].type=="text" && !element[n].disabled){ varde += element[n].value; //}else if((element.type=="select-one" || element.type=="select-multiple") && !element.disabled && element[n].selected){ // varde += element[n].value; }else if((element.type=="select-one" || element.type=="select-multiple") && !element.disabled && element[n].selected){ varde += element[n].value; }else if((element[n].type=="select-one" || element[n].type=="select-multiple") && !element[n].disabled){ if(element[n].options.length){ for(var ii=0; ii < element[n].options.length; ii++){ if(element[n].options[ii].selected){ varde += element[n].options[ii].value; } } }else{ varde += element[n].value; } }else if(element[n].checked==true && !element[n].disabled){ varde += element[n].value; } } }else{ if((element.type=="checkbox" || element.type=="radio") && !element.disabled){ if(element.checked){ varde = element.value; } }else if(!element.disabled){ varde = element.value; } } return varde; } function setElementValue(element, value){ if(!element) return false; if(element.length){ var multivalue = value.split(', '); for(var n=0;n < element.length; n++){ if(element[n].type=="text" && !element[n].disabled){ element[n].value = multivalue[n]; }else if((element.type=="select-one" || element.type=="select-multiple") && !element.disabled){ if(element.options.length){ for(var ii=0; ii < element.options.length; ii++){ element.options[ii].selected = isInArray(multivalue, element.options[ii].value); n++; } } }else if(element[n].type == 'radio' || element[n].type == 'checkbox'){ element[n].checked = isInArray(multivalue, element[n].value); } } }else{ if((element.type=="checkbox" || element.type=="radio")){ element.checked = (element.value == value); }else{ element.value = value; } } return true; } function isInArray(arr, value){ for(var i = 0; i < arr.length; i++) if(arr[i] == value) return true; return false; } function validateChipCardNr(txt){ //var pat = /^([0-9a-fA-F]){8}\s?\/\s?([0-9a-fA-F]){3}\s?-\s?([0-9a-fA-F]){3}$/; var pat = /^([0-9a-fA-F]){8}?\/?([0-9a-fA-F]){3}\s?-\s?([0-9a-fA-F]){3}$/; var tmp = txt.match(pat); return (tmp != null); } function chipCardHelper(formular, personId){ var text = formular.elements['personData_kortnr_part1_'+personId].value + '/' + formular.elements['personData_kortnr_part2_'+personId].value + '-' + formular.elements['personData_kortnr_part3_'+personId].value; markField(validateChipCardNr(text), formular.elements['personData_kortnr_part1_'+personId]); markField(validateChipCardNr(text), formular.elements['personData_kortnr_part2_'+personId]); markField(validateChipCardNr(text), formular.elements['personData_kortnr_part3_'+personId]); setElementValue(formular.elements["personData_kortnr_" + personId], text); } function toggleChipCardInputs(formular, personId, boolVal){ formular.elements['personData_kortnr_'+personId].disabled = boolVal; formular.elements['personData_kortnr_part1_'+personId].disabled = boolVal; formular.elements['personData_kortnr_part2_'+personId].disabled = boolVal; formular.elements['personData_kortnr_part3_'+personId].disabled = boolVal; }