
jQuery.fn.displayDown = function(speed, easing, callback) {
        return this.slideDown(speed, easing, callback);
        
        //return this.show();
}; 


jQuery.fn.displayDownWithCallback = function(speed, easing, callback) {
        return this.slideDown(speed, easing, callback);
        
        //return this.show();
}; 

jQuery.fn.displayUp = function(speed, easing, callback) {
        return this.slideUp(speed, easing, callback);
        //    return this.hide();

}; 

jQuery.fn.displayUpWithCallback = function(speed, easing, callback) {
        return this.slideUp(speed, easing, callback);
        //    return this.hide();

}; 

var datepickerShowAnim = 'show';

// Select Internet Explorer 7 and below
if (jQuery.browser.msie && jQuery.browser.version <= 7) {


   jQuery.fn.displayDown = function(speed, easing, callback) {
        return this.show();
}; 


jQuery.fn.displayDownWithCallback = function(speed, callback) {
		//speed ignored 
 		this.show();
		callback.call(this);
        return this;
}; 

jQuery.fn.displayUp = function(speed, easing, callback) {
        return this.hide();

}; 

jQuery.fn.displayUpWithCallback = function(speed, callback) {
//speed ignored 
		this.hide();
		callback.call(this);
        return this;

}; 

datepickerShowAnim = '';
}
 

function trackEvent(eventType, event, text) {
	_gaq.push(['_trackEvent', eventType, event, text]);
	Loggr.Log.events.createEvent().text(event).data(text).tags(eventType.toLowerCase() + ' javascript').post();
}




function validate() {

    $(".errorMessage").hide();

    //Declare the variables needed
    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    var fname = jQuery.trim($("#firstname").val());
    var lname = jQuery.trim($("#lastname").val());
    var addr = jQuery.trim($("#address").val());
    var eml = jQuery.trim($("#email").val());
	var emlRepeat = jQuery.trim($("#emailRepeat").val());

    //validate
    if (fname == "" || lname == "" || addr == "" || eml == "" || eml != emlRepeat || (!($("#agree").is(':checked')))) {
        if (!($("#agree").is(':checked'))) {
            $("#errorAgree").show();
            $("#agree").focus();
        }
        if (eml == "" || reg.test(eml) == false) {
            $("#errorEmail").show();
            $("#email").focus();
        }
        if (eml != emlRepeat) {
            $("#errorEmailRepeat").show();
            $("#emailRepeat").focus();
        }
        if (addr == "") {
            $("#errorAddress").show();
            $("#address").focus();
        }
        if (lname == "") {
            $("#errorLastname").show();
            $("#lastname").focus();
        }
        if (fname == "") {
            $("#errorFirstname").show();
            $("#firstname").focus();
        }
        return false;
    }
    else {
        return true;
    }

}



var newwin = null;

function doPopup() {

    newwin = window.open('', 'paywin', 'scrollbars,status,width=550,height=600');

    newwin.focus();

    return true;

}

function dateAddExtention(p_Interval, p_Number) {


    var thing = new String();


    //in the spirt of VB we'll make this function non-case sensitive
    //and convert the charcters for the coder.
    p_Interval = p_Interval.toLowerCase();

    if (isNaN(p_Number)) {

        //Only accpets numbers
        //throws an error so that the coder can see why he effed up
        throw "The second parameter must be a number. \n You passed: " + p_Number;
        return false;
    }

    p_Number = new Number(p_Number);
    switch (p_Interval.toLowerCase()) {
    case "yyyy":
        { // year
            this.setFullYear(this.getFullYear() + p_Number);
            break;
        }
    case "q":
        { // quarter
            this.setMonth(this.getMonth() + (p_Number * 3));
            break;
        }
    case "m":
        { // month
            this.setMonth(this.getMonth() + p_Number);
            break;
        }
    case "y":
        // day of year
    case "d":
        // day
    case "w":
        { // weekday
            this.setDate(this.getDate() + p_Number);
            break;
        }
    case "ww":
        { // week of year
            this.setDate(this.getDate() + (p_Number * 7));
            break;
        }
    case "h":
        { // hour
            this.setHours(this.getHours() + p_Number);
            break;
        }
    case "n":
        { // minute
            this.setMinutes(this.getMinutes() + p_Number);
            break;
        }
    case "s":
        { // second
            this.setSeconds(this.getSeconds() + p_Number);
            break;
        }
    case "ms":
        { // second
            this.setMilliseconds(this.getMilliseconds() + p_Number);
            break;
        }
    default:
        {

            //throws an error so that the coder can see why he effed up and
            //a list of elegible letters.
            throw "The first parameter must be a string from this list: \n" + "yyyy, q, m, y, d, w, ww, h, n, s, or ms. You passed: " + p_Interval;
            return false;
        }
    }
    return this;
}
Date.prototype.dateAdd = dateAddExtention;



var dateStart = new Date();
var dateEnd = new Date();
dateEnd.dateAdd("m", 10)
var datesAvailable;

// the mapping of the order of the rooms in xml-rpc and on this page
var roomArrayIndex = [3, 0, 4, 1, 2]
var roomPrices;


function dateIndex(date) {


    var one_day = 1000 * 60 * 60 * 24;
    return Math.ceil((date.getTime() - dateStart.getTime()) / (one_day))


}

function pausecomp(millis) {
    var date = new Date();
    var curDate = null;

    do {
        curDate = new Date();
    }
    while (curDate - date < millis);
}

function isAvailable(date) {

    var s = 0;
    var d = dateIndex(date);

    var i = 0;
    for (i = 0; i < 5; i++) {
        var r = datesAvailable[1][i][d];

        s += r;
    }

    return s != 0;

}


function closedDays(date) {
    if (isAvailable(date)) {
        return [true, ""];
    } else {
        return [false, "", "Venue Closed"];
    }
}



function updateTotalPrice() {
    var p = 0;

    $('.roomSelector .selected .priceRoom').each(function() {

        p = p + $(this).data('price');

    });

    $('#totalPrice').text(p);

}

function calcDays() {
    var startDate = $("#arrivaldate").datepicker("getDate");
    var sDate = new Date(startDate);
    var d1 = dateIndex(sDate);
    var endDate = $("#departuredate").datepicker("getDate");
    var eDate = new Date(endDate);
    var d2 = dateIndex(eDate);
    return [d1, d2];

}


function updateAvailability() {

    var rIndexes = calculatePeriodAvailable();

    $('.roomSelector .unselected').removeClass("unavailable");


    updateAvailabilityForRoom('.room02', rIndexes[0]);
    updateAvailabilityForRoom('.room04', rIndexes[1]);
    updateAvailabilityForRoom('.room05', rIndexes[2]);
    updateAvailabilityForRoom('.room01', rIndexes[3]);
    updateAvailabilityForRoom('.room03', rIndexes[4]);


}


function calculatePeriodAvailable() {

    var available;
    var priod = calcDays();
    var min = new Array();
    
    for (var i = 0; i < 5; i++) {

        for (var d = priod[0]; d < priod[1]; d++) {
            if (d == priod[0]) {
                available = datesAvailable[1][i][d];
            }
            if (datesAvailable[1][i][d] < available) {
                available = datesAvailable[1][i][d];
            }
        }
        min[i] = available;
    }
    return min;
}

function updateAvailabilityForRoom(classNameSelector, available) {

    var current = $('.roomSelector .selected').filter(classNameSelector).size();

    if ((available - current) <= 0) {
        $('.roomSelector ' + classNameSelector).filter('.unselected').addClass("unavailable");
    }

}

function onArrivalDateClose(dateText, inst) {
    trackEvent('User', 'onArrivalDateClose', dateText);

    if (dateText != '') {
        var minDate = $("#arrivaldate").datepicker("getDate");
        var maxDate = new Date(minDate);

        while (isAvailable(maxDate) && maxDate < dateEnd) {
            maxDate.dateAdd("d", 1);
        }

        minDate.dateAdd("d", 1);


        $("#departuredate").datepicker("option", "minDate", minDate);
        $("#departuredate").datepicker("option", "maxDate", maxDate);


        $("#departuredate").datepicker("show");
    }

}

function dateToDateString(d) {

    return d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate();
}

function updatePrices() {

    var fromDate = $("#arrivaldate").datepicker("getDate");
    var toDate = $("#departuredate").datepicker("getDate");


    var one_day = 1000 * 60 * 60 * 24;
    var dayCount = Math.ceil((toDate.getTime() - fromDate.getTime()) / (one_day))

    trackEvent('System', 'Prices', '');

    $.getJSON(baseDir + 'ws_prices.php', {
        fromDate: dateToDateString(fromDate),
        toDate: dateToDateString(toDate)
    }, function(data, textStatus, xhr) {

        roomPrices = data;

		var currencyLabel = 'kr. ';
        var dayLabel = "dager";
        if (dayCount == 1) {
            dayLabel = "dag";
        }
        
        if (language == 'en') {
        	currencyLabel = 'NOK ';
        	dayLabel = "days";
        	if (dayCount == 1) {
            	dayLabel = "day";
        	}
        }

        $('.roomSelector .room01 .priceRoom a').text(currencyLabel + data[roomArrayIndex[0]] + ',-');
        $('.roomSelector .room02 .priceRoom a').text(currencyLabel + data[roomArrayIndex[1]] + ',-');
        $('.roomSelector .room03 .priceRoom a').text(currencyLabel + data[roomArrayIndex[2]] + ',-');
        $('.roomSelector .room04 .priceRoom a').text(currencyLabel + data[roomArrayIndex[3]] + ',-');
        $('.roomSelector .room05 .priceRoom a').text(currencyLabel + data[roomArrayIndex[4]] + ',-');

        $('.roomSelector .room01 .numberDays a').text(dayCount + ' ' + dayLabel);
        $('.roomSelector .room02 .numberDays a').text(dayCount + ' ' + dayLabel);
        $('.roomSelector .room03 .numberDays a').text(dayCount + ' ' + dayLabel);
        $('.roomSelector .room04 .numberDays a').text(dayCount + ' ' + dayLabel);
        $('.roomSelector .room05 .numberDays a').text(dayCount + ' ' + dayLabel);


        $('.roomSelector .room01 .priceRoom').data("price", data[roomArrayIndex[0]]);
        $('.roomSelector .room02 .priceRoom').data("price", data[roomArrayIndex[1]]);
        $('.roomSelector .room03 .priceRoom').data("price", data[roomArrayIndex[2]]);
        $('.roomSelector .room04 .priceRoom').data("price", data[roomArrayIndex[3]]);
        $('.roomSelector .room05 .priceRoom').data("price", data[roomArrayIndex[4]]);


        $('.roomSelector').displayDown({
            opacity: 'show'
        }, 1000);


    });


}


function onDepartureDateClose(dateText, inst) {

    trackEvent('User', 'onDepartureDateClose', dateText);

    if (dateText != '') {

        updateAvailability();
        updatePrices();


    }

}

function errorSystemDisplay() {
    trackEvent('System', 'systemErrorDisplay', '');

	$('#errorSystem').displayDown();
	cancelOrder();
	cancelOrder();
	
}


function cancelOrder() {

    trackEvent('User', 'cancelOrder', '');


    $('#demper').hide();

    $('.roomDeleter:first').displayUp(1000);

    $('.roomSelector:first').displayUp(1000);

    $('.roomDeleter:not(:eq(0))').remove(); //displayUp(1000, function () { $(this).remove(); });
    $('.roomSelector:not(:eq(0))').remove(); //displayUp(1000, function () { $(this).remove(); });
    $('#addRoomLink').displayUp(1000);

    $('#totalBox').displayUp(1000);

    $('#addRoomLink').displayUp(1000);

    $('#personaLegal').displayUp(1000);

    $('#cancelLink').displayUp(1000);

    $('#popup').displayUp(1000);

    $('#bankMessage').displayUp(1000);

    $('#date').removeClass('darkborder');

    $('#date').removeClass('skygge');

    $('#arrivaldate').val('');

    $('#departuredate').val('');

    $('#orderButton').addClass('firstTime');


}



$(function() {

	$('#errorSystem').ajaxError(function(e, jqxhr, settings, exception) {
   		errorSystemDisplay();
	});

    $("#arrivaldate").val('');
    $("#departuredate").val('');

    $.getJSON(baseDir + 'ws_availability.php', function(data) {
    	if (data == 0) {
    		errorSystemDisplay();
    	} else {
	    	datesAvailable = data;
    	}
    });

    $("#arrivaldate").datepicker({
        firstDay: 1,
        minDate: dateStart,
        maxDate: dateEnd,
        beforeShowDay: closedDays,
        dateFormat: "d. MM yy",
        showAnim: datepickerShowAnim,
        onClose: onArrivalDateClose
    });
    $("#departuredate").datepicker({
        firstDay: 1,
        minDate: dateStart,
        maxDate: dateEnd,
        dateFormat: "d. MM yy",
        disabled: true,
        showAnim: datepickerShowAnim,
        onClose: onDepartureDateClose
    });

    // Ved klikk utenfor bookingelementer
    $('#demper').click(function() {

        cancelOrder();


        return false;
    });



    $('#cancelLink').click(function() {

        cancelOrder();
        cancelOrder();

        return false;
    });




    $('#date').click(function() {
        trackEvent('User', 'Start', '');

        $('#demper').css("opacity", "0.65").show();
         
        $('#date').addClass('darkborder');

        $('#date').addClass('skygge');

        $("#arrivaldate").datepicker("show");

        //$('#date #arrivalcal').animate({
        //	opacity: 'show'
        //	}, 0);
        $('#date #departurecal').animate({
            opacity: 'hide'
        }, 200);

        $('.roomDeleter a').displayUp({
            opacity: 'hide'
        }, 1000);

        $('#roomSelector01 a').displayDown({
            opacity: 'show'
        }, 200);

        $('#roomSelector01').displayUp({
            opacity: 'hide'
        }, 200);

        $('#roomSelector02 a').displayDown({
            opacity: 'show'
        }, 200);

        $('#roomSelector02').displayUp({
            opacity: 'hide'
        }, 200);

        $('.linkbox').animate({
            opacity: 'show'
        }, 0);

        $('#addRoomLink').displayUp({
            opacity: 'hide'
        }, 1000);

        $('#totalBox').displayUp({
            opacity: 'hide'
        }, 1000);

        $('#personaLegal').displayUp({
            opacity: 'hide'
        }, 1000);

        $('#cancelLink').displayUp({
            opacity: 'hide'
        }, 1000);

        $('#popup').displayUp({
            opacity: 'hide'
        }, 1000);

        $('#bankMessage').displayUp({
            opacity: 'hide'
        }, 1000);

        $('.linkbox').removeClass('selected');

        $('.linkbox').addClass('unselected');

        $('#arrivaldate').val('');

        $('#departuredate').val('');

        $('#orderButton').addClass('firstTime');

        return false;
    });



    $('#date #arrivalcal a').click(function() {

        $('#arrivaldate').val('24. januar 2011');

        $('#date #arrivalcal').animate({
            opacity: 'hide'
        }, 200, function() {

            $('#date #departurecal').animate({
                opacity: 'show'
            }, 200);

        });

        return false;
    });

    $('#date #departurecal a').click(function() {

        $('#departuredate').val('26. januar 2011');

        $('#date #departurecal').animate({
            opacity: 'hide'
        }, 200, function() {

            $('#date #arrivalcal').animate({
                opacity: 'hide'
            }, 200);

            $('#roomSelector01').displayDown({
                opacity: 'show'
            }, 1000);

        });

        return false;
    });


    $('.roomSelector .unselected a').click(function() {



        //    	updateAvailablity(this);
        var currentRoomSelector = $(this).closest('table');


        if ($(this).closest('tr').hasClass('unselected')) {
            trackEvent('User', 'Select Room', '');

            if ($(this).closest('tr').hasClass('unavailable')) {
                return false;
            }

            $(this).closest('tr').removeClass('unselected');
            $(this).closest('tr').addClass('selected');

            $('.unselected', currentRoomSelector).displayUp(400);

            $('#addRoomLink').displayDown({
                opacity: 'show'
            }, 1000);

            $('#totalBox').displayDown({
                opacity: 'show'
            }, 1000);

            if ($('.roomDeleter').size() > 1) {
                $('.roomDeleter').each(function() {
                    $(this).show(); //fadeIn(1000)
                });
            }

            updateTotalPrice();


        } else {
            trackEvent('User', 'Change Room', '');


            $(this).closest('tr').removeClass('selected');
            $(this).closest('tr').addClass('unselected');

            updateAvailability();

            $('tr', currentRoomSelector).displayDown({
                opacity: 'show'
            }, 1000);

            $('#addRoomLink').displayUp({
                opacity: 'hide'
            }, 1000);

            $('#totalBox').displayUp({
                opacity: 'hide'
            }, 1000);

            $('.roomDeleter').hide(); //fadeOut(1000);
        }

        return false;
    });



    $('#addRoomLink').click(function() {

        trackEvent('User', 'Add Room', '');



        $('#addRoomLink').displayUp({
            opacity: 'hide'
        }, 1000);

        $('#totalBox').displayUp({
            opacity: 'hide'
        }, 1000);


        var previous = $('.roomSelector:last');

        $('.roomSelector:last').clone(true).hide().insertAfter(previous);
        $('.roomDeleter:last').clone(true).hide().insertAfter(previous);


        $('.roomSelector:last .selected').each(function() {
            $(this).removeClass('selected');
            $(this).addClass('unselected');
        });

        updateAvailability();

        $('.roomDeleter').hide(); // fadeOut(1000);
        $('.roomSelector:last tr').show();

        $('.roomSelector:last').displayDown({
            opacity: 'show'
        }, 1000);

        return false;

    });


    
    $('.roomDeleter a').click(function() {

        trackEvent('User', 'Delete Room', '');



        var currentRoomDeleter = $(this).parent();
        var currentRoomSelector = $(this).parent().next();

        currentRoomDeleter.displayUpWithCallback(1000, function() {
            currentRoomDeleter.remove();

            if ($('.roomDeleter').size() == 1) {
                $('.roomDeleter').hide();
            }
        });

        currentRoomSelector.displayUp(1000, function() {
            currentRoomSelector.remove();
            updateTotalPrice();
        });

        return false;

    });


    $('#roomList .linkbox').click(function() {

        trackEvent('User', 'Toggle Preview Room', '');



        if ($(this).hasClass('open')) {

            $('#roomList .roomPreview').displayUp({
                opacity: 'hide'
            }, 1000);
            $(this).removeClass('open');

        }

        else {

            $('#roomList .linkbox').removeClass('open');
            $('#roomList .roomPreview').displayUp({
                opacity: 'hide'
            }, 1000);
            $(this).addClass('open');
            $('.open .roomPreview').displayDown({
                opacity: 'show'
            }, 1000);

        }

        return false;

    });

    // Hjelpetekst for kodefelt
    $('#personalData a#codeHelpLink').click(function() {
        trackEvent('User', 'Code Help', '');



        if ($('#codeHelp').is(':visible')) {

            $('#codeHelp').displayUp({
                opacity: 'hide'
            }, 500);

        }

        else {

            $('#codeHelp').displayDown({
                opacity: 'show'
            }, 500);

        }

        return false;

    });

    $('#codeHelp').click(function() {

        $('#codeHelp').displayUp({
            opacity: 'hide'
        }, 500);

        return false;

    });


    $('#termsLink').click(function() {
        trackEvent('User', 'Show Terms', '');

        $('#popup').displayDown({
            opacity: 'show'
        }, 1000);

        return false;

    });


    $('#agree').change(function() {

        $('#popup').displayUp(1000);

        //return false;
    });

    $('#orderButton').click(function() {

        if ($(this).hasClass('firstTime')) {
            trackEvent('User', 'Order', 'First Time');


            $(this).removeClass('firstTime');

            $('#personaLegal').displayDown({
                opacity: 'show'
            }, 1000);

            $('#addRoomLink').displayUp({
                opacity: 'hide'
            }, 1000);

            $('#cancelLink').displayDown({
                opacity: 'show'
            }, 1000);

            return false;

        }

        else if (validate()) {
            trackEvent('User', 'Order', 'Valid');

            var firstname = $('#firstname').val();
            var lastname = $('#lastname').val();
            var address = $('#address').val();
            var address2 = $('#address2').val();
            var postalcode = $('#postalcode').val();
            var area = $('#area').val();
            var country = $('#country').val();
            var code = $('#mphone').val();
            var agree = $('#agree').val();
            var arrivalTime = $('#arrivalTime').val();
            var phoneCountry = $('#phoneCountry').val();

			var email = $('#email').val();

            var requestId = $('#requestId').text();



            var fromDate = $("#arrivaldate").datepicker("getDate");
            var toDate = $("#departuredate").datepicker("getDate");

            var rooms = [];


            // var roomArrayIndex = [3, 0, 4, 1, 2]
            // This order is the same as in Visbook
            rooms.push($('.roomSelector .selected').filter('.room02').size());
            rooms.push($('.roomSelector .selected').filter('.room04').size());
            rooms.push($('.roomSelector .selected').filter('.room05').size());
            rooms.push($('.roomSelector .selected').filter('.room01').size());
            rooms.push($('.roomSelector .selected').filter('.room03').size());


			var href = this.href;


            $(this).addClass('firstTime');

            $('#cancelLink').displayUp(1000);

            $('#totalBox').displayUp(1000);

            $('#addRoomLink').displayUp(1000);

            $('#bankMessage').displayDownWithCallback(1000, function() {

                var returned = false;

                $.ajax({
                    url: baseDir + 'ws_order.php',
                    data: {
                        requestId: requestId,
                        firstname: firstname,
                        lastname: lastname,
                        address: address,
                        address2: address2,
                        postalcode: postalcode,
                        area: area,
                        country: country,
                        code: code,
                        rooms: rooms,
                        email: email,
                        phoneCountry: phoneCountry,
                        fromDate: dateToDateString(fromDate),
                        toDate: dateToDateString(toDate),
                        arrivalTime: arrivalTime
                    },
                    success: function(data, textStatus, xhr) {
                        trackEvent('User', 'Order', 'Success');
                        setTimeout('window.location="' + href + '";', 2000);
                    },
                    type: 'POST',
                    contentType: "application/x-www-form-urlencoded;charset=UTF-8",
                    dataType: 'json',
                    async: false
                });



            });

            

           

            return false;

        }


        trackEvent('User', 'Order', 'Invalide');


        return false;






    });

    // Lukker popup ved klikk
    $('#popup 	.close').click(function() {

        $('#popup').displayUp({
            opacity: 'hide'
        }, 1000);


        return false;
    });




});

// phone country codes start
var countryCodes = new Array();
countryCodes['no'] = '+47';
countryCodes['se'] = '+46';
countryCodes['de'] = '+49';
countryCodes['dk'] = '+45';
countryCodes['gb'] = '+44';
countryCodes['fr'] = '+33';
countryCodes['it'] = '+39';
countryCodes['gr'] = '+30';
countryCodes['es'] = '+34';
countryCodes['cy'] = '+357';
countryCodes['mt'] = '+356';
countryCodes['si'] = '+386';
countryCodes['ua'] = '+380';
countryCodes['cn'] = '+86';
countryCodes['za'] = '+27';
countryCodes['pt'] = '+351';
countryCodes['at'] = '+43';
countryCodes['ch'] = '+41';
countryCodes['nl'] = '+31';
countryCodes['be'] = '+32';
countryCodes['lu'] = '+352';
countryCodes['ie'] = '+353';
countryCodes['fi'] = '+358';
countryCodes['is'] = '+354';
countryCodes['tr'] = '+90';
countryCodes['pl'] = '+48';
countryCodes['cz'] = '+420';
countryCodes['sk'] = '+421';
countryCodes['hu'] = '+36';
countryCodes['us'] = '+1';
countryCodes['ca'] = '+1';
countryCodes['mx'] = '+52';
countryCodes['au'] = '+61';
countryCodes['nz'] = '+64';
countryCodes['jp'] = '+81';
countryCodes['ee'] = '+372';
countryCodes['lv'] = '+370';
countryCodes['lt'] = '+371';
countryCodes['kp'] = '+850';
countryCodes['kr'] = '+82';
countryCodes['pk'] = '+92';
countryCodes['il'] = '+972';
countryCodes['dz'] = '+213';
countryCodes['eg'] = '+20';
countryCodes['ma'] = '+212';
countryCodes['ru'] = '+7';
countryCodes['ar'] = '+54';
countryCodes['br'] = '+55';
countryCodes['in'] = '+91';

$(document).ready(function() {

    $(".errorMessage").hide();

    $('#country').change(function() {
        countryCode = $('#country').val();
        if (countryCodes[countryCode]) {
            phoneCode = countryCodes[countryCode];
            $('#phoneCountry').val(phoneCode);
        }
        //alert('Handler for .change() called. (' + countryCode + ', ' + phoneCode + ')');
    });
});
// phone country codes end

