﻿/** Скрипт #2 ПРЕДПРОСМОТРА подаваемого объявления без передачи на сервер:
 *  - в указанный элемент помещаем HTML-код (такой же как формирует сервер)
 */
function fAdEditPreview() {
	var div = document.getElementById("Advertisment_previewDiv");
	div.innerHTML = '<br /><br />Предпросмотр объявления<br /><br /><div id="adv" style="color: gray"><b>Предлагаю: </b>' + document.getElementById("Advertisment_sellText").value + '<br />' + '<b>Требуется: </b>' + document.getElementById("Advertisment_buyText").value + '<br />' + '<b>Регион: </b>' + document.getElementById("Advertisment_placeId").options[document.getElementById("Advertisment_placeId").selectedIndex].text + '<br /><b>Контакты: </b>' + document.getElementById("Advertisment_contacts").value + '</div>';
	div.innerHTML += '';
	div.innerHTML += '';
	div.innerHTML += '';	
	return false;
}
/** Скрипт проверки полей документа
 *  Имя формы передается в переменной 
 *  Имена полей передаются в массиве или маской (например RecallPosition_*_unit)
 *  Результат выполнения:
 *  - если все ОК, то выполняется submit
 *  - иначе, сообщение об ошибке (всплывающее окно) и выделение полей стилем
 */
function fBsjsRecallPosBeforeSaveValid_() {
	var x=document.forms[1];//document.getElementById("formRecallPositionEdit")
	var input = document.createElement("input");
	input.setAttribute("type", "hidden");
	input.setAttribute("name", "save");
	input.setAttribute("value", 1);
	x.appendChild(input);
	x.submit();//document.forms[1]
	return false;
}
function fBsjsRecallPosBeforeSaveValid() {
	var x=document.getElementById("formRecallPositionEdit");
	var b="";var g=true;
	
	for (var i=0;i<x.length;i++)
	{
		b=("Price"!=x.elements[i].id.match("Price") && "_unit"==x.elements[i].id.match("_unit")) || ("]"!=x.elements[i].id.match("]") && "groupOption"==x.elements[i].id.match("groupOption"));
		if (b && x.elements[i].value=="" && x.elements[i].type.match("select")=="select")
		{
			x.elements[i].className='box error';//style.borderColor="red";
			g=false;
		}
		if (b && x.elements[i].value!="" && x.elements[i].type.match("select")=="select")
		{
			x.elements[i].className='box';//style.borderColor="black";
		}
	}
	if (g)
	{
		var input = document.createElement("input");
		input.setAttribute("type", "hidden");
		input.setAttribute("name", "save");
		input.setAttribute("value", 1);
		x.appendChild(input);
		x.submit();//document.forms[1]
		return false;
		//x.submit();
		//return false;
	}
	else
	{
		alert("Необходимо заполнить выделенные поля !");//поле «Единицы измерения»
		return false;
	}
}
//--------- POST (GET) -отправка формы AJAX-ом (определяются и отправляются элементы имеющие значение не пустое) ----------------
var http_request = false;
var errAreaID = 0;
var succAreaID = 0;
function makePOSTRequest(url, parameters) {
  http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
	 http_request = new XMLHttpRequest();
	 if (http_request.overrideMimeType) {
		// set type accordingly to anticipated content type
		//http_request.overrideMimeType('text/xml');
		http_request.overrideMimeType('text/html');
	 }
  } else if (window.ActiveXObject) { // IE
	 try {
		http_request = new ActiveXObject("Msxml2.XMLHTTP");
	 } catch (e) {
		try {
		   http_request = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {}
	 }
  }
  if (!http_request) {
	 alert('Cannot create XMLHTTP instance');
	 return false;
  }
  /* POST
  http_request.onreadystatechange = alertContents;
  http_request.open('POST', url, true);
  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  http_request.setRequestHeader("Content-length", parameters.length);
  http_request.setRequestHeader("Connection", "close");
  http_request.send(parameters);*/
  // GET
  http_request.onreadystatechange = alertContents;
  http_request.open('GET', url + parameters, true);
  http_request.send(null);
}
// изменение контента в элементе
function alertContents() {
  if (http_request.readyState == 4) {
	 if (http_request.status == 200) {
		var result = http_request.responseText;
		var responsePrefixFailure = '<!--Failure-->';
		if (result.substring(0,responsePrefixFailure.length)==responsePrefixFailure) {
			document.getElementById(errAreaID).innerHTML = result;
		} else {
			document.getElementById(succAreaID).innerHTML = result;
		}
	} else {
			document.getElementById(errAreaID).innerHTML='<font color="red"><b>Ошибка передачи данных при отправке (!= 200) !</b></font>';
	}
  } else {
		document.getElementById(errAreaID).innerHTML='<font color="red"><b>Ошибка передачи данных при отправке (!= 4) !</b></font>';
  }
}
// сборка строки для отправки (frmID - ид формы, outAreaID/outSuccAreaID - ид элементов куда выводится результат)
function sendAJAXReq(frmID, outErrAreaID, outSuccAreaID) {
	  var poststr = '{';
	  var x=document.getElementById(frmID);
	  errAreaID = outErrAreaID; succAreaID = outSuccAreaID;
	  for (var i=0; i<x.length-1; i++) {//
		if (x.elements[i].tagName == 'INPUT') {
			if (x.elements[i].type=='checkbox' && x.elements[i].checked) {
				// включаем в список отправки (JSON)
				//poststr += x.elements[i].name + ':' + x.elements[i].checked + ','; // POST
				poststr += '"' + x.elements[i].name + '"' + ':' + x.elements[i].checked + ','; // GET
			}
			if (x.elements[i].type=='text' && x.elements[i].value!='') {
				// включаем в список отправки (JSON)
				//poststr += x.elements[i].name + ':' + x.elements[i].value + ','; // POST
				poststr += '"' + x.elements[i].name + '"' + ':' + '"' + x.elements[i].value + '"' + ','; // GET
			}
		}
	  }
	if (poststr!='{') {
		poststr = poststr.substring(0,poststr.length-1) + '}'; 
		var ajaxurl = 'http://' + location.hostname + '/mailing/subscribe';
		makePOSTRequest(ajaxurl, '?fields=' + poststr);}
	else { document.getElementById(outErrAreaID).innerHTML='Нет данных для отправки'; 
	}		  
}
// сборка строки для отправки (frmID - ид формы, outAreaID/outSuccAreaID - ид элементов куда выводится результат, posID - то что должно быть отправлено, т.е. в ид полей должна быть это)
function sendAJAXReq2(frmID, outErrAreaID, outSuccAreaID, posID) {
	  //var poststr = '{';
	  var poststr = "?rpid=" + posID;//.replace(/_/,"")alert(poststr);
	  var x=document.getElementById(frmID);
	  errAreaID = outErrAreaID; succAreaID = outSuccAreaID;
	  for (var i=0; i<x.length-1; i++) {//
		if ((x.elements[i].tagName == 'INPUT' || x.elements[i].tagName == 'SELECT') && (x.elements[i].type!='file') && (x.elements[i].id.indexOf('_' + posID + '_')>0) && (x.elements[i].type!='hidden') && (x.elements[i].id.indexOf('selected')==-1)) {
			if (x.elements[i].type=='checkbox') { //&& x.elements[i].checked)
				// включаем в список отправки (JSON)
				//poststr += x.elements[i].name + ':' + x.elements[i].checked + ','; // POST
				poststr += "&" + x.elements[i].name.replace(/RecallPosition/,"").replace("[" + posID + "]","").replace("[","").replace("]","") + "=" + ((x.elements[i].checked)?"1":"0"); // GET
			} //if (x.elements[i].type=='text' && x.elements[i].value!='') 
			else {
				// включаем в список отправки (JSON)
				//poststr += x.elements[i].name + ':' + x.elements[i].value + ','; // POST
				//poststr += '"' + x.elements[i].name + '"' + ':' + '"' + x.elements[i].value + '"' + ','; // JSON GET
				if (x.elements[i].value == null) {x.elements[i].value=' ';}
				poststr += "&" + x.elements[i].name.replace(/RecallPosition/,"").replace("[" + posID + "]","").replace("[","").replace("]","") + "=" + x.elements[i].value; // GET
			}
		}
	  }
	var ajaxurl = 'http://' + location.hostname + '/recall/oneupdate';
	//document.getElementById(outErrAreaID).innerHTML=poststr;
	makePOSTRequest(ajaxurl, poststr);
	}
function sendTopSearchForm(m){
	if (m) {
		loc="http://www.bartersib.ru/site/YandexSearch?text=" + document.getElementById("search_text").value + "&searchid=155746&web=0#1293&";
		window.location=loc;
	} else {
		window.location="http://www.bartersib.ru/site/search/searchText/" + document.getElementById("search_text").value + "/";
	}
}
// проверка нажатия ENTER
function fKeyEnter(e){var keynum;if(window.event){keynum=e.keyCode;}else if(e.which){keynum=e.which;}
if(keynum==13){
	keynum=document.getElementById('RadioGroupSearchModeYandex').checked;
	sendTopSearchForm(keynum);}}	
function fReviewReplayClick(n) {
  var x=document.getElementById("reviewTextArea");
  x.value=n + ",";}
function fSearchWordCountIncrement(w) {
	var ajaxurl = 'http://' + location.hostname + '/site/SearchWordCountIncrement/searchText/' + w;
	makePOSTRequest(ajaxurl, ''); return}

//Изменение допустимой длинны строки при вводе + изменяем кол-во оставшихся для ввода букв
function UpdateKeyUpStrLen(current,max_len,id) {
 var view_len=max_len-current.value.length;
 if (view_len < 0) {
 $(current).attr("value", current.value.substring(0, max_len-1));
 view_len = 0;
 }
 //$(current).nextAll('.count').html(view_len.toString());
 cntr_id='#' + id;
 $(cntr_id).html(view_len.toString());
}
