//
// functions for loading ad-tags
//
var ad_tags = new Object();
var ad_rectangles = new Object();
var ad_refreshTime = 100;
var ad_tagsRefreshCounter = new Object();
var ad_refreshMax = 30;
var ad_isWallpaperTop = false;

// register element ids for source and destination divs
function ad_registerTag(srcId, destId){
    ad_tags[srcId] = destId;
    ad_tagsRefreshCounter[srcId] = 0;
    
    // search ad box
    var box = $("#" + destId).parent().parent();
    if($(box).attr("class") == "box-ad"){
        ad_rectangles[destId] = box;
    }
}

var originalPageWidth = 816;

function ad_moveElements(elements, destId, srcId){
    // move all elements
    for(var i = 0; i<elements.length; i++){
        $(elements[i]).appendTo("#" + destId);
        if(elements[i].nodeName.toLowerCase() == "iframe"){
            $(elements[i]).css("position", "relative"); // somehow this fixes IE move problem
        }
    }
    
    // if destination is rect, show rect
    var rect = ad_rectangles[destId];
    if(rect != null){
        $(rect).show();
    }
    
    // if dest is banner, do positioning
    if(destId == "addest0"){
        var w = $(elements[0]).width();
        var h = $(elements[0]).height();
        
        //should be taken care of before, but to make sure
        //we have everything, return here
        if (w <= 0 || h <= 0 || w == null || h == null || w == undefined || h == undefined) {
        	runTimer(srcId, destId);
        	return;
        }
        
        if(w < originalPageWidth && w > 0){
            if (ad_isWallpaperTop) {
                // if wallpaper top, then align right
                $("#ad-banner").css("padding-left", (originalPageWidth - w + 20) + "px");
            } else {
                // align center
                $("#ad-banner").css("padding-left", ((originalPageWidth - w) / 2) + "px");
            }
        }
        var adBannerHeight = $('#ad-banner').height();
        if(h < adBannerHeight && h > 0) {
        	// vertical alignment (fixes IE problems)
        	$("#addest0").css("padding-top", ((adBannerHeight - h) / 2) + "px");
        	// move skyscraper in wallpaper top mode
        	if (ad_isWallpaperTop) {
        		$("#ad-skyscraper").css("padding-top", ((adBannerHeight - h) / 2) + "px");
        	}
        }
    }
}

function ad_monitor(srcId, destId){
    var elements = $("#" + srcId).find("div"); // look for divs first
    if(elements.length == 0){
        elements = $("#" + srcId).find("a"); // look for links with images
    }
    if(elements.length == 0){
        elements = $("#" + srcId).find("object"); // look for objects (flash)
    }
    if(elements.length == 0){
        elements = $("#" + srcId).find("iframe"); // look for iframes
    }
    
    if(elements.length > 0){
        ad_moveElements(elements, destId);
    }else{
        runTimer(srcId, destId);
    }
}

function runTimer(srcId, destId) {
    var c = ad_tagsRefreshCounter[srcId];
    if(c < ad_refreshMax){
        c++;
        ad_tagsRefreshCounter[srcId] = c;
        window.setTimeout("ad_monitor('" + srcId + "', '" + destId + "')", ad_refreshTime);
    }
}

function ad_startMonitor(){
    if(ad_tags != null){
        for(var tag in ad_tags){
            var destId = ad_tags[tag];
            var srcId = tag;
            window.setTimeout("ad_monitor('" + srcId + "', '" + destId + "')", ad_refreshTime);
        }
    }
}

function ad_enableWallpaper(){
    $("#ad-skyscraper").css("margin", "0");
}

function ad_enableWallpaperTop(){
    ad_isWallpaperTop = true;
    $("#ad-banner").addClass("wallpaper-top");
    $("#ad-skyscraper").css("margin", "0");
}

function ad_enableSkyScroll(){
	$("#ad-skyscraper").css("height", $(document).height());
    $("#ad-skyscraper div:first-child").css("position", "relative");
	$("#ad-skyscraper div:first-child").scrollFollow();
}
