﻿/* ================= NEW DESIGN ================= */

function InputFocus(obj,defValue)
{
  if (obj.value == defValue)
  {
    obj.value = '';
    obj.className = 'inpActive';
   
  }
}


function InputBlur(obj,defValue)
{
  if (obj.value == '')
  {
    obj.value = defValue;
    obj.className = 'inpPassive';
   
  }
}


function InputPasFocus(obj,defValue,id)
{
  if (obj.value == defValue)
  {
    obj.style.display = 'none';
    obj2 = document.getElementById(id+'pas');
    obj2.style.display = 'inline';
    obj2.value = '';
    obj2.className = 'inpActive';
    obj2.focus();
  }
}


function InputPasBlur(obj,defValue,id)
{
  if (obj.value == '')
  {
    obj.style.display = 'none';
    obj2 = document.getElementById(id+'txt');
    obj2.style.display = 'inline';
    obj2.value = defValue;
    obj2.className = 'inpPassive';
  }
}


/// ---------------------------------------------------------
/// Проверка на заполнение всех обязательных полей формы
/// Возвращает false, если проверка не прошла
/// need - список названий полей: |fio|company|city|email|
function SubmitFormCheck(formObj,need)
{
  ///Проверка на заполнение обязательных полей
  var idx;
  var selId = 0;
  var tname;
  var tempStr;
  var emailObj = '';;
  for (idx = 0; idx < formObj.elements.length; idx++)
  {
    tempObj = formObj.elements.item(idx);
    tname = tempObj.name;

    tempStr = 'need.match(/\\|' + tname + '\\|/)';
    tempStr = eval(tempStr);

    if (tempStr != null) // Поле нужно проверить
    {
      if (tempObj.value == '') selId = selId + 1;
    }

    if (tname == 'email')
    {
      emailObj = tempObj;
    }
  }

  /// Если были незаполненные поля
  if (selId > 0)
  {
    alert('Пожалуйста, заполните все обязательные поля');
    return false;
  }

  /// Проверка E-mail
  if (emailObj != '')
  {
    selId = 0;
    tempStr = emailObj.value.match(/\./);
    if (tempStr == null)
    {
      selId = selId + 1;
    }
    tempStr = emailObj.value.match(/\@/);
    if (tempStr == null)
    {
      selId = selId + 1;
    }

    if (emailObj.value.length < 5) selId = selId + 1;

    if (selId > 0)
    {
      alert('Пожалуйста, введите корректный E-mail');
      return false;
    }
  }

  return true;
}


/* ================= Custom hyper events ================= */

function FormSubmit(form)
{
  if (form) 
  {
    if ((IsIE())&(form.DocGroup)) {
      var docgroup=false;
	    for(var i=0;i<form.DocGroup.length;i++)
	    {
		    if (form.DocGroup(i).checked) { 
				form.method='post'; 
				break; 
			}
		}
    }
    form.submit();
  }
}

function F4CM(cclass,cmethod,cparams) 
{
 fr=document.getElementById('SubmitFrame').contentWindow.document.forms[0];
 if (fr) {
 	if (fr.CacheClass) {
 		fr.CacheClass.value=cclass;
 	}
 	else {		
		return;
 	}
 	if (fr.CacheMethod) {		
 		fr.CacheMethod.value=cmethod;
 	}
 	else {		
		return;
 	}
 	if (fr.HypString) {
 		fr.HypString.value=cparams;
 	}
 	else {	
		return;
 	}
 	FormSubmit(fr);
 }
 else {	
	document.getElementById('SubmitFrame').src=document.getElementById('SubmitFrame').src;
	return;
 }
}

function lgCspFindFrame()
{
	var iframe;
	var browserVer;
	var browserName = navigator.appName.toLowerCase();
    var appVer = navigator.appVersion.toLowerCase();

    if (browserName == "microsoft internet explorer") {
		var iePos  = appVer.indexOf('msie');
		browserVer = parseInt(appVer.substring(iePos+5,appVer.indexOf(';',iePos)));
    } else {
		browserVer = parseInt(appVer);
	}

	if (browserName == "netscape") {
		if (browserVer >= 5) {
			iframe = window.document.getElementById('cspBrokerFrame');
		} else {
			iframe = window.document.cspBrokerLayer;
		}
	} else if (browserName == "microsoft internet explorer") {
				if (-1 != appVer.indexOf("mac")) {
			if (browserVer > 5) {
				iframe = window.document.getElementById('cspBrokerFrame');
			} else {
				iframe = window.document.all.cspBrokerFrame;
			}
		} else if (browserVer > 5) {
			iframe = window.document.getElementById('cspBrokerScript');
		} else {
			iframe = window.document.all.cspBrokerScript;
		}
	} else {
		iframe = window.document.getElementById('cspBrokerFrame');
	}

	return iframe;
}

/* ================= UTILS ================= */

///----------------------------------------------------------------------------------
/// Проверка, что барузер IE
function IsIE()
{
  /// Проверка на браузер "Опера"
  var is_opera = /opera/i.test(navigator.userAgent);
  
  /// Проверка на браузер "Опера" с учетом маскировки
  var is_ie = ( /msie/i.test(navigator.userAgent) && !is_opera );

  return is_ie;
}

/// ----------------------------------------------------------------------------
/// Получение абсолютных позиций объекта
/// <- ar[0]=top; ar[1]=left; ar[2]=body
function GetBodyOffset(obj)
{
  var top = 0;
  var left = 0;
  var theObj=obj
  while (obj && (obj != document.body)) 
  {
    top += obj.offsetTop;
    left += obj.offsetLeft;
    obj = obj.offsetParent;
  }

  // Цикл для определения прокрутки внутри какого-либо DIV
  obj = theObj
  while (obj && (obj != document.body)) 
  {
    top = top - obj.scrollTop;
    obj = obj.parentNode;
  }

  var values = new Array();
  values[0] = top;
  values[1] = left;
  values[2] = obj;
  return values
}

/* ================= WINDOW ================= */

var g_schDiv = '';

/* ================= SPECIAL ================= */

/// Включить DIV по ид. и разместить относительно posObj
function ShowDiv(divId,posObj,params)
{
  var divObj = document.getElementById(divId);
  if (!divObj) return;

  // Получение позиции
  var offAr = GetBodyOffset(posObj);
  var posObjTop = offAr[0];	
  var posObjLeft = offAr[1];
  // Нижняя ЛИНИЯ объекта
  var y = posObjTop + posObj.offsetHeight - document.body.scrollTop;	
  // Левая ЛИНИЯ объекта
  var x = posObjLeft;
  
  // Размер DIV
  divObj.style.display = 'inline';
  var CWidth = divObj.offsetWidth;
  var CHeight = divObj.offsetHeight; 
  divObj.style.display = 'none';

  // Получение свободного места
  var TopHeight = y; // свободное место над объектом
  var VisibleHeight = document.body.clientHeight; /// Высота видимой области
  var BotHeight = VisibleHeight - y; // свободное место под объектом
  var LeftWidth = x; // свободное место справа от объекта
  var RightWidth = document.body.clientWidth - x; // свободное место слева от курсора

  // Проверка на свободное место: Вертикаль
  var TopPos = y;
  // Если снизу нет свободного места и сверху пространства больше
  if ((BotHeight < CHeight)&&(TopHeight > BotHeight)) 
  {
    TopPos = y - CHeight - posObj.offsetHeight + 5; // Выводим DIV над объектом
  }
  else
  {
    TopPos = TopPos + 3; // Показываем чуть ниже объекта
  }
  
  // Проверка на свободное место: Горизонталь
  var LeftPos = x;
  // Если справа от объекта недостаточно места и слева места больше
  if ((RightWidth < CWidth)&&(LeftWidth > RightWidth)) 
  {
    LeftPos = x - CWidth + posObj.offsetWidth;  // Выводим DIV слева от объекта
  }
  
  TopPos = TopPos + document.body.scrollTop;
  divObj.style.top = TopPos;
  divObj.style.left = LeftPos;
  divObj.style.display = 'inline'; 

  DrawMyShadow(TopPos,LeftPos,divObj);  
}

function HideDiv(divId)
{
  divObj = document.getElementById(divId);
  if (!divObj) return;
  
  divObj.style.display = 'none';
  if (g_schDiv) g_schDiv.style.display = 'none';
 
}

/// -----------------------------------------------------------------
/// Включение Тени окна
function DrawMyShadow( topPos, leftPos, mainId)
{
  var shDivId = 'WindowDivShadow';
  if (typeof(mainId) == 'object') /// Если передали объект окна
  {
    var mainDIV = mainId;
    /// Получение Body этого окна, чтобы найти окно тени
    var docObj = mainDIV.ownerDocument;
    
    /// Ид. блока тени
    if (mainDIV.id != '') shDivId = mainDIV.id + 'Shadow';
    var DIV = docObj.getElementById(shDivId);
  }
  else if (mainId == undefined)
  {
    var mainDIV=document.getElementById('WindowDiv');
    var DIV=document.getElementById('WindowDivShadow');
  }
  else /// mainId= <ид.окна>
  {
    var mainDIV = document.getElementById(mainId);
    var shDivId = mainId + 'SHADOW';
    var DIV=document.getElementById(shDivId);
  }

  /// создание, если нет такого DIV
  if (!DIV)
  {
    DIV = document.createElement('DIV');
    document.body.appendChild(DIV);
    DIV.style.display = 'none';
    DIV.className = 'WindowDivShadow';
    DIV.id = shDivId;
  }

  topPos = +topPos; /// Перевод в число
  DIV.style.top = topPos + 5;
  DIV.style.left = leftPos + 5;
  DIV.style.width = mainDIV.offsetWidth;
  DIV.style.height = mainDIV.offsetHeight;
  DIV.style.display = 'inline';
  
  g_schDiv = DIV;
}