function getHTTPObject(){
	if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
	else if (window.XMLHttpRequest) return new XMLHttpRequest();
	else {
		alert("Your browser does not support AJAX.");
		return null;
	}
}

function explode( delimiter, string, limit ) {
	var emptyArray = { 0: '' };
	if ( arguments.length < 2 || typeof arguments[0] == 'undefined' || typeof arguments[1] == 'undefined' ) {
		return null;
	}
	if ( delimiter === '' || delimiter === false || delimiter === null ) {
		return false;
	}
  
	if ( typeof delimiter == 'function' || typeof delimiter == 'object' || typeof string == 'function' || typeof string == 'object' ) {
		return emptyArray;
	}
 
	if ( delimiter === true ) {
		delimiter = '1';
	}
     
	if (!limit) {
		return string.toString().split(delimiter.toString());
	} else {
		var splitted = string.toString().split(delimiter.toString());
		var partA = splitted.splice(0, limit - 1);
		var partB = splitted.join(delimiter.toString());
		partA.push(partB);
		return partA;
	}
}

function selectSpeechElements(el){
	var arr = explode('|', el);
	var str = '';
	var i=0;
	str += 'Musisz najpierw wybrać następujące komponenty:'+"\n";
	for(i=0; i<arr.length; i++){
		str += arr[i]+"\n";
	}
	alert(str);
}


function createLayer(div_id){
	var el = document.getElementById(div_id);
	el.className = 'actionLoaderActive';
	return el;
}

var activeLayer = 0;

function addItem(type_id, product_id){
	if(activeLayer != 0){
		activeLayer.className = 'actionLoader';
		activeLayer.innerHTML = '';
	}
	var layer = createLayer('actionLoader_'+product_id);
	var text = '';
	text += '<div class="actionLoaderHeading">Dodawanie produktu do konfiguratora...</div>';
	text += '<div class="actionloaderBody"><img src="template/images/loading.gif"></div>';
	layer.innerHTML = text;
	activeLayer = layer;
	
	var text = '';
	xmlHttp = getHTTPObject();
	if (xmlHttp != null) {
		var url = "request.php?action=addItem";
		var params = 'type_id='+type_id+'&product_id='+product_id;
		xmlHttp.onreadystatechange = function() {
			if(xmlHttp.readyState==4){
				resp = xmlHttp.responseText;
				if(resp == 'redirect') window.location = 'konfigurator-pc.html';
				else {
					layer.className = 'actionLoaderActiveError';
					text += '<div class="actionLoaderHeading">Dodawanie produktu do konfiguratora...</div>';
					text += '<div class="actionloaderBody">'+resp+'</div>';
					text += '<div style="text-align:right; margin:5px;"><a href="javascript:closeLayer()">[x]</a></div>';
					layer.innerHTML = text;
				}
			}
		}
		xmlHttp.open("POST",url,true);
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.setRequestHeader("Content-length", params.length);
		xmlHttp.setRequestHeader("Cache-Control", "no-cache");
		xmlHttp.setRequestHeader("Connection", "close");
		xmlHttp.send(params);
	}
}

function closeLayer(){
	if(activeLayer != 0){
		activeLayer.className = 'actionLoader';
		activeLayer.innerHTML = '';
		activeLayer = 0;
	}
}

function removeItem(type, id){
	action = confirm('Usunięcie tego podzespołu może spowodować błędy w konfiguracji komputera!');
	if(action){
		xmlHttp = getHTTPObject();
		if (xmlHttp != null) {
			var url = "request.php?action=removeItem";
			var params = 'product_id='+id;
			params += '&type='+type;
			xmlHttp.onreadystatechange = function() {
				if(xmlHttp.readyState==4){
					window.location = 'konfigurator-pc.html';
				}
			}
			xmlHttp.open("POST",url,true);
			xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			xmlHttp.setRequestHeader("Content-length", params.length);
			xmlHttp.setRequestHeader("Cache-Control", "no-cache");
			xmlHttp.setRequestHeader("Connection", "close");
			xmlHttp.send(params);
		}
	}
}
