
	function elem_exists(name) {
		if (get(name)) {
			return 1;
		}
		return 0;
	}
	


	function set_sel_count(form_name,  val) {
		form = get(form_name);
		get(form_name + "_hd_max_count").value = val;
		form.submit();
	}

	//! Added: erase word when jumps letter
	function on_letter(letter){
		if (letter == '0..9') letter = '1';
		get("hd_letter").value = letter;

		var word = get("ed_word");
		if (word) word.value = "";
		
		get("search_panel").submit();
	}
	
	//! Added: erase word and letter when gener jumps
	function on_genre(genre){
		var item = get("hd_genre");
		if(item) {
			item.value = genre;
			var word = get("ed_word");
			var letter =get("hd_letter");
			if (word) word.value = "";
//			if (letter) letter.value = "ВСЕ";
			if (letter) letter.value = lang_all_msg;
			get("search_panel").submit();
		}
	}
	
	function on_check_type() {
		get("search_panel").submit();
	}

	// change html in some contener
	function change_text(span_name, text) {
		span = get(span_name);
		if (span) {
			if (text) {
			   span.innerHTML = text;
			}
		}
	}


	var convert_span = 0;
	function decode_html_quote(str) {
		with (document)
		{
			if ( convert_span == 0 ) {
  				convert_span = body.appendChild(createElement("SPAN"));
		  		convert_span.style.display = 'none';
			}
			convert_span.innerHTML = str;	
			return convert_span.innerHTML;
		}
	}


	//! dynamic title change
	function ChangeTitle(track_name, album_name, alias_name) {
		var res = "";
		if (track_name != "") { res = track_name; }
		if (album_name != "") { 
			if (res != "" ) { res = res + ", " };
			res = res + album_name; 
		}
		if (alias_name != "") { 
			if (res != "" ) { res = res + ", " };
			res = res + alias_name; 
		}
//		document.title = "MP3.RU :: скачать " + decode_html_quote(res);
		document.title = lang_download_msg + decode_html_quote(res);
	}


// for track info form
	var last_selected_track = 0;


	// fill track form
	function track_info_form(track_auto, track_name, track_duration, track_year, track_word, track_music, track_publisher,  track_author_rights, track_ally_rights, alias_name )  {
		change_text('trcinf_track_name', track_name);
		change_text('trcinf_track_word', track_word);
		change_text('trcinf_track_music', track_music);
		change_text('trcinf_track_duration', track_duration);
		change_text('trcinf_track_publisher', track_publisher);
		change_text('trcinf_author_rights', track_author_rights);
		change_text('trcinf_ally_rights', track_ally_rights);
		
		if (track_year != '0000') {
			change_text('trcinf_track_year', track_year);
		} 
		else {
			change_text('trcinf_track_year', "---");
		}
	
		ChangeTitle(track_name, ttl["album_name"], alias_name);

		
	}

	// fill track form
	function crt_track_info_form(track_auto, track_name, track_duration, track_year, track_word, track_music ) {
		track_info_form(track_auto, track_name, track_duration, track_year, track_word, track_music );	
		trc_put_to_cart(track_auto);
	}

	//get information from server
	function get_track_info(track_auto, mode) {
		if (mode) {
			ajaxExecute('?trcinf=' + String(track_auto) + '&javaprefix=crt');
		}
		else {
			ajaxExecute('?trcinf=' + String(track_auto));

		}
//		ajaxCleanup();
	}
	
	// hightlight track
	function select_track(track_auto) {
		var trc_id = "trc_table_";
		if (last_selected_track != 0 ) {
			var item = get(trc_id + last_selected_track);
			if (item) {
				item.bgColor = "#B6B4B4";
			}
		}
		var item = get(trc_id + track_auto)
		if (item) {
			item.bgColor = '#cbcaca';

			last_selected_track = track_auto;
		}
	}
	
	//hightlight current track and get information from server
	function show_track(track_auto, mode) {
		get_track_info(track_auto, mode);
		select_track(track_auto);
		var item = get("track_auto");
		if (item) {
			item.value = track_auto;
		}
	}

	// functions for artist form
	var last_selected_artist;
	
	// hightlight current artist
	function select_artist(performer_auto) {
		if (last_selected_artist) {
			var cornImgL = get("img_l_" + last_selected_artist);
			var cornImgR = get("img_r_" + last_selected_artist);
			cornImgL.src = "/i/tab_l.gif";
			cornImgR.src = "/i/tab_r.gif";
			var item = get('arttag_' + last_selected_artist);
			if (item) {
				item.className = "";
			}
		}
		var item = get('arttag_' + performer_auto);
		if (item) {
			var cornImgL = get("img_l_" + performer_auto);
			var cornImgR = get("img_r_" + performer_auto);
			cornImgL.src = "/i/tab_l_active.gif";
			cornImgR.src = "/i/tab_r_active.gif";
			item.className = "tab_active";
			last_selected_artist = performer_auto;
		}

	}
	
	// artist information from server
	function get_artist_info(performer_auto) {
		ajaxExecute('?artinf=' + performer_auto);
	}
	
	// hightlight and get information from server
	function show_artist(performer_auto) {
		get_artist_info(performer_auto);
		select_artist(performer_auto);
		var item = get("performer_auto");
		if (item) {
			item.value = performer_auto;
		}

	}
	
	// fill artist form with data from server
	function artist_info_form(prf_auto, name, photo_path, biography) {
	
		blank_photo_path 	= 'templates/catalogue/img/blank_photo.jpg';
//		blank_biography 	= 'Извините в данный момент информация об артисте отсутствует';
		blank_biography 	= lang_biography_msg;
		
		var caption = name;
		if (prf_auto != '' && prf_auto != 0 ) {
			caption = '<a href="?performer_auto='+prf_auto+'">' + name + '</a>'
		}
		//name
		change_text('artinf_name', caption );
		// photo
	
		var item = get('artinf_photo');
		if(item) {
			if (photo_path != '') {
				item.src = "/upload/"+photo_path; 			// have photo
				item.alt = name;
			}
			else {
				item.src = blank_photo_path;	// have no photo
				item.alt = "фото";
			}
		}
		
		//biography
		if (biography != '') {
			change_text('artinf_biography', biography); 		// have biography
		}
		else {
			change_text('artinf_biography', blank_biography);	// have no biography
		}
	
		ChangeTitle("", "", name);

		ajaxCleanup();
	}

//artist and track info 
        var track_parent_update = 0;

	function show_track_and_artist_info(track_auto, performer_auto) {
		ajaxExecute('?trcinf=' + track_auto + "&" + 'artinf=' + performer_auto);
		select_artist(performer_auto);
		var item = get("performer_auto");
		if (item) {
			item.value = performer_auto;
		}
	
		select_track(track_auto);
		var item = get("track_auto");
		if (item) {
			item.value = track_auto;
		}
	}

	function alb_put_to_cart(release_auto) {
		var img_file = get('alb_img').getAttribute("clock");
		if (img_file) { 	get("alb_cart_img_" + release_auto).src = '/catalogue/templates/images/' + img_file; }
		ajaxExecute('/cart/cart.fexec?alb_add=' + String(release_auto));
	}

	function trc_put_to_cart(track_auto) {
		var img_file = get('trc_img').getAttribute("clock");
		if (img_file) {	get("trc_cart_img_" + track_auto).src = '/catalogue/templates/images/' + img_file; }
		track_parent_update = 1;
		ajaxExecute('/cart/cart.fexec?trc_add=' + String(track_auto));
	}

	function alb_is_in_cart(release_auto) {
		var alb_el = get("alb_" + release_auto);
		if (alb_el == null) return;
		var trc_count = alb_el.getAttribute("trc_count");
		if (trc_count == null) return;
		ajaxExecute('?alb_in_cart=' + String(release_auto) + "&track_count=" + trc_count + "&r=" + Math.random()  );
	}

//CART ADD CALLBACK
	function _trc_add_ok(track_auto, el, cart_block) {
		var img_el = get("trc_img");
		if (el==null || img_el==null || cart_block==null) return;
		var img_file = img_el.getAttribute("in_cart");
		cart_block.innerHTML = '<img id="trc_cart_img_' + track_auto + '" src="/catalogue/templates/images/' + img_file + '" alt="Трек в корзине">';
	}

	function trc_add_ok(track_auto){
		//alert("TRC_OK")
		get("navbtn_cart").className="active";

		var cart_block = get("trc_cart_block_" + track_auto);
		var el = get("trc_" + track_auto);
		if (cart_block) {
			_trc_add_ok(track_auto, el, cart_block);
		}
		else {
			var ar = document.getElementsByTagName("span");
			var i;
			for (i=0; i<ar.length; i++) {
				if (ar[i].getAttribute('auto') == String("trc_cart_block_" + track_auto) ) {
					_trc_add_ok(track_auto, el, ar[i]);
				}
			}
		}
		if (track_parent_update == 1) {
			var parent = el.getAttribute("alb_parent");
			if (parent == null || get('alb_' + parent) == null ) { ajaxCleanup(); return;}
			alb_is_in_cart(parent);	
		}
		track_parent_update = 0;

	}

	function _alb_add_ok(release_auto, cart_block){
		var img_el = get("alb_img");
		var img_file = img_el.getAttribute("all_in_cart");
		if (img_el==null || cart_block==null) return;
		cart_block.innerHTML = '<img id="alb_cart_img_' + release_auto + '" src="/catalogue/templates/images/' + img_file + '" alt="Все треки в корзине">';
	}


	function alb_add_ok(release_auto){
		var cart_block = get("alb_cart_block_" + release_auto);
		if (cart_block) {
			_alb_add_ok(release_auto, cart_block);
		}
		else {
			var ar = document.getElementsByTagName("span");
			var i;
			for (i=0; i<ar.length; i++) {
				if (ar[i].getAttribute('auto') == String("alb_cart_block_" + release_auto) ) {
					_alb_add_ok(release_auto, ar[i]);
				}
			}
		}
		ajaxCleanup();
	}

	function _alb_in_cart(release_auto, cart_block, status) {
		var img_el = get("alb_img");
		if (img_el==null || cart_block==null) return;
		var img_file = img_el.getAttribute(status);

		if (status == "all_in_cart") {
			cart_block.innerHTML = '<img id="alb_cart_img_' + release_auto + '" src="/catalogue/templates/images/' + img_file + '" alt="Все треки в корзине">';
		}
		
		if (status == "some_in_cart") {
			cart_block.innerHTML = 
			'<a href="javascript:alb_put_to_cart(' + release_auto + ')">' +
			'<img id="alb_cart_img_' + release_auto + '" src="/catalogue/templates/images/' + img_file + '" alt="Несколько треков в корзине">' +
			'</a>';
		}

		if (status == "not_in_cart") {
			cart_block.innerHTML = 
			'<a href="javascript:alb_put_to_cart(' + release_auto + ')">' +
			'<img id="alb_cart_img_' + release_auto + '" src="/catalogue/templates/images/' + img_file + '" alt="Нет треков в корзине">' +
			'</a>';
		}
	}

	function alb_in_cart(release_auto, status) {
		var cart_block = get("alb_cart_block_" + release_auto);
		if (cart_block) {
			_alb_in_cart(release_auto, cart_block, status);			
			return;
		}

		var ar = document.getElementsByTagName("span");
		var i;
		for (i=0; i<ar.length; i++) {
			if (ar[i].getAttribute('auto') == String("alb_cart_block_" + release_auto) ) {
				_alb_in_cart(release_auto, ar[i], status);
			}
		}
		ajaxCleanup();

	}

function ArrowHover(obj,hover) {
	bgcolor = (hover) ? '#cbcaca' : '#B6B6B6';
	obj.style.backgroundColor = bgcolor;
	obj.style.cursor = 'pointer' || 'hand';
}

function resize_track_blocks() {
	var i = 1;
	var maxHeight = 0;
	if(window.opera) delta = 10;
	else if(document.all) delta = 0;
	else delta = -12;
	
	while(cont = get('cont_' + i)) {
		lastblk = get('cont_' + (i + 1));
		maxHeight = (cont.offsetHeight > maxHeight) ? cont.offsetHeight : maxHeight;
		// Set height to each pair of blocks
		if(!(i%2)) {
			for(k = (i - 1); k  < (i + 1); k++) {
				fld = get('fld_' + k);
				fld.style.height = maxHeight + delta + 'px';
			}
			maxHeight = 0;
		}
		// Set height to the last block
		else if((i%2) && !lastblk) {
			fld = get('fld_' + i);
			fld.style.height = maxHeight + delta + 'px';
		}
		i++;
	}
}

function GoTo(href){
	document.location = href;	
	return false;
}


preListenCurrent = false; // указатель на контейнер добавленного плеера
preListenHTML = ''; // содержимое конейнера до замещеия плеером

function preListen(obj,snd_id){
	if (preListenCurrent != false) {
		preListenCurrent.innerHTML = preListenHTML;
	}
	preListenCurrent = obj.parentNode;
	preListenHTML = obj.parentNode.innerHTML;
	playerWidth = 25
	playerHeight = 25
	playerHTML  = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="'+playerWidth+'" height="'+playerHeight+'" align="middle">';
	playerHTML += '<param name="allowScriptAccess" value="sameDomain" />';
	playerHTML += '<param name="movie" value="/catalogue/templates/swf/player.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#a8a7a7" /><param name="wmode" value="transparent" />';
	playerHTML += '<param name="flashvars" value="snd_id='+snd_id+'" />';
	playerHTML += '<embed src="/catalogue/templates/swf/player.swf" flashvars="snd_id='+snd_id+'"quality="high" wmode="transparent" bgcolor="#a8a7a7" width="'+playerWidth+'" height="'+playerHeight+'" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />';
	obj.parentNode.innerHTML = playerHTML;
	return false;
}

function preListen2(obj,snd_id){
	if (preListenCurrent != false) {
		preListenCurrent.innerHTML = preListenHTML;
	}
	preListenCurrent = obj.parentNode;
	preListenHTML = obj.parentNode.innerHTML;
	playerWidth = 23
	playerHeight = 25
	playerHTML  = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="'+playerWidth+'" height="'+playerHeight+'" align="middle">';
	playerHTML += '<param name="allowScriptAccess" value="sameDomain" />';
	playerHTML += '<param name="movie" value="/catalogue/templates/swf/player2.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#a8a7a7" /><param name="wmode" value="transparent" />';
	playerHTML += '<param name="flashvars" value="snd_id='+snd_id+'" />';
	playerHTML += '<embed src="/catalogue/templates/swf/player2.swf" flashvars="snd_id='+snd_id+'"quality="high" wmode="transparent" bgcolor="#a8a7a7" width="'+playerWidth+'" height="'+playerHeight+'" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />';
	obj.parentNode.innerHTML = playerHTML;
	return false;
}


var r_id = Math.random();
r_id = Math.round(r_id*10000);

function sms_popup(track_id) {
  try {
	smswin.close();
  } catch (e){
	// none
  } finally {
	var ajax_str = "http://www.mp3.ru/sms_pay/sms_pay.fexec?track_id=" + track_id + "&ajax=1&no_index=1&r=" + Math.random();
	smswin = window.open("","trcsms"+r_id,'width=600,height=759,status=0,toolbar=0,location=0,menubar=0,directories=0,resizable=1,scrollbars=1');
	popup_body = null;
	ajaxExecute(ajax_str);
	fill_smswin(smswin);
  }
}

function fill_smswin(obj) {
	if(!window.popup_body) {
		setTimeout(function() {
			fill_smswin(obj);
		},10);
	}
	else {
		obj.document.open();
		obj.document.write(popup_body);
		obj.document.close();
	}
}


/*--------------------------------------------------------
Review post
--------------------------------------------------------*/
var need_cpt = false;

function loadOfficePage(add) {
	var params = "mode=send&callback=callbackSend"+ add;
	params +=  "&seed=" + Math.random() * 10000;
//	alert(params);
	makePOSTRequest("/voffice/voffice.fexec", params, callbackSend2);
}

function check_review(text) {
	if( text.length < 25 ) return false;

	var freq = {};
	for( var i = 0; i < text.length; ++i )	
	{
	   var f = freq[text.charAt(i)];	
	   if( f !== undefined ) freq[text.charAt(i)] = ++f;
	    else freq[text.charAt(i)] = 1;
	}
	
	for( var prop in freq )
	{
	  if( freq[prop]*100/text.length > 30 ) return false;	  
	}
	return true;
}

// Send message
function sendReview(release_id)	{
	//var release_name = ttl["album_name"];
	var cpt = get("cptinput");
	var captcha = "";
	if (cpt) { 
		captcha = cpt.value;
		cpt.value = "";
	}
	var el_text = get("review_text");
	if (!el_text) return;
	var text = el_text.value;
	if ( !check_review(text) ) {
		alert(lang_fill_in_text_msg);
		return;
	}
	var params = "mode=add_review&callback=callbackSend&text=" + ruescape(text) + "&release_id=" +
	release_id + "&cpt=" + captcha + "&seed=" + Math.random() * 10000;
	makePOSTRequest("/reviews/", params, callbackSend2);
	//text = lang_review_msg + "'" + release_name + "' (" + release_id + "). " + text;
	//loadOfficePage("&msg=" + ruescape(text) + add);
}

function Pointer(name) {  return get(name); }

function callbackCaptcha(show) {
	var img = document.getElementById("cptimg");
	if (show) img.src = "/cpt/cpt.fexec?mode=voffice_message&seed=" + Math.random(1000);
	var div = document.getElementById("cptdiv");
	div.style.display = show ? "inline" : "none";
	need_cpt = show;
}

function showCaptcha() {
	var img = document.getElementById("cptimg");
	if (! img ) return;
	ajaxExecute("/voffice/voffice.fexec?mode=check&callback=callbackCaptcha");
}

function callbackSend(success, cpt_error) {
	if ( success ) {		
		get("write_review").style.display = "none";
		get("review_sended").style.display = "block";
		location.reload();
	}
	else {
		get("cptimg").src = "http://www.mp3.ru/cpt/cpt.fexec?mode=add_review&seed=" + Math.random(1000);
		if ( cpt_error ) get("cpterror").style.display = "inline";			
		 else alert(lang_review_send_err_msg);
	}
}

function callbackSend2() {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			eval(http_request.responseText);
		} else {
			alert('There was a problem with the request.');
		}
	}
}