isDOM=document.getElementById //DOM1 browser (MSIE 5+, Netscape 6, Opera 5+)
isOpera=isOpera5=window.opera && isDOM //Opera 5+
isOpera6=isOpera && window.print //Opera 6+
isOpera7=isOpera && document.readyState //Opera 7+
isMSIE=document.all && document.all.item && !isOpera //Microsoft Internet Explorer 4+
isMSIE5=isDOM && isMSIE //MSIE 5+
isNetscape4=document.layers //Netscape 4.*
isMozilla=isDOM && navigator.appName=="Netscape" //Mozilla ХКХ Netscape 6.*

var PATH_MAIN_WWW = 'http://www.tenet.ua/';

function SetCookie() {
if(arguments.length < 2) { return; }
var n = arguments[0];
var v = arguments[1];
var d = 0;
if(arguments.length > 2) { d = parseInt(arguments[2]); }
var exp = '';
if(d > 0) {
	var now = new Date();
	then = now.getTime() + (d * 24 * 60 * 60 * 1000);
	now.setTime(then);
	exp = '; expires=' + now.toGMTString();
	}
document.cookie = n + "=" + escape(String(v)) + '; path=/' + exp;
} // function SetCookie()

function ReadCookie(n) {
var cookiecontent = new String();
if(document.cookie.length > 0) {
	var cookiename = n+ '=';
	var cookiebegin = document.cookie.indexOf(cookiename);
	var cookieend = 0;
	if(cookiebegin > -1) {
		cookiebegin += cookiename.length;
		cookieend = document.cookie.indexOf(";",cookiebegin);
		if(cookieend < cookiebegin) { cookieend = document.cookie.length; }
		cookiecontent = document.cookie.substring(cookiebegin,cookieend);
		}
	}
return unescape(cookiecontent);
} // function ReadCookie()

// OnLoad

onLoad_functions = new Array;

function onLoad()
{
	for (var i in onLoad.queue)
	{
		onLoad.queue[i].call();
	}
}

onLoad.queue = new Array();

onLoad.add = function (func)
{
	onLoad.queue.push(func);
}


function pausecomp(millis)
{
	date = new Date();
	var curDate = null;

	do { var curDate = new Date(); }
	while(curDate-date < millis);
}

// Pop-up window

function popUpWindow(file, window_name, scrollbars, statusbar, resizable, width, height, left, top)
{
	if (isMSIE)
	{
		top += 60;
	}

	window.open(file, window_name, 'scrollbars='+scrollbars+', status='+statusbar+', resizable='+resizable+', width='+width+', height='+height+', left='+left+', top='+top);

	return false;
}

function openWindow(file, window_name, scrollbars, statusbar, resizable, width, height, left, top)
{
	if (isMSIE)
	{
		top += 60;
	}

	window.target = '_blank';
	window.open(file, window_name, 'location=yes, menubar=yes, toolbar=yes, titlebar=yes, scrollbars='+scrollbars+', status='+statusbar+', resizable='+resizable+', width='+width+', height='+height+', left='+left+', top='+top);

	return false;
}

function go_url(url)
{
	document.location.href = url;
}

function parent_go_url(url)
{
	window.parent.location.href = url;
}


function opener_go_url(url)
{
	window.opener.location.href = url;
}


function open_url(url, name)
{
	window.open(url, name);
}

function byid(id)
{
	return document.getElementById(id);
}

function LayerShow(id)
{
	byid(id).style.display = 'block';
}

function LayerHide(id)
{
	byid(id).style.display = 'none';
}


function setCookie(cookieName, cookieContent, cookieExpireTime){
    if(cookieExpireTime>0){
        var expDate=new Date()
        expDate.setTime(expDate.getTime()+cookieExpireTime*1000*60*60)
        var expires=expDate.toGMTString()
        document.cookie=cookieName+"="+escape(cookieContent)+"; path="+escape('/')+"; expires="+expires
    }else{
        document.cookie=cookieName+"="+escape(cookieContent)+"; path="+escape('/')+"";
    }
}

function getCookie(cookieName){
    var ourCookie=document.cookie
    if(!ourCookie || ourCookie=="")return ""
    ourCookie=ourCookie.split(";")
    var i=0
    var Cookie
    while(i<ourCookie.length){
        Cookie=ourCookie[i].split("=")[0]
        if(Cookie.charAt(0)==" ")
                Cookie=Cookie.substring(1)
        if(Cookie==cookieName){
            return unescape(ourCookie[i].split("=")[1])
        }
        i++
    }
    return ""
}


// ############################################################################################################



function onload_default()
{

}




function menu_open(id)
{
	current_state = byid('menu_sub_' + id).style.display;

	byid('menu_sub_' + id).style.display = (current_state == 'block') ? 'none' : 'block';
}


function horoscope_refresh(id)
{
	var req = new JSHttpRequest();

	var sign = byid('horoscope_signs_' + id).value;
	var period = byid('horoscope_period_' + id).value;

	req.onreadystatechange = function()
	{
		if (req.readyState == 4)
		{
			byid('horoscope_date_' + id).innerHTML = req.responseJS.date;
			byid('horoscope_text_' + id).innerHTML = req.responseJS.text;
		}
	}

	byid('horoscope_date_' + id).innerHTML = '';
	byid('horoscope_text_' + id).innerHTML = 'загрузка...';

	setCookie('tenet_horoscope_sign', sign, 2678400);
	setCookie('tenet_horoscope_period', period, 2678400);

	req.caching = false;
	req.open('GET', PATH_MAIN_WWW +'datasource_main.php', true);

	req.send(
		{
			module : 'horoscope',
			sign: sign,
			period: period
		}
	);
}

function tvshedule_get_program(id)
{
	var req = new JSHttpRequest();

	req.onreadystatechange = function()
	{
		if (req.readyState == 4)
		{
			if (byid('tv_channel_name'))	{
				byid('tv_channel_name').innerHTML = req.responseJS.channel;
			}
			byid('tv_program').innerHTML = req.responseJS.program;
		}
	}

	byid('tv_program').innerHTML = 'загрузка...';

	req.caching = true;
	req.open('GET', PATH_MAIN_WWW +'datasource_main.php', true);

	req.send(
		{
			module : 'tvshedule',
			id: id
		}
	);
}

function tvshedule_recode_program(id)
{
	var req = new JSHttpRequest();

	req.onreadystatechange = function()
	{
		if (req.readyState == 4)
		{
			byid('tv_program').innerHTML = req.responseJS.program;
			byid('channels_list').innerHTML = req.responseJS.select;
		}
	}

	req.caching = true;
	req.open('GET', PATH_MAIN_WWW +'datasource_main.php', true);

	req.send(
		{
			module : 'tvshedule',
			action : 'recode',
			id: id
		}
	);
}

function tvshedule_get_channel_list(week, day)
{
	var req = new JSHttpRequest();

	req.onreadystatechange = function()
	{
		if (req.readyState == 4)
		{
			byid('channels_list').innerHTML = req.responseJS.select;
		}
	}

	byid('channels_list').innerHTML = 'загрузка...';
	byid('tv_program').innerHTML = '';

	req.caching = true;
	req.open('GET', PATH_MAIN_WWW +'datasource_main.php', true);

	req.send(
		{
			module : 'tvshedule',
			admin: 'yes',
			week: week,
			day: day
		}
	);
}

function tvshedule_channel_list(week, day)
{
	var req = new JSHttpRequest();

	req.onreadystatechange = function()
	{
		if (req.readyState == 4)
		{
			byid('tv_curr_date').innerHTML = req.responseJS.dat;
			byid('channels_list').innerHTML = req.responseJS.select;
		}
	}

	byid('channels_list').innerHTML = 'загрузка...';
	byid('tv_channel_name').innerHTML = '';
	byid('tv_program').innerHTML = '';

	req.caching = true;
	req.open('GET', PATH_MAIN_WWW +'datasource_main.php', true);

	req.send(
		{
			module : 'tvshedule',
			admin : 'no',
			week: week,
			day: day
		}
	);
}

function weather_refresh(id)
{
	var req = new JSHttpRequest();

	var city_id = byid('weather_' + id).value;

	req.onreadystatechange = function()
	{
		if (req.readyState == 4)
		{
			byid('weather_text_' + id).innerHTML = req.responseJS.today.text;
			byid('weather_temperature_' + id).innerHTML = req.responseJS.today.temperature + '&deg; C';
			byid('weather_wind_' + id).innerHTML = req.responseJS.today.wind + ' км/ч';
			byid('weather_pressure_' + id).innerHTML = req.responseJS.today.pressure + ' hPa';
			byid('weather_humidity_' + id).innerHTML = (req.responseJS.today.humidity == 'n/a') ? req.responseJS.today.humidity : req.responseJS.today.humidity + '%';

			byid('weather_city_' + id).innerHTML = req.responseJS.city_name_;
		}
	}

	byid('weather_temperature_' + id).innerHTML = '';
	byid('weather_wind_' + id).innerHTML = '';
	byid('weather_pressure_' + id).innerHTML = '';
	byid('weather_humidity_' + id).innerHTML = '';

	byid('weather_text_' + id).innerHTML = 'загрузка...';


	setCookie('tenet_weather_city', city_id, 2678400);

	req.caching = false;
	req.open('GET', PATH_MAIN_WWW +'datasource_main.php', true);

	req.send(
		{
			module : 'weather',
			city_id: city_id
		}
	);
}


function get_mail_and_stats(session_id)
{
	var req = new JSHttpRequest();

	req.onreadystatechange = function()
	{
		if (req.readyState == 4)
		{
			// req.responseJS.content

			//req.responseJS.res[1]
			//req.responseJS.res[2]
			//req.responseJS.res[5]



			if (typeof(req.responseJS.res[1]) == "undefined") req.responseJS.res[1] = '';
			if (typeof(req.responseJS.res[2]) == "undefined") req.responseJS.res[2] = '';
			if (typeof(req.responseJS.res[3]) == "undefined") req.responseJS.res[3] = '';
			if (typeof(req.responseJS.res[4]) == "undefined") req.responseJS.res[4] = '';
			if (typeof(req.responseJS.res[5]) == "undefined") req.responseJS.res[5] = 'data error';
			if (typeof(req.responseJS.res[6]) == "undefined") req.responseJS.res[6] = '';
			if (typeof(req.responseJS.res[7]) == "undefined") req.responseJS.res[7] = '';
			if (typeof(req.responseJS.res.balance) == "undefined") req.responseJS.res.balance = 'data error';


			if (req.responseJS.res[1].indexOf('-1') == 0) //не работает
			{
				byid('stat_mail').innerHTML = 'недоступно';
			}
			
			if (req.responseJS.res[1] == 0)
			{
				byid('stat_mail').innerHTML = 'нет';
			}
			else
			{
				byid('stat_mail').innerHTML = req.responseJS.res[1] + ' (новых ' + req.responseJS.res[2] + ')';
			}
			if (req.responseJS.res[1] == "-1") //не работает
			{
				byid('stat_mail').innerHTML = 'недоступно';
			}

			byid('stat_money').innerHTML = 'остаток: ' + req.responseJS.res.balance + '.';

			byid('stats_top_1').innerHTML = req.responseJS.res[4];
			byid('stats_top_2').innerHTML = req.responseJS.res[5];


		}
	}

	byid('stat_mail').innerHTML = 'загрузка...';

	req.caching = false;
	req.open('GET', PATH_MAIN_WWW + 'datasource_main.php', true);

	req.send(
		{
			module : 'mail_and_stats',
			PHPSESSID : session_id
		}
	);

}


function print_version_switch(to)
{
	if (to == 1)
	{
		byid('header1').style.display = 'none';
		byid('header2').style.display = 'none';
		byid('header3').style.display = 'none';
		byid('footer1').style.display = 'none';
		byid('footer2').style.display = 'none';
		byid('menu_block').style.display = 'none';
		byid('menu_block2').style.display = 'none';

		setTimeout("document.onclick=function() {print_version_switch(0)}",1000);

		return;
	}

	if (to == 0)
	{
		byid('header1').style.display = '';
		byid('header2').style.display = '';
		byid('header3').style.display = '';
		byid('footer1').style.display = '';
		byid('footer2').style.display = '';
		byid('menu_block').style.display = '';
		byid('menu_block2').style.display = '';

		document.onclick=function()
		{
			return true;
		}

		return;
	}
}


function timer_step()
{
	sec++;

	if (sec == 60) {
		sec = 0;
		min ++;
	}

	if (min == 60) {
		min = 0;
		sec = 0;
		hour ++;
	}

	if (hour == 24) {
		hour = 0;
		min = 0;
	}

	sec_str = "" + sec;
	if (sec_str.length == 1) {sec = "0" + sec;}

	min_str = "" + min;
	if (min_str.length == 1) {min = "0" + min;}

	hour_str = "" + hour;
	if (hour_str.length == 1) {hour = "0" + hour;}


	byid('timer_').innerHTML = hour + ':' +min + ':' + sec;
	setTimeout('timer_step()', 1000);
}


function treeClickSetup()
{
	var selNd = t.getSelNode();
	var tree_parent_id = t.genOrgId(selNd.id);

	var req = new JSHttpRequest();

	req.onreadystatechange = function()
	{
		if (req.readyState == 4)
		{
			var html = '';

			if (req.responseJS.informers.length > 0)
			{
				html += '<table class="data_table">';

				html += '<tr> <th>информер</th> <th colspan="3">добавить в блок</th> </tr>';

				for (i = 0; i < req.responseJS.informers.length; i++)
				{
					html += '<tr>';

					var title_x = (req.responseJS.informers[i].informers_list_name == 'Фид-клиенты') ? '' : req.responseJS.informers[i].informers_list_name + '<br>';

					if ((title_x != '') && (req.responseJS.informers[i].informers_list_name != 'Новости') && (req.responseJS.informers[i].informers_list_name != 'Текстовая область'))
					{
						title_x = req.responseJS.informers[i].informers_list_name + '<br>';
					} else {
						title_x = '';
					}

					html += '<td>' + title_x + req.responseJS.informers[i].informers_title + '</td>';

					var btn_l = '<td  class="button2"><input type="button" value="левый" onClick="my_add_informer(\'L\', ' + req.responseJS.informers[i].informers_id + ')"></td>';
					var btn_c = '<td  class="button2"><input type="button" value="центр" onClick="my_add_informer(\'C\', ' + req.responseJS.informers[i].informers_id + ')"></td>';
					var btn_r = '<td  class="button2"><input type="button" value="правый" onClick="my_add_informer(\'R\', ' + req.responseJS.informers[i].informers_id + ')"></td>';

					var btn_l_ = '<td class="button2"><input type="button" disabled value="левый"></td>';
					var btn_c_ = '<td class="button2"><input type="button" disabled value="центр"></td>';
					var btn_r_ = '<td class="button2"><input type="button" disabled value="правый"></td>';


					if (req.responseJS.informers[i].informers_list_pos == 'C' || req.responseJS.informers[i].informers_allow_my == 'C')
					{
						html += btn_l_;
						html += btn_c;
						html += btn_r_;
					}
					else if (req.responseJS.informers[i].informers_list_pos == 'S' || req.responseJS.informers[i].informers_allow_my == 'S')
					{
						html += btn_l;
						html += btn_c_;
						html += btn_r;
					}

					else if (req.responseJS.informers[i].informers_list_pos == 'SC')
					{
						html += btn_l;
						html += btn_c;
						html += btn_r;
					}

					html += '</tr>';
				}

				html += '</table>';

				byid('informers_list').innerHTML = html;
			}
			else
			{
				byid('informers_list').innerHTML = 'В данном разделе нет информеров.';
			}
		}
	}

	byid('informers_list').innerHTML = 'загрузка...';

	req.caching = false;
	req.open('GET', PATH_MAIN_WWW + 'datasource_main.php', true);

	req.send(
		{
			module : 'setup_informers',
			tree_parent_id : tree_parent_id
		}
	);
}

function my_add_informer(loc, informer_id)
{
	var req = new JSHttpRequest();

	req.onreadystatechange = function()
	{
		if (req.readyState == 4)
		{
			// req.responseJS.

			if (req.responseJS.r.length)
			{
				alert(req.responseJS.r);
			}

			window.opener.location.reload();
		}
	}

	req.caching = false;
	req.open('GET', PATH_MAIN_WWW + 'datasource_main.php', true);

	req.send(
		{
			module : 'my_informer_add',
			informer_id : informer_id,
			loc : loc
		}
	);
}

function startSearch() {
	LayerShow('search_window');
	byid('sfield').focus();
}

function closeSearch() {
	LayerHide('search_window');
}

function doLoad(force) {
    var query = '' + byid('sfield').value;
    var req = new JSHttpRequest();

    req.onreadystatechange = function()
	{
		if (req.readyState == 4)
		{
			for (i=byid('sselect').options.length-1;i>=0;i-- )
			{
				byid('sselect').remove(i);
			}

			for (i=0;i<req.responseJS.streets.length;i++)
			{
				byid('sselect').options.add(new Option(req.responseJS.streets[i]['text'],req.responseJS.streets[i]['value'],true,false));
			}
		}
	}

	req.caching = true;
	req.open('GET', PATH_MAIN_WWW + 'datasource_main.php', true);

	req.send(
		{
			module : 'street_search',
			query : query
		}
	);
}

function streetSelect() {
	closeSearch();
	//byid('sselect').options[byid('sselect').selectedIndex].text
	byid('street_name').value = byid('sselect').options[byid('sselect').selectedIndex].text;
	byid('covering_test_street').value = byid('sselect').options[byid('sselect').selectedIndex].value;
	covering_test();
}
function streetSelect2() {
	closeSearch();
	//byid('sselect').options[byid('sselect').selectedIndex].text
	byid('street_name').value = byid('sselect').options[byid('sselect').selectedIndex].text;
	byid('covering_test_street').value = byid('sselect').options[byid('sselect').selectedIndex].value;
	covering_test2();
}

function covering_test()
{
	streets_id = byid('covering_test_street').value;
	number = 0;

	if (!streets_id)
	{
		alert('Для поиска необходимо выбрать улицу');
		return;
	}

	var req = new JSHttpRequest();

	req.onreadystatechange = function()
	{
		if (req.readyState == 4)
		{
			byid('covering_search_res').innerHTML = req.responseJS.content;

			if (req.responseJS.founded == 1)
			{
				LayerHide('covering_res_no');
				LayerShow('covering_res_yes');
			}
			else if (req.responseJS.founded == 0)
			{
				LayerHide('covering_res_yes');
				LayerShow('covering_res_no');
			}
			else if (req.responseJS.founded == 2)
			{
				LayerHide('covering_res_yes');
				LayerHide('covering_res_no');
			}
		}
	}

	req.caching = false;
	req.open('GET', PATH_MAIN_WWW +'datasource_main.php', true);

	req.send(
		{
			module : 'covering_check',
			number: number,
			streets_id : streets_id
		}
	);

}

function covering_test2()
{
	streets_id = byid('covering_test_street').value;
	number = 0;

	if (!streets_id)
	{
		alert('Для поиска необходимо выбрать улицу');
		return;
	}

	var req = new JSHttpRequest();

	req.onreadystatechange = function()
	{
		if (req.readyState == 4)
		{
			byid('covering_search_res').innerHTML = req.responseJS.content;

			if (req.responseJS.founded == 1)
			{
				LayerHide('covering_res_no');
				LayerShow('covering_res_yes');
			}
			else if (req.responseJS.founded == 0)
			{
				LayerHide('covering_res_yes');
				LayerShow('covering_res_no');
			}
			else if (req.responseJS.founded == 2)
			{
				LayerHide('covering_res_yes');
				LayerHide('covering_res_no');
			}
		}
	}

	req.caching = false;
	req.open('GET', PATH_MAIN_WWW +'datasource_main.php', true);

	req.send(
		{
			module : 'covering_check2',
			number: number,
			streets_id : streets_id
		}
	);

}

function map_view(iden)
{
	var req = new JSHttpRequest();

	req.onreadystatechange = function()
	{
		if (req.readyState == 4)
		{
			byid("map_div").innerHTML = req.responseJS.content;
			if (byid("image_iden")) {
				byid("image_iden").value = req.responseJS.iden;
			}
		}
	}

	req.caching = false;
	req.open('GET', PATH_MAIN_WWW + 'datasource_main.php', true);

	req.send(
		{
			module : 'map',
			iden : iden
		}
	);
}

function map_view_2(iden)
{
	var req = new JSHttpRequest();

	req.onreadystatechange = function()
	{
		if (req.readyState == 4)
		{
			byid("map_div").innerHTML = req.responseJS.content;
			if (byid("image_iden")) {
				byid("image_iden").value = req.responseJS.iden;
			}
		}
	}

	req.caching = false;
	req.open('GET', PATH_MAIN_WWW + 'datasource_main.php', true);

	req.send(
		{
			module : 'map2',
			iden : iden
		}
	);
}

function wifi_map_roll(id) {
  if (isMSIE) {
     byid(id).setActive();
  }
}

function vote(informer_id, iden, set)
{
	var req = new JSHttpRequest();

	req.onreadystatechange = function()
	{
		if (req.readyState == 4)
		{
			byid("vote_id"+informer_id).innerHTML = req.responseJS.content;
			if (byid("image_iden")) {
				byid("image_iden").value = req.responseJS.iden;
			}
		}
	}

	req.caching = false;
	req.open('GET', PATH_MAIN_WWW + 'datasource_main.php', true);

	req.send(
		{
			module : 'vote',
			set: set,
			informer_id : informer_id,
			iden : iden
		}
	);
}

function dynamicSelect(id1, id2) {

// Сперва необходимо проверить поддержку W3C DOM в браузере

 if (document.getElementById && document.getElementsByTagName) {

// Определение переменных, ссылающихся на списки
  var sel1 = document.getElementById(id1);
  var sel2 = document.getElementById(id2);

// Клонирование динамического списка
  var clone = sel2.cloneNode(true);

// Определение переменных для клонированных элементов списка
  var clonedOptions = clone.getElementsByTagName("option");

// Вызов функции собирающей вызываемый список
  refreshDynamicSelectOptions(sel1, sel2, clonedOptions);

// При изменении выбранного элемента в первом списке: // вызов функции пересобирающей вызываемый список

  sel1.onchange = function() {
  refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
  }
 }
}

// Функция для сборки динамического списка

function refreshDynamicSelectOptions(sel1, sel2, clonedOptions) {


// Удаление всех элементов динамического списка

 while (sel2.options.length) {
  sel2.remove(0);
 }
 var pattern1 = /( |^)(select)( |$)/;
 var pattern2 = new RegExp("( |^)(" + sel1.options[sel1.selectedIndex].value + ")( |$)");

// Перебор клонированных элементов списка

 for (var i = 0; i < clonedOptions.length; i++) {

// Если название класса клонированного option эквивалентно "select" // либо эквивалентно значению option первого списка

  if (clonedOptions[i].className.match(pattern1) ||
  clonedOptions[i].className.match(pattern2)) {

// его нужно клонировать в динамически создаваемый список

   sel2.appendChild(clonedOptions[i].cloneNode(true));
  }
 }
}


