function myPopup(windowName, URL, width, height, scrolling) {
	width = width || 500;
	height = height || 460;
	scrolling = scrolling || 0;
	
	var topX = (window.screen.width / 2) - ( width / 2);
	var topY = (window.screen.height / 2) - ( height / 2);
	
	window.open(URL, windowName, 'width=' + width + ',height=' + height +
 ',location=no,resizable=yes,scrollbars=' + scrolling + 
',screenX=' + topX + ',screenY=' + topY);
}

function checkFields(phone, apass, npass, cpass) {
	
	var arr = phone.value.split(' ', 2);
	var k = arr[0];
	var r = arr[1].split('-', 3);							
	
	if ((k.length == 3 && k.substr(0,1) == "+" && k.substr(1) == parseInt(k.substr(1)) && r[0].length == 3 && r[0] == parseInt(r[0]) && r[1].length == 3 && r[1] == parseInt(r[1]) && r[2].length == 3 && r[2] == parseInt(r[2]) )) {
		
		error = 0;
		
	} else {
	
		alert('Poprawny numer telefonu to +YY XXX-XXX-XXX');
		phone.focus();
		error = 1;
		
	}		
	
	if (error == 0) {
	
		if (npass.value != '' || cpass.value != '') {
			if (npass.value != cpass.value) {
				alert('Nowe i powtórzone hasło się różnią.');
				npass.focus();
				error = 1;
			} else {
				if (npass.value.length < 6) {
					alert('Nowe hasło powinno mieć przynajmniej 6 znaków.');
					npass.focus();
					error = 1;
				} else {
					if (apass.value == '') {
						alert('Musisz podać aktualne hasło.');
						apass.focus();
						error = 1;
					} else {
						error = 0;
					}
				}	
			}
		}
		
	}
	
	if (error == 1) {
		return false;
	} else {
		return true;
	}
		
}

function SetCookie(cookieName,cookieValue,nDays) {
 var today = new Date();
 var expire = new Date();
 if (nDays==null || nDays==0) nDays=1;
 expire.setTime(today.getTime() + 3600000*24*nDays);
 document.cookie = cookieName+"="+escape(cookieValue)+ ";expires="+expire.toGMTString();
}

var xmlHttpVote = createXmlHttpRequestObject();

function updateVoteInfo(value) {
	
	var vinfo = document.getElementById("voting-info");
	
	switch (value) {
		case 1 : vinfo.innerHTML = 'Beznadziejne!'; break;
		case 2 : vinfo.innerHTML = 'Słabe'; break;
		case 3 : vinfo.innerHTML = 'Średnie'; break;
		case 4 : vinfo.innerHTML = 'Całkiem dobre'; break;
		case 5 : vinfo.innerHTML = 'Bardzo dobre!'; break;							
		default : vinfo.innerHTML = 'Kliknij w gwiazdkę i zagłosuj!';
	}
			
}

function updateVoteStar(value) {
	
	for (i = 1; i <= 5; i++) {
			if (i <= value) {
				document.getElementById('voting-star-'+i).className = 'voting-star star-1';						
			} else {
				document.getElementById('voting-star-'+i).className = 'voting-star star-0';						
			}
	}
		
}

function setPreviousStars(avg) {
	
	var avgvalue = document.getElementById('avgvalue');
	var vinfo = document.getElementById("voting-info");						
	var c = 0;

	if (avgvalue.value > 0) {
		var dv = avgvalue.value.split(".");
	} else {
		var dv = avg.split(".");
	}
	var dv1 = parseInt(dv[0]);
	var dv2 = parseInt(dv[1]);
		
	if (dv2 >= 1) {
			
		var dv4 = dv1 + 1;
		for (i = 1; i <= 5; i++) {
			
			if (i <= dv1) {
				document.getElementById('voting-star-'+i).className = 'voting-star star-1';
			} else if (i == dv4) {
				document.getElementById('voting-star-'+i).className = 'voting-star star-0'+dv2;
			}	else {
				document.getElementById('voting-star-'+i).className = 'voting-star star-0';
			}
											
		}
									
	} else {
		
		for (i = 1; i <= 5; i++) {
			
			if (i <= dv1) {
				document.getElementById('voting-star-'+i).className = 'voting-star star-1';
			} else {
				document.getElementById('voting-star-'+i).className = 'voting-star star-0';
			}								
											
		}
		
	}
	
	vinfo.innerHTML = 'Kliknij w gwiazdkę i zagłosuj!';
			
}

function setVote(photoid, vote, ip, sessionid) {
	
	var wrk = document.getElementById('counting-average-vote');
	var avg = document.getElementById('average-vote');
	
	var link = "include/dovoting.php?pid="+photoid+"&vote="+vote+"&ip="+ip+"&sessionid="+sessionid;
	
	wrk.style.display = 'inline';
	avg.style.display = 'none';
	
  if (xmlHttpVote)
  
  {
    // próbuje połączyć się z serwerem
    try
    {
      // początkuje odczyt pliku z serwera
      xmlHttpVote.open("GET", link, true);
      xmlHttpVote.onreadystatechange = VotehandleRequestStateChange;
      xmlHttpVote.send(null);

    }
    // w razie niepowodzenia wyświetla komunikat o błędzie
    catch (e)
    {
      //alert("Nie mogę połączyć się z serwerem:\n" + e.toString());
    }
    
  }		

}

function createXmlHttpRequestObject() 
{
  // przechowa odwołanie do obiektu XMLHttpRequest
  var xmlHttp;
  // powinno działać dla wszystkich przeglądarek z wyjątkiem IE6 i starszych
  try
  {
    // próbuje stworzyć obiekt XMLHttpRequest
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  {
    // zakładając, że IE6 lub starsza
    var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
      "MSXML2.XMLHTTP.5.0",
      "MSXML2.XMLHTTP.4.0",
      "MSXML2.XMLHTTP.3.0",
      "MSXML2.XMLHTTP",
      "Microsoft.XMLHTTP");
    // sprawdza każdy prog id aż któryś zadziała
 
    for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) 
    {
      try 
      { 
        // próbuje stworzyć obiekt XMLHttpRequest
        xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
      } 
      catch (e) {}
    }
  }
  // zwraca stworzony obiekt albo wyświetla komunikat o błędzie
  if (!xmlHttp)
    alert("Error during creating XMLHttpRequest object.");
  else 
    return xmlHttp;
}

function VotehandleRequestStateChange() 
{
  // kiedy readyState ma wartość 4, jesteśmy gotowi do odebrania odpowiedzi z serwera
  if (xmlHttpVote.readyState == 4) 
  {
    // kontynuuje tylko, gdy status HTTP ma wartość "OK"
    if (xmlHttpVote.status == 200) 
    {  
      try
      {     
        // przetwarza wiadomość z serwera
        VotehandleServerResponse();
      }
      catch(e)
      {
        // komunikat o błędzie
        alert("Error reading the response: " + e.toString());
      }
    } 
    else
    {
      // wyświetla wiadomość o statusie
      alert("Problem przy pobieraniu danych:\n" + xmlHttpVote.statusText);
    }
  }
}

// obsługuje odpowiedź otrzymaną z serwera
function VotehandleServerResponse()
{

	var wrk = document.getElementById('counting-average-vote');
	var avg = document.getElementById('average-vote');
	var avgvalue = document.getElementById('avgvalue');
	
  // pobiera odpowiedź serwera
  var xmlResponse = xmlHttpVote.responseXML;
  // wyłapywanie potencjalnych błędów przez IE i Operę
  if (!xmlResponse || !xmlResponse.documentElement)
    throw("Niepoprawna struktura XML:\n" + xmlHttpVote.responseText);
  // wyłapywanie potencjalnych błędów przez Firefox
  var rootNodeName = xmlResponse.documentElement.nodeName;
  if (rootNodeName == "parsererror") throw("Niepoprawna struktura XML");
  // pobiera element document pliku XML
  xmlRoot = xmlResponse.documentElement;  

  var responseArray = xmlRoot.getElementsByTagName("response");
  var response = responseArray.item(0).firstChild.data;

 	avg.innerHTML = response;
	avgvalue.value = response;
	wrk.style.display = 'none';
	avg.style.display = 'block';
	  
        
}

function insertEmot(myValue) {
	
	var myField = document.getElementById("comment");
	
	//IE support
	if (document.selection) {
		myField.focus();
		sel = document.selection.createRange();
		sel.text = myValue;
	}
	//MOZILLA/NETSCAPE support
	else if (myField.selectionStart || myField.selectionStart == '0') {
		var startPos = myField.selectionStart;
		var endPos = myField.selectionEnd;
		myField.value = myField.value.substring(0, startPos)
		+ myValue
		+ myField.value.substring(endPos, myField.value.length);
	} else {
		myField.value += myValue;
	}
	
}