// MVP Passsales - i.e. var adultMvpReg = mvp['regular']['adult']
var mvp = {
    oneYearValDate: new Date('11/10/2011'),
    department: 'PASS',
    category: 'PASSMVP12',
    datetime: '11/10/2011',
    type: 'Pass',
    itemRegEx: /^(6UPASMVP12|80_MVP12|80_MVPRN12|ADMVP12RN|ADPMVP12|CHMVP12RN|CHPMVP12|SNMVP12RN|SNPMVP12|YOMVP12RN|YOPMVP12)/i,
    getPassKey: function (birthdate) {
        var age = 0,
            ageGrp = null;
        age = mvp.findAge(birthdate, this.oneYearValDate);
        if (age <= 6) {
            ageGrp = 'under6';
        } else if (7 <= age && age < 13) {
            ageGrp = 'child';
        } else if (13 <= age && age < 19) {
            ageGrp = 'youth';
        } else if (19 <= age && age < 65) {
            ageGrp = 'adult';
        } else if (65 <= age && age < 80) {
            ageGrp = 'senior';
        } else if (age >= 80) {
            ageGrp = 'over80';
        }
        return ageGrp;
    },
    getPass: function (birthdate, isCharter) {
        var key = mvp.getPassKey(birthdate);
        var renewType = isCharter ? 'charter' : 'passes';
        var retPass = mvp[renewType][key];
        mmsa.global.util.log('mvp.getPass()', retPass);
        return retPass || key || '';
    },
    getNewPass: function (birthdate) {
        var key = mvp.getPassKey(birthdate);
        var retPass = mvp["passes"][key];
        mmsa.global.util.log('mvp.getNewPass()', retPass);
        return retPass || key || '';
    },
    findAge: function (birthDate, valDate) {
        var age = (valDate.getFullYear() - birthDate.getFullYear());
        if (valDate.getMonth() < birthDate.getMonth() ||
			valDate.getMonth() == birthDate.getMonth() && valDate.getDate() < birthDate.getDate()) {
            age--;
        }
        mmsa.global.util.log('findAge() birthdate:' + birthDate.toLocaleDateString() + ' valDate:' + valDate.toLocaleDateString() + ' age:' + age);
        return age;
    },
    isMVPProduct: function (product) {
        if (product.department == null || product.category == null) {
            return false;
        }
        if (product.department.toUpperCase() === mvp.department.toUpperCase() &&
				product.category.toUpperCase() === mvp.category.toUpperCase() &&
				product.item.search(mvp.itemRegEx) >= 0) {
            return true;
        }
        return false;
    }
};

mvp.passes = {
    adult: {
        department: mvp.department,
        category: mvp.category,
        item: 'ADPMVP12',
        datetime: mvp.datetime,
        type: mvp.type,
        liabReq: true,
        descrip: 'Adult MVP Pass 2011/12',
        price: 659 //
    },
    youth: {
        department: mvp.department,
        category: mvp.category,
        item: 'YOPMVP12',
        datetime: mvp.datetime,
        type: mvp.type,
        liabReq: true,
        descrip: 'Youth MVP Pass 2011/12',
        price: 494 //
    },
    child: {
        department: mvp.department,
        category: mvp.category,
        item: 'CHPMVP12',
        datetime: mvp.datetime,
        type: mvp.type,
        liabReq: true,
        descrip: 'Child MVP Pass 2011/12',
        price: 329 //
    },
    senior: {
        department: mvp.department,
        category: mvp.category,
        item: 'SNPMVP12',
        datetime: mvp.datetime,
        type: mvp.type,
        liabReq: true,
        descrip: 'Senior MVP Pass 2011/12',
        price: 329 //
    }
};
mvp.charter = {
    adult: {
        department: mvp.department,
        category: mvp.category,
        item: 'ADMVP12RN',
        datetime: mvp.datetime,
        type: mvp.type,
        liabReq: true,
        descrip: 'Adult Charter MVP Pass 2011/12',
        price: 659 //
    },
    youth: {
        department: mvp.department,
        category: mvp.category,
        item: 'YOMVP12RN',
        datetime: mvp.datetime,
        type: mvp.type,
        liabReq: true,
        descrip: 'Youth Charter MVP Pass 2011/12',
        price: 494 //
    },
    child: {
        department: mvp.department,
        category: mvp.category,
        item: 'CHMVP12RN',
        datetime: mvp.datetime,
        type: mvp.type,
        liabReq: true,
        descrip: 'Child Charter MVP Pass 2011/12',
        price: 329 //
    },
    senior: {
        department: mvp.department,
        category: mvp.category,
        item: 'SNMVP12RN',
        datetime: mvp.datetime,
        type: mvp.type,
        liabReq: true,
        descrip: 'Senior Charter MVP Pass 2011/12',
        price: 329 //
    }
};
mvp.offers = {
    bikepark: {
        child: {
            department: 'PASS',
            category: 'PASSBP',
            item: 'ACTPASCH12',
            descrip: 'Child Bike Park Activity Pass 2011',
            datetime: '6/24/2011',
            price: 89, //
            type: 'Bike Pass',
            parReq: false,
            pickup_loc: '2',
            do_on_sale: 'SELECTLAST()FORCEFINALIZE()'
        },
        adult: {
            department: 'PASS',
            category: 'PASSBP',
            item: 'ACTPASAD12',
            descrip: 'Adult Bike Park Activity Pass 2011',
            datetime: '6/24/2011',
            price: 179, //
            type: 'Bike Pass',
            parReq: false,
            pickup_loc: '2',
            do_on_sale: 'SELECTLAST()FORCEFINALIZE()'
        }
    },
    passcash: {
        department: 'RESORTCARD',
        category: 'BONUSPC',
        item: 'PCBNS',
        datetime: '06/24/2011',
        type: 'PassCash',
        liabReq: true,
        parReq: false,
		pickup_loc: '',
        do_on_sale: 'SELECTLAST()FORCEFINALIZE()'
    },
    sierrastar: {
        allages: {
            department: 'PASS',
            category: 'PASSSS',
            item: 'ACTCRDSS12',
            price: 169,
            descrip: '2011 Sierra Star Card',
            datetime: '5/27/2011',
            type: 'Golf Card',
            parReq: false,
            pickup_loc: '2',
            do_on_sale: 'SELECTLAST()FORCEFINALIZE()'
        }
    },
    sierrastarpass: {
        allages: {
            department: 'PASS',
            category: 'PASSSS',
            item: 'ACTPASS12',
            price: 1299,
            descrip: 'Sierra Star Pass',
            datetime: '5/27/2011',
            type: 'Golf Pass',
            parReq: false,
            pickup_loc: '2',
            do_on_sale: 'SELECTLAST()FORCEFINALIZE()'
        }
    },
    tamarack: {
    	child: {
	        department: 'PASS',
	        category: 'PASSTL',
	        item: 'ACTPASCH12',
	        datetime: '11/19/2011',
	        price: 89, //
	        descrip: 'Child Tamarack Activity Pass 2011',
	        type: 'Tamarack Pass',
	        parReq: false,
	        pickup_loc: '2',
	        do_on_sale: 'SELECTLAST()FORCEFINALIZE()'
	    },
        youth: {
            department: 'PASS',
            category: 'PASSTL',
            item: 'ACTPASYO12',
            datetime: '11/19/2011',
            price: 169, //
            descrip: 'Youth Tamarack Activity Pass 2011',
            type: 'Tamarack Pass',
            parReq: false,
            pickup_loc: '2',
            do_on_sale: 'SELECTLAST()FORCEFINALIZE()'
        },
        adult: {
            department: 'PASS',
            category: 'PASSTL',
            item: 'ACTPASAD12',
            datetime: '11/19/2011',
            price: 179, //
            descrip: 'Adult Tamarack Activity Pass 2011',
            type: 'Tamarack Pass',
            parReq: false,
            pickup_loc: '2',
            do_on_sale: 'SELECTLAST()FORCEFINALIZE()'
        },
        senior: {
            department: 'PASS',
            category: 'PASSTL',
            item: 'ACTPASSN12',
            datetime: '11/19/2011',
            price: 169, //
            descrip: 'Senior Tamarack Activity Pass 2011',
            type: 'Tamarack Pass',
            parReq: false,
            pickup_loc: '2',
            do_on_sale: 'SELECTLAST()FORCEFINALIZE()'
        }
    },
    insurance: {
        department: 'INSURANCE',
        category: 'INSURANCE',
        item: 'PASSINSUR',
        type: 'Pass<br/>Insurance',
        do_on_sale: 'SELECTLAST()FORCEFINALIZE()',
        pickup_loc: '',
        parReq: false
    },
    getProductValDate: function(type) {
        switch (type) {
            case 'bikepark':
                return new Date(mvp.offers[type]['child'].datetime);
                break;
            case 'sierrastar':
                return new Date(mvp.offers[type]['allages'].datetime);
                break;
            case 'sierrastarpass':
                return new Date(mvp.offers[type]['allages'].datetime);
                break;
            case 'tamarack':
                return new Date(mvp.offers[type]['child'].datetime);
                // return new Date('11/20/2011');
                break;
            case 'passcash':
                return new Date(mvp.offers[type].datetime);
                break;
        }
        return null;
    },
    getProduct: function(type, birthdate) {
        var age = (typeof birthdate !== 'undefined') ? mvp.findAge(birthdate, this.getProductValDate(type)) : 0;
        var key = null;
        if (type === 'bikepark' && age < 13) {
            key = 'child';
        } else if (type === 'bikepark' && age >= 12) {
            key = 'adult';
        } else if (type === 'sierrastar') {
            key = 'allages';
        } else if (type === 'sierrastarpass') {
            key = 'allages';
        } else if (type === 'tamarack' && age > 6 && age < 13) {
            key = 'child';
        } else if (type === 'tamarack' && age >= 13 && age < 19) {
            key = 'youth';
        } else if (type === 'tamarack' && age >= 19 && age < 65) {
            key = 'adult';
        } else if (type === 'tamarack' && age >= 65 && age < 110) {
            key = 'senior';
        } else if (type === 'passcash') {
            return mvp.offers[type];
        } else if (type === 'insurance') {
            return mvp.offers[type];
        } 
        //else if (type === 'donate') {
        //    return mvp.offers[type];
        //}
        var retProd = mvp.offers[type][key];
        mmsa.global.util.log('mvp.getProduct()', retProd);
        return retProd;
    }
};


