﻿window.reEmail = /^([\w\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/i;
window.reAlpha = /^([a-zA-z\s])+$/;
window.reNumeric = /^([0-9])+$/;
window.reAlphaNumeric = /^([a-zA-Z0-9\s])+$/;
window.reAlphaNumericSymbols = /^([\w\s\.\,\-])+$/;


YAHOO.namespace("example.container");

function init_yahoo() {

        if (!YAHOO.example.container.wait) {

            // Initialize the temporary Panel to display while waiting for external content to load

            YAHOO.example.container.wait = 
                    new YAHOO.widget.Panel("wait",  
                                                    { width: "240px", 
                                                      fixedcenter: true, 
                                                      close: false, 
                                                      draggable: false, 
                                                      zindex:1250,
                                                      modal: true,
                                                      visible: false,constraintoviewport: true
                                                    } 
                                                );
            YAHOO.example.container.wait.setHeader("Loading, please wait...");
            YAHOO.example.container.wait.setBody("<img src=\"/webroot/delivery/pic/rel_interstitial_loading.gif\"/>");
            YAHOO.example.container.wait.render(document.body);
	    YAHOO.example.container.wait.fillHeight(document.body);
        }
}

function DaysBetweenDateAndNow(yr, mo, dy)
{
    var dn = new Date();
    var clientTimeCMP=Math.round((dn-srvDate)/3600000);
    if(clientTimeCMP>13 || clientTimeCMP<-13)
	dn=srvDate;
    var dc = new Date(Date.UTC(yr, (mo - 1), dy, 0, 0, 0, 0));
    return Math.round((dn - dc) / 86400000);
}

function sabreEnrollment() 
{
    var boockingClass = YAHOO.util.Dom.getElementsByClassName('width100 booking-class');
    for (var i = 1, length = boockingClass.length; i < length; ++ i) {
    	if (boockingClass[i].value.replace(/\s/, '').length == 0) {
    		alert(Lang.ERROR_BOOKING_CLASS);
    		return false;
    	}
    }
    
    var ticketNumbers = YAHOO.util.Dom.getElementsByClassName('ticket');
    for (var i = 1, length = ticketNumbers.length; i < length; ++ i) {
    	if (ticketNumbers[i].value.length < 13) {
    		alert(Lang.ERROR_TICKET_13);
    		return false;
    	}
    }
    
    var flightNumbers = YAHOO.util.Dom.getElementsByClassName('flight');
    for (var i = 1, length = flightNumbers.length; i < length; ++ i) {
    	if (flightNumbers[i].value.length < 3) {
    		alert(Lang.ERROR_TICKET_4);
    		return false;
    	}
    }
    
    var airportFrom = YAHOO.util.Dom.getElementsByClassName('airport-from');
    for (var i = 1, length = airportFrom.length; i < length; ++ i) {
    	if (airportFrom[i].value.length == 0) {
    		alert(Lang.ERROR_AIRPORT_FROM);
    		return false;
    	}
    }
    
    var airportTo = YAHOO.util.Dom.getElementsByClassName('airport-to');
    for (var i = 1, length = airportTo.length; i < length; ++ i) {
    	if (airportTo[i].value.length == 0) {
    		alert(Lang.ERROR_AIRPORT_TO);
    		return false;
    	}
    }
    
    var dateDay = YAHOO.util.Dom.getElementsByClassName('date-day');
    for (var i = 1, length = dateDay.length; i < length; ++ i) {
    	if (dateDay[i].value.length == 0) {
    		alert(Lang.ERROR_DATE_DAY);
    		return false;
    	}
    }
    
    var dateMonth = YAHOO.util.Dom.getElementsByClassName('date-month');
    for (var i = 1, length = dateMonth.length; i < length; ++ i) {
    	if (dateMonth[i].value.length == 0) {
    		alert(Lang.ERROR_DATE_MONTH);
    		return false;
    	}
    }
    
    var dateYear = YAHOO.util.Dom.getElementsByClassName('date-year');
    for (var i = 1, length = dateYear.length; i < length; ++ i) {
    	if (dateYear[i].value.length == 0) {
    		alert(Lang.ERROR_DATE_YEAR);
    		return false;
    	}
    }
    
    for (var i = 1, length = dateYear.length; i < length; ++ i) {
        var days = DaysBetweenDateAndNow(dateYear[i].value, dateMonth[i].value, dateDay[i].value);
    	if (days < 14) {
    		alert(Lang.ERROR_DATE_BIGGEST);
    		return false;
    	} else if (days > 185) {
    		alert(Lang.ERROR_DATE_LOWEST);
    		return false;
    	}
    }
    
    
    var callbackSuccess = callbackSabreEnrollmentSuccess;
    var callbackFailure = callbackSabreEnrollmentFailure;

    var callback = {
        failure : callbackFailure,
        success : callbackSuccess
    };
    
	var form    = document.getElementById('form-sabre-enrollment');
    YAHOO.util.Connect.setForm(form);

init_yahoo();
YAHOO.example.container.wait.show();

    YAHOO.util.Connect.asyncRequest('POST', form.action, callback);

    return false;
}

function sabreGeneratePassword(login) {
	var level = document.getElementById('generate-level');
	var dobDay = document.getElementById('generate-date-day');
	var dobMonth = document.getElementById('generate-date-month');
	var dobYear = document.getElementById('generate-date-year');
	var phone = document.getElementById('generate-phone');
	var email = document.getElementById('generate-email');
	var question = document.getElementById('generate-question');
	var answer = document.getElementById('generate-answer');
	
	if (level.value.replace(/\s/, '').length == 0) {
		alert(Lang.SPECIFY_GENERATE_LEVEL);
		return false;
	}
	
	if (dobDay.value.replace(/\s/, '').length == 0) {
		alert(Lang.SPECIFY_GENERATE_DOB_DAY);
		return false;
	}
	
	if (dobMonth.value.replace(/\s/, '').length == 0) {
		alert(Lang.SPECIFY_GENERATE_DOB_MONTH);
		return false;
	}
	
	if (dobYear.value.replace(/\s/, '').length == 0) {
		alert(Lang.SPECIFY_GENERATE_DOB_YEAR);
		return false;
	}
	
	if (phone.value.replace(/\s/, '').length < 4) {
		alert(Lang.SPECIFY_GENERATE_PHONE);
		return false;
	}
	
	if (email.value.replace(/\s/, '').length == 0) {
		alert(Lang.SPECIFY_GENERATE_EMAIL);
		return false;
	}
	
	if (question.value.replace(/\s/, '').length == 0) {
		alert(Lang.SPECIFY_GENERATE_QUESTION);
		return false;
	}
	
	if (answer.value.replace(/\s/, '').length == 0) {
		alert(Lang.SPECIFY_GENERATE_ANSWER);
		return false;
	}
	
    var form    = document.getElementById('form-sabre-generate-password');
    
    var callbackSuccess = callbackSabreGeneratePasswordSuccess;
    var callbackFailure = callbackSabreGeneratePasswordFailure;

    var callback = {
        failure : callbackFailure,
        success : callbackSuccess
    };
    
    YAHOO.util.Connect.setForm(form);

init_yahoo();
YAHOO.example.container.wait.show();

    YAHOO.util.Connect.asyncRequest('POST', form.action, callback);

    return false;
}

function sabreResetPassword() 
{
    var answer = document.getElementById('forgot-answer');

    if (answer.value.replace(/\s/, '').length == 0) {
        alert('â楨塮㦲');
        return false;
    }

    var callbackSuccess = callbackSabreResetPasswordSuccess;
    var callbackFailure = callbackSabreResetPasswordFailure;

    var callback = {
        failure : callbackFailure,
        success : callbackSuccess
    };

	var form = document.getElementById('form-sabre-reset-password');
	
    YAHOO.util.Connect.setForm(form);

init_yahoo();
YAHOO.example.container.wait.show();

    YAHOO.util.Connect.asyncRequest('POST', form.action, callback);

    return false;
}

function sabrePrintCard() {
    var win = window.open(document.location + 'data/tpl-print/');
    if (win)
        win.focus();
    else
        alert(Lang.ERROR_ALERT_POPUP);
}


function updateTextNode(el, textNode) {
    if (typeof(el) == 'string')
        el = document.getElementById(el);

    if (typeof(textNode) != 'object')
        textNode = document.createTextNode(textNode);

    if (el.childNodes.length && el.firstChild.nodeType == 3)
        el.firstChild.nodeValue = textNode.nodeValue;
    else
        el.appendChild(textNode);
}

function sabreAuthLink(_this, url) {
    var login = document.getElementById('auth-login');

    if (login.value.replace(/\s/, '').length > login.maxlength) {
        alert(Lang.ERROR_LOGIN_LENGTH.replace(/%length%/, login.maxlength));
        return false;
    }

    if (login.value.replace(/\s/, '').length == 0) {
        alert(Lang.SPECIFY_LOGIN);
        return false;
    }

    document.location = _this.href + 'data/' + login.value + '/';
}

function urlencode(url) {
	return window.encodeURIComponent(url);
}

function sabreCheckRegistration() {
	var title			= document.getElementById('f-reg-title');
	var lastname		= document.getElementById('f-reg-lastname');
	var firstname		= document.getElementById('f-reg-firstname');
	var middlename		= document.getElementById('f-reg-middlename');
	var birthday		= document.getElementById('f-reg-birthday');
	var birthmonth		= document.getElementById('f-reg-birthmonth');
	var birthyear		= document.getElementById('f-reg-birthyear');

	var genderF			= document.getElementById('f-reg-gender-1');
	var genderM			= document.getElementById('f-reg-gender-2');
	
	var citizenship		= document.getElementById('f-reg-citizenship');
	var documentnumber	= document.getElementById('f-reg-documentnumber');
	var validityday		= document.getElementById('f-reg-validityday');
	var validitymonth	= document.getElementById('f-reg-validitymonth');
	var validityyear	= document.getElementById('f-reg-validityyear');
	var addresstype		= document.getElementById('f-reg-addresstype');
	var addresscountry	= document.getElementById('f-reg-addresscountry');
	var addressindex	= document.getElementById('f-reg-addressindex');
	var addresscity		= document.getElementById('f-reg-addresscity');
	var address			= document.getElementById('f-reg-address');
	var phone1type		= document.getElementById('f-reg-phone1type');
	var phone1country	= document.getElementById('f-reg-phone1country');
	var phone1code		= document.getElementById('f-reg-phone1code');
	var phone1number	= document.getElementById('f-reg-phone1number');
	var phone2type		= document.getElementById('f-reg-phone2type');
	var phone2country	= document.getElementById('f-reg-phone2country');
	var phone2code		= document.getElementById('f-reg-phone2code');
	var phone2number	= document.getElementById('f-reg-phone2number');
	var faxcountry		= document.getElementById('f-reg-faxcountry');
	var faxcode			= document.getElementById('f-reg-faxcode');
	var faxnumber		= document.getElementById('f-reg-faxnumber');
	var email			= document.getElementById('f-reg-email');
	var appellation		= document.getElementById('f-reg-appellation');
	var position		= document.getElementById('f-reg-position');
	var question		= document.getElementById('f-reg-question');
	var answer			= document.getElementById('f-reg-answer');
	var correspondence	= document.getElementById('f-reg-correspondence');
	var correspondencelanguage = document.getElementById('f-reg-correspondencelanguage');
	
	var food1			= document.getElementById('f-reg-food-1');
	var food2			= document.getElementById('f-reg-food-2');
	var food3			= document.getElementById('f-reg-food-3');
	
	var seat1			= document.getElementById('f-reg-seat-1');
	var seat2			= document.getElementById('f-reg-seat-2');
	var seat3			= document.getElementById('f-reg-seat-3');
	
	if (title.value.replace(/(\s+)/, '').length == 0) {
		alert(Lang.SPECIFY_TITLE);
		return false;
	}
	
	if (lastname.value.replace(/(\s+)/, '').length == 0 ) {
		alert(Lang.SPECIFY_LAST_NAME);
		return false;
	}
	if (!reAlpha.test(lastname.value)) {
		alert(Lang.SPECIFY_CORRECT_LAST_NAME);
		return false;
	}

	
	if (firstname.value.replace(/(\s+)/, '').length == 0) {
		alert(Lang.SPECIFY_FIRST_NAME);
		return false;
	}
	if (!reAlpha.test(firstname.value)) {
		alert(Lang.SPECIFY_CORRECT_FIRST_NAME);
		return false;
	}
	
	
	if (middlename.value.length > 0 && !reAlpha.test(middlename.value)) {
		alert(Lang.SPECIFY_CORRECT_MIDDLE_NAME);
		return false;
	}

	if (birthday.value.replace(/(\s+)/, '').length == 0) {
		alert(Lang.SPECIFY_DOB_DAY);
		return false;
	}
	
	if (birthmonth.value.replace(/(\s+)/, '').length == 0) {
		alert(Lang.SPECIFY_DOB_MONTH);
		return false;
	}
	
	if (birthyear.value.replace(/(\s+)/, '').length == 0) {
		alert(Lang.SPECIFY_DOB_YEAR);
		return false;
	}
	
	if (genderF.checked == false && genderM.checked == false) {
		alert(Lang.SPECIFY_GENDER);
		return false;
	}
    
    if (citizenship.value.replace(/(\s+)/, '').length == 0) {
    	alert(Lang.SPECIFY_CITIZENSHIP);
    	return false;
    }
    
    if (documentnumber.value.replace(/(\s+)/, '').length == 0) {
    	alert(Lang.SPECIFY_PASSPORT_NUMBER);
    	return false;
    }
    if (!reAlphaNumeric.test(documentnumber.value)) {
    	alert(Lang.SPECIFY_CORRECT_PASSPORT_NUMBER);
    	return false;
    }
    
    if (validityday.value.replace(/(\s+)/, '').length == 0) {
    	alert(Lang.SPECIFY_PASSPORT_TERM_DAY);
    	return false;
    }

    if (validitymonth.value.replace(/(\s+)/, '').length == 0) {
    	alert(Lang.SPECIFY_PASSPORT_TERM_MONTH);
    	return false;
    }

    if (validityyear.value.replace(/(\s+)/, '').length == 0) {
    	alert(Lang.SPECIFY_PASSPORT_TERM_YEAR);
    	return false;
    }
    if (DaysBetweenDateAndNow(validityyear.value, validitymonth.value, validityday.value)>0) {
	alert(Lang.SPECIFY_PASSPORT_EXPIRED);
	return false;
    }

    if (addresstype.value.replace(/(\s+)/, '').length == 0) {
    	alert(Lang.SPECIFY_ADDRESS_TYPE);
    	return false;
    }

    if (addresscountry.value.replace(/(\s+)/, '').length == 0) {
    	alert(Lang.SPECIFY_ADDRESS_COUNTRY);
    	return false;
    }

    if (addressindex.value.replace(/(\s+)/, '').length == 0) {
    	alert(Lang.SPECIFY_ADDRESS_ZIP);
    	return false;
    }
    if (!reAlphaNumeric.test(addressindex.value)) {
    	alert(Lang.SPECIFY_CORRECT_ADDRESS_ZIP);
    	return false;
    }

    if (addresscity.value.replace(/(\s+)/, '').length == 0) {
    	alert(Lang.SPECIFY_ADDRESS_CITY);
    	return false;
    }
    
    if (address.value.replace(/(\s+)/, '').length == 0) {
    	alert(Lang.SPECIFY_ADDRESS);
    	return false;
    }
    
    if (phone1type.value.replace(/(\s+)/, '').length == 0) {
    	alert(Lang.SPECIFY_PHONE1_TYPE);
    	return false;
    }

    if (phone1country.value.replace(/(\s+)/, '').length == 0) {
    	alert(Lang.SPECIFY_PHONE1_COUNTRY);
    	return false;
    }

    if (phone2number.value && phone2type.value == phone1type.value) {
    	alert(Lang.ERROR_PHONE2_TYPE_MUST_NOT_EQUAL_PHONE1_TYPE);
    	return false;
    }

    if (phone1code.value.replace(/(\s+)/, '').length == 0) {
    	alert(Lang.SPECIFY_PHONE1_CODE);
    	return false;
    }
    if (!reNumeric.test(phone1code.value)) {
    	alert(Lang.SPECIFY_CORRECT_PHONE1_CODE);
    	return false;
    }


    if (phone1number.value.replace(/(\s+)/, '').length == 0) {
    	alert(Lang.SPECIFY_PHONE1_NUMBER);
    	return false;
    }
    if (!reNumeric.test(phone1number.value)) {
    	alert(Lang.SPECIFY_CORRECT_PHONE1_NUMBER);
    	return false;
    }

    
    if (email.value.replace(/(\s+)/, '').length == 0) {
    	alert(Lang.SPECIFY_EMAIL);
    	return false;
    }
    
    var reEmail  = /^([\w\.\-])+\@(([\w\-])+\.)+([a-zA-Z0-9]{2,4})+$/i;
    if (email.value.search(reEmail) == -1) {
    	alert(Lang.SPECIFY_CORRECT_EMAIL);
    	return false;
    }
    

    if (question.value.replace(/(\s+)/, '').length == 0) {
    	alert(Lang.SPECIFY_CHALLENGE_QUESTION);
    	return false;
    }
    
    if (answer.value.replace(/(\s+)/, '').length == 0) {
    	alert(Lang.SPECIFY_CHALLENGE_ANSWER);
    	return false;
    }
    
    if (correspondence.value.replace(/(\s+)/, '').length == 0) {
    	alert(Lang.SPECIFY_CORRESPONDENCE_TYPE);
    	return false;
    }
    
    if (correspondencelanguage.value.replace(/(\s+)/, '').length == 0) {
    	alert(Lang.SPECIFY_CORRESPONDENCE_LANGUAGE);
    	return false;
    }

    var birth = birthyear.value + '-' + birthmonth.value + '-' + birthday.value;
     
    var gender;
    if (genderF.checked) {
    	gender = "F";
    } else {
    	gender = "M";
    }
    
    var validity = validityyear.value + '-' + validitymonth.value + '-' + validityday.value;
    
    var food;
    if (food1.checked) {
    	food = 1;
    } else if (food2.checked) {
    	food = 2;
    } else if (food3.checked) {
    	food = 3;
    } else {
    	food = 0;
    }

    var seat;
    if (seat1.checked) {
    	seat = 1;
    } else if (seat2.checked) {
    	seat = 2;
    } else if (seat3.checked) {
    	seat = 3;
    } else {
    	seat = 0;
    }
    
    return true;
}

function sabreRegistration () {
    var callbackSuccess = callbackSabreRegistrationSuccess;
    var callbackFailure = callbackSabreRegistrationFailure;

    var callback = {
        failure : callbackFailure,
        success : callbackSuccess
    };
    	
    var form = document.getElementById('form-sabre-registration');
    YAHOO.util.Connect.setForm(form);

init_yahoo();
YAHOO.example.container.wait.show();

    YAHOO.util.Connect.asyncRequest('POST', form.action, callback);
    return false;
}

function sabreProfile() {
	var citizenship		= document.getElementById('f-prof-citizenship');
	var documentnumber	= document.getElementById('f-prof-documentnumber');
	var validityday		= document.getElementById('f-prof-validityday');
	var validitymonth	= document.getElementById('f-prof-validitymonth');
	var validityyear	= document.getElementById('f-prof-validityyear');
	var addresstype		= document.getElementById('f-prof-addresstype');
	var addresscountry	= document.getElementById('f-prof-addresscountry');
	var addressindex	= document.getElementById('f-prof-addressindex');
	var addresscity		= document.getElementById('f-prof-addresscity');
	var address			= document.getElementById('f-prof-address');
	var phone1type		= document.getElementById('f-prof-phone1type');
	var phone1country	= document.getElementById('f-prof-phone1country');
	var phone1code		= document.getElementById('f-prof-phone1code');
	var phone1number	= document.getElementById('f-prof-phone1number');
	var phone2type		= document.getElementById('f-prof-phone2type');
	var phone2country	= document.getElementById('f-prof-phone2country');
	var phone2code		= document.getElementById('f-prof-phone2code');
	var phone2number	= document.getElementById('f-prof-phone2number');
	var faxcountry		= document.getElementById('f-prof-faxcountry');
	var faxcode			= document.getElementById('f-prof-faxcode');
	var faxnumber		= document.getElementById('f-prof-faxnumber');
	var email			= document.getElementById('f-prof-email');
	var appellation		= document.getElementById('f-prof-appellation');
	var position		= document.getElementById('f-prof-position');
	var correspondence	= document.getElementById('f-prof-correspondence');
	var correspondencelanguage = document.getElementById('f-prof-correspondencelanguage');
	
	var food1			= document.getElementById('f-prof-food-1');
	var food2			= document.getElementById('f-prof-food-2');
	var food3			= document.getElementById('f-prof-food-3');
	
	var seat1			= document.getElementById('f-prof-seat-1');
	var seat2			= document.getElementById('f-prof-seat-2');
	var seat3			= document.getElementById('f-prof-seat-3');
/***********************/	
    if (addresscountry.value.replace(/(\s+)/, '').length == 0) {
    	alert(Lang.SPECIFY_ADDRESS_COUNTRY);
    	return false;
    }	

    if (phone1country.value.replace(/(\s+)/, '').length == 0) {
    	alert(Lang.SPECIFY_PHONE1_COUNTRY);
    	return false;
    }
/**********************/	
    if (documentnumber.value.replace(/(\s+)/, '').length == 0 || !reAlphaNumeric.test(documentnumber.value)) {
    	alert(Lang.SPECIFY_PASSPORT_NUMBER);
    	return false;
    }

    if (email.value.replace(/(\s+)/, '').length == 0) {
    	alert(Lang.SPECIFY_EMAIL);
    	return false;
    }
    
    var reEmail  = /^([\w\.\-])+\@(([\w\-])+\.)+([a-zA-Z0-9]{2,4})+$/i;
    if (email.value.search(reEmail) == -1) {
    	alert(Lang.ERROR_EMAIL);
    	return false;
    }

    if (phone2number.value && phone2type.value == phone1type.value) {
    	alert(Lang.ERROR_PHONE2_TYPE_MUST_NOT_EQUAL_PHONE1_TYPE);
    	return false;
    }

    var callbackSuccess = callbackSabreProfileUpdateSuccess;
    var callbackFailure = callbackSabreProfileUpdateFailure;

    var callback = {
        failure : callbackFailure,
        success : callbackSuccess
    };
    
    var form = document.getElementById('form-sabre-profile');
    YAHOO.util.Connect.setForm(form);

init_yahoo();
YAHOO.example.container.wait.show();

    YAHOO.util.Connect.asyncRequest('POST', form.action, callback);
    
    return false;
}

function sabreShowBalance(button) {
    var dateFromDay   = document.getElementById('date-from-day');
    var dateFromMonth = document.getElementById('date-from-month');
    var dateFromYear  = document.getElementById('date-from-year');
    var dateToDay   = document.getElementById('date-to-day');
    var dateToMonth = document.getElementById('date-to-month');
    var dateToYear  = document.getElementById('date-to-year');

    if (dateFromDay.value == ' ') {
        alert(Lang.SPECIFY_START_DATE_DAY);
        return false;
    }

    if (dateFromMonth.value == ' ') {
        alert(Lang.SPECIFY_START_DATE_MONTH);
        return false;
    }

    if (dateFromYear.value == ' ') {
        alert(Lang.SPECIFY_START_DATE_YEAR);
        return false;
    }

    if (dateToDay.value == ' ') {
        alert(Lang.SPECIFY_FINISH_DATE_DAY);
        return false;
    }

    if (dateToMonth.value == ' ') {
        alert(Lang.SPECIFY_FINISH_DATE_MONTH);
        return false;
    }

    if (dateToYear.value == ' ') {
        alert(Lang.SPECIFY_FINISH_DATE_YEAR);
        return false;
    }

    var dateFrom    = dateFromYear.value + '-' + dateFromMonth.value + '-' + ((dateFromDay.value != ' ') ? dateFromDay.value : 1);
    var dateTo      = dateToYear.value + '-' + dateToMonth.value + '-' + ((dateToDay.value != ' ') ? dateToDay.value : 1);

    if (dateTo == dateFrom) {
        alert(Lang.ERROR_START_AND_FINISH_NOT_EQUALS);
        return false;
    }

    var callbackSuccess = callbackSabreShowBalanceSuccess;
    var callbackFailure = callbackSabreShowBalanceFailure;

    var callback = {
        failure : callbackFailure,
        success : callbackSuccess
    };

    var params = 'date_from=' + dateFrom + '&date_to=' + dateTo;

    document.getElementById('sabreUserBalance').style.display = 'none';

init_yahoo();
YAHOO.example.container.wait.show();

    YAHOO.util.Connect.asyncRequest('POST', '/plugins/ajax/sabre/get_balance.php', callback, params);

    return false;
}


function sabreChangePassword(button) {
    var password = document.getElementById('chng-password');
    var confirm  = document.getElementById('chng-confirm');

    if (password.value.replace(/\s/, '').length == 0) {
        alert(Lang.SPECIFY_PASSWORD);
        return false;
    }

    if (password.value.replace(/\s/, '').length > password.maxlength || /[^a-zA-Z0-9]/i.test(password.value)) {
        alert(Lang.ERROR_PASSWORD_LENGTH(/%length%/, password.maxlength));
        return false;
    }

    if (confirm.value != password.value) {
        alert(Lang.ERROR_INCORRECT_PASSWORD_CONFIRM);
        return false;
    }

    var callbackSuccess = callbackSabreChangePasswordSuccess;
    var callbackFailure = callbackSabreChangePasswordFailure;

    var callback = {
        failure : callbackFailure,
        success : callbackSuccess
    };

    var params = 'password=' + password.value;

init_yahoo();
YAHOO.example.container.wait.show();

    YAHOO.util.Connect.asyncRequest('POST', '/plugins/ajax/sabre/change_password.php', callback, params);
}

function sabreLogin() {
    var login    = document.getElementById('auth-login');
    var password = document.getElementById('auth-password');

    if (login.value.replace(/\s/, '').length > login.maxlength || login.value.replace(/\s/, '').length == 0) {
        alert(Lang.ERROR_INCORRECT_LOGIN_OR_PASSWORD);
        return false;
    }

    if (password.value.replace(/\s/, '').length == 0 || 
    	password.value.replace(/\s/, '').length  > password.maxlength ||
        /[^a-zA-Z0-9]/i.test(password.value))
    {
        alert(Lang.ERROR_INCORRECT_LOGIN_OR_PASSWORD);
        return false;
    }

    var callbackSuccess = callbackSabreLoginSuccess;
    var callbackFailure = callbackSabreLoginFailure;

    var callback = {
        failure : callbackFailure,
        success : callbackSuccess
    };

    var params = 'login=' + login.value + '&password=' + password.value;

init_yahoo();
YAHOO.example.container.wait.show();

    YAHOO.util.Connect.asyncRequest('POST', '/plugins/ajax/sabre/login.php', callback, params);
}



/* callback functions */

// sabreLogin
function callbackSabreLoginSuccess(o, params) {
    eval('var response = ' + o.responseText);
    if (response && response.success) {
    	if (response.success == 1) {
        	document.location = '/leader/balance/';
        } else if (response.success == 2) {
		YAHOO.example.container.wait.hide();
        	alert(Lang.ERROR_INCORRECT_LOGIN_OR_PASSWORD);
        } else {
		YAHOO.example.container.wait.hide();
        	alert(Lang.ERROR_REQUEST);
        }
    } else if (response && response.error && response.error.code) {
        alert(response.error.description);
    } else {
	YAHOO.example.container.wait.hide();
        alert(Lang.ERROR_REQUEST);
    }
}

function callbackSabreLoginFailure(o) {

YAHOO.example.container.wait.hide();
	params.button.disabled = false;
    alert(Lang.ERROR_REQUEST);
}

// sabreChangePassword
function callbackSabreChangePasswordSuccess(o) {
YAHOO.example.container.wait.hide();
    eval('var response = ' + o.responseText);

    if (response && response.success && response.success == 1) {
        document.getElementById('form-sabre-change-password').style.display = 'none';
        document.getElementById('sabre-password-send').style.display = '';
    } else if (response && response.error && response.error.id) {
        alert(response.error.description);
    } else {
        alert(Lang.ERROR_REQUEST);
    }
}
function callbackSabreChangePasswordFailure(o) {
YAHOO.example.container.wait.hide();
    alert(Lang.ERROR_REQUEST);
}

function callbackSabreShowBalanceSuccess(o) {

YAHOO.example.container.wait.hide();

    eval('var response = ' + o.responseText);
    
    if (response && response.body && response.body.balance) {
        var i, key, row, cell, text, table = document.getElementById('sabreUserBalance');

        while (table.tBodies[0].rows.length > 0) {
            table.tBodies[0].deleteRow(0);
        }

        for (var i = 0, n = response.body.balance.length; i < n; i ++) {
            row = table.tBodies[0].insertRow(-1);

            text = document.createTextNode(i + 1);
            cell = row.insertCell(-1);
            cell.appendChild(text);
            
            for (key in  response.body.balance[i]) {
                text = document.createTextNode(response.body.balance[i][key]);
                cell = row.insertCell(-1);
                cell.appendChild(text);
            }
        }

        /*updateTextNode('sabreUserBalance_dateFrom', response.body.date.from);
        updateTextNode('sabreUserBalance_dateTo',   response.body.date.to);

        updateTextNode('sabreUserBalance_periodQuality',    response.body.totals.period.quality);
        updateTextNode('sabreUserBalance_periodNonquality', response.body.totals.period.nonquality);

        updateTextNode('sabreUserBalance_totalQuality',     response.body.totals.total.quality);
        updateTextNode('sabreUserBalance_totalNonquality',  response.body.totals.total.nonquality);*/

        table.style.display = '';
    }
}

function callbackSabreShowBalanceFailure(o) {

YAHOO.example.container.wait.hide();

    alert(Lang.ERROR_REQUEST);
}

function callbackSabreResetPasswordSuccess(o) {
YAHOO.example.container.wait.hide();
    eval('var response = ' + o.responseText);

    if (response && response.success) {
        document.getElementById('sabre-incorrect-answer').style.display         = 'none';
        document.getElementById('sabre-question').style.display                 = 'none';
        document.getElementById('sabre-answer-field').style.display             = 'none';
        document.getElementById('sabre-button-reset-password').style.display    = 'none';
        document.getElementById('sabre-message-send').style.display             = '';
        document.getElementById('sabre-link-to-login').style.display            = '';
    } else {
        document.getElementById('sabre-incorrect-answer').style.display = '';
    }
}

function callbackSabreResetPasswordFailure(o) {
YAHOO.example.container.wait.hide();
    alert(Lang.ERROR_REQUEST);
}


function callbackSabreGeneratePasswordSuccess(o) {
YAHOO.example.container.wait.hide();
    eval('var response = ' + o.responseText);

    if (response && response.success == 1) {
        alert(Lang.SUCCESS_PASSWORD_GENERATE);
        document.location = '/leader/';
    } else {
        alert(Lang.ERROR_PASSWORD_GENERATE);
    }
}
function callbackSabreGeneratePasswordFailure(o) {
YAHOO.example.container.wait.hide();
    alert('а逸﹫࡮颪ࡢ 㱥��衯ﲠ');
}

function callbackSabreRegistrationSuccess(o) {
YAHOO.example.container.wait.hide();
	
	eval('var response = ' + o.responseText);
//    document.location.href = '/leader/card/';
    if (response && response.success == 1) {
    	document.location.href = '/leader/card/';
   	} else if (response.success == 2) {
   		alert(Lang.ERROR_CAPTCHA);
   	} else if (response.success == 3) {
   		alert(Lang.ERROR_USER_EXISTS);
    } else {
    	alert(Lang.ERROR_REQUEST);
    }
}
function callbackSabreRegistrationFailure(o) {
YAHOO.example.container.wait.hide();
//   	alert("ACHTUNG fail!!!");
	alert(Lang.ERROR_REQUEST);
}


function callbackSabreProfileUpdateSuccess(o) {
YAHOO.example.container.wait.hide();
	eval('var response = ' + o.responseText);
	
    if (response && response.success) {
    	/*document.location="/leader/balance";*/ alert(Lang.PROFILE_UPDATE);
    } else {
    	alert(Lang.ERROR_REQUEST);
    }
}
function callbackSabreProfileUpdateFailure(o) {
YAHOO.example.container.wait.hide();
    alert(Lang.ERROR_REQUEST);
}

function filterInteger(event) {
    var keyCode = (event.charCode) ? event.charCode : event.keyCode;
    return ((keyCode == 0) || (keyCode == 8) || (keyCode == 9) || (keyCode == 37) || (keyCode == 39) || (keyCode > 47 && keyCode < 58));
}

function callbackSabreEnrollmentSuccess(o) {
YAHOO.example.container.wait.hide();
if(o.responseText=='{"success":1}')
	alert(Lang.SUCCESS_INFORMATION_ADD);
else
	alert(Lang.ERROR_REQUEST);
}

function callbackSabreEnrollmentFailure(o) {
YAHOO.example.container.wait.hide();
	alert(Lang.ERROR_REQUEST);
}

function callbackGenerateSabreSuccess(o) {
YAHOO.example.container.wait.hide();
	alert(Lang.SUCCESS_OK);
	document.location = '/discouts/';
}

function callbackGenerateSabreFailure(o) {
YAHOO.example.container.wait.hide();
	alert(Lang.ERROR_REQUEST);
}
