var jukebox;
var jukeboxReady = false;
var jukeboxTimer = 0;
var resumeJukebox = false;;
var player;


window.addEvent('domready', function () {


    //external links
    $$('a[rel=external]').set('target', '_blank');

    if ($('paymentForm')) {

        var paymentForm = $('paymentForm');
        var selectReason = $('reason');
        var reasonOptions = $$('select#reason option');
        var selectCourse = $('course');
        var docList = $('doclist');
        var courseOptions = $$('select#course option');
        var courseDefault = $('default');
        var courseOptions1 = $$('select#course option.reason_1');
        var courseOptions2 = $$('select#course option.reason_2');
        var courseOptions3 = $$('select#course option.reason_3');
        var courseOptions4 = $$('select#course option.reason_4');
        var courseOptions5 = $$('select#course option.reason_5');
        var courseOptions6 = $$('select#course option.reason_6');
        var courseOptions7 = $$('select#course option.reason_7');
        var stuCusLabel = $('numberLabel');
        var stuCusName = $('nameLabel');
        var typeLabel = $('typeLabel');
        var studentName = 'Student name:';
        var customerName = 'Customer name:';
        var studentNo = 'Student record number:';
        var customerNo = 'Customer number:';
        var feeType = 'Fee type:';
        var merchandise = "Merchandise Product:";

        // Terms and Conditions Population
        selectReason.addEvent('change', function (evt) {
            populateTCs(selectReason);
        });

        if (selectReason.getSelected().get('value') == "00") {
            selectCourse.set('disabled', 'disabled').addClass('disabled');
        }
        else {
            populateList(selectCourse, selectReason, courseOptions, courseDefault, typeLabel, stuCusLabel, stuCusName, studentNo, studentName, courseOptions1, courseOptions2, courseOptions3, courseOptions4, courseOptions5, courseOptions6, courseOptions7, feeType, merchandise, customerNo, customerName);
            populateTCs(selectReason);
        }

        selectReason.addEvent('change', function () {
            populateList(selectCourse, selectReason, courseOptions, courseDefault, typeLabel, stuCusLabel, stuCusName, studentNo, studentName, courseOptions1, courseOptions2, courseOptions3, courseOptions4, courseOptions5, courseOptions6, courseOptions7, feeType, merchandise, customerNo, customerName);
        });

        var totalInput = $('total');
        totalInput.set('disabled', 'disabled');

        var submitButton = $('btnsubmit');
        submitButton.set('disabled', 'disabled').addClass('disabled');

        var amountInput = $('inv_amount');
        var payMethod = null;
        var payFee1 = 2;
        var payFee2 = 0.50;
        var selectPayMethod = $('paymentType');
        var invoiceAmountInput = $('inv_amount');
        var totalBox = $('total');

        //selectPayMethod.set('disabled','disabled').addClass('disabled');

        function setTotal() {
            var invoiceAmount = invoiceAmountInput.get('value');
            if (isNaN(invoiceAmount)) {
                alert('You have entered an invalid amount. Please check and try again.');
                invoiceAmountInput.set('value', '');
            } else {
                var invInt = Number(invoiceAmount);
                var invAdju = invInt.toFixed(2);
                //selectPayMethod.erase('disabled').removeClass('disabled');
                var paymentType = selectPayMethod.get('value');
                if ((paymentType == 'VISA') || (paymentType == 'MSCD') || (paymentType == 'JCB')) {
                    var inputAmount = invInt;
                    var addAmount = (inputAmount / 100) * 2;

                    var updatedAmount = inputAmount + addAmount;
                    var decimalAmount = updatedAmount.toFixed(2);
                    totalBox.set('value', decimalAmount);
                } else {
                    var inputAmount = invInt;
                    var updatedAmount = Number(inputAmount) + 0.50;
                    updatedAmount = updatedAmount.toFixed(2);
                    totalBox.set('value', updatedAmount);
                };
            };
        };

        selectPayMethod.addEvent('change', function () {
            setTotal();
        });
        amountInput.addEvent('change', function () {
            amountInput.set('value', Number(amountInput.get('value')).toFixed(2));
            setTotal();
        });

        var totalValue = totalBox.get('value');
        if (totalValue != '0.00') {
            setTotal();
        };
        var inputValue = amountInput.get('value');
        if (inputValue == '') {

        } else {
            setTotal();
        };


        var confirmBox = $('confirm');
        confirmBox.checked = false;
        var confirmStatus = confirmBox.checked;


        confirmBox.addEvent('change', function (el) {
            confirmStatus = confirmBox.checked;
            if (confirmStatus == true) {
                submitButton.erase('disabled').removeClass('disabled');
            };
        });
    };

    //jukebox
    jukebox = new Swiff('/_common/swf/mp3Player.swf', {
        id: 'mp3Player',
        container: 'jukebox',
        version: 8,
        width: '100%',
        height: '100%',
        params: {
            wMode: 'opaque',
            bgcolor: '#000000'
        }
    });

    if ($('jukebox')) {
        var track = new Element('div', {
            'class': 'trackInfoContainer'
        }).inject($(document.body));
        pauseJukebox();
        new Element('div', {
            'id': 'trackInfo',
            'class': 'trackInfo fckContent'
        }).inject(track).slide('hide');

        //mute link
        var muteLink = new Element('a', {
            'href': '#',
            'text': 'Pause the music',
            'styles': {
                'float': 'right',
                'display': 'block',
                'height': 1,
                'width': 1,
                'overflow': 'hidden',
                'text-indent': '-1000em'
            },
            'events': {
                'click': function (e) {
                    new Event(e).stop();
                    pauseJukebox();
                }
            }
        }).inject($('jukebox'), 'before');

        var playLink = new Element('a', {
            'href': '#',
            'text': 'Play the music',
            'styles': {
                'float': 'right',
                'display': 'block',
                'height': 1,
                'width': 1,
                'overflow': 'hidden',
                'text-indent': '-1000em'
            },
            'events': {
                'click': function (e) {
                    new Event(e).stop();
                    playJukebox();
                }
            }
        }).inject($('jukebox'), 'before');
    }

    //flash slides
    if ($('flashSlides')) {
        new Swiff('/_common/swf/homepageSlides.swf', {
            id: 'homepageSlides',
            container: 'flashSlides',
            version: 8,
            width: '100%',
            height: '100%',
            params: {
                wMode: 'opaque',
                bgcolor: '#000000'
            }
        });
    }

    //content nav
    if ($$('.contentNav')[0]) {
        var slider = $$('.contentNav .navItems')[0];
        slider.slide('show');
        var tab = $$('.contentNav .tabs li')[0];
        tab.setStyle('cursor', 'pointer').addClass('open');
        tab.addEvent('click', function (e) {
            if (this.hasClass('open')) {
                slider.slide('out');
            } else {
                slider.slide('in');
            }
            this.toggleClass('open');
        });
    }

    var txtResize = new textResizeDetector();

    new flashText('h1', { font: '/_common/swf/titles.swf', size: 28, resizer: txtResize });
    new flashText('h2', { font: '/_common/swf/titles.swf', size: 24, resizer: txtResize });

    if ($('dropListArea')) {
        var pro = $$('.requestProspectus')[0];
        var undergrad = pro.getElement('.undergrad');
        var postgrad = pro.getElement('.postgrad');
        var diplomas = pro.getElement('.diplomas');
        var startYear = pro.getElement('.startyear');
        var hear = pro.getElement('.hear');


        var otherCountry = $$('.othercountry')[0];
        $('dropListCountry').addEvent('change', function () {
            if (this.value == '') {
                otherCountry.setStyle('display', 'block');
            } else {
                otherCountry.setStyle('display', 'none');
            }
        });
        $('dropListCountry').fireEvent('change');

        var otherHear = $$('.otherhear')[0];
        $('dropListHearAbout').addEvent('change', function () {
            if (this.value == '') {
                otherHear.setStyle('display', 'block');
            } else {
                otherHear.setStyle('display', 'none');
            }
        });

        var otherFormat = $$('.otherformat')[0];
        $('dropListAltFormat').addEvent('change', function () {
            if (this.value == '') {
                otherFormat.setStyle('display', 'block');
            } else {
                otherFormat.setStyle('display', 'none');
            }
        });

        function hideOptions() {
            undergrad.setStyle('display', 'none');
            postgrad.setStyle('display', 'none');
            diplomas.setStyle('display', 'none');
            startYear.setStyle('display', 'none');
            hear.setStyle('display', 'block');
            $$('.otherformat')[0].setStyle('display', 'none');
            $('dropListHearAbout').fireEvent('change');
            $('dropListAltFormat').fireEvent('change');
        }
        hideOptions();

        $('dropListArea').addEvent('change', function (e) {
            hideOptions();
            switch (this.value) {
                case '1':
                    startYear.setStyle('display', 'block');
                    break;
                case '2':
                    undergrad.setStyle('display', 'block');
                    startYear.setStyle('display', 'block');
                    break;
                case '3':
                    postgrad.setStyle('display', 'block');
                    startYear.setStyle('display', 'block');
                    break;
                case '4':
                    diplomas.setStyle('display', 'block');
                    startYear.setStyle('display', 'block');
                    break;
                case '6':
                    startYear.setStyle('display', 'block');
                    break;
                case '7':
                    startYear.setStyle('display', 'block');
                    break;
            }
            $('everyyear').fireEvent('click');
        });
        $('dropListArea').fireEvent('change');

        $('everyyear').addEvent('click', function () {
            if (this.checked) {
                startYear.setStyle('display', 'none');
            } else {
                if ($('dropListArea').get('value') != '5') {
                    startYear.setStyle('display', 'block');
                }
            }
        });

    }


    new multiBox('mb', {
        overlay: new overlay(),
        openFromLink: false
    });

    $(document.body).setStyle('visibility', '');
});


function playerReady() {
	player = $('player');
	//player.addViewListener("PLAY","playerStatus");
	player.addModelListener("STATE", "stateChange");
}

function stateChange(obj){
	//console.log(obj.newstate);
	if(obj.newstate == 'PLAYING'){
		getJukeboxStatus();
		pauseJukebox();
	}
	if(obj.newstate == 'COMPLETED'){
		if(resumeJukebox){
			playJukebox();
		}
	}
}

function playerStatus(){
	if(player.getConfig().state != 'PLAYING'){
		pauseJukebox();
	}
}

function pauseJukebox(){
	if(jukeboxReady){
		clearTimeout(jukeboxTimer);
		Swiff.remote(jukebox.toElement(), 'pauseJukebox', 0); 
	}else{
		jukeboxTimer = setTimeout(pauseJukebox, 50);
	}
}

function playJukebox(){
	if(jukeboxReady){
		clearTimeout(jukeboxTimer);
		Swiff.remote(jukebox.toElement(), 'playJukebox', 0); 
	}else{
		jukeboxTimer = setTimeout(playJukebox, 50);
	}
}

function getJukeboxStatus(){
	if(jukeboxReady){
		clearTimeout(jukeboxTimer);
		if(Swiff.remote(jukebox.toElement(), 'jukeboxStatus', 0) == 'playing'){
			resumeJukebox = true;
		} 
	}else{
		jukeboxTimer = setTimeout(jukeboxStatus, 50);
	}
}

function jukeboxLoaded(){
	//console.log('jukebox ready')
	jukeboxReady = true;
}

function hideTrackInfo(){
	$('trackInfo').slide('out');
}

function showTrackInfo(id){
	new Request({
		url: '/musictrackinfo.axd?id=' + id,
		method: 'GET',
		onSuccess: function(text, xml){
			$('trackInfo').set('html', xml.getElementsByTagName('desc').item(0).firstChild.data);
			new Element('div', {'class':'close'}).inject($('trackInfo'), 'top').addEvent('click', function(){$('trackInfo').slide('out');});
			$('trackInfo').slide('in');
		}
	}).send({'id':id});
}

function populateTCs(selectReason)
{
	var selected = selectReason.getSelected().get('text').toString();
	TCDocsList.each(function(el) {
	    if (el === undefined) return;
	    var textVal = el.Title;
	    textVal = textVal.substring(0, selected.length);
	    if (textVal == selected) {
	        if (!($('pdfDownload'))) {
	            var pdfLink = new Element('a', {
	                'id': 'pdfDownload',
	                'target': '_blank',
	                'href': el.Url,
	                'text': 'Terms and Conditions'
	            });
	            pdfLink.inject($('checkbox'));
	        } else {
	            $('pdfDownload').set('href', el.Url);
	        }
	    }
	});
}

function populateList(selectCourse, selectReason, courseOptions, courseDefault, typeLabel, stuCusLabel, stuCusName, studentNo, studentName, courseOptions1, courseOptions2, courseOptions3, courseOptions4, courseOptions5, courseOptions6, courseOptions7, feeType, merchandise, customerNo, customerName)
{
	selectCourse.erase('disabled').removeClass('disabled');
	courseOptions.dispose();
	courseDefault.inject(selectCourse,'inside');
	var reasonValue = selectReason.get('value');
	
	
	var pleaseSelectCourse = 'Please select a Course';
	var pleaseSelectFee = 'Please select a fee type';
	var pleaseSelectProduct = 'Please select a product type'
	var pleaseSelectExam = 'Please select an exam type';
	var pleaseSelectInvoice = 'Please select an Invoice type';
	
	if(reasonValue=='00'){
		selectCourse.set('disabled','disabled').addClass('disabled');
		selectCourse.set('title', pleaseSelectCourse);
		stuCusLabel.set('text',studentNo);
		stuCusName.set('text',studentName);
		typeLabel.set('text' , 'Course:');
		selectCourse.getFirst('option').set('text', pleaseSelectCourse);
	}else if(reasonValue=='01'){
		courseOptions1.inject(selectCourse,'inside');
		selectCourse.set('title', pleaseSelectCourse);
		stuCusLabel.set('text',studentNo);
		stuCusName.set('text',studentName);
		typeLabel.set('text' , 'Course:');
		selectCourse.getFirst('option').set('text', pleaseSelectCourse);
	}else if(reasonValue=='02'){
		courseOptions2.inject(selectCourse,'inside');
		selectCourse.set('title', pleaseSelectCourse);
		stuCusLabel.set('text',studentNo);
		stuCusName.set('text',studentName);
		typeLabel.set('text' , 'Course:');
		selectCourse.getFirst('option').set('text', pleaseSelectCourse);
	}else if(reasonValue=='03'){
		courseOptions3.inject(selectCourse,'inside');
		selectCourse.set('title', pleaseSelectCourse);
		stuCusLabel.set('text',studentNo);
		stuCusName.set('text',studentName);
		typeLabel.set('text' , 'Course:');
		selectCourse.getFirst('option').set('text', pleaseSelectCourse);
	}else if(reasonValue=='04'){
		courseOptions4.inject(selectCourse,'inside');
		selectCourse.set('title', pleaseSelectFee);
		stuCusLabel.set('text', studentNo);
		stuCusName.set('text',studentName);
		typeLabel.set('text' , 'LIPA 4:19 Fee Type:');
		selectCourse.getFirst('option').set('text', pleaseSelectFee);
	}else if(reasonValue=='05'){
		courseOptions5.inject(selectCourse,'inside');
		selectCourse.set('title', pleaseSelectProduct);
		stuCusLabel.set('text',studentNo);
		stuCusName.set('text', studentName);
		typeLabel.set('text' , 'Mechandise product:');
		selectCourse.getFirst('option').set('text', pleaseSelectProduct);
    } else if (reasonValue == '06') {
        courseOptions6.inject(selectCourse, 'inside');
        selectCourse.set('title', pleaseSelectExam);
        stuCusLabel.set('text', studentNo);
        stuCusName.set('text', studentName);
        typeLabel.set('text' , 'Exam Type:');
        selectCourse.getFirst('option').set('text', pleaseSelectExam);
    } else if (reasonValue == '07') {
        courseOptions7.inject(selectCourse, 'inside');
        selectCourse.set('title', pleaseSelectInvoice);
        stuCusLabel.set('text', "Student / customer number:");
        stuCusName.set('text', "Student  / customer name:");
        typeLabel.set('text', 'Miscellaneous Invoice Type:');
        selectCourse.getFirst('option').set('text', pleaseSelectInvoice);
	}else{
		courseOptions.inject(selectCourse,'inside');
		selectCourse.set('title', pleaseSelectFee);
		stuCusLabel.set('text',studentNo);
		stuCusName.set('text',studentName);
		typeLabel.set('text' , 'Miscellaneous fee type:');
		selectCourse.getFirst('option').set('text', pleaseSelectFee);
	};
	
	selectCourse.options[0].set('selected', 'selected');
}
