//ostatnia modyfikacja: 2008.11.26

var separator=GetAsciiChar(27);

function GetAsciiChar(charcode) {
	var a=charcode . toString(16);
	if (a.length==1)
		a='0'+a;
	return unescape('%'+a);
}

function DelAllFromCart() {
	if (!HttpDelFromCart()) {
		alert("Przepraszamy, ale Twoja przeglądarka nie obsługuje dodawania piosenek do koszyka bez przeładowania strony. Prosimy o poinformowanie o takiej sytuacji administratora tej strony (milimetr88@gmail.com lub marcinbor@o2.pl).\n\nZalecamy zainstalować jedną z nowszych wersji przeglądarki Firefox lub Internet Explorer.");
		return true; //oznacza dla JS, że link ma być przetworzony normalnie
	}	
	else
		return false;
}

function AddToCart(songNo, remove) {
	
	if (!HttpAddToCart(songNo, remove)) {
		alert("Przepraszamy, ale Twoja przeglądarka nie obsługuje dodawania piosenek do koszyka bez przeładowania strony. Prosimy o poinformowanie o takiej sytuacji administratora tej strony (milimetr88@gmail.com lub marcinbor@o2.pl).\n\nZalecamy zainstalować jedną z nowszych wersji przeglądarki Firefox lub Internet Explorer.");
		return true; //oznacza dla JS, że link ma być przetworzony normalnie
	}	
	else
		return false;
}

//var Host=null;
var temp=document.location+"";
var Host=temp.substring(0, temp.lastIndexOf('/'));

if (Host.substring(Host.length-1)=='/')
	Host=Host.substring(0, Host.length-1);

		
function HttpAddToCart(songNo, remove) {
	
	var URL=Host+"/koszyk.php?action=dodaj&produkt="+songNo+"&toUTF";

	if (remove!=null)
		URL+="&usun";
		
	var XMLObj;

	if (!(XMLObj=GetHttpRequest()))
		return false;
	
	
	XMLObj.onreadystatechange = function () {
		if (XMLObj.readyState!=4) return;
		try {
				
			if (XMLObj.status!=200 && XMLObj.status!=304) {
				alert("NIE UDAŁO SIĘ dodać do koszyka (problem z połączenien)");
				return; 
			}
			
			
		}
		catch(e) {
			var key="status";
			if (XMLObj.key == undefined)
				alert("Nie udało się dodać piosenki do koszyka!");
			else {
				alert("Wystąpił błąd: "+e.name+", "+e.message);
			}
				
			return;
		}
		
		XMLHandlerAddToCart(XMLObj, songNo, remove);
		
	}
		
	//alert(URL);
    //window.location=URL;
    //return true;
    
	XMLObj.open("GET", URL);
	XMLObj.send("");
	
	return true; //true oznacza, że stworzono obiekt HttpRequest, a nie że udało się dodać :)
}	
		
function HttpDelAllFromCart() {
	
	var URL=Host+"/koszyk.php?action=delall&toUTF";
		
	var XMLObj;

	if (!(XMLObj=GetHttpRequest()))
		return false;

	
	XMLObj.onreadystatechange = function () {
		if (XMLObj.readyState!=4) return;
		try {
				
			if (XMLObj.status!=200 && XMLObj.status!=304) {
				alert("NIE UDAŁO SIĘ usunąć piosenek z koszyka (problem z połączeniem)");
				return; 
			}
			
			
		}
		catch(e) {
			var key="status";
			if (XMLObj.key == undefined)
				alert("Nie udało się usunąć piosenek z koszyka!");
			else {
				alert("Wystąpił błąd: "+e.name+", "+e.message);
			}
				
			return;
		}
		
		XMLHandlerAddToCart(XMLObj, songNo, remove);
		
	}
		
	//alert(URL);
	XMLObj.open("GET", URL);
	XMLObj.send("");
	
	return true; //true oznacza, że stworzono obiekt HttpRequest, a nie że udało się dodać :)
}	
	
    
    
function handleErr(msg,url,l)
{
	txt="There was an error on this page.\n\n"
	txt+="Error: " + msg + "\n"
	txt+="URL: " + url + "\n"
	txt+="Line: " + l + "\n\n"
	txt+="Click OK to continue.\n\n"
	alert(txt);
	return true;
}
	
	
function XMLHandlerAddToCart(XMLObj, songNo, remove) {
	//alert(XMLObj.responseText);
	
	var Cart=new GetObj('koszyk'); //gets the cell containing the cart
  
    var arr = XMLObj.responseText.split(separator);

    var error = arr[0].charAt(0);
    var redirect = arr[0].charAt(1);
    var refresh_banner = arr[0].charAt(2);
    var errortext = arr[1];
    var responsetext = arr[2];
    
// error message - if the first character in the response is not equal 0
    if (error != '0') { // an error occured
        alert("BLAD!"+error);
        //alert(XMLObj.responseText);
        // the second character is an error number
        switch (error) {
        case '1': // too many songs at all
            alert(errortext);
            //alert("Wybrałeś zbyt dużo piosenek! Przejdź do formularza zamówienia.");
        break;
        case '2': // too many songs having an author
            alert(errortext);
            //alert("Wybrałeś zbyt dużo piosenek autorskich! Teraz możesz zamawiać jedynie piosenki biesiadne");
        break;
        
        default: //unknown error
            //alert("'"+error+"'");
            alert("Wystąpił błąd numer "+error+": "+errortext);
        break;
        }
        
    }
    else {
	
    
    	if (remove==null) { //if it's adding, not removing, hide link and cart button, show cart icon
    		Hide('link'+songNo);
    		Hide('koszyk'+songNo);
    		Hide('koszykB'+songNo, 'inline');
    	}
    	else {
// the third parameter - silent mode: do not show message box with an error message if there is no such object
    		Hide('link'+songNo, 'inline', 1); 
    		Hide('koszyk'+songNo, 'inline', 1);
    		Hide('koszykB'+songNo, null, 1);
    	}
    }
    
    Cart.obj.innerHTML = responsetext; //paste HTML code returned from server (first to characters from the message are diagnostics one)
    
    // the second character says if the user should be redirected (0 or 1)
    if (XMLObj.responseText[1] == '1') {
        top.location=Host + "/?show=koszyk";
    }
    
    if (XMLObj.responseText[2] == '1') {
        RefreshPromBanner();
    }
}

function RefreshPromBanner() {
    
    var URL=Host+"/promocja150za250.php?toUTF";
		
	var XMLObj;

	if (!(XMLObj=GetHttpRequest()))
		return false;
	
	XMLObj.onreadystatechange = function () {
		if (XMLObj.readyState!=4) return;
		try {
				
			if (XMLObj.status!=200 && XMLObj.status!=304) {
				//alert("NIE UDAŁO SIĘ dodać do koszyka (problem z połączenien)");
				return; 
			}
			
			
		}
		catch(e) {
			// var key="status";
			// if (XMLObj.key == undefined)
				// alert("Nie udało się dodać piosenki do koszyka!");
			// else {
				// alert("Wystąpił błąd: "+e.name+", "+e.message);
			// }
				
			return;
		}
		
        //uaktualnienie zawartości bannera
        var PromBanner=new GetObj('div_top_prom');
        PromBanner.obj.innerHTML = XMLObj.responseText;
		
	}
		
    
	XMLObj.open("GET", URL);
	XMLObj.send("");
	
	return true; //true oznacza, że stworzono obiekt HttpRequest, a nie że udało się dodać :)
    
   
}

	
function Hide(objId, hide, silent) {
	
	var Obj=new GetObj(objId);

	if (Obj.obj!=null) {
		if (hide==null)
			Obj.style.display='none';
		else {
			switch(hide) {
			case 'block':
			case 'inline':
				Obj.style.display=hide; break;
			default:
				Obj.style.display='inline'; break;
			}
		}
	}
	else
		if (silent==null)
			alert("Błąd - brak obiektu: '"+objId+"'!\n\nZgłoś ten błąd administratorowi strony!");
		// else
			// alert("Brak: "+objId+"!");

}	

function GetHttpRequest() {
	
	var req = false;
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest && !(window.ActiveXObject))
	{
    	try
		{
			req = new XMLHttpRequest();
        }
		catch(e)
		{
			req = false;
        }
    
	// branch for IE/Windows ActiveX version
    }
	else
		if(window.ActiveXObject) {
	       	try
			{
	        	req = new ActiveXObject("Msxml2.XMLHTTP");
	      	}
			catch(e)
			{
	        	try
				{
	          		req = new ActiveXObject("Microsoft.XMLHTTP");
	        	}
				catch(e)
				{
	          		req = false;
	        	}
			}
		}
	
	return req;
}




function GetObj(id) {
		
  if (document.getElementById)
  {	
//  alert("byId");
  	this.obj = document.getElementById(id);
	if(this.obj!=null)
		this.style = document.getElementById(id).style;
  }
  else if (document.all)
  {
//  alert("doc.all");
	this.obj = document.all[id];
	if(this.obj!=null)
		this.style = document.all[id].style;
  }
  else if (document.layers)
  {
//	alert("layers");
   	this.obj = document.layers[id];
	if(this.obj!=null)
		this.style = document.layers[id];
  }
  else {
	alert("NIE MA TAKIEGO ELEMENTU: "+id);
	this.obj=null;
  }
}


function LoadPage(sitename) {
	
		
	if (!HttpLoadPage(sitename)) {
		alert("Przepraszamy, ale Twoja przeglądarka nie obsługuje odľwieżania strony w tle. Prosimy o poinformowanie o takiej sytuacji administratora tej strony (milimetr88@gmail.com lub marcinbor@o2.pl).\n\nZalecamy zainstalować jedną z nowszych wersji przeglądarki Firefox lub Internet Explorer.");
		return true; //oznacza dla JS, że link ma być przetworzony normalnie
	}	
	else
		return false;
}

function HttpLoadPage(sitename) {

	var URL=Host +"/index2.php?show="+sitename+"&toUTF";
	
	var XMLObj;

	if (!(XMLObj=GetHttpRequest()))
		return false;
	
	
	XMLObj.onreadystatechange = function () {

		if (XMLObj.readyState!=4) return;
		
		try {
			if (XMLObj.status!=200 && XMLObj.status!=304) {
				alert("NIE UDAŁO SIĘ załadować strony (problem z połączenien)");
				return; 
			}
		}
		catch(e) {
			//alert("Wyjątek! "+e.description);
			alert("Wyjątek! "+e+":"+e.description);
		}
		
		XMLHandlerLoadPage(XMLObj, sitename);
	}
	
	//alert(URL);
	XMLObj.open("GET", URL);
	XMLObj.send("");
	
	return true; //true oznacza, że stworzono obiekt HttpRequest, a nie że udało się załadować nową stronę :)
	
}

function XMLHandlerLoadPage(XMLObj, sitename) {
	
	var obj = new GetObj('podstrona');
	obj.obj.innerHTML=XMLObj.responseText;
	
}

