/////////////////////////////////////////
// Settings
var popupbox_max_opacity = 60;
var popupbox_fade_step = 20;
var popupbox_fade_speed = 25;

var popupbox_max_width = 1000; //max sirina iframe-a
var popupbox_max_height = 700; //max visina iframe-a
var popupbox_min_width = 200; //max sirina iframe-a
var popupbox_min_height = 100; //max visina iframe-a
var popupbox_ud_value = 69; //razlika zgoraj/spodaj, zamik za notranji div
/////////////////////////////////////////

var popupbox_opened = false;
var popupbox_inProgress = false;
var popupbox_save_on_r_id = -1;
var popupbox_save_on_s_id = -1;
var popupbox_save_close_event = "";
var popupbox_save_ok_event = "";
var popupbox_save_yes_event = "";
var popupbox_save_no_event = "";
var popupbox_save_msg_text = "";
var popupbox_bg_loaded = false;
var popupbox_content_loaded = false;

function popupbox_open(link_param,redirect_on_close)
	{
	if (!popupbox_inProgress)
		{popupbox_inProgress = true;
		
		popupbox_bg_loaded = false;
		popupbox_content_loaded = false;
		popupbox_opened = true;
		
		var bg_obj = document.getElementById("popupbox_background");
		var iframe_obj = document.getElementById("popupbox_iframe");
		
		//background
		popupbox_set_opacity(bg_obj,0);
		bg_obj.style.display = "block";
		
		iframe_obj.src = link_param;
		iframe_obj.style.width = popupbox_min_width + "px";
		iframe_obj.style.height = popupbox_min_height + "px";
		iframe_obj.style.marginLeft = "-" + (popupbox_min_width / 2) + "px";
		iframe_obj.style.marginTop = "-" + (popupbox_min_height / 2) + "px";
		
		//for debugging
		//iframe_obj.style.display = "block";
		
		if (isIE6)
			{popupbox_ie6_onscroll();
			popupbox_save_on_s_id = onScroll_exec.length;
			onScroll_exec[popupbox_save_on_s_id] = 'popupbox_ie6_onscroll();';
			
			popupbox_ie6_onresize();
			popupbox_save_on_r_id = onResize_exec.length;
			onResize_exec[popupbox_save_on_r_id] = 'popupbox_ie6_onresize();';
			
			//fix za select objekte
			popupbox_ie6_select_object_fix(false);
			}

		popupbox_save_close_event = redirect_on_close;
		
		setTimeout("popupbox_bg_fade('in');",popupbox_fade_speed);
		}
	}

function popupbox_alert(text,redirect_on_close)
	{
	//pocekira za pipeline
	var result = text.split("|");
	if (result.length > 1)
		{popupbox_save_msg_text = '<div class="biger red bold">' + result[0] + '</div><div class="smaller normal">' + result[1] + '</div>';
		}
	else
		{popupbox_save_msg_text = text;}
	
	popupbox_open("/index.php?page=gmod&mod=popupbox&action=alert",redirect_on_close)
	}

function popupbox_info(text,redirect_on_close)
	{
	popupbox_save_msg_text = text;
	popupbox_open("/index.php?page=gmod&mod=popupbox&action=info",redirect_on_close)
	}

function popupbox_confirm(text,redirect_on_confirm,redirect_on_cancel)
	{
	//pocekira za pipeline
	var result = text.split("|");
	if (result.length > 1)
		{popupbox_save_msg_text = '<div class="biger blue bold">' + result[0] + '</div><div class="smaller normal">' + result[1] + '</div>';
		}
	else
		{popupbox_save_msg_text = text;}
	
	popupbox_open("/index.php?page=gmod&mod=popupbox&action=confirm")
	
	//klic funkcije ob zapiranju, prazna spremenljivka za izklop
	popupbox_save_ok_event = redirect_on_confirm;
	popupbox_save_close_event = redirect_on_cancel;
	}

function popupbox_confirm_ok()
	{popupbox_save_close_event = popupbox_save_ok_event;
	popupbox_close();
	}

function popupbox_confirm2(text,redirect_on_yes,redirect_on_no,redirect_on_cancel)
	{//pocekira za pipeline
	var result = text.split("|");
	if (result.length > 1)
		{popupbox_save_msg_text = '<div class="biger blue bold">' + result[0] + '</div><div class="smaller normal">' + result[1] + '</div>';
		}
	else
		{popupbox_save_msg_text = text;}
	popupbox_open("/index.php?page=gmod&mod=popupbox&action=confirm2")
	
	//klic funkcije ob zapiranju, prazna spremenljivka za izklop
	popupbox_save_yes_event = redirect_on_yes;
	popupbox_save_no_event = redirect_on_no;
	popupbox_save_close_event = redirect_on_cancel;
	}

function popupbox_confirm2_yes()
	{popupbox_save_close_event = popupbox_save_yes_event;
	popupbox_close();
	}

function popupbox_confirm2_no()
	{popupbox_save_close_event = popupbox_save_no_event;
	popupbox_close();
	}

function popupbox_close()
	{if (!popupbox_inProgress)
		{popupbox_inProgress = true;
		popupbox_opened = false;
		
		var iframe_obj = document.getElementById("popupbox_iframe");
		iframe_obj.style.display = "none";
		iframe_obj.src = generic_mods_folder + "popupbox/blank.html";
		
		setTimeout("popupbox_bg_fade('out');",popupbox_fade_speed);
		
		//pocekira, ce mora ob zapiranju proziti event
		var tmp_event = popupbox_save_close_event;
		popupbox_save_close_event = "";		
		if (tmp_event) {eval(tmp_event);}
		window.focus();
		}
	}

function popupbox_reload_parent()
	{window.location.href=window.location.href;}

function popupbox_redirect_parent(lnk)
	{window.location.href=lnk;}

function popupbox_bg_fade(direction)
	{
	var do_stop = false;
	
	var bg_obj = document.getElementById("popupbox_background"); 
	var curr_opacity = Math.round(Number(bg_obj.style.opacity) * 100);
	
	switch(direction)
		{case "in":
			curr_opacity += popupbox_fade_step;
			
			if (curr_opacity >= popupbox_max_opacity)
				{curr_opacity = popupbox_max_opacity;
				popupbox_set_opacity(bg_obj,curr_opacity);
				
				popupbox_inProgress = false;
				do_stop = true;
				
				popupbox_bg_loaded = true;
				//show iframe if content loaded
				if (popupbox_content_loaded) 
					{var iframe_obj = document.getElementById("popupbox_iframe");
					iframe_obj.style.display = "block";
					iframe_obj.focus();
					}
				}
			else
				{popupbox_set_opacity(bg_obj,curr_opacity);}
		break;
		case "out":
			curr_opacity -= popupbox_fade_step;
			
			if (curr_opacity <= 0)
				{curr_opacity = 0;
				popupbox_set_opacity(bg_obj,curr_opacity);
				bg_obj.style.display = "none";
				
				if (isIE6)
					{onResize_exec.splice(popupbox_save_on_r_id,1);
					onScroll_exec.splice(popupbox_save_on_s_id,1);
					
					//fix za select objekte
					popupbox_ie6_select_object_fix(true);
					}
				
				popupbox_inProgress = false;
				do_stop = true;
				}
			else
				{popupbox_set_opacity(bg_obj,curr_opacity);}
		break;
		}

	if (!do_stop)
		{setTimeout("popupbox_bg_fade('" + direction + "');",popupbox_fade_speed);}
	}

function popupbox_loaded(width_param,height_param,show_scroll)
	{
	//if browsers back button is pressed
	if (!popupbox_opened) 
		{window.focus();
		return false;
		}
	
	popupbox_change_size(width_param,height_param,show_scroll);
	
	popupbox_content_loaded = true;
	//show iframe if bg loaded
	if (popupbox_bg_loaded) 
		{var iframe_obj = document.getElementById("popupbox_iframe");
		iframe_obj.style.display = "block";
		iframe_obj.focus();
		}
	}

function popupbox_ie6_select_object_fix(visible)
	{
	var elem = document.getElementsByTagName("select");
	var len = elem.length;
	var new_state = visible == true ? "visible" : "hidden";
	
	for (var i = 0;i < len;i++)
		{elem[i].style.visibility = new_state;}
	}

function popupbox_ie6_onresize()
	{
	var bg_obj = document.getElementById("popupbox_background");
	bg_obj.style.width = BrowserW + "px";
	bg_obj.style.height = BrowserH + "px";
	bg_obj.style.top = Scroll_Y + "px";
	bg_obj.style.left = Scroll_X + "px";
	}

function popupbox_ie6_onscroll()
	{
	var bg_obj = document.getElementById("popupbox_background");
	bg_obj.style.top = Scroll_Y + "px";
	bg_obj.style.left = Scroll_X + "px";
	
	var iframe_obj = document.getElementById("popupbox_iframe");
	var iframe_w = parseInt(iframe_obj.style.width);
	var iframe_h = parseInt(iframe_obj.style.height);

	//iframe_obj.style.top = (Scroll_Y + (BrowserH / 2) - (iframe_h / 2)) + "px";
	//iframe_obj.style.left = (Scroll_X + (BrowserW / 2) - (iframe_w / 2)) + "px";
	
	iframe_obj.style.left = Scroll_X + (BrowserW / 2);
	iframe_obj.style.top = Scroll_Y + (BrowserH / 2);
	//iframe_obj.style.left = (Scroll_X + (BrowserW / 2) - (iframe_w / 2)) + "px";

	//window.status = (Scroll_Y + (BrowserH / 2) - (iframe_h / 2)) + "px";
	}

function popupbox_set_opacity(obj,new_value)
	{
	obj.style.filter = "alpha(opacity=" + new_value + ")";	
	obj.style.MozOpacity = new_value / 100;
	obj.style.opacity = new_value / 100;	
	}

function popupbox_change_title(new_value)
	{document.getElementById('popupbox_window_title').innerHTML = new_value;}

function popupbox_change_size(width_param, height_param, show_scroll)
	{
	var width_param = parseInt(width_param);
	var height_param = parseInt(height_param);
	
	if (width_param < popupbox_min_width) {width_param = popupbox_min_width;}
	if (height_param < popupbox_min_height) {height_param = popupbox_min_height;}
	
	if (width_param > popupbox_max_width) {width_param = popupbox_max_width;}
	if (height_param > popupbox_max_height) {height_param = popupbox_max_height;}
	
	var iframe_obj = document.getElementById("popupbox_iframe");
	
	iframe_obj.style.width = width_param + "px";
	iframe_obj.style.height = height_param + "px";
	iframe_obj.style.marginLeft = "-" + (width_param / 2) + "px";
	iframe_obj.style.marginTop = "-" + (height_param / 2) + "px";
	
	var dim_keeper = frames['popupbox_iframe'].document.getElementById('popup_dimension_keeper');
	var new_dim_keeper_h = height_param - popupbox_ud_value;
	dim_keeper.style.height = new_dim_keeper_h + "px";
	
	//scrolls
	dim_keeper.style.overflow = show_scroll ? "auto" : "hidden";
	}
