/**
 * twysm ad
 * by Lane
 * created @2011-04-27
 * --------------------
 * add multi ads support @2011-07-02
 * sId format: ad1,num;ad2,num
*/
var xRequest=function(url,id,charset){var DOC=document,sId=id||'scr'+Math.random().toString().replace(/\./g,'');var sc=DOC.getElementById(sId);var head=DOC.getElementsByTagName('head').item(0);if(sc&&sc.parentNode==head){head.removeChild(sc);}sc=DOC.createElement("script");sc.setAttribute('src',url);sc.setAttribute('id',sId);sc.setAttribute('type','text/javascript');if(typeof(charset)!='undefined'){sc.setAttribute('charset',charset);}head.appendChild(sc);return sc;};
function twysmShowAd(sId,sHtm){
    var dg = function(s){return document.getElementById(s)};
    if (sId.toString().indexOf(';') == -1) {
        var dAd=document.getElementById(sId);if(dAd){dAd.innerHTML=sHtm;}
    }else {
        var dp = document.createElement('div');
        dp.style.display = 'none';
        dp.innerHTML = sHtm;
        document.body.appendChild(dp);
        var fn = function(d,no) {
            var items;
            for (var j=no;j>0;j--) {
                items = dp.getElementsByTagName('li');
                if (items.length>0) {d.appendChild(items[0]);}
            }
        };
        var arr = sId.toString().split(';'),at,d;
        for (var i=0;i<arr.length;i++) {
            at = arr[i].split(',');
            d = dg(at[0]);
            fn(d,at[1]);
        }
    }
}
function twysmGetBold(sId) {
    var dg = function(s){return document.getElementById(s)}, aids='';
    var fn=function(id){
        var s='', d = dg(id), lis = d.getElementsByTagName('li');
        for (var i=0;i<lis.length;i++) {
            s+=lis[i].id ? lis[i].id+',' : '';
        }
        return s;
    };
    if (sId.indexOf(';') == -1) {
        aids += fn(sId);
    }else {
        var arr = sId.split(';'),at;
        for (var i=0;i<arr.length;i++) {
            at = arr[i].split(',');
            aids += fn(at[0]);
        }
    }
    if (aids !== '') {
        var sUrl = 'http://yam.adsbro.com/jsad/ad_keyword.php?aid=';
        xRequest(sUrl + aids.replace(/,$/,''),'scrbold_'+sId);
    }
}
function twysmSetBold(sId, arrKw) {
    var style = ' style="font-weight:bold;color:#FF0000"';
    var doc = document, dg = function(id){return doc.getElementById(id);};
    var d = dg(sId);
    if (!arrKw.length || !d) {return;}
    var re, sHtml = d.innerHTML;
    for (var i=0;i<arrKw.length;i++) {
        re = new RegExp('(?!<b style="[^>]+)' + arrKw[i], 'ig');
        sHtml = sHtml.replace(re, '<b' + style + '>' + arrKw[i] + '</b>');
    }
    d.innerHTML = sHtml;
}
chans = typeof(chans)!='undefined'?chans:{};
_timer = typeof(_timer)!='undefined'?_timer:{};
arrGetting = typeof(arrGetting)!='undefined'?arrGetting:{};
function twysmGetAd(sId, sUrl, sTemplate, bLiBorder, ctxtId){
    //get maxCount
    var mre = /maxCount=([^&]+)/i,
        marr = sUrl.match(mre),
        maxCount = marr[1];

    if (typeof(arrGetting[sId]) == 'undefined') {
        /*
        var source = 'tw_syndication_sitebro_yam_cm',
            ctxtUrl = encodeURIComponent(location.href);
        var url = 'http://cmk.tw.yahoo.overture.com/js_flat_1_0/?config=1460981595&source=' + source +
                    '&mkt=tw&maxCount=' + maxCount + '&outputCharEnc=utf8&ctxtId=' + ctxtId +
                    '&type=' + type + '&ctxtUrl=' + ctxtUrl;
        */
        xRequest(sUrl, 'get_'+sId);
        arrGetting[sId] = true;
    }

    if (typeof(_timer[sId]) != 'undefined') {clearTimeout(_timer[sId]);}
    if (typeof(zSr) == 'undefined') {
        _timer[sId] = setTimeout(function(){twysmGetAd(sId, sUrl, sTemplate, bLiBorder, ctxtId);}, 10);
        return;
    }

    var adCon = [];
    if (sId.toString().indexOf(';') == -1) {
        adCon[0] = {'dom': document.getElementById(sId), 'num': maxCount, 'added': 0};
    }else {
        var arrIds = sId.toString().split(';'), at;
        for (var i=0;i<arrIds.length;i++) {
            at = arrIds[i].split(',');
            adCon[adCon.length] = {'dom': document.getElementById(at[0]), 'num': at[1], 'added': 0};
        }
    }
    if (!adCon) {return;}
    //var dUl = adCon.getElementsByTagName('ul')[0];
    var dUl;

    var getAdArr = function(sId, ctxtId) {
        var adArr = [],
            redirect = 'http://yam.adsbro.com/redirect.php?channel=' + encodeURIComponent(chans[sId])
                    + '&kw=' + encodeURIComponent(ctxtId) + '&url=';
        if(typeof(zSr) != 'undefined' && zSr.length>6){
            var i = 6;

            var ad;
            while(i<zSr.length){
                ad = {};

                ad.description = zSr[i++];
                ad.unused1 = zSr[i++];
                ad.clickURL = redirect + encodeURIComponent(zSr[i++]);  //add redirect url
                ad.title = zSr[i++];
                ad.siteHost = zSr[i++];
                ad.unused2 = zSr[i++];

                adArr[adArr.length] = ad;
            }
        }
        zSr=undefined;
        return adArr;
    };

    var mreplace = function(template, mid, value) {
        var reg = new RegExp('{' + mid + '}', 'ig');
        return template.replace(reg, value);
    };

    var appendAd = function(adArr, adTemplate, bLiBorder) {
        var i = 0, iLen = adArr.length, j=0;
        var sTemp = '';

        var tUl = document.createElement('ul'), tLi, preLi;
        dUl = adCon[j].dom.getElementsByTagName('ul')[0];

        for (i=0;i<iLen;i++) {
            if (j<adCon.length && adCon[j].added == adCon[j].num) {
                j++;
                dUl = adCon[j].dom.getElementsByTagName('ul')[0];
            }
            sTemp = mreplace(adTemplate, 'description', adArr[i].description);
            sTemp = mreplace(sTemp, 'title', adArr[i].title);
            sTemp = mreplace(sTemp, 'alt', adArr[i].alt);
            sTemp = mreplace(sTemp, 'clickUrl', adArr[i].clickURL);
            sTemp = mreplace(sTemp, 'siteHost', adArr[i].siteHost);

            tUl.innerHTML = sTemp;
            tLi = tUl.getElementsByTagName('li')[0];
            if (bLiBorder) {
                if (i<iLen-1) {
                    tLi.style.borderBottom = '1px dashed #7A797F';
                }
                if (i<iLen-1 && dUl.childNodes.length > 0) {
                    preLi = dUl.childNodes.item(dUl.childNodes.length-1);
                    dUl.insertBefore(tLi, preLi);
                }else {
                    dUl.appendChild(tLi);   //append to ad list
                }
            }else {
                dUl.appendChild(tLi);   //append to ad list
            }
            adCon[j].added++;
        }
    };

    //append ad
    var arr = getAdArr(sId, ctxtId);
    appendAd(arr, sTemplate, bLiBorder);
    /*
    //try to get ad again
    if (typeof(bakCtxtId) != 'undefined' && arr.length < maxCount) {
        arrGetting[sId] = undefined;
        if (typeof(_timer[sId]) != 'undefined') {clearTimeout(_timer[sId]);}
        _timer[sId] = setTimeout(function(){twysmGetAd(sId, maxCount, bakCtxtId, type, sTemplate, bLiBorder);}, 20);
    }
    */
}
(function() {
    var dg = function(s){return document.getElementById(s)};
    if (typeof(twysm_ad_id)=='undefined'||typeof(twysm_ad_channel)=='undefined'||typeof(twysm_ad_unit)=='undefined'){return;}
    var ststl=function(d){if(!d){return;}d.style.clear='both';d.style.float='none';d.style.textAlign='left';
        if (twysm_ad_channel=='album_list'||twysm_ad_channel=='album_photo'){d.style.backgroundColor='#FFF';}
        if (twysm_ad_channel=='album_photo') {d.style.width='610px';d.style.margin='0 auto';d.style.backgroundColor='#626262';d.style.border='0 none';}
        if (twysm_ad_channel=='blog_article') {d.style.marginTop='20px';d.style.marginLeft='5px';}
        if (twysm_ad_channel=='media_search' && twysm_ad_id=='twysm_ad2') {d.style.marginBottom='25px'}
        if (twysm_ad_channel=='album_list' && twysm_ad_id=='twysm_ad1') {d.style.float='left';d.style.marginTop='15px';d.style.width='100%';}
    };
    if (twysm_ad_id.indexOf(';') == -1) {
        var d=dg(twysm_ad_id);
        ststl(d);
    }else {
        var arr = twysm_ad_id.split(';'),at,d;
        for (var i=0;i<arr.length;i++) {
            at = arr[i].split(',');
            d = dg(at[0]);
            ststl(d);
        }
    }
    var sReferer=typeof(document.referrer)!='undefined'?document.referrer:'',
        sPageUrl=location.href,
        sTitle=document.title,
        sUrl='http://yam.adsbro.com/jsad/showads.php?id='+twysm_ad_id+
            '&chan='+twysm_ad_channel+'&unit='+twysm_ad_unit+
            '&refer='+encodeURIComponent(sReferer)+'&url='+encodeURIComponent(sPageUrl)+
            '&title='+encodeURIComponent(sTitle)+'&rnd='+parseInt(Math.random()*1000);
    xRequest(sUrl,'scr_'+twysm_ad_id);
    //save channels
    chans[twysm_ad_id] = twysm_ad_channel;
    //reset parameters
    twysm_ad_id=undefined;
    twysm_ad_channel=undefined;
    twysm_ad_unit=undefined;
})();

