// JavaScript Document

function Set_Cookie( name, value, expires, path, domain, secure ) 
{
	// set time, it's in milliseconds
	var today = new Date();
	today.setTime( today.getTime() );
	
	/*
	if the expires variable is set, make the correct 
	expires time, the current script below will set 
	it for x number of days, to make it for hours, 
	delete * 24, for minutes, delete * 60 * 24
	*/
	if ( expires )
	{
	expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	
	document.cookie = name + "=" +escape( value ) +
	( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
	( ( path ) ? ";path=" + path : "" ) + 
	( ( domain ) ? ";domain=" + domain : "" ) +
	( ( secure ) ? ";secure" : "" );
}

function setFormStatusChanged(status)
{
    page_element_changed = status;
}


var i18N_MyAppAlert = "Потвърди запис"; // used by MyApp_dialogs.js
var i18N_MyUserAsk = "Желаете ли да запишете промените на тази страница?";

jt_AppAlert.lblOK = "OK"; // label for "OK" button (for i18N)
jt_AppAlert.lblCancel = "Отказ"; // label for "Cancel" button (for i18N)
jt_AppAlert.lblYes = "Да"; // label for "OK" button (for i18N)
jt_AppAlert.lblNo = "Не"; // label for "OK" button (for i18N)



var url_to_go = '';
var aYesNoCancelBox = null;

function posYesNoCancel(ev)
{
    var e = jt_fixE(ev);
    if (aYesNoCancelBox == null)
    {
        aYesNoCancelBox = new jt_AppYesNoCancel(jt_AppAlert.Question,
            confirmYes, confirmNo, confirmCancel);
        aYesNoCancelBox.setTitle(i18N_MyAppAlert);
    }
    else
    {
        confirmNo();
    }
    //aYesNoCancelBox.moveTo(e.clientX, e.clientY + document.body.scrollTop);

}

function makeYesNoCancel(url)
{
    url_to_go = url;
    if (page_element_changed == true)
    {
        if (aYesNoCancelBox)
        {
            aYesNoCancelBox.askUser(i18N_MyUserAsk);
        }
    }
    else
    {
        confirmNo();
    }
}

// Usr defined functions for buttons

function confirmYes()
{
    //alert("Yes! Go to: "+url_to_go);
    // Do Save
    if (document.forms['db_object_editor'])
    {
        document.forms['db_object_editor'].url_to_go.value = url_to_go;
        //alert(document.forms['db_object_editor']);
        document.forms['db_object_editor'].submit();
    }

}

function confirmNo()
{
    //alert("No! Go to: "+url_to_go);
    // Do reditect to 'url_to_go'
    document.location.href = url_to_go;
}

function confirmCancel()
{
    // Do Nothing
    page_element_changed = true;
    //alert("Cancel");
}


function insertAtCursor(myField, myValue)
{
    //IE support
    myField = $(myField);
    if (document.selection)
    {
        myField.focus();
        sel = document.selection.createRange();
        sel.text = myValue;
    }
    //MOZILLA/NETSCAPE support
    else if (myField.selectionStart || myField.selectionStart == 0)
    {
        var startPos = myField.selectionStart;
        var endPos = myField.selectionEnd;
        myField.value = myField.value.substring(0, startPos) + myValue +
            myField.value.substring(endPos, myField.value.length);
    }
    else
    {
        myField.value += myValue;
    }
} // JavaScript Document


function setScheduleMode(mode1)
{
    Element.hide('component_schedule_r1');
    Element.hide('schedule_time_before_r1');
    Element.hide('schedule_days_before_r1');
    switch (mode1) {
        case '1':
            {
                Element.show('component_schedule_r1');
                break;
            }
        case '2':
            {
                Element.show('schedule_time_before_r1');
                Element.show('schedule_days_before_r1');
                break;
            }
    }
}


function displayOptionButtons()
{

    if (document.forms['db_object_editor'].option_field1_max_length)
    {
        var option_field1_max_length =
            document.forms['db_object_editor'].option_field1_max_length.value;
        var option_field1 =
            document.forms['db_object_editor'].option_field1.value;
        var has_an_option = false;

        if (option_field1_max_length * 1 > 0 && option_field1.length > 0)
        {
            has_an_option = true;
            $('addOption1').value = option_field1;
            $('addOption1').style.display = '';
        }
        else
        {
            $('addOption1').style.display = 'none';
        }
    }

    if (document.forms['db_object_editor'].option_field2_max_length)
    {
        var option_field2_max_length =
            document.forms['db_object_editor'].option_field2_max_length.value;
        var option_field2 =
            document.forms['db_object_editor'].option_field2.value;


        if (option_field2_max_length * 1 > 0 && option_field2.length > 0)
        {
            has_an_option = true;
            $('addOption2').value = option_field2;
            $('addOption2').style.display = '';
        }
        else
        {
            $('addOption2').style.display = 'none';
        }

        if (has_an_option)
        {
            Element.show('sms_option_editor');
        }
        else
        {
            Element.hide('sms_option_editor');
        }
    }



}


var myGlobalHandlers = 
{
    onCreate: function()
    {
        Element.show('workingLayer');
    }


};

function getCalendarFor(month, year)
{
	
	Set_Cookie('next_month',month);
	Set_Cookie('next_year',year);
    var url = AJAX_SERVICE;
    var pars = 'request_action=get_calendar&month=' + month + '&year=' + year +
        '&user_id=' + UID;
    var myAjax = new Ajax.Request(url, 
    {
        method: 'post', parameters: pars, onComplete: showCalendar
    }
    );
}

function getOptionFields(category_id)
{

    var url = AJAX_SERVICE;
    var pars = 'request_action=get_category_option_field&category_id=' +
        category_id + '&user_id=' + UID;
    //alert(pars);
    var myAjax = new Ajax.Request(url, 
    {
        method: 'post', parameters: pars, onComplete: showResponse
    }
    );




} //searchSales


function getOptionCount(category_id)
{
    var url = AJAX_SERVICE;
    var pars = 'request_action=get_category_count&category_id=' + category_id +
        '&user_id=' + UID;
    //alert(pars);
    var myAjax = new Ajax.Request(url, 
    {
        method: 'post', parameters: pars, onComplete: showResponse
    }
    );
}

Ajax.Responders.register(myGlobalHandlers);


function validateImportList(listText)
{

    var url = AJAX_SERVICE;
    var pars = 'request_action=validate_import_list&listText=' + listText +
        '&user_id=' + UID;
    //alert(pars);
    var myAjax = new Ajax.Request(url, 
    {
        method: 'post', parameters: pars, onComplete: showResponse
    }
    );
}

function showCalendar(originalRequest)
{
    Element.hide('workingLayer');
    $('calendar_content').innerHTML = originalRequest.responseText;
}

function showResponse(originalRequest)
{

    Element.hide('workingLayer');

    var RESPONCE_DATA = createRequestObject(originalRequest.responseText);

    var request_action = RESPONCE_DATA['request_action'];
    //alert(request_action);						
    switch (request_action)
    {
        case 'get_category_option_field':
            {
                Element.hide('option1_text_r1');
                Element.hide('option2_text_r1');
                //alert(originalRequest.responseText);						
                var option1_text = RESPONCE_DATA['option1_text'];
                var option2_text = RESPONCE_DATA['option2_text'];
                var option1 = RESPONCE_DATA['option1'];
                var option2 = RESPONCE_DATA['option2'];
                if (option1 == 'true')
                {
                    Element.show('option1_text_r1');
                    var d = $('option1_text_description');
                    d.innerHTML = '<strong>' + option1_text + '</strong>';
                    var max_len = $('option1_text_max_len');
                    max_len.innerHTML = 'максимална дължина ' +
                        RESPONCE_DATA['option1_max_length'];
                }
                if (option2 == 'true')
                {
                    Element.show('option2_text_r1');
                    var d = $('option2_text_description');
                    d.innerHTML = '<strong>' + option2_text + '</strong>';
                    var max_len = $('option2_text_max_len');
                    max_len.innerHTML = 'максимална дължина ' +
                        RESPONCE_DATA['option2_max_length'];
                }
				
				if(AT == 3){					
					repeat_option = RESPONCE_DATA['has_repeat_option'];
					repeat_option1 = RESPONCE_DATA['repeat_option1'];							
					Element.hide('notify_start_date_r1');
					Element.hide('recieve_time_zone_id_r1');
					Element.hide('notify_end_date_r1');
					Element.hide('notify_end_date_r2');
					Element.hide('event_date_time_r1');
					switch(repeat_option){
						case '0':{
							break;
						}
						case '1':{
							if(repeat_option1 == '1'){
								Element.show('recieve_time_zone_id_r1');
							}else{
								Element.show('notify_start_date_r1');
								Element.show('recieve_time_zone_id_r1');
								Element.show('notify_end_date_r1');
								Element.show('notify_end_date_r2');
							}
							break;
						}
						case '2':{
							Element.show('event_date_time_r1');
							break;
						}
						default:{
							
						}
					}
				}
                break;
            }
        case 'get_category_count':
            {
                Element.show('category_count_r1');
                var d = $('category_count_description');
                d.innerHTML = '<strong>Брой клиенти в категория:</strong>';
                var d = $('category_count');
                //alert(RESPONCE_DATA['category_count']);
                //			e.editable = false;
                var category_count = RESPONCE_DATA['category_count'] * 1;
                d.value = category_count;
                d.disabled = true;
                var sms_t = $('sms_text');
                sms_t.value = RESPONCE_DATA['category_sms_text'];
                var sms_from_name = $('sms_from_name');
                sms_from_name.value = RESPONCE_DATA['category_sms_from_name'];
                var has_options = false;

                if (RESPONCE_DATA['category_option_1'])
                {
                    has_options = true;
                    $('addOption1').style.display = '';
                    $('addOption1').value = RESPONCE_DATA['category_option_1'];
                }
                else
                {
                    $('addOption1').style.display = 'none';
                }

                if (RESPONCE_DATA['category_option_2'])
                {

                    has_options = true;
                    $('addOption2').style.display = '';
                    $('addOption2').value = RESPONCE_DATA['category_option_2'];
                }
                else
                {
                    $('addOption2').style.display = 'none';
                }
                if (has_options)
                {
                    $('sms_option_editor').style.display = '';
                }

                smsLettersLeft();
				if(category_count == 0){
                	//$('submitButton').disabled = true;
					$('submitButton').onclick  = function(){alert('В избраната категория няма въведени клиенти!');return false;};
					//alert('В избраната категория няма въведени клиенти');					
				}else{
					var mess = 'Сигурни ли сте, че желаете да старитрате изпращането на кампанията?';
					$('submitButton').onclick  = function(){return confirm(mess);};
				}
			
				if(RESPONCE_DATA['campaign_stat']=='true'){
					var mess = 'Последната кампания с име "'+RESPONCE_DATA['campaign_name']+'" е стартирана на '+RESPONCE_DATA['started']+' към клиентите на категория "'+RESPONCE_DATA['categegory_name']+'". Сигурни ли сте че желаете да стартирате нова кампания?';
					$('submitButton').onclick  = function(){return confirm(mess);};

				}else{
					var mess = 'Сигурни ли сте, че желаете да старитрате изпращането на кампанията?';
					$('submitButton').onclick  = function(){return confirm(mess);};
				}																
                break;
            }

        case 'validate_import_list':
            {
                message = 'Общо номера : ' + RESPONCE_DATA['total_numbers'] +
                    '\n';
                message += 'Повтарящи се номера : ' +
                    RESPONCE_DATA['duplicate_numbers'] + '\n';
                message += 'Невалидни : ' + RESPONCE_DATA['not_valid'] + '\n';
                message += 'Общо номера за импортиране : ' +
                    RESPONCE_DATA['valid_gsm_numbers'];

                alert(message);
                break;
            }
    }

}

var count = 0;
var senderVal;
function smsLettersLeft()
{
    var chars, message, senderNew;
    var anz = 0, len = 0, s;
    var msg = document.db_object_editor.sms_text.value;

    sender = document.db_object_editor.sms_from_name.value.length;
    senderNew = document.db_object_editor.sms_from_name.value.length;

    if (!chars) {
        chars = 160;
    }
    for (var i = 0; i < msg.length; i++)
    {
        if (anz == chars)
        {
            count = 0;
            break;
        }
        anz++;
    }

    len = i;

    if (msg.length >= chars)
    {
        var IE = (navigator.appName.indexOf("Explorer") !=  - 1) ? true : false;
        var Mozilla = (navigator.userAgent.indexOf("Mozilla") !=  - 1) ? true :
            false;
        var Build = (navigator.userAgent.indexOf("rv:") !=  - 1) ? true : false;
        var Opera = (navigator.userAgent.indexOf("Opera") !=  - 1) ? true :
            false;
        var Netscape = (navigator.appName.indexOf("Netscape") !=  - 1) ? true :
            false;
        var NS6 = (navigator.userAgent.indexOf("netscape6") !=  - 1) ? true :
            false;
        var NS7 = (navigator.userAgent.indexOf("netscape7") !=  - 1) ? true :
            false;
        if (senderNew != senderVal)
        {
            senderVal = senderNew;
            document.db_object_editor.sms_text.value = msg.substring(0, len);
        }
        else
        {
            if ((IE && !Opera) || (Mozilla && Build) || (NS6 && !Opera) || (NS7
                && !Opera))
            {
                document.db_object_editor.sms_text.value = msg.substring(0, len)
                    ;
            }
            else
            {
                if (count == 0)
                {
                    document.db_object_editor.sms_text.value = msg.substring(0,
                        len);
                    count++;
                }
                else
                {
                    document.db_object_editor.sms_text.value = msg.substring(0,
                        len);
                }
                document.db_object_editor.sms_text.value = msg;
            }
        }
    }
    senderVal = senderNew;
    document.db_object_editor.msgLen.value = chars - anz;
    if (navigator.appName == "Netscape" && parseInt(navigator.appVersion) <= 4)
    {
        document.captureEvents(Event.KEYPRESS);
        document.db_object_editor.sms_text.onkeypress = smsLettersLeft;
        document.captureEvents(Event.CHANGE);
        document.db_object_editor.sender.onchange = smsLettersLeft;
        document.captureEvents(Event.KEYPRESS);
        document.db_object_editor.From.onkeypress = smsLettersLeft;
    }
}

function setRepeatOption1Status(status)
{
    $('repeat_option1_date_day').disabled = status;
    $('repeat_option1_date_month').disabled = status;
    $('repeat_option1_date_year').disabled = status;
    $('repeat_option2').disabled = !status;
    $('repeat_option3').disabled = !status;
}

function setRepeatOption2Status(status)
{

    $('repeat_option2').disabled = status;
    $('repeat_option3').disabled = status;

    $('repeat_option1_date_day').disabled = !status;
    $('repeat_option1_date_month').disabled = !status;
    $('repeat_option1_date_year').disabled = !status;

}

function setControlstatus(from, to, status)
{
    for (i = 1; i <= 3; i++)
    {
        contorl_name = 'repeat_option' + i;
        //alert(contorl_name);
        s = (i < from || i > to) ? status : !status;
        if (document.all)
        {
            if (document.all[contorl_name])
            {
                document.all[contorl_name].disabled = s;
            }
        }
        else
        {
            if (document.getElementById(contorl_name))
            {
                document.getElementById(contorl_name).disabled = s;
            }
        }
    }
}

function setRadioStatus(status)
{
    document.forms['db_object_editor'].repeat_option1[0].disabled = status;
    document.forms['db_object_editor'].repeat_option1[1].disabled = status;
    //document.forms['db_object_editor'].repeat_option1[2].disabled = status;			
    if (status == true)
    {
        setControlstatus(0, 3, false);
    }
    else
    {
        setControlstatus(0, 0,
            document.forms['db_object_editor'].repeat_option1[0].checked);
        setControlstatus(2, 3,
            document.forms['db_object_editor'].repeat_option1[1].checked);
        //setControlstatus(4,6,document.forms['db_object_editor'].repeat_option1[2].checked);
    }



}



