var ADDING_SMALL_WIN_WIDTH=80;//на сколько маленькое окно шире размера картинки
var ADDING_SMALL_WIN_HEIGHT=200;//на сколько маленькое окно выше размера картинки
var ADDING_SMALL_WIN_WIDTH_DEFAULT=680;
var ADDING_SMALL_WIN_HEIGHT_DEFAULT=400;//на сколько маленькое окно выше размера картинки
var VOTE_REF_PHP="vote.php";

var CAN_FLASH=detectFlash();

/*
function check_login_form(form_obj){
	var arrError=new Array();
	if(document.getElementById("member_login").value.length<1) arrError[arrError.length]="Вы не заполнили поле 'Логин'!";
	if(document.getElementById("member_password").value.length<1) arrError[arrError.length]="Вы не заполнили поле 'Пароль'!";
	
	if(arrError.length>0) alert(arrError.join("\n"));
	else form_obj.submit();
}

function check_subscribe_form(form_obj){
	var arrError=new Array();
	var mail_val=document.getElementById("email").value;
	
	if(mail_val.length<1) arrError[arrError.length]="Вы не ввели свой e-mail!";
	else if(!mail_val.is_email()) arrError[arrError.length]="Вы ввели некорректный e-mail!";
	
	if(arrError.length>0) alert(arrError.join("\n"));
	else form_obj.submit();
}

function check_nosubscribe_form(form_obj, new_ref_str){
	var mail_val=document.getElementById("email").value;
	if(!mail_val.is_email()) alert("Вы ввели некорректный e-mail!");
	else{
		form_obj.action=new_ref_str;
		form_obj.submit();
	}
}
*/


function getAbsPos(p)
{
	var s = { x:0, y:0, width: p.offsetWidth, height: p.offsetHeight };
               
	while (p.offsetParent)
	{
		s.x += p.offsetLeft;
		s.y += p.offsetTop;
		p = p.offsetParent;
	}
               
	return s;
}

//************************************************************//
//		Array functions
//************************************************************//
//возвращает true, если переданное значение есть в индексном массиве
Array.prototype.inArray = function (value) {
        var i;
        for (i=0; i < this.length; i++) {
                if (this[i] === value) {
                        return true;
                }
        }
        return false;
};

//возраващает первый индекс элемента в индексном массиве, который совпадает с переданным значением
Array.prototype.indexOfElem = function (value) {
        var i;
        for (i=0; i < this.length; i++) {
                if (this[i] == value) {
                        return i;
                }
        }
        return -1;
};

//удаляет из массива элемент с заданным индексом
Array.prototype.delElem = function (elem_index){
	var i;
	for(i=elem_index; i<(this.length-1); i++){
		this[i]=this[i+1];
	}
	//del last element
	this[this.length-1]=null;
	this.length=this.length-1;
}
//************************************************************//
//		String functions
//************************************************************//
function gen_password()
{
	if(gen_password.arguments[0]==null) pass_length=8;
	else pass_length=gen_password.arguments[0];
	
	var digit = new Array("0","1","2","3","4","5","6","7","8","9");
	var halp = new Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","Y","Z");
	var lalp = new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","y","z");
	
	pasw="";
	
	for(var i=0; i<pass_length; i++){
		r=Math.random();
		if((r - 1.0/3.0) < 0.0){
			r = Math.floor(Math.random() * 9);
			pasw += digit[r];
		}else if ( (r - 2.0/3.0) < 0.0){
			r = Math.floor(Math.random() * 24);
			pasw += halp[r];
		}else{
			r = Math.floor(Math.random() * 24);
			pasw += lalp[r];
		}
	}
	
	return pasw;
}

//заменяет в строке символ cut_symbol на строку paste_symbol
String.prototype.symbol_replace=function(cut_symbol, paste_symbol){
	var new_str='';
	for(i=0; i<this.length; i++){
		var cur_symb=this.charAt(i);
		if(cur_symb==cut_symbol) new_str+=paste_symbol;
		else new_str+=cur_symb;
	}
	
	return new_str;
}

//заменяет в строке подстроку cut_str на строку paste_str
String.prototype.str_replace=function (cut_str, paste_str){
	var f=0;
	var ht='';
	ht = ht + this;
	f=ht.indexOf(cut_str);
	while (f!=-1){
		//цикл для вырезания всех имеющихся подстрок
		f=ht.indexOf(cut_str);
		if (f>0) ht = ht.substr(0,f) + paste_str + ht.substr(f+cut_str.length);
	}
	return ht;
}

//преобразует строку вида rgb(NN, NN, NN) в значение #MMMMMM
String.prototype.rgb_2_hex=function(){
	var strRGB="rgb(";
	if(this.substring(0, strRGB.length)==strRGB){
		var h='', x='0123456789ABCDEF';
		
		//вытаскиваем значения
		var sColor=this.substring(strRGB.length, this.length-1);
		var arrColor=sColor.split(",");
		
		for (i=0; i < arrColor.length; i++){
			n = parseInt(arrColor[i]);
			h += x.charAt(n>>4) + x.charAt(n&15);
		}
		return ("#"+h.toLowerCase()).toString();
	}
	
	return this;
}

String.prototype.trancate=function(need_length){
	if(need_length<1) need_length=15;
	
	if(this.length<=need_length) return this;
	
	return this.substring(0, need_length)+"...";
}

String.prototype.is_email=function(){
	txt=this; 
	
	if(txt.indexOf('.')==-1) return false;
	dog=txt.indexOf('@'); 
	if(dog==-1) return false;
	if((dog < 1) || (dog > txt.length - 5)) return false;
	if((txt.charAt(dog-1)=='.') || (txt.charAt(dog+1)=='.')) return false;
	return true;
}

//************************************************************//
//		Функции для работы с окнами
//************************************************************//

//открывает попап окно по заданному URl
function open_popup(url_str, popup_name){
	var popupWin;
	
	var width_str=ADDING_SMALL_WIN_WIDTH_DEFAULT;
	var height_str=ADDING_SMALL_WIN_HEIGHT_DEFAULT;
	
	if(open_popup.arguments.length>2){
		//передали еще ширину и высоту
		if(open_popup.arguments[2]>width_str) width_str=open_popup.arguments[2]+ADDING_SMALL_WIN_WIDTH;
		if(open_popup.arguments[3]>height_str) height_str=open_popup.arguments[3]+ADDING_SMALL_WIN_HEIGHT;
	}
	
	//not IE
	popupWin= window.open(url_str, popup_name, "width="+width_str+",height="+height_str+",top=400,left=300,scrollbars=yes,toolbar=no,location=no,directories=no,status=no,resizable=yes");
	popupWin.focus();
	
}

function close_win(){
	self.close();
}
//************************************************************//

//проверяет наличие флэша
function detectFlash(){
	//выяяняем: можем ли добавить флэш?
	var MM_contentVersion = 7;
	var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;
	if ( plugin ) {
		var words = navigator.plugins["Shockwave Flash"].description.split(" ");
		for (var i = 0; i < words.length; ++i){
			if (isNaN(parseInt(words[i]))) continue;
			var MM_PluginVersion = words[i]; 
		}
		MM_FlashCanPlay = MM_PluginVersion >= MM_contentVersion;
	}else if (navigator.userAgent && navigator.userAgent.indexOf("MSIE")>=0 && (navigator.appVersion.indexOf("Win") != -1)){
		try{
			MM_FlashCanPlay = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + MM_contentVersion);
		}catch(err){ MM_FlashCanPlay=false;}
	}
	
	return MM_FlashCanPlay;
}

//************************************************************//
//		Функции для работы с ckookies
//************************************************************//
function getCookieVal (offset) {
    var endstr = document.cookie.indexOf(";", offset);
    if (endstr == -1) endstr = document.cookie.length;
    return unescape(document.cookie.substring(offset, endstr));
}

/*Эта функция необходима для исправления ошибок в дате на Mac 2.x
 *Вызывайте её для проверки объекта даты перед отправкой данных в функцию SetCookie
 *Эта функция должна вызываться только 1 раз для каждого полученного объекта даты
 */
function FixCookieDate(date) {
    var base = new Date(0);
    var skew = base.getTime();
    if (skew > 0) date.setTime(date.getTime() - skew);
}

/*Эта функция предназначена для возвращения значения cookie
 *name - строковой объект, содержащий имя cookie
 *returns - строковой объект, содержащий либо значение cookie, либо 0, если запись не существует
 */
function GetCookie(name) {
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
	
    var i = 0;
    while (i < clen) {
        var j = i + alen;
        if (document.cookie.substring( i , j ) == arg) return getCookieVal(j);
        i = document.cookie.indexOf(" ", i+1) + 1;
        if (i==0) break;
    }
    return "";
}

/*Эта функция предназначена для создания или обновления cookie
 *name - строковой объект, содержащий имя cookie
 *value - строковой объект, содержащий значение cookie
 *[expires] - объект Date, содержащий срок годности cookie
 *[path] - Строковой объект, указывающий путь нужной cookie-записи.
 *[domen] - Строковой объект, указывающий домен нужной cookie-записи.
 *[secure] - Булево значение, определяет необходимость безопасного соединения
 */
function SetCookie(name,value,expires,path,domain,secure) {
    document.cookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expires.toGMTString() : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "");
}
/*Эта функция для удаления cookie
 *name - строковой объект, содержащий имя cookie
 *path - Строковой объект, содержащий путь cookie-записи.
 *domen - Строковой объект, содержащий домен cookie.
 */
function DelCookie(name,path,domain) {
    if(GetCookie(name)) {
        document.cookie = name + "=" + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + "expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}

/*****************************************************************/
var preloadArray=new Array();
var imgFolder='i/';
var service_img_prefix="service_";
var origArray=new Array('home.gif', 'map.gif', 'contact.gif', 'print.gif');
preload_images('home_sel.gif', 'map_sel.gif', 'contact_sel.gif', 'print_sel.gif');
	
//Функция предзагрузки картинок
function preload_images(){
	if (document.images){
		var imgFiles=preload_images.arguments;
		for (var i=0; i<imgFiles.length; i++){
			preloadArray[i]=new Image;
			preloadArray[i].src=imgFolder+imgFiles[i];
		}
	}
}

function lighted_icon(id_str, flag){
	var obj=document.getElementById(service_img_prefix+id_str);
	if(flag) obj.src=preloadArray[id_str].src;
	else obj.src=imgFolder+origArray[id_str];
}

//*************************************************************************/
//		Функции для отображения подменю
//*************************************************************************/
var timer;

function show_submenu(id_int, flag_bln){
	var div_obj=document.getElementById("submenu_div_"+id_int);
	if(div_obj==null) return 0;
	
	var td_obj=document.getElementById("menu_td_"+id_int);
	
	if(flag_bln){
		var pos_obj=getAbsPos(td_obj);
		
		clear_other_submenu(id_int);
		
		div_obj.onmouseout='';
		div_obj.style.top=pos_obj.y+pos_obj.height-1;
		div_obj.style.left=pos_obj.x;
		div_obj.style.display='block';
		td_obj.style.backgroundColor='#484849';
		div_obj.was_over=0;
		clearTimeout(timer);
	}else{
		timer=setTimeout("hide_div("+id_int+")", 200);
	}
}

function over_menu_ref(id_int){	
	clearTimeout(timer);
	show_submenu(id_int, true);
}

function hide_div(id_int){
	var td_obj=document.getElementById("menu_td_"+id_int);
	var div_obj=document.getElementById("submenu_div_"+id_int);
	
	if(div_obj==null) return 0;
	
	if(div_obj.was_over!=1){
		div_obj.style.display='none';
		td_obj.style.backgroundColor='';
	}
}

function over_submenu_div(id_int, flag_bln){
	var td_obj=document.getElementById("menu_td_"+id_int);
	var div_obj=document.getElementById("submenu_div_"+id_int);
	if(flag_bln){
		div_obj.was_over=1;
		div_obj.style.display='block';
		td_obj.style.backgroundColor='#484849';
		clearTimeout(timer);
		div_obj.onmouseout=function(){
			over_submenu_div(id_int, false);
		}
	}else{
		div_obj.was_over=0;
		hide_div(id_int);
	}
}

function clear_other_submenu(not_hide_id_int){
	var ids_arr=document.getElementById("sub_div_ids").value.split(",");
	
	for(var i=0; i<ids_arr.length; i++){
		if(ids_arr[i]!=not_hide_id_int){
			var div_obj=document.getElementById("submenu_div_"+ids_arr[i]);
			div_obj.was_over=0;
			hide_div(ids_arr[i]);
		}
	}
}

function show_logo(){
	var pos_obj=getAbsPos(document.getElementById("logo_top"));
	var pos_obj_2=getAbsPos(document.getElementById("logo_middle"));
	var logo_img=document.getElementById("logo_bottom");
	logo_img.style.left=pos_obj.x+20;
	logo_img.style.top=pos_obj.y+pos_obj.height+pos_obj_2.height;
	logo_img.style.visibility='visible';
}
//*************************************************************************/