/*
 * OpenTag, a tag deployment platform
 * Copyright 2011, QuBit Group
 * http://opentag.qubitproducts.com
 */

try{(function(){var q={};q.html={};(function(){var DOMContentLoaded,isReady=false,readyWait=1,readyList,readyComplete,bindReadyComplete,doScrollCheck;readyComplete=function(wait){var i,ii;if(wait===true){readyWait-=1}if(!readyWait||(wait!==true&&!isReady)){if(!document.body){return setTimeout(readyComplete,1)}isReady=true;if(wait!==true){readyWait-=1;if(readyWait>0){return}}for(i=0,ii=readyList.length;i<ii;i+=1){readyList[i]()}}};doScrollCheck=function(){if(isReady){return}try{document.documentElement.doScroll("left")}catch(e){setTimeout(doScrollCheck,1);return}readyComplete()};bindReadyComplete=function(){if(readyList){return}readyList=[];if((document&&document.getElementsByTagName&&document.getElementById&&document.body)||document.readyState==="complete"){return setTimeout(readyComplete,1)}if(document.addEventListener){document.addEventListener("DOMContentLoaded",DOMContentLoaded,false);window.addEventListener("load",readyComplete,false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",DOMContentLoaded);window.attachEvent("onload",readyComplete);var toplevel=false;try{toplevel=(window.frameElement===null)||(window.frameElement===undefined)}catch(e){}if(document.documentElement.doScroll&&toplevel){doScrollCheck()}}}};q.html.ready=function(fn){bindReadyComplete();if(isReady){setTimeout(fn,1)}else{readyList.push(fn)}};if(document.addEventListener){DOMContentLoaded=function(){document.removeEventListener("DOMContentLoaded",DOMContentLoaded,false);readyComplete()}}else{if(document.attachEvent){DOMContentLoaded=function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",DOMContentLoaded);readyComplete()}}}}}());q.html.fileLoader={};q.html.fileLoader.load=function(url,preLoadAction,postLoadHandler,parentNode,async){var scriptEl,preLoadResult,loadError,oldOnError,doPostLoad;doPostLoad=function(){postLoadHandler(url,loadError);if(oldOnError){window.onerror=oldOnError}};try{if(preLoadAction){preLoadResult=preLoadAction(url)}}catch(e){preLoadResult=false}finally{if(preLoadResult!==false){scriptEl=q.html.fileLoader.createScriptEl(url,async);if(postLoadHandler){scriptEl.onload=doPostLoad;scriptEl.onreadystatechange=function(){if((this.readyState==="complete")||(this.readyState==="loading")){setTimeout(doPostLoad,1)}}}if(!parentNode){parentNode=window.document.getElementsByTagName("head")[0]}if(window.onerror){oldOnError=window.onerror}window.onerror=function(reason,url,lineNumber){loadError={reason:reason,url:url,lineNumber:lineNumber};return true};parentNode.appendChild(scriptEl)}}};q.html.fileLoader.createScriptEl=function(path,async,forceReload){var scriptEl=document.createElement("script");scriptEl.type="text/javascript";scriptEl.src=q.html.fileLoader.tidyUrl(path)+(forceReload?("?"+new Date().getTime()):"");if(async!==false){scriptEl.async="true";scriptEl.defer="true"}else{scriptEl.async="false";if(scriptEl.async!==false){scriptEl.async=false}scriptEl.defer="false"}return scriptEl};q.html.fileLoader.tidyUrl=function(path){if(path.substring(0,5)==="http:"){return path}if(path.substring(0,6)==="https:"){return path}return"//"+path};q.html.PostData=function(url,data){var isIe,type,xhr;try{type="POST";isIe=navigator.userAgent.indexOf("MSIE")!==-1;xhr=null;url=("https:"===document.location.protocol?"https:":"http:")+url;try{xhr=new XMLHttpRequest()}catch(e1){}if(xhr&&!isIe){xhr.open(type,url,true)}else{if(typeof XDomainRequest!=="undefined"){xhr=new XDomainRequest();xhr.open(type,url)}else{xhr=null}}try{xhr.withCredentials=false}catch(e2){}if(xhr.setRequestHeader){xhr.setRequestHeader("Content-Type","text/plain;charset=UTF-8")}xhr.send(data)}catch(err){if(window.console&&window.console.log){window.console.log(err)}}};q.html.GlobalEval={};q.html.GlobalEval.globalEval=function(src){if(window.execScript){window.execScript(src)}else{var fn=function(){window["eval"].call(window,src)};fn()}};q.html.HtmlInjector={};q.html.HtmlInjector.inject=function(el,injectStart,str,cb,parentNode){var i,ii,d,scriptsRaw,scripts,script,contents;if(str.toLowerCase().indexOf("<script")>=0){d=document.createElement("div");d.innerHTML="a"+str;scriptsRaw=d.getElementsByTagName("script");scripts=[];for(i=0,ii=scriptsRaw.length;i<ii;i+=1){scripts.push(scriptsRaw[i])}contents=[];for(i=0,ii=scripts.length;i<ii;i+=1){script=scripts[i];if(script.src){contents.push({src:script.src})}else{contents.push({script:script.innerHTML})}script.parentNode.removeChild(script)}if(d.innerHTML){if(d.innerHTML.length>0){d.innerHTML=d.innerHTML.substring(1)}}q.html.HtmlInjector.doInject(el,injectStart,d);q.html.HtmlInjector.loadScripts(contents,0,cb,el)}else{d=document.createElement("div");d.innerHTML=str;q.html.HtmlInjector.doInject(el,injectStart,d);if(cb){cb()}}};q.html.HtmlInjector.doInject=function(el,injectStart,d){if(d.childNodes.length>0){var fragment=document.createDocumentFragment();while(d.childNodes.length>0){fragment.appendChild(d.removeChild(d.childNodes[0]))}if(injectStart){q.html.HtmlInjector.injectAtStart(el,fragment)}else{q.html.HtmlInjector.injectAtEnd(el,fragment)}}};q.html.HtmlInjector.injectAtStart=function(el,fragment){if(el.childNodes.length===0){el.appendChild(fragment)}else{el.insertBefore(fragment,el.childNodes[0])}};q.html.HtmlInjector.injectAtEnd=function(el,fragment,counter){if(!counter){counter=1}if((el===document.body)&&(document.readyState!=="complete")&&(counter<50)){setTimeout(function(){q.html.HtmlInjector.injectAtEnd(el,fragment,counter+1)},100)}else{el.appendChild(fragment)}};q.html.HtmlInjector.loadScripts=function(contents,i,cb,parentNode){var ii,c;for(ii=contents.length;i<ii;i+=1){c=contents[i];if(c.src){q.html.fileLoader.load(c.src,null,function(){q.html.HtmlInjector.loadScripts(contents,i+1,cb,parentNode)},parentNode);break}else{q.html.GlobalEval.globalEval(c.script)}}if(cb&&(i===ii)){cb()}};var urlFilters=[],scriptLoaders={},qTagClientId="",profileName="",tellLoadTimesProbability=0,pingServerUrl=null;var qTagClientId="33291";var profileName="48198";var urlFilters=[{filterType:"1",patternType:"1",pattern:"",priority:1,scriptLoaderKeys:["173526"]},{filterType:"1",patternType:"2",pattern:"http://www.poferries.com/tourist/confirmation.html",priority:1,scriptLoaderKeys:["345180"]},{filterType:"1",patternType:"4",pattern:"https://www.poferries.com/tourist/confirmation.html",priority:1,scriptLoaderKeys:["368891"]}];var scriptLoaders={173526:{id:"173526",name:"Google Analytics",pre:"",url:"",post:"",html:"<script type=\"text/javascript\">\n\n  var _gaq = _gaq || [];\n  _gaq.push(['_setAccount', 'UA-24543922-1']);\n  _gaq.push(['_trackPageview']);\n\n  (function() {\n    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;\n    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\n    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);\n  })();\n\n<\/script>",locationId:2,positionId:2,locationDetail:"",async:true,usesDocWrite:false},345180:{id:"345180",name:"MC floodlight tag - TI",pre:"",url:"",post:"",html:'<iframe src="https://fls.doubleclick.net/activityi;src=1047265;type=flood486;cat=flood413;qty=1;cost=[Revenue];u2=[PortDeparture];u3=[PortArrival];u4=[PassengerNumbers];ord=[OrderID]?" width="1" height="1" frameborder="0" style="display:none"></iframe> \n',locationId:1,positionId:1,locationDetail:"",async:true,usesDocWrite:false},368891:{id:"368891",name:"Responsys sales tracking",pre:"",url:"",post:"",html:'<IMG SRC="http://newsletter.poferries.com/pub//cct?_ri_=X0Gzc2X%3DUQpglLjHJlTQ0yQQQQQvQvQzgMzf&_ei_=" WIDTH="1" HEIGHT="1">\n',locationId:2,positionId:2,locationDetail:"",async:true,usesDocWrite:false}};var tellLoadTimesProbability=1;var pingServerUrl="pong.qubitproducts.com";function QTag(urlFilters,scriptLoaders){QTag.qTagLoaders=QTag.getLoaders(urlFilters,scriptLoaders,document.URL);QTag.loadersFinished=0;QTag.isTellingLoadTimes=tellLoadTimesProbability>Math.random();if(QTag.isTellingLoadTimes){QTag.loadTimes={}
}QTag.errors={};QTag.loadLoaders()}QTag.ALL="1";QTag.SUBSTRING="2";QTag.REGEX="3";QTag.EXACT_MATCH="4";QTag.FILTER_TYPE_INCLUDE="1";QTag.FILTER_TYPE_EXCLUDE="2";QTag.getLoaders=function(urlFilters,scriptLoaders,url){var i,ii,urlFilter,loaderKeysSet={},matchedFilters=[],loaders=[];if((!urlFilters)||(!url)){return loaders}for(i=0,ii=urlFilters.length;i<ii;i+=1){urlFilter=urlFilters[i];if(QTag.doesUrlFilterMatch(urlFilter,url)){matchedFilters.push(urlFilter)}}matchedFilters.sort(function(a,b){return b.priority-a.priority});for(i=0,ii=matchedFilters.length;i<ii;i+=1){QTag.updateLoaders(matchedFilters[i],loaderKeysSet)}for(i in loaderKeysSet){if(loaderKeysSet.hasOwnProperty(i)){loaders.push(scriptLoaders[i])}}return loaders};QTag.doesUrlFilterMatch=function(urlFilter,url){var matches=false;switch(urlFilter.patternType){case QTag.EXACT_MATCH:if(url.toLowerCase()===urlFilter.pattern.toLowerCase()){matches=true}break;case QTag.SUBSTRING:if(url.toLowerCase().indexOf(urlFilter.pattern.toLowerCase())>=0){matches=true}break;case QTag.REGEX:if(new RegExp(urlFilter.pattern).test(url)){matches=true}break;case QTag.ALL:matches=true;break}return matches};QTag.updateLoaders=function(urlFilter,loaderKeysSet){var i,ii,scriptLoaderKeys=urlFilter.scriptLoaderKeys;if(urlFilter.filterType===QTag.FILTER_TYPE_INCLUDE){for(i=0,ii=scriptLoaderKeys.length;i<ii;i+=1){if(scriptLoaderKeys.hasOwnProperty(i)){loaderKeysSet[scriptLoaderKeys[i]]=true}}}else{if(urlFilter.filterType===QTag.FILTER_TYPE_EXCLUDE){for(i=0,ii=scriptLoaderKeys.length;i<ii;i+=1){if(scriptLoaderKeys.hasOwnProperty(i)){delete loaderKeysSet[scriptLoaderKeys[i]]}}}}};QTag.waitCounts={};QTag.maxLoads=10;QTag.loadCheckInterval=500;QTag.loadLoaders=function(){var i,ii,qTagLoader,err;QTag.docWriteUsers=[];for(i=0,ii=QTag.qTagLoaders.length;i<ii;i+=1){qTagLoader=QTag.qTagLoaders[i];try{if(qTagLoader.usesDocWrite){QTag.docWriteUsers.push(qTagLoader)}else{QTag.doWhenReady(qTagLoader,QTag.loadTagLoader,function(){})}}catch(e){err={reason:"error parsing loader, "+qTagLoader.id+": "+e.reason,url:document.location.href};QTag.errors[qTagLoader.id]=err;if(window.debug){console.log(err)}}}QTag.loadLoadersSequentially()};QTag.doWhenReady=function(qTagLoader,f,timeoutHandler){QTag.waitCounts[qTagLoader.id]=0;QTag._doWhenReady(qTagLoader,f,timeoutHandler)};QTag._doWhenReady=function(qTagLoader,f,timeoutHandler){if(QTag.canLoad(qTagLoader)){f(qTagLoader)}else{if(QTag.waitCounts[qTagLoader.id]<QTag.maxLoads){QTag.waitCounts[qTagLoader.id]+=1;setTimeout(function(){QTag._doWhenReady(qTagLoader,f,timeoutHandler)},QTag.loadCheckInterval)}else{timeoutHandler(qTagLoader)}}};QTag.canLoad=function(qTagLoader){if(qTagLoader.locationId===2){return !!document.body}else{if(qTagLoader.locationId===3){return !!document.getElementById(qTagLoader.locationDetail)}}return true};QTag.loadLoadersSequentially=function(){var qTagLoader,finishHandler;if(QTag.docWriteUsers.length>0){qTagLoader=QTag.docWriteUsers[0];QTag.docWriteUsers.shift();QTag.doWhenReady(qTagLoader,QTag.loadLoaderSequentially,function(){QTag.loadLoadersSequentially()})}};QTag.loadLoaderSequentially=function(qTagLoader){var text=[];document.write=function(t){text.push(t)};document.writeln=function(t){text.push(t)};finishHandler=function(){var el=QTag.getLocation(qTagLoader);q.html.HtmlInjector.inject(el,qTagLoader.positionId===1,text.join("\n"),QTag.loadLoadersSequentially)};qTagLoader.finishHandler=finishHandler;QTag.loadTagLoader(qTagLoader)};QTag.loadTagLoader=function(qTagLoader){var ender=QTag.getTimerEnder(qTagLoader);try{if(qTagLoader.url){q.html.fileLoader.load(qTagLoader.url,QTag.getTimerStarter(qTagLoader),ender,qTagLoader.parentNode,qTagLoader.async)}else{if(qTagLoader.html){QTag.injectHtml(qTagLoader)}}}catch(e){ender(null,e)}};QTag.injectHtml=function(qTagLoader){var el=QTag.getLocation(qTagLoader);QTag.getTimerStarter(qTagLoader)();q.html.HtmlInjector.inject(el,qTagLoader.positionId===1,qTagLoader.html,QTag.getTimerEnder(qTagLoader))};QTag.getLocation=function(qTagLoader){var el;if(qTagLoader.locationId===1){el=document.getElementsByTagName("head")[0]}else{if(qTagLoader.locationId===2){el=document.body}else{if(qTagLoader.locationId===3){el=document.getElementById(qTagLoader.locationDetail)}else{el=document.body}}}return el};QTag.getTimerStarter=function(qTagLoader){if(QTag.isTellingLoadTimes){QTag.loadTimes[qTagLoader.id]={start:new Date().getTime()}}return QTag.createStatementEvaluator(qTagLoader.pre)};QTag.getTimerEnder=function(qTagLoader){return function(url,error){if(QTag.isTellingLoadTimes){QTag.loadTimes[qTagLoader.id].end=new Date().getTime()}if(error){QTag.errors[qTagLoader.id]=error}if(qTagLoader.finishHandler){qTagLoader.finishHandler()}return QTag.createStatementEvaluator(qTagLoader.post)()}};QTag.createStatementEvaluator=function(statement){if((!!statement)&&(statement.length>0)){var fn,toRun="fn = function() {\nq.html.GlobalEval.globalEval(statement);\nQTag.incrementLoadCounter([]);\n};";eval(toRun);return fn}else{return function(){QTag.incrementLoadCounter([])}}};QTag.incrementLoadCounter=function(){QTag.loadersFinished+=1;if(QTag.loadersFinished===QTag.qTagLoaders.length*2){q.html.ready(QTag.sendLoadTimes);if(window.qTag_allLoaded){window.qTag_allLoaded()}}};QTag.sendLoadTimes=function(){var loaderId,pingString,pingStrings,times;if(QTag.isTellingLoadTimes){pingString="c="+qTagClientId+"&p="+profileName+"&l="+(tellLoadTimesProbability)+"&d=";pingStrings=[];for(loaderId in QTag.loadTimes){if(QTag.loadTimes.hasOwnProperty(loaderId)){times=QTag.loadTimes[loaderId];pingStrings.push(loaderId+":"+(times.end-times.start))}}pingString+=("{"+pingStrings.join(",")+"}");if(pingServerUrl){q.html.PostData("//"+pingServerUrl+"/tag?"+pingString,null,"GET")}}QTag.sendErrors()};QTag.sendErrors=function(){if(!window.openTag_sendErrors){return}var loaderId,err,msg,errMsgs=[];for(loaderId in QTag.errors){if(QTag.errors.hasOwnProperty(loaderId)){err=QTag.errors[loaderId];errMsgs.push("{r: '"+err.reason+"',u:'"+err.url+"',l:'"+err.lineNumber+"'}")}}if(errMsgs.length>0){if(window.debug){console.log(errMsgs.join(","))}msg="c="+qTagClientId+"&p="+profileName+"&e="+("["+errMsgs.join(",")+"]");if(pingServerUrl){q.html.PostData("//"+pingServerUrl+"/tag_err?"+msg,null,"GET")}}};var qTag=new QTag(urlFilters||[],scriptLoaders||{})}())}catch(e){try{if(debug){console.debug(e)}}catch(ex){}};
