// Function to create AJAX object
function ajaxObject() {
	var myObject;
	try {
		// Firefox, Opera 8.0+, Safari
		myObject = new XMLHttpRequest();
	} catch (e) {
		// Internet Explorer
		try {
			myObject = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				myObject = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
				alert("Your browser does not support AJAX!");
				return false;
			}
		}
	}
	return myObject;

}

// -------- Dedicated functions ----------

function ajxChangeSV(name, value, reload) {
	// Using POST method
	xmlHttp = new ajaxObject();
	request = baseURL + '/_ajax.php?task=chsv';	// GET params
	params = 'name=' + name + '&value=' + value;				// POST params
	xmlHttp.open("POST", request, false);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
	if (reload) location.reload(true);
}

function listSubCategories(target, parent, selectedValue) {
	xmlHttp = new ajaxObject();
	request = baseURL + '/_ajax.php?task=getsubcatlist&parent=' + parent;
	xmlHttp.open("GET", request, false);
	xmlHttp.send(request);

	sourceData = xmlHttp.responseText;
	sourceData = sourceData.split("\n");
	while (target.length > 0) target.remove(0);	// removing old list

	option = document.createElement('option');
	option.text = '* Top *';
	option.value = parent;
	option.style.background = '#ccffcc';
	try {	// for Firefox, Opera
		target.add(option, null);
	} catch(ex) {	// for IE
		target.add(option);
	}

	for (i = 0; i < sourceData.length - 1; i++) {
		option = document.createElement('option');
		sourceDataRow = sourceData[i].split("|");
		option.text = sourceDataRow[1];
		option.value = sourceDataRow[0];
		if (sourceDataRow[0] == selectedValue) {
			option.defaultSelected = true;
			option.selected = true;
		}
		try {	// for Firefox, Opera
			target.add(option, null);
		} catch(ex) {	// for IE
			target.add(option);
		}
	}
}



function ajxLogin(username, password) {
	// Using POST method
	xmlHttp = new ajaxObject();
	request = baseURL + '/_ajax.php?task=login';
	params = 'user=' + username + '&pass=' + password;	// POST params
	xmlHttp.open("POST", request, false);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
	switch(xmlHttp.responseText){
		case '0': location.reload(true); break;
		case '1': alert ('Incorrect username and/or password. Try again.'); break;
		case '2': alert ('Account expired. Contact Modelzone for account reactivation.'); break;
		default: alert ('Unexpected error. Contact Modelzone.\n\n' + xmlHttp.responseText); break;
	}
}

function ajxLogout() {
	xmlHttp = new ajaxObject();
	request = baseURL + '/_ajax.php?task=logout';
	xmlHttp.open("GET", request, false);
	xmlHttp.send(request);
	location.reload(true);
}

function ajxRefreshCart(o){
	// Using POST method
	xmlHttp = new ajaxObject();
	request = baseURL + '/_ajax.php?task=get_cart';					// GET params
	xmlHttp.open("GET", request, false);
	xmlHttp.send(request);
	o.innerHTML = xmlHttp.responseText;
}

function ajxAddToCart(id, qty, container){
	// Using POST method
	xmlHttp = new ajaxObject();
	request = baseURL + '/_ajax.php?task=add_to_cart';					// GET params
	params = 'id=' + id + '&qty=' + qty;	// POST params
	xmlHttp.open("POST", request, false);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
	ajxRefreshCart(container);
}

function ajxUpdateCart(id, qty, container){
	// Using POST method
	xmlHttp = new ajaxObject();
	request = baseURL + '/_ajax.php?task=update_cart';					// GET params
	params = 'id=' + id + '&qty=' + qty;	// POST params
	xmlHttp.open("POST", request, false);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
	// ajxRefreshCart(container);
	window.location.reload();
}

function ajxRemoveFromCart(id, container) { ajxRemoveFromCart(id, container, false); }
function ajxRemoveFromCart(id, container, refreshPage){
	// Using POST method
	xmlHttp = new ajaxObject();
	request = baseURL + '/_ajax.php?task=remove_from_cart';					// GET params
	params = 'id=' + id;	// POST params
	xmlHttp.open("POST", request, false);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
	if (refreshPage) location.reload(); else ajxRefreshCart(container);
}


function ajxUpdateCartTotals(country, deliveryValue, deliveryHTML, totalHTML){
	xmlHttp = new ajaxObject();
	request = baseURL + '/_ajax.php?task=get_cart_totals&country=' + country;
	xmlHttp.open("GET", request, false);
	xmlHttp.send(request);
	response = xmlHttp.responseText;
	response = response.split("\n");
	deliveryValue.value = response[0];
	deliveryHTML.innerHTML = response[1];
	totalHTML.innerHTML = response[2];
}

function ajxUpdateAddressForm(country, container){
	xmlHttp = new ajaxObject();
	request = baseURL + '/_ajax.php?task=get_address_form&country=' + country;
	xmlHttp.open("GET", request, false);
	xmlHttp.send(request);
	container.innerHTML = xmlHttp.responseText;
}

