/* Melody listen window open */
var listenWindow;
function listenTone(id)
{
    if ( listenWindow != null ){
         listenWindow.close();
    }
    var url = "/directory/?doact=play&iid=" + id;
    listenWindow = window.open(url, "", "width=400,height=300,top=20,left=20");
}

function listenAuthTone(id)
{
    if ( listenWindow != null ){
         listenWindow.close();
    }
    var url = "/mytones/?doact=play&iid=" + id;
    listenWindow = window.open(url, "", "width=400,height=300,top=20,left=20");
}

var infoWindow;
function showToneInfo(id)
{
    if ( infoWindow != null ){
         infoWindow.close();
    }
    var url = "/directory/?doact=info&iid="+id;
    infoWindow = window.open(url, "", "width=400,height=350,top=20,left=20");
}

function showAuthToneInfo(id)
{
    if ( infoWindow != null ){
         infoWindow.close();
    }
    var url = "/mytones/?doact=info&iid="+id;
    infoWindow = window.open(url, "", "width=400,height=350,top=20,left=20");
}

function showRuleInfo(id, rtype)
{
    if ( infoWindow != null ){
         infoWindow.close();
    }
    var url = "/settings/?iid=" + id + '&type=' + rtype;
    infoWindow = window.open(url, "", "width=400,height=300,top=20,left=20");
}

var id_menu = new Array('sub_menu_1','sub_menu_2');
var menu_line = new Array(0);

function updateMenu(id)
{
    var temp=new Array(0);
    var k=0;
    
    for ( i=0; i<id_menu.length; i++ ) {
        document.getElementById(id_menu[i]).style.display="none";
    }        
    document.getElementById(id).style.display="block";
}

function deliverToneFormSubmit()
{
    if ( !checkMSISDN(document.form1.toUserPhoneNumber.value) )
    {
    }
    else if ( form1.toUserPhoneNumber.value == form1.fromUserPhoneNumber.value )
    {
        alert("Получатель не может быть самим собой!");
    }
    else
    {
        form1.submit();
    }
}

function deliverToneBoxFormSubmit()
{
    if ( !checkMSISDN(document.form1.toUserPhoneNumber.value) )
    {
    }
    else if (form1.toUserPhoneNumber.value==form1.fromUserPhoneNumber.value)
    {
        alert("Получатель не может быть самим собой!");
    }
    else if ((form1.months.value=="")||(!isNumbers(form1.months.value)))
    {    
        alert("Укажите срок действия подарка (целое число месяцев)!");
    }
    else
    {
        form1.submit();
    }
}

function checkLoginInput(phone, password)
{
    if ( !checkMSISDN(phone.value) )
    {
        phone.focus();
        return false;
    }
    if ( (password.value=='') || (password.value.length!=6) )
    {
        alert('Длина пароля должна составлять 6 знаков.');
        password.focus();
        return false;
    }
    return true;
}

function checkRestorePasswd()
{
    if ( !checkMSISDN(document.restore_form.msisdn.value) )
    {
    }
    else if ( document.restore_form.secret.value == "" )
    {
        alert("Введите графический код подтверждения!");
    }
    else
    { 
        document.restore_form.submit();
    }
}

function checkMSISDN(msisdn)
{
    var res = false;
    
    if ( msisdn == '')
    {
        alert("Введите номер телефона");
    }
    else if ( msisdn.length != 9 )
    {
        alert( "Номер телефона необходимо вводить без кода страны, только 9 цифр. Повторите, пожалуйста, попытку." );
    }
    else if ( !isNumbers(msisdn) )
    {
        alert("Номер телефона должен содержать только цифры");
    }
    else
    {
        res = true;
    }
    
    return res;
}

function checkBuyForm(from_msisdn)
{
    onChangeBuyType(document.buy_form.type);

    if ( document.buy_form.type.value != 0 )
    {
        if ( !checkMSISDN(document.buy_form.msisdn.value) )
        {
            document.buy_form.msisdn.focus();
            return;
        }
        
        if ( document.buy_form.msisdn.value == from_msisdn )
        {
            alert("Получатель не может быть самим собой!");
            return;
        }
    }
    document.buy_form.submit();
}

function onChangeBuyType(combo)
{
    if ( combo.value == 1 ) {
        document.getElementById("self_price").style.display = "none";
        document.getElementById("gift_price").style.display = "";
        document.getElementById("dual_price").style.display = "none";
        document.getElementById("msisdn").style.display = "";
    } else if ( combo.value == 2 ) {
        document.getElementById("self_price").style.display = "none";
        document.getElementById("gift_price").style.display = "none";
        document.getElementById("dual_price").style.display = "";
        document.getElementById("msisdn").style.display = "";
    } else {
        document.getElementById("self_price").style.display = "";
        document.getElementById("gift_price").style.display = "none";
        document.getElementById("dual_price").style.display = "none";
        document.getElementById("msisdn").style.display = "none";
    }
}

function confirmGroupDel(url)
{
    if ( window.confirm("Вы действительно хотите удалить эту группу?") ) {
        window.location.replace(url);
    }
}

function checkGroupForm()
{
    if ( document.group_form.fld_name.value == "" )
    {
        alert("Введите название группы!");
        document.group_form.fld_name.focus();
    }
    else if ( isValidName(document.group_form.fld_name.value) )
    {
        alert("Название группы может содержать только буквы, цифры и знаки препинания!");
        document.group_form.fld_name.focus();
    }
    else
    { 
        document.group_form.submit();
    }
}

function checkGroupItemForm()
{
    if ( !checkMSISDN(document.group_form.msisdn.value) )
    {
        document.group_form.msisdn.focus();
    }
    else if ( isValidName(document.group_form.fld_name.value) )
    {
        alert("Описание может содержать только буквы, цифры и знаки препинания!");
        document.group_form.fld_name.focus();
    }
    else
    { 
        document.group_form.submit();
    }
}

function confirmGroupDelItem(url)
{
    if ( window.confirm("Вы действительно хотите удалить этот номер из группы?") ) {
        window.location.replace(url);
    }
}

function confirmDelRule(url)
{
    if ( window.confirm("Вы действительно хотите удалить это првило из списка?") ) {
        window.location.replace(url);
    }
}

function confirmDelANumber(url)
{
    if ( window.confirm("Вы действительно хотите удалить этот номер из списка?") ) {
        window.location.replace(url);
    }
}

function onRuleTypeChange(combo)
{
    if ( combo.value == 2 ) { // правило на дату
        document.getElementById("day_params").style.display = "none";
        document.getElementById("date_params").style.display = "";
        document.getElementById("time_params").style.display = "none";
    } else if ( combo.value == 3 ) { // правило на день недели
        document.getElementById("day_params").style.display = "";
        document.getElementById("date_params").style.display = "none";
        document.getElementById("time_params").style.display = "none";
    } else if ( combo.value == 4 ) { //правило на временной интервал
        document.getElementById("day_params").style.display = "none";
        document.getElementById("date_params").style.display = "none";
        document.getElementById("time_params").style.display = "";
    } else { // на весь день
        document.getElementById("day_params").style.display = "none";
        document.getElementById("date_params").style.display = "none";
        document.getElementById("time_params").style.display = "none";
    }
}

function checkRuleForm()
{
    if ( !document.rule_edit_form.iid.value && document.rule_edit_form.type.value == 2 )
    {
        var fld_msisdn = document.rule_edit_form.msisdn;
        if ( !fld_msisdn.value ) {
            alert("Введите номер телефона");
            fld_msisdn.focus();
            return;
        }

        if ( !isNumbers(fld_msisdn.value) )
        {
            alert("Номер телефона должен содержать только цифры");
            fld_msisdn.focus();
            return;
        }
    }

    var rule_type = document.rule_edit_form.rule_type.value;
    if ( rule_type == null ) {
        radio_list = document.rule_edit_form.rule_type;
        for (i = 0; i < radio_list.length; i++ ) {
            if ( radio_list[i].checked ) {
                rule_type = radio_list[i].value;
            }
        }
    }

    if ( !document.rule_edit_form.tone_id.value ) {
        alert("Пожалуйста выберите мелодию!");
        document.rule_edit_form.tone_id.focus;
        return;
    }

    if ( rule_type == null ) {
        alert("Выберите \"Условие проигрывания\"!");
        return;
    }

    if ( rule_type == 2 ) // date
    {
        var date_start = document.getElementById('startDate');
        if ( !date_start.value ) {
            alert("Введите дату начала!");
            date_start.focus();
            return;
        }

        var date_end = document.getElementById('endDate');
        if ( !date_end.value ) {
            alert("Введите дату окончания!");
            date_start.focus();
            return;
        }

        document.rule_edit_form.start.value = date_start.value;
        document.rule_edit_form.end.value = date_end.value;

        if ( !validatePeriod(document.rule_edit_form.start, document.rule_edit_form.end) ) {
            return;
        }
    }
    
    if ( rule_type == 3 ) // day
    {
        var day_combo = document.getElementById('daySelect');

        if ( !day_combo.value ) {
            alert("Пожалуйста выберите день недели!");
            day_combo.focus();
            return;
        }

        document.rule_edit_form.start.value = day_combo.value;
        document.rule_edit_form.end.value = day_combo.value;
    }
    
    if ( rule_type == 4 ) // time
    {
        var time_start = document.getElementById('startTime').value;
        var time_end = document.getElementById('endTime').value; 
        if ( time_start >= time_end ) {
            alert("Время начала должно быть раньше времени окончания!");
            return;
        }

        document.rule_edit_form.start.value = time_start;
        document.rule_edit_form.end.value = time_end;
    }

    document.rule_edit_form.submit();
}

function validatePeriod(from, to)
{
    var date1 = new Date(from.value.replace(/(\d\d)\.(\d\d)\.(\d{4})/, "$3/$2/$1") );
    var date2 = new Date(to.value.replace(/(\d\d)\.(\d\d)\.(\d{4})/, "$3/$2/$1") );

    validate1 = padout(date1.getDate()) + "." + padout(1 + date1.getMonth()) + "." + date1.getFullYear();
    validate2 = padout(date2.getDate()) + "." + padout(1 + date2.getMonth()) + "." + date2.getFullYear();

    if ( validate1 != from.value || validate2 != to.value ) {
        window.alert("Неправильно введена дата! Формат даты: ДД.ММ.ГГГГ");
        return false;
    }

    if ( date2 < date1 ) {
        window.alert("Дата старта должна быть раньше даты окончания!");
        return false;
    }

    return true;
}

function padout(number)
{
    return (number < 10) ? '0' + number : number;
}

function isNumbers(field)
{
	field = myTrim(field);

	var i;

	for ( i = 0; i < field.length; i++ )
	{
		var c = field.charAt(i);

		if (!isDigit(c) )
		{
			return false;
		}
	}

	return true;
}

function isDigit(c)
{
	return ((c >= "0") && (c <= "9"));
}

var nameChecker = null;

function isValidName(field)
{
    if ( !nameChecker )
    {
        nameChecker = new RegExp('') ;
        nameChecker.compile('[^a-zA-ZА-ЯЁа-яё _0-9\+\-\.,\!]', 'i');
    }

	return nameChecker.exec(field);
}


function myTrim(str)
{
	var end = false;
	var ch;

	while(!end)
	{
		if (str.length == 0) break;
		ch = str.charAt(0);

		if (ch == ' ')
		{
			str = str.substring(1,str.length);
		}
		else
		{
			end = true;
		}
	}

	end = false;

	while(!end)
	{
		if (str.length == 0)
		{
			break;
		}

		ch = str.charAt(str.length-1);

		if (ch == ' ')
		{
			str = str.substring(0,str.length-1);
		}
		else
		{
			end = true;
		}
	}

	return str;
}

// ************* Search *************** //

function onChangeSearch()
{
	var type=document.forms['searchform'].elements['field'];

	if ( type.options[type.selectedIndex].value == "type" ) {
        document.getElementById("conditionCell").style.display="none";
        document.getElementById("stylesCell").style.display="block";
    } else {
        document.getElementById("conditionCell").style.display="block";
        document.getElementById("stylesCell").style.display="none";
    }
}

function searchFormSubmit()
{
	var searchform = document.forms['searchform'];
	var searchStr = searchform.elements['conditionTmp'].value;
	var type = searchform.elements['field'];

    if ( type.options[type.selectedIndex].value == "type" )
    {
        searchform.elements['condition'].value = 
            searchform.elements['styleList'].value;
        return true;
    }
    
	searchform.elements['condition'].value=searchStr;

	if ( searchStr.length == 0 )
	{
        alert("Введите строку для поиска!");
        document.forms['searchform'].elements['conditionTmp'].focus();
		return false;
    }

    if ( type.options[type.selectedIndex].value == "id" )
    {
		if ( !isNumbers(searchStr) ) {
			alert("Код мелодии должен быть числом!");
			return false;
		}
		if ( searchStr.length != 8 ) {
			alert("Код мелодии должен состоять из 8 цифр!");
			return false;
		}
	}

	return true;
}


/***** Layout calendar open *****/

function calendar_start_date()
{
    Calendar.selectStartDate(
        document.getElementById('startDate'),
        document.getElementById('endDate'));
}

function calendar_end_date()
{
    Calendar.selectEndDate(
        document.getElementById('startDate'),
        document.getElementById('endDate'));
}


function show_calendar(form_name, fld_name)
{
    Calendar.popupShow(document.forms[form_name][fld_name]);
}

