/* do not change */

function init_post_request() {

	this.fn_request = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		this.fn_request = new XMLHttpRequest();
		if (this.fn_request.overrideMimeType) {
			this.fn_request.overrideMimeType('text/html');
		}
	}
	else if (window.ActiveXObject) { // IE
		try {
			this.fn_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				this.fn_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!this.fn_request) {
		alert('Cannot create XMLHTTP instance');
		return false;
	}

}

function post_request(obj, url, parameters) {
	
	obj.open('POST', url, true);
	obj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	obj.setRequestHeader("Content-length", parameters.length);
	obj.setRequestHeader("Connection", "close");

	obj.send(parameters);

}

function build_query(frm) {
	var str = "";
	var element, i = 0;
	while ((element = document.getElementById(frm).elements[i++]) != null) {
		var qc = toQueryComponent(element);
		if (qc != "") str += "&" + qc;
	}
	return str.substring(1);
}

	function toQueryComponent(input) {
		if (!input.name || input.disabled)
			return "";

		var n = urlencode(input.name);

		switch (input.type) {
			case "text":
				case "password":
				case "submit":
				case "hidden":
				return n + "=" + urlencode(input.value);
			case "textarea":
				// normalize line breaks as CR LF pairs as per RFC 1866
				var v = input.value.split(/\r\n|\r|\n/).join("\r\n");
			return n + "=" + urlencode(v);
			case "checkbox":
				case "radio":
				if (!input.checked)
					return "";
			//var v = getRealValue(input);
			var v = input.value;
			if (v === null) v = "on";
			return n + "=" + urlencode(v);
			case "select-one":
				case "select-multiple":
				var nvp = [];
			var opt, i = 0;
			while ((opt = input.options[i++]) != null) {
				if (opt.selected) {
					var v = getRealValue(opt);
					if (v === null) v = opt.text;
					// older versions of IE do not support Array.push
					nvp[nvp.length] = n + "=" + urlencode(v);
				}
			}
			return nvp.join("&");
			default:
			// input types reset, button, image, and file not implemented
			return "";
		}
	}

function urlencode(str) {
	var v;
	try { v = encodeURIComponent(str); } catch (e) { v = escape(str); }
	return v.replace(/%20/g,"+");
}

function getRealValue(input) {
	var attr = input.getAttributeNode("value");
	return (attr && attr.specified) ? input.getAttribute("value") : null;
}

function launch_js(data) {
	// RegExp from prototype.sonio.net

	data = data.replace("<!--", "");
	data = data.replace("-->", "");

	var ScriptFragment = '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)';

	var match    = new RegExp(ScriptFragment, 'img');
	var scripts  = data.match(match);

	if(scripts) {
		var js = '';
		for(var s = 0; s < scripts.length; s++) {
			var match = new RegExp(ScriptFragment, 'im');
			js += scripts[s].match(match)[1];
		}
		eval(js);
	}
}

/* end of do not change  */
var sc_request;

function get_shopping_cart() {

	var url   = "/ajax/shopping_cart.ajx.php";
	var query = "cmd=get_shopping_cart";

	tmp_http_req   = new init_post_request();
	sc_request     = tmp_http_req.fn_request;

	sc_request.onreadystatechange = display_shopping_cart;

	post_request(sc_request, url, query);

}

function display_shopping_cart() {

	if (sc_request.readyState == 4 || sc_request.readyState == "complete") {
		data = sc_request.responseText;
		document.getElementById('shopping_cart').innerHTML = data;
		document.getElementById('shopping_cart').style.display = "block";
	}

}

function update_shopping_cart() {

	var url   = "/ajax/shopping_cart.ajx.php?cmd=update_shopping_cart";
	var query = build_query('charmed_shopping_cart');

	tmp_http_req   = new init_post_request();
	sc_request     = tmp_http_req.fn_request;

	sc_request.onreadystatechange = display_shopping_cart;

	post_request(sc_request, url, query);

}

function close_shopping_cart() {
	document.getElementById('shopping_cart').innerHTML = "";
	document.getElementById('shopping_cart').style.display = "none";
}

function show_newsletter_rego() {
	document.getElementById('newsletter_rego').style.display = 'block';
}

function hide_newsletter_rego() {
	document.getElementById('newsletter_rego').style.display = 'none';
}

var subs_req;

function subscribe_to_newsletter() {

	var url   = "/ajax/newsletter_subscription.ajx.php";
	var query = "subs_name=" + document.getElementById('subs_name').value + "&subs_email=" + document.getElementById('subs_email').value;

	tmp_http_req   = new init_post_request();
	subs_req       = tmp_http_req.fn_request;

	subs_req.onreadystatechange = update_subscription_box;

	post_request(subs_req, url, query);

}

function update_subscription_box() {

	if (subs_req.readyState == 4 || subs_req.readyState == "complete") {
		data = subs_req.responseText;
		if (data.indexOf('Thank you')) {
			alert(data);
		}
		else {
			document.getElementById('newsletter_rego').innerHTML = data;
		}
	}

}

var pro_info_request;

function show_product_info(product_id) {

	var url   = window.location;
	var query = "cmd=product_info&product_id=" + product_id;

	tmp_http_req     = new init_post_request();
	pro_info_request = tmp_http_req.fn_request;

	pro_info_request.onreadystatechange = display_product_details;

	post_request(pro_info_request, url, query);

}

function display_product_details() {
	if (pro_info_request.readyState == 4 || pro_info_request.readyState == "complete") {
		data = pro_info_request.responseText;
		document.getElementById('product_info').innerHTML = data;
		document.getElementById('product_info').style.display = "block";
	}
}

function show_make_info(make_id,url) {
  //alert('inside show_make_info');
  //var url   = window.location;
  var query = "cmd=make_info&make_id=" + make_id;
  
  tmp_http_req     = new init_post_request();
  make_info_request = tmp_http_req.fn_request;

  make_info_request.onreadystatechange = display_make_details;
  // alert('info_req-'+make_info_request+'-url-'+url+'-makeid-'+make_id);
  post_request(make_info_request, url, query);

}
function display_make_details() {
// alert('inside display_make_details');
if(make_info_request.readyState == 1){
//	alert('inside if 1');

  document.getElementById('make_info').innerHTML = '<div style="color:#BC0909;"><i>Loading...</i></div>';
 }

 if(make_info_request.readyState == 4 || make_info_request.readyState == "complete") {
	// alert('inside if 2');
    data = make_info_request.responseText;
    document.getElementById('make_info').innerHTML = data;
    document.getElementById('make_info').style.display = "block";
  }
  /*else{
	      
  
	    document.getElementById(div_id).innerHTML = "Loading...";
	  }*/
}

