﻿function findPosition(id) {
    var pos = { x: 0, y: 0 };
    if (document.getElementById(id)) {
        pos = findPositionByElement(document.getElementById(id));
    }
    return pos;

}

function findPositionByElement(e) {
    var left = 0;
    var top = 0;
    if (e.offsetParent) {

        left = e.offsetLeft;
        top = e.offsetTop;
        while (e = e.offsetParent) {
            left += e.offsetLeft;
            top += e.offsetTop;
        }
    }
    return { x: left, y: top };
}

function findInlineAdPara(container_id, obstacle_id, clearance) {
     
    var ob  = document.getElementById(obstacle_id);
     

    var con = document.getElementById(container_id);
     
    if (document.getElementById(obstacle_id) && document.getElementById(container_id)) {
         
        if (typeof clearance == "undefined") {
            clearance = 150;
        }
        
        var obstacle = document.getElementById(obstacle_id);
      
        var bottom_of_obstacle;
        if (obstacle_id == container_id) 
            bottom_of_obstacle  = 0;
        else
            bottom_of_obstacle = findPosition(obstacle_id).y + obstacle.offsetHeight;
            
        var container = document.getElementById(container_id);
     
        var bottom_of_container = findPosition(container_id).y + container.offsetHeight;
        var brs = container.getElementsByTagName("br");
        for (var i = 0; i < brs.length; i++) {

            var brSpot = brs[i];
            if ((findPositionByElement(brSpot).y > bottom_of_obstacle + clearance)) {
                return brSpot;
            }
        }
        
        var grafs = container.getElementsByTagName("p");
        for (var i = 0; i < grafs.length; i++) {

            var para = grafs[i];
            if ((findPositionByElement(para).y > bottom_of_obstacle + clearance)) {
                         return para;
            }
        }
    }
    return false;
}

function place_island(parent, ad, sibling) {

     if (parent && ad && sibling)
         parent.insertAfter(ad, sibling);
}
