var http_request = false;
var icart_checkboxes_html = new Array();
var arr_of_check_boxes = new Array();
var preview_blocks_cache = {};
var num = 1;
var max_page = 5;

function makePOSTRequest(url, parameters) {
	http_request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType)
		{
			http_request.overrideMimeType('text/html');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_request) {
		return false;
	}
	http_request.onreadystatechange = alertContents;
	http_request.open('POST', url, true);
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", parameters.length);
	http_request.setRequestHeader("Connection", "close");
	http_request.send(parameters);
}

function alertContents()
{
	if (http_request.readyState == 4)
	{
		if (http_request.status == 200)
		{
			try
			{
				//alert(http_request.responseText);
				var answer = eval("new Array(" + http_request.responseText + ")");
				res = answer.shift();
				if (typeof(res['page_id']))
				{
					switch (res['page_id'])
					{
						case 'purchased_page':
						case 'prelistened_page':
						case 'searches_page':
							ajax_preview_page_result(res);
							break;
						case 'ajax_icart_page':
							ajax_icart_result(res);
							break;
					}
				}
			}
			catch (e)
			{
				//alert(e.name + ": " + e.message);
				/*if (e instanceof EvalError)
       				 alert(e.name + ": " + e.message);
				else if (e instanceof RangeError)
       				 alert(e.name + ": " + e.message);
				else if (e instanceof SyntaxError)
					alert(e.name + ": " + e.message);
				else alert(e);*/
			}
		}
		else
		{
			//alert('There was a problem with the request.');
		}
	}
}

function ajax_preview_page_result(res)
{
	content = document.getElementById(res['page_name']);
	content.innerHTML = unescape(res['content']);
	if (res['page_num'] && res['page_id'])
	{
		if (!preview_blocks_cache[res['page_id']])
			preview_blocks_cache[res['page_id']] = {};
		preview_blocks_cache[res['page_id']][res['page_num']] = unescape(res['content']);
	};
}

function ajax_icart_result(rez)
{
	for (i in arr_of_check_boxes)
		arr_of_check_boxes[i].innerHTML = icart_checkboxes_html[i];
	arr_of_check_boxes = new Array();

	icart_checked = rez['icart_checked'];
	icart_html = rez['icart_html'];
	error_mes = (rez['icart_error']) ? unescape(rez['icart_error']): "";

	if (error_mes)
		alert(error_mes);
	login_mes = (rez['login_error']) ? unescape(rez['login_error']): "";

	test = (rez['test']) ? unescape(rez['test']): "";
	if (test)
		alert(test);

	closeWin("tracks_added");

//	{
		for (i = 0; i < form.elements.length; i++)
			if ((form.elements[i].type == 'checkbox') && (form.elements[i].value))
			{
				form.elements[i].checked = false;
				for (j = 0; j < icart_checked.length; j++)
					if ((form.elements[i].value == icart_checked[j]))
						form.elements[i].checked = true;
			}
//	}

	if (login_mes)
	{
		dologin = window.confirm(login_mes);
		if (dologin)
			window.location.href = "/Registration/";
	}
		icart = document.getElementById( "small_icart" );
		icart.innerHTML = unescape(icart_html);
		hide_btn_add_to_icart();
}

function hide_btn_add_to_icart()
{
	btn = document.getElementById("btn_add_to_icart");
	if (btn)
		btn.style.visibility = 'hidden';
}

function ajax_preview_block_page(base_url, page_num, page_id)
{
	tmp = page_num.split("=");
	if (tmp[1] > max_page)
	{
		tmp[1] = (num == 1) ? max_page : 1;
		page_num = tmp.join("=");
	};
	num = tmp[1];

	if (!preview_blocks_cache[page_id] || preview_blocks_cache[page_id] && !preview_blocks_cache[page_id][num])
	{
		action = base_url + "functionalities/ajax_preview_block.php";
		request = page_num + "&page_id=" + page_id;
		makePOSTRequest(action, request);
	}
	else
	{
		content = document.getElementById(page_id);
		content.innerHTML = preview_blocks_cache[page_id][num];
	}
	return false;
}

function add_to_icart( one_track, el )
{
	if (arr_of_check_boxes.length)// ���� �� ����� ����� �� �������� �������, �� �������
		return false;

	openWin("tracks_added");
	form = document.forms["id_addtoicart"];
	arr_to_send = new Array();
	if (el)
		el_parent_id = el.parentNode.id;
	if ( !one_track )
	{
		for (var i = 0; i < form.elements.length; i++)
		{
			if ((form.elements[i].type == 'checkbox') && (form.elements[i].value))
			{
				arr_to_send.push(form.elements[i].name + "=" + (form.elements[i].checked ? form.elements[i].value : '0'));
				tmp_parent_id = form.elements[i].parentNode.id;
				if (!el || el && el_parent_id == tmp_parent_id)
					arr_of_check_boxes[i] = document.getElementById(tmp_parent_id);
			};
		};
		for (i in arr_of_check_boxes)
		{
			icart_checkboxes_html[i] = arr_of_check_boxes[i].innerHTML;
			arr_of_check_boxes[i].innerHTML = '<span class="small gray">Wait...</span>';
		}
	}
	else
	{
		if (track = document.getElementById( "track_id" ))
			arr_to_send.push( track.name + "=" + track.value );
	}
	makePOSTRequest(form.action, arr_to_send.join("&"));
	return false;
}

function ajax_timer(element_id, object_name, page_name)
{
	this.element_id = element_id;
	this.object_name = object_name;
	this.progress_left_cell = page_name + 'progress_left_cell';
	this.progress_right_cell = page_name + 'progress_right_cell';
	this.max_pb_pos = 170;
	this.tick_time = 200;
	this.tick_speed = 5;
	this.current_page = 1;
	this.cur_progress_bar_pos = 0;
	this.timer_id = 0;
	this.max_page_count = 5;

	this.next_page_click = function()
	{
		but = document.getElementById(element_id);
		but.onclick();
	}
	this.start_timer = function()
	{
		func_name = this.object_name + '.progress_bar_tick()';
		if (this.timer_id)
			clearInterval(this.timer_id);
		this.cur_progress_bar_pos = 1;
		this.timer_id = setInterval(func_name, this.tick_time)
	}
	this.progress_bar_tick = function()
	{
		this.cur_progress_bar_pos += this.tick_speed;
		if (this.cur_progress_bar_pos >= this.max_pb_pos)
		{
			this.cur_progress_bar_pos = 1;
			this.next_page_click();
		}
		left_cell = document.getElementById(this.progress_left_cell);
		right_cell = document.getElementById(this.progress_right_cell);
		left_cell.width = parseInt(this.cur_progress_bar_pos) + 1;
		right_cell.width = this.max_pb_pos - parseInt(this.cur_progress_bar_pos) + 1;
	}
}

function closeWin(k)
{
	var win = document.getElementById(k);
	var win_bg = document.getElementById('win_bg');
	win.style.display = "none";
	win_bg.style.display = "none";
}

function openWin(k)
{
	var win = document.getElementById(k);
	var win_bg = document.getElementById('win_bg');
	try
	{
		win.style.display = "table";
	}
	catch (error)
	{
		win.style.display = "block";
	};
	win_bg.style.display = "block";
}
