/**
 * Page loads banners into the 'banners' array and
 *      defines functions needed for rollbanners
 *
 * You must define section_id before referencing this script!
 *
 * ratko@kramfid.org, 12.4.2005
 */

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// global variables
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// where to get banners?
var loc = document.location.href;

var cookie_path = ".24ur.com";    // <-- cookie path is for awstats_misc_tracker.js

if ( loc.indexOf('.hr') > 0 ) {
        cookie_path = ".dnevnik.hr";
}
if ( loc.indexOf('1plus1.ua') > 0) {
        cookie_path = ".1plus1.ua";
}

// banner array
//  0: position name
//  1: position id from the 24ur.banner_location table
//  2: <DIV> id, where banner is included
//  3: banner invocation code (function banners_get fills this property)
//  4: banner type: 0: normal, 1: floater, 2: popup, 3: text, 4:normal, but do not document.write banner

if ( show_banners===undefined )
	var show_banners="";

banners = new Array(
	new Array("A" ,30 , "banner_A", "", 0, 728, 0),
	new Array("A1",31 , "banner_A", "", 0),
	new Array("A2",42 , "banner_A2", "", 0),
	new Array("B" ,32 , "banner_B", "", 0),
	new Array("F" ,35 , "banner_F", "", 0, 180, 0),
	new Array("G" ,36 , "banner_G", "", 0, 160, 0),
	new Array("I" ,44 , "banner_I", "", 0),
	new Array("J" ,45 , "banner_J", "", 0),
	new Array("K" ,46 , "banner_K", "", 0),
	new Array("H" ,37 , "banner_H", "", 0, 300, 0),
	new Array("M" ,50 , "banner_M", "", 0, 300, 0),
	new Array("N" ,51 , "banner_N", "", 0, 120, 0),
	new Array("O" ,52 , "banner_O", "", 0, 120, 0),
	new Array("G1" ,53 , "banner_G1", "", 0, 160, 0),
	new Array("G2" ,54 , "banner_G2", "", 0, 160, 0),
	new Array("G3" ,55 , "banner_G3", "", 0, 160, 0),
	new Array("G4" ,56 , "banner_G4", "", 0, 160, 0),
	new Array("G5" ,57 , "banner_G5", "", 0, 144, 0),
	new Array("G6" ,59 , "banner_G6", "", 0, 160, 0),
	new Array("W" ,43 , "banner_W", "", 0),
	new Array("PIXEL"   ,39 , "banner_PIXEL"  , "", 5),
	new Array("VIDEO_IMG"   ,40 , "banner_VIDEO_IMG"  , "", 4, 300, 0),
	new Array("VIDEO_VID"   ,41 , "banner_VIDEO_VID"  , "", 3),
	new Array("Q" ,58 , "banner_Q", "", 0, 468, 0)
);

// rollbanner_check has reference to a rollbanner DIV that needs to be closed when mouse leaves orig banner
var rollbanner_check = false;

// rollbanner is an array filled with data needed to display rollbanner. MAX creates
//      this array and writes it into append HTML property of original banner
var rollbanner = false;

// connect_zone and connect_banner are used to connect two banners:
// if some banner exports these two variables, then only banner 1234 will be shown in zone
//      136). Banenr that exports these two variables _must_ be shown before zone 136.
var connect_zone = false;
var connect_banner = false;

// through this variable rollbanner knows who is his parent. Every DIV must fill this variable with DIV-s id
var current_div = "";

// this variable holds functions that are executed when banner calls praHide
var praHide_functions = false;

/**
 * Function returns banner array and creates invocation code for every banner
 * @param int section_id Current page section_id
 */
function banners_get(section_id)
{
	if ((!section_id) || (section_id=='undefined')) return false;
	section_id = parseInt(section_id);
	if (isNaN(section_id)) return false;

	for (i=0; i<banners.length; i++) {
		zoneid = section_id * 100 + banners[i][1];
		banners[i][3] = banner_get(zoneid, banners[i][4] );
	}
	return banners;
}

/**
 * Function creates invocation code for one banner
 * This code is copied from MAX-s invocation code generator,
 *
 * @param string zoneid Tells what zone to display
 * @param int banner_type 0: normal, 1: floater, 2: popup (slightly different invocation codes)
 */
function banner_get(zoneid, banner_type) {

        var code = '';
	if(show_banners == "0")
		return "";
        switch (banner_type) {
                case 0: // normal banner
                        code = banner_get_normal(zoneid);
                        break;
                case 1: // flyer
                        code = banner_get_floater(zoneid);
                        break;
                case 2: // popup
                        code = banner_get_popup(zoneid);
                        break;
                case 3: // text banner
                        code = banner_get_text(zoneid);
                        break;
                case 4: // normal banner, but do not document.write banner, leave it in variable only
                        code = banner_get_normal_variable(zoneid);
                        break;
		case 5: // pixel/code banner
                        code = banner_get_code(zoneid);
                        break;

        }
        return code;
}

/**
 * Function returns JS for normal banner
 */
function banner_get_normal(zoneid) {

        var awrz_rnd = Math.floor(Math.random()*99999999999);

        if (!document.phpAds_used) document.phpAds_used = ',';

	banner = "/adserver/adjs_i.php?n=" + zoneid;
        banner += "&zoneid=" + zoneid + "&target=_blank";
        banner += "&exclude=" + document.phpAds_used;
        banner += "&loc=" + escape(window.location);
        if ( typeof(uga_seqno) !== 'undefined' )
	        banner += "&banner_type=uga&uga_seqno=" + uga_seqno + "&uga_zoneid=" + uga_zoneid;
        if (document.referrer)
                banner += "&referer=" + escape(document.referrer);
        banner += '&r=' + awrz_rnd;
        banner += "&ct0=" + escape(document.phpAds_ct0);

        // is this zone connected?
        connected_banner = banner_zone_is_connected(zoneid);
        if ( connected_banner )
                banner += "&bannerid=" + connected_banner;

        //banner += "'><" + "/script>\n";

        return banner;
}

/**
 * Function returns JS for normal banner
 */
function banner_get_code(zoneid) {

        var awrz_rnd = Math.floor(Math.random()*99999999999);

        if (!document.phpAds_used) document.phpAds_used = ',';

        banner  = "<" + "script language='JavaScript' type='text/javascript' src='";
        banner += "/adserver/adjs.php?n=" + zoneid;
        banner += "&zoneid=" + zoneid + "&target=_blank";
        banner += "&exclude=" + document.phpAds_used;
        banner += "&loc=" + escape(window.location);
        if (document.referrer)
                banner += "&referer=" + escape(document.referrer);
        banner += '&r=' + awrz_rnd;
        banner += "&ct0=" + escape(document.phpAds_ct0);

        // is this zone connected?
        connected_banner = banner_zone_is_connected(zoneid);
        if ( connected_banner )
                banner += "&bannerid=" + connected_banner;

        banner += "'><" + "/script>\n";

        return banner;
}

/**
 * Function returns JS for normal banner. JS does not document.write this banner, it is left only in 'phpadsbanner' variable.
 */
function banner_get_normal_variable(zoneid) {

        var awrz_rnd = Math.floor(Math.random()*99999999999);

        if (!document.phpAds_used) document.phpAds_used = ',';

        //banner  = "<" + "script language='JavaScript' type='text/javascript' src='";
        banner = "/adserver/adjs_var_i.php?n=" + zoneid;
        banner += "&zoneid=" + zoneid + "&target=_blank";
        banner += "&exclude=" + document.phpAds_used;
        banner += "&loc=" + escape(window.location);
        if (document.referrer)
                banner += "&referer=" + escape(document.referrer);
        banner += '&r=' + awrz_rnd;
        banner += "&ct0=" + escape(document.phpAds_ct0);

        // is this zone connected?
        connected_banner = banner_zone_is_connected(zoneid);
        if ( connected_banner )
                banner += "&bannerid=" + connected_banner;

	//banner += "'><" + "/script>\n";

        return banner;
}

/**
 * Function returns JS for floating banner
 */
function banner_get_floater(zoneid) {
        banner = "<scr" + "ipt language='JavaScript' type='text/javascript' src='/adserver/adlayer.php?" +
                 "zoneid=" + zoneid + "&target=_blank&layerstyle=simple&align=center&valign=middle&padding=2&closetime=15&padding=2&shifth=0&shiftv=0&closebutton=t&nobg=t&noborder=t'></scr" + "ipt>";
        return banner;
}

/**
 * Function returns JS for popup banner
 */
function banner_get_popup(zoneid) {
        banner = "<scr" + "ipt language='JavaScript' type='text/javascript' src='/adserver/adpopup.php?" +
                 "n=" + zoneid + "&zoneid=" + zoneid + "&target=_blank&left=200&top=300&timeout=15&delay=2'></scr" + "ipt>";
        return banner;
}

/**
 * Function returns JS for text banner
 */
function banner_get_text(zoneid) {

        var awrz_rnd = Math.floor(Math.random()*99999999999);
        if (!document.phpAds_used) document.phpAds_used = ',';

        banner  = "<" + "script language='JavaScript' type='text/javascript' src='";
        banner += "/adserver/adjs.php?n=" + zoneid + "";
        banner += "&zoneid=" + zoneid + "&target=_blank";
        banner += "&exclude=" + document.phpAds_used;
        banner += "&loc=" + escape(window.location);
        if (document.referrer)
                banner += "&referer=" + escape(document.referrer);
        banner += '&r=' + awrz_rnd;
        banner += "&ct0=" + escape(document.phpAds_ct0);
        banner += "'><" + "/script>";

        return banner;
}


/**
 * Returns bannerid if some other banner has connected this zone with a certain banner
 */
function banner_zone_is_connected( zoneid ) {
        if ( !connect_zone || !connect_banner )
                return false;

        if ( connect_zone == zoneid )
                return connect_banner;

	connect_zone = connect_zone + '';

        if ( connect_zone.indexOf(',') != -1 ) {
                var tmp = ',' + connect_zone + ',';
                if ( tmp.indexOf(',' + zoneid + ',') >= 0 )
                        return connect_banner;
        }

        return false;
}


/**
 * Function returns banner invocation code for certain position
 *
 * @param string position One position from banners array that inv. code will be returned for.
 */
function banner_show(position) {
	for (i=0; i<banners.length; i++) {
		if (banners[i][0]==position)
		{
			return banners[i][3];
		}
	}
	return "";
}

/**
 * Function returns DIV object reference
 */
function banner_find_div(div_name) {
        if (!div_name) return false;

        var div_element = document.getElementById(div_name);

        if (!div_element) return false;
        if (div_element == "undefined") return false;

        return div_element;
}

/**
 * These functions can be fired by flash when mouse exits flash banner
 */
function praNoAct() {}

function praHide() {

        if (!praHide_functions) return;

        for (i=0; i<praHide_functions.length; i++) {

                funct_name = praHide_functions[i][0];
                params     = praHide_functions[i][1];

                if (eval('typeof(' + funct_name + ')') == "function") {
                        eval(funct_name + "(" + params + ")");
                }
        }

        return;
}
function prahide() { praHide(); }

/**
 * This function registers handlers (functions) that are being called when banenr issues praHide()
 */
function register_praHide(func_name, params) {

        if (!praHide_functions)
                praHide_functions = new Array( new Array(func_name, params) );
        else
                praHide_functions[praHide_functions.length] = new Array(func_name, params);
}

/**
 * This function is executed, when mouse enters flash rollbanner space.
 * Function fills rollbanner div with rollbanner HTML and sets it's visibiliti to 'visible'.
 */
function praShow() {

        if (rollbanner_check != false) return;
        if (!rollbanner) return;
        if (!banners) return;

        pop = document.getElementById("popbox");

        var orig = banner_find_div(rollbanner[0]);
        if (!orig) return;

        if (isNaN(parseInt(rollbanner[4])) || (rollbanner[4]==-1))
                rollbanner[4] = banner_position_x(orig);
        if (isNaN(parseInt(rollbanner[5])) || (rollbanner[5]==-1))
                rollbanner[5] = banner_position_y(orig);

        pop.innerHTML = rollbanner[3];
        pop.style.border = '';
        pop.style.width = rollbanner[1] + "px";
        pop.style.height = rollbanner[2] + "px";
        pop.style.padding = "0px";
        pop.style.background = "#F0F0F0";
        pop.style.left = rollbanner[4] + "px";
        pop.style.top  = rollbanner[5] + "px";
        pop.style.visibility = "visible";

        rollbanner_check = pop;
        document.onmousemove = banner_mousemove;
}

/**
 * Function returns object dimensions (top left and bottom right points)
 */
function banner_get_dimensions(obj) {
        var x1, x2, y1, y2;

        x1 = banner_position_x(obj);
        y1 = banner_position_y(obj);
        x2 = x1 + parseInt(obj.offsetWidth);
        y2 = y1 + parseInt(obj.offsetHeight);

        return new Array(x1,y1,x2,y2);
}

/**
 * Function returns true, if mouse pointer (pos_x & pos_y) is inside banner space (dim)
 */
function banner_is_inside(dim, pos_x, pos_y) {
        return (dim[0] < pos_x) && (dim[2] > pos_x) && (dim[1] < pos_y) && (dim[3] > pos_y);
}

/**
 * This function is executed, when mouse exits banner space.
 * Function hides rollbanner div.
 */
function banner_mousemove(evt) {

        if (typeof(rollbanner_check) == 'undefined') return;

        if (rollbanner_check) {
                var orig = banner_find_div(rollbanner[0]);

                orig_dim = banner_get_dimensions(orig);
                roll_dim = banner_get_dimensions(rollbanner_check);

                if (document.all) {
                        if (document.documentElement.scrollTop) sy = document.documentElement.scrollTop;
                        else sy = document.body.scrollTop;

                        x = event.clientX+document.documentElement.scrollLeft;
                        y = event.clientY+sy;

                } else {
                        x = evt.pageX;
                        y = evt.pageY;
                }

                if (!banner_is_inside(orig_dim, x, y) && !banner_is_inside(roll_dim, x, y)) {

                        document.onmousemove = null;

                        rollbanner_check.style.visibility = "hidden";
                        rollbanner_check.style.left = "0px";
                        rollbanner_check.style.top = "0px";
                        rollbanner_check.style.width = "0px";
                        rollbanner_check.style.height = "0px";

                        rollbanner_check = false;
                        if (!document.all) orig.innerHTML = orig.innerHTML;
                }
        }
}

/**
 * Function returns object's absolute X position
 */
function banner_position_x(obj) {
        var x = 0;
        while (obj.offsetParent) {
                x = x + obj.offsetLeft
                obj = obj.offsetParent;
        }
        return x;
}

/**
 * Function returns object's absolute Y position
 */
function banner_position_y(obj) {
        var y = 0;
        while (obj.offsetParent) {
                y = y + obj.offsetTop
                obj = obj.offsetParent;
        }
        return y;
}


/**
 * Function loads MAX page for banner text
 */
function banner_video_flash()
{
	var zoneid = "" + section_id + "41";
	var banner = "";
	
	connected_banner = banner_zone_is_connected( zoneid );
	
	if ( connected_banner )
		search_str = "&bannerid=" + connected_banner;
	else
		search_str = "&zoneid=" + zoneid;
	
	var awrz_rnd = Math.floor(Math.random()*99999999999);
	
	//banner  = "<" + "script language='JavaScript' type='text/javascript' src='";
	banner = "/adserver/adjs_flash.php?n=" + zoneid;
	banner += search_str + "&target=_blank";
	banner += "&exclude=" + document.phpAds_used;
	banner += "&loc=" + escape(window.location);
	if (document.referrer)
		banner += "&referer=" + escape(document.referrer);
	banner += '&r=' + awrz_rnd;
	banner += "&ct0=" + escape(document.phpAds_ct0);
	//banner += "'><" + "/script>";
	return banner;
}


//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Rollbanner will be shown inside this DIV
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
document.write('<DIV id="popbox" style="POSITION: absolute; TOP: 0px; LEFT: 0px; VISIBILITY: hidden; Z-INDEX: 100; "></DIV>');

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Initializatin function (sets banner array)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
banners_get(section_id);

//-->


function load_banner(banner_location)
{
	for (i=0; i<banners.length; i++)
	{
		if (banners[i][0] == banner_location)
		{
			banner_width = banners[i][5];
			banner_height = banners[i][6];
			if (banners[i][3] == '')
				return false;
		}
	}
	
	try {
		if (banner_location == 'VIDEO_IMG')
		{
			$('div_banner_'+banner_location).innerHTML = '<iframe id="i_banner_' + banner_location + '" name="i_banner_G" width="' + banner_width + '" height="' + banner_height + '" marginheight="0" marginwidth="0" frameborder="0" scrolling="no" src="/adserver/adjs_i.php?bannerid='+video_flash_banner_id + '&banner_location='+banner_location + '"></iframe>';
			return 0;
		}
		
				$('div_banner_'+banner_location).innerHTML = '<iframe id="i_banner_' + banner_location + '" name="i_banner_'+banner_location+'" width="' + banner_width + '" height="' + banner_height + '" marginheight="0" marginwidth="0" frameborder="0" scrolling="no" src="'+ banner_show(banner_location) + '&banner_location='+banner_location + '" allowtransparency="true"></iframe>';
	} catch(error) { return 0; }
}

function load_tag_banner() {
	banner_TAG_src = banner_get_normal("105050");
	try {
		document.getElementById('div_banner_TAG').innerHTML = '<iframe id="i_banner_TAG" name="i_banner_TAG" width="180" height="80" marginheight="0" marginwidth="0" frameborder="0" scrolling="no" src="'+ banner_TAG_src + '&banner_location=TAG" allowtransparency="true"></iframe>';
	} catch(error) { return 0; }
}

function load_banners()
{
	load_banner('A');
	load_banner('F');
	load_banner('G');
	load_banner('H');
	load_banner('M');
	load_banner('N');
	load_banner('O');
	load_banner('G1');
	load_banner('G2');
	load_banner('G3');
	load_banner('G4');
	load_banner('G5');
	load_banner('G6');
	load_banner('Q');

	// load tag banner
	//load_tag_banner();

//	load_banner('I');
//	load_banner('J');
//	load_banner('K');
//	load_banner('W');
//	load_banner('Z');
}

function banner_rolldown_show(banner_location, banner_height)
{
	banner_rolldown_showing = setTimeout("show_banner_A('"+banner_location+"', "+banner_height+")", 2000);
}
function show_banner_A(banner_location, banner_height)
{
	$('div_banner_'+banner_location).style.height = banner_height+'px';
	$('i_banner_'+banner_location).style.height = banner_height+'px';
}
function banner_rolldown_hide(banner_location, banner_height)
{
	clearInterval(banner_rolldown_showing);
	$('div_banner_'+banner_location).style.height = banner_height+'px';
	$('i_banner_'+banner_location).style.height = banner_height+'px';
}


// banner for new flash video player
function pplayer_show_banner()
{
	if (flash_version == 9)
	{
		var pbanner = new SWFObject("/static/shared/app/MediaCenter_banner.swf", "MediaCenter_banner", "180", "240", "9"); 
		pbanner.addParam('allowfullscreen', 'true');
		pbanner.addVariable('bit', get_cookie('bit'));
		pbanner.write("pplayer_banner");
	}
	else
	{
		$('pplayer_banner').innerHTML = '<a href="/bin/simple.php?name=flash_install"><img src="/static/shared/img/MediaCenter_banner.jpg" border="0"></a>';
	}
}

var phpadsbanner_flash_beacon = "";
var phpadsbanner_flash = "";
var video_flash_banner_id = "";
var connect_banner="";
var connect_zone="";

// we remove video+flash ad from page and reset variables
function banner_remove_video_flash()
{
	phpadsbanner_flash_beacon = "";
	phpadsbanner_flash = "";
	video_flash_banner_id = "";
	connect_banner="";
	connect_zone="";
	$('div_banner_VIDEO_IMG').empty();
}
function banner_video_flash_render()
{
	// we load video flash banner which is sometimes connected to video ads
	if (typeof(video_flash_banner_id) !== 'undefined' && video_flash_banner_id != '')
		 load_banner('VIDEO_IMG');

	// we insert beacon adlog for video banner
	if ( phpadsbanner_flash_beacon != "" )
		$('phpads_beacon').setHTML(phpadsbanner_flash_beacon);
}
function change_element_style(el, el_style_name, el_style_value)
{
	$(el).setStyle(el_style_name, el_style_value);
}
