/********************ОТПРАВКА***************************/
var genre;
var country;
var bitrate;
var page_num;
var search_word = "";
var favorite = "";
/*******************************************************/
/*********************БУФЕР*****************************/
var lastgenre = document.getElementById("g");
var lastcountry = document.getElementById("c");
var lastradio;
var lastpage;
var lastcurrent;
var lasttotal;
/*******************************************************/

function sel(obj){
	switch(obj.id.charAt(0)){
		//Выбор жанра
		case "g":{
			if(lastgenre){ lastgenre.className = ""; }
			obj.className = "active";
			genre = obj.id.slice(1);
			lastgenre = obj;
			page_num = "";
			search_word = "";
			favorite = "";
			lastpage = null;
			info_bar(obj,null);
			change_fav(null);
			ajax_send();
		}break;
		//Выбор страны
		case "c":{			if(lastcountry){ lastcountry.className = ""; }
			obj.className = "active";
			country = obj.id.slice(1);
			lastcountry = obj;
			page_num = "";
			search_word = "";
			favorite = "";
			lastpage = null;
			info_bar(null, obj);
			change_fav(null);
			ajax_send();
		}break;
		//Выбор радио
		case "r":{
			if(lastradio && document.getElementById(lastradio.id)){ document.getElementById(lastradio.id).className = ""; }
			obj.className = "active";
			screen_info(obj);
			del_fav_playlist();
			lastradio = obj;
			fav_playlist();
		}break;
		//Выбор страницы
		case "p":{

			if(obj.id!="pback" && obj.id!="pforw"){
			page_num = obj.innerHTML;
			}
			else{
				if(obj.id=="pback" && lastcurrent>1){page_num=lastcurrent-1;}
				if(obj.id=="pforw" && lastcurrent<lasttotal){page_num=lastcurrent+1;}
			}
			lastpage = obj;
			ajax_send();

		}break;

	}

}

function pager(total,current){
	var spec = 0;
	/***********************************************************/
	if(total>1){
		document.getElementById("pager").style.display = "block";
		// обнуление страниц
		document.getElementById("p1").innerHTML = ""; document.getElementById("p1").style.display = "none"; document.getElementById("p1").className = "";
		document.getElementById("p2").innerHTML = ""; document.getElementById("p2").style.display = "none"; document.getElementById("p2").className = "";
		document.getElementById("p3").innerHTML = ""; document.getElementById("p3").style.display = "none"; document.getElementById("p3").className = "";
		document.getElementById("p4").innerHTML = ""; document.getElementById("p4").style.display = "none"; document.getElementById("p4").className = "";
		document.getElementById("p5").innerHTML = ""; document.getElementById("p5").style.display = "none"; document.getElementById("p5").className = "";
		//сокрытие стрелок
		if(current==1){
			document.getElementById("pback").style.display = "none";  }
		else{
			document.getElementById("pback").style.display = "inline"; }
		if(current==total){
			document.getElementById("pforw").style.display = "none"; }
		else{
			document.getElementById("pforw").style.display = "inline"; }
		//инициализация коэфициента
		if(current == 1){ spec=2; }
		if(current == 2){ spec=1; }
		if(total>=5){
			if(current == total){ spec=-2; }
			if(current == total-1){ spec=-1; }
		}
		//инициализация начальных значений
		if(spec+current - 2>0 && spec+current - 2 <= total){
			document.getElementById("p1").style.display = "inline";
			document.getElementById("p1").innerHTML = spec+current - 2;}
		if(spec+current - 1>0 && spec+current - 2 <= total){
			document.getElementById("p2").style.display = "inline";
			document.getElementById("p2").innerHTML = spec+current - 1;}
		if(spec+current <= total){
			document.getElementById("p3").style.display = "inline";
			document.getElementById("p3").innerHTML = spec+current;}
		if(spec+current + 1 <= total){
			document.getElementById("p4").style.display = "inline";
			document.getElementById("p4").innerHTML = spec+current + 1;}
		if(spec+current + 2 <= total){
			document.getElementById("p5").style.display = "inline";
			document.getElementById("p5").innerHTML = spec+current + 2;}
		//выдиление активной страницы
		switch(current){

			case parseInt(document.getElementById("p1").innerHTML):{ document.getElementById("p1").className = "active"; }break;
			case parseInt(document.getElementById("p2").innerHTML):{ document.getElementById("p2").className = "active"; }break;
			case parseInt(document.getElementById("p3").innerHTML):{ document.getElementById("p3").className = "active"; }break;
			case parseInt(document.getElementById("p4").innerHTML):{ document.getElementById("p4").className = "active"; }break;
			case parseInt(document.getElementById("p5").innerHTML):{ document.getElementById("p5").className = "active"; }break;

		}

	}
	else{
		document.getElementById("pager").style.display = "none";
	}

}

function ajax_send(){

	// Старт прелоадера
	start_preload();
	JsHttpRequest.query(
  		ajax_path, // backend address
  		{
		'genre': genre,
		'country': country,
		'bitrate': bitrate,
		'page_num': page_num,
		'search': search_word,
		'favorite': favorite,
		'product_name': product_name
		}, // parameters
  		function(result, errors) {

			if(errors){}

/*			if(result["res"] == "error"){
                document.getElementById("radio_status").innerHTML = "Произошла ошибка №"+result["err_num"];
            }
*/
				//вывод станций и жанров
				if(result["st_country"])
				{
					document.getElementById("cuntry").innerHTML = all_country + result["st_country"];
					count(result["count_genre"], result["count_country"], result["station_count"]);
                    if(lastcountry.id == "c" || search_word.length > 1 || favorite.length > 1)
                    {
                        document.getElementById("c").className = "active";
                        //для того, чтобы сдвинуть скролл к акти
                        active_scroll(0,'cuntry');
                    }
                    //двигаем скролл к активному элементу, если переслан номер активной записи
                    if (result["active_country"])
                        active_scroll(result["active_country"],'cuntry');
				}

				if(result["st_genre"])
				{
					document.getElementById("genre").innerHTML = all_genre + result["st_genre"];
					count(result["count_genre"], result["count_country"], result["station_count"]);
                    if(lastgenre.id == "g" || search_word.length > 1 || favorite.length > 1)
                    {
                        document.getElementById("g").className = "active";
                        //для того, чтобы сдвинуть скролл на самый верх
                        active_scroll(0,'genre');
                    }
                    //двигаем скролл к активному элементу, если переслан номер активной записи
                    if (result["active_genre"])
                    {
                        active_scroll(result["active_genre"],'genre');
                    }
				}

			//Реакция если пришли радиостанции
			if(result["station_count"]>0 && result["res"] == "success")
			{				//вывод количества найденных станций
				//document.getElementById("count_selected").innerHTML = result["station_count"];
				//вывод самих станций
				document.getElementById("radio_list").innerHTML = result["station"];
				//вывод страниц
				pager(parseInt(result["page_num_label"]), parseInt(result["page_now_label"]));
				lastcurrent = parseInt(result["page_now_label"]);
				lasttotal = parseInt(result["page_num_label"]);
				//вывод информации
				//document.getElementById("radio_status").innerHTML = info_good;
				//установка скролла в верхнее положение
				document.getElementById("radio_list").scrollTop = 0;
				//вывод количества жанров, стран, радиостанций
				count(result["count_genre"], result["count_country"], result["station_count"]);
				//выдиление активной станции
				current_station();
				//подсветка "все жанры", "все страны"
				select_current();
			}
			// Реакция если не пришли радиостанции
			else if(result["res"] == "null"){

				document.getElementById("pager").style.display = "none";
				//document.getElementById("radio_status").innerHTML = info_bad;
				document.getElementById("radio_list").innerHTML = station_empty;
			}
			// Реакция если не пришло ничего
			if(result["res"] == "no_property"){
				document.getElementById("radio_list").innerHTML = all_change;
				document.getElementById("pager").style.display = "none";
			}

			// Остановка прелоадера
			stop_preload();

		// This function will be called when result is ready.
     	// Suggest the most popular word as query.
     	//autocomplete_query(result["first"]["name"]);
     	// Draw "suggestions" to query.
     	//show_suggestions (result);

		}
	);
}

//ПОИСК
function send_search(code){
	if(document.getElementById("search").value.length >= 3 && (code == "13" || code == "send")){
		search_word = document.getElementById("search").value;
		document.getElementById("info_bar_genre").innerHTML = info_bar_text;
		document.getElementById("info_bar_genre").title = info_bar_text;
		document.getElementById("info_bar_country").innerHTML = info_bar_text;
		document.getElementById("info_bar_country").title = info_bar_text;
		country = "";
		genre = "";
		page_num = "";
		favorite = "";
		lastgenre = document.getElementById("g");
        lastcountry = document.getElementById("c");
		change_fav(null);
		ajax_send();
	}
}

//Выведение информации о радиостанции на экран
function screen_info(obj){

		JsHttpRequest.query(
		  ajax_info_path,              // backend address
		  { 'id_station': obj.id.replace(/r/g,""), 'product_name': product_name }, // parameters
		  function(result, errors) {

			try{
				////////////////////////////////RESET INFO STATE//////////////////////////////////////////
				//document.getElementById("radio_info").innerHTML = WMState[status_tmp];
				//////////////////////////////////GENRE///////////////////////////////////////////////////
				if(result["station_info"]["gnrname"].length>27){
					document.getElementById("radio_genre").innerHTML = result["station_info"]["gnrname"].substr(0,25)+"...";
				}
				else{document.getElementById("radio_genre").innerHTML = result["station_info"]["gnrname"];}
				document.getElementById("radio_genre").title = result["station_info"]["gnrname"];

				/////////////////////////////////COUNTRY//////////////////////////////////////////////////
				/*if(result["station_info"]["cntrname"].length>27){
					document.getElementById("radio_country").innerHTML = result["station_info"]["cntrname"].substr(0,25)+"...";
				}
				else{*/document.getElementById("radio_country").innerHTML = result["station_info"]["cntrname"];//}
				document.getElementById("radio_country").title = result["station_info"]["cntrname"];

				/////////////////////////////////BITRATE//////////////////////////////////////////////////
				if(result["station_info"]["bitrate_str"]){ document.getElementById("bitrates").innerHTML = result["station_info"]["bitrate_str"]; }

				/////////////////////////////////RADIOSTATION/////////////////////////////////////////////
				/*if(result["station_info"]["name"].length>35){
					document.getElementById("station_name").innerHTML = result["station_info"]["name"].substr(0,35)+"...";
				}
				else{*/document.getElementById("station_name").innerHTML = result["station_info"]["name"];//}
				document.getElementById("station_name").title = /*result["station_info"]["id"]+". "+*/result["station_info"]["name"];
				//document.getElementById("station_name").href = result["station_info"]["url_site"];
				/////////////////////////////////FAVORITE/////////////////////////////////////////////////
				document.getElementById("favstar").style.display = "inline";
			}catch(err){}
		  }
		);
}
// Подсчет количества элементов для выборки (жанры,страны,радиостанции)
function count(count_genre, count_country, total){
	try{
		if(!total){ total = 0; }
		if(!count_genre){ count_genre = 0; }
		if(!count_country){ count_country = 0; }
		document.getElementById("genre_count").innerHTML = "("+count_genre+")";
		document.getElementById("country_count").innerHTML = "("+count_country+")";
		document.getElementById("radio_count").innerHTML = "("+total+")";
	}catch(err){}
}
// Заполнение breadcrumbs
function info_bar(genre, country){
	try{
		if (!genre) genre = document.getElementById(lastgenre.id);
		if(genre)
		{
			var tmp = genre.getElementsByTagName("span");
			if(tmp[0].innerHTML.length>11){
				document.getElementById("info_bar_genre").innerHTML = tmp[0].innerHTML.substr(0,10)+"...";
			}
			else{document.getElementById("info_bar_genre").innerHTML = tmp[0].innerHTML;}
			document.getElementById("info_bar_genre").title = tmp[0].innerHTML;
		}
		if (!country) country = document.getElementById(lastcountry.id);
        if(country)
        {
			var buf = country.getElementsByTagName("span");
			/*if(buf[0].innerHTML.length>11){
				document.getElementById("info_bar_country").innerHTML = buf[0].innerHTML.substr(0,10)+"...";
			}
			else{*/document.getElementById("info_bar_country").innerHTML = buf[0].innerHTML;//}
			document.getElementById("info_bar_country").title = buf[0].innerHTML;
		}
	} catch(err){}
}

// Кнопки перелистывания станций
function change_station(obj){

	try{
		switch(obj.id){
			case "back":{
				if(lastradio && document.getElementById(lastradio.id).previousSibling && document.getElementById(lastradio.id)){
					document.getElementById(lastradio.id).className = "";
					document.getElementById(lastradio.id).previousSibling.className = "active";
					del_fav_playlist();
					lastradio = document.getElementById(lastradio.id).previousSibling;
					fav_playlist();
					screen_info(lastradio);
					document.getElementById("radio_list").scrollTop-=25;
					//вставить функцию для воспроизведения
				    select_channel(lastradio.id.slice(1));
				}
			}break;
			case "forward":{
				if(lastradio && document.getElementById(lastradio.id).nextSibling && document.getElementById(lastradio.id)){
					document.getElementById(lastradio.id).className = "";
					document.getElementById(lastradio.id).nextSibling.className = "active";
					del_fav_playlist();
					lastradio = document.getElementById(lastradio.id).nextSibling;
					fav_playlist();
					screen_info(lastradio);
					document.getElementById("radio_list").scrollTop+=25;
					//вставить функцию для воспроизведения
                    select_channel(lastradio.id.slice(1));
				}
			}break;
		}
	}
	catch(err){
	}
}

// Скролл к активному элементу
function active_scroll(num,type){
    var objDiv = document.getElementById(type);
    var delta_height = 0;
    var IE7 = navigator.userAgent.indexOf("MSIE 7.0");
    var IE6 = navigator.userAgent.indexOf("MSIE 6.0");
    var as = parseInt(objDiv.getElementsByTagName("li")[0].offsetHeight);
    for(i=0;i<num;i++){
        element_height = parseInt(objDiv.getElementsByTagName("li")[i].offsetHeight);
        //IE7>0||IE6>0?delta_height+=(element_height-1):
        if (IE7>0 && as == 34)
        {
            delta_height+=(element_height+1);
        }
        else
        {
            delta_height+=element_height;
        }
    }
    objDiv.scrollTop = delta_height;
}

// Функция сброса жанров и стран
function resets(obj){
	try{
		if (!(search_word.length > 1 || favorite.length > 1))
		{
    		switch(obj.id){
    			case "reset_genre":{
    				genre = "";
    				lastgenre = document.getElementById("g");
    				ajax_send();
    				info_bar(document.getElementById("g"),null);
    			}break;
    			case "reset_country":{
    				country ="";
    				lastcountry = document.getElementById("c");
    				ajax_send();
    				info_bar(null,document.getElementById("c"));
    			}break;
    		}
		}
	}
	catch(err){}
}

// Функция закрытия всплывающего окна при отсутствии плагина WMP
function close_window(obj){

	document.getElementById(obj).style.display = "none";
	document.getElementById("popup").style.display = "none";

}
// Функция открытия всплывающего окна при отсутствии плагина WMP
function open_window(obj){

	document.getElementById(obj).style.display = "block";
	document.getElementById("popup").style.display = "block";
	document.getElementById("popup").style.height = (document.body.offsetHeight - 21)+"px";
}
// Функция переключения языков
function language(obj){

	switch(obj){

		case "ru":{ document.getElementById("flag").src = "images/flags/ru.gif" }break;
		case "en":{ document.getElementById("flag").src = "images/flags/gb.gif" }break;
	}
	close_window("lan_win");

}
// Функция запоминает выбранную станцию
function current_station(){

	try{
		if(lastradio && document.getElementById(lastradio.id)){
			document.getElementById(lastradio.id).className = "active";
			lastradio = document.getElementById(lastradio.id);
			fav_playlist();
		}
	}
	catch(err){}
}
// Функция выделяет "все жанры", "все страны" если переменные country || genre пусты
function select_current(){

	try{
		if(genre==""){document.getElementById("g").className = "active";}
		if(country==""){document.getElementById("c").className = "active";}
	}
	catch(err){}

}

/*=============================Функции прелоадера====================================*/
function start_preload(){
	if(!site_or_not){
		document.getElementById("popup_small").style.height = (parseInt(document.body.offsetHeight)-328)+"px"
		document.getElementById("popup_small").style.width = (parseInt(document.body.offsetWidth) - 39)+"px"
	}
	document.getElementById("popup_small").style.display = "block";
	document.getElementById("popup_small").innerHTML = "<div class='radio_preloader'></div>" ;
}

function stop_preload(){
	document.getElementById("popup_small").style.display = "none";
	if(!site_or_not){
		document.getElementById("popup_small").style.height = "100%";
		document.getElementById("popup_small").style.width = "100%";
	}
	document.getElementById("popup_small").innerHTML = "";
}


/*======================Функции добавления удаления (избранное)========================*/
/*
// Установить куки
function setCookie(name, value) {
      var valueEscaped = escape(value);
      var expiresDate = new Date();
      expiresDate.setTime(expiresDate.getTime() + (365 * 24 * 60 * 60 * 1000)); // срок - 1 год
      var expires = expiresDate.toGMTString();
      var newCookie = name + "=" + valueEscaped + "; path=/; expires=" + expires;
      if (valueEscaped.length <= 4000) document.cookie = newCookie + ";";
}

// Получить куки
function getCookie(name) {
      var prefix = name + "=";
      var cookieStartIndex = document.cookie.indexOf(prefix);
      if (cookieStartIndex == -1) return null;
      var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length);
      if (cookieEndIndex == -1) cookieEndIndex = document.cookie.length;
      return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex));
}
*/
// Добавление станции в избранное (куки)
function add_fav(evt){

	try{
		//обрываем событие
		evt = evt || window.event;
		evt.cancelBubble = true;
		// устанавливаем куки
		var buf = getCookie("emcFavorite")||"";
		if(buf.indexOf(lastradio.id)<0){
			var aa = buf+lastradio.id+",";
			setCookie("emcFavorite", aa);
			document.getElementById("radio_info").innerHTML = add_fav_text;
		}
		else{
			document.getElementById("radio_info").innerHTML = add_fav_text_error;
		}
	}
	catch(err){}

}

// Удаление станции из избранного (куки)
function del_fav(evt){

	try{
		//обрываем событие
		evt = evt || window.event;
		evt.cancelBubble = true;
		///////////////////////////
		if(lastradio && lastradio == document.getElementById(lastradio.id)){
			var buf = getCookie("emcFavorite").replace( new RegExp(lastradio.id+","),"");
			setCookie("emcFavorite", buf);
			lastradio.parentNode.removeChild(lastradio);
			document.getElementById("radio_info").innerHTML = del_fav_text;
		}
	}
	catch(err){}
}

// Смена кнопки добавить на кнопку удалить
function change_fav(obj)
{
	try{
		if(obj && obj.id == "info_favorite"){

			document.getElementById("favstar").className = "del";
			document.getElementById("favstar").onclick = del_fav;
			document.getElementById("favstar").innerHTML = star_del_text;
			document.getElementById("info_favorite").style.backgroundPosition = "0px -22px";
			document.getElementById("info_favorite").style.color = "#232323";
		}
		else{
			document.getElementById("favstar").className = "";
			document.getElementById("favstar").onclick = add_fav;
			document.getElementById("favstar").innerHTML = star_text;
			document.getElementById("info_favorite").style.backgroundPosition = "0px 0px";
			document.getElementById("info_favorite").style.color = "#bbb21d";
		}
	}
	catch(err){}
}

// Отображение избранного из куков
function fav_list(obj)
{
	try{
		//получаем избранное из куков
		tmpavorite = getCookie("emcFavorite");
		if (tmpavorite != null)
		favorite = tmpavorite.replace(/r/g,"").replace(/,$/,"");
        else
        {
            document.getElementById("radio_list").innerHTML = empty_fav_list;
            return false;
        }

		//обнуляем значения
		country = "";
		genre = "";
		page_num = "";
		search_word = "";
		lastgenre = document.getElementById("g");
        lastcountry = document.getElementById("c");
		//получаем данные
		change_fav(obj);
		ajax_send();
		//добавляем текст в breadcrumbs
		document.getElementById("info_bar_genre").innerHTML = fav_text;
		document.getElementById("info_bar_genre").title = fav_text;
		document.getElementById("info_bar_country").innerHTML = fav_text;
		document.getElementById("info_bar_country").title = fav_text;

	}
	catch(err){}
}


//Функция добавляет звезду к выбранной станции
function fav_playlist(){

	if(document.getElementById("favstar").className == "del"){
		lastradio.innerHTML = del_star +  lastradio.innerHTML;
	}
	else{
		lastradio.innerHTML = add_star +  lastradio.innerHTML;
	}
}

//Функция удаляет звезду к выбранной станции
function del_fav_playlist(){

	try{
		lastradio.removeChild(lastradio.getElementsByTagName("div")[0]);
	}
	catch(err){}
}
