
function swParams(sw_base_url,sw_type,sw_dep,sw_dst,sw_depd,sw_dep_daytime,sw_retd,sw_ret_daytime,sw_airline,sw_search,sw_prefill_return,sw_nonstops,sw_adults,sw_children,sw_infants,ud1,ud2,ud3)
{this.sw_base_url=sw_base_url;this.sw_type=sw_type;this.sw_dep=sw_dep;this.sw_dst=sw_dst;this.sw_depd=sw_depd;this.sw_dep_daytime=sw_dep_daytime;this.sw_retd=sw_retd;this.sw_ret_daytime=sw_ret_daytime;this.sw_airline=sw_airline;this.sw_search=sw_search;this.sw_prefill_return=sw_prefill_return;this.sw_nonstops=sw_nonstops;this.sw_adults=sw_adults;this.sw_children=sw_children;this.sw_infants=sw_infants;this.ud1=ud1;this.ud2=ud2;this.ud3=ud3;}
swUrlRewriter=new Object();swUrlRewriter.changeUrl=function(partnerDomain,iFrameId,locale)
{if(!locale){var locale='de';}
partnerDomain=swUrlRewriter.convertToNewPartnerDomain(partnerDomain);var defaultSearchAc='0';var swParams=swUrlRewriter.parseUrl(document.location.href,partnerDomain);var swValidatedParams=swUrlRewriter.validate(swParams,defaultSearchAc);var redirectUrl=(swValidatedParams==false)?swParams.sw_base_url+'/'+locale:swUrlRewriter.generateSwoodooUrl(swValidatedParams,locale);swUrlRewriter.changeIframeUrl(redirectUrl,iFrameId);}
swUrlRewriter.convertToNewPartnerDomain=function(partnerDomain)
{var spDom=partnerDomain.split('.');if(spDom[1]!='wl'&&spDom[1]!='wl-stage'){partnerDomain=spDom[0]+'.wl.'+spDom[1]+'.'+spDom[2]}
return partnerDomain;}
swUrlRewriter.parseUrl=function(url,partnerDomain)
{var swParameters=new swParams(partnerDomain,getParam('sw_type',url),getParam('sw_dep',url),getParam('sw_dst',url),getParam('sw_depd',url),getParam('sw_dep_daytime',url),getParam('sw_retd',url),getParam('sw_ret_daytime',url),getParam('sw_airline',url),getParam('sw_search',url),getParam('sw_prefill_return',url),getParam('sw_nonstops',url),getParam('sw_adults',url),getParam('sw_children',url),getParam('sw_infants',url),getParam('ud1',url),getParam('ud2',url),getParam('ud3',url));return swParameters;}
function getParam(param,url)
{param=param.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var regexS="[\?&]"+param+"=([^&#]*)";var regex=new RegExp(regexS);var results=regex.exec(url);if(results==null)
return'';else
return results[1];}
swUrlRewriter.validate=function(swParameters,defaultSearchAc)
{if(!swParameters.sw_base_url){return false;}
if(swParameters.sw_dep){if(!swParameters.sw_dst){if(swParameters.sw_prefill_return)
swParameters.sw_prefill_dep_return_ac=true;else
swParameters.sw_prefill_dep_ac=true;}}else{if(swParameters.sw_dst){if(swParameters.sw_prefill_return)
swParameters.sw_prefill_dst_return_ac=true;else
swParameters.sw_prefill_dst_ac=true;}}
if(swParameters.sw_depd.match(/([0-9]{2}.[0-9]{4})/)){swParameters.sw_depd='2012-02-04'}
if(swParameters.sw_depd.match(/([0-9]{2}.[0-9]{2}.[0-9]{4}-[0-3]{1})/)){defaultSearchAc='1';}
if(swParameters.sw_retd.match(/([0-9]{2}.[0-9]{2}.[0-9]{4}-[0-3]{1})/)){defaultSearchAc='1';}
if(!swParameters.sw_search.match(/([0-1]{1})/)){if(!defaultSearchAc)
{return false;}
swParameters.sw_search=defaultSearchAc;}
if(!swParameters.sw_depd){swParameters.sw_depd='2012-02-04'}
if(!swParameters.sw_retd){swParameters.sw_retd='2012-02-11'}
if(!swParameters.sw_type.match(/([0-1]{1})/)){swParameters.sw_type='1';}
if(!swParameters.sw_airline.match(/([A-Z]{3})/)){swParameters.sw_airline='';}
if(!swParameters.sw_dep_daytime.match(/([1-3])/)){swParameters.sw_dep_daytime='';}
if(!swParameters.sw_ret_daytime.match(/([1-3])/)){swParameters.sw_ret_daytime='';}
if(swParameters.sw_nonstops!='1'){swParameters.sw_nonstops='';}
if(!swParameters.sw_adults.match(/([1-4])/)){swParameters.sw_adults='1';}
if(!swParameters.sw_children.match(/([0-4])/)){swParameters.sw_children='0';}
if(!swParameters.sw_infants.match(/([0-4])/)){swParameters.sw_infants='0';}
if(!swParameters.ud1){swParameters.ud1='';}
if(!swParameters.ud2){swParameters.ud2='';}
if(!swParameters.ud3){swParameters.ud3='';}
return swParameters;}
swUrlRewriter.generateSwoodooUrl=function(swParameters,locale)
{if(swParameters.sw_base_url.lastIndexOf('/')==swParameters.sw_base_url.length-1){swParameters.sw_base_url=swParameters.sw_base_url.substring(0,swParameters.sw_base_url.length-1);}
if(!(swParameters.sw_dep||swParameters.sw_dst)){return swParameters.sw_base_url+'/'+locale+this.generateTrackingParamsUrl(swParameters);}
var newUrl=swParameters.sw_base_url+'/'+locale+'/result/';if(swParameters.sw_prefill_dst_ac){newUrl+='-/'+swParameters.sw_dst+this.generateTrackingParamsUrl(swParameters);return newUrl;}else if(swParameters.sw_prefill_dst_return_ac){newUrl+='-/'+swParameters.sw_dst+'/return'+this.generateTrackingParamsUrl(swParameters);return newUrl;}else if(swParameters.sw_prefill_dep_ac){newUrl+=swParameters.sw_dep+'/-'+this.generateTrackingParamsUrl(swParameters);return newUrl;}else if(swParameters.sw_prefill_dep_return_ac){newUrl+=swParameters.sw_dep+'/-/return'+this.generateTrackingParamsUrl(swParameters);return newUrl;}else{newUrl+=swParameters.sw_dep+'/'+swParameters.sw_dst+'/';switch(swParameters.sw_type)
{case'0':newUrl+=swParameters.sw_depd+'/0';newUrl+=this.generateOptionalParamsUrl(swParameters)+this.generateTrackingParamsUrl(swParameters);return newUrl;break;case'1':newUrl+=swParameters.sw_depd+'/0'+'/'+swParameters.sw_retd+'/0';newUrl+=this.generateOptionalParamsUrl(swParameters)+this.generateTrackingParamsUrl(swParameters);return newUrl;break;}}}
swUrlRewriter.generateOptionalParamsUrl=function(swParameters)
{var newUrl='';newUrl+=swParameters.sw_airline!=''?'/airline/'+swParameters.sw_airline:'';newUrl+=swParameters.sw_dep_daytime!=''?'/daytime/'+swParameters.sw_dep_daytime:'';newUrl+=swParameters.sw_ret_daytime!=''&&swParameters.sw_type=='1'?'/returnDaytime/'+swParameters.sw_ret_daytime:'';newUrl+=swParameters.sw_nonstops!=''?'/stops/0':'';if(swParameters.sw_adults!='1'||swParameters.sw_children!='0'||swParameters.sw_infants!='0'){newUrl+='/adults/'+swParameters.sw_adults+'/children/'+swParameters.sw_children+'/babies/'+swParameters.sw_infants;}
newUrl+=swParameters.sw_search==0?'/search/0':'';return newUrl;}
swUrlRewriter.generateTrackingParamsUrl=function(swParameters)
{var newUrl='';if(swParameters.ud1){newUrl+='&ud1='+swParameters.ud1;}
if(swParameters.ud2){newUrl+='&ud2='+swParameters.ud2;}
if(swParameters.ud3){newUrl+='&ud3='+swParameters.ud3;}
if(newUrl){newUrl='?'+newUrl.substr(1);}
return newUrl;}
swUrlRewriter.changeIframeUrl=function(newUrl,iFrameId)
{document.getElementById(iFrameId).src=newUrl;}
