﻿
Class.Mutators.Bounds = function(self, methods) {

    $splat(methods).each(function(method){
        var fn = self[method];
        self[method] = function() {
            return fn.apply(self, arguments);
        };
    });

};


var MarketplaceListings = new Class({

    Bounds: ['redirect'],

    initialize: function(src, ssc, zc, var1, trnid){
        this.initialSrc = src;
        this.initialSSC = ssc;
        this.initialZC = zc;
        this.trnid = trnid;
        this.var1 = var1;
        this.searchLoc = "http://www.nextinsure.com";
        this.refURL = window.location;
        this.userAgent = navigator.userAgent;
        this.getInitialListings();
    },
    
    getInitialListings: function()
    {
        
        var url = this.searchLoc + "/display_listings.asp?json=1&src=" + this.initialSrc + "&zc=" + this.initialZC + "&ssc=" + this.initialSSC + "&trn_id=" + escape(this.trnid) + "&var1=" + escape(this.var1)  + "&ref=" + escape(this.refURL) + '&rnd=' + $time();
       

        new JsonP(url, {onComplete: this.showInitialListings.bind(this)}).request();
    },
    
    showInitialListings: function(data)
    {
        var listings = data.listings;
              
        if (listings.length > 0){
        
            $('listings').empty();
        
            var i = 0;
            
            var listingsContainer = new Element("div");
            
            new Element("h1").set('html', "Click a Trusted Partner Below to Get a Free Instant Quote.").injectInside(listingsContainer);
            new Element("h1").set('html',listings[0].category + " Quote Providers in " + listings[0].state + "<br /><br />").injectInside(listingsContainer);
            

                                          
            for (i = 0; i < listings.length; i++){
            
                var redirect = escape(listings[i].url);
                
            
                var listingTable = new Element("table", {"class":"listingTable"}).injectInside(listingsContainer);
                var listingTBody = new Element("tbody").injectInside(listingTable);
                var tr = new Element("tr").injectInside(listingTBody);
                
                var td1 = new Element("td", {"class":"listingLogo"}).injectInside(tr);
                var imageLink = new Element("a", {href: '#'}).injectInside(td1);
                
                var image = new Element("img", {"src": listings[i].logo}).injectInside(imageLink);
                image.store('url', "/insurance/redirect/?s=" + this.initialSrc + "&u=" + redirect + "&ps=" + MarketplaceListings.prototype.pixelVar);
                image.addEvent('click', this.redirect);
                
                var td2 = new Element("td", {"class":"listingDescription"}).injectInside(tr);
                var textLink = new Element("a",{href: '#'}).set('html', listings[i].listingTitle).injectInside(td2);
                textLink.store('url', "/insurance/redirect/?s=" + this.initialSrc + "&u=" + redirect + "&ps=" + MarketplaceListings.prototype.pixelVar);
                textLink.addEvent('click', this.redirect);
                
                new Element('div', {"class":"listingDescriptionBody"}).set('html', listings[i].listingDescription).injectInside(td2);                
                              
                var td3 = new Element("td").injectInside(tr);
                var buttonLink = new Element("a", {href: '#'}).injectInside(td3);
                var button = new Element("img", {src:"http://www.nextinsure.com/images/dynamicbutton/button.ashx?buttonType=1&useShadow=1&width=94&height=35&backgroundColor=&buttonColor=AF2020&gradientColor=E93030&borderColor=&buttonText=Get Quote >>&borderWidth=1&fontSize=10&fontFamily=verdana&textColor=ffffff"}).injectInside(buttonLink);
                button.store('url', "/insurance/redirect/?s=" + this.initialSrc + "&u=" + redirect + "&ps=" + MarketplaceListings.prototype.pixelVar);
                button.addEvent('click', this.redirect);
            }
            
            listingsContainer.injectInside($('listings'));
			
			if (this.initialSrc != 167309 && this.initialSrc != 166070)
				var ftr = new Element("div", {"id":"listingsFooter"}).set('html','<br/>Listings Provided By <a href="http://www.surehits.com"><img src="/insurance/images/surehits_logo.gif" alt="logo" /></a> <a href="http://www.surehits.com/advertisers.html">Advertise Here</a>').injectAfter($('listings'));
         
        }
    },
    
    redirect: function(evt)
    {
        
        // grab and stop the event
        var e = new Event(evt);
        e.stop();
        
        // get the target
        var eventTarget = e.target;
        
       
        var newWindow = window.open(eventTarget.retrieve('url'), '_new');
        newWindow.focus();
        return false;
    }
        
    
});



var MarketplaceListingsSwoop = new Class({

    initialize: function(src, ssc, var1, trnid){
        this.initialSrc = src;
        this.initialSSC = ssc;
        this.var1 = var1;
        this.trnid = trnid;
        this.searchLoc = "http://www.nextinsure.com";
        this.refURL = window.location;
        this.userAgent = navigator.userAgent;
        this.getInitialListings();
    },
    
    getInitialListings: function()
    {
        var url = this.searchLoc + "/display_listings.asp?json=1&src=" + this.initialSrc + "&ssc=" + this.initialSSC + "&ni_trnid=" + escape(this.trnid) + "&var1=" + escape(this.var1)  + "&ref=" + escape(this.refURL) + '&rnd=' + $time();
        alert(this.var1);
        alert(this.trnid);
        new JsonP(url, {onComplete: this.showInitialListings.bind(this)}).request();
    },
    
    showInitialListings: function(data)
    {
        var listings = data.listings;
              
        if (listings.length > 0){
        
            $('listings_swoop').empty();
        
            var i = 0;
            
            var listingsContainer = new Element("div");
            
                                                 
            for (i = 0; i < listings.length; i++){
            
                var listingTable = new Element("table", {"class":"listingTable"}).injectInside(listingsContainer);
                var listingTBody = new Element("tbody").injectInside(listingTable);
                var tr = new Element("tr").injectInside(listingTBody);
                
                var td1 = new Element("td", {"class":"listingLogo"}).injectInside(tr);
                var imageLink = new Element("a", {"href": listings[i].url}).injectInside(td1);
                var image = new Element("img", {"src": listings[i].logo}).injectInside(imageLink);
                
                var td2 = new Element("td", {"class":"listingDescription"}).injectInside(tr);
                var textLink = new Element("a",{"href": listings[i].url}).set('html',listings[i].listingTitle).injectInside(td2);
                new Element('div', {"class":"listingDescriptionBody"}).set('html',listings[i].listingDescription).injectInside(td2);                
                              
                var td3 = new Element("td").injectInside(tr);
                var buttonLink = new Element("a", {"href": listings[i].url}).injectInside(td3);
                new Element("img", {src:"http://www.nextinsure.com/images/dynamicbutton/button.ashx?buttonType=1&useShadow=1&width=94&height=35&backgroundColor=&buttonColor=AF2020&gradientColor=E93030&borderColor=&buttonText=Get Quote >>&borderWidth=1&fontSize=10&fontFamily=verdana&textColor=ffffff"}).injectInside(buttonLink);
                                
               
            }
            
            listingsContainer.injectInside($('listings_swoop'));
            var ftr = new Element("div", {"id":"listingsFooter"}).set('html','<br/>Listings Provided By <a href="http://www.surehits.com"><img src="/insurance/images/surehits_logo.gif" alt="logo" /></a> - <a href="http://www.surehits.com/advertisers.html">Advertise Here</a>').injectAfter($('listings_swoop'));
            new Element("img", {"src": "/insurance/include/listings-returned.gif?src=" + this.initialSrc }).injectInside(ftr);
        }
    }
    

});


/* ############################################# */
MarketplaceListings.prototype.pixelVar = "";
MarketplaceListings.prototype.age = 0;

/* ############################################# */