var key1 = ['city_name','province_name','count'];
var key2 = ['specialization_name','count'];

function post(p) {
    var myForm = document.createElement("form");
    myForm.method="post" ;
    myForm.action = "/szukaj/lista/";

    for (var k in p) {
        var myInput = document.createElement("input") ;
        myInput.setAttribute("name", k) ;
        myInput.setAttribute("value", p[k]);
        myForm.appendChild(myInput) ;
    }

    var myInput = document.createElement("input") ;
    myInput.setAttribute("name", "direction") ;
    myInput.setAttribute("value", "ASC");
    myForm.appendChild(myInput) ;

    document.body.appendChild(myForm) ;
    myForm.submit() ;
    document.body.removeChild(myForm) ;
}

function postCity(p) {
    var myForm = document.createElement("form");
    myForm.method="post" ;
    myForm.action = "/szukaj/lista/";

    var myInput = document.createElement("input") ;
    myInput.setAttribute("name", 'city') ;
    myInput.setAttribute("value", p);
    myForm.appendChild(myInput) ;

    document.body.appendChild(myForm) ;
    myForm.submit() ;
    document.body.removeChild(myForm) ;
}

function postSpecialization(p) {
    var myForm = document.createElement("form");
    myForm.method="post" ;
    myForm.action = "/szukaj/lista/";

    var myInput = document.createElement("input") ;
    myInput.setAttribute("name", 'specialization') ;
    myInput.setAttribute("value", p);
    myForm.appendChild(myInput) ;

    document.body.appendChild(myForm) ;
    myForm.submit() ;
    document.body.removeChild(myForm) ;
}
// searchList class
function searchList( name, item, src, keyw, delay ) {
	this._name = name; 				// nazwa klasy kontenera
	this._item = item; 				// id inputa
	this._src = src; 				// funkcja rpc
	this._keyw = keyw; 				// klucze wyświetlania
	this._gdata = true;				// typ danych
	this._ov = "loadA";     		// warstywa danych
	this._ovl = "loadB";    		// warstwa loadera
	this._ovf = "loadC";			// warstwa nfound
	this._cols = ".s_colm";  		// filtr, klasa dla kolumn
	this._lnk = "s_lnk";			// filtr, klasa oznaczajaca link
	this._delay = delay;			// opóźnienie po jakim ma nastąpić wyszukanie frazy
	this._newData = null;			// dane
	this._df1 = null;
	this._df2 = null;
	this._nfound = false;
	var self = this;

	// akcje
	this.slist = function() {
		$(this._item)
		.keydown(function(){
			if(self._gdata == false) clearTimeout(self._df1);
			self._gdata = true;
		})
		.keyup(function(){
			if(self._gdata != false) {
				if($(self._item).val() != "") {
					self._df1 = setTimeout(function() {
					for(i=0; i < self._keyw.length; i++) { $(self._name+" "+self._cols).fadeTo(100,0); }
					$("div"+self._name+" ."+self._ov)
					.removeClass(self._ov)
					.removeClass(self._ovf)
					.addClass(self._ovl);
					self.getDataList( $(self._item).val(), self._src, false );
					self.printList();
					}, delay);
				}
			}
			self._gdata = false;
		});
	}

	// pobieranie danych
	this.getDataList = function( ss, wf, def ) {
		var rpcService = new rpc.ServiceProxy("/services/rpc-json.php", {asynchronous:false});
		if(wf == 1) { var rpcResponse =  rpcService.searchCities( ss,def ); }
		if(wf == 2) { var rpcResponse =  rpcService.searchSpecializations( ss,def ); }
		this._newData =  rpcResponse;
	}

	this.printList = function() {
		var dv, dm, i, j;
		var dz = new Array();
		$(self._name).find(self._cols).each(function(){
			dv = $(this).attr("class");
			dm = dv.split(" ");
			if(dm[2] != self._lnk) { var lnk = false } else { lnk = true }
			dz.push({
				clsn: dm[0],
				link: lnk
			});
			$("."+dm[0]).empty();
		});
		if(this._newData.length != 0) {
			for(i=0; i < this._newData.length; i++) {
				for(j = 0; j < dz.length; j++) {
					if(dz[j]['link'] != false) {
                        if(this._keyw[j] == 'city_name')
                            $('<p><a href="javascript:postCity(\'' + this._newData[i][this._keyw[j]] + '\')">'+this._newData[i][this._keyw[j]]+'</a></p>').appendTo("."+dz[j]['clsn']);
                        else
                            $('<p><a href="javascript:postSpecialization(\'' + this._newData[i][this._keyw[j]] + '\')">'+this._newData[i][this._keyw[j]]+'</a></p>').appendTo("."+dz[j]['clsn']);
					}
					else {
						$('<p>'+this._newData[i][this._keyw[j]]+'</p>').appendTo("."+dz[j]['clsn']);
					}
				}
			}
			for(i=0; i < this._keyw.length; i++) { $(self._name+" "+self._cols).fadeTo(100,1); }
			if(this._nfound != true ) {
				this._df2 = setInterval(function() { $("div"+self._name+" div."+self._ovl).removeClass(self._ovl).addClass(self._ov); clearTimeout(self._df2); },700);
				this._nfound = false;
			}
			else {
				$("div"+self._name+" div."+self._ovl).removeClass(self._ovf);
				this._df2 = setInterval(function() { $("div"+self._name+" div."+self._ovl).removeClass(self._ovl).addClass(self._ov); clearTimeout(self._df2); },700);
			}
		}
		else {
			this._nfound = true;
			$("div"+self._name+" div."+self._ovl).addClass(self._ovf);
			for(i=0; i < this._keyw.length; i++) { $(self._name+" "+self._cols).fadeTo(200,1); }
			this._df2 = setInterval(function() { $("div"+self._name+" div."+self._ovl).removeClass(self._ovl).addClass(self._ov); clearTimeout(self._df2); },700);
		}

	}
}

$(document).ready(function() {
	$("#menuHbtn1").css("background","url(/images/header/menu1_a.gif)");
	$("#menuHbtn1").unbind();
	$(".browseMore,.rankMore").corner("5px");
	$("#sin").autocomplete('http://polskieszkoly.pl/ajax/cities', {scroll: false, max: 8, width: 204, top:-4 });
	$("#uni").autocomplete('http://polskieszkoly.pl/ajax/academies', {scroll: false, max: 8, width: 493, top:-4 });

	var d = new searchList( '.browseBl', '#fff', 1, key1, 1000);
	var e = new searchList( '.browseBr', '#eee', 2, key2, 1000);

	d.slist();
	d.getDataList("",1,true);
	d.printList();

	e.slist();
	e.getDataList("",2,true);
	e.printList();
});


