function Ajax()
{
    var xmlHttp = null;
    var verb = 'GET';var body = null;
    var url = '';handler = '';var element = '';
    var date = new Date();
        
    this.GetData = function(_url,_body,_verb,_handler)
    {
        if(_verb != '') {   verb = _verb;    }
        if(_body != '') {   body = _body;    }
        
        url = _url;
        handler = _handler;
        
        xmlHttp = AJ_X();
        if(xmlHttp != null)
        {
            xmlHttp.onreadystatechange = AJ_SC;
            xmlHttp.open(verb,url,true);
            xmlHttp.send(body);
        }
    }
    
    this.SendRequest = function(_url)
    {
		url = Ajax_AppendTimestamp(_url);
		
		xmlHttp = AJ_X();
        if(xmlHttp != null)
        {
			xmlHttp.onreadystatechange = function(){};
            xmlHttp.open(verb,url,true);
            xmlHttp.send(body);
        }
    }
    
    this.UpdateInnerHtml = function(_url,_element)
    {    
        url = _url;
        element = _element;
        
        xmlHttp = AJ_X();
        
        if(xmlHttp != null)
        {
            xmlHttp.onreadystatechange = Ajax_UpdateInnerHtml;
            xmlHttp.open(verb,url,true);
            xmlHttp.send(body);
        }
    }
	
	function Ajax_AppendTimestamp(_url){
		if(_url.indexOf('?') > -1){
			_url += '&nocache=' + date.getTime();
		}
		else{
			_url += '?nocache=' + date.getTime();
		}
		return _url;
	}

    function Ajax_UpdateInnerHtml(){
        if (xmlHttp.readyState == 4)
        {
            if (is404Page(xmlHttp.responseText))
                eval(handler + '(\'\')');
            else if (xmlHttp.status == 200)
            {
                document.getElementById(element).innerHTML = xmlHttp.responseText;
            }
        }
    }

    function AJ_SC()
    {
        if (xmlHttp.readyState == 4)
        {
            if (is404Page(xmlHttp.responseText))
                eval(handler + '(\'\')');
            else if (xmlHttp.status == 200)
            {
                var re = new RegExp('\'', 'gi');
                var r = xmlHttp.responseText.replace(re,'\\\'');
                var reNL = new RegExp('\n', 'g');
                r = r.replace(reNL,'');
                var reCR = new RegExp('\r', 'g');
                r = r.replace(reCR,'');
                eval(handler + '(\'' + r + '\')');
            }
        }
    }
    
    function AJ_X()
    {
        var oX = null;
        try
        {
            oX = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e)
        {
            try
            {
                oX = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(E)
            {
                oX = null;
            }
        }
        
        if((oX == null) && (typeof XMLHttpRequest != 'undefined'))
        {
            oX = new XMLHttpRequest();
        }
        return oX;
    }      
    
    function is404Page(sText) 
    {
        return sText.indexOf("The page you requested has been moved or does not exist") >= 0;
    }
}//This function required prototype.js or /daily/js/ajax.js to already be included
function Dedup()
{
	var url = window.location.href;
	var fDelete = false;

	//Checking for SEM links.
	if( (ParamExists("kword", url)) || (ParamExists("semcid", url)) )
	{
		fDelete = true;
	}
	//Checking for Email links
	else if ( (ParamExists("emlcid", url)) || ( (ParamExists("eml", url)) && (GetParam("tpid", url) == "1") ) )
	{	
		fDelete = true;
	}
	// Trip Advisor links or other Distribution Partners
	else if ( ParamExists("mdpcid", url) )
	{
		fDelete = true;
	}
	// Online Advertising links
	else if ( ParamExists("olacid", url) )
	{
		fDelete = true;
	}
	// MSN links
	else if ( ParamExists("mdpcid", url) && ParamExists("msncid", url) )
	{
		fDelete = true;
	}
	// Affinity Marketing
	else if ( ParamExists("afmcid", url) )
	{
		fDelete = true;
	}
	// EAPs - may need to check cookie
	else if ( ParamExists("eapid", url) && (GetParam("eapid", url) != "0" ) )
	{
		fDelete = true;
	}
	// affcid: if affcid param is present and not cjXXX then dedupe
	else if ( ParamExists("affcid", url) && (GetParam("affcid", url).indexOf("cj") != 0) )
	{
		fDelete = true;
	}
	
	if (fDelete)
	{
		try{
			if(typeof(Prototype) != 'undefined'){
				var ajax = new Ajax.Request('/pub/agent.dll',{method: 'get', parameters: 'qscr=uasc&flag=d', onFailure: DeleteError});
			}
			else{
				var ajax = new Ajax();
				ajax.SendRequest('/pub/agent.dll?qscr=uasc&flag=d');
				ajax = null;
			}
		}
		catch(e){
		}
	}
}

function DeleteSuccess() {}
function DeleteError() {}

function ParamExists(strParameterAnyCase, strQueryAnyCase)
{
  return GetParam(strParameterAnyCase, strQueryAnyCase).length > 0;
}

// from LaunchKanaRealtime.js. Made the comparisons case insensitive. 
// The returned query parameter value is always in lower case
function GetParam( strParameterAnyCase, strQueryAnyCase )
{
	var strQuery = strQueryAnyCase.toLowerCase();
	var strParameter = strParameterAnyCase.toLowerCase();

        // the value string
        var strValue = "" ;

        // can we find the specified parameter in the query string? (first try with "?")
        var strParamEquals = "?" + strParameter + "=" ;
        var iParamStart    = strQuery.indexOf( strParamEquals ) ;

        if ( iParamStart == -1 )
        {
            // no - can we find the specified parameter in the query string? (now try with "&")
            strParamEquals = "&" + strParameter + "=" ;
            iParamStart    = strQuery.indexOf( strParamEquals ) ;
        }

        // did we find the specified parameter?
        if ( iParamStart != -1 )
        {
            // yes - get the starting location for the value string
            var iValueStart = iParamStart + strParamEquals.length ;

            // get the value string pointed to by the parameter
            strValue = strQuery.substring( iValueStart, strQuery.length ) ;

            // is there another parameter in the value string?
            var iNextParameter = strValue.indexOf( "&" ) ;

            if ( iNextParameter != -1 )
            {
                // yes - truncate the value string before that parameter
                strValue = strValue.substring( 0, iNextParameter ) ;
            }
        }

        // unescape the value string
        strValue = unescape( strValue ) ;

        return( strValue ) ;
}

//Make function call
Dedup();
var OpinionLab = (function(){
	var custom_var,_sp='%3A\\/\\/',_rp='%3A//',_poE=0.0,_poX=0.0,_sH=screen.height,_d=document,_w=window,_ht=escape(_w.location.href),_hr=_d.referrer,_tm=(new Date()).getTime(),_kp=0,_sW=screen.width;

	function _fC(_u){
		_aT=_sp+',\\/,\\.,-,_,'+_rp+',%2F,%2E,%2D,%5F';
		_aA=_aT.split(',');
		for(i=0;i<5;i++){
			eval('_u=_u.replace(/'+_aA[i]+'/g,_aA[i+5])')
		}
		return _u
	};
	
	function _fPe(){
		if(Math.random()>=1.0-_poE){
			O_LC();
			_poX=0.0
		}
	};

	function _fPx(){
		if(Math.random()>=1.0-_poX)
			O_LC()
	};
	
	function _populateCustomVar(){		
		var t = (typeof(s_exp) != 'undefined') ? s_exp.prop11 :
				(typeof(s_prop11) != 'undefined') ? s_prop11 : '';

		var g = (typeof(s_exp) != 'undefined') ? s_exp.prop12 :
				(typeof(s_prop12) != 'undefined') ? s_prop12 : '';
		
		custom_var = g + '|' + t;
	};
		
	function _replacePageName(){
		var page_name = null;
		
		page_name = (typeof(s_exp) != 'undefined') ? escape(s_exp.pageName)+'.html' :
					(typeof(s_pageName) != 'undefined') ? escape(s_pageName)+'.html' : null;
		
		if(page_name){
			_domain=_ht.replace('https%3A//', '').replace('http%3A//','');
			_ht=_ht.substr(0,_ht.indexOf('%3A//'))+'%3A//'+_domain.substr(0,_domain.indexOf('/'))+'\/'+page_name;
			
			if (typeof(OlAltLang) != 'undefined') {
				if (OlAltLang != null) { 
					_lG=OlAltLang; 
					_rp='%3A//'+_lG 
				}
			}
			if (typeof(bIsCAFR) != 'undefined') {
				if (bIsCAFR == true) {
					_lG='fr-CA.';
					_rp='%3A//'+_lG
				}
			}
		}
	};
	
	return {
		O_LC:function(){
			_replacePageName();
			_populateCustomVar();
			_w.open('https://secure.opinionlab.com/ccc01/comment_card.asp?time1='+_tm+'&time2='+(new Date()).getTime()+'&prev='+_fC(escape(_hr))+'&referer='+_fC(_ht)+'&height='+_sH+'&width='+_sW+'&custom_var='+custom_var,'comments','width=535,height=192,screenX='+((_sW-535)/2)+',screenY='+((_sH-192)/2)+',top='+((_sH-192)/2)+',left='+((_sW-535)/2)+',resizable=yes,copyhistory=yes,scrollbars=no')
		}
	,	O_GoT:function(_p){
			_d.write('<a href=\'javascript:O_LC()\'>'+_p+'</a>');
		}
	};
})();
var s_pageName;
var s_account;
var s_server;
var s_currencyCode;
var s_channel;
var s_pageType;
var s_hier1;
var s_prop1;
var s_prop12;
var s_prop30;
var s_prop34;
/* E-commerce Variables */
var s_campaign;
var s_state;
var s_zip;
var s_events;
var s_products;
var s_purchaseID;
var s_eVar1;
var s_eVar2;
var s_eVar3;
var s_eVar4;
var s_eVar5;
var s_eVar31;
var s_eVar32;
var s_eVar33;
var s_eVar34;
function SiteAn()
{
	s_account = "";
	s_pageName = "";
	s_server="";
	s_currencyCode="";
	s_channel="";
	s_pageType="";
	s_hier1="";
	s_prop1="";
	s_prop12="";
	s_prop30="";
	s_prop34="";
	/* E-commerce Variables */
	s_campaign="";
	s_state="";
	s_zip="";
	s_events="";
	s_products="";
	s_purchaseID="";
	s_eVar1="";
	s_eVar2="";
	s_eVar3="";
	s_eVar4="";
	s_eVar5="";
	s_eVar31="";
	s_eVar32="";
	s_eVar33="";
	s_eVar34="";
}
SiteAn.prototype.SetAccount = function(s){
	s_account = s;
}
SiteAn.prototype.SetPageName = function(s){
	s_pageName = s;
}
SiteAn.prototype.SetCurrencyCode = function(s){
	s_currencyCode = s;
}
SiteAn.prototype.SetPageType = function(s){
	s_pageType = s;
}
SiteAn.prototype.SetHierarchy = function(s){
	s_hier1 = s;
}
SiteAn.prototype.SetChannel = function(s){
	s_channel = s;
}
SiteAn.prototype.SetEvents = function(s){
	s_events = s;
}
SiteAn.prototype.SetTraffic1 = function(s){
	s_prop1 = s;
}
SiteAn.prototype.SetTraffic12 = function(s){
	s_prop12 = s;
}
SiteAn.prototype.SetVar31 = function(s){
	s_eVar31 = s;
}
SiteAn.prototype.SetVar32 = function(s){
	s_eVar32 = s;
}
SiteAn.prototype.SetVar33 = function(s){
	s_eVar33 = s;
}
SiteAn.prototype.SetVar34 = function(s){
	s_eVar34 = s;
}
SiteAn.prototype.SetProp34 = function(s){
	s_prop34 = s;
}
function GetAccount(s,tpid)
{
	sAcc = "devexpediacom";
	if (s.indexOf("expedia.com") != -1 || s.indexOf("us.expediacustomer.com") != -1)
		sAcc = "expedia" + tpid;
	return sAcc;
}var TT_t;var TT_d;var TT_i;var TT_aX;var TT_aY;var tttitle;var tttext;var ttw;var ttbc;var tticon;var ttbgcolor;var ttpath='http://media.expedia.com/media/content/expus/graphics/common/corners/';
function TT(t){TT_t=t;TT_I();TT_sH();TT_D();}
function TT_I(){if(navigator.appName=='Microsoft Internet Explorer' && navigator.appVersion.indexOf('Win')!=-1){TT_cI();}TT_cD();}
function TT_cI(){if(TT_i==null){TT_i=document.createElement('iframe');TT_i.id='TT_i';TT_i.src='';TT_i.style.zIndex='9999';TT_i.style.display='none';TT_i.style.position='absolute';TT_i.frameBorder=0;TT_i.style.filter='progid:DXImageTransform.Microsoft.Alpha(opacity=0)';document.body.appendChild(TT_i);}}
function TT_cD(){if(TT_d==null){TT_d=document.createElement('div');TT_d.id='div';TT_d.style.zIndex='10000';TT_d.style.display='none';TT_d.style.position='absolute';document.body.appendChild(TT_d);}}
function TT_sH(){if (ttbc=='666666'){ttbgcolor=' bgcolor="#f7f7f7"';}else{ttbgcolor=' bgcolor="#ffffff"';}TT_d.innerHTML='<table id="TT_tbl" cellpadding="0" cellspacing="0" border="0" width="' + ttw + '"><tr><td height="12"><img src="' + ttpath + 'ttTL' + ttbc + '.gif"></td><td width="100%" style="border-top:1px solid #' + ttbc + ';background-color:#' + ttbc + ';"><img src="' + tticon + '" hspace="3" align="middle"><span style="font-size:11px;font-family:Arial;font-weight:bold;color:white;vertical-align:middle;">' + tttitle + '</span></td><td><img src="' + ttpath + 'ttTR' + ttbc + '.gif"></td></tr><tr><td' + ttbgcolor + ' colspan="3" style="border-left:1px solid #' + ttbc + ';border-right:1px solid #' + ttbc + ';padding:0px 5px;">' + tttext + '</td></tr><tr><td' + ttbgcolor + ' colspan="3" style="border-left:1px solid #' + ttbc + ';border-right:1px solid #' + ttbc + ';padding:0px 5px;"><div style="border-top:1px solid #' + ttbc + ';padding-top:3px;text-align:right;"><img src="/eta/btn_sec_small.gif" hspace="3" align="middle"><a href="javascript://" onclick="HTT();return false;event.cancelBubble=true;" style="font-size:11px;font-family:Arial;font-weight:bold;color:#333399;">Close</a></div></td></tr><tr><td height="7"><img src="' + ttpath + 'ttBL' + ttbc + '.gif"></td><td' + ttbgcolor + ' width="100%" style="border-bottom:1px solid #' + ttbc + ';"><img src="/eta/spaceit.gif" width=1 height=1></td><td><img src="' + ttpath + 'ttBR' + ttbc + '.gif"></td></tr></table>';}
function TT_D(){TT_d.style.display='block';if(TT_i!=null){TT_i.style.display='block';}TT_sP();}
function TT_sP(){var arr=TT_gP().split(',');TT_aX=parseInt(arr[0]);TT_aY=parseInt(arr[1]);TT_d.style.top=TT_aX+'px';TT_d.style.left=TT_aY+'px';if(TT_i!=null){TT_i.style.top=TT_aX+'px';TT_i.style.left=TT_aY+'px';TT_i.style.width=DE('TT_tbl').offsetWidth+'px';TT_i.style.height=DE('TT_tbl').offsetHeight+'px';}}
function HTT(){if(TT_d!=null){TT_d.style.display='none';}if(TT_i!=null){TT_i.style.display='none';}}
function TT_gP(){iX=0;iY=0;el=TT_t;while(el!=null){iX+=el.offsetTop;iY+=el.offsetLeft;el=el.offsetParent;}var st=TT_gST();var wh=TT_gWH();var dh=DE('TT_tbl').offsetHeight;var eh=TT_t.offsetHeight;if(((iX-dh)>st)&&((iX+eh+dh)>=(wh+st))){iX=iX-dh;}else{iX=iX+eh;}return iX+','+iY}
function TT_gST(){if(document.documentElement.scrollTop){return document.documentElement.scrollTop;}if(document.body.scrollTop){return document.body.scrollTop;}if(window.pageYOffset){return window.pageYOffset;}return 0;}
function TT_gWH(){if(window.innerHeight){return window.innerHeight;}if(document.documentElement.clientHeight){return document.documentElement.clientHeight;}if(document.body.clientHeight){return document.body.clientHeight;}return 0;}
function DE(el){return document.getElementById(el);}
function STT(t,ti,te,w,bc,i){tttitle=ti;tttext=te;ttw=w;ttbc=bc;tticon=i;TT(t);}
