var OvertureIM = function(params) {

    this.QUERY_BASE = 'http://im.sonet.ov.yahoo.co.jp/js_flat/';

    this.params = params;
    if (this.params['ctxtId']) {
        var ids = this.params['ctxtId'].split(',');
        if (1 < ids.length) {
            this._ctxtIds = ids;
            this.params['ctxtId'] = ids[Math.floor(Math.random() * ids.length)];
        }
    }

    if (typeof this.params['ctxtUrl'] == 'undefined') {
        try { this.params['ctxtUrl'] = encodeURIComponent(window.top.document.location.href); } catch(e) {}
        if (!this.params['ctxtUrl'].match(/^https?/)) {
            this.params['ctxtUrl'] = undefined;
        }
    }
    if (typeof this.params['ref'] == 'undefined') {
        try { this.params['ref'] = encodeURIComponent(window.top.document.referrer); } catch(e) {}
        if (!this.params['ref'].match(/^https?/)) {
            this.params['ref'] = undefined;
        }
    }
}
OvertureIM.prototype = {

    scriptSource: function() {
        return this.QUERY_BASE + '?' + this.queryParams();
    },

    queryParams: function() {
        var pairs = [];
        for (key in this.params) {
            if (this.params[key]) {
                pairs.push(key + '=' + this.params[key])
            }
        }
        return pairs.join('&');
    },

    writeScript: function() {
        document.write('<scr' + 'ipt type="text/javascript" src="' + this.scriptSource() + '"></scr' + 'ipt>');
    },

    getHtml: function(offset, limit, from) {
        if (typeof zSr == 'undefined') {
            zSr = top.zSr;
        }
        var html = '';
        if (typeof zSr != 'undefined') {
            var i = 6;
            if (offset) {
                i += 6 * offset;
            }
            if (i < zSr.length) {
                if ( from != 'chart' && from != 'balloon') {
                    html += ('<div class="contBlockNB">');
                }
                var end = zSr.length;
                if (limit) {
                    var limitEnd= 6 + 6 * (offset + limit);
                    if (limitEnd < zSr.length) { end = limitEnd; }
                }
                if ( from == 'chart' ) {
                    while (i < end) {
                        var desc = zSr[i++];      // 説明文
                        var unused1 = zSr[i++];   //
                        var clickURL = zSr[i++];  // クリックURL
                        var title = zSr[i++];     //タイトル
                        var sitehost = zSr[i++];  // サイトURL
                        var unused2 = zSr[i++];   //

                        html += '<div class="sponsorsLink">';
                        html += '<p><a href="' + clickURL + '" target="_blank">' + title + '<br/><span class="tLC">' + desc + '</span>';
                        html += '<span class="gL">' + sitehost + '</span></a></p>';
                        html += '</div>';
                    }
                    html += '<p class="textAlignR fontSS"><a href="http://ov.yahoo.co.jp/service/int/index.html?o=IM0026" target="_blank">インタレストマッチ</a></p>';
                } else if( from == 'balloon' ){
                    while (i < end) {
                        var desc = zSr[i++];      // 説明文
                        var unused1 = zSr[i++];   //
                        var clickURL = zSr[i++];  // クリックURL
                        var title = zSr[i++];     //タイトル
                        var sitehost = zSr[i++];  // サイトURL
                        var unused2 = zSr[i++];   //

                       html += '<table cellpadding="0" cellspacing="0" border="0" class="balloonSponsorsLink">';
                       html += '<tr>';
                       html += '<td>';
                       html += '<a href="' + clickURL + '" target="_blank">';
                       html += '<span class="sponsor_title">' +  title  + '<span class="sponsor_url">' + sitehost + '</span></span>';
                       html += '<span class="sponsor_desc">' + desc + '</span>';
                       html += '</a></td></tr></table>';
                    }
                    html += '<table cellpadding="0" cellspacing="0" border="0" class="balloonSponsorsLink"><tr><td class="pdT5 pdR5 pdB5 textAlignR f-xs fontCA">インタレストマッチ - <a href="http://ov.yahoo.co.jp/service/int/index.html?o=IM0026" target="_blank" class="linkCD">広告の掲載について</a></td></tr></table>';
                } else {
                    while (i < end) {
                       var desc = zSr[i++];      // 説明文
                       var unused1 = zSr[i++];   //
                       var clickURL = zSr[i++];  // クリックURL
                       var title = zSr[i++];     //タイトル
                       var sitehost = zSr[i++];  // サイトURL
                       var unused2 = zSr[i++];   //

                       html += '<table cellpadding="0" cellspacing="0" border="0" class="sponsorsLinkS by">';
                       html += '<tr>';
                       html += '<td>';
                       html += '<a href="' + clickURL + '" target="_blank">';
                       html += '<span class="sponsor_title">' +  title  + '<span class="sponsor_url">' + sitehost + '</span></span>';
                       html += '<span class="sponsor_desc">' + desc + '</span>';
                       html += '</a></td></tr></table>';
                    }
                    html += '<p class="pdT5 alignR f-xs"><a href="http://ov.yahoo.co.jp/service/int/index.html?o=IM0026" target="_blank">インタレストマッチ</a></p>';
                }
            }
        }
        return html;
    }
}

