﻿function InitAjax()
{
var objXMLHttp=null;
	if (window.XMLHttpRequest)
	{
		objXMLHttp=new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	return objXMLHttp;
}

function toempty(elem, value)
{
	if( elem.value == value )
	{
		elem.value = "";
	}
	else if( elem.value == "" )
	{
		elem.value = value;
	}
}

function submitRating( Rating, ObjectId )
{
	var gridG = document.getElementById('ObjectRatingResult');
	var xmlhttp = InitAjax();
		if (xmlhttp)
		{
			gridG.innerHTML = '<br /><br /><center><img src="/images/main/ajax-loader.gif"/></center>';
			xmlhttp.open("GET", "/ajax.php?Action=RateObject&Rating="+ Rating +"&ObjectId="+ObjectId);
			xmlhttp.onreadystatechange = function()
			{
				if (xmlhttp.readyState==4)
				{
					gridG.innerHTML = xmlhttp.responseText;
				}
		}
		xmlhttp.send(null);
	}
}


function addObjectReview(Body, ObjectId)
{
	var gridG = document.getElementById('ReviewResult');
	var xmlhttp = InitAjax();
	if(Body != '')
	{
		if(xmlhttp)
		{
			sURL = '/ajax.php';
			sParams = 'Action=ReviewObject&ObjectId='+ObjectId+"&Body="+Body;
			gridG.innerHTML = '<img src="/images/main/ajax-loader.gif" style="padding-left:12px;" />';
			xmlhttp.open('POST', sURL, true);
			xmlhttp.setRequestHeader('Method', 'POST '+sURL+' HTTP/1.1');
			xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			xmlhttp.setRequestHeader('Content-Length', sParams.length);
			xmlhttp.onreadystatechange = function()
			{
				if (xmlhttp.readyState==4)
				{
					gridG.innerHTML = xmlhttp.responseText;
				}
			}
			xmlhttp.send(sParams);
		}
	}
}


function checkregisterform () {
	var returnValue = true;
	var RegEmail = document.getElementById('RegEmail').value;
	var RegPassword = document.getElementById('RegPassword').value;
	var RegConfirmPassword = document.getElementById('RegConfirmPassword').value;
	var formresult = document.getElementById('formresult');
	formresult.innerHTML = '';
	var errorMsg = '';

	var AtPos = RegEmail.indexOf("@")
	var StopPos = RegEmail.lastIndexOf(".")
	if (AtPos == -1 || StopPos == -1) {
		errorMsg = "Адрес электронной почты имеет неверный формат.";
	}

	if (RegPassword != RegConfirmPassword) {	errorMsg = "Пароли не совпадают между собой.";	}
	if (RegPassword.length < 5) {	errorMsg = "Пароль должен быть не менее 5 символов.";	}
	if (RegEmail == "") {	errorMsg = "Адрес электронной почты не указан.";	}

	if (errorMsg != "") {
		formresult.innerHTML = '<span style="color:red;">'+ errorMsg +' Пожалуйста исправьте ошибки и повторите отправку данных.</span';
		returnValue = false;
	}
	return returnValue;
}

function checkcontactform() {
	var returnValue = true;
	var fname = document.getElementById('fname').value;
	var femail = document.getElementById('femail').value;
	var subject = document.getElementById('fsubject').value;
	var body = document.getElementById('fbody').value;
	var formresult = document.getElementById('formresult');
	formresult.innerHTML = '';
	var errorMsg = '';

	var AtPos = femail.indexOf("@")
	var StopPos = femail.lastIndexOf(".")
	if (AtPos == -1 || StopPos == -1) {
		errorMsg = "Адрес электронной почты имеет неверный формат.";
	}

	if (fname == "Ваше имя" || femail == "Ваш Email" || subject == "Тема" || body == "") {
		errorMsg = "Обязательные к заполненю поля не заполнены.";
	}

	if (errorMsg != "") {
		formresult.innerHTML = '<span style="color:red; font-size:11px">Ошибка: '+ errorMsg +'. Пожалуйста исправьте ошибки и повторите отправку данных.</span>';
		returnValue = false;
	}
	return returnValue;
}

function submitsearchform() {
	var country = document.getElementById('TravelCountrysearch').value;
	var city = rawurlencode( document.getElementById('TravelCitysearch').value );
  var name = rawurlencode( document.getElementById('TravelNamesearch').value );
  var value = '/search/';
  if( country || city || name )
  {
    value += ( country ? country : 'any' ) + '/';
  }
  if( name )
  {
   value += ( city ? city : 'any' ) + '/' + ( name ? name + '/' : '' );
  }
  else if( city )
  {
   value += ( city ? city : 'any' ) + '/';
  }
  var flt = document.getElementById('cb1').checked == true ? 'a' : '';
  flt += document.getElementById('cb2').checked == true ? 'b' : '';
  flt += document.getElementById('cb3').checked == true ? 'c' : '';
  flt += document.getElementById('cb4').checked == true ? 'd' : '';
  flt += document.getElementById('cb5').checked == true ? 'e' : '';
  flt += document.getElementById('cb6').checked == true ? 'f' : '';
  flt += document.getElementById('cb7').checked == true ? 'g' : '';
  flt += document.getElementById('cb8').checked == true ? 'h' : '';
  flt += document.getElementById('cb9').checked == true ? 'i' : '';
  flt += document.getElementById('cb10').checked == true ? 'j' : '';
  if( flt == 'abcdefghij' || flt == '' )
  {
    flt = '';
  }
  else
  {
    flt = 'flt' + flt + '/';
  }
  value += flt;
  document.location.href=value;
	return true;
}

String.prototype.trim = function () {
  return this.replace(/^\s*|\s*$/,"");
}

function rawurlencode( str ) {
    var str = str.trim();
    var histogram = {}, tmp_arr = [], unicodeStr='', hexEscStr='';
    var ret = str.toString();

    var replacer = function(search, replace, str) {
        var tmp_arr = [];
        tmp_arr = str.split(search);
        return tmp_arr.join(replace);
    };

    // The histogram is identical to the one in urldecode.
   histogram[' ']   = '%20';
   histogram['!']   = '%21';
   histogram['#']   = '%23';
   histogram['$']   = '%24';
   histogram['\\']  = '';
   histogram["'"]   = '';
   histogram['"']   = '%27';
   histogram['(']   = '%28';
   histogram[')']   = '%29';
   histogram['*']   = '%2A';
   histogram['+']   = '%2B';
   histogram[',']   = '%2C';
   histogram['/']   = '';
   histogram[':']   = '%3A';
   histogram[';']   = '%3B';
   histogram['=']   = '%3D';
   histogram['?']   = '%3F';
   histogram['@']   = '%40';
   histogram['~']   = '%7E';


    // Begin with encodeURIComponent, which most resembles PHP's encoding functions
    //ret = encodeURIComponent(ret);
    for (unicodeStr in histogram) {
        hexEscStr = histogram[unicodeStr];
        ret = replacer(unicodeStr, hexEscStr, ret); // Custom replace. No regexing
    }

    return ret;
}
