var selectWidth = "223";


function getCities($type)
{
	var $reg;
	if ($type == "work")
	{
		$("#city-work").attr('disabled');
		$("#city-work").val('---');
		$("#selectcity-work").text('---');

		reg = 0+$('#region-work').val()
	}
	else
	{
		$("#city-home").attr('disabled');
		$("#city-home").val('---');
		$("#selectcity-home").text('---');

		reg = 0+$('#region-home').val()
	}

	$.post("/ajax/get_cities/",
        {
         	regionId: reg
        },
        function(data)
        {
			if (data.status == 1)
			{
				if ($type == "work")
				{
					$("#city-work").html(data.select);
					$("#city-work").removeAttr('disabled');
				}
				else
				{
					$("#city-home").html(data.select);
					$("#city-home").removeAttr('disabled');
				}
			}
			else
			{
				alert('Ошибка. Выберите регион ещё раз.')
			}

        },
    "json"
    );

}


var Custom = {
	init : function() {
		var inputs = document.getElementsByTagName("select"), span = Array(), textnode, option, active;
		for(a = 0; a < inputs.length; a++) {
			if(inputs[a].className == "styled") {
				option = inputs[a].getElementsByTagName("option");
				active = option[0].childNodes[0].nodeValue;
				textnode = document.createTextNode(active);
				for(b = 0; b < option.length; b++) {
					if(option[b].selected == true) {
						textnode = document.createTextNode(option[b].childNodes[0].nodeValue);
					}
				}
				span[a] = document.createElement("span");
				span[a].className = "select";
				span[a].id = "select" + inputs[a].name;
				span[a].appendChild(textnode);
				inputs[a].parentNode.insertBefore(span[a], inputs[a]);
				inputs[a].onchange = Custom.choose;
			}
		}
	},
	choose: function() {
		option = this.getElementsByTagName("option");
		for(d = 0; d < option.length; d++) {
			if(option[d].selected == true)
			{
				document.getElementById("select" + this.name).childNodes[0].nodeValue = option[d].childNodes[0].nodeValue;
			}
		}
	}
}

function showOrHideAllDropDowns(newState) {
  var elements = document.documentElement.getElementsByTagName('select');
  for (var i=0; i<elements.length; i++) {
    elements[i].style.visibility = newState;
  }
}
function showWin(id)
{
	$('#'+id).show();
	if($.browser.msie && $.browser.version == 6) {showOrHideAllDropDowns('hidden');}
}
function hideWin(id)
{
	$('#'+id).hide();
	if($.browser.msie && $.browser.version == 6) {showOrHideAllDropDowns('visible');}
}

$(document).ready(function()
{
	Custom.init();

    $("#region-home").change(function () {
      getCities("home");
//	  Custom.init();

    });

    $("#region-work").change(function () {
      getCities("work");
//	  Custom.init();

    });

}
);

$(document).ready(function() {
    var options = {
        target:        '#output',   // target element(s) to be updated with server response
        beforeSubmit:  showRequest,  // pre-submit callback
        success:       showResponse,  // post-submit callback
        dataType:      'json'        // 'xml', 'script', or 'json' (expected server response type)

    };

    // bind to the form's submit event
    $('#formSend').submit(function() {
        // inside event callbacks 'this' is the DOM element so we first
        // wrap it in a jQuery object and then invoke ajaxSubmit
        $(this).ajaxSubmit(options);

        // !!! Important !!!
        // always return false to prevent standard browser submit and page navigation
        return false;
    });
});
function showRequest(formData, jqForm, options)
{

    $(".finish").attr('click', "return false;");
    return true;
}
function showResponse(responseText, statusText)
{

	$(".finish").attr('click', "$('#formSend').submit();");

    if (responseText.status != '1')
    {
    	$("#warningText").text(responseText.error);
    	showWin('warning');
    	if (responseText.field)
    	{
    		$(".ok").click(function()
				    		{
								hideWin("warning");
								$("input[name="+responseText.field+"]").focus();
							}
			);
    	}
    }
    else
    	document.location='/preview/';
}


$(document).ready(function()
{

    var options =
    {
        beforeSubmit:  showRequest2,  // pre-submit callback
        success:       showResponse2,  // post-submit callback
        dataType:      'json'        // 'xml', 'script', or 'json' (expected server response type)
    };

    $('#formFeedback').submit(function() {
        $(this).ajaxSubmit(options);
        return false;
    });
});

function showRequest2(formData, jqForm, options)
{

    $(".send").attr('click', "return false;");
    return true;
}
function showResponse2(responseText, statusText)
{

	$(".send").attr('click', "$('#formFeedback').submit();");

    if (responseText.status != '1')
    {
    	$("#warningText").text(responseText.error);
    	showWin('warning');

//		$("input[name="+responseText.field+"]").focus();
    }
    else
    {
    	$("#warningText").html("Ваше сообщение отправлено");
    	showWin('warning');
    	hideWin('feedback');
    }
}


var regionsData = [];
regionsData['AZ'] = [ '8550', '',       'Азербайджан', '42', '994', '1', '1'];
regionsData['KZ'] = [ '9684', '',       'Казахстан',   '42',   '7', '1', '1'];
regionsData['KG'] = [ '1200', '',       'Кыргыстан',   '42', '996', '1', '1'];
regionsData['TJ'] = [ '1045', '',       'Таджикистан', '42', '992', '1', '1'];
regionsData['UZ'] = [ '5553', '',       'Узбекистан',  '42', '998', '1', '1'];
regionsData['RU'] = [ '1055', '',       'Россия',      '42',   '7', '5', '10'];
regionsData['UA'] = [ '4280', '',       'Украина',     '42', '380', '2', '2'];
regionsData['IL'] = [ '5599', '10',     'Израиль',     '40', '972', '1', '1'];
regionsData['EE'] = ['15151', 'inf&nbsp;','Эстония',   '38', '372', '1', '1'];
regionsData['LI'] = [ '1350', 'nfo&nbsp;',  'Литва',   '36', '370', '1', '1'];
regionsData['LV'] = [ '1010', 'inf10',  'Латвия',      '35', '371', '1', '1'];

var $smsCode = "";
var currentRegion = '';

var google;

$(document).ready(function()
{
	if (google != undefined)
	{
	    if ($.cookie('countryid') == undefined)
	    {
	        var cl = google.loader.ClientLocation;
	        if (!cl || cl == null) $reg = 'RU';
            else
	           var $reg =  ( (regionsData[cl.address.country_code] != undefined) ? cl.address.country_code: "RU" )
	        $(".selReg").val($reg);
	    }
	    else
	    {
	        var $reg =  ( (regionsData[$.cookie('countryid')] != undefined) ? $.cookie('countryid'): "RU" )
	        $(".selReg").val($reg);
	    };

	    currentRegion = $reg;

	    $(".cur_region").html(regionsData[currentRegion][2]+' <a onclick="$(this).parent().hide();$(this).parent().next().show();" href="javascript:void(0);">[изменить]</a>');

	    $('.send .code strong').html(regionsData[currentRegion][1]+$("#store").data("sms"));

	    $('.sel_region').hide();
	}

	$('#inputText').keyup( function (e) {chW()} );
	$('#inputText').keyup();


});

function changeRegion(region)
{
    currentRegion = region.value;
    currentPrice  = parseInt(regionsData[currentRegion][5]);

    $('.selReg').val(currentRegion);
    $('.send .code strong').html(regionsData[currentRegion][1]+$("#store").data("sms"));

    $(".cur_region").html(regionsData[currentRegion][2]+' <a onclick="$(this).parent().hide();$(this).parent().next().show();" href="javascript:void(0);">[изменить]</a>');

    $(region).parent().parent().prev().show();
    $(region).parent().parent().hide();

}

/**
	Как слова в поле «Текст телеграммы» считаются знаки:
	. - точка
	, - запятая
	: - двоеточие
	! - восклицательный знак
	? - вопросительный знак
	— - тире
	«, » - кавычка левая/ правая
	(, ) - скобка левая/ правая


пропускаем предлоги:
		(s
			' В ',
			' НА ',
			' К ',
			' ПО ',
			' С ',
			' У ',
			' ОТ ',
			' О ',
			' ДО ',
			' ЗА ',
			' ИЗ ',
			' ОБ ',
		);


	считаем обычное кол-во слов + кол-во пункнтуац-слов и вычитаем "ненужные"(по тз) предлоги..

	 >> \b - граница слова, почему-то у меня не работает
*/
function chW()
{
	var total_words;
	var w;

	var bonusWords  = /\.|\,|\:|\!|\?|\-|\(|\)|\"|\'|\«|\»/g;
    var skipWords   = /\sв\s|\sна\s|\sк\s|\sпо\s|\sс\s|\sу\s|\sот\s|\sо\s|\sдо\s|\sза\s|\sиз\s|\sоб\s/ig;
    var comWords    = /\s+/;
    var text        =     $('#inputText').val();
    var textSp      = " "+$('#inputText').val()+" ";

    var fix = 2;
    //костыль дл осла:
    if ($.browser.msie)
    	fix = 0;

    var cBonusWords = textSp.split(bonusWords).length - 1;
    var cSkipWords  = textSp.split(skipWords).length - 1;
    var cComWords   = textSp.split(comWords).length - fix;

/*
    console.log(" cw = " + cComWords);
    console.log(" bw = " + cBonusWords);
    console.log(" sw = " + cSkipWords);
*/
	total_words  = cComWords + cBonusWords - cSkipWords;


	//total_words = total_words > 9 ? 9 : total_words;

	if (10-total_words > 0)
	{
		switch(10-total_words)
		{
			case 0:case 5:case 6:case 7:case 8:case 9:case 10:
			  w = 'слов';
			  break;
			case 1:
			  w = 'слово';
			  break;
			case 2:case 3:case 4:
			  w = 'слова';
			  break;
		}
		jQuery('.wordsCount').html("Осталось <span>"+(10-total_words)+"</span> "+w);
	}
	else
		jQuery('.wordsCount').html("Все 10 слов телеграммы использованы.");
}

