
function HCConstr_setHiddenData(value, id)
{
  hiddenObj = document.getElementById(id);
  hiddenObj.value = value;
}

function HCConstr_checkSBMTdisabled()
{
  genhcsbmtObj = document.getElementById('genhcsbmt');

  //Проверка на правильное указание e-mail'а отправителя
  senderEmailObj = document.getElementById('senderEmail_id');
  senderEmail = trim(senderEmailObj.value);
  if(!mailvalid(senderEmail))
  {
    genhcsbmtObj.disabled = true;
    return 0;
  }

  //Проверка наличия хотя-бы одного получателя или пользователя, указанного в поле
  recieverEmailObj = document.getElementById('recieverEmail_id');
  recieverEmail = trim(recieverEmailObj.value);
  if(recieverEmailsList.length == 0 && !mailvalid(recieverEmail))
  {
    genhcsbmtObj.disabled = true;
    return 0;
  }

  genhcsbmtObj.disabled = false;
  return 1;
}

/////////////////////////////////////////////////////////////////////////////////////////////////
//  Список получателей  ////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////

function HCConstr_addReciever()
{
  recieverNameObj = document.getElementById('recieverName_id');
  recieverEmailObj = document.getElementById('recieverEmail_id');

  recieverName  = trim(recieverNameObj.value);
  recieverEmail = trim(recieverEmailObj.value);

  //Проверка на правильность емайла
  if(!mailvalid(recieverEmail))
  {
    recieverEmailObj.value = recieverEmail;
    alert('Значение E-mail ошибочно. Для добавления нового получаетля, это значение должно быть правильным!');
    recieverEmailObj.focus();
    return 0;
  }

  //Добавляем в массив
  recieverNamesList[recieverNamesList.length] = recieverName;
  recieverEmailsList[recieverEmailsList.length] = recieverEmail;

  //Обновляем список
  HCConstr_refreshRecieverList();

  //Обнуляем поля
  recieverNameObj.value = '';
  recieverEmailObj.value = '';
}

function HCConstr_dropReciever(arrayPos)
{
  if(recieverNamesList.length >= arrayPos && recieverEmailsList.length >= arrayPos)
  {
    //Генерируем имя и мыло
    name = recieverNamesList[arrayPos];
    if(recieverNamesList[arrayPos] != '') name += ' <';
    name += recieverEmailsList[arrayPos];
    if(recieverNamesList[arrayPos] != '') name += '>';

    if(confirm('Вы точно хотите удалить получателя ' + name + '?'))
    {
      recieverNamesList.splice(arrayPos, 1);
      recieverEmailsList.splice(arrayPos, 1);

      //Обновляем список
      HCConstr_refreshRecieverList();
    }
  }
}

function HCConstr_refreshRecieverList()
{
  recieverListObj = document.getElementById('recieverList_id');

  text = '';
  reciever_name_list = '';
  reciever_email_list = '';
  len = recieverEmailsList.length - 1;

  for(i = 0; i <= len; i++)
  {
    //Добавляем хтмпл тэг
    text += "<a href='#' onclick='HCConstr_dropReciever(" + i + ");' class='recieverList_href'>";

    //Добавляем имя
    text += recieverNamesList[i];

    reciever_name_list += recieverNamesList[i];

    //Если имя указано, то добавляем ' <'
    if(recieverNamesList[i] != '')
      text += ' &#60;';

    //Добавляем email
    text += recieverEmailsList[i];

    reciever_email_list += recieverEmailsList[i];

    //Если имя указано, то добавляем '>'
    if(recieverNamesList[i] != '')
      text += '&#62;';

    //Добавляем хтмпл тэг
    text += "</a>";

    //Запятая в конце, если получатель не последний в списке
    if(i + 1 <= len)
    {
      text += ', ';
      reciever_name_list += '~rnlspcr~';
      reciever_email_list += '~relspcr~';
    }
  }

  //Записывает данные в хиддены
  HCConstr_setHiddenData(reciever_name_list, 'reciever_name_list_id');
  HCConstr_setHiddenData(reciever_email_list, 'reciever_email_list_id');

  recieverListObj.innerHTML = text;

  HCConstr_checkSBMTdisabled();
}

/////////////////////////////////////////////////////////////////////////////////////////////////
//  Текстовые данные открытки  /////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////

function HCConstr_refreshCartData(taObjectID, divObjectID)
{
  taObject = document.getElementById(taObjectID);
  divObject = document.getElementById(divObjectID);

  text = taObject.value;
  if(text == '')
    text = "<br>";

  divObject.innerHTML = text;
}

function HCConstr_refreshCaption()
{
  HCConstr_refreshCartData('hc_caption_id', 'hcard_caption');
}

function HCConstr_refreshText()
{
  HCConstr_refreshCartData('hc_text_id', 'hcard_text_id');
  divObject = document.getElementById('hcard_text_id');

  taObject = document.getElementById('hc_text_id');
  if(taObject.value != '')
    divObject.style.visibility = 'visible';
  else
    divObject.style.visibility = 'hidden';

  divObject.style.width = "100%";
}

/////////////////////////////////////////////////////////////////////////////////////////////////
//  Мелодии  ///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////

function HCConstr_changeMIDIpart(midiPartListObj)
{
  value = midiPartListObj.value;
  HCConstr_playMIDISTOP();

  if(value > 0)
  {
    req = initXMLHTTPRequest();

    if(req)
    {
      showElement('text_slipper');
      req.onreadystatechange = function(){ HCConstr_changeMIDIpart_onReadyState(); }
      sendAJAXRequest(req, './ajax/ajax_midilist_data.php?id='+value);
    }
  }
  else
    HCConstr_setNULLMIDIlist();
}

function HCConstr_changeMIDIpart_onReadyState()
{
  var ready = req.readyState;
  var data = null;

  //Проверка ReadyState
  if((ready == 4) && (req.status == 200))//READY_STATE_COMPLETE
  {
    //Чтение данных ответа
    data = req.responseText;
  }
  else
  {
    data = "Загрузка...";
  }

  if((ready == 4) && (req.status == 200))//READY_STATE_COMPLETE
    HCConstr_setMIDIlist(data);
}

function HCConstr_setMIDIlist(data)
{
  obj = document.getElementById('hc_midilist_id');

  obj.disabled = false;
  obj.innerHTML = '';
  optionList = data.split(":");

  addSelectorOption(obj, '-- Выберите мелодию', 0);

  for(i = 0; optData = optionList[i]; i++)
  {
    optDataArr = optData.split(">");
    addSelectorOption(obj, optDataArr[1], optDataArr[0]);
  }

  //Если список пуст
  if(i == 0)
    HCConstr_setNULLMIDIlist();

  hideElement('text_slipper');
}

function HCConstr_setNULLMIDIlist()
{
  if(obj = document.getElementById('hc_midilist_id'))
  {
    obj.disabled = true;
    obj.innerHTML = '';
    addSelectorOption(obj, '^^^ Выберите жанр', '');
  }
}

function writeObjectData(obj)
{
  txt = '';
  for(var i in obj)
    txt += "obj."+i+"="+obj[i]+"<br>";

  document.write(txt);
}

function HCConstr_playMIDI()
{
  midiPartSelectorObj = document.getElementById('hc_midipart_id');
  midiSelectorObj = document.getElementById('hc_midilist_id');
  midiPlayerDivObj = document.getElementById('midiplayerdiv_id');

  HCConstr_playMIDISTOP();

  if(midiPartSelectorObj.value == 0 || midiSelectorObj.value == 0) return 0;

  midiName = "./files/midifiles/"+midiPartSelectorObj.value+"/"+midiSelectorObj.value+".mid";
  embed = '<EMBED width="225" height="20" autostart="true" loop="true" src="'+midiName+'"></EMBED>';

  midiPlayerDivObj.innerHTML = embed;
  HCConstr_setHiddenData(midiSelectorObj.value, 'midifile_id_id');
}

function HCConstr_playMIDISTOP()
{
  midiPlayerDivObj = document.getElementById('midiplayerdiv_id');
  midiPlayerDivObj.innerHTML = '';

  HCConstr_setHiddenData('', 'midifile_id_id');
}

/////////////////////////////////////////////////////////////////////////////////////////////////
//  Окна  //////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////



/////////////////////////////////////////////////////////////////////////////////////////////////
//  Окно выбора фонового рисунка  //////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////

function HCConstr_setbgimageWindow_show()
{
  showBlackBack();

  width = 600;
  height = 350;

  windowObj = document.getElementById('hcard_bgimage_windowdiv');
  windowObj.style.width = width;
  windowObj.style.height = height;
  windowObj.style.left = (getClientWidth() - width) / 2;
  windowObj.style.top = (getClientHeight() - height) / 2;
  windowObj.style.display = 'inline';
}

function HCConstr_setbgimage(fname)
{
  hcardConstrTableObj = document.getElementById('hcardconstr_table_id');
  hcardConstrTableObj.style.backgroundImage = "url(" + fname + ".jpg)";
  HCConstr_setHiddenData(fname, 'back_ground_id');
  WindowHide('hcard_bgimage_windowdiv');
}

/////////////////////////////////////////////////////////////////////////////////////////////////
//  Окно выбора цвета текста в открытке  ////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////

function HCConstr_colorsettingWindow_show()
{
  showBlackBack();

  width = 560;
  height = 200;

  windowObj = document.getElementById('hcard_colorsetting_windowdiv');
  windowObj.style.width = width;
  windowObj.style.height = height;
  windowObj.style.left = (getClientWidth() - width) / 2;
  windowObj.style.top = (getClientHeight() - height) / 2;
  windowObj.style.display = 'inline';
}

///!!!
function HCConstr_setColorSettingsWindow_save()
{
  colorObj = document.getElementById('hcard_window_border_color_id');

  cardCaptionObj = document.getElementById('hcard_caption');
  cardTextObj = document.getElementById('hcard_text_id');

  cardCaptionObj.style.color = '#' + colorObj.value;
  cardTextObj.style.color = '#' + colorObj.value;

  HCConstr_setHiddenData(colorObj.value, 'border_color_id');

  WindowHide('hcard_colorsetting_windowdiv');
}

function HCConstr_settextcolorclick(color)
{
  cardCaptionObj = document.getElementById('hcard_caption');
  cardTextObj = document.getElementById('hcard_text_id');

  cardCaptionObj.style.color = '#' + color;
  cardTextObj.style.color = '#' + color;
  HCConstr_setHiddenData(color, 'text_color_id');

  WindowHide('hcard_colorsetting_windowdiv');
}

/////////////////////////////////////////////////////////////////////////////////////////////////
//  Окно выбора цвета фона в открытке  ////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////

function HCConstr_fonColorsettingWindow_show()
{
  showBlackBack();

  width = 560;
  height = 110;

  windowObj = document.getElementById('hcard_foncolorsetting_windowdiv');
  windowObj.style.width = width;
  windowObj.style.height = height;
  windowObj.style.left = (getClientWidth() - width) / 2;
  windowObj.style.top = (getClientHeight() - height) / 2;
  windowObj.style.display = 'inline';
}

function HCConstr_setfoncolorclick(color)
{
  cardCaptionObj = document.getElementById('hcard_caption');
  cardTextObj = document.getElementById('hcard_text_id');
  hcTableObj = document.getElementById('hcardconstr_table_id');

  cardCaptionObj.style.backgroundColor = '#' + color;
  cardTextObj.style.backgroundColor = '#' + color;
  hcTableObj.style.backgroundColor = '#' + color;

  HCConstr_setHiddenData(color, 'bg_color_id');

  WindowHide('hcard_foncolorsetting_windowdiv')
}

function HCConstr_dropFonColor()
{
  cardCaptionObj = document.getElementById('hcard_caption');
  cardTextObj = document.getElementById('hcard_text_id');
  hcTableObj = document.getElementById('hcardconstr_table_id');

  cardCaptionObj.style.backgroundColor = 'transparent';
  cardTextObj.style.backgroundColor = 'transparent';
  hcTableObj.style.backgroundColor = 'transparent';

  HCConstr_setHiddenData('', 'bg_color_id');

  WindowHide('hcard_foncolorsetting_windowdiv')
}

/////////////////////////////////////////////////////////////////////////////////////////////////
//  Окно выбора стиля рамки  ///////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////

function HCConstr_setBorderStyleWindow_show()
{
  showBlackBack();

  width = 570;
  height = 230;

  windowObj = document.getElementById('hcard_borderstyle_windowdiv');
  windowObj.style.width = width;
  windowObj.style.height = height;
  windowObj.style.left = (getClientWidth() - width) / 2;
  windowObj.style.top = (getClientHeight() - height) / 2;
  windowObj.style.display = 'inline';
}

function HCConstr_setBorderStyleWindow_save()
{
  thinObj = document.getElementById('hcard_window_border_thin_id');
  colorObj = document.getElementById('hcard_window_border_color_id');
  borderObj = document.getElementById('hcard_carddiv');

  borderObj.style.borderWidth = thinObj.value;
  HCConstr_setHiddenData(thinObj.value, 'border_width_id');

  borderObj.style.borderColor = '#' + colorObj.value;
  HCConstr_setHiddenData(colorObj.value, 'border_color_id');

  WindowHide('hcard_borderstyle_windowdiv');
}

function HCConstr_setBorderColor(color)
{
  colorObj = document.getElementById('hcard_window_border_color_id');
  colorObj.value = color;
}

function HCConstr_dropBorder()
{
  borderObj = document.getElementById('hcard_carddiv');

  borderObj.style.borderWidth = 0;
  HCConstr_setHiddenData('', 'border_width_id');
  HCConstr_setHiddenData('', 'border_color_id');

  WindowHide('hcard_borderstyle_windowdiv');
}


