/*
Copyright by Bogumil Ryt
www.bdblog.pl
All rights reserved
Last change: 8.10.2009
*/
var bd_opera = window.opera?true:false;
var bd_firefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
var bd_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
var bd_safari = navigator.userAgent.toLowerCase().indexOf('safari') > -1;
var bd_ie=document.all && !bd_opera;
var bd_ie_ver = parseInt(navigator.appVersion.substring(navigator.appVersion.indexOf('MSIE')+5,navigator.appVersion.length));
var bd_ie6 = bd_ie && bd_ie_ver<=6;
var bd_mousex=0;
var bd_mousey=0;
var bd_drgx=0;
var bd_drgy=0;
var bd_drg_elx=0;
var bd_drg_ely=0;
var bd_slidex=0;
var bd_slidey=0;
var bd_slide_elx=0;
var bd_slide_ely=0;
var bd_sliding={};
var bd_toggle_opn={};
var bd_toggle_size={};
var bd_drg=null;

if(typeof window.onload=='function')
	bd_oldonload = window.onload;
window.onload=function(){
	if(typeof bd_oldonload=='function')
		bd_oldonload();
	bd_init();
}

function $(id){
	return document.getElementById(id);
}

function $frm(n,f){
	f = f?f:'form';
	if(document.forms[f][n].type=='checkbox'){
		if(!document.forms[f][n].checked)
			return false;
	}		
	return document.forms[f][n].value;
}

function bd_init(){
	if(typeof document.body.onmousemove=='function')
		bd_oldmousemove = document.body.onmousemove;
	if(typeof window.onscroll=='function')
		bd_oldscroll = window.onscroll;
	if(typeof window.onresize=='function')
		bd_oldresize = window.onresize;
	
	document.body.onmousemove = function(e){bd_mousemove(e);};	
	window.onscroll = bd_scroll;
	window.onresize = bd_resize;
}

function bd_mousemove(e){
	bd_mousex=(e ? e.pageX : event.x+document.body.scrollLeft);
	bd_mousey=(e ? e.pageY : event.y+document.body.scrollTop);
	if(typeof bd_oldmousemove=='function')
		bd_oldmousemove();
}

function bd_scroll(){
	if(bd_ie6){
		var win_bg = $('win_bg');
		if(win_bg)
			win_bg.style.top = document.documentElement.scrollTop + 'px';
		var bd_body = $('bd_body');
		if(bd_body)
			bd_body.style.top = document.documentElement.scrollTop + 'px';
	}
	
	if(typeof bd_oldscroll=='function')
		bd_oldscroll();
}

function bd_resize(){
	var win_bg = $('win_bg');
	var bd_body = $('bd_body');
	if(win_bg){
		size =  bd_size();
		win_bg.style.width = size['w']+'px';
		win_bg.style.height = size['h']+'px';
	}
	
	if(bd_body){
		size =  bd_size();
		bd_body.style.width = size['w']+'px';
		bd_body.style.height = size['h']+'px';
	}
	
	if(typeof bd_oldresize=='function')
		bd_oldresize();
}

function bd_window(name,url,id,w,h,method,values,onload){
	if(typeof ajax_get!='function'){
		alert("Funkcja 'bd_window()' wymaga biblioteki bdAjax!");
		return;
	}
	
	w = w ? w : 500;
	h = h ? h : 'max500';
	
	var max_width = w ? w.toString().substr(0,3)=='max' : false;
	var max_height = h ? h.toString().substr(0,3)=='max' : false;
	if(max_width)
		w = w.substr(3,w.length);
	if(max_height)
		h = h.substr(3,h.length);
	
	var win_bg = $('win_bg');
	if(!win_bg){
		var win_bg = document.createElement('div');
		win_bg.id = 'win_bg';
		win_bg.style.position = bd_ie6 ? 'absolute' : 'fixed';
		win_bg.style.top = bd_ie6 ? document.documentElement.scrollTop : 0;
		win_bg.style.left = bd_ie6 ? document.documentElement.scrollLeft : 0;
		win_bg.style.overflow = 'hidden';
		win_bg.style.background = 'url(blank.gif)';
		win_bg.style.zIndex = 10000;
		win_bg.onmousemove = function(){
			if(bd_drg){
				bd_drg.style.left=bd_drg_elx+bd_mousex-bd_drgx+'px';
				bd_drg.style.top=bd_drg_ely+bd_mousey-bd_drgy+'px';
			}
		}
	}
	
	if(true && !$('bd_'+id+'_opc')){
		var opacity_win = document.createElement('div');
		opacity_win.style.width = '100%';
		opacity_win.style.height = '100%';
		opacity_win.style.background = '#000';		
		opacity_win.style.position = 'absolute';
		opacity_win.id = 'bd_'+id+'_opc';
		
		opacity_win.onmouseup = function(){
			bd_drg=null;
		}
			
		if(typeof opacity_win.style.opacity!='undefined'){
			opacity_win.style.opacity = '0.5';
			win_bg.appendChild(opacity_win);
		}
		else if(typeof opacity_win.style.filter!='undefined'){
			opacity_win.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=50)';
			win_bg.appendChild(opacity_win);
		}			
	}
	
	size = bd_size();
	win_bg.style.width = size['w']+'px';
	win_bg.style.height = size['h']+'px'; 
	
	var win_cnt = $('bd_'+id+'_cnt');
	if(!win_cnt){
		var win = document.createElement('div');
		var win_title = document.createElement('div');
		var win_content = document.createElement('div');
		var win_footer = document.createElement('div');
		win_title.innerHTML = '<div class="tl"><div class="tr"><a class="bd_win_close" href="javascript:bd_close_window(\'bd_'+id+'\');">X</a>'+name+'</div></div>';
		win_title.className = 'bd_win_title';
		win_title.onmousedown = function(){bd_drag(this.parentNode);}
		win_content.className = 'bd_win_content';
		win_content.id = 'bd_'+id+'_cnt';		
		win_footer.innerHTML = '<div class="fl"><div class="fr"></div></div>';
		win_footer.className = 'bd_win_footer';
		win.id = 'bd_'+id;
		win.className = 'bd_win';
		win.style.position = 'absolute';
		
		if(max_width && !bd_ie6){
			win.style.maxWidth = w+'px';
			win_content.style.maxWidth = (w-20)+'px';
			win_content.style.overflowX = 'auto';
		}
		else
			win.style.width = w+'px';
		var l = (size['w'] / 2) - (w/2);
		l = l>0?l:0;
		win.style.left=l+'px';
		
		if(h>0){
			if(max_height && !bd_ie6){
				win.style.maxHeight = h+'px';
				win_content.style.maxHeight = (h-41)+'px';
			}	
			else{
				win.style.height = h+'px';
				win_content.style.height = (h-41)+'px';
			}
			var t = (size['h'] / 2) - (h/2);
			t = t>0?t:0;
			win.style.top=t+'px';
		}
		else{
			var t = (size['h'] / 2) - 150;
			t = t>0?t:0;
			win.style.top=t+'px';
		}

		win.appendChild(win_title);
		win.appendChild(win_content);
		win.appendChild(win_footer);
		win_bg.appendChild(win);
		document.body.appendChild(win_bg);
		win_cnt = win_content;
	}
	
	var m = method ? method : 'GET';
	if(m.toLowerCase()=='post')
		ajax_post(url,win_cnt,values,onload);
	else
		ajax_get(url,win_cnt,onload);
}

function bd_close_window(w){
	$(w).parentNode.removeChild($(w));
	var opc = $(w+'_opc');
	if(opc)
		$(w+'_opc').parentNode.removeChild($(w+'_opc'));
	var win_bg = $('win_bg');
	if(win_bg)
		if(win_bg.childNodes.length==0)
			win_bg.parentNode.removeChild(win_bg);
}

function bd_drag(e){
	e.onmouseup = function(){
		bd_drg=null;
		this.childNodes[1].style.visibility = 'visible';
	}
	bd_drgx = bd_mousex;
	bd_drgy = bd_mousey;
	bd_drg_elx = parseInt(e.style.left);
	bd_drg_ely = parseInt(e.style.top);
	//e.childNodes[1].style.visibility = 'hidden';
	bd_drg = e;
}

function bd_size(){
	var w = 0;
	var h = 0;
	if(typeof(window.innerWidth) == 'number'){
		w = window.innerWidth;
		h = window.innerHeight;
	}
	else if(document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)){
		w = document.documentElement.clientWidth;
		h = document.documentElement.clientHeight;
	}
	else if(document.body && (document.body.clientWidth || document.body.clientHeight)){
		w = document.body.clientWidth;
		h = document.body.clientHeight;
	}
	w = w>0?w:0;
	h = h>0?h:0;
	return {'w':w,'h':h};
}

function bd_offsetTop(e){
	var y = e.offsetTop;
	var parent = e.offsetParent;
	while(parent && !parent.cbe){
		y += parent.offsetTop;
		parent = parent.offsetParent;
	}
	return y;
}

function bd_offsetLeft(e){
	var x = e.offsetLeft;
	var parent = e.offsetParent;
	while(parent && !parent.cbe){
		x += parent.offsetLeft;
		parent = parent.offsetParent;
	}
	return x;
}

function bd_hint(t,e){
	bd_closehint();
	var hint = $('bd_hint');
	if(!hint){
		hint = document.createElement('div');
		hint.style.padding = '10px';
		hint.style.background = '#FFFFE6';
		hint.style.width = '200px';
		hint.style.border = '1px solid #000';
		hint.style.position = 'absolute';
		hint.style.zIndex = '999';
		hint.style.cursor = 'default';
		hint.style.fontSize = '11px';
		hint.style.color = '#000';
		hint.id = 'bd_hint';
		hint.onclick = bd_closehint;
		document.body.appendChild(hint);
	}
	hint.innerHTML = t;
	if(e){
		hint.style.top = bd_offsetTop(e)+e.offsetHeight+'px';
		hint.style.left = bd_offsetLeft(e)+e.offsetWidth+'px';
	}
	else{
		hint.style.top = bd_mousey+'px';
		hint.style.left = bd_mousex+'px';
	}
	hint.style.display = 'block';
}

function bd_closehint(){
	var hint = $('bd_hint');
	if(hint)
		hint.style.display = 'none';
} 

function bd_create_body(s){
	var bd = $('bd_body');
	if(bd)
		return;
	var body = document.createElement('div');
	var size = bd_size();
	var style = s ? s : '';
	body.id = 'bd_body';
	if(style.length>0)
		 body.style.cssText = style;
	body.style.width = size['w']+'px';
	body.style.height = size['h']+'px';
	body.style.position = bd_ie6 ? 'absolute' : 'fixed';
	body.style.top = bd_ie6 ? document.documentElement.scrollTop : 0;
	body.style.left = bd_ie6 ? document.documentElement.scrollLeft : 0;
	body.style.zIndex = -1;
	document.body.appendChild(body);
}

function bd_slide(elem,dir,length,speed){
	if(!elem || bd_sliding[elem])
		return;
	bd_sliding[elem]=true;
	bd_slide_elx = bd_slidex = elem.offsetLeft;
	bd_slide_ely = bd_slidey = elem.offsetTop;
	if(dir=='x')
		bd_slide_x(elem,length,speed,false);
	if(dir=='y')
		bd_slide_y(elem,length,speed,false);
	if(dir=='-x')
		bd_slide_x(elem,length,speed,true);
	if(dir=='-y')
		bd_slide_y(elem,length,speed,true);
	if(dir=='xy'){
		bd_slide_x(elem,length,speed,false);
		bd_slide_y(elem,length,speed,false);
	}
	if(dir=='-xy'){
		bd_slide_x(elem,length,speed,true);
		bd_slide_y(elem,length,speed,false);
	}
	if(dir=='-x-y'){
		bd_slide_x(elem,length,speed,true);
		bd_slide_y(elem,length,speed,true);
	}
	if(dir=='x-y'){
		bd_slide_x(elem,length,speed,false);
		bd_slide_y(elem,length,speed,true);
	}
}

function bd_slide_x(e,l,s,m){
	var chk = m ? -bd_slidex+bd_slide_elx : bd_slidex-bd_slide_elx;
	if(chk<l){
		if(m)
			bd_slidex -= s;
		else
			bd_slidex += s;
		e.style.left = bd_slidex+'px';
		setTimeout(function(){
			bd_slide_x(e,l,s,m);
		},10);
	}
	else{
		bd_slidex = 0;
		delete bd_sliding[e];
	}
}

function bd_slide_y(e,l,s,m){
	var chk = m ? -bd_slidey+bd_slide_ely : bd_slidey-bd_slide_ely;
	if(chk<l){
		if(m)
			bd_slidey -= s;
		else
			bd_slidey += s;
		e.style.top = bd_slidey+'px';
		setTimeout(function(){
			bd_slide_y(e,l,s,m);
		},10);
	}
	else{
		bd_slidey = 0;
		delete bd_sliding[e];
	}
}

function bd_toggle(e,i){
	if(!$(e))
		return;
	if(!i){
		bd_toggle_opn[e]=3; //1-opening, 2-open, 3-closing, 4-close
		if(!bd_toggle_size[e])
			bd_toggle_size[e] = {'w':$(e).offsetWidth, 'h': $(e).offsetHeight};
		$(e).style.overflow='hidden';
		setTimeout('bd_toggle_close("'+e+'",bd_toggle_size["'+e+'"]["h"]);',100);
	}
	else{
		if(bd_toggle_opn[e]==1)
			return;
		if(bd_toggle_opn[e]==3){
			bd_toggle_opn[e]=2;
			$(e).style.height=bd_toggle_size[e]['h']+'px';
			return;
		}
			
		bd_toggle_opn[e]=1;
		$(e).style.display = 'block';
		bd_toggle_size[e] = {'w':$(e).offsetWidth, 'h': $(e).offsetHeight};
		$(e).style.height=0;		
		$(e).style.overflow='hidden';
		bd_toggle_open(e,0);
	}	
}

function bd_toggle_open(e,h){
	if(h>=bd_toggle_size[e]['h']){
		$(e).style.height=bd_toggle_size[e]['h']+'px';
		if(bd_toggle_opn[e]==1)
			bd_toggle_opn[e]=2;
		return;
	}
		
	h+=5;
	$(e).style.height = h+'px';
	setTimeout(function(){
		bd_toggle_open(e,h);
	},10);
}

function bd_toggle_close(e,h){
	if(bd_toggle_opn[e]!=3)
		return;
	if(h<=0){
		$(e).style.display='none';
		$(e).style.height='';
		bd_toggle_opn[e]=4;
		return;		
	}
		
	h-=5;
	h = h<0?0:h;
	$(e).style.height = h+'px';
	setTimeout(function(){
		bd_toggle_close(e,h);
	},10);
}

function bd_cookie_set(name,value,mins) {
	if(mins){
		var date = new Date();
		date.setTime(date.getTime()+(mins*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function bd_cookie_get(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function bd_cookie_delete(name) {
	bd_cookie_set(name,"",-1);
} 
