
function assistant(inited){
  if(!inited){
    $.get(fullBase + lang +'/c/assistant/', {}, function(data){
      $('body').append(data);
      assistant(true);
    });

  } else {
    var $assistant = $('#assistant');
    var $overlay = $("#overlay")
    form_overlay('assistant');

    if ('none' == $assistant.css('display'))
    {
      $assistant.show();
    } else {
      $assistant.hide();
      $overlay.hide();
    }
  }
}

/* popup order device */
function popup_order_device(inited){
  if(!inited){
    $.get(fullBase + lang +'/c/popup_order_device/', {}, function(data){
      $('body').append(data);
      popup_order_device(true);
    });

  } else {
    var $popup = $('#orderDevice');
    var $form = $('#orderDevice form');
    var $report = $('#orderDevice div.report');
    var $overlay = $("#overlay")
    form_overlay('orderDevice');

    if ('none' == $popup.css('display')){
      $popup.show();

      $form.submit(function(){
        var error = 0;

        if(!isValidByPattern('f-name', nameValidationPattern))
          error++;

        if(!isValidByPattern('f-phone', phoneStrongValidationPattern))
          error++;

        if(getElementValue('f-email')){
          if(!isValidByPattern('f-email', emailValidationPattern))
            error++;
        }

        if(!isValidByPattern('f-devices', nameValidationPattern))
          error++;

        if(!isValidByPattern('f-outlets', emailValidationPattern))
          error++;

        if(!error) {
          $.post(
          fullBase + lang +'/c/popup_order_device/send/',
          {
            'data[name]': getElementValue('f-name'),
            'data[phone]': getElementValue('f-phone'),
            'data[email]': getElementValue('f-email'),
            'data[device]': getElementValue('f-devices'),
            'data[mailto]': getElementValue('f-outlets')
          },
          function(data){
            switch(data){
              case 'true':
              $form.hide();
              $report.show();
              break;
            }
          });
        }


        return false;
      });

    } else {
      $popup.remove();
      $overlay.hide();
    }
  }
}

/* FEEDBACK */
function feedBack (inited)
{
  if(!inited)
  {
    $.get(fullBase + lang +'/c/feedbacks/view', {}, function(data){
      $('body').append(data);
      feedBack(true);
    });

  } else {

    form_overlay('feedback');
    var $feedback = $('#feedback');

    if ('none' == $feedback.css('display'))
    {
      if(getElementValue('feedbackName')) isValidByPattern('feedbackName', nameValidationPatternE);
      if(getElementValue('feedbackPhone')) isValidByPattern('feedbackPhone', phoneValidationPatternE);
      if(getElementValue('feedbackEmail')) isValidByPattern('feedbackEmail', emailValidationPattern);

      $("#rss").hide();
      $("#news").hide();
      $("#sendFriend").hide();
      $("#feedback").show();
      $("#feedBackBlock").show();
      $("#feedBackBlockSuc").hide();
    } else {
      $feedback.hide();;
      $("#overlay").hide();
    }
  }
}
function feedBackSubmit (lang, link)
{
  $("#feedBackBlock").hide();
  $('#feedbackLoading').show();

  // AJAX form submit
  $.post(fullBase+lang+"/misc/feedback/submit/",
    {
      name : getElementValue("feedbackName"),
      phone : getElementValue("feedbackPhone"),
      email : getElementValue("feedbackEmail"),
      comment : getElementValue("feedbackComment"),
      link : link
    },
    function(res)
    {
      if(/^true.*/.test(res))
        $("#feedBackBlockSuc").show();
      else
      {
        $("#feedBackBlock").show();
        forceCheckFeedback();
      }
      $('#feedbackLoading').hide();
    });
}
// do not forget to add check, if one more element required to check
function forceCheckFeedback()
{
  var checkRes = true;
  if(!isValidByPattern('feedbackName', nameValidationPatternE))
    checkRes = false;
  if(!isValidByPattern('feedbackPhone', phoneValidationPatternE))
    checkRes = false;
  if(!isValidByPattern('feedbackEmail', emailValidationPattern))
    checkRes = false;
  if(!isEmpty('feedbackComment'))
    checkRes = false;
  return checkRes;
}

/* SEND FRIEND */
function sendFriend(url, inited)
{
  if(!inited)
  {
    $.get(fullBase + lang +'/c/send_friend/view', {}, function(data){
      $('body').append(data);
      sendFriend(url, true);
    });

  } else {

    form_overlay('sendFriend');
    var $sendFriend = $('#sendFriend');

    if ('none' == $sendFriend.css('display'))
    {
      if(getElementValue('sendFriendSenderName')) isEmpty("sendFriendSenderName");
      if(getElementValue('sendFriendReceiverEmail')) isValidByPattern("sendFriendReceiverEmail", emailValidationPattern);

      $("#rss").hide();
      $("#news").hide();
      $("#feedback").hide();
      $("#sendFriend").show();
      $("#sendFriendBlock").show();
      $("#sendFriendBlockSuc").hide();
      document.getElementById("sendFriendLink").innerHTML = url;
      document.getElementById("sendFriendLink").href = url;
      /**
       * SUGGEST:
        $("#sendFriendLink").html(url);
        $("#sendFriendLink").attr('href', url);
      */
    } else {
      $sendFriend.hide();
      $("#overlay").hide();
    }
  }
}
function sendFriendSubmit (lang, link, title, type)
{
  $("#sendFriendBlock").hide();
  $('#sendFriendLoading').show();

  // AJAX form submit
  $.post(fullBase+lang+"/misc/send_friend/submit/"+(type||''),
    {
      receiverEmail : getElementValue("sendFriendReceiverEmail"),
      senderName : getElementValue("sendFriendSenderName"),
      senderEmail : getElementValue("sendFriendSenderEmail"),
      comment : getElementValue("sendFriendComment"),
      link : link,
      title : title
    },
    function(res)
    {
      if(/^true.*/.test(res))
      {
        document.getElementById("sendFriendLinkWasSentTo").innerHTML = $("#sendFriendReceiverEmail").attr("value");
        $("#sendFriendBlockSuc").show();
        resetSendFriend();
      }
      else
      {
        $("#sendFriendBlock").show();
        forceCheckSendFriend();
      }
      $('#sendFriendLoading').hide();
    });
}
// do not forget to add check, if one more element required to check
function forceCheckSendFriend()
{
  var checkRes = true;
  if(!isEmpty("sendFriendSenderName"))
    checkRes = false;
  if(!isValidByPattern("sendFriendReceiverEmail", emailValidationPattern))
    checkRes = false;

  return checkRes;
}
function resetSendFriend()
{
  document.getElementById("sendFriendReceiverEmail").value = "";
  document.getElementById("sendFriendSenderName").value = "";
  document.getElementById("sendFriendSenderEmail").value = "";
  document.getElementById("sendFriendComment").value = "";
}

/*CHOOSE GREEN*/
function sendFriendGreen(url, inited)
{
  if(!inited)
  {
    $.get(fullBase + lang +'/c/send_friend/green', {}, function(data){
      $('body').append(data);
      sendFriend(url, true);
    });

  } else {

    form_overlay('sendFriend');
    var $sendFriend = $('#sendFriend');

    if ('none' == $sendFriend.css('display'))
    {
      if(getElementValue('sendFriendSenderName')) isEmpty("sendFriendSenderName");
      if(getElementValue('sendFriendReceiverEmail')) isValidByPattern("sendFriendReceiverEmail", emailValidationPattern);

      $("#rss").hide();
      $("#news").hide();
      $("#feedback").hide();
      $("#sendFriend").show();
      $("#sendFriendBlock").show();
      $("#sendFriendBlockSuc").hide();
      document.getElementById("sendFriendLink").innerHTML = url;
      document.getElementById("sendFriendLink").href = url;
      /**
       * SUGGEST:
        $("#sendFriendLink").html(url);
        $("#sendFriendLink").attr('href', url);
      */
    } else {
      $sendFriend.hide();
      $("#overlay").hide();
    }
  }
}

/* NEWS SUBSCRIBE */
var newsSubscriptionMes = '';
function news(inited)
{
  if(!inited)
  {
    $.get(fullBase + lang +'/c/news_subscribers/view', {}, function(data){
      $('body').append(data);
      news(true);
    });

  } else {

    form_overlay('news');
    var $news = $('#news');
    if('none' == $news.css('display'))
    {
      if(getElementValue('newsSubscribeEmail')) isValidByPattern('newsSubscribeEmail', emailValidationPattern);

      $("#feedback").hide();
      $("#rss").hide();
      $("#sendFriend").hide();
      $("#news").show();
      $("#newsBlock").show();
      $("#newsBlockSuc").hide();
    } else {
      $news.hide();
      $("#overlay").hide();
    }
  }
}

function newsSubmit (lang)
{
  if(newsSubscriptionMes == '')
    newsSubscriptionMes = $('#newsBlockSucText').html();
  $("#newsBlock").hide();
  $('#newsSubscribeLoading').show();

  // AJAX form submit
  $.post(fullBase+lang+"/misc/news_email/submit/",
    {
      lang : lang,
      email : $('#newsSubscribeEmail').attr('value'),
      bite_news : $('#newsSubscribeBiteNews').attr('checked'),
      private_offer : $('#newsSubscribePrivateOffer').attr('checked'),
      business_offer : $('#newsSubscribeBusinessOffer').attr('checked'),
      career : $('#newsSubscribeCareer').attr('checked'),
      phones : $('#newsSubscribePhones').attr('checked')
    },
    function(res)
    {
      if(/response==true.*/.test(res))
      {
        // message param set, if already subscribed
        if(/message=\"\'.*\"\'/.test(res))
        {
          document.getElementById('newsBlockSuc').style.textAlign = 'left';
          document.getElementById('newsBlockSuc').style.paddingTop = '20px';
          document.getElementById('newsBlockSuc').style.paddingLeft = '10px';

          var mes = /message=\"\'.*\"\'/.exec(res);
          mes = new String(mes.valueOf());
          mes = mes.replace(/message=/, '')
          mes = mes.substring(2, mes.length-2);
          $('#newsBlockSucText').html(mes);
        }
        else
        {
          document.getElementById('newsBlockSuc').style.textAlign = 'center';
          document.getElementById('newsBlockSuc').style.paddingTop = '40px';
          document.getElementById('newsBlockSuc').style.paddingLeft = '0px';
          $('#newsBlockSucText').html(newsSubscriptionMes);
        }
        $("#newsBlockSuc").show();
      }
      else
      {
        $("#newsBlock").show();
        newsSubscribeForceCheck();
      }
      $('#newsSubscribeLoading').hide();
    });
}
// do not forget to add check, if one more element required to check
function newsSubscribeForceCheck()
{
  var checkRes = true;
  var newsSelected = false;
  if(!isValidByPattern('newsSubscribeEmail', emailValidationPattern))
    checkRes = false;
  if($('#newsSubscribeBiteNews').attr('checked'))
    newsSelected = true;
  if($('#newsSubscribePrivateOffer').attr('checked'))
    newsSelected = true;
  if($('#newsSubscribeBusinessOffer').attr('checked'))
    newsSelected = true;
  if($('#newsSubscribeCareer').attr('checked'))
    newsSelected = true;
  if($('#newsSubscribePhones').attr('checked'))
    newsSelected = true;
  if(!newsSelected)
  {
    showIcon('newsSubscribeCat', false);
    checkRes = false;
  }
  else
    showIcon('newsSubscribeCat', true);
  return checkRes;

}

/* CAREER NEWS SUBSCRIBE */
var careerNewsSubscriptionMes = '';
function careerNews(inited)
{
  if(!inited)
  {
    $.get(fullBase + lang +'/c/news_subscribers/career_view', {}, function(data){
      $('body').append(data);
      careerNews(true);
    });

  } else {

    form_overlay('careerNews');
    var $careerNews = $('#careerNews');
    if('none' == $careerNews.css('display'))
    {
      if(getElementValue('careerNewsSubscribeEmail')) isValidByPattern('careerNewsSubscribeEmail', emailValidationPattern);

      $("#feedback").hide();
      $("#rss").hide();
      $("#sendFriend").hide();
      $("#news").hide();
      $("#newsBlock").hide();
      $("#newsBlockSuc").hide();

      $("#careerNews").show();
      $("#careerNewsBlock").show();
      $("#careerNewsBlockSuc").hide();
    } else {
      $careerNews.hide();
      $("#overlay").hide();
    }
  }
}

function careerNewsSubmit (lang)
{
  if(careerNewsSubscriptionMes == '')
    careerNewsSubscriptionMes = $('#careerNewsBlockSucText').html();
  $("#careerNewsBlock").hide();
  $('#careerNewsSubscribeLoading').show();

  // AJAX form submit
  $.post(fullBase+lang+"/misc/news_email/submit/",
    {
      lang : lang,
      email : $('#careerNewsSubscribeEmail').attr('value'),
      bite_news : 0,
      private_offer : 0,
      business_offer : 0,
      career : 1,
      phones : 0
    },
    function(res)
    {
      if(/response==true.*/.test(res))
      {
        // message param set, if already subscribed
        if(/message=\"\'.*\"\'/.test(res))
        {
          document.getElementById('careerNewsBlockSuc').style.textAlign = 'left';
          document.getElementById('careerNewsBlockSuc').style.paddingTop = '20px';
          document.getElementById('careerNewsBlockSuc').style.paddingLeft = '10px';

          var mes = /message=\"\'.*\"\'/.exec(res);
          mes = new String(mes.valueOf());
          mes = mes.replace(/message=/, '')
          mes = mes.substring(2, mes.length-2);
          $('#careerNewsBlockSucText').html(mes);
        }
        else
        {
          document.getElementById('careerNewsBlockSuc').style.textAlign = 'center';
          document.getElementById('careerNewsBlockSuc').style.paddingTop = '40px';
          document.getElementById('careerNewsBlockSuc').style.paddingLeft = '0px';
          $('#careerNewsBlockSucText').html(careerNewsSubscriptionMes);
        }
        $("#careerNewsBlockSuc").show();
      }
      else
      {
        $("#careerNewsBlock").show();
        careerNewsSubscribeForceCheck();
      }
      $('#careerNewsSubscribeLoading').hide();
    });
}
// do not forget to add check, if one more element required to check
function careerNewsSubscribeForceCheck()
{
  var checkRes = true;
  if(!isValidByPattern('careerNewsSubscribeEmail', emailValidationPattern))
    checkRes = false;
  return checkRes;

}

/* RSS SUBSCRIBE */
function rss(inited)
{
  if(!inited)
  {
    $.get(fullBase + lang +'/c/rss/view', {}, function(data){
      $('body').append(data);
      rss(true);
    });

  } else {

    form_overlay('rss');
    var $rss = $('#rss');

    if ('none' == $rss.css('display'))
    {
      $("#feedback").hide();
      $("#news").hide();
      $("#sendFriend").hide();
      $("#rss").show();
      $("#rssBlock").show();
      $("#rssBlockSuc").hide();
    } else {
      $rss.hide();
      $("#overlay").hide();
    }
  }
}

function rssSubmit ()
{
  $("#rssBlock").hide();
  $("#rssBlockSuc").show();
}


function form_overlay(id)
{
  $("#"+id).prependTo("body");
  var objOverlay = document.getElementById('overlay');
  var objForm = document.getElementById(id);
  var arrayPageSize = getPageSize();
  var arrayPageScroll = getPageScroll();
  objOverlay.style.height = (arrayPageSize[1] + 'px');
  objOverlay.style.display = 'block';
  $('#loadingImage').hide();
  var formTop = arrayPageScroll[1] + ((arrayPageSize[3] - 35 - $("#"+id).height()) / 2);
  var formLeft = ((arrayPageSize[0] - 20 - $("#"+id).width()) / 2);
  objForm.style.top = (formTop < 0) ? "0px" : formTop + "px";
  objForm.style.left = (formLeft < 0) ? "0px" : formLeft + "px";
}

/* BUSINESS PROPOSAL REQUEST */
function businessProposalRequestSubmit(defaultPhone, lang)
{
  $('#suggestBox').attr('style', 'cursor:wait;');
  // AJAX form submit
  $.post(fullBase+lang+"/misc/business_proposal_request/submit/",
    {
      'data[name]': getElementValue("businessProposalRequestName") || null,
      'data[company]': getElementValue("businessProposalRequestCompany") || '-',
      'data[phone]': '+371'+getElementValue("businessProposalRequestPhone") || null,
      'data[operator]': getElementValue("businessProposalRequestOperator") || '-',
      'data[connections]': getElementValue("businessProposalRequestConnections") || '-',
      'data[city]': getElementValue("businessProposalRequestCity") || '-',
      'data[comment]': getElementValue("businessProposalRequestComment") || '-',
      'data[lang]': lang || null
    },
    function(res)
    {
      if(/^true.*/.test(res))	{
        $("#suggestBox").hide();
        $("#BusinessProposalRequest_enter").hide();
        $("#BusinessProposalRequest_thankYou").show();
        resetBusinessProposalRequest(defaultPhone);
        $("#BusinessProposalRequest_thankYou_bg").show();
      } else {
        $("#BusinessProposalRequest_enter").show();
        forceCheckBusinessProposalRequest(defaultPhone);
      }
    });
}

// do not forget to add check, if one more element required to check
function forceCheckBusinessProposalRequest(defaultPhone) {
  var checkRes = true;
  if(!isValidByPattern('businessProposalRequestName', nameValidationPattern))
    checkRes = false;
  //if(!isValidByPattern('businessProposalRequestCompany', nameValidationPattern))
  //	checkRes = false;
  if(!isValidByPattern('businessProposalRequestPhone', phoneStrongValidationPatternNoPref))
    checkRes = false;
  return checkRes;
}

function resetBusinessProposalRequest(defaultPhone) {
  $("#businessProposalRequestNameNo").hide();
  $("#businessProposalRequestNameYes").hide();
  $("#businessProposalRequestPhoneNo").hide();
  $("#businessProposalRequestPhoneYes").hide();
  $("#businessProposalRequestName").val('');
  //$("#businessProposalRequestCompany").val('');
  $("#businessProposalRequestPhone").value = defaultPhone;
}

/* ORDER WORLD NEWS */
function orderWorldNewsSubmit(lang)
{
  $("#orderWorldNews_enter").hide();
  $("#orderWorldNews_form").hide();
  $('#orderWorldNews_loading').show();

  // AJAX form submit
  $.post(fullBase+lang+"/misc/order_world_news/submit/",
    {
      lang		: lang,
      name		: getElementValue('orderWorldNewsName'),
      surname		: getElementValue('orderWorldNewsSurname'),
      address 	: getElementValue('orderWorldNewsAddress'),
      post_index	: getElementValue('orderWorldNewsPostIndex'),
      city		: getElementValue('orderWorldNewsCity')
    },
    function(res)
    {
      $('#orderWorldNews_loading').hide();
      if(/response==true.*/.test(res))	{
        $("#orderWorldNews_thankYou").show();
        resetOrderWorldNews();
      } else {
        $("#orderWorldNews_enter").show();
        $("#orderWorldNews_form").show();
        forceCheckOrderWorldNews();
      }
    });
}

// do not forget to add check, if one more element required to check
function forceCheckOrderWorldNews() {
  var checkRes = true;
  if(!isEmpty('orderWorldNewsName'))
    checkRes = false;
  if(!isEmpty('orderWorldNewsSurname'))
    checkRes = false;
  if(!isEmpty('orderWorldNewsAddress'))
    checkRes = false;
  if(!isEmpty('orderWorldNewsPostIndex'))
    checkRes = false;
  if(!isEmpty('orderWorldNewsCity'))
    checkRes = false;
  return checkRes;
}

function resetOrderWorldNews() {
  $("#orderWorldNewsName").attr('value', '');
  $("#orderWorldNewsSurname").attr('value', '');
  $("#orderWorldNewsAddress").attr('value', '');
  $("#orderWorldNewsPostIndex").attr('value', '');
  $("#orderWorldNewsCity").attr('value', '');
}

/* MY BITE */
function myBiteSubmit(lang, countryCode, redirectTo)
{
  $('#myBiteSubmitButton').hide();
  $('#myBiteLoading').show();

  // AJAX form submit
  $.post(fullBase+lang+"/misc/my_bite/submit/",
    {
      username : $('#myBiteUsername').attr('value'),
      password : $('#myBitePassword').attr('value'),
      lang : lang
    },
    function(res)
    {
      if(/loginDuomenysTeisingi.*/.test(res))
      {
        sessionId = new String(res.match(/loginDuomenysTeisingi.+?SidEND/));
        sessionId = new String(sessionId.replace(/loginDuomenysTeisingi=/,""));
        sessionId = new String(sessionId.replace(/SidEND/,""));
//				window.open(redirectTo+sessionId, 'myBite', "top=100, left=100, location=1, menubar=1, status=1, titlebar=1, scrollbars=1, minimizable=1, width=850, height=640, resizable=1, toolbar=1");
        window.location = redirectTo+sessionId;
      }
      else if(/loginDuomenysKlaidingi.*/.test(res))
      {
        showIcon('myBiteUsername', false);
        showIcon('myBitePassword', false);
      } else {
        myBiteForceCheck(countryCode);
      }
      $('#myBiteLoading').hide();
      $('#myBiteSubmitButton').show();
    });
}
function myBiteSetPhone(defaultText, countryCode)
{
  if(defaultText == $("#myBiteUsername").attr("value"))
    $("#myBiteUsername").attr("value", countryCode);
}
function myBiteSetPassword()
{
//	$('#myBitePassword').attr("type", "password");
//	$('#myBitePassword').attr("value", "");
  $('#myBitePasswordTmp').hide();
  $('#myBitePassword').show();
  $('#myBitePassword').focus();

}
function myBiteInputPassword()
{
    $('#myBitePassword').hide();
  $('#myBitePasswordTmp').show();
}
function myBiteForceCheck(countryCode)
{
  var checkRes = true;
  if(!isValidPhone('myBiteUsername', countryCode))
    checkRes = false;
  if($("#myBitePassword").attr("type") != "password")
  {
    checkRes = false;
    showIcon('myBitePassword', false);
  }
  else
  {
    if(!isValidByPattern('myBitePassword', passwordValidationPattern))
      checkRes = false;
  }
  return checkRes;
}

/* NUMBER PORTABILITY */
function numberPortabilitySubmit(businessOrPrivate)
{
  $('#numberPortabilityForm').hide();
  $('#numberPortabilityLoading').show();
  var selectedIndex = document.getElementById('numberPortabilityOperator').selectedIndex;

  // AJAX form submit
  $.post(fullBase+lang+"/misc/np/submit/",
    {
      name	: $('#numberPortabilityName').attr('value'),
      person	: $('#numberPortabilityPerson').attr('value'),
      phone	: $('#numberPortabilityPhone').attr('value'),
      operator: document.getElementById('numberPortabilityOperator').options[selectedIndex].value,
      businessOrPrivate : businessOrPrivate
    },
    function(res)
    {
      if(/response==true.*/.test(res))
      {
        $('#numberPortabilityNameShow').attr('innerHTML', $('#numberPortabilityName').attr('value'));
        $('#numberPortabilityPersonShow').attr('innerHTML', $('#numberPortabilityPerson').attr('value'));
        $('#numberPortabilityPhoneShow').attr('innerHTML', $('#numberPortabilityPhone').attr('value'));
        $('#numberPortabilityOperatorShow').attr('innerHTML', document.getElementById('numberPortabilityOperator').options[selectedIndex].value);
        $('#numberPortabilityLoading').hide();
        $('#numberPortabilityThankYou').show();

        // reset values
        $('#numberPortabilityName').attr('value', '');
        $('#numberPortabilityPerson').attr('value', '');
        $('#numberPortabilityPhone').attr('value', '');
        document.getElementById('numberPortabilityOperator').selectedIndex = 0;
      }
      else if(/response==false.*/.test(res))
      {
        $('#numberPortabilityLoading').hide();
        $('#numberPortabilityForm').show();
        numberPortabilityForceCheck();
      } else {
        $('#numberPortabilityLoading').hide();
        $('#numberPortabilityForm').show();
        numberPortabilityForceCheck();
      }
    });
}

function numberPortabilityForceCheck()
{
  var checkRes = true;
  if(!isEmpty('numberPortabilityName'))
    checkRes = false;
  if(!isValidPhone('numberPortabilityPhone', ''))
    checkRes = false;
  return checkRes;
}

/* COVERAGE STATION REQS */
function coverageStationReqs()
{
  if(!isEmpty('CoverageStationReqCity'))
  {
    $('#CoverageStationReqCity').focus();
    return false;
  }
//	if(!isEmpty('CoverageStationReqStreet'))
//	{
//		$('#CoverageStationReqStreet').focus();
//		return false;
//	}
  if(!isEmpty('CoverageStationReqHouse'))
  {
    $('#CoverageStationReqHouse').focus();
    return false;
  }
  return true;
}

/* HELPERS */
function getElementValue(id)
{
  var element = document.getElementById(id);

  if(typeof initial == "undefined")
    return element.value;

  // get right element's value, it's tricky because after blur value may be changed
  if((element.title == initial) && (!element.value))
    return initial;
  return element.value;
}

function isEmpty(id)
{
  var value = getElementValue(id);
  value = value.replace(/^\s+/, '');
  value = value.replace(/\s+$/, '');

  if(value && value!="undefined")
  {
    showIcon(id, true);
    return true;
  }
  showIcon(id, false);
  return false;
}

/**
 * check if is valid by pattern
 * first replace symbols which matches remove pattern with ''
 * remove spaces at end and begining of the string
 **/
function isValidByPattern2(id, pattern, remove)
{
  var value = getElementValue(id);
  value = value.replace(remove, '');
  value = value.replace(/^\s+/, '');
  value = value.replace(/\s+$/, '');
  if(pattern.test(value))
  {
    showIcon(id, true);
    return true;
  }
  showIcon(id, false);
  return false;
}

function isValidByPattern(id, pattern)
{
  var value = getElementValue(id);
  value = value.replace(/^\s+/, '');
  value = value.replace(/\s+$/, '');
  if(pattern.test(value))
  {
    showIcon(id, true);
    return true;
  }
  showIcon(id, false);
  return false;
}

function isValidPhone(id, defaultValue)
{
  phone = getElementValue(id);
  phone = phone.replace(/^\s+/, '');
  phone = phone.replace(/\s+$/, '');
  if(phone=="undefined" || phone=="" || phone==defaultValue)
  {
    showIcon(id, false);
    return false;
  }
  return isValidByPattern(id, phoneValidationPattern);
}

function isValidPhoneStrong(id, defaultValue)
{
  phone = getElementValue(id);
  phone = phone.replace(/^\s+/, '');
  phone = phone.replace(/\s+$/, '');
  if(phone=="undefined" || phone=="" || phone==defaultValue)
  {
    showIcon(id, false);
    return false;
  }
  return isValidByPattern(id, phoneStrongValidationPattern);
}

function showIcon(id, valid)
{
  var $id = $('#'+id);
  if(id!='newsSubscribeCat')
  {
    if(valid)
      $id.removeClass("inputErrorBorder").addClass("inputValidBorder");
    else
      $id.removeClass("inputValidBorder").addClass("inputErrorBorder");
  }
  else
  {
    if(valid)
      $id.removeClass("inputErrorBorder").addClass("inputValidColor");
    else
      $id.removeClass("inputValidBorder").addClass("inputErrorColor");
  }
}

// rewrite: remove inputErrorBorder, inputErrorBorder classes
function hideIcons(id)
{
  $('#'+ id +"Yes").hide();
  $('#'+ id +"No").hide();
  $('#'+id).removeClass('inputErrorBorder').removeClass('inputValidBorder');
}

function open_movie(){
  window.open($('base').attr('href')+'custom/mano_bite/mano_bite.html', 'BITE', 'height=320, width=520, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, directories=no, status=no');
}

String.prototype.trim = function()
{
  a = this.replace(/^\s+/, '');
  return a.replace(/\s+$/, '');
};



/* bb calculator */
function bbCalculate(cutomerType)
{
    if ('none' == $('#bbCalculate').css('display')) {
        $('#bbCalculate').show();
        form_overlay('bbCalculate');
    }
    else {
        $.get(fullBase + lang +'/c/blackberry/calculate/'+cutomerType+'?' + Number(new Date()), {}, function(data){
            $('body').append(data);
            form_overlay('bbCalculate');
        });
    }
}

function bbCalculateClose()
{
    $('#bbCalculate').hide();
    $("#overlay").hide();
}

function bbCalculateSubmit(cutomerType)
{
    $('form#calculateForm').hide();
    $('.inputs h2:first').removeClass('active');
    $('.inputs h2').removeClass('inactive');
    $('.inputs h2:last').addClass('active');

    var values = window.values[cutomerType];
    var phones = window.phones[cutomerType];
    var price = window.price[cutomerType];
    var currency = window.currency;

    min = $('.firstBox select option:selected').val();
    am = $('.secondBox select option:selected').val();
    monthlyPrice = price[min][am];

    $('#dataTable .monthlyPrice').html(monthlyPrice);
    $('#dataTable .minutesToTalk').html(values.minutes[min]);
    $('#dataTable .dataToDownload').html(values.amounts[am]);

    var vat = '';
    if ('bc' == cutomerType) {
        var vat = window.vat;
    };

    $('#dataTable .firstInput').html('');
    $('#dataTable .secondInput').html('');
    $('#dataTable .c8520 .firstInput').prepend(phones[min][am][24][1] + ' ' + currency);
    $('#dataTable .c8520 .secondInput').prepend(phones[min][am][36][1] + ' ' + currency);

    $('#dataTable .c8900 .firstInput').prepend(phones[min][am][24][2] + ' ' + currency);
    $('#dataTable .c8900 .secondInput').prepend(phones[min][am][36][2] + ' ' + currency);

    $('#dataTable .c9700 .firstInput').prepend(phones[min][am][24][3] + ' ' + currency);
    $('#dataTable .c9700 .secondInput').prepend(phones[min][am][36][3] + ' ' + currency);

    $('#dataTable .c9105 .firstInput').prepend(phones[min][am][24][4] + ' ' + currency);
    $('#dataTable .c9105 .secondInput').prepend(phones[min][am][36][4] + ' ' + currency);

    $('#bbCalculate').css({'height': 675});
    $('#dataTable').show();
    $('.change').show();
    $('.change a').click(function(){
        $('#dataTable').hide();
        $('form#calculateForm').show();
        $('#bbCalculate').css({'height': 180});
        $('.change').hide();
        $('.inputs h2:first').addClass('active');
        $('.inputs h2:last').removeClass('active');
    });

    return false;
}
