﻿
var Page = {
	isAnimating: false,
	isLineOfBusinessColVisible: false,
	isUSRegionSelected: false,
	isContactListOpened: false,
	isDivHighlighted: false,
	highlightedDiv: '',
	regionSelected: '',
	lineOfBusinessSelected: '',
	lastContactListDiv: {},
	contactListDivHeights: new Hash(),
	businessUnitsAndMapRowHeight:0,
	animationQueue: [],
	load: function() {
		$$('#ColLeftDiv input[type=radio]').addEvent('click', Page.selectRegion);
		$$('#ColRightDiv input[type=radio]').addEvent('click', Page.selectLineOfBusiness);
		$$('#Row3Div input[type=radio]').set('checked', false);
		$$('.ContactListDiv').each(function(item) {
			Page.contactListDivHeights.set(item.id, item.getSize().y);
			item.setStyle('display', 'none');
		});
		$('Row5Div').setStyle('height', 'auto');
		Page.businessUnitsAndMapRowHeight = $('Row6Div').getSize().y;
		Page.loadFromQuerystring();
		new ProcessMailtos(new Hash({ 'NOSPAM.com': 'partnerre.com', 'NOSPAMING.com': 'paris-re.com', 'NOSPAMPLEASE.com': 'paris-re-dc.com' }));
	},
	loadFromQuerystring: function() {
		if (location.hash.length > 1) {
			Page.gotoContactList(location.hash);
			Page.hideBusinessUnitsAndMap();
		}
	},
	selectRegion: function(e) {
		Page.regionSelected = $(e.target).get('value');
		if (!Page.isLineOfBusinessColVisible) Page.displayLineOfBusinessCol();
		if (Page.regionSelected == 'US' && !Page.isUSRegionSelected) Page.displayUSFormConfig();
		else if (Page.regionSelected != 'US' && Page.isUSRegionSelected) Page.displayInternationalFormConfig();

		if (Page.isContactListOpened) {
			Page.tweenContactListOut().chain(function() {
				if (Page.lineOfBusinessSelected.length > 0 && Page.lineOfBusinessSelected != 'ManagedPrograms') {
					location.hash = '#' + Page.regionSelected + "-" + Page.lineOfBusinessSelected;
					var contactListDiv = $(Page.regionSelected + "-" + Page.lineOfBusinessSelected + ".ContactListDiv");
					Page.tweenContactListIn(contactListDiv);
				}
			});
		}
	},
	displayLineOfBusinessCol: function() {
		Page.isLineOfBusinessColVisible = true;
		$$('#ColRightDiv .RadioDiv label').tween('margin-left', 13, 7);
		return $('LineOfBusinessMaskDiv').tween('opacity', .7, 0).get('tween');
	},
	hideLineOfBusinessCol: function() {
		Page.isLineOfBusinessColVisible = false;
		$$('#ColRightDiv .RadioDiv label').tween('margin-left', 7, 13);
		return $('LineOfBusinessMaskDiv').tween('opacity', 0, .7).get('tween');
	},
	displayUSFormConfig: function() {
		$$('#PCTreatyUSLabelDiv, #ManagedProgramsRadioDiv').set('opacity', 0).setStyle('display', 'block');
		$('PCTreatyInternationalLabelDiv').tween('opacity', 1, 0).get('tween').chain(function() {
			$('PCTreatyInternationalLabelDiv').setStyle('display', 'none');
			$$('#PCTreatyUSLabelDiv, #ManagedProgramsRadioDiv').tween('opacity', 0, 1);
		});
		(function() { $$('#ColRightDiv .RadioDiv label').setStyle('margin-left', 7); }).delay(1000);
		Page.isUSRegionSelected = true;
	},
	displayInternationalFormConfig: function() {
		$$('#PCTreatyUSDiv, #ManagedProgramsRadioDiv').tween('opacity', 1, 0)[0].get('tween').chain(function() {
			$$('#PCTreatyUSLabelDiv, #ManagedProgramsRadioDiv').setStyle('display', 'none');
			$('PCTreatyInternationalLabelDiv').setStyle('display', 'block').tween('opacity', 0, .99);
		});
		Page.isUSRegionSelected = false;
	},
	gotoContactList: function(hashUrl) {
		if (hashUrl.length > 1) {
			regionLineFromHashUrl = hashUrl.substring(1).split('-');
			if (regionLineFromHashUrl.length >= 2) {
				$$('#ColLeftDiv input[type=radio]').each(function(item) {
					if (item.value == regionLineFromHashUrl[0]) {
						Page.regionSelected = item.value;
						Page.displayLineOfBusinessCol();
						if (Page.regionSelected == "US") Page.displayUSFormConfig();
						item.checked = true;
					}
				});
				$$('#ColRightDiv input[type=radio]').each(function(item) {
					if (item.value == regionLineFromHashUrl[1]) {
						Page.lineOfBusinessSelected = item.value;
						var contactListDiv = $(Page.regionSelected + "-" + Page.lineOfBusinessSelected + ".ContactListDiv");
						if (Page.isContactListOpened) {
							Page.tweenContactListOut().chain(function() {
								Page.tweenContactListIn(contactListDiv);
								
							});
						} else {
							Page.tweenContactListIn(contactListDiv);
							
						}
						item.checked = true;
					}
				});
			}
			
		
		}
	},
	selectLineOfBusiness: function(e) {
		Page.lineOfBusinessSelected = $(e.target).get('value');
		var contactListDiv = $(Page.regionSelected + "-" + Page.lineOfBusinessSelected + ".ContactListDiv");
		location.hash = '#' + Page.regionSelected + "-" + Page.lineOfBusinessSelected;

		if (contactListDiv) {
			if (!Page.isContactListOpened) {
				Page.hideBusinessUnitsAndMap();
				Page.tweenContactListIn(contactListDiv);
			} else {
				if (!Page.isAnimating) {
					Page.tweenContactListOut().chain(function() {
						Page.tweenContactListIn(contactListDiv);
					});
				} else {
					Page.animationQueue.push(contactListDiv);
				}
			}
		}
	},
	tweenContactListIn: function(contactListDiv) {
		if (!Page.isContactListOpened) $('Row4Div').tween('height', 0, 20);
		Page.isContactListOpened = true;
		Page.isAnimating = true;
		contactListDiv.setStyles({ display: 'block', height: 0, 'z-index': 0 }).tween('height', 0, Page.contactListDivHeights.get(contactListDiv.getProperty('id'))).get('tween').chain(function() {
		   if (location.hash.substring(1).split('-').length == 3) {
			var contactAnchorName = location.hash.substring(1).split('-')[2];	
			Page.highlightedDiv = $(contactAnchorName).getNext('div');
			Page.isDivHighlighted = true
			var myFx = new Fx.Scroll(window).toElement(Page.highlightedDiv).chain(function() { 
			$$(Page.highlightedDiv).tween('background-color', '#FFFFFF', '#f2f2f2');
			});
		   }
			Page.isAnimating = false;
			if (Page.animationQueue.length > 0) {
				Page.tweenContactListOut().chain(function() {
					Page.tweenContactListIn(Page.animationQueue.pop());
				});
			} else {
				$$('.ContactListDiv').each(function(item) {
					if (item.getProperty('id') != this.getProperty('id')) item.setStyle('display', 'none');
				}, this.subject);
			}
					
		});
		Page.lastContactListDiv = contactListDiv;
	},
	tweenContactListOut: function() {
		Page.isContactListOpened = false;
		if (Page.isDivHighlighted == true) {
			$$(Page.highlightedDiv).tween('background-color', '#f2f2f2', '#FFFFFF');
			Page.isDivHighlighted = false;
			}
		if (!Page.isContactListOpened) $('Row4Div').tween('height', 20, 0);
		return Page.lastContactListDiv.tween('height', Page.lastContactListDiv.getSize().y, 0).get('tween');
	},
	displayBusinessUnitsAndMap: function () {
		$('Row6Div').setStyle('display', 'block');
		$('Row6Div').tween('height', $('Row6Div').getSize().y, Page.businessUnitsAndMapRowHeight);
	},
	hideBusinessUnitsAndMap: function() {
		$('Row6Div').tween('height', $('Row6Div').getSize().y, 0).get('tween').chain(function() {
			$('Row6Div').setStyle('display', 'none');
		});
	},
	clearForm: function() {
		Page.tweenContactListOut().chain(function() {
			Page.lastContactListDiv.setStyle('display', 'none');
		});
		Page.hideLineOfBusinessCol();
		if (Page.isUSRegionSelected) Page.displayInternationalFormConfig();
		Page.displayBusinessUnitsAndMap();
		$$('#Row3Div input[type=radio]').set('checked', false);
		location.hash = '';
	}
};
 
window.addEvent('domready', Page.load);

