		
		// ################## Function library  ##################
		var PLATRIUM = "platrium";
		var hbmain = null;
		var exPartner = "";
		var soHasEx = false;
		var soHasCR = false;
		var CurrentO = 0;
		var _EO;
		var _U = 'undefined';
      
       
       function _CheckObject(o)
       {
            if(typeof(o) != _U && typeof(o.CustomR) != _U )
            {
                if(typeof(o.GetPartner) != _U) 
                     exPartner = o.GetPartner();
                else if(typeof(o.UrlFormat) != _U)
                   exPartner = o.UrlFormat("$PARTNER$").toLowerCase();     
                   
                 CurrentO = 2;
                 soHasCR = true;
                 hbmain = o;                           
                return true;
            }
            else
                return false;
       }
        function InitObject()
        {
        
            try
            {    
                if(window.external != null &&  typeof(window.external) != _U)  
                {
                    _EO = window.external;
                   
                    if(typeof(_EO.GetPartner) != _U)
                    {
                        exPartner = _EO.GetPartner();
                        soHasCR = true;
                        CurrentO = 1;
                         soHasEx = true;
                    }
                    else if(typeof(_EO.sys) != _U &&  typeof(_EO.sys.GetPartner) != _U)
                    {
                        exPartner = _EO.sys.GetPartner();
                        soHasCR = true;
                        CurrentO = 1;
                        soHasEx = true;
                    }
                }
            }
            catch(exception)
            {
                soHasEx = false;
            }
            if(!soHasEx)
            {
               document.write("<OBJECT ID='p1' WIDTH='0' HEIGHT='0' CLASSID='CLSID:4C0BC3AC-6DDD-4992-BB0F-D5A0F497FDAA'></OBJECT>");
               if(!_CheckObject(p1)){
                   document.write("<OBJECT ID='h1' WIDTH='0' HEIGHT='0' CLASSID='CLSID:69725738-CD68-4f36-8D02-8C43722EE5DA'></OBJECT>");
                   if(!_CheckObject(h1)){
                       document.write("<OBJECT ID='h2' WIDTH='0' HEIGHT='0' CLASSID='CLSID:83D1DDF4-E2FC-4dcb-9090-910B46EFB706'></OBJECT>");
                       if(!_CheckObject(h2)){
                            document.write("<OBJECT ID='h3' WIDTH='0' HEIGHT='0' CLASSID='CLSID:54A3F8B7-228E-4ED8-895B-DE832B2C3959'></OBJECT>");
                            if(!_CheckObject(h3)){
                                document.write("<OBJECT ID='h4' WIDTH='0' HEIGHT='0' CLASSID='CLSID:AC17D2FB-6C7A-47B7-BB3D-EC879BC3C911'></OBJECT>");
                                if(!_CheckObject(h4)){
                                    document.write("<OBJECT ID='h5' WIDTH='0' HEIGHT='0' CLASSID='CLSID:8109FD3D-D891-4f80-8339-50A4913ACE6F'></OBJECT>");
                                    if(!_CheckObject(h5)){
                                        document.write("<OBJECT ID='h6' WIDTH='0' HEIGHT='0' CLASSID='CLSID:75D2080B-4857-4B96-9B7D-732634FBD01F'></OBJECT>");
                                        if(!_CheckObject(h6)){
                                            document.write("<OBJECT ID='h7' WIDTH='0' HEIGHT='0' CLASSID='CLSID:ED8525EA-2BFC-4440-BD8A-20EFB9D5E541'></OBJECT>");
                                            if(!_CheckObject(h7))
                                            {
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        function _GetVer()
        {
            var retval = '0.0.0.0';
            if(soHasEx)
            {
                if(exPartner == PLATRIUM)
                    retval = window.external.sys.GetVer();
                else
                    retval = window.external.GetVer();
            }
            else if(hbmain != null)
                retval = hbmain.GetVer();
            return retval;
        }
        function _GetHbr(MainKey,SubKey){
            var retval = '';
            switch(CurrentO){
                case 1: // external
                    switch(exPartner){
                        case PLATRIUM:
                            retval = _EO.sys.GetHbr(MainKey,SubKey);
                            break;
                        default:
                            retval = _EO.GetHbr(MainKey,SubKey);
                            break;
                    }
                    break;
                case 2: // ActiveX
                    switch(exPartner){
                        case PLATRIUM:
                            retval = hbmain.GetHbr2(exPartner,MainKey,SubKey);
                            break;
                        default:
                            retval = hbmain.GetHbr(MainKey,SubKey);
                            break;
                    }
                    break;
            }
            return retval;
        }
	    function _CustomR(ReportId,ReportData,extra)
	    {
	      
	        switch(CurrentO){
                case 1: // external
                    switch(exPartner){
                        case PLATRIUM:
                            retval = _EO.sys.CustomR(ReportId,ReportData,extra);
                            break;
                        default:
                            retval = _EO.CustomR(ReportId,ReportData,extra);
                            break;
                    }
                    break;
                case 2: // ActiveX
                       switch(exPartner)
                       {
                        case PLATRIUM:
                            ReportData = ConvertToXML(ReportData + ",0");
                            break;
                       } 
                       retval = hbmain.CustomR(ReportId,ReportData,"0");
                       break;
            }
	    }
	    function ConvertToXML( data)
        {
            var dataArr = data.split(",");
            var strXMLReport="";
            if(dataArr != null && dataArr.length > 0)
            {
                //Build report xml
                for(i = 0;i < dataArr.length; i++)
                {
                    //Convert all &,<,> sings
                    dataArr[i] = ("" + dataArr[i]).replace(/&/g,"&amp;");
                          dataArr[i] = ("" + dataArr[i]).replace(/</g,"&lt;");
                          dataArr[i] = ("" + dataArr[i]).replace(/>/g,"&gt;");
                          
                          //Join data string
                          strXMLReport += '<Data>'+dataArr[i]+'</Data>';
                }
            }
            return strXMLReport;
        }

	    function _NavigateMain(pUrl,pPostData)
	    {
	        switch(CurrentO){
                case 1: // external
                    switch(exPartner){
                        case PLATRIUM:
                            retval = _EO.sys.brwsr.Native.Navigate(pUrl,0,null,pPostData,"");
                            break;
                        default:
                            retval = _EO.NavigateMain(pUrl,pPostData);
                            break;
                    }
                    break;
                case 2: // ActiveX
                    
                            retval = hbmain.NavigateMain(pUrl,pPostData);
            
                    break;
            }
	    }
	    function HasNavigateHbBand()
	    {
	         switch(CurrentO){
                case 1: // external
                    switch(exPartner){
                        case PLATRIUM:
                            return false;
                            break;
                        default:
                            return typeof(_EO.NavigateHbBand) != _U;
                            break;
                    }
                    break;
                case 2: // ActiveX
                        return typeof(hbmain.NavigateHbBand) != _U;
                    break;
            }
            return false;
	    }
		function _ShowHbBand(visibile)
		{
		      switch(CurrentO){
                case 1: // external
                    switch(exPartner){
                        case PLATRIUM:
                            break;
                        default:
                            break;
                    }
                    break;
                case 2: // ActiveX
                          switch(exPartner){
                        case PLATRIUM:
                            break;
                         default:
                            if(HasNavigateHbBand()){
                                hbmain.ShowHbBand(visibile);
                            }    
                            break;
                         }
                    break;
            }
		}
		function _SetBandSize(pH,pW)
		{
		      switch(CurrentO){
                case 1: // external
                    switch(exPartner){
                        case PLATRIUM:
                            break;
                        default:
                            break;
                    }
                    break;
                case 2: // ActiveX
                     switch(exPartner)
                     {
                        case PLATRIUM:
                            break;
                         default:
                            if(typeof(hbmain.SetBandSize) != _U)
                            {
                                hbmain.SetBandSize(pH,pW);
                            }    
                            break;
                      }
                    break;
            }
		}
		
		
		function openWindow(URL,NAME,W,H) 
		{
			open(URL,NAME,'toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=yes,copyhistory=no,scrollbars=yes,width=' + W + ',height=' + H);
		}
		function GetSearchterm()
		{
		    return soST;
		}

		function getClientVer()
		{
			var ver = '0.0.0.0';
			try { ver = _GetVer(); } catch (ex) {reportEx(ex)}		
			return ver;
		}
		
		function getNumericClientVer2()
		{
		    var ver = getClientVer().split(".");
		    return parseInt(ver[0]) * 10 + parseInt(ver[1]);
		    
		}
		
		function getClientSG()
		{
		    var sg = "";
		   
		        try { 
		            sg= _GetHbr('sample','sample'); 
		        } catch (ex) {
		            reportEx(ex)
		       }	
		    
		    return sg;
		}
		
		function setBandVisibility(visible)
		{
		    if (typeof(hbmain.ShowHbBand)!='undefined') hbmain.ShowHbBand(visible);
					
            if (typeof(hbmain.ShowVerticalBand)!='undefined') hbmain.ShowVerticalBand(visible);		
		}
		
		function HbBuild()
		{
			var HbVer=getClientVer();
			var HbBuildPart=HbVer.substr(HbVer.lastIndexOf('.')+1); 
			
			return parseInt('0' + HbBuildPart,10)
		}
		
		function gotCustomR()
		{
		   return soHasCR;
		}
		
		// is obj an HB obj?
		function objectValid(obj)
		{
		    return obj!=null && typeof(obj)!="undefined" && typeof(obj.bValid)!="undefined";
		}
		
		function gotClient()
		{
    		if(hbmain!= null || soHasEx)
    		    return true;
    		else
    		    return false;
		}

		function SendToLogger(table, data)
		{
			try
			{
			    var arrParams =data.split(',');
                var b = new Array();
				var i = 0;					
				for (var pi=0;pi<arrParams.length;pi++)
				{
				    if (pi==0)
				        b[i++] = '"';
				    else
				        b[i++] = '","';
				        
				    b[i++] = escape(arrParams[pi]);
				}
				b[i++] = '"';
                var dataForLoffer = b.join('');
				var url = "http://"+errJSLoggerAddress+"/smartoffers/logger.aspx?table="+table+"&data="+dataForLoffer;
				var img = new Image();
				img.src = url;
			} catch (error) {
			    trace(error.message);
			}
		}
		
		function HandleSingleError2(errorDescription,pageError,lineError,source)
		{
			try {
				if (errorsHandled++ == 0)
				{
					var comma = '","';
					var quote = '"';
					var errorReportURL = "http://"+errJSLoggerAddress+"/smartoffers/logger.aspx?table=jserr&data=";
					var b = new Array();
					var i = 0;					
					b[i++] = quote;
					if (typeof(errServerIP)!='undefined') { b[i++] = escape(errServerIP);}
					else {b[i++] = escape('');}
					b[i++] = comma;
					if (typeof(errPageName)!='undefined') { b[i++] = escape(errPageName);}
					else {b[i++] = escape('');}
					b[i++] = comma;
					if (typeof(errPageName)!='undefined') { b[i++] = escape(errPageName);}
					else {b[i++] = escape('');}
					b[i++] = comma;
					b[i++] = escape(lineError);
					b[i++] = comma;
					b[i++] = escape(errorDescription);
					b[i++] = comma;
					b[i++] = escape(formatSource(source));
					b[i++] = comma;
					if (typeof(errRequest)!='undefined') { b[i++] = escape(errRequest);}
					else {b[i++] = escape('');}
					b[i++] = comma;
					b[i++] = escape(HbBuild());
					b[i++] = comma;
					if (typeof(errPageVer)!='undefined') { b[i++] = escape(errPageVer);}
					else {b[i++] = escape('');}
					b[i++] = quote;
					var data= b.join('');
					var url = errorReportURL + data;
					var img = new Image();
					img.src = url;
					
					return true;
				}
			} catch (error) {}
		}

		function formatSource(source)
		{
			var b = new Array();
			var i = 0;	
			var chr;
			for (n = 0; n <= source.length; n++) 
			{
				chr = source.charAt(n);
				if ( chr == "\r\n" || chr == "\t" || chr == "\n\r" || chr == "\n" || chr == "\r") 
				{
					b[i++] = '';
				}
				else if ( chr == '\"')
				{
					b[i++] = '\"\"';
				} else
				{
					b[i++] = chr;
				}
			}
			return b.join('');
		}
		
		function IgnoreAdditionalErrors()
		{
			return true;
		}

		// return treu of document element with this ID exists
		function gotID(id)
		{
			try {
				
				obj = document.getElementById(id);
				return (obj!=null) && ( typeof(obj)!='undefined' ) ;
			} catch(er)
			{
				return false;
			}
		}

		function reportEx(ex) 
		{
		    trace("Javascript Exception caught:" + ex);
		}

		function getPartner()
		{
			var strPartner = 'hotbar';
			if(exPartner != "")
			    return exPartner;
			else
			    return exPartner;
		}

		function trim(s) 
		{
			while (s.substring(0,1) == ' ') 
			{
				s = s.substring(1,s.length);
			}
			while (s.substring(s.length-1,s.length) == ' ') 
			{
				s = s.substring(0,s.length-1);
		    }
		    return s;
		}

		function NotEmpty(strFormID,strFieldID)
		{
			if ( !gotID(strFieldID) || !gotID(strFormID) ) return true;
			form = document.getElementById(strFormID);
			field = form.item(strFieldID);
			return trim(field.value) != "";
		}

		function popupAndReport(reportID,objSource)
		{
		    var navURL			= objSource.getAttribute("hb:url");
   			
			var reportData		= objSource.getAttribute("hb:reportData");
			try {
				var ADSPfx			= objSource.getAttribute("hb:ADSPfx");
				var factoredPrice	= objSource.getAttribute("hb:factoredPrice");
				var feedId			= objSource.getAttribute("hb:feed");
				
			} catch (e) {}
			
			if (gotCustomR())
			{
				//NEW VERSION OF CLIENT, Use CustomR and open in new window
				_CustomR(reportID, reportData, '0');
				if (ADSPfx!=null && typeof(ADSPfx)!='undefined' && ADSPfx != '')
				{
					// navigate to ad-server url and append encoded url
					var sep = (ADSPfx.indexOf('?')>-1)?'&':'?';
					var linkForADS = ADSPfx + sep + 'cs=' + factoredPrice + '&offid=' + escape(feedId) + '&HREF=';
					navURL =  linkForADS + escape(navURL);
				} 
				window.open(navURL);
			} 
			else
			{
				//THE OLD VERSION OF CLIENT: REPORT IS A PART OF THE LINK AND OPENS IN THE SAME WINDOW
				var seperator = "?";
				if (	navURL!=null && 
						navURL.indexOf('?')>-1
					)
				{
					seperator = "&";
				}
					
				var b = new Array();
				var i = 0;						
				b[i++] = navURL;
				b[i++] = seperator;
				b[i++] = "HbNav=ex&HbRID=";
				b[i++] = reportID;
				b[i++] = "&HbRData=";
				b[i++] = reportData;
				var CompleteURL = b.join('');
				
				if (gotClient())
				{
                    top.location.href = CompleteURL;
				} else
				{
				    // no client
                    reportJSClick(reportID,reportData,navURL); 
                    window.open(navURL);
				}
			}
		}
      
		function NavigateAndReportObject(ReportID,objSource)
		{
		
			var navURL		= objSource.getAttribute("hb:url");
			var reportData	= objSource.getAttribute("hb:reportData");
			var offset      = objSource.getAttribute("hb:offset");
			if (typeof(navURL) == 'undefined' || navURL == '' || navURL==null)
			{	
				navURL = 'NODATA'; 
			}
			NavigateAndReport(ReportID,reportData,navURL,'in',offset);
		}
		function GetNumericClientVer()
		{
		    var Numericver = getClientVer();
		    version =  Numericver.split(".");
		    if(version.length >=3)
		    {
		       Numericver = 100 * parseInt(version[0]) + 10 * parseInt(version[1]) + parseInt(version[2]);
		    }
		    return Numericver;
		}
        function CloseWindow()
		{
		    var hbmain = window.external;
		    hbmain.HideMenu();
		}
        function NavigateAndReportMS(ReportID,ReportDATA,URL,SearchTerm,SG,Country,Version,Lang,Partner)
        {
            
            var hbmain = window.external;
            hbmain.CustomR(ReportID, ReportDATA, 'NODATA');
            hbmain.NavigateMain(URL);
            var TourURL = "http://resultsmaster.com/SmartOffers/SmartOffers.aspx?TourAutoNav=0&HBHintSVC=tour&SG=" + escape(SG) + "&COUNTRY=" + escape(Country) + "&Version=" +  escape(Version) +"&LANG="+ escape(Lang)+"&HBHintSearchTermFields=qu&qu=" + escape(SearchTerm) + "&opener=MiniSearch&partner=" + escape(Partner);
            _ShowHbBand(1);
            _SetBandSize(80,0);
            hbmain.NavigateHbBand(TourURL);
            CloseWindow()
        }
     
        
     
        var _PostData;
        var _HbBandNavigateUrl;
        var _ReportID;
        var _ReportDATA
        var _URL;
        var _useClient;
        
        function NavigateAfterTimeout()
        {
            try
			{
			    
                hbmain.NavigateHbBand(_HbBandNavigateUrl ,_PostData );
                //hbmain.NavigateHbBand(_HbBandNavigateUrl);
	            _CustomR(_ReportID, _ReportDATA, 'NODATA');
            } 
            catch (error) 
            {
                
                trace("NO CUSTOMR, using JS Report");
            }				        
            navigate(_URL,_useClient);
        }
        
        function getOpener(){
            var retval; 
            switch(soSvcName){
                case "popups" :
                    retval = "C_pops_Tour";
                    break;
                case "addressbar" :
                    retval = "Address_Bar_Tour";
                    break;
                case "resultsmastersearch" :
                    retval = "Result_Master_Tour";
                    break;
              
            }
            return retval;
            
        }
     
		function NavigateAndReport(ReportID,ReportDATA,URL,HbNav,offset)
		{ 
		    	    
			if (URL==null || URL == '' || (typeof(URL) == 'undefined')) return;
			
			if (gotClient())
			{
			    if (gotCustomR())
			    {
			        if(HasNavigateHbBand() && soEnablePostResults  &&  soTourResults != null && soPartner!= "platrium")
			        {
			            
                        _ShowHbBand(1);
                        _SetBandSize(80,0);
                        _HbBandNavigateUrl = "http://" + document.domain  + "/SmartOffers/so.aspx";
                        
                        var ReqParams;
                         ReqParams = "svc=HbBand&kw=" + escape(soST);
                        ReqParams += "&country=" + escape(soCountry);
                        ReqParams += "&partner=" + soPartner ;
                        ReqParams += "&SG=" + escape(soSampleGroup);
                        ReqParams += "&requestor=" + escape(soRequestor);
                        ReqParams += "&opener=" + escape(getOpener());
                        ReqParams += "&offset=" + escape(offset);
                        ReqParams += "&Version=" + escape(soBarVersion);
                        ReqParams += "&kwid=" + escape(soKWID);
                        
                        if(typeof(soKtsAdid) != "undefined" && soKtsAdid != "0")
                             ReqParams += "&Ad_Id=" + escape(soKtsAdid);
                        _PostData = ReqParams +  "&PostOffers=" + escape(soTourResults);
                        
                        _ReportID = ReportID;
                        _ReportDATA = ReportDATA;
                        _URL = URL;
                         if((soPartner == "zango" || soPartner =="zangotoolbar") && getNumericClientVer2() <100 && soSvcName != "tour" )
                            _useClient = false;
                       NavigateAfterTimeout();
                        
			        }
			        else
			        {
				        try
				        {
				            _CustomR(ReportID, ReportDATA, 'NODATA');
				            trace('Report sent using CustomR');
                        } 
                        catch (error) {
                            trace("NO CUSTOMR, using JS Report");
                        }				        
                        // navigate using client ONLY if service is tour or client is zangotoolbar
                        var useClient = true;
                        if((soPartner == "zango" || soPartner =="zangotoolbar") && getNumericClientVer2() <100 && soSvcName != "tour" )
                            useClient = false;
                        navigate(URL,useClient);
                    }
			    }
			    else
			    {
			        // report by putting reportData in URL
			        trace('Old client report. data=:' + ReportDATA);
			        var temp = URL;
			        temp +=  (URL.indexOf('?')>-1)?'&':'?'; // append '?' or '&'
				    temp += 'HbNav='+HbNav+'&HBRID='+ReportID+'&HBRDATA=';
				    temp += ReportDATA;
				    URL = temp;
				    // navigate using client
				    navigate(URL,true);
			    }
			    
			    
			    
			} 
			else
			{
			    // no client, report using JS
				reportJSClick(ReportID,ReportDATA,URL);
				//navigate using JS
			    navigate(URL,false);
			}
		}

		
		
		
		
		function navigate(url, useClient)
		{
		    if (useClient)
		    {
		        trace("Navigating using NavigateMain. URL="+url);
		        _NavigateMain(url,"");
		    }
            else
            {
                trace("Navigating using JS. URL="+url);
                navigateJS(url);
            }
		}		
				
		function navigateJS(url)
		{
            try {
                var lnk = document.getElementById("lnkNavigator");
                lnk.href = url;
                lnk.click();
            } catch (e)
            {
                trace("Unable to navigate using link");
                document.location.href = url;               
            }
		}
		
		function asyncLog(reportID,data)
		{
			try {
				setTimeout("SendToLogger('"+reportID+"','"+data+"');",10);
			} catch (e) {}
		}

		function logClick(reportID,data)
		{
		    /*
			try {
				setTimeout("SendToLogger('"+reportID+"','"+data+"');",10);
			} catch (e) {}
			*/
		}
		
		function gotFunc(obj,func)
		{
		    return  obj!=null && 
		            typeof(obj)!= 'undefined' && 
		            eval("typeof(obj."+func+")")!='undefined';
		}
		
		function submitEnter(txtSearch,opener)
		{
		    
			if (event.keyCode==13)
			{
				submitSearch(txtSearch.id,opener);
				// prevent postback
				event.cancelBubble = true;
				event.returnValue = false;
			}
		}
		
		function submitSearch(fieldID,opener)
		{
			if (!gotID(fieldID)) return;

			// give page chance to set its specifal form fields
			if (typeof(submitSearchOverride)!='undefined')
				submitSearchOverride();

			theForm		= document.all("frmSearch");
			theBox		= document.all(fieldID);
			theValue	= trim(theBox.value);
			if (typeof(theForm)!='undefined' && theValue != "")
			{
				theForm.item("kw").value = theValue;
				theForm.item("opener").value = opener;
				theForm.submit();
			}
		}
		
		// submit related search click
		function submitRelated(objSource)
		{
		    var opener = soSvcName + "_rel"
		    submitSearchText(objSource.innerText,opener);
		}
		
		function submitSearchText(text,opener)
		{
			// give page chance to set its specifal form fields
			if (typeof(submitSearchOverride)!='undefined')
				submitSearchOverride();
            
			theForm	= document.getElementById("frmSearch");
			try
			{
			    if (typeof(theForm)!='undefined' && text != "")
			    {
				    theForm.item("kw").value = text;
				    theForm.item("opener").value = opener;
				    theForm.submit();
			    }
			}
			catch(e)
			{
			  //  alert(e);
			}
		}
		
		
        function IsHotabrValid(CheckObject)
        {
             if(typeof(CheckObject) != "undefined" && typeof(CheckObject.bValid) != "undefined")
                return true;
             else
                return false;
                
        }	    		
	
//		function CreateClientObj(clsid)
//		{
//			if (document.getElementById(clsid)==null) //don't write twice
//			    document.write("<OBJECT ID='"+clsid+"' WIDTH=0 HEIGHT=0 CLASSID='CLSID:"+clsid+"'></OBJECT>");
//		    
//		    obj = document.getElementById(clsid);
//		    var clientVer;
//		    if (objectValid(obj))
//		    {
//	            try { 
//		            clientVer = obj.GetVer();
//		        } catch (ex) {
//		            return null;
//		        }		
//	
//		        trace("Using clasid="+clsid+"\nClient Version="+clientVer);
//		        return obj;
//		    } else
//		    {
//		        return null;
//		    }
//		}
		
		
	    function onerrorF(msg,url,lineno)
	    {
	        
	        var ErsReportUrl = "http://" + document.domain  + "/smartoffers/ers.aspx?";
		    try
		    {
		        var HbSystem = "SO-" + soSvcName;
                if(typeof(soPartner) == "undefined")
			    {
			        _soPartner = "hotbar";
			    }   
			    else
			    { 
			        _soPartner = soPartner;
		        }
			    HbSystem += "_" + _soPartner;
			    var HbPageVer = "4.3.9";
			    ErsReportUrl += "LineError=" + lineno;
			    ErsReportUrl += "&ErrorDesc=" + escape(msg);
			    ErsReportUrl += "&PageError=" + escape(url);
			    ErsReportUrl += "&System=" + escape(HbSystem);
			    ErsReportUrl += "&PageVer=" + escape(HbPageVer);	
			    var i = new Image();
			    i.src = ErsReportUrl;
		    }
	        catch(ex)
	        {
	        }
            return true;	
	    }
		
		
        function initErrHandler()
        {
            window.onerror = onerrorF;
        }
        
        // ###################### JS Reporting##########################
        function calcChecksum(text)
        {
            var sum=0;
            for (i=0;i<text.length;i++)
            {
                sum += text.charCodeAt(i);
            }
            return sum;
        }
        
        function reportJSClick(reportID,data,url)
        {
            data = data+",DUMMY_FIELD";
            reportID = reportID +"30";
            //var reportID = 36530;
            //var data = "Ahha,%cf%d1%cf%c8,%cf%d1%cf%ca%c9%cf%cf%cf%cf%cf%cf%cf%cf%cf%cf%cf%cf%cf%ce,%cf%d1%cf%cb%c8%c9,NODATA,0,1,"+Math.random()+",1,NODATA,3533,ben+%26+jerry%27s,,,,-1,popups,1,tac27bc9fd4d39,SO-4.3.4.0,http%3a%2f%2fc.enhance.com%2fc%3fe1%3dTBCBzviCDTHniwbkbtR3knSXCDfE3gDvjqTYqdYRCmvYZnu5x3vkSTtDbVLaGskbUa430pboPOKYFpTd2N2JWwcjK1AvFmHHMqGsqhOFZWXCCD4mEuDzewNTyV4aZ2zuaddckMifezgPIQISBDNaeNTqkL3SmiaMEqo4RKlQAHUHaVmX3rWTT13q1utpKCoLejkYsPxd1Z1LUe3PSBmaGhlOxGZ4qQzsJ4tQLVGxfWudjkYhfECGcR3sOGeYgBYLrTAX3UF2uV0niHai0riFCzvGrnidg5KnkDNjrLHePqA4ejcGpI1GeBg0rEGtvrwgEZAI4pPR%26h%3dPer50Py4TtZx4zDWE%26b%3d2015006%26pctid%3d391593940,http%3a%2f%2fc%2eenhance%2ecom%2fc%3fe1%3dTBCBzviCDTHniwbkbtR3knSXCDfE3gDvjqTYqdYRCmvYZnu5x3vkSTtDbVLaGskbUa430pboPOKYFpTd2N2JWwcjK1AvFmHHMqGsqhOFZWXCCD4mEuDzewNTyV4aZ2zuaddckMifezgPIQISBDNaeNTqkL3SmiaMEqo4RKlQAHUHaVmX3rWTT13q1utpKCoLejkYsPxd1Z1LUe3PSBmaGhlOxGZ4qQzsJ4tQLVGxfWudjkYhfECGcR3sOGeYgBYLrTAX3UF2uV0niHai0riFCzvGrnidg5KnkDNjrLHePqA4ejcGpI1GeBg0rEGtvrwgEZAI4pPR%26h%3dPer50Py4TtZx4zDWE%26b%3d2015006%26pctid%3d391593940";
            // soParnter & soCountry will be filled by JSGenerator
            var header = "RID="+reportID+"&UID=0000000000000000000000000000000000000000&SG=&Partner="+soPartner+"&StrLen="+data.length+"&ParamNo=1&COMPUTER_ID=0000000000000000000000000000000000000000&BANNER_ID=&REQUSTOR_ID="+soRequestor+"&COUNTRY="+soCountry+"&USER_CREATE_DATE="+escape(soInstallDate)+"&LFG=0x00000000&";
            var checksum = calcChecksum(header+data); //103042
            
            
            var urlBase = "http://reports.hotbar.com/reports/hotbar/4.0/HbRpt.dll?"
            //var urlBase = "http://rotem/hbrpt4/HbRpt.dll?"
            
            var url = urlBase +"CheckSum="+checksum+ "&"+header+ data;
            img = new Image();
            img.src = url;
        }
        
        function trace(msg)
        {
            if (typeof(soDebug)!='undefined' && soDebug)
                alert("SODebug: "+msg);
        }
        
        function LogAndNavigateUsingXmlHttp(reportID,data,NavigateUrl)
        {
         
            data = data+",DUMMY_FIELD";
            reportID = reportID +"30";
            var header = "RID="+reportID+"&UID=0000000000000000000000000000000000000000&SG=&Partner="+soPartner+"&StrLen="+data.length+"&ParamNo=1&COMPUTER_ID=0000000000000000000000000000000000000000&BANNER_ID=&REQUSTOR_ID="+soRequestor+"&COUNTRY="+soCountry+"&USER_CREATE_DATE="+escape(soInstallDate)+"&LFG=0x00000000&";
            var checksum = calcChecksum(header+data); //103042
            var urlBase = "http://reports.hotbar.com/reports/hotbar/4.0/HbRpt.dll?"
            var url = urlBase +"CheckSum="+checksum+ "&"+header+ data;
            var objHttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
			if (objHttp != null)	
			{	
			    objHttp.open("GET", url, true);
				objHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			    objHttp.onreadystatechange = function(){
			        if (objHttp.readyState == 4)
				    {
				        document.location.replace(NavigateUrl);
				    }
				}

				objHttp.send();
			}
			else
			{
			    var IR = new Image();
				IR.src = NavigateUrl;
			}
        }
        function OpenUrl(URL ) 
        { 
	        window.open(URL,"","toolbar=no,scrollbars=yes,location=no,directories=no,status=no,menubar=no,resizable=yes,copyhistory=no,fullscreen=yes");
        }
        
		// ###################### startup scripts ##########################
        document.write("<a id=lnkNavigator style='display:none'></a>");
		var errorsHandled=0;
		
	    initErrHandler();
	//	initHBMain();
        
        function Report(ReportID, ReportData)
        {
            //ReportData = escape(ReportData);
            if (gotCustomR())
		    {
			    try
			    {
			        hbmain.CustomR(ReportID, ReportData, 0);
			        trace('Report sent using CustomR');
                } 
                catch(e)
                {
                    
                }
            }
            else
            {
                ReportData = ReportData+",DUMMY_FIELD";
                var header = "RID="+ReportID+"&UID=0000000000000000000000000000000000000000&SG=&Partner="+soPartner+"&StrLen="+data.length+"&ParamNo=1&COMPUTER_ID=0000000000000000000000000000000000000000&BANNER_ID=&REQUSTOR_ID="+soRequestor+"&COUNTRY="+soCountry+"&USER_CREATE_DATE="+escape(soInstallDate)+"&LFG=0x00000000&";
                var checksum = calcChecksum(header+ReportData); //103042
                var urlBase = "http://reports.hotbar.com/reports/hotbar/4.0/HbRpt.dll?"
                var url = urlBase +"CheckSum="+checksum+ "&"+header+ data;
                var objHttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
			    if (objHttp != null)	
			    {	
			        objHttp.open("GET", url, true);
				    objHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
				    objHttp.send();
			    }
			   
            }
        }
        InitObject();
       
 