// ####################################
// ###  Xroot.pl v.6.0.1 (11/2011)  ###
// ####################################

var siteHOST = location.host;
var siteURL = 'http://' + siteHOST + '/';

function getElement(id) { with (document) var element = getElementById ? getElementById(id) : all ? all[id] : layer[id];	if(element == null) alert('nie znaleziono obiektu: ' + id); else if(!element.style) element.style = element;	return element; }
function elementExists(id){ with (document) var element = getElementById ? getElementById(id) : all ? all[id] : layer[id]; if(element == null) return false; else return true; }
function hideElement(name) { getElement(name).style.display = 'none'; }
function viewElement(name) { getElement(name).style.display = ''; }
function checkUncheck(name) { if(getElement(name).checked == true) getElement(name).checked = false; else getElement(name).checked = true; }
function kursorStart(elementName) { if(!elementName) elementName = 'logintext'; var kursor = getElement(elementName); kursor.focus(); }

function checkAll()
{
	if (getElement('idcheckall').checked == true) setValue = true; else setValue = false;
	for(var i = 0; i < getElement('webtonXformId').elements.length; i++) { if (getElement('webtonXformId').elements[i].type == 'checkbox') if(getElement('webtonXformId').elements[i].name != 'checkall') getElement('webtonXformId').elements[i].checked = setValue; }
}

function checkFocus(element)
{
	var nowFocusElement = document.activeElement.id;
	return ((nowFocusElement == element) ? true : false);
}


function elementOnOff(name)
{
	if (getElement(name).style.display == 'block') getElement(name).style.display = 'none'; else getElement(name).style.display = 'block';
	createCookie(name, getElement(name).style.display);
}

function menuOff(name) { getElement(name).style.visibility = 'hidden'; }
function menuOn(name) { getElement(name).style.visibility = 'visible'; }

function getSelectedValue(selectObject)
{
	var listValue = '';

	for(i = 0; i < selectObject.options.length; i++)
	{
		if(selectObject.options[i].selected == true)
		{
			if(listValue.length > 0) separator = '|'; else separator = '';
			listValue = listValue + separator + selectObject.options[i].value;
		}
	}

	return listValue;
}

function getAsArraySelectedValue(selectObject)
{
	var listValue = new Array();
	var j = 0;

	for(var i = 0; i < selectObject.options.length; i++)
	{
		if(selectObject.options[i].selected == true)
		{
			listValue[j++] = selectObject.options[i].value;
		}
	}

	return listValue;
}

function ereg(pattern, text) { var pattern = new RegExp(pattern, 'i'); return pattern.test(text); }
function formatPrice(price, currency) { return '<span style="white-space: nowrap;">' + numberFormat(price, 2, ',', ' ') + currency + '</span>'; }

function numberFormat(number, decimals, dec_point, thousands_sep)
{
	var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals;
	var d = dec_point == undefined ? "." : dec_point;
	var t = thousands_sep == undefined ? "," : thousands_sep, s = n < 0 ? "-" : "";
	var i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
	return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
}


/*** AJAX ***/
var ajaxIP = false;
var mouseX = 0;
var mouseY = 0;
$(document).mousemove(function(e){ mouseX = e.pageX; mouseY = e.pageY; });
function exeAjax(module, params, method)
{
	if (ajaxIP == false)
	{
		ajaxInProgress(true);
		params = 'xrootAjax=' + parseInt(Math.random()*99999999) + '&' + params;
		if (params.length > 250 || method == 'POST')
		{
			// POST
			url = siteURL + module;
			myRequest.open('POST', url, true);
			myRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			myRequest.setRequestHeader("Content-length", params.length);
			myRequest.setRequestHeader("Connection", "close");
			myRequest.onreadystatechange = responseAjax;
			myRequest.send(params);
		}
		else
		{
			// GET
			url = siteURL + module + '?' + params;
			myRequest.open('GET', url, true);
			myRequest.onreadystatechange = responseAjax;
			myRequest.send(null);
		}
		return true;
	}
	else
	{
		setTimeout('exeAjax(\''+module+'\', \''+params+'\');', 500);
	}
}

function exeModule(module, params, target, method)
{
	if(!arguments[2]) target = 'xModule';
	exeAjax(module, 'ajax=' + target + '&' + params, method);
}

function getCategory(idElemenet, id, option)
{
	exeAjax('Ajax/Form/GetCategory', 'id=' + id + '&id_element=' + idElemenet + '&option=' + option);
}

function sendFormValues(module, formObject, target, method)
{
	var params = '';
	for(var i = 0; i < getElement(formObject).elements.length; i++)
	{
		switch(getElement(formObject).elements[i].type)
		{
			case "text": params += getElement(formObject).elements[i].name + "=" + encodePARAM(getElement(formObject).elements[i].value) + "&"; break;
			case "password": params += getElement(formObject).elements[i].name + "=" + encodePARAM(getElement(formObject).elements[i].value) + "&"; break;
			case "textarea": params += getElement(formObject).elements[i].name + "=" + encodePARAM(getElement(formObject).elements[i].value) + "&"; break;
			case "hidden": params += getElement(formObject).elements[i].name + "=" + encodePARAM(getElement(formObject).elements[i].value) + "&"; break;
			case "select-one": params += getElement(formObject).elements[i].name + "=" + encodePARAM(getElement(formObject).elements[i].options[getElement(formObject).elements[i].selectedIndex].value) + "&"; break;
			case "checkbox": if(getElement(formObject).elements[i].checked == true) params += getElement(formObject).elements[i].name + "=" + encodePARAM(getElement(formObject).elements[i].value) + "&"; break;
			case "radio": if(getElement(formObject).elements[i].checked == true) params += getElement(formObject).elements[i].name + "=" + encodePARAM(getElement(formObject).elements[i].value) + "&"; break;
			case "select-multiple": params += getElement(formObject).elements[i].name + "=" + getAsArraySelectedValue(getElement(formObject).elements[i]) + "&"; break;
		}
	}
	params = params.substr(0,(params.length - 1));
	exeModule(module, params, target, method);
}


function getRequest()
{
	var ajaxRequest = false;
	try { ajaxRequest = new XMLHttpRequest(); }
	catch(err1)
	{
		try { ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); }
		catch(err2)
		{
			try { ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); }
			catch(err3) { ajaxRequest = false; }
		}
	}
	return ajaxRequest;
}


function responseAjax()
{
	if (myRequest.readyState == 4)
	{
		ajaxInProgress(false);
		if (myRequest.status == 200)
		{
			var xml = myRequest.responseXML;
			var result = xml.getElementsByTagName('result')[0].childNodes[0].nodeValue;
			switch(result)
			{
				case 'CheckForm':
				{

					var element = xml.getElementsByTagName('element')[0].childNodes[0].nodeValue;
					var errorIcon = xml.getElementsByTagName('errorIcon')[0].childNodes[0].nodeValue;
					var errorInfo = xml.getElementsByTagName('errorInfo')[0].childNodes[0].nodeValue;
					formElementValid(element, errorInfo, errorIcon);
					break;
				}
				case 'CheckFormInfo':
				{
					var comment = xml.getElementsByTagName('comment')[0].childNodes[0].nodeValue;
					alert(comment);
					break;
				}
				case 'Module':
				{
					var firstModule = true;
					var javascript = xml.getElementsByTagName('javascript')[0].childNodes[0].nodeValue;
					var html = xml.getElementsByTagName('html')[0];
					for(var i = 0; i < html.childNodes.length; i++)
					{
						var nodeType = html.childNodes[i].nodeType;
						var nodeName = html.childNodes[i].nodeName;
						if(nodeType == 1 && html.childNodes[i].childNodes[0].nodeValue != 'none')
						{
							var nodeValue = html.childNodes[i].childNodes[0].nodeValue;
							if (firstModule == true)
							{
								$('#'+nodeName).hide();
								getElement(nodeName).innerHTML = nodeValue;
								$('#'+nodeName).fadeIn(200);
								firstModule = false;
							}
							else getElement(nodeName).innerHTML = nodeValue;
						}
					}
					if(javascript != 'none') eval(javascript);
					break;
				}
				case 'Category':
				{
					var categoryPath = xml.getElementsByTagName('path')[0].childNodes[0].nodeValue;
					var categoryLinks = xml.getElementsByTagName('links')[0].childNodes[0].nodeValue;
					var categorySelect = xml.getElementsByTagName('select')[0].childNodes[0].nodeValue;
					var categoryId = xml.getElementsByTagName('id')[0].childNodes[0].nodeValue;
					var idElement = xml.getElementsByTagName('idElement')[0].childNodes[0].nodeValue;

					getElement('categoryPath'+idElement).innerHTML = ((categoryPath != 'none') ? categoryPath : '');
					getElement('categoryLinks'+idElement).innerHTML = ((categoryLinks != 'none') ? categoryLinks : '');
					getElement('categorySelect'+idElement).innerHTML = ((categorySelect != 'none') ? categorySelect : '');
					if(categorySelect != 'none') getElement('categoryVar'+idElement).value = 0;

					if (categoryId != 'none' && categoryId > 0)
					{
						getElement('categoryVar'+idElement).value = categoryId;
						formElementValid(idElement, '', 'ok');
					}

					break;
				}
				case 'CategoryComplete':
				{
					var categoryPath = xml.getElementsByTagName('path')[0].childNodes[0].nodeValue;
					var categoryLinks = xml.getElementsByTagName('links')[0].childNodes[0].nodeValue;
					var categoryId = xml.getElementsByTagName('id')[0].childNodes[0].nodeValue;
					var idElement = xml.getElementsByTagName('idElement')[0].childNodes[0].nodeValue;

					getElement('categoryPath'+idElement).innerHTML = categoryPath;
					getElement('categoryLinks'+idElement).innerHTML = '';
					getElement('categorySelect'+idElement).innerHTML = categoryLinks;
					getElement('categoryVar'+idElement).value = categoryId;

					formElementValid(idElement, '', 'ok');

					break;
				}
				case 'Param':
				{
					Module = xml.getElementsByTagName('module')[0].childNodes[0].nodeValue;
					idElement = xml.getElementsByTagName('id')[0].childNodes[0].nodeValue;
					idFocusElement = xml.getElementsByTagName('focus')[0].childNodes[0].nodeValue;
					getElement('idElement' + idElement).innerHTML = Module;
					if(idFocusElement != 'none') getElement(idFocusElement).focus();
					formElementValid(idElement, '', 'ok');
					break;
				}
				case 'AutoComplete':
				{
					AutoCompleteList = xml.getElementsByTagName('keys')[0].childNodes[0].nodeValue;
					AutoCompleteTime = xml.getElementsByTagName('time')[0].childNodes[0].nodeValue;
					if(AutoCompleteList == 'none') AutoCompleteList = '';
					if (AutoCompleteWrittenString != getElement('toComplete').value) AutoCompleteInit(); else AutoCompleteDraw();
					break;
				}
				case 'Error':
				{
					var error = xml.getElementsByTagName('error')[0].childNodes[0].nodeValue;
					alert(error);
					break
				}
				default:
				{
					alert("DEFAULT:\n\n" + myRequest.responseText);
				}
			}
		}
		else
		{
			//alert('AjaxError: ' + myRequest.status);
		}
	}
}
var myRequest = getRequest();

function formElementValid(element, errorInfo, errorIcon)
{
	if (errorIcon == 'ok')
	{
		getElement('xFormErrorInfo' + element).innerHTML = '';
		getElement('xFormErrorInfo' + element).className = 'errorInfoOff';
		getElement('xFormErrorIcon' + element).innerHTML = '<img src="' + siteURL + 'images/xform/ok.png" style="width: 14px; height: 14px;" alt="poprawnie wypełnione pole">';
	}
	else if (errorIcon == 'error')
	{
		getElement('xFormErrorInfo' + element).innerHTML = errorInfo;
		getElement('xFormErrorInfo' + element).className = 'errorInfoOn';
		getElement('xFormErrorIcon' + element).innerHTML = '<img src="' + siteURL + 'images/xform/error.png" style="width: 14px; height: 14px;" alt="błędnie wypełnione pole">';
	}
	else
	{
		getElement('xFormErrorInfo' + element).innerHTML = '';
		getElement('xFormErrorInfo' + element).className = 'errorInfoOff';
		getElement('xFormErrorIcon' + element).innerHTML = '';
	}
}

function checkFormAjax(form, element, idelement, value, confirmvalue)
{
	if(confirmvalue != 0) confirmvalue = getElement('id' + confirmvalue).value; else confirmvalue = '0';
	exeAjax('Ajax/Form/Check', 'form=' + form + '&element=' + element + '&idelement=' + idelement + '&value=' + encodePARAM(value) + '&confirmvalue=' + encodePARAM(confirmvalue));
}

function checkFormEreg(element, textToCheck, pattern, errorInfo)
{
	if (ereg(pattern, textToCheck) == true)
	{
		formElementValid(element, '', 'ok');
		return true;
	}
	else
	{
		formElementValid(element, errorInfo, 'error');
		return false;
	}
}

/*** UPLOAD-FILE ***/
function uploadFileReady(fileName, fileSize, element, id, index)
{
	getElement('xFormUploadInfoId' + element).innerHTML = '-> ZAŁADOWANO: <b>' + fileName + '</b> (' + fileSize / 1000 + 'kB) <a href="javascript:uploadFileDelete(\''+element+'\', '+index+')" style="text-decoration: none;" title="kasuj plik">[X]</a>';
	getElement('iduploadid' + element).value = id;
	formElementValid(index, '', '');
}


function uploadFile(formname, iframename, idgap)
{
	// wyswietlenie info o ladowaniu
	getElement('xFormUploadInfoId' + idgap.replace('id','')).innerHTML = '<img src="'+siteURL+'images/xform/loader.gif">';

	// przeslanie danych
	getElement(formname).target = iframename;
	getElement('idxupload').value = 'uploadfile';
	getElement(formname).submit();

	// po przeslaniu
	getElement(formname).target = '_self';
	getElement('idxupload').value = '';
	uploadFileClear(idgap);
}


function uploadFileClear(id)
{
	fileField = getElement(id);
	parentNod = fileField.parentNode;
	tmpForm	= document.createElement("form");
	parentNod.replaceChild(tmpForm,fileField);
	tmpForm.appendChild(fileField);
	tmpForm.reset();
	parentNod.replaceChild(fileField,tmpForm);
}

function uploadFileDelete(element, index)
{
	getElement('iduploadid' + element).value = '';
	getElement('xFormErrorInfo' + index).innerHTML = '';
	getElement('xFormErrorInfo' + index).className = 'errorInfoOff';
	getElement('xFormErrorIcon' + index).innerHTML = '';
	getElement('xFormUploadInfoId' + element).innerHTML = '';
}

function getScrollY()
{
	var scrOfY = 0;
	if( typeof( window.pageYOffset ) == 'number' ) { scrOfY = window.pageYOffset; }
	else if( document.body && document.body.scrollTop) { scrOfY = document.body.scrollTop; }
	else if( document.documentElement && document.documentElement.scrollTop) { scrOfY = document.documentElement.scrollTop; }
	return scrOfY;
}

function setCsvPanelHeight()
{
	var windowHeight = document.body.offsetHeight;
	getElement('xModule').style.height = (windowHeight - 100) + 'px';
}

/*** AUTOCOMPLETE ***/
var AutoCompleteIndex = -1;
var AutoCompleteWrittenString = '';
var AutoCompleteList = '';
var AutoCompleteArray = new Array();
var AutoCompleteTime = 0;
function AutoCompleteInit()
{
	if (getElement('toComplete').value.length > 0)
	{
		if (AutoCompleteWrittenString != getElement('toComplete').value)
		{
			AutoCompleteList = '';
			AutoCompleteIndex = -1;
			if(exeAjax('Ajax/AutoComplete/GetKeys', 'key=' + getElement('toComplete').value)) AutoCompleteWrittenString = getElement('toComplete').value;
		}

		AutoCompleteDraw();
	}
	else
	{
		AutoCompleteClose();
	}
}
function AutoCompleteClose(){getElement('AutoComplete').style.visibility = 'hidden';}
function AutoCompleteShow(){if(getElement('AutoCompleteList').innerHTML.length > 0) getElement('AutoComplete').style.visibility = 'visible';}
function AutoCompleteDraw()
{
	AutoCompleteArray = AutoCompleteList.split(',');
	getElement('AutoCompleteList').innerHTML = '';
	for(i = 0; i < AutoCompleteArray.length; i++)
	{
		if(AutoCompleteArray[i].length > 0) getElement('AutoCompleteList').innerHTML += '<li onClick="AutoCompleteText('+i+', true);" class="' + ((i == AutoCompleteIndex) ? 'on' : '') + '">' + AutoCompleteArray[i] + '</li>';
	}
	if(getElement('AutoCompleteList').innerHTML == '')
	{
		AutoCompleteClose();
	}
	else
	{
		getElement('AutoCompleteList').innerHTML += '<span style="color:#AAA;">...search engine by webton.pl...</span>';
		AutoCompleteShow();
	}

}
function AutoCompleteMove(direction)
{
	if (direction == 'up') AutoCompleteIndex--; else AutoCompleteIndex++;

	if (AutoCompleteIndex > AutoCompleteArray.length - 1) AutoCompleteIndex = -1;
	else if(AutoCompleteIndex < -1) AutoCompleteIndex = AutoCompleteArray.length - 1;

	if (AutoCompleteIndex != -1) AutoCompleteText(AutoCompleteIndex, false); else getElement('toComplete').value = AutoCompleteWrittenString;

	AutoCompleteDraw();
}
function AutoCompleteText(id, submitForm)
{
	var AutoText = AutoCompleteArray[id].replace('<b>', '').replace('</b>', '');
	getElement('toComplete').value = AutoText;
	if(submitForm == true)getElement('xFormAutoComplete').submit();
}
function AutoCompleteKey(key)
{
	// UP
	if (key == 38)
	{
		AutoCompleteMove('up');
	}

	// DOWN
	else if(key == 40)
	{
		AutoCompleteMove('down');
	}

	// ESC
	else if(key == 27)
	{
		AutoCompleteClose();
	}

	// INNY
	else
	{
		setTimeout('AutoCompleteInit();', 100);
	}
}

/*** COOKIE ***/
function createCookie(name, value, days)
{
	if (days)
	{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function getCookie(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 '';
}

function deleteCookie(name) { createCookie(name,"",-1); }


/*** STATYSTYKI ***/
function getStat() { document.write('<img src="'+ siteURL + 'stat/?temp=' + parseInt(Math.random()*99999999) + '&domain=' + siteHOST + '&referer='+ encodePARAM(document.referrer) + '">'); }
function encodePARAM(param)
{
	param = encodeURI(param);
	param = param.replace(/&/gi, '%26');
	param = param.replace(/=/gi, '%3D');
	param = param.replace(/\?/gi, '%3F');
	param = param.replace('/', '%2F');
	return param;
}

/*** SESSION_EXPIRE ***/
var sessionExpire = 0;
function setSessionExpire()
{
	if (sessionExpire == 0) sessionExpire = time() + Math.round(getElement('idExpire').innerHTML) - 1;
	var timeLeft = sessionExpire - time();
	if (timeLeft <= 0 && timeLeft > -5) getElement('idExpire').innerHTML = 'X';
	else if (timeLeft <= 0) window.location = siteURL;
	else getElement('idExpire').innerHTML = timeInSecond(timeLeft);
	setTimeout('setSessionExpire();', 1000);
}

function time()
{
	var timeNow = new Date();
	return Math.round(timeNow.getTime()/1000);
}

function timeInSecond(seconds)
{
	if (seconds < 60)
	{
		return seconds;
	}
	else if(seconds < 3600)
	{
		var min = Math.floor(seconds / 60);
		var sec = seconds - min * 60;
		return ((min<10)?'0'+min:min) + ':' + ((sec<10)?'0'+sec:sec);
	}
	else if(seconds < (3600*24))
	{
		var hour = Math.floor(seconds / 3600);
		var min = Math.floor((seconds - hour * 3600)/60);
		var sec = seconds - hour * 3600 - min * 60;
		return ((hour<10)?'0'+hour:hour) + ':' + ((min<10)?'0'+min:min) + ':' + ((sec<10)?'0'+sec:sec);
	}
	else
	{
		return Math.round(seconds / (3600*24)) + '[dni]';
	}
}


/*** CALENDAR ***/
var webtonDate = new Date();
var nowMonth = webtonDate.getMonth() + 1;
var nowYear = webtonDate.getFullYear();
var nowDay = webtonDate.getDate();
var showMonth = nowMonth;
var showYear = nowYear;
var fromDay = 0;
var fromMonth = 0;
var fromYear = 0;
var fromDate = false;
var toDay = 0;
var toMonth = 0;
var toYear = 0;
var toDate = false;
var webtonElement = '';
var webtonToWrite = '';
var webtonLinkAfterDate = '';
var webtonLinkBeforeDate = '';
var webtonLastCalendar = '';

function showCalendar(element, elementToWrite, pShowMonth, pShowYear, pLinkAfterDate, pLinkBeforeDate)
{
	if(element != null)
	{
		// sprawdzenie czy juz jakis nie jest otwarty
		if (webtonElement.length > 0) closeCalendar();
		webtonElement = element;
		webtonLastCalendar = getElement(element).innerHTML;
	}
	if(elementToWrite != null) webtonToWrite = elementToWrite;
	if(pShowMonth != null && pShowMonth > 0) showMonth = pShowMonth;
	if(pShowYear != null && pShowYear > 0) showYear = pShowYear;
	if(pLinkAfterDate != null) webtonLinkAfterDate = pLinkAfterDate;
	if(pLinkBeforeDate != null) webtonLinkBeforeDate = pLinkBeforeDate;

	if (webtonLinkAfterDate.length > 7)
	{
		fromDate = webtonLinkAfterDate.split('-');
		fromDay = (fromDate[2][0] == 0) ? fromDate[2][1] : fromDate[2];
		fromMonth = (fromDate[1][0] == 0) ? fromDate[1][1] : fromDate[1];
		fromYear = fromDate[0];
		fromDate = true;
	}

	if (webtonLinkBeforeDate.length > 7)
	{
		toDate = webtonLinkBeforeDate.split('-');
		toDay = (toDate[2][0] == 0) ? toDate[2][1] : toDate[2];
		toMonth = (toDate[1][0] == 0) ? toDate[1][1] : toDate[1];
		toYear = toDate[0];
		toDate = true;
	}

	getElement(webtonElement).innerHTML = drawMonth();
}

function showNextMonth()
{
	showMonth++;
	if (showMonth > 12)
	{
		showMonth = 1;
		showYear++;
	}

	showCalendar();
}

function showPrevMonth()
{
	showMonth--;
	if (showMonth < 1)
	{
		showMonth = 12;
		showYear--;
	}

	showCalendar();
}

function drawMonth()
{
	var countDay = getDayInMonth(showMonth, showYear);
	var nowShowMonth = new Date(showYear, showMonth - 1, 1);
	var monthStart = nowShowMonth.getDay();
	if(monthStart == 0) monthStart = 7;
	var indexDay = 0;

	var HTML = '<table id="xCalendar">';
	HTML += '<tr><th class="leftlink"><a href="javascript:showPrevMonth();" class="linkLeft">&nbsp;</a></th><th colspan="5" class="month">' + getMonthName(showMonth) + ' ' + showYear + '</th><th class="rightlink"><a href="javascript:showNextMonth();" class="linkRight">&nbsp;</a></th></tr>';
	HTML += '<tr class="daysHead"><th>pn</th><th>wt</th><th>śr</th><th>cz</th><th>pt</th><th>so</th><th>nd</th></tr>';

	while(indexDay <= countDay && indexDay + 1 <= countDay)
	{
		HTML += '<tr>';
		for (var i = 1; i <= 7; i++)
		{
			if (i >= monthStart || indexDay > 0) indexDay++;

			if (i == 6) { dayClass = 'saturday'; }
			else if (i == 7) { dayClass = 'sunday'; }
			else { dayClass = 'day'; }

			if (nowDay == indexDay && nowMonth == showMonth && nowYear == showYear) today = 'today'; else today = '';

			if ((i >= monthStart || indexDay > 0) && indexDay <= countDay)
			{
				if
				(
					fromDate == true && (showYear < fromYear || (showYear == fromYear && showMonth < fromMonth) || (showYear == fromYear && showMonth == fromMonth && indexDay < fromDay)) ||
					toDate == true && (showYear > toYear || (showYear == toYear && showMonth > toMonth) || (showYear == toYear && showMonth == toMonth && indexDay > toDay))
				)
				{
					HTML += '<td class="' + dayClass + '"><a class="'+today+'notactive" href="javascript:clickDate(null);">'+ indexDay +'</a></td>';
				}
				else
				{
					HTML += '<td class="' + dayClass + '"><a class="'+today+'" href="javascript:clickDate('+showYear+', '+showMonth+', '+indexDay+')">'+ indexDay +'</a></td>';
				}
			}
			else
			{
				HTML += '<td>&nbsp;</td>';
			}

		}
		HTML += '</tr>';
	}

	HTML += '<tr><td colspan="7" class="close"><a onClick="closeCalendar();">zamknij</a></td></tr></table>';

	return HTML;
}

function clickDate(pYear, pMonth, pDay)
{
	if (pYear != null)
	{
		pDay = pDay.toString();
		pMonth = pMonth.toString();
		pYear = pYear.toString();
		pDateGen = pYear + '-' + ((pMonth.length == 1) ? ('0' + pMonth) : pMonth) + '-' + ((pDay.length == 1) ? ('0' + pDay) : pDay);
		if(webtonToWrite.length > 0)
		{
			getElement(webtonToWrite).value = pDateGen;
			getElement(webtonToWrite).focus();
			getElement(webtonToWrite).blur();
		}
		closeCalendar();
	}
}

function closeCalendar()
{
	if(webtonLastCalendar.length > 0)
	{
		getElement(webtonElement).innerHTML = webtonLastCalendar;
		webtonLastCalendar = '';
		webtonElement = '';
	}
}

function getMonthName(month)
{
	var mMonth = new Array();
	mMonth[1] = 'Styczeń';
	mMonth[2] = 'Luty';
	mMonth[3] = 'Marzec';
	mMonth[4] = 'Kwiecień';
	mMonth[5] = 'Maj';
	mMonth[6] = 'Czerwiec';
	mMonth[7] = 'Lipiec';
	mMonth[8] = 'Sierpień';
	mMonth[9] = 'Wrzesień';
	mMonth[10] = 'Październik';
	mMonth[11] = 'Listopad';
	mMonth[12] = 'Grudzień';

	return mMonth[month];
}

function getDayInMonth(month, year)
{
	var mMonth = new Array();
	mMonth[1] = 31;
	mMonth[2] = 28;
	mMonth[3] = 31;
	mMonth[4] = 30;
	mMonth[5] = 31;
	mMonth[6] = 30;
	mMonth[7] = 31;
	mMonth[8] = 31;
	mMonth[9] = 30;
	mMonth[10] = 31;
	mMonth[11] = 30;
	mMonth[12] = 31;
	if(year % 4 == 0) mMonth[2] = 29;

	return mMonth[month];
}


/*** WYSIWYG ***/
var cms = null;
var wysiwyg = null;
function initWysiwyg(startContent)
{
	var iframy = window.frames;
	for(i = 0; i < iframy.length; i++) if (iframy[i].name == 'editContent')
	{
		cms = window.frames[i].document;
		wysiwyg = window.frames[i];
	}
	cms.open();
	cms.writeln(startContent);
	cms.close();
	cms.designMode = 'on';
	setTimeout('AddToVariable()', 1000);
}

function AddToVariable()
{
	if(elementExists('xWysiwyg')) getElement('xWysiwyg').value = cms.body.innerHTML;
	setTimeout('AddToVariable()', 200);
}

var hexNumeric = new Array();
hexNumeric[0] = '00';
hexNumeric[1] = '22';
hexNumeric[2] = '44';
hexNumeric[3] = '66';
hexNumeric[4] = '88';
hexNumeric[5] = 'AA';
hexNumeric[6] = 'CC';
hexNumeric[7] = 'FF';
var colorTable = '<table id="cms-color">';
colorTable += '<tr>';
for (var i=7; i>=0; i--){colorTable += '<td style="background: #' + hexNumeric[i] + hexNumeric[i] + hexNumeric[i] + '"><img src="'+siteURL+'images/cms/blank.gif" width="20" height="10" onClick="formatAdvance(\'forecolor\',\'#' + hexNumeric[i] + hexNumeric[i] + hexNumeric[i] + '\');"  alt="#' + hexNumeric[i] + hexNumeric[i] + hexNumeric[i] + '"></td>';}
colorTable += '</tr>';
for (var i=7; i>=0; i--){
if (i%2 == 0){ for (var j=0; j<=7; j++){
colorTable += '<tr>';
for (var k=0; k<=7; k++){
colorTable += '<td style="background: #' + hexNumeric[i] + hexNumeric[j] + hexNumeric[k] + '"><img src="'+siteURL+'images/cms/blank.gif" width="20" height="10" onClick="formatAdvance(\'forecolor\',\'#' + hexNumeric[i] + hexNumeric[j] + hexNumeric[k] + '\');"  alt="#' + hexNumeric[i] + hexNumeric[j] + hexNumeric[k] + '"></td>';
} colorTable += '</tr>';
}} else {
for (var j=7; j>=0; j--){ colorTable += '<tr>';
for (var k=0; k<=7; k++){
colorTable += '<td style="background: #' + hexNumeric[i] + hexNumeric[j] + hexNumeric[k] + '"><img src="'+siteURL+'images/cms/blank.gif" width="20" height="10" onClick="formatAdvance(\'forecolor\',\'#' + hexNumeric[i] + hexNumeric[j] + hexNumeric[k] + '\');"  alt="#' + hexNumeric[i] + hexNumeric[j] + hexNumeric[k] + '"></td>';
} colorTable += '</tr>';
}}} colorTable += '</table>';

function showColorTool()
{
	if(getElement('idSetcolor').style.visibility == 'hidden')
	{
		getElement('idSetcolor').style.visibility = 'visible';
		getElement('idSetcolor').innerHTML = colorTable;
	}
	else
	{
		getElement('idSetcolor').style.visibility = 'hidden';
		getElement('idSetcolor').innerHTML = '';
	}
}

function formatBasic(option)
{
	cms.execCommand(option, null, null);
	wysiwyg.focus();
}

function formatAdvance(option, value)
{
	cms.execCommand(option, null, value);
	wysiwyg.focus();
	if(option == 'forecolor') showColorTool();
}

function insertHTML(html)
{
	if (navigator.appName != 'Microsoft Internet Explorer')
	{
		wysiwyg.document.execCommand('insertHTML', false, 'xrootTemp');
		cms.body.innerHTML = cms.body.innerHTML.replace('xrootTemp', html);
	}
	else
	{
		wysiwyg.focus();
		var textSelect = cms.selection.createRange();
		textSelect.pasteHTML(html);
	}
}

var PreLoaderPics = new Array();
PreLoaderPics[0] = new Image(); PreLoaderPics[0].src = siteURL + 'images/xform/loader.gif';
PreLoaderPics[1] = new Image(); PreLoaderPics[1].src = siteURL + 'images/xform/ok.png';
PreLoaderPics[2] = new Image(); PreLoaderPics[2].src = siteURL + 'images/xform/error.png';
PreLoaderPics[2] = new Image(); PreLoaderPics[2].src = siteURL + 'images/admin/table-td-hover.gif';

/*** ajaxInProgress ***/
function ajaxInProgress(onOff)
{
	if(onOff == true)
	{
		ajaxIP = true;
		$('body').append(ajaxProgressBox = $('<div class="ajaxInProgress" id="ajaxProgressBox">ładowanie danych...</div>'));
		ajaxProgressBox.css({'left' : (mouseX - 80) + 'px', 'top' : (mouseY - 40) + 'px'});
		$(document).mousemove(function(){ ajaxProgressBox.css({'left' : (mouseX - 80) + 'px','top' : (mouseY - 40) + 'px'}) });
	}
	else
	{
		ajaxIP = false;
		$('#ajaxProgressBox').remove();
	}
}

/*** xrootBOX ***/
var xBox = 0;
var xBoxSpeedIn = 100;
var xBoxSpeedOut = 100;
var xBoxNow = '';
var xBoxList = new Array();
function xrootBox(width, height, autoClose, type)
{
	if(width == null) width = 680;
	if(height == null) height = 400;
	if(autoClose == null) autoClose = 0;
	if(type == null) type = 'ajax';

	// ustawienie pozycji i rozmiaru
	xBox++;
	xBoxList[xBoxList.length] = xBox;
	var setMargin = 10;
	width += setMargin * 2;
	height += setMargin * 2;
	setLeft = Math.round($(window).width() / 2 - width / 2);
	setTop = Math.round(($(window).height() / 2 - height / 2)/2);

	// OVERLAY
	$('body').append(overlay = $('<div class="xrootBoxOverlay" id="xBoxOverlay'+xBox+'" onClick="xrootBoxClose('+xBox+')"></div>'));
	overlay.css({'opacity' : 0.6,'height' : $(document).height(),'z-index' : (1000 + (xBox*10))});

	// BOX
	$('body').append(box = $('<div class="xrootBox" id="xBox'+xBox+'"></div>'));
	box.css({'left' : setLeft + 'px','top' : setTop + 'px','padding' : setMargin + 'px','width' : width + 'px','height' : height + 'px','z-index' : (1000 + (xBox*10) + 1)});

	// CONTENT
	if (type == 'ajax')
	{
		$('#xBox'+xBox).append(boxContent = $('<div class="xrootBoxContent" id="xBoxContent'+xBox+'"></div>'));
		boxContent.css({'width' : width + 'px','height' : height + 'px'});
	}
	else
	{
		$('#xBox'+xBox).append(boxContent = $('<iframe class="xrootIframe" id="xBoxContent'+xBox+'" frameborder="0"></iframe>'));
		boxContent.css({'width' : width + 'px','height' : height + 'px'});
	}

	// CLOSE BOX
	if (autoClose == 0)
	{
		$('#xBox'+xBox).append(closeButton = $('<div class="xrootBoxClose" id="xBoxClose'+xBox+'" onClick="xrootBoxClose('+xBox+')">X</div>'));
		closeButton.css({'z-index' : (1000 + (xBox*10) + 2)});
	}

	$('#xBoxOverlay'+xBox).fadeIn(xBoxSpeedIn, function(){$('#xBox'+xBox).fadeIn(xBoxSpeedIn/2);});

	// zamkniecie okna ESC
	$(document).bind('keydown', function(e) { if (e.keyCode == 27) { xrootBoxClose(); } });

	// ustawienie zamkniecia okna
	if(autoClose > 0) setTimeout('xrootBoxClose('+ xBox +')', autoClose);

	// aktualny box
	xBoxNow = 'xBoxContent' + xBox;

	// zwrot nazwy box
	return xBoxNow;
}

function xrootBoxClose(id)
{
	if (id == null)
	{
		for (i = 0; i < xBoxList.length; i++) xrootBoxClose(xBoxList[i]);
		xBoxList = new Array();
		xBoxNow = '';
	}
	else
	{
		$('#xBox'+id).fadeOut(xBoxSpeedOut/2, function(){
			$('#xBoxOverlay'+id).fadeOut(xBoxSpeedOut, function(){
				$('#xBoxContent'+id).remove();
				$('#xBoxOverlay'+id).remove();
			});
		});
	}
}


function searchForm(){ sendFormValues('Main/Assortment/AssList/0/newparams', 'xSearch'); }

function setDiscountPrice()
{
	var price = getElement('idPrice').value;
	var percent = getElement('idDiscountPercent').value;
	var discount = price - (price * percent / 100);
	getElement('idDiscountPrice').value = numberFormat(discount, 2, '.', '');
}

function setDiscountPercent()
{
	var price = getElement('idPrice').value;
	var price2 = getElement('idDiscountPrice').value;
	var discount = ((price - price2) /  price) * 100;
	getElement('idDiscountPercent').value = numberFormat(discount, 4, '.', '');
}


$(document).ready (function() {


	$('#labels ul li a').click(function() {
		$('#labels ul li').removeClass('on');
		$(this).parent().addClass('on');
		return false;
	});

	$('#labels ul li a').click(function() {
			$('.labeldescription').hide();
			switch (this.id) {
				case 'show-opis':
				$('#view-opis').show();
				break;

				case 'show-parametry':
				$('#view-parametry').show();
				break;

				case 'show-pobierz':
				$('#view-pobierz').show();
				break;

				case 'show-wymagania':
				$('#view-wymagania').show();
				break;

				case 'show-opinie':
				$('#view-opinie').show();
				break;


				case 'show-podobne':
				$('#view-podobne').show();
				break;

			}
			return false;
		});


}
);




var zwijanki = new Array();
zwijanki[0] = 'funkcje';
zwijanki[1] = 'system';
zwijanki[2] = 'producer';

function ZwinRozwin(name)
{
	if (getCookie('xZwin'+name) == 'on') setValue = 'off'; else setValue = 'on';
	createCookie('xZwin'+name, setValue);
	setZwinRozwin();
}

function setZwinRozwin()
{
	for(i = 0; i < zwijanki.length; i++)
	{
		if(elementExists('zwin-'+zwijanki[i]))
		{
			if (getCookie('xZwin'+zwijanki[i]) == 'on')
			{
				$('#zwin-'+zwijanki[i]).text('zwiń');
				$('#zwin-'+zwijanki[i]).removeClass('showmore');
				$('#zwin-'+zwijanki[i]).addClass('showless');
				$('#wrap-'+zwijanki[i]).removeClass('short');
			}
			else
			{
				$('#zwin-'+zwijanki[i]).text('rozwiń');
				$('#zwin-'+zwijanki[i]).removeClass('showless');
				$('#zwin-'+zwijanki[i]).addClass('showmore');
				$('#wrap-'+zwijanki[i]).addClass('short');
			}
		}
	}
}
