var Views = {}
//funkcje pomocnicze
//funcja dodająca nowe pole do formularza
var adres_url= 'http://'+ window.location.hostname;
    var licznik = 0;
    function add_input(id_form){
        var f = document.getElementById(id_form);
        var t = '<input type="text" name="a" />';
        //alert(f.id);
             var node = document.createElement('input')
     //var text = document.createTextNode('lalalalala :D')
     node.setAttribute('class','nowe_pole');
     node.setAttribute('style','display:block;float:none');
     node.setAttribute('id',licznik);
     node.setAttribute('name','pole['+licznik+']');
       f.appendChild(node);
 licznik++;
        }

//pobmiana znakow
function zamien(str, co, na_co)
{
    while (true)
    {
        var str2 = str.replace(co, na_co);
        if (str2 == str)
            return str;
        else
            str = str2;
    }
}

function zamien_dod(str){

    var str2 = zamien(str,'\n', '<br/>');
    var str3 = zamien(str2,'/', '%2F');
    return str3




}


// funkcja zmianiajaca aktywny element
function zmien(el,div){

    var a =  $(div).getElementsByTagName('a');
    for(var i=0; i< a.length;i++){
        a.item(i).className = "nakt";
    }
     el.className = 'akt';
}
//przeksztalca dane z forma

function pobierz_form(div){
    var dane='';
    var a =  $(div).getElementsByTagName('input');
    var b =  $(div).getElementsByTagName('textarea');
    var s = $(div).getElementsByTagName('select')
    var tresc = ''

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


       dane += (encodeURIComponent(s.item(i).name) +'='+ encodeURIComponent(zamien_dod(s.item(i).value)) +encodeURIComponent('&'));

    }
    for(var i=0; i< a.length;i++){

       dane += (encodeURIComponent(a.item(i).name) +'='+ encodeURIComponent(zamien_dod(a.item(i).value)) +encodeURIComponent('&'));

    }

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

       dane += (encodeURIComponent(b.item(i).name) +'='+ encodeURIComponent(zamien_dod(b.item(i).value)) +encodeURIComponent('&'));

    }







 // dane = encodeURIComponent(dane);

return dane;

}

function addEvent(evname, evfunc) {
	if(window.addEventListener) {
		window.addEventListener(evname, evfunc, false);
	} else if(window.attachEvent) {
		window.attachEvent("on" + evname, evfunc);
	} else {
		//window.onload = main;
	}
}

function addEventEx(obj, evname, evfunc) {
	if(obj.addEventListener) {

		obj.addEventListener(evname, evfunc, false);
	} else if(obj.attachEvent) {
		obj.attachEvent("on" + evname, evfunc);
	}
}

var xhr_object = null;
function $(obj) {
	return document.getElementById(obj);
}

function Grid(element, model){
	this.element = $(element)
    this.tytul =
	this.model = model
	this.element.id = element
	this.renderers = []
	this.model.add_listener(this)
	Views[this.id] = element
}

Grid.prototype = {
	on_event: function(e){
    if(e=='json'){
     this.render();


// alert('dostalismy json')
    }	else{

  this.element.innerHTML = this.model.html;
  //alert("dostalismy html");
    }
        lo_tlo_none(this.element.id);

	},

	render: function(){
          var t='';
       if(this.model.tytul){
           t += '<h2>'+this.model.tytul+'</h2>' ;
       }

        t += this.build_html(this.model.get_rows())
       this.element.innerHTML = t;




	},

	build_html: function grid(rows){
		var o = ['<table>']
		for (var v = 0; v < rows.length; v++){

				o.push('<tr>')


			var row = rows[v]
			for (var r = 0; r < row.length; r++){
				if (!this.renderers[r]){
					o.push('<td>', row[r], '</td>')

				} else {
					o.push(this.renderers[r](row, r))
				}
			}
			o.push('</tr>')
		}
		o.push('</table>')

		return o.join("")
	}
}

function Model(url, params,typ){
    this.typ = typ;
	this.params = params;
	this.url = url;
	this.rows = [[]]
    this.title='';
    this.html;
	this.listeners = []
}

Model.prototype = {
	add_listener: function(l){
		this.listeners.push(l)
	},

	fire_event: function(){
		for (var v = 0; v < this.listeners.length; v++){
			this.listeners[v].on_event(this.typ)
		}
	},

	get_count: function(){
		return this.count
	},

	get_rows: function(){
		return this.rows;
	},

	load: function(){
		var self = this

        //****************

        	var request;

            if(xhr_object == null) {
                request = (typeof(XMLHttpRequest) != 'undefined')? new XMLHttpRequest(): new ActiveXObject("Msxml2.XMLHTTP.3.0");
            } else {
                request = xhr_object;
            }



            request.open("POST", self.url,true)

            request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			request.send(this.params);

            request.onreadystatechange = function(){
                if(request.readyState != 4){}
                if(request.readyState == 4 && request.status == 200) {
                        if(self.typ =='json'){

                            var obiekt = eval(
						"("
						 + request.responseText +
						")"

					)


                    self.rows = obiekt.rows
					self.count = obiekt.count
                    self.tytul = obiekt.tytul
                    self.fire_event(0)


                        }else{
                            var obiekt = request.responseText;
                            

self.html = obiekt;
self.fire_event(0);
initLytebox();
                        }





                }
            }

    }

}
function lo_tlo(id_el,url_img){

var tlo = document.getElementById(id_el);
tlo.style.background = ' url('+url_img+')';
tlo.style.backgroundPosition = 'center';
tlo.style.backgroundRepeat ='no-repeat';
tlo.style.padding = '10px';
tlo.style.opacity = '0.4';
}
function lo_tlo_none(id_el){
    $(id_el).style.background="none";
    $(id_el).style.opacity = '1';
}

var renderers = {}
renderers.get_color_renderer = function(tlo, font){
	return function (row, i){
		return "<td style='color: " + font +
			+ " background-color: " + tlo + "' >"
			+ row[i]
			+ "</td>";
		}
}




function pobierz_karte(id_serwisu,func,base_url,param,element_id,typ){

var c = new Model(
	base_url+"/"+id_serwisu+"-post-ds2d_svc-karty-"+func+"-"+param+".htm",
	'',typ
)

var grid = new Grid(element_id, c);
grid.renderers[0] = function(row, i){return}
grid.renderers[3] = function(row, i){}
c.load();

}

function wyszukaj(id_serwisu,func,base_url,param,element_id,typ,szukaj){
lo_tlo(element_id,'/cms/images/loading_s.gif')
var s = new Model(
	base_url+"/"+id_serwisu+"-post-ds2d_svc-karty-"+func+"-"+param+".htm",
	szukaj,typ
)

var grid2 = new Grid(element_id, s);
grid2.renderers[0] = function(row, i){return}
grid2.renderers[1] = function(row, i){
	return "<td><a class='karta_link' href=\'#\' onclick=\"pobierz_karte($('miasto_id').value,'karta',adres_url,'"+row[0]+"','"+element_id+"','html')\"> "+row[1]+"</a></td>"
}

s.load();


}
function zapisz_dane(id_serwisu,func,base_url,param,element_id,id_karty){
//lo_tlo(element_id,'/cms/images/loading_s.gif')
if(!base_url){
  base_url= 'http://'+ window.location.hostname;
}


var c = new Model(
	base_url+"/" + id_serwisu + "-post-ds2d_svc-karty-" + func +"-" + id_karty + ".htm",
	param,'html'
)
var grid2 = new Grid(element_id, c);
c.load();
}





function pobierz_dane(id_serwisu,func,base_url,param,element_id,typ){
lo_tlo(element_id,'/cms/images/loading_s.gif')
if(!base_url){
  base_url= 'http://'+ window.location.hostname;
}


var c = new Model(
	base_url+"/" + id_serwisu + "-post-ds2d_svc-karty-" + func +"-" + param + ".htm",
	param,typ
)


var grid2 = new Grid(element_id, c);
grid2.renderers[0] = function(row, i){return}
grid2.renderers[1] = function(row, i){
	return "<td><a class='karta_link' href=\'#\' onclick=\"pobierz_karte($('miasto_id').value,'karta',adres_url,'"+row[0]+"','"+element_id+"','html')\"> "+row[1]+"</a></td>"
}
c.load();
}

function start_karta(){pobierz_dane(1,'form',adres_url,'','ap_karty','html');}
function start_szukaj(){pobierz_dane(1,'wyszukaj_form',adres_url,'','ap_karty','html');}

//upload plików

var upload_window = null;
function popup_window(upload_window,action_target) {

		var stream = upload_window.document;

		stream.write("<html><head><title>Upload pliku</title></head><body bgcolor='#efefef' style='font-family: Arial; font-size: 12px'>");
		stream.write("<center><h1>Uploadowanie pliku</h1></center>");
		
		stream.write('<form enctype="multipart/form-data" action="' + action_target + '" method="post">');
		stream.write('<input type="hidden" name="id_kategorii" value=""/>');
        stream.write("<p>Podaj nazwę pliku, która wyświetli się w systemie jako link do dokumentu</p>");
        stream.write('<input type="text" name="nazwa" value=""/>');
        stream.write("<p>Wybierz plik, który chcesz dodać do karty usług</p>");
		stream.write('<input type="hidden" name="action" value="dodaj_plik"/>');
		stream.write('<p><input type="file" name="plik"/></p>');
		stream.write('<p><br/><center>' +
			'<input style="font-weight: bold" type="submit" name="Uploaduj" value="Dodaj plik" />' +
			'<button style="margin-left: 15px" onclick="window.close()">Anuluj</button>' +
			'</center></p>');

		stream.write('</form>');
		stream.write("</body></html>");



}


function dodaj_plik(action_target) {


	if(upload_window === null || upload_window === undefined || upload_window.closed === true) {
		upload_window = window.open("about:blank", "Upload", "width=400,height=350,left=100,top=100,menubar=no,status=no,location=no");
		return popup_window(upload_window,action_target);
	}
}

