var get_string = ''; // Массив с параметрами GET запроса

function Search()
{
	type = $("#typesearchform").val();
	search = $("#searchinputform").val();
	if(search == 'Что ищем?') search = '';
	if(search == '' || search.lenght < 3) {
		alert('Вы не указали критерий поиска, либо он слишком маленький');
		$("#searchinputform").focus();
		return false;
	}
	url = 'http://'+window.location.hostname+'/?an=search&type='+type+'&val='+search;
	window.location.replace(url);
	return false;
}
function DefaultValueSearch()
{
	val = $("#searchdiv").val();
	if(val=='') {
		$("#searchdiv").attr('value','Что ищем?');
	}
	if(val=='Что ищем?') {
		$("#searchdiv").attr('value','');
	}
}
// Функция загружает с сервера данные и помещает его в указанный блок
function LoadContent(url,block,param,notpreloading,return_res)
{
    if(typeof(url) == 'object') url = url.href;
    if(url.indexOf(window.location.hostname) < 0) url = 'http://'+window.location.hostname+url;
   if(!param) param = new Array();
   $("#"+block).empty();
   if(!notpreloading)
   {
      message_preload = '<div style="text-align:center;font-weight:bold;"><img src="/a_php/common/icon/ajax2.gif" border="0"><br>Идет загрузка данных...</div>';
      $("#"+block).html(message_preload);
   }
   data_param = '';  // Переменная, хранящая массив передаваемых параметров
   for (key in param)
   {
      data_param += key+'='+param[key]+'&';
   }
   data_param = data_param.substring(0,data_param.length-1);
   $.ajax({
      type: 'POST',
      url: url,
      data: data_param,
      error: function(XMLHttpRequest){
         msg_error = SetErrorQuery(XMLHttpRequest);
         msg_error = '<div style="margin:10px;text-align:center;font-weight:bold;">'+msg_error+'</div>';
         $("#"+block).html(msg_error);
         msg_error = null;
      },
      cache: true,
      async: true,
      success: function(msg){
         if(!return_res) $("#"+block).html(msg);
         else return msg;
         msg = null;
      }
   });
   return false;
}
// Функция определяет код ошибки и возвращает описание
function SetErrorQuery(XMLHttpRequest)
{
   array_error = new Array();
   array_error[200] = 'OK';
   array_error[201] = 'Created (объект создан)';
   array_error[202] = 'Accepted (информация принята)';
   array_error[203] = 'Non-Authoritative Information (не заслуживающая доверия информация)';
   array_error[204] = 'No Content (нет содержания)';
   array_error[205] = 'Reset Content (восстановить исходное содержание)';
   array_error[206] = 'Partial Content (частичное содержание)';
   array_error[300] = 'Multiple Choices (несколько вариантов на выбор)';
   array_error[301] = 'Moved Permanently (ресурс перемещен на постоянной основе)';
   array_error[302] = 'Moved Temporarily (ресурс временно перемещен)';
   array_error[303] = 'See Other (смотрите другой ресурс)';
   array_error[304] = 'Not Modified (не изменился)';
   array_error[305] = 'Use Proxy (используйте прокси-сервер)';
   array_error[400] = 'Bad Request (некорректный запрос)';
   array_error[401] = 'Unauthorized (нет разрешения)';
   array_error[402] = 'Payment Required (требуется оплата)';
   array_error[403] = 'Forbidden (доступ запрещен)';
   array_error[404] = 'Not Found (запрошенный документ не найден)';
   array_error[405] = 'Method Not Allowed (недопустимый метод)';
   array_error[406] = 'Not Acceptable (неприемлемый запрос)';
   array_error[407] = 'Proxy Authentication Required (необходима регистрация на сервере-представителе)';
   array_error[408] = 'Request Timeout (время обработки запроса истекло)';
   array_error[409] = 'Conflict (конфликт)';
   array_error[410] = 'Gone (ресурса больше нет)';
   array_error[411] = 'Length Required (необходимо указать длину)';
   array_error[412] = 'Precondition Failed (не выполнено предварительное условие)';
   array_error[413] = 'Request Entity Too Large (запрашиваемый элемент слишком велик)';
   array_error[414] = 'Request-URI Too Long (идентификатор ресурса в запросе слишком длинный)';
   array_error[415] = 'Unsupported Media Type (неподдерживаемый тип устройства)';
   array_error[500] = 'Internal Server Error (внутренняя ошибка сервера)';
   array_error[501] = 'Not Implemented (функция не реализована)';
   array_error[502] = 'Bad Gateway (дефект шлюза)';
   array_error[503] = 'Service Unavailable (служба недоступна)';
   array_error[504] = 'Gateway Timeout (время прохождения через шлюз истекло)';
   array_error[505] = 'HTTP Version Not Supported (неподдерживаемая версия HTTP)';
   code_status = XMLHttpRequest.status;
   msg_error = 'Ошибка '+XMLHttpRequest.status+' - ';
   if(array_error[code_status] != undefined) msg_error += array_error[code_status];
   else msg_error += XMLHttpRequest.statusText;
   array_error = code_status = XMLHttpRequest = null;
   return msg_error;
}
// Функция открывает блок
function ShowBlock(block)
{
   $("#"+block).animate({height: "show"}, 1000);
   return false;
}
function HideBlock(block)
{
   $("#"+block).animate({height: "hide"}, 1000);
   return false;
}

// Функция собирает данные из формы и отправляет запрос на сервер
function SendForm(form_id,block)
{
   block_field_types = new Array();
   block_field_types['botton'] = 1;
   block_field_types['submit'] = 1;
   formfield = $("#"+form_id+" :input");
   action = jQuery.trim($("#"+form_id).attr('action'));
   if(action == '' || action == undefined) {
      action = document.location.href;
   }
   count_field = formfield.length;
   param = new Array();
   for(s = 0; s < count_field; s++)
   {
      if(block_field_types[formfield[s].type] == undefined) {
         value = jQuery.trim(formfield[s].value);
         param[formfield[s].name] = value;
      }
   }
   block_field_types = formfield = null;
   LoadContent(action,block,param,0);
   return false;
}
// Функция добавляем рецензию к фильму
function AddReview()
{
    param = new Array();
    param['review'] = jQuery.trim($("#reviewtext").val());
    param['title'] = jQuery.trim($("#titlereview").val());
    if(!param['review'] || param['review'].length < 50) {
        alert('Ваша рецензия должна быть больше 50 символов');
        return false;
    }
    param['num'] = $("#num").val();
    if(!param['num']) {
        alert('Ошибка формирования отправки данных'); 
        return false;
    }
    url = $("#formaddreview").attr('action');
    LoadContent(url,'formreview',param);
    return false;
}
// Функция голосует за трек
function PollMovie()
{
   param = new Array();
   url = $("#formpoll").attr('action');
   param['num'] = $("#numpoll").val();
   param['bal'] = $("#pollselect").val();
   if(!param['num'] || param['num']<1) {
      alert('Внутренняя ошибка голосования');
      return false;
   }
   if(!param['bal'] || param['bal'] < 1) {
      alert('Укажите Вашу оценку фильму');
      return false;
   }
   LoadContent(url,'pollblock',param);
   return false;
}
// Функция проверяет форму изменения логина и выводит ошибку
function ChangeLogin()
{
   error = '';
   current_login = jQuery.trim($("#current_login").text());
   newlogin = jQuery.trim($("#newlogin").val());
   if(newlogin == '' || newlogin == undefined) {
      error = 'Введите новый логин';
   }
   if(newlogin == current_login) {
      error = 'Введенный логин соответствует старому';
   }
   if(error != '') {
      $("#errMsg").html(error);
      $("#newlogin").focus();
      error = '';
      return false;            
   }
   param = new Array();
   param['newlogin'] = newlogin;
   param['action'] = $("#action").val();
   url = $("#url").val();
   return LoadContent(url,'chinfo',param);
}
// Функция проверяет форму изменения пароля
function ChangePassword()
{
   error = '';
   pass1 = $("#pass1").val();
   pass2 = $("#pass2").val();
   if(pass1 == '' || pass2 == '') {
      error = 'Укажите пароль и повторите его';
   }
   if(pass1 != pass2) {
      error = 'Введенные пароли не совпадают';
   }
   if(error != '') {
      $("#errMsg").html(error);
      return false;
   }
   param = new Array();
   param['pass1'] = pass1;
   param['pass2'] = pass2;
   param['action'] = 'edit';
   url = $("#editInfo").attr('action');
   LoadContent(url,'chinfo3',param,0,1);
   $("#chinfo3").html('Пароль изменен');
   setTimeout(function(){
      LoadContent('/?an=link_pass_tpl','chinfo3');
   },2000);
   return false;   
}
//Функция меняет мыло пользователя
function ChangeEmail(url)
{
   param = new Array();
   param['action'] = 'changemail';
   param['newmail'] = $("#newmail").val();
   return LoadContent(url,'chinfo2',param);  
}
// Функция подгружает список городов в профайле пользователя
function SetCity(block)
{
   val = $("select#country_ank").val();
   if(val > 0)
   {
      url = '/a_php/sessauth/a_dmin/profile/list_town.php?country='+val;
      return LoadContent(url,block,'',0);
   }
   else {
      mess = '<select id="city" name="city" class="select_city"><option value="0">Выберите страну</option></select>';
      $("#city_div_ank").html(mess);
      mess = null;
   }
}
// Функция разбирает строку GET запроса и возвращает массив
function parse_str(str,array)
{
   if(old_url == undefined) {
      var old_url = '';
      var parse_url = new Array();
   }
   if(old_url == str) return parse_url;
   else old_url = str;
   str = str.replace('?','');
   glue1 = '=';
   glue2 = '&';
   array2 = str.split(glue2);
   array3 = [];
   for(var x=0; x<array2.length; x++){
      tmp = array2[x].split(glue1);
      array3[unescape(tmp[0])] = unescape(tmp[1]).replace(/[+]/g, ' ');
   }
   glue1 = glue2 = array2 = tmp = str = null;
   parse_url = array3;
   if(array){
      array = array3;
   } else{
      return array3;
   }
}
function SendError(el)
{
	/*
	hs.marginRight = 200;
	hs.showCredits = false;
	hs.headingText = 'Сообщение об ошибке';
	hs.useBox = true;
	hs.wrapperClassName = 'wide-border';
	*/
	return hs.htmlExpand(el,{objectType:'iframe',contentId:'errormess'});
}
$(document).ready(function()
{
   get_string = parse_str(window.location.search);
   if(get_string['an'] != undefined)
   {
      // Если поиск - формируем строку поиска
      if(get_string['an'] == 'search')
      {
         $("select#typesearch option[value='"+get_string['typesearch']+"']").attr('selected','selected');
      }      
   }
   if(get_string['an'] == 'callback')
   {
	   jQuery("#calbackformtable input[type=submit]").bind('click',function()
	   {
		   error = true;
		   jQuery("#calbackformtable input[type=text]").each(function() {
			   if(jQuery(this).val() == '') {
				   if(error) alert('Заполните все поля формы');
				   jQuery(this).focus();
				   error = false;
			   }
		   });
		   jQuery("#calbackformtable textarea").each(function() {
			   if(jQuery(this).val() == '') {
				   if(error) alert('Заполните все поля формы');
				   jQuery(this).focus();
				   error = false;
			   }			   
		   });
		   return error;
	   });
   }
    if($.browser.msie)
    {
        if($.browser.version < 7) {
            $(".block_r_title").css('padding-top','0px');
        }
    }
    // Добавляем функционал отправки страницы в закладки
    liveinternet = 'http://www.liveinternet.ru/journal_post.php?action=n_add&cnurl='+encodeURIComponent(window.location.href)+'&cntitle_win='+(unescape(document.title));
    jQuery(".liveinternet").html('<img src="http://i.li.ru/images/icons/16.gif" border="0">');
    jQuery(".liveinternet").attr('href',liveinternet);
    jQuery(".liveinternet").attr('title','Запостить на LiveInternet');
    jQuery(".liveinternet").attr('target','_blank');    
});