// klasa ktora ma dzialac tak, ze wlacza callbacka gdy uzytkownik zmieni element formularza i pozniej nie bedzie nic robil


Form.Element.TextObserver = Class.create();
Form.Element.TextObserver.prototype = Object.extend(new Abstract.TimedObserver(),
{
	getValue: function()
	{
		return Form.Element.getValue(this.element);
	},
	onTimerEvent: function()
	{
		var value = this.getValue();
		if(!this.changed)
			this.changed = ('string' == typeof this.lastValue && 'string' == typeof value ? this.lastValue != value : String(this.lastValue) != String(value));
		if (this.changed)
		{
    		if (('string' == typeof this.lastValue && 'string' == typeof value ? this.lastValue == value : String(this.lastValue) == String(value)))
    		{
    			this.callback(this.element, value);
				this.changed = false;
			}
			//this.callback(this.element, value);
			this.lastValue = value;
		}
	}
});


function doNothing()
{
}

function showById(id, flag)
{
	var layer = document.getElementById(id);
	layer.style.visibility = (flag == "checked" || flag) ? "visible" : "hidden";
}
function showById2(id, checkid)
{
	var layer = document.getElementById(id);
	var checklayer = document.getElementById(checkid);
	layer.style.visibility = checklayer.checked ? "visible" : "hidden";
}


function DeliveryInfo(id, pobranie)
{
 	var layer = document.getElementById('pobranie_opcje');
   var children = layer.childNodes;
   for (var i = 0; i < children.length; i++) 
   {
		children[i].style.display = "none";
   }
	if (pobranie == 1)
	{
		var visible = document.getElementById(id);
		visible.style.display = "block";
	}
	else
	{
		var layer = document.getElementById('stripe');
	   var children = layer.childNodes;
	   for (var i = 0; i < children.length; i++)
	   {
			$(children[i]).removeClassName('active');
	   }
	 	var visible = document.getElementById("nav_" + id);
		$(visible).addClassName('active');

	 	var layer = document.getElementById('pricelist');
	   var children = layer.childNodes;
	   
	   /*for (var i = 0; i < children.length; i++) 
	   {
			//children[i].style.display = "none";
	   }*/
	   	document.getElementById('info').style.display = "none";
		document.getElementById('list').style.display = "none";
		document.getElementById('paczka').style.display = "none";
		document.getElementById('pobranie').style.display = "none";
		var visible = document.getElementById(id);	
		visible.style.display = "block";
	}
	
}

function getParentForm (elem)
{
	while(!elem.submit && elem != document.body )
	{
		//alert (elem.className)
		elem = elem.parentNode;		
	}
	
	if (elem.submit)
	{
		return elem;
	}
	return null;
}

//FormDBAddress:
function displayById(id, checkid)
{
	var layer = document.getElementById(id);
	var checklayer = document.getElementById(checkid);
	layer.style.display = checklayer.checked ? "block" : "none";
//	layer.style.visibility = checklayer.checked ? "visible" : "hidden";
}

function Checkbox_enableById(name, checkid)
{
	if ($(checkid).checked)
	{
		//alert ("aa");
		$(name).enable();
	}
	else
	{
		//alert ("bb");
		$(name).disable();
	}
}

function showElem(elem)
{
	elem.removeClassName('hidden');
}

function hideElem(elem)
{
	elem.addClassName('hidden');
}

function showElemById(elem)
{
	//$(elem).removeClassName('hidden');
	var rodzic = $(elem).parentNode;
	rodzic.style.zIndex = "100";
}

function hideElemById(elem)
{
	//$(elem).addClassName('hidden');
	var rodzic = $(elem).parentNode;
	rodzic.style.zIndex = "0";
}

function showPanelSearcher(typ)
{
	if (typ == "basic")
	{
		//$('basic_search').style.display = "block";
		//$('extended_search').style.display = "none";
		showElem($('basic_search'));
		hideElem($('extended_search')); 
	}
	else //extended
	{
		hideElem($('basic_search'));
		showElem($('extended_search'));
	}
}



/*
function showElemById(elem)
{
	$(elem).removeClassName('hidden');
	var rodzic = $(elem).parentNode.parentNode;
	rodzic.style.zIndex = "1";
}

function hideElemById(elem)
{
	$(elem).addClassName('hidden');
	var rodzic = $(elem).parentNode.parentNode;
	rodzic.style.zIndex = "0";
}
 */
function setFormField (name, value)
{
	$(name).value = value;
}

function getElemX(elem)
{
	var curleft = 0;
	if (elem.offsetParent)
	{
		while (elem.offsetParent)
		{
			curleft += elem.offsetLeft
			elem = elem.offsetParent;
		}
	}
	else if (elem.x)
		curleft += elem.x;
	return curleft;
}

function getElemY(elem)
{
	var curtop = 0;
	if (elem.offsetParent)
	{
		while (elem.offsetParent)
		{
			curtop += elem.offsetTop
			elem = elem.offsetParent;
		}
	}
	else if (elem.y)
		curtop += elem.y;
	return curtop;
}

function toRegExp(text)
{
	var i = 0;
	var output = '';
	for (i =0; i< text.length; ++i)
	{
		ch = String(text.charAt(i));
		
		if (ch.match ( new RegExp("[A-Za-z]")))
		{
			output += '('+ch.toLowerCase()+'|'+ch.toUpperCase()+')';
		}
		else if (ch.match (new RegExp ("[\\.\\{\\}\\[\\]\\(\\)\\-\\*\+\\\\]")))
		{
			output += "\\"+ch;
		}
		else
		{
			output += ch;
		}
	}
	
	//window.status = text + "   " +output;
	
	return output;
}


function FormDBCategoryTree_expandNode( id, catid)
{
	var sub = $(id + catid + "subcats");
	var img = $(id + catid + "img");
	
	//sub.style.display = "block";
	sub.className = "subExpanded";
	img.src = "/img/minus.gif";
	img.parentNode.title = "Kliknij tutaj, by zwinać kategorię."
	return true;
}

function FormDBCategoryTree_collapseNode( id, catid)
{
	var sub = $(id + catid + "subcats");
	var img = $(id + catid + "img");
	
	//sub.style.display = "none";
	sub.className = "subCollapsed";
	img.src = "/img/plus.gif";
	img.parentNode.title = "Kliknij tutaj, by rozwinać kategorię."
	return true;
}

function FormDBCategoryTree_toggleNodeDisplay( id, catid)
{
	var sub = $(id + catid + "subcats");
	var img = $(id + catid + "img");
	
	if (sub.className == "subCollapsed")
	{
		FormDBCategoryTree_expandNode(id, catid);
	}
	else
	{
		FormDBCategoryTree_collapseNode(id, catid);
	}

	return true;
}

function FormDBCategoryTree_selectLeaf( id, catid)
{
	var prevcatid = $(id).value;
	if(prevcatid == '')
	// SWISTAK prevcatid = 0;
		prevcatid = 1;
	//alert(prevcatid);
	var prevcell = $(id + prevcatid + "category");
	var cell = $(id + catid + "category");
	
	prevcell.removeClassName('selected');
	cell.addClassName('selected');
		
	$(id).value = catid;
	
	return true;
}

function FormDBCategoryTree_selectNode( id, catid)
{
	FormDBCategoryTree_selectLeaf(id, catid);
	FormDBCategoryTree_expandNode(id, catid);	
	return true;
}


function AjaxBookSelector_loadBooksCore(version, id, obj)
{
	var catid = $(id + 'catid').value;
	var pressid = $(id + 'pressid').value;
	var search = $(id + 'search').value;
	var index = obj.index ? obj.index : 0;
	var sortby = obj.sortby ? obj.sortby : '';
	var desc = obj.desc ? obj.desc : 0;
	var presssearch = $(id + 'presssearch') ? $(id + 'presssearch').value : '';
	var authorsearch = $(id + 'authorsearch') ? $(id + 'authorsearch').value : '';
	var titlesearch = $(id + 'titlesearch') ? $(id + 'titlesearch').value : '';
	
	$(id + 'books').innerHTML += '<div class="ajaxLoad">Ładowanie...</div>';
	new Ajax.Updater(id + 'books', domain,
		{asynchronous:true, encoding:'iso-8895-2', postBody:'class=AjaxBookSelector'+(version == 2 ? '2' : '')+'&id='+id+'&catid='+catid+'&pressid='+pressid+'&search='+search+'&presssearch='+presssearch+'&authorsearch='+authorsearch+'&titlesearch='+titlesearch+'&offset='+index+'&sortby='+sortby+'&desc='+desc});

	return true;
}

function AjaxBookSelector_loadBooks( id, obj)
{
	return AjaxBookSelector_loadBooksCore(1, id, obj);
}
function AjaxBookSelector2_loadBooks( id, obj)
{
	return AjaxBookSelector_loadBooksCore(2, id, obj);
}

function AjaxBookSelector_loadBooksByPress( id, obj, pressid)
{
	var pressSelector = document.getElementById(id + 'pressid');
	pressSelector.value = pressid;
	return AjaxBookSelector_loadBooksCore(1, id, obj);

/*	var label = document.createElement('option');
	label.text = pressSelector.options[pressSelector.selectedIndex].text;
	label.value = '111';
	pressSelector.add(label, 0);
	pressSelector.size = 2; */
}

function FormDBCategorySelectCascade_update (id, catid)
{
	var newcatid = $(id + 'select' + catid).value;
	//SWISTAK if (newcatid == 0) 
	if (newcatid == 1)
	{
		$(id + 'sub' + catid).innerHTML = "";
	}
	else
	{
		if (categories[newcatid].length == 0)
		{
			$(id + 'sub' + catid).innerHTML = "";
			$(id).value = newcatid;
			//SellBook_CategoryIsSet (newcatid);
			$(id).onchange();
		}
		else
		{
			ctrlid = id + 'select' + newcatid;
			subid = id + 'sub' + newcatid;
			select = '<div class="SellBookCategory"><select id="'+ctrlid+'" name="'+ctrlid+'" onChange="FormDBCategorySelectCascade_update(\''+ id +'\', '+ newcatid +')" size="10">';
//			select += '<option value="0">-- Wybierz --</option>';
			categories[newcatid].each(function(item) {
				select += '<option value="' + item.id + '">'+ item.name +'</option>';
			});
			select += '</select></div>';
			select += '<span id="'+subid+'"></span>';
			$(id + 'sub' + catid).innerHTML = select;
		}
	}
}




function FormSchoolSelect_onchange (schoolid, classid)
{
	var classes = new Array ();
	classes[0] =[{name:"Klasa 1", id: "1"},{name:"Klasa 2", id: "2"},{name:"Klasa 3", id: "3"},{name:"Klasa 4", id: "4"},{name:"Klasa 5", id: "5"},{name:"Klasa 6", id: "6"}];
	classes[1] =[{name:"Klasa 1", id: "1"},{name:"Klasa 2", id: "2"},{name:"Klasa 3", id: "3"}];
	classes[2] =[{name:"Klasa 1", id: "1"},{name:"Klasa 2", id: "2"},{name:"Klasa 3", id: "3"},{name:"Klasa 4", id: "4"}];
	classes[3] =[{name:"Rok 1", id: "1"},{name:"Rok 2", id: "2"},{name:"Rok 3", id: "3"},{name:"Rok 4", id: "4"},{name: "Rok 5", id: "5"}];

	var onChangeTxt = $(schoolid).onchange;
	var schoolvalue = $(schoolid).value;
	var index = -1;
	
	if(schoolvalue == 'p') index = 0;
	if(schoolvalue == 'g' || schoolvalue == 'l' || schoolvalue == 'z') index = 1;
	if(schoolvalue == 't') index = 2;
	if(schoolvalue == 's') index = 3;
	
	if (index < 0)
		$(schoolid + classid + 'select').innerHTML = "";
	else
	{
	
		select = '<select id="'+ classid +'" name="'+ classid +'" onChange="' + onChangeTxt +'">';
			select += '<option value="">-- Wybierz --</option>';
		classes[index].each(function(item) {
			select += '<option value="' + item.id + '">'+ item.name +'</option>';
		});
		select += '</select>';

		$(schoolid + classid + 'select').innerHTML = select;
	}
}




function FormDBOutsideSelect_select(ctrlid, index)
{
	var previndex = $(ctrlid).value;
	$(ctrlid).value = index;
	$(ctrlid+ 'li' + previndex).removeClassName('selected');
	$(ctrlid+ 'li' + index).addClassName('selected');

	$(ctrlid+ 'upload').addClassName('hidden');
	$(ctrlid+ 'uploadfile').disable();
}
function FormDBOutsideSelect_showUpload(ctrlid)
{
	$(ctrlid+ 'uploadfile').enable();
	$(ctrlid+ 'upload').removeClassName('hidden');	
}

function FormDBOutsideSelect_sendFile (ctrlid, bookid)
{
	var form  = getParentForm($(ctrlid));
	
	//alert("asdasfd");
	//alert(form);
	
	var outsides = document.getElementById(ctrlid+'outsides');
	outsides.innerHTML += '<div class="ajaxLoad">Ładowanie...</div>';

	if (form)
	{
		lenctype = form.enctype;
		ltarget = form.target;
		laction = form.action;
		lmethod = form.method;
		
		form.enctype = "multipart/form-data";
		form.target = ctrlid + 'uploadframe';
		form.action = domain;
		form.method = 'POST';		
		
		form.submit();
		
		form.enctype = lenctype;
		form.target = ltarget;
		form.action = laction;
		form.method = lmethod;
		

		$(ctrlid+ 'upload').addClassName('hidden');
		$(ctrlid+ 'uploadfile').disable().clear();
		FormDBOutsideSelect_update (ctrlid, bookid)
	}
}

function FormDBOutsideSelect_update (ctrlid, bookid)
{
	var outsides = parent.document.getElementById(ctrlid+'outsides');
	//outsides.innerHTML += '<div class="ajaxLoad">Ładowanie...</div>';
	//alert(window.document.getElementById(ctrlid));
	//alert(document.getElementById(ctrlid));
	//alert(parent.document.getElementById(ctrlid).value);
	var index = parent.document.getElementById(ctrlid).value;
	
	new Ajax.Updater(outsides, domain,
		{asynchronous:true, encoding:'ISO-8895-2',
			postBody:'class=FormDBOutsideSelect'
			+ '&ctrlid=' + ctrlid
			+ '&'+ctrlid+'action=update'
			+ '&'+ctrlid+'bookid=' + bookid
			+ '&'+ctrlid+'index=' + index});
		
}




function FormBookStateSelect_setStars(ctrlid, index)
{

if (index == 7)
{
	for(i=1; i<= 7; ++i)
	{
		if (i == 7)
			$(ctrlid+'img'+i).src = '/img/ksero-zolte.gif';
		else
			$(ctrlid+'img'+i).src = '/img/gwiazdka-szara.gif';
	}
}
else
{
	for(i=1; i<= 7; ++i)
	{
		if($(ctrlid+'img'+i))
		{
			if (i <= index)
			 	$(ctrlid+'img'+i).src = '/img/gwiazdka-zolta.gif';			
			else
				$(ctrlid+'img'+i).src = '/img/gwiazdka-szara.gif';
		}
	}
}


}

function FormBookStateSelect_onClick(ctrlid, index)
{
	$(ctrlid).value = index;
	
	FormBookStateSelect_setStars(ctrlid, index);
	
	$(ctrlid+'description').innerHTML = bookstatedesc[index];
}

function FormBookStateSelect_onMouseOver(ctrlid, index)
{
	FormBookStateSelect_setStars(ctrlid, index);
	
	$(ctrlid+'description').className = 'temporary';
	$(ctrlid+'description').innerHTML = bookstatedesc[index];
}
function FormBookStateSelect_onMouseOut(ctrlid)
{
	if ($(ctrlid).value == "") index = 0;
	else index = $(ctrlid).value;
	
	//alert ("'"+$(ctrlid).value +"'\n'"+index+"'\n'"+bookstatedesc[index]+"'");

	FormBookStateSelect_setStars(ctrlid, index);
	
	$(ctrlid+'description').className = 'fixed';
	$(ctrlid+'description').innerHTML = bookstatedesc[index];
}


function FormDBPressText_set (elem, value)
{
	if ($(elem).hidetaskid)
		clearTimeout($(elem).hidetaskid);
	$(elem).value = value;
}

function FormDBPressText_popupUpdate(elem)
{

	var popup = $(elem + 'popup');
	var pos = Position.positionedOffset($(elem));
	var output = '';
	var query = String($(elem).value);
	var lastmatchitem = '';
	var maxcount = 10;
	var counter = 0;
	var re = "(^|\\s)" + toRegExp(query)+ "";
	//var re = "(^|\\s)" + query+ "";
	
	if ($(elem).hidetaskid)
	{
		clearTimeout($(elem).hidetaskid);
		$(elem).hidetaskid = false;
	}

	popup.style.left = pos[0] + 'px';
	popup.style.top = (pos[1]+$(elem).getHeight()) + 'px';

	output += '<ul>';
	presses.each(function(item)
	{
		if (item.match(new RegExp(re)))
		{
			if (counter < maxcount)
				output += '<li><a href="#" onclick="FormDBPressText_set(\''+elem+'\', \''+ item +'\');return false">' + item + '</a></li>\n';
			counter++;
			
			lastmatchitem = item;
		}
	});
	if (counter > maxcount)
	{
			output += '<li>...</li>\n';
	}
	output += '</ul>';
	
	if ((counter == 1 && lastmatchitem == query) || !$(elem).hasfocus)
	{
		popup.addClassName('hidden');
	}
	else
	{
		popup.innerHTML = output;
		popup.removeClassName('hidden');
	}
	
}

function FormDBPressText_onBlur(elem)
{
	$(elem).hasfocus = false;
	$(elem).hidetaskid = setTimeout("hideElemById('" +elem+"popup')", 300);
}

function FormDBPressText_onChange(elem)
{
	FormDBPressText_popupUpdate(elem);
}

function FormDBPressText_onFocus(elem)
{
	$(elem).hasfocus = true;
	FormDBPressText_popupUpdate(elem);
}


function SellBook_showResult(id)
{
	showElemById(id + 'result');		
	return true;
}

function SellBook_showForm()
{
	showElemById('FormDBOffer');
	return true;
}

function SellBook_selectBook(obj)
{
	var obj2 = obj.parentNode.parentNode.parentNode.parentNode.parentNode;
	objnew = obj.parentNode;
	Element.extend(obj2);
	Element.extend(objnew);
	if(obj2.selectedNode)
	{
		obj2.selectedNode.removeClassName('selected');
	}
	objnew.addClassName('selected');
	obj2.selectedNode = objnew;
}
function SellBook_selectNewBook(obj)
{
	var obj2 = obj.parentNode.parentNode;
	objnew = obj;
	Element.extend(obj2);
	Element.extend(objnew);
	if(obj2.selectedNode)
	{
		obj2.selectedNode.removeClassName('selected');
	}
	objnew.addClassName('selected');
	obj2.selectedNode = objnew;
}

function SellBook_setBook(obj, bookid, title, author, press)
{
	SellBook_selectBook(obj);
	
	$('bookid').value = bookid;
	$('tytul').disable().value = title;
	$('autor').disable().value = author;
	$('wydawnictwo').disable().value = press;

	$('autor_zmien').checked = false;
	$('autor_zmien').parentNode.style.display = 'inline';

	SellBook_showForm ();
	
	return true;
}
function SellBook_setNewBook(obj, catid)
{
	SellBook_selectNewBook(obj);
	
	$('catid').value = catid;
	$('bookid').value = 0;
	$('tytul').enable().value = '';
	$('autor').enable().value = '';
	$('wydawnictwo').enable().value = '';

	$('autor_zmien').checked = false;
	$('autor_zmien').parentNode.style.display = 'none';

	SellBook_showForm ();
	
	return true;
}

function ViewOffers_toggle(obj)
{
	//elem = document.getElementsByClassName('description_details', obj.parentNode.parentNode.parentNode.parentNode);
	
	var par = obj.parentNode.parentNode.parentNode;
	Element.extend (par);
	
	var elems = par.getElementsBySelector(".description .details");
	var elems1 = par.getElementsBySelector(".description .basics");
	var elems2 = par.getElementsBySelector(".buttons .details");
	
	if (elems.length == 0 || elems2.length == 0) return false;
	
	var details = elems[0];
	var basics = elems1[0];
	var buttons = elems2[0];
	//elem = par.getElementsByClassName("details");
	
	//alert(elem.className);
	
	Element.extend(details);
	Element.extend(buttons);
	Element.extend(basics);
	//elem.addClassName("hidden");
	//elem.toggleClassName("hidden");
	
	if(details.hasClassName("hidden"))
	{
		details.removeClassName("hidden");
		basics.addClassName("hidden");
		buttons.removeClassName("hidden");
		obj.innerHTML = "Ukryj szczegóły";
	}
	else
	{
		details.addClassName("hidden");
		basics.removeClassName("hidden");
		buttons.addClassName("hidden");
		obj.innerHTML = "Pokaż szczegóły";
	}
	
	return true;
}

function ViewOffers_toggleAskSeller (obj)
{	
	var par = obj.parentNode.parentNode.parentNode.parentNode;
	Element.extend (par);
	
	var elems = par.getElementsBySelector(".description .askseller");
	if (elems.length == 0) return false;
	
	var askseller = elems[0];
	
	Element.extend(askseller);
	
	if(askseller.hasClassName("hidden"))
	{
		askseller.removeClassName("hidden");
		obj.innerHTML = "Ukryj formularz";
	}
	else
	{
		askseller.addClassName("hidden");
		obj.innerHTML = "Zadaj pytanie";
	}
	
	return true;
}

function ViewOffers_buy(obj)
{
	//elem = document.getElementsByClassName('description_details', obj.parentNode.parentNode.parentNode.parentNode);
	
	var par = obj.parentNode.parentNode.parentNode.parentNode;
	Element.extend (par);
	
	var elems = par.getElementsBySelector(".description .details form");
	if (elems.length == 0) return false;
	
	var form = elems[0];
	Element.extend(form);
	
	var hiddens = form.getInputs('hidden', 'offerid');
	
	if (hiddens.length == 0) return false;
	
	var offerid = hiddens[0];
	
	window.location = "/buybook.php?offerid=" + offerid.value;
	return true;

}
/* 
function ViewOffers_buy(obj)
{
	//elem = document.getElementsByClassName('description_details', obj.parentNode.parentNode.parentNode.parentNode);
	
	var par = obj.parentNode.parentNode.parentNode.parentNode;
	Element.extend (par);
	
	var elems = par.getElementsBySelector(".description .details form");
	if (elems.length == 0) return false;
	
	var form = elems[0];
	Element.extend(form);
	
	var hiddens = form.getInputs('hidden', 'offerid');
	var texts = form.getInputs('text', 'ilosc');
	
	if (hiddens.length == 0 || texts.length == 0) return false;
	
	var count = texts[0];
	var offerid = hiddens[0];
	
	window.location = "/buybook.php?offerid=" + offerid.value + "&ilosc=" + count.value;
	return true;

}

*/