
window.addEvent('load', function() {
	//imagePreloader('assets/images/button-free-quote-over.png');


});

window.addEvent('domready', function() {
	loadMenus();

});


function imagePreloader(imgsrc) {
	if(!window.__imagePreloader) window.__imagePreloader = [];
	var i = window.__imagePreloader.length;
	window.__imagePreloader[i] = new Image();
	window.__imagePreloader[i].src = imgsrc;
}


function generateObjId() {
	if(!window.__getIdCnt) window.__getIdCnt = 0;
	return 'obj'+ (++window.__getIdCnt); 
}




function loadMenus() {
	window.menus = [];



	var lst = $$('.menuitem');
	for(var i=0; i<lst.length; ++i) {

		window.menus[lst[i].getAttribute('menuid')] = new Menu(lst[i]);
	}
}

Menu = new Class({
	initialize: function(trigger) {
		this.trigger = trigger;
		this.menuid = this.trigger.getAttribute('menuid');
		this.div = $('submenu'+this.menuid);
		this.timer = null;

		var menuid = this.menuid;
		this.trigger.addEvent('mouseover', function() {
			window.menus[menuid].showSubMenu();
		});

		this.trigger.addEvent('mouseout', function() {
			window.menus[menuid].startHideSubMenu();
		});

		if(this.div) {
			var lst = this.div.getElementsByTagName('a');
			for(var i=0; i<lst.length; ++i) {
				$(lst[i]).addEvent('mouseover', function() {
					this.parentNode.className = 'hover';
				});
				$(lst[i]).addEvent('mouseout', function() {

				});
				$(lst[i]).addEvent('click', function() {
					//return false;
				});

				$(lst[i].parentNode).addEvent('mouseover', function() {
					this.className = 'hover';
					clearTimeout(window.menus[menuid].timer);
				});

				$(lst[i].parentNode).addEvent('mouseout', function() {
					this.className = '';
					window.menus[menuid].startHideSubMenu();
				});

				$(lst[i].parentNode).addEvent('click', function() {
					var lnk = $(this.getElementsByTagName('a')[0]);
					if(lnk.target && lnk.target != '_self') {

					} else document.location = lnk.href;
				});
			}
		}
	},

	showSubMenu: function() {
		clearTimeout(this.timer);

		if(this.div && this.div.getStyle('display') != 'none') return;
		doHideAllSubMenus();
		this.trigger.className = 'menuitem hover';
		if(!this.div) return;


		this.div.setStyle('top', this.trigger.getTop() + this.trigger.offsetHeight);
		this.div.setStyle('left', this.trigger.getLeft());
		this.div.setStyle('opacity', 0);
		this.div.setStyle('display', 'block');
	
		new Fx.Tween(this.div, {
			duration: 200
		}).start('opacity', .95);
	},

	startHideSubMenu: function() {
		clearTimeout(this.timer);

		this.timer = setTimeout('window.menus['+this.menuid+'].hideSubMenu();', 700);
	},
	hideSubMenu: function() {
		clearTimeout(this.timer);
		this.trigger.className = 'menuitem';
		if(!this.div) return;
		this.div.setStyle('display', 'none');

	}

});


function doHideAllSubMenus() {
	for(var i=0; i<window.menus.length; ++i) {
		if(window.menus[i]) window.menus[i].hideSubMenu();
	}
}



function popupDiv(div) {
	div = $(div);
	if(!div) return;

	showOverlay();
	popupDivShowDiv(div);
}

function popupDivShowDiv(div) {
	div = $(div);
	if(!div) return;

	var lst = $$('div.popupDiv');
	for(var i=0; i<lst.length; ++i) {
		popupDivHideDiv(lst[i]);
	}

	div.setStyle('opacity', 0);
	div.setStyle('display', 'block');
	div.setStyle('z-index', 99);

	div.setStyle('left', (getPageSize().windowWidth / 2) - (div.offsetWidth / 2)  );
	div.setStyle('top', ( (getPageSize().windowHeight / 2) - (div.offsetHeight / 2) ) * 0.7 );

	new Fx.Tween(div, {
		duration: 500
	}).start('opacity', 1);
}

function popupDivClose(div) {
	div = $(div);
	hideOverlay();
	popupDivHideDiv(div);
}

function popupDivHideDiv(div) {
	div = $(div);
	if(div && div.getStyle('display') == 'block') {
		new Fx.Tween(div, {
			duration: 500,
			onComplete: function() {
				div.setStyle('display', 'none');
			}
		}).start('opacity', 0);
	}
}

function showOverlay() {
	var div = $('divOverlay');
	if(!div) {
		with( div = $(document.createElement('div')) ) {
			id = 'divOverlay';
			setStyle('position', 'absolute');
			setStyle('display', 'none');
			setStyle('z-index', 90);
			setStyle('background', '#4F4F4F');
			setStyle('top', 0);
			setStyle('left', 0);
			setStyle('opacity', 0);
		}
		document.body.appendChild(div);
	}

	if(div.getStyle('display') == 'block') return;

	div.setStyle('opacity', 0);
	div.setStyle('display', 'block');

	div.setStyle('width', getPageSize().windowWidth);
	div.setStyle('height', getPageSize().windowHeight);

	new Fx.Tween(div, {
		duration: 500
	}).start('opacity', 0.4);
}

function hideOverlay() {
	var div = $('divOverlay');
	if(!div || div.getStyle('display') == 'none' ) return;

	new Fx.Tween(div, {
		duration: 500,
		onComplete: function() {
			div.setStyle('display', 'none');
		}
	}).start('opacity', 0);

}
























function test(v) {
	try{
		console.log(v);
	} catch(e) {};
}


