var currentdiv="";
var openedHelp=0;

/************************* DRAGGING DIVS CODE *****************/

function Browser() {

  var ua, s, i;

  this.isIE    = false;
  this.isNS    = false;
  this.version = null;

  ua = navigator.userAgent;

  s = "MSIE";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isIE = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  s = "Netscape6/";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  // Treat any other "Gecko" browser as NS 6.1.

  s = "Gecko";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = 6.1;
    return;
  }
}

var browser = new Browser();

// Global object to hold drag information.

var dragObj = new Object();
dragObj.zIndex = 0;

function dragStart(event, id) {

  var el;
  var x, y;

  // If an element id was given, find it. Otherwise use the element being
  // clicked on.

  if (id)
    dragObj.elNode = document.getElementById(id);
  else {
    if (browser.isIE)
      dragObj.elNode = window.event.srcElement;
    if (browser.isNS)
      dragObj.elNode = event.target;

    // If this is a text node, use its parent element.

    if (dragObj.elNode.nodeType == 3)
      dragObj.elNode = dragObj.elNode.parentNode;
  }

  // Get cursor position with respect to the page.

  if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  if (browser.isNS) {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }

  // Save starting positions of cursor and element.

  dragObj.cursorStartX = x;
  dragObj.cursorStartY = y;
  dragObj.elStartLeft  = parseInt(dragObj.elNode.style.left, 10);
  dragObj.elStartTop   = parseInt(dragObj.elNode.style.top,  10);

  if (isNaN(dragObj.elStartLeft)) dragObj.elStartLeft = 0;
  if (isNaN(dragObj.elStartTop))  dragObj.elStartTop  = topStartPositionForDivs;

  // Update element's z-index.

  dragObj.elNode.style.zIndex = ++dragObj.zIndex;

  // Capture mousemove and mouseup events on the page.

  if (browser.isIE) {
    document.attachEvent("onmousemove", dragGo);
    document.attachEvent("onmouseup",   dragStop);
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS) {
    document.addEventListener("mousemove", dragGo,   true);
    document.addEventListener("mouseup",   dragStop, true);
    event.preventDefault();
  }
}

function dragGo(event) {

  var x, y;

  // Get cursor position with respect to the page.

  if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  if (browser.isNS) {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }

  // Move drag element by the same amount the cursor has moved.

  dragObj.elNode.style.left = (dragObj.elStartLeft + x - dragObj.cursorStartX) + "px";
  dragObj.elNode.style.top  = (dragObj.elStartTop  + y - dragObj.cursorStartY) + "px";

  if (browser.isIE) {
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS)
    event.preventDefault();
}

function dragStop(event) {

  // Stop capturing mousemove and mouseup events.

  if (browser.isIE) {
    document.detachEvent("onmousemove", dragGo);
    document.detachEvent("onmouseup",   dragStop);
  }
  if (browser.isNS) {
    document.removeEventListener("mousemove", dragGo,   true);
    document.removeEventListener("mouseup",   dragStop, true);
  }
}


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

function openDiv(id)
{
	
	if(currentdiv!="") document.getElementById(currentdiv).style.top="-1000";
	currentdiv=id;

	for (i=0;i<hiddableSelects.length ;i++ )
	{
		var element=hiddableSelects[i];
		if(document.getElementById(element)) document.getElementById(element).style.visibility="hidden";

		
	}
 
	document.getElementById(id).style.zIndex=2000;

	var scrollTop=document.body.scrollTop;
	document.getElementById(id).style.top=top_position_draggable_divs+scrollTop;

}

function closeDiv(id)
{
 
	document.getElementById(id).style.top="-1000";
	document.getElementById(id).style.zIndex=1;
	
	for (i=0;i<hiddableSelects.length ;i++ )
	{
		var element=hiddableSelects[i];
		if(document.getElementById(element)) document.getElementById(element).style.visibility="visible";
	}

}

function openCloseDraggableDiv(id)
{
 
	var html=document.getElementById("switch_"+id).innerHTML;
	//alert(html);
	
	if(html=="-")
	{
		document.getElementById("inner_"+id).className="hidden";
		document.getElementById("switch_"+id).innerHTML="+";

	}
	else if(html=="+")
	{
		document.getElementById("inner_"+id).className="active";
		document.getElementById("switch_"+id).innerHTML="-";
		
	}

	
	
}

var ns = (navigator.appName.indexOf("Netscape") != -1);
var d = document;
function JSFX_FloatDiv(id, sx, sy)
{
	var el=d.getElementById?d.getElementById(id):d.all?d.all[id]:d.layers[id];
	var px = document.layers ? "" : "px";
	window[id + "_obj"] = el;
	if(d.layers)el.style=el;
	el.cx = el.sx = sx;el.cy = el.sy = sy;
	el.sP=function(x,y){this.style.left=x+px;this.style.top=y+px;};

	el.floatIt=function()
	{
		var pX, pY;
		pX = (this.sx >= 0) ? 0 : ns ? innerWidth : 
		document.documentElement && document.documentElement.clientWidth ? 
		document.documentElement.clientWidth : document.body.clientWidth;
		pY = ns ? pageYOffset : document.documentElement && document.documentElement.scrollTop ? 
		document.documentElement.scrollTop : document.body.scrollTop;
		if(this.sy<0) 
		pY += ns ? innerHeight : document.documentElement && document.documentElement.clientHeight ? 
		document.documentElement.clientHeight : document.body.clientHeight;
		this.cx += (pX + this.sx - this.cx)/8;this.cy += (pY + this.sy - this.cy)/8;
		this.sP(this.cx, this.cy);
		setTimeout(this.id + "_obj.floatIt()", 20);
	}
	return el;
}

var browser = new Browser();

function trim(sString) 
{
	while (sString.substring(0,1) == ' ')
	{
		sString = sString.substring(1, sString.length);
	}
	
	while (sString.substring(sString.length-1, sString.length) == ' ')
	{
		sString = sString.substring(0,sString.length-1);
	}
return sString;
}



function validatePrice(val)
{

	//checking number validation 
	//--------------------------------------------------------- 

	var cur = /^-?\d{1,3}(,\d{3})*(\.\d{1,2})?$/; 
	var anum= /(^-?\d+$)|(^-?\d+\.\d+$)/; 
	var ret = false; 
	
	if(val.indexOf(",")>-1)
	{
		
		val=val.replace(",",".");

	}

	if(val.indexOf(",")>-1) 
	ret = cur.test(val); 
	else 
	ret = anum.test(val); 

	if(!ret) return false;  
	else return true;

}

function is_number(nr)
{
	
	var expr=/\D/g; 
	var result=expr.test(nr);
	
	if(result) return false; 
	else return true;
	
}

function in_array(string, array2)
{
	 
	var r=false;
	for(j=0;j<array2.length;j++)
	{	
		if(array2[j]==string) r=true;
	}

	return r;
}

function getExtensionByName(filename)
{
	
	var text=filename.split(".");
	var len=text.length-1;
	var ext=text[len];

	return ext.toLowerCase();

}

function number_format(number, decimals, dec_point, thousand_sep, p)
{

	var n=(''+(Math.round(number*(p=Math.pow(10,decimals||0)))/p)).split('.');
	for(var i=(n[0]=n[0].split('')).length-3,j=n[0][0]=='-'?1:0; i>j; i-=3)
	{
		n[0].splice(i,0,thousand_sep||',');
	}
	
	var string=n[0].join('')+(n[1]?(dec_point||'.')+n[1]:'');

	if(string.indexOf(",")!=-1)
	{
	var p=string.split(",");
	var l=p.length-1;
	var ext=p[l];
	if(ext.length==1) string+="0";
	}
	else string+=",00";

	return string;

}

function nettoIntoBrutto(nettoId, bruttoId, taxRate)
{

	var nettoval=document.getElementById(nettoId).value;
	
	if(nettoval.indexOf(",")!=-1) nettoval=nettoval.replace(",",".");
	nettoval=nettoval*1;
	
	var newval=nettoval * ((taxRate / 100) + 1);
	var valnow=number_format(newval, 2, ',' , ' ', '^');
	valnow=valnow.replace(" ","");
	document.getElementById(bruttoId).value=valnow;

}

function bruttoIntoNetto(nettoId, bruttoId, taxRate)
{
	
	var bruttoval=document.getElementById(bruttoId).value;
	
	if(bruttoval.indexOf(",")!=-1) bruttoval=bruttoval.replace(",",".");
	bruttoval=bruttoval*1;

	var newval=bruttoval / ((taxRate / 100) + 1);
	var valnow=number_format(newval, 4, ',' , ' ', '^');
	valnow=valnow.replace(" ","");
	document.getElementById(nettoId).value=valnow;
}

function sortparts(sortedby)
{
	
 
	if(document.getElementById('key_sortby')) document.getElementById('key_sortby').value=sortedby;
	freezePartDetailsForSearchForm();
	document.searchpartform.submit();

}

function changePartsAmountPerPage(val)
{
	
	if(document.getElementById('key_perpage')) document.getElementById('key_perpage').value=val;
	
	setNewSearchForParts();
	freezePartDetailsForSearchForm();
	document.searchpartform.submit();
}

function changePageForParts(e,val, maxval)
{
	
	maxval=maxval*1;

	if(window.event) // IE 
	{ 
		keynum = e.keyCode 
	} 
	else if(e.which) // Netscape/Firefox/Opera 
	{ 
		keynum = e.which 
	} 

	if (keynum==13)
	{
		
		var expr=/\D/g;
		var result=expr.test(val); 
		
		if(result || val<1 || val>maxval || trim(val)=='')
		{
			alert("Wpisz wartość od 1 do "+maxval);	
			document.getElementById("currentpageval").focus();
		}
		else
		{
		
			document.getElementById("key_currentpage").value=val;
			showNotificationDiv();
			freezePartDetailsForSearchForm();
			document.searchpartform.submit();
		}

	}
}

function rewindParts(action, curval, maxval)
{
	
	curval=curval*1;
	maxval=maxval*1;
	
	if(action=='start') curval=1;
	else if(action=='previous') curval-=1;
	else if(action=='next') curval+=1;
	else if(action=='end') curval=maxval;

	document.getElementById("key_currentpage").value=curval;
	showNotificationDiv();
	freezePartDetailsForSearchForm();
	document.searchpartform.submit();
}

function showNotificationDiv()
{
	if(document.getElementById('notificationdiv'))
	{
		var top=document.getElementById('notificationdiv').offsetTop;
		
		if (browser.isIE) {
			var y =document.body.scrollTop;
		  }
		  if (browser.isNS) {
			var y = window.scrollY;
		  }

		document.getElementById('notificationdiv').style.top=top+y;
		document.getElementById('notificationdiv').style.visibility='visible';

	}
}

function hideNotificationDiv()
{
	if(document.getElementById('notificationdiv'))
	{
		document.getElementById('notificationdiv').style.top='-1000';
		document.getElementById('notificationdiv').style.visibility='visible';
	}
}

function setNewSearchForParts()
{
	if(document.getElementById('key_newsearch')) document.getElementById('key_newsearch').value="yes";
}

function updateCheckboxesList(action)
{
	
	if(!action) return;
	
	var d=document.resultsform;
	
	showNotificationDiv();

	if(action=='setall')
	{
		
		for(i=0;i<d.elements.length;i++)
		{

			var type=d.elements[i].type;
			var checked=d.elements[i].checked;
			if(type=='checkbox' && !checked) d.elements[i].checked=true;

		}
	}
	
	else if(action=='resetall')
	{
		
		for(i=0;i<d.elements.length;i++)
		{

			var type=d.elements[i].type;
			var checked=d.elements[i].checked;
			if(type=='checkbox' && checked) d.elements[i].checked=false;

		}
	}
	
	else if(action=='invertall')
	{
		
		for(i=0;i<d.elements.length;i++)
		{

			var type=d.elements[i].type;
			var checked=d.elements[i].checked;
			if(type=='checkbox' && checked) d.elements[i].checked=false;
			else if(type=='checkbox' && !checked) d.elements[i].checked=true;

		}
	}

	document.getElementById("checkboxesListSelect").selectedIndex=0;

	hideNotificationDiv();
}

function setRow(id)
{
	
	var d=document.resultsform;
	id="idslist_"+id;
	
	if(!document.getElementById(id)) return;

	var checked=d.elements[id].checked;

	if(checked) d.elements[id].checked=false;
	else if(!checked) d.elements[id].checked=true;

}

function performAction()
{
	
	var index=document.getElementById('performActionSelect').selectedIndex;
	
	if(!document.resultsform)
	{
		alert("Lista wynikowa jest pusta!");
		return;
	}
	if(index<1)
	{
		alert("Nie wybrałeś żadnej akcji");
		return;
	}
	else  
	{
		var d=document.resultsform;
		var ischecked=false;
		var checkedCounter=0;
		showNotificationDiv();

		for(i=0;i<d.elements.length;i++)
		{
			var type=d.elements[i].type;
			var checked=d.elements[i].checked;
			var name=d.elements[i].name;
			
			if(name.indexOf("idslist[]")!='-1' && type=='checkbox' && checked)
			{
				ischecked=true;
				checkedCounter++;
			}

		}
		
		hideNotificationDiv();

		if(!ischecked)
		{
			alert("Nie wybrałeś żadnych danych!");
			return;
		}

		var action=document.getElementById('performActionSelect').options[index].value;
		
		if(action=='deleteclients')
		{
			if(confirm("Czy na pewno chcesz usunąć wybranych klientów?"))
			{
				d.a.value=action;
				d.submit();
			}
		}
		else
		{
			d.a.value=action;
			d.submit();
		}
	}

}

function pressTab(id, preffixid)
{
	
	if(currentdiv!="") 
	{
		if(document.getElementById(currentdiv))
		{
			document.getElementById(currentdiv).style.top="-1000";
			//currentdiv="";
		}
	}

	var maxid=10;
	
	for(i=1;i<=maxid;i++)
	{
		 var idno=preffixid+""+i;
		 if(document.getElementById(idno)) document.getElementById(idno).style.display='none';
		
		var idno="tab_left"+i;
		 if(document.getElementById(idno)) document.getElementById(idno).className='tab_left_off';
		 
			var idno="tab_middle"+i;
		if(document.getElementById(idno)) document.getElementById(idno).className='tab_middle_off';

		var idno="tab_right"+i;
		 if(document.getElementById(idno)) document.getElementById(idno).className='tab_right_off';
	}
	
	var idno=preffixid+""+id;
	if(document.getElementById(idno)) document.getElementById(idno).style.display='block';
	
	var idno="tab_left"+id;
		 if(document.getElementById(idno)) document.getElementById(idno).className='tab_left_on';
		 
			var idno="tab_middle"+id;
		if(document.getElementById(idno)) document.getElementById(idno).className='tab_middle_on';

		var idno="tab_right"+id;
		 if(document.getElementById(idno)) document.getElementById(idno).className='tab_right_on';

	if(document.searchpartform) document.searchpartform.activeTab.value=id;
	if(document.beheerform) document.beheerform.activeTab.value=id;
	
}

function printSite(elementid)
{
	
	if(document.getElementById(elementid))
	{
		popUp(server+"/print_site.php?id="+elementid,"serwiskonsularny",775,500,1);
	}

}

function popUp(urlnow, namenow, widthnow, heightnow, activation) 
{ 
	
	newWindow = window.open(urlnow, namenow, 'width='+widthnow+',height='+heightnow+',toolbar=no,focus=yes,menubar=yes,location=no,scrollbars=yes,resizable=yes,status'); 
	if(activation) newWindow.focus(); 

}


function enlargeImage(id, name)
{
	popUp("enlarge_image.php?id="+id+"&name="+escape(name),"zdjęcie",500,500,1);
}

function CaricaFoto(img)
{
 foto1= new Image();
 foto1.src=(img);
 Controlla(img);
}

function Controlla(img)
{
 if((foto1.width!=0)&&(foto1.height!=0)){
   viewFoto(img);
}

 else
{
   funzione="Controlla('"+img+"')";
   intervallo=setTimeout(funzione,20);
 }
}

function viewFoto(img)
{
 largh=foto1.width+20;
 altez=foto1.height+20;
 stringa="width="+largh+",height="+altez;
 finestra=window.open(img,"",stringa);
}

function resetFiltr()
{
	
	if(document.searchpartform)
	{
		document.searchpartform.key_resetfilter.value='1';
		document.searchpartform.submit();
	}
}

function confClientDel(id)
{
	if(confirm("Czy na pewno chcesz usunąć tego klienta?")) document.location.href="management.php?s=clients&a=deleteclients&idslist="+id;
}

function confDelIP(id)
{
	if(confirm("Czy chcesz zablokować adres IP tego klienta i usunąć go?")) document.location.href="management.php?s=clients&a=delIP&idslist="+id;
}

function freezePartDetailsForSearchForm()
{
}

function validateDate(val)
{

	var expr=/^([0-9]{4})[\-]([0-9]{2})[\-]([0-9]{2})+$/;
	var result=expr.test(val);
	
	if(!result) 
	{
		return false;
	}
	return true;

}

function changeStatus(section, sql_table, sql_column, sql_id, sql_set_value, tdid)
{

	// change image in list

	if(sql_set_value==0) 
	{
		srcnow="images/cancel.gif";
		var sql_value=1;
	}	
	
	else if(sql_set_value==1) 
	{
		srcnow="images/accept.gif";
		var sql_value=0;
	}

	var newcontent="<a href=\"javascript://\" onclick=\"if(confirm('Czy na pewno zmienić status?')) changeStatus('"+section+"', '"+sql_table+"', '"+sql_column+"','"+sql_id+"', '"+sql_value+"', '"+tdid+"')\"><img src='"+srcnow+"' width=16 height=16></a>";
	
	showNotificationDiv();

	$.ajax({
		   
	type: "POST",
  
	url: "/ajax/set_activation.php",
   
	data: "sql_table="+sql_table+"&sql_column="+sql_column+"&sql_id="+sql_id+"&sql_set_value="+sql_set_value,

	success: function(msg)
	{
		
		hideNotificationDiv();
		if(document.getElementById(tdid)) document.getElementById(tdid).innerHTML=newcontent;

	}
	});

}

function getRidPL(text)
{
	text=text.replace("ą","a");
	text=text.replace("ć","c");
	text=text.replace("ę","e");
	text=text.replace("ł","l");
	text=text.replace("ń","n");
	text=text.replace("ó","o");
	text=text.replace("ś","s");
	text=text.replace("ż","z");
	text=text.replace("ź","z");

	text=text.replace("Ą","A");
	text=text.replace("Ć","C");
	text=text.replace("Ę","E");
	text=text.replace("Ł","L");
	text=text.replace("Ń","N");
	text=text.replace("Ó","O");
	text=text.replace("Ś","S");
	text=text.replace("Ż","Z");
	text=text.replace("Ź","Z");
	
	return text;
}

function prepareURL(str)
{
	if(!str) return "";
	str=getRidPL(str);

	var signs=new Array('/',',','.',';','-','?','&','%','!','@','#','$','^','(',')',"'",'"');

	for(i=0;i<signs.length;i++)
	{
		var val=signs[i];
		str=str.replace(val,"");
	}

	str=str.replace(" ","_");
	str=str.replace("__","_");
	str=str.toLowerCase();
	return str;
}

function makeLink(link)
{
	return link;
}

function showDataLoader()
{
	if (browser.isIE) {
		//var y =document.body.scrollTop; // nowszy IE?
		var y =document.documentElement.scrollTop; // stary IE
	  }
	  
	 else { // if (browser.isNS)
		var y = window.scrollY;
	  }

	document.getElementById('dataLoader').style.top=350+y+"px";
	document.getElementById('dataLoader').style.display='block';

}

function hideDataLoader()
{
	document.getElementById('dataLoader').style.display='none';
}

function getCurrentTime()
{
	
	var currentTime=new Date();
	var hours=currentTime.getHours(); 
	var minutes=currentTime.getMinutes();
	var seconds=currentTime.getSeconds();

	if(hours<10) hours="0"+hours;
	if(minutes<10) minutes="0"+minutes;
	if(seconds<10) seconds="0"+seconds;

	var timestr=hours+":"+minutes+":"+seconds;

	if(document.getElementById("currentHourFiller"))
	{
		document.getElementById("currentHourFiller").innerHTML="&nbsp;&nbsp;&nbsp;godzina:&nbsp;"+timestr;
		setTimeout("getCurrentTime()",1000);
	}
}

function setlang(lang)
{
	
	var list=document.getElementById("langslist").value;
	list=list.split(",");

	for(i=0;i<list.length-1;i++)
	{
		var idnow=list[i];
		var nameid="name_"+idnow;
		var separatorid="separator_"+idnow;
		var editorid="editor_"+idnow;

		if(document.getElementById(nameid)) document.getElementById(nameid).style.display="none";
		if(document.getElementById(separatorid)) document.getElementById(separatorid).style.display="none";
		if(document.getElementById(editorid)) document.getElementById(editorid).style.display="none";
	}
	
	var nameid="name_"+lang;
	var separatorid="separator_"+lang;
	var editorid="editor_"+lang;

	if(document.getElementById(nameid)) document.getElementById(nameid).style.display="block";
	if(document.getElementById(separatorid)) document.getElementById(separatorid).style.display="block";
	if(document.getElementById(editorid)) document.getElementById(editorid).style.display="block";

}

function ggAutoValidation()
{
	for(i=0;i<ggValidationList.length;i++)
	{
		var gg=ggValidationList[i];
	
		$.ajax({
		type: "POST",
		url: "/ajax/get_gg_status.php",
		data: "ggnow="+gg,
		success: function(msg)
		{
			
			var data=msg.split("||");
			var ggnow=data[0];
			var statusnow=data[1];

			var idnow="ggid"+ggnow;
			if(document.getElementById(idnow))
			{
				var imgnow="url(img_gg/"+statusnow+".jpg)";
				document.getElementById(idnow).style.backgroundImage=imgnow;
			}
		}
		});
	}
	setTimeout("ggAutoValidation()",30000);
}

function validatePostCode(postcode)
{
	return true; // temporarily disabled!
	var regex = /^[0-9]{2}\-[0-9]{3}$/;
	var result=regex.test(postcode);

	return result;
}

function validateEmail(val)
{
	val=trim(val);
	//var expr=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
	var expr=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w+)+$/;
	var result=expr.test(val);
	return result;
}

function validatePswd(pswd)
{
	if(pswd.length<6 || !/[0-9]/.test(pswd)) return false; 
	else return true;
}

function generatePswd(elementid)
{
  
	var prefix1=Array("do","re","mi","fa","so","la","ro");
	var prefix2=Array("*","#");
	var prefix3=Math.floor(Math.random()*99);
	var prefix4=Array("lo","mi","ru","se","ma");

	var index1=Math.floor(Math.random()*6);
	var index2=Math.floor(Math.random()*6);
	var index3=Math.floor(Math.random()*6);
	var index4=Math.floor(Math.random()*2);
	
	var newpwsd=prefix1[index1]+prefix1[index2]+prefix2[index4]+prefix3+prefix1[index3];
	if(elementid) if(document.getElementById(elementid)) document.getElementById(elementid).value=newpwsd;
}
