/**
 * @namespace adv.js
 * @author Pawel Knapik
 */

 if(typeof adv == 'undefined')
 var adv = {
 	version : '0.8',
	init : function() {
		addClass(document.documentElement,'js')
	},
	
	x : {
		q : function() {
			try {return q = window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");}	catch (e) { }
		},
		get : function(url,f) {
			var q = this.q();

			q.onreadystatechange = function() {
    		if(q.readyState==4&&q.status==200){ f(q.responseText); }
	    }
			q.open('GET',url,true);
      q.send(null);			
      
		},
		post : function(url,msg,f) {
			var q = this.q();
			q.onreadystatechange = function() {
        		if(q.readyState==4&&q.status==200){ f(q.responseText) }
    	    }
			q.open('POST',url, true); 
			q.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
			q.send(msg);
		}
	}	
 }
 var linemed = {};

Array.prototype.inArray=function(v){for(var i=this.length-1;i>=0;i--)if(this[i]===v)return true;return false}
Array.prototype.unique=function(){var t=[];for(var i=0,j=this.length;i<j;i++) t.inArray(this[i])?'':t.push(this[i]);return t;}
if(!Array.prototype.push) {Array.prototype.push=function(el){ this[this.length] = el; } }
if(!Array.prototype.indexOf){Array.prototype.indexOf=function(el) {if(this.length<1||arguments.length!=1)return -1;for(var i=this.length-1;i>=0;i--)if(this[i]==el)return i;return -1;}}

/** @id getElementsByClass */
function getElementsByClass(s,n,t) {
	var c=[],e=(n?n:document).getElementsByTagName(t?t:'*'),r=new RegExp("(^|\\s)"+s+"(\\s|$)");
	for(var i=0,j=e.length;i<j;i++)r.test(e[i].className)?c.push(e[i]):'';return c}

/** @id dollar */
$ = function(){
	var r=[],a=arguments;for(var i=0,j=a.length;i<j;i++){(typeof a[i]=='string')?(r.push(document.getElementById(a[i]))):(r.push(a[i]))}
	return(r.length==1)?r[0]:r
}
/** @id addEvent */
function addEvent(O,E,F,x){
	O=O.length?O:[O];var i=O.length;
	while(i--){O[i].addEventListener?O[i].addEventListener(E,F,1):(x=O[i].attachEvent)?x('on'+E,F):''}
}
/** @id hasClass */
function hasClass(e,c) { return new RegExp("(^|\\s)"+c+"(\\s|$)").test(e.className)?true:false; }

/** @id replaceClass */
function replaceClass(e,c,cc) { e=e.length?e:[e]; for(var i=e.length-1;i>=0;i--){ if(hasClass(e[i],cc))cc=''; e[i].className=e[i].className.replace(new RegExp("(^|\\s)"+c+"(\\s|$)"),' '+cc+' ')}}

/** @id addClass */
function addClass(e,c) { e=e.length?e:[e]; for(var i=e.length-1;i>=0;i--){if(!hasClass(e[i],c)) e[i].className=e[i].className+=(' '+c)} }

/** @id toggle */
function toggleClass(e,a,b) { hasClass(e,a)?replaceClass(e,a,b):replaceClass(e,b,a) }


/** console.log dla przegladarek bez Firebuga (alert zamiast logowania do konsoli */

if(typeof console!='object') {
	var console = {
		log : function(msg) {
			alert(msg);
		}
	}
}
//addEvent(window,'load',adv.init)

/* adv.tree.js */
var tree = {
	init:function(ul)	{
		if(!ul)return;
		var lis = ul.getElementsByTagName('li');
		for(var i=lis.length-1;i>=0;i--){
				lis[i].onclick=function(e){ tree.toggle(this,e); }
				if(lis[i].getElementsByTagName('ul').length>0)addClass(lis[i],'off')
		}
	},
	toggle : function(li,e){
		if(!e)e=window.event;
		if(e.stopPropagation)e.stopPropagation();
		e.cancelBubble=true;
		toggleClass(li,'collapsed','expanded')
	}
}


var inquiriesList  = {
	init:function() {
		var allULs = document.getElementsByTagName('ul')
		var allInquiriesList = new Array();
		var allLI;

		for ( var i=0 ; i<allULs.length ; i++ ) {
			if ( hasClass(allULs[i], 'inquiryiesList' ) ) {
				allInquiriesList[allInquiriesList.length] = allULs[i];
			}
		}

		for ( var i=0 ; i<allInquiriesList.length ; i++ ) {
			allLI = new Array();
			allLI = allInquiriesList[i].getElementsByTagName('li');

			for (var j=0 ; j<allLI.length ; j++ ) {
				if ( allLI[j].parentNode == allInquiriesList[i] ) {
					allLI[j].onclick = function() {
						inquiriesList.toggle(this);
					}
				}
			}
		}
	},

	toggle:function(elem) {
//		alert( elem.className );
		if ( hasClass(elem, 'collapsed') ) {
			replaceClass(elem,'collapsed', '');
		} else {
			addClass(elem,'collapsed');
		}
	}
}


/* slideshow */
var slideshow = {
	container : undefined,
	slides : undefined,
	current : undefined,
	
	init: function(){
		this.container = getElementsByClass('slideshow',document,'div')[0];
		if(!this.container)return;
		
		this.slides = getElementsByClass('slide',this.container);
		this.current = 0;
		for(var i=this.slides.length-1;i>0;i--){
			this.slides[i].style.display = 'none';
		}
		
	},
	next : function(){
		this.slides[this.current+1] && ((this.slides[this.current].style.display='none') && (this.slides[++this.current].style.display=''));
	},
	prev : function(){
		this.slides[this.current-1] && ((this.slides[this.current].style.display='none') && (this.slides[--this.current].style.display=''));
	}
}

var radiochk = function(e,_init) {
	if (!$('jsradios'))return;
	if(!_init && e && (t=e.target||e.srcElement) && t.checked){
		if(t.id==linemed.cradio){t.checked=false;linemed.cradio=''};
	}
	var elms = $('jsradios').getElementsByTagName('input');
	var lbls = $('jsradios').getElementsByTagName('label');
	
	if(window.attachEvent && _init) {
		blr = function(){ event.srcElement.blur() }
		for(var i=0,j=elms.length;i<j;i++) { if ( !elms[i].disabled ) elms[i].attachEvent('onfocus',blr);	}	
	}
	for(var i=0,j=lbls.length;i<j;i++) {
		var f = lbls[i].getAttribute('for')||lbls[i].getAttribute('htmlFor');
		if($(f).checked ){ 
			lbls[i].parentNode.className = 'current';
			linemed.cradio = f;		
		}
		else lbls[i].parentNode.className ='';
	}
}


var encyclopaedia = function() {
	if (!$('jsradios') || !$('encyclopaediaEntry')) return;

	if (  t = linemed.cradio ) {
		var re = new RegExp(t+'Filter');
		var elms = $('encyclopaediaEntry').getElementsByTagName('tbody')[0].getElementsByTagName('tr');

		for ( var i=0;i<elms.length;i++) {
			if ( re.test(elms[i].className) ) {
				elms[i].style.display = "";
			} else {
				elms[i].style.display = "none";
			}
		}
	}
}


var cleanFields = function() {
	var login = $("uLogin");
	var login2 = $("uLogin2");
	var pswd  = $("uPasswd");
	var pswd2  = $("uPasswd2");
	var newsletter = $("iptNewsletter");
	
	function cleanIt() {
		if (!hasClass(this, "clean")) {
			addClass(this, "clean");
			this.value = "";
		}
	} 
	
	if ( login ) login.onfocus = cleanIt;
	if ( login2 ) login2.onfocus = cleanIt;
	if ( pswd ) pswd.onfocus = cleanIt;
	if ( pswd2 ) pswd2.onfocus = cleanIt;
	if ( newsletter ) newsletter.onfocus = cleanIt;
}


/* ajaksowe ładowanie opcji do selectów */
linemed.xload = function(service,params,callback) {
	var url = service+'/'+params;
	callback();
	adv.x.get(url,callback);
}
linemed.healthguide = function(service,params,callback) {
	var url = service+'/'+params;
	callback();
	adv.x.get(url,callback);
}

linemed.options = {
	medycyna : {
		zabieg : function(s){
			linemed.options.replace($('bu-m-Zabieg'),s)
		},
		miasto : function(s){
			linemed.options.replace($('bu-m-Miasto'),s)
		}
	},
	uroda : {
		zabieg : function(s){
			linemed.options.replace($('bu-u-Zabieg'),s)
		},
		miasto : function(s){
			linemed.options.replace($('bu-u-Miasto'),s)
		}
	},
	farmacja : {
		miasto : function(s){
			linemed.options.replace($('bu-f-Miasto'),s)
		}
	},
	panel : {
		miasto : function(s){
			linemed.options.r = [';wybierz'];
			linemed.options.replace($('bu-m-Miasto'),s);
		},
		health : function(s){
			linemed.options.r = [';wybierz'];
			linemed.options.replace($('health-categories'),s);
		}
	},

	
	
	
	r :  [';wszystkie'],
	
	replace : function(select,s){
		if(!select)return;
		if(!s){
			while(select.firstChild){
				select.removeChild(select.firstChild);
			}
			r = linemed.options.r;
		}
		else {
			s=s.replace(/<script(.*)<\/script>/,'');
			r=s.split("\n");
//			alert(r);		
		}

		for(var i=0,j=r.length;i<j;i++){
			if(!r[i])continue;
			var newOption = document.createElement("option");
			newOption.value = r[i].split(';')[0];
			newOption.text = r[i].split(';')[1];
			
			if(typeof cityId !='undefined' &&newOption.value==cityId)newOption.selected=true;
			try {
				select.add(newOption);
			}
			catch (e) {
				select.appendChild(newOption);
			}
		}
	}
}

addEvent(window,'load',function(){ 
	slideshow.init(); 
	tree.init(getElementsByClass('tree',document,'ul')[0]);
	inquiriesList.init();
	radiochk(0,1);
	encyclopaedia();
	cleanFields();
	if(window.opera)document.body.className+=' ';
});

function openCenteredPopup( url , name , width , height ) {
	x = (screen.width - width)/2;
	y = (screen.height - height)/2;
	window.open(url,name,'width='+width+',height='+height+',status=yes,left='+x+',top='+y+',resizable=no');
  return 0;
}

function $(element) {
	return document.getElementById(element);
}

function hide(element) {
    var domEl = $(element);    
    if (domEl == null) {
        return;
    }
	domEl.style.display = 'none';
}

function display(element) {
    var domEl = $(element);    
    if (domEl == null) {
        return;
    }
	domEl.style.display = 'block';
}

