var timeoutId;
var TimeoutID;

function getAbsoluteLeft(objectId)
{

	// Get an object left position from the upper left viewport corner

	// Tested with relative and nested objects

	if ( document.getElementById(objectId) == null ) {
		
		alert(document.getElementById(objectId));
		
	}
	
	o = document.getElementById(objectId)

	oLeft = o.offsetLeft            // Get left position from the parent object

	while(o.offsetParent != null) {    // Parse the parent hierarchy up to the document element

		oParent = o.offsetParent    // Get parent object reference
		oLeft += oParent.offsetLeft // Add parent left position
		o = oParent

	}

	// Return left postion

	return oLeft

}

function translate_netto_to_brutto(fildName1, fildName2, formName, fildNameVat, modeFild)
{
		mode = document.forms[formName].elements[modeFild].value;
		if (mode == 1){mode ="+"}
		if (mode == 2){mode ="-"}
		
		
		var fild2 	= document.forms[formName].elements[fildName2].value;
		var tax		= document.forms[formName].elements[fildNameVat].options[document.forms[formName].elements[fildNameVat].selectedIndex].text;
		eval ( "var fild1 = (" + fild2 + ") * (1 "+mode+" (" +tax+ ")/100)");
		Math.round(fild1);
		
		document.forms[formName].elements[fildName1].value = fild1;

}

//zamienia wartościami dwa pola
function change_names(fildName1,fildName2)
{
//	alert (document.getElementById(fildName1).innerHTML);
	a = document.getElementById(fildName1).innerHTML;
	b = document.getElementById(fildName2).innerHTML;
	document.getElementById(fildName1).innerHTML = b;
	document.getElementById(fildName2).innerHTML = a;
}
function getAbsoluteTop(objectId)
{

	if ( document.getElementById(objectId) == null ) {
		
		alert(document.getElementById(objectId));
		
	}
	
	// Get an object top position from the upper left viewport corner

	o = document.getElementById(objectId)
	oTop = o.offsetTop            // Get top position from the parent object

	while( o.offsetParent != null )  { // Parse the parent hierarchy up to the document element

		oParent = o.offsetParent  // Get parent object reference
		oTop += oParent.offsetTop // Add parent top position
		o = oParent

	}

	// Return top position

	return oTop
	
}
	

// funkcja usuwa wszystkie nie numeryczne wartosci w tym przecinki i kropki 

function remove_non_numeric_values(elementValue, keepSign)
{

	// ponizsza klauzula wyrzuca ze stringa wszystko co nie jest cyfra lub kropka/przecinkiem

	convString = elementValue.replace(/[^0-9-]*/g, '');
	
	return convString;

}

// funkcja usuwa wszystkie nie numeryczne wartosci, zmienia przecinki w kropki, 
// usuwa wszystkie kropki oprocz pierwsze, usuwa wszystkie zera z poczatku cyfry

function keep_it_float(elementValue, keepSign)
{

	var sign = 0;
	
	if ( keepSign == null ) {
		
		keepSign = 0;
		
	}
	
	if ( elementValue[0] == "-" ) {
		
		sign = 1;
		
	}

	// ponizsza klauzula wyrzuca ze stringa wszystko co nie jest cyfra lub kropka/przecinkiem

	convString = elementValue.replace(/[^0-9.,]*/g, '');
	
	// wszystkie przecinki zmieniaja sie w kropki

	convString = convString.replace(',', '.');

	// a nastepnie ucinamy wszystkie kropki oprocz pierwszej

	// nie da sie ukryc ze ponizsza kombinacja replace'ow wynika z faktu,
	// iz autor zna regexp na slowo honoru
	// w tym celu pierwsza kropke zmieniamy w literke 'u'

	convString = convString.replace(/[\.]/, 'u');

	// nastepnie wszystie inne kropki usuwamy

	convString = convString.replace('.', '');

	// na koniec literke u przywracamy do bazowej postaci

	convString = convString.replace('u', '.');

	// na koniec wyciac wszystkie zera z poczatku stringi jezeli tylko nie jest to zero
	// poprzedzajace kropke
	
	while ( ((convString[0] == '0') && (convString[1] != '.')) && ((convString[0] == '0') && (convString[1] != null)) ) {

		convString = convString.substring(1, convString.length);

	}
	
	if ( convString[0] == '.' && ( convString[1] == '' || convString[1] == null ) ) {
		
		convString = '0' + convString;
		
	}
		
	if ( keepSign == 1 && sign == 1 ) {
		
		convString = '-' + convString; 
		
	}
	
	return convString;

}

function checkRecl()
{
	
	if ( document.forms['Main'].elements['nazwa_sprzetu'].value.length < 3 ) {
	
		alert('Musisz podac nazwe reklamowanego towaru.');
		
		document.forms['Main'].elements['nazwa_sprzetu'].focus();
		
		return false;
		
	}
	
	if ( document.forms['Main'].elements['numer_seryjny'].value.length < 2 ) {
		
		alert('Musisz podac numer seryjny reklamowanego towaru.');
		
		document.forms['Main'].elements['numer_seryjny'].focus();
	
		return false;
		
	}
	
	return true;
	
}

function show_me_warning(objectId)
{
	
	if ( timeoutId != null ) {
		
		clearTimeout(timeoutId);
		
	}
	
	if ( document.getElementById(objectId) == null ) {
		
		alert('Obiekt nie istnieje: ' + objectId);
		
		return false; 
		
	}
	
	left = getAbsoluteLeft(objectId);
	top = getAbsoluteTop(objectId);
	
	document.getElementById('warning').style.left = (left - 62) + 'px';
	document.getElementById('warning').style.top = (top - 52) + 'px';
	
	document.getElementById('warning').style.display = '';
	
}

function close_my_warning()
{
	
	document.getElementById('warning').style.display = 'none';
	
}

function reset(variable_field, variant) 
{

	document.forms[''+variant+''].elements[''+variable_field+''].checked = 0;

}

function touch(variable_field) 
{

	if ( document.getElementById(variable_field) == null ) {
		
		alert('Unable to find ID: ' + variable_field);
		
		return false;
		
	}
	
	if ( document.getElementById(variable_field).checked == 1 ) {

		document.getElementById(variable_field).checked = 0;

	} else {

		document.getElementById(variable_field).checked = 1;

	}

}

function touch_radio(variable_field, field, formName) 
{
	
	if ( document.getElementById(variable_field) == null ) {
		
		alert('Unable to find ID: ' + variable_field);
		
		return false;
		
	}
	
	var length = document.forms[formName].elements[variable_field].length;
	
	var i;
	
	for ( i = 0 ; i < length ; i++ ) {
		
		if ( document.forms[formName].elements[variable_field][i].value == field ) {
			
			document.forms[formName].elements[variable_field][i].checked = 1;
			
		}
		
	}
	
}

function check_window_and_resize(picId)
{
	
	window_height 	= document.getElementById(picId).height + 80;
	window_width 	= document.getElementById(picId).width + 60;

	window.innerHeight 	= window_height;
  	window.innerWidth 	= window_width;
  	
}


function reload_self(page_name)
{

	setTimeout('reload_window(\''+page_name+'\')', 5000);

}


function reload_window(page_name)
{

	window.location.href = page_name;

}


////////////////////////////
//Menu kategorii
///////////////////////////

var persisteduls=new Object()
var ddtreemenu=new Object()



//////////No need to edit beyond here///////////////////////////

ddtreemenu.createTree=function(treeid, enablepersist, persistdays){
var ultags=document.getElementById(treeid).getElementsByTagName("ul")
if (typeof persisteduls[treeid]=="undefined")
persisteduls[treeid]=(enablepersist==true && ddtreemenu.getCookie(treeid)!="")? ddtreemenu.getCookie(treeid).split(",") : ""
for (var i=0; i<ultags.length; i++)
ddtreemenu.buildSubTree(treeid, ultags[i], i)
if (enablepersist==true){ //if enable persist feature
var durationdays=(typeof persistdays=="undefined")? 1 : parseInt(persistdays)
ddtreemenu.dotask(window, function(){ddtreemenu.rememberstate(treeid, durationdays)}, "unload") //save opened UL indexes on body unload
}
}

ddtreemenu.buildSubTree=function(treeid, ulelement, index){
ulelement.parentNode.className="submenu"
if (typeof persisteduls[treeid]=="object"){ //if cookie exists (persisteduls[treeid] is an array versus "" string)
if (ddtreemenu.searcharray(persisteduls[treeid], index)){
ulelement.setAttribute("rel", "open")
ulelement.style.display="block"
ulelement.parentNode.style.backgroundImage="url("+ddtreemenu.openfolder+")"
}
else
ulelement.setAttribute("rel", "closed")
} //end cookie persist code
else if (ulelement.getAttribute("rel")==null || ulelement.getAttribute("rel")==false) //if no cookie and UL has NO rel attribute explicted added by user
ulelement.setAttribute("rel", "closed")
else if (ulelement.getAttribute("rel")=="open") //else if no cookie and this UL has an explicit rel value of "open"
ddtreemenu.expandSubTree(treeid, ulelement) //expand this UL plus all parent ULs (so the most inner UL is revealed!)
ulelement.parentNode.onclick=function(e){
var submenu=this.getElementsByTagName("ul")[0]
if (submenu.getAttribute("rel")=="closed"){
submenu.style.display="block"
submenu.setAttribute("rel", "open")
ulelement.parentNode.style.backgroundImage="url("+ddtreemenu.openfolder+")"
}
else if (submenu.getAttribute("rel")=="open"){
submenu.style.display="none"
submenu.setAttribute("rel", "closed")
ulelement.parentNode.style.backgroundImage="url("+ddtreemenu.closefolder+")"
}
ddtreemenu.preventpropagate(e)
}
ulelement.onclick=function(e){
ddtreemenu.preventpropagate(e)
}
}

ddtreemenu.expandSubTree=function(treeid, ulelement){ //expand a UL element and any of its parent ULs
var rootnode=document.getElementById(treeid)
var currentnode=ulelement
currentnode.style.display="block"
currentnode.parentNode.style.backgroundImage="url("+ddtreemenu.openfolder+")"
while (currentnode!=rootnode){
if (currentnode.tagName=="UL"){ //if parent node is a UL, expand it too
currentnode.style.display="block"
currentnode.setAttribute("rel", "open") //indicate it's open
currentnode.parentNode.style.backgroundImage="url("+ddtreemenu.openfolder+")"
}
currentnode=currentnode.parentNode
}
}

ddtreemenu.flatten=function(treeid, action){ //expand or contract all UL elements
var ultags=document.getElementById(treeid).getElementsByTagName("ul")
for (var i=0; i<ultags.length; i++){
ultags[i].style.display=(action=="expand")? "block" : "none"
var relvalue=(action=="expand")? "open" : "closed"
ultags[i].setAttribute("rel", relvalue)
ultags[i].parentNode.style.backgroundImage=(action=="expand")? "url("+ddtreemenu.openfolder+")" : "url("+ddtreemenu.closefolder+")"
}
}

ddtreemenu.rememberstate=function(treeid, durationdays){ //store index of opened ULs relative to other ULs in Tree into cookie
var ultags=document.getElementById(treeid).getElementsByTagName("ul")
var openuls=new Array()
for (var i=0; i<ultags.length; i++){
if (ultags[i].getAttribute("rel")=="open")
openuls[openuls.length]=i //save the index of the opened UL (relative to the entire list of ULs) as an array element
}
if (openuls.length==0) //if there are no opened ULs to save/persist
openuls[0]="none open" //set array value to string to simply indicate all ULs should persist with state being closed
ddtreemenu.setCookie(treeid, openuls.join(","), durationdays) //populate cookie with value treeid=1,2,3 etc (where 1,2... are the indexes of the opened ULs)
}

////A few utility functions below//////////////////////

ddtreemenu.getCookie=function(Name){ //get cookie value
var re=new RegExp(Name+"=[^;]+", "i"); //construct RE to search for target name/value pair
if (document.cookie.match(re)) //if cookie found
return document.cookie.match(re)[0].split("=")[1] //return its value
return ""
}

ddtreemenu.setCookie=function(name, value, days){ //set cookei value
var expireDate = new Date()
//set "expstring" to either future or past date, to set or delete cookie, respectively
var expstring=expireDate.setDate(expireDate.getDate()+parseInt(days))
document.cookie = name+"="+value+"; expires="+expireDate.toGMTString()+"; path=/";
}

ddtreemenu.searcharray=function(thearray, value){ //searches an array for the entered value. If found, delete value from array
var isfound=false
for (var i=0; i<thearray.length; i++){
if (thearray[i]==value){
isfound=true
thearray.shift() //delete this element from array for efficiency sake
break
}
}
return isfound
}

ddtreemenu.preventpropagate=function(e){ //prevent action from bubbling upwards
if (typeof e!="undefined")
e.stopPropagation()
else
event.cancelBubble=true
}

ddtreemenu.dotask=function(target, functionref, tasktype){ //assign a function to execute to an event handler (ie: onunload)
var tasktype=(window.addEventListener)? tasktype : "on"+tasktype
if (target.addEventListener)
target.addEventListener(tasktype, functionref, false)
else if (target.attachEvent)
target.attachEvent(tasktype, functionref)
}


//tooltip

function hide_layer()
{

	if ( TimeoutID != null ) {
		
		clearTimeout(TimeoutID);
		setTimeout('go_and_hide()', 200);	
		
	} else {
	
		setTimeout('go_and_hide()', 200);
	
	}

}

function toggle_visibility(elementId, clean)
{
	
	if ( clean == '' ) {
		
		clean = 0;
		
	}
	
	if ( document.getElementById(elementId).style.display == 'none' ) {
		
		unhide(elementId);
		
	} else {
		
		hide(elementId, clean);
		
	}
	
}

function go_and_hide()
{

	var pre = document.getElementById('loading');

	pre.style.display='none';
	pre.innerHTML = "&nbsp;";
	
}

function check_if_good_to_go(formName)
{

	if ( document.forms[formName].elements['block'].value == 0 ) {
		
		return true;
	
	} else {
		
		document.forms[formName].elements['block'].value = 0;

		return false;
		
	}
	
}


function hide(elementId, clean)
{
	
	if ( clean == null ) {
		
		clean = 0;
		
	}
	
	document.getElementById(elementId).style.display = 'none';
	
	if ( clean ) {

		document.getElementById(elementId).innerHTML = '';
		
	}
	
}

function check_hide(hook,elementId)
{
	if ( hook.checked == true) {
		document.getElementById(elementId).style.display = '';
	}
	else { 
		document.getElementById(elementId).style.display = 'none';
	}
	
}

function unhide(elementId)
{
	
	if ( TimeoutID != null ) {
		
		clearTimeout(TimeoutID);
		
	}
	
	document.getElementById(elementId).style.display = '';
	
}

function show_hide(elementId)
{
	if (document.getElementById(elementId).style.display == '') {
		
		hide(elementId);
	} else {
		
		unhide(elementId);
	}
}

function hide_autofield_sec(variant, fieldName, clean)
{
	
	if ( clean == 'null' ) {
		
		clean = 0;
		
	}
	
	if (variant == 1) {
	
		hide(fieldName, clean);
		
	} else {
	
		TimeoutID = setTimeout('hide_autofield_sec(1, \''+fieldName+'\', '+clean+')', 250);
		
	}
	
}


function set_tooltip_position(tooltipNameId, tooltipParentId, korektaTop, korektaLeft, toolTipWidth)
{
	//if (tooltipParentId == null) {
		tooltipParentId = 'tool_tip_pozition_span';
	//}
	//if (korektaTop == null) {
		korektaTop = '200';
	//}
	//if (korektaLeft == null) {
		korektaLeft = '500';
	//}
		
	var x, y;

//	x = getAbsoluteLeft(tooltipParentId);
//	y = getAbsoluteTop(tooltipParentId);
	
	x = 0;
	y = 0;
	
	document.getElementById(tooltipNameId).style.left = x + korektaLeft + 'px';
	document.getElementById(tooltipNameId).style.top = y + korektaTop + 'px';
	
	document.getElementById(tooltipNameId).style.width = toolTipWidth + 'px';
		
}


function send_picture_to_server()
{
	
	advAJAX.submit(document.getElementById('pic_uploader'), { 
		
		onError : function(obj) { 
			
			alert("Error: " + obj.status); 
	
		},
		
		onFatalError : function(obj) { 
			
			alert("Error: " + obj.status); 
	
		},
		
		onTimeout : function(obj) { 
			
			alert("Error: " + obj.status); 
	
		}
		
	});
	
}