var minLeft = 0;
var minHeight = 50;
var minWidth = 138;
var minTop = 0;
var normalWidth = 640;
var normalHeight = 200;

var dDisplay = 'none';
var	dLeft = 0;
var	dTop = 0;
var	dWidth = normalWidth;
var dHeight = normalHeight;

function getEmptyDiv() {
	var dDisplay = getCookie('consult_display');
	if (!dDisplay)
    	dDisplay = 'block';
	var dLeft = getCookie('consult_left');
	if (!dLeft)
    	dLeft = minLeft;
	var dTop = getCookie('consult_top');
	if (!dTop)
    	dTop = minTop;
	var dWidth = getCookie('consult_width');
	if (!dWidth)
    	dWidth = normalWidth;
	var dHeight = getCookie('consult_height');
	if (!dHeight)
    	dHeight = normalHeight;
	if (dLeft < 0)
	    dLeft = 0;
	if (dTop < 0)
    	dTop = 0;
	
	document.write('<div onmousedown="divDown(this);" onmouseup="divUp(this);" onmousemove="divMove();" id="consult" style="width: ' + dWidth + 'px; height: ' + dHeight + 'px; overflow: hidden; position: absolute; top: ' + dTop + 'px; ' + (dLeft ? 'left: ' + dLeft + 'px;' : '') + 'filter:alpha(opacity=92);display:' + dDisplay + ';"></div>');
}

function getCookie(name) 
{
   var prefix = name + "=";
   var cookieStartIndex = document.cookie.indexOf(prefix);
   if (cookieStartIndex == -1)
      return '';
   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 setCookie(name, value) 
{
   document.cookie = name + "=" + escape(value)+"; path=/; expires=Thursday, 31-Dec-2020 23:59:59 GMT;";
}

var bb = null;
var bs = null;
var bi = null;
var oldTop = 0;

function CheckConsultPosition() 
{
    var w_top = parseInt(document.body.scrollTop);
    if (isSized || w_top == oldTop)
    {
        setTimeout('CheckConsultPosition()',80);
        return;
    }
    
    var curr_top = bb.style.pixelTop;
    
    var delta = w_top - oldTop;

    if (delta != 0) 
    {
        curr_top = parseInt(curr_top + delta);
        bb.style.top = curr_top;
    }
    oldTop = w_top;
    setTimeout('CheckConsultPosition()',80);
}

var isSized = false;
var sX = 0;
var sY = 0;

function cornerDown(el)
{
    isSized = true;
    el.setCapture(false);
    
    bs.style.top = bb.style.top;
    bs.style.left = bb.style.left;
    bs.style.width = bb.style.width;
    bs.style.height = bb.style.height;
    bs.style.display = 'block';
    
    sX = event.screenX;
    sY = event.screenY;
    
    event.cancelBubble = true;
}

function cornerUp(el)
{
    if (!isSized)
        return;
        
    bi.style.pixelWidth = bs.style.pixelWidth - 44;
    bi.style.pixelHeight = bs.style.pixelHeight - 29;
    
    bb.style.pixelLeft = bs.style.pixelLeft;
    bb.style.pixelWidth = bs.style.pixelWidth;
    bb.style.pixelHeight = bs.style.pixelHeight;
    
    setCookie('consult_left', bb.style.pixelLeft);
    setCookie('consult_width', bb.style.pixelWidth);
    setCookie('consult_height', bb.style.pixelHeight);
    
    bs.style.left = '-1000px';
    bs.style.top = '-1000px';
    bs.style.display = 'none';
    
    isSized = false;
    el.releaseCapture();
    
    event.cancelBubble = true;
}

function changeSize(corner)
{
    if (!isSized)
        return;
        
    var deltaX = sX - event.screenX;
    var deltaY = sY - event.screenY;
    
    if (corner == 'left')
    {
        var newWidth = bs.style.pixelWidth + deltaX;
        if (newWidth > minWidth)
        {
            bs.style.pixelLeft = bs.style.pixelLeft - deltaX;
            bs.style.pixelWidth = newWidth;
        }
        
        var newHeight = bs.style.pixelHeight - deltaY;
        if (newHeight > minHeight)
        {
            bs.style.pixelHeight = newHeight;
        }
    }
    else if (corner = 'right')
    {
        var newWidth = bs.style.pixelWidth - deltaX;
        if (newWidth > minWidth)
        {
            //bs.style.pixelLeft = bs.style.pixelLeft - deltaX;
            bs.style.pixelWidth = newWidth;
        }
        
        var newHeight = bs.style.pixelHeight - deltaY;
        if (newHeight > minHeight)
        {
            bs.style.pixelHeight = newHeight;
        }
    }
    
    sX = event.screenX;
    sY = event.screenY;
}

function noReturn()
{
    event.cancelBubble = true;
    event.returnValue = false;
}

function divDown(el)
{   
    if (!event.srcElement || !event.srcElement.tagName || event.srcElement.tagName == 'INPUT' || event.srcElement.tagName == 'TEXTAREA')
    {
        return;
    }
            
    isSized = true;
    el.setCapture(false);
    el.attachEvent('onselectstart', noReturn);
    
    bs.style.top = bb.style.top;
    bs.style.left = bb.style.left;
    bs.style.width = bb.style.width;
    bs.style.height = bb.style.height;
    bs.style.display = 'block';
    
    sX = event.screenX;
    sY = event.screenY;
}

function divUp(el)
{
    if (!isSized)
        return;
        
    if (bs.style.display == 'none')
    {
        isSized = false;
        el.releaseCapture();
        return;
    }
    
    bb.style.pixelLeft = bs.style.pixelLeft;
    bb.style.pixelTop = bs.style.pixelTop;
    
    setCookie('consult_top', bb.style.pixelTop - parseInt(document.body.scrollTop));
    setCookie('consult_left', bb.style.pixelLeft);

    bs.style.left = '-1000px';
    bs.style.top = '-1000px';
    bs.style.display = 'none';
    
    isSized = false;
    el.releaseCapture();
    el.detachEvent('onselectstart', noReturn);
}

function divMove()
{
    if (!isSized)
        return;
        
    var deltaX = sX - event.screenX;
    var deltaY = sY - event.screenY;
    
    bs.style.pixelLeft = bs.style.pixelLeft - deltaX;
    bs.style.pixelTop = bs.style.pixelTop - deltaY; 
  
    sX = event.screenX;
    sY = event.screenY;
}

function minimizeConsult()
{
    if (bb.style.pixelWidth != minWidth || bb.style.pixelHeight != minHeight)
    {
        var deltaL = bb.style.pixelWidth - minWidth;
    
        bb.style.pixelLeft += deltaL;
        bb.style.width = minWidth;
        bb.style.height = minHeight;
    
        bi.style.width = minWidth - 44;
        bi.style.height = minHeight - 29;
    }
    else
    {
        var deltaL = bb.style.pixelWidth - normalWidth;
    
        bb.style.pixelLeft += deltaL;
        bb.style.width = normalWidth;
        bb.style.height = normalHeight;
    
        bi.style.width = normalWidth - 44;
        bi.style.height = normalHeight - 29;
    }
    
    setCookie('consult_left', bb.style.pixelLeft);
    setCookie('consult_width', bb.style.pixelWidth);
    setCookie('consult_height', bb.style.pixelHeight);
}

function closeConsult()
{
    bb.style.display = 'none';
    setCookie('consult_display', 'none');
}

function openConsult()
{
    bb.style.display = 'block';
    setCookie('consult_display', 'block');
}

function CheckLoad() 
{
   bb = document.getElementById('consult');
   all_imgs = document.getElementsByTagName('IMG');
   for (i = 0; i < all_imgs.length; i++)
   {
       all_imgs[i].attachEvent('ondragstart', noReturn); 
   }
   bs = document.getElementById('resize_div');
   bi = document.getElementById('inner_div');
   if (!bb) return;
   if (CheckConsultPosition) CheckConsultPosition();
}

function emptyMe() {
	form1.submit();
	this.focus();
	document.forms.form1.elements[0].value='';
	document.forms.form1.elements[0].focus();
	return false;
}

function Key_Pressed(key_press) {
    if (key_press) {
        var key_code = key_press.keyCode;
        var control_pressed = key_press.ctrlKey;
    } else {
        var key_code = window.event.keyCode;
        var control_pressed = window.event.ctrlKey;
    }
    if (control_pressed && (key_code == 13 || key_code == 10)) {
		emptyMe()
	}
}

function chatRefresh(user1_id){
  //parent.chatcore.location = 'http://www.zub.ru/onconsul/chatcore.php?current_user_id='+user1_id
  xajax_chatRefresh(user1_id);
}

function popUp() {
	if (self.innerHeight) {
		x = self.innerWidth;
		y = self.innerHeight;
		// IE 6 Strict Mode
	} else if (document.documentElement && document.documentElement.clientHeight) {
		x = document.documentElement.clientWidth;
		y = document.documentElement.clientHeight;
		// Остальные версии IE
	} else if (document.body) {
		x = document.body.clientWidth;
		y = document.body.clientHeight;
	}
	var top = document.body.scrollTop;
	var left = document.body.scrollLeft;

	var width = $("#pop_up").width();
	var height = $("#pop_up").height();
	
	var halfX = x /2;
	var halfWidth = width / 2;
	var leftPad = (left + halfX) - halfWidth;

	var halfY = y /2;
	var halfHeight = height / 2;
	var topPad = (top + halfY) - halfHeight;

	$("#pop_up").css('top', topPad);
	$("#pop_up").css('left', leftPad);

	$("#content").fadeTo("slow", 0.33);
	$("#pop_up").fadeIn('slow');
	return false;
}
function closePopUp() {
	$("#content").fadeTo("normal", 1);
	$("#pop_up").css('display', 'none');
	return false;
}

function isEmailCorrect(txt) {
  var re = /^[a-zA-Z0-9\-_](([a-z0-9\-_\.\+\&]?)+[a-z0-9])?\@((\w([a-zA-Z0-9\-_]+\w)?\.[a-z]{2,4})|(([01]?\d\d|2[0-4]\d|25[0-5])\.([01]?\d\d|2[0-4]\d|25[0-5])\.([01]?\d\d |2[0-4]\d|25[0-5])\.([01]?\d\d|2[0-4]\d|25[0-5]))|(localhost))$/i;
  return re.test(txt);
}

function checkForm(form) {
// Заранее объявим необходимые переменные
var el, // Сам элемент
elName, // Имя элемента формы
value, // Значение
type; // Атрибут type для input-ов
// Массив списка ошибок, по дефолту пустой
var errorList = [];
// Хэш с текстом ошибок (ключ - ID ошибки)
var errorText = {
1 : "Не заполнено поле 'Фамилия'",
2 : "Не заполнено поле 'Имя'",
6 : "Не заполнено поле 'Отчество'",
7 : "Не заполнено поле 'Дата рождения'",
8 : "Не заполнено поле 'Телефон'",
9 : "Не корректный 'E-mail'",		
3 : "Не прикреплен файл",
4 : "Не оставлен комментарий",
5 : "Не выбрано любимое время суток"
}
// Получаем семейство всех элементов формы
// Проходимся по ним в цикле
for (var i = 0; i < form.elements.length; i++) {
el = form.elements[i];
elName = el.nodeName.toLowerCase();
value = el.value;
if (elName == "input") { // INPUT
// Определяем тип input-а
type = el.type.toLowerCase();
// Разбираем все инпуты по типам и обрабатываем содержимое
switch (type) {
case "text" :
if (el.name == "lastname" && value == "") errorList.push(1);
if (el.name == "name" && value == "") errorList.push(1);
if (el.name == "surname" && value == "") errorList.push(6);
if (el.name == "birthday" && value == "") errorList.push(7);
if (el.name == "phone" && value == "") errorList.push(8);
if (el.name == "email" && value != "" && !isEmailCorrect(value)) errorList.push(9);
break;
case "file" :
if (value == "") errorList.push(3);
break;
case "checkbox" :
// Ничего не делаем, хотя можем
break;
case "radio" :
// Ничего не делаем, хотя можем
break;
default :
// Сюда попадают input-ы, которые не требуют обработки
// type = hidden, submit, button, image
break;
}
} else if (elName == "textarea") { // TEXTAREA
if (value == "") errorList.push(4);
} else if (elName == "select") { // SELECT
if (value == 0) errorList.push(5);
} else {
// Обнаружен неизвестный элемент ;)
}
}
// Финальная стадия
// Если массив ошибок пуст - возвращаем true
if (!errorList.length) {
	closePopUp(); 
	window.open('','regwin','width=392,height=342');
 	return true;
}
// Если есть ошибки - формируем сообщение, выовдим alert
// и возвращаем false
var errorMsg = "При заполнении формы допущены следующие ошибки:\n\n";
for (i = 0; i < errorList.length; i++) {
errorMsg += errorText[errorList[i]] + "\n";
}
alert(errorMsg);
return false;
} 


function checkForm(form) {
	// Заранее объявим необходимые переменные
	var el, // Сам элемент
	elName, // Имя элемента формы
	value, // Значение
	type; // Атрибут type для input-ов
	// Массив списка ошибок, по дефолту пустой
	var errorList = [];
	// Хэш с текстом ошибок (ключ - ID ошибки)
	var errorText = {
	1 : "Не заполнено поле 'Имя'",
	2 : "Не заполнено поле 'E-mail'",
	3 : "Не заполнено поле 'Телефон'",
	4 : "Неизвестная ошибка"
	}
	// Получаем семейство всех элементов формы
	// Проходимся по ним в цикле
	//form = document.getElementById(frm);
	for (var i = 0; i < form.elements.length; i++) {
	el = form.elements[i];
	elName = el.nodeName.toLowerCase();
	value = el.value;
	if (elName == "input") { // INPUT
	// Определяем тип input-а
	type = el.type.toLowerCase();
	// Разбираем все инпуты по типам и обрабатываем содержимое
	switch (type) {
	case "text" :
	if (el.title != "" && value == "") errorList.push("Не заполнено поле '"+el.title+"'");
	break;
	case "file" :
	//if (value == "") errorList.push(3);
	break;
	case "checkbox" :
	// Ничего не делаем, хотя можем
	break;
	case "radio" :
	// Ничего не делаем, хотя можем
	break;
	default :
	// Сюда попадают input-ы, которые не требуют обработки
	// type = hidden, submit, button, image
	break;
	}
	} else if (el.title != "" && elName == "textarea") { // TEXTAREA
	if (value == "") errorList.push("Не заполнено поле '"+el.title+"'");
	} else if (el.title != "" && elName == "select") { // SELECT
	if (value == 0) errorList.push("Не выбран элемент в поле '"+el.title+"'");
	} else {
	// Обнаружен неизвестный элемент ;)
	}
	}
	// Финальная стадия
	// Если массив ошибок пуст - возвращаем true
	if (!errorList.length) {
		return true;
	}
	// Если есть ошибки - формируем сообщение, выовдим alert
	// и возвращаем false
	var errorMsg = "При заполнении формы допущены следующие ошибки:\n\n";
	for (i = 0; i < errorList.length; i++) {
	errorMsg += errorList[i] + "\n";
	}
	alert(errorMsg);
	return false;
}
