try { document.execCommand("BackgroundImageCache",false,true); } catch(e) {};
Event.observe(window, "load", initLogin, false);

function initLogin(){
new LoginDialog("isprime-login", "closeLogin", "submitLogin", "login-form", "login-form-element", "flow-div");
new LoginDialog("elite-login", "closeEliteLogin", "submitEliteLogin", "elite-login-form", "elite-login-form-element", "flow-div");
}

var Cookies = {
	init: function () {
		var allCookies = document.cookie.split('; ');
		for (var i=0;i<allCookies.length;i++) {
			var cookiePair = allCookies[i].split('=');
			this[cookiePair[0]] = cookiePair[1];
		}
	},
	create: function (name,value,days) {
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
		this[name] = value;
	},
	erase: function (name) {
		this.create(name,'',-1);
		this[name] = undefined;
	}
};
Cookies.init();

Math.randomNumber = function(number){
	return Math.round(Math.random() * number);
};

var RotatableImages = {
	init: function () {
		var rotatableImages = [
			"/img/juggler.gif",
			"/img/musician.gif",
			"/img/men.gif"
			];
		var imageIndexCookie = Cookies["rotatableImageIndex"];
		var imageIndex;
		if(!imageIndexCookie){
			imageIndex = Math.randomNumber(rotatableImages.length-1);
		}else{
			imageIndexCookie = parseInt(imageIndexCookie);
			imageIndex = (imageIndexCookie>=rotatableImages.length-1) ? 0 : imageIndexCookie+1;
		}
		this.imageSrc = rotatableImages[imageIndex];
		var preloadImage = new Image();
		preloadImage.src = this.imageSrc;
		Cookies.create("rotatableImageIndex",imageIndex, 365);
	},
	
	place: function(id){
		new Insertion.Top(id, '<img class="rotate" src="'+this.imageSrc+'" alt="" />');
	}
};
RotatableImages.init();

    var agent = navigator.userAgent.toLowerCase();
    var agentVer = null;
    if (agent.indexOf('opera') !=-1){
		agentVer = parseFloat(agent.match(/opera.{1}(\d+.\d+)/)[1]); 
  	}

function initMenu(){
	if(MainMenu && !Event.observers && agentVer <= 9.0){
	MainMenu.addObservers();
	}
}

var Menu = Class.create();

Menu.prototype = {

    initialize: function(id) {
		this.menu = $(id);
		this.previousSubmenu = this.menu;
		this.currentItem = null;
		this.firstLevelItems = [];
		var lowerSubmenu;
		var firstUL;
		this.allchildUlsOfTheMenu = $A(this.menu.getElementsByTagName('ul'));
		this.allchildLisOfTheMenu = $A(this.menu.getElementsByTagName('li'));
		this.allchildLisOfTheMenu.each(function(item){
			Event.observe(item, "click", this.closeAll.bind(this), false);
		}.bind(this));
		
		if (agent.indexOf('msie') !=-1 && agent.indexOf('opera') ==-1){
			var ieVer = parseFloat(agent.match(/msie.{1}(\d+.\d+)/)[1]); 
			if ( ieVer < 7.0) { 
				new Hover(this.allchildLisOfTheMenu, "hover");
			}
		}
		this.isCloseNeeded = false;
		this.closeMenuTimerId = null;
		this.mouseOverBody = this.overBody.bindAsEventListener(this);
		this.isIE = ((agent.indexOf('msie')!=-1 && agent.indexOf('opera')==-1));

		var firstLevelItem = this.menu.getElementsByTagName('li')[0];
		while(firstLevelItem){
			if(firstLevelItem.tagName && firstLevelItem.tagName.toLowerCase() == "li"){
					this.firstLevelItems.push(firstLevelItem);
					$A(firstLevelItem.getElementsByTagName('li')).each(function(item){
						if(item.getElementsByTagName('ul')[0]){
              if(agent.indexOf('netscape') == -1){
                new Insertion.Top(item.getElementsByTagName('a')[0], "<span>&nbsp;</span>");
              }else{
              var newSpan = document.createElement('span');
							var newText = document.createTextNode("\0");
							newSpan.appendChild(newText);
							item.getElementsByTagName('a')[0].insertBefore(newSpan, item.getElementsByTagName('a')[0].firstChild);
							}
						}
					});
				firstUL = firstLevelItem.getElementsByTagName('ul')[0];
				if(firstUL){
					firstUL.className = "parent";
					if(this.isIE){
						Element.addClassName(firstUL, "iefix");
					}
					$A(firstUL.getElementsByTagName('ul')).each(function(submenu){
						Element.addClassName(submenu, "parent");
						Element.addClassName(submenu, "child");
					});
				}
			}
			firstLevelItem = firstLevelItem.nextSibling;
		}
		this.addObservers();
	},
	
	addObservers: function(){
		this.allchildLisOfTheMenu.each(function(item){
			Event.observe(item, "mouseover", this.openSubmenu.bindAsEventListener(this, item), false);
			Event.observe(item, "mouseout", this.wait.bindAsEventListener(this, item), false);
		}.bind(this));
	},

	openSubmenu: function(event, element) {
		this.isCloseNeeded = false;
		clearTimeout(this.closeMenuTimerId);
		this.closeMenuTimerId = null;
		if(element == this.currentItem && !this.firstLevelItems.include(element)){
			Event.stop(event);
			return false;
		}
		this.currentItem = element;
		
		var effect = {};
		var currentSubmenu = Element.up(element, "ul", 0);
		currentSubmenu.setOpacity(1.0);
		var lowerSubmenu = element.getElementsByTagName('ul')[0];
		
		var childUls = $A(currentSubmenu.getElementsByTagName('ul'));
		if(this.isIE){childUls = childUls.reverse();}
		childUls.each(function(item){
			//if(Element.visible(item)){
				if(item != lowerSubmenu){
        	if(effect = $A(Effect.Queues.get(this.menu.id))[0]){
						$A(Effect.Queues.get(this.menu.id)).length=0;
						effect.cancel();
					}
					if(this.isIE){
						$A(item.getElementsByTagName('a')).each(function(itema){
							itema.style.display = "none";
						});
					}
					item.style.display = "none";
			//	}
			}
		}.bind(this));


		if(lowerSubmenu && lowerSubmenu.style.display == "none"){//!Element.visible(lowerSubmenu)){
			if( this.previousSubmenu != currentSubmenu && this.previousSubmenu != this.menu){
				new Effect.Appear(lowerSubmenu, { queue: {position:'end', scope: this.menu.id, limit:2},
													duration: 0.25});
			}else{
				new Effect.Appear(lowerSubmenu, { queue: {position:'end', scope: this.menu.id, limit:1},
													duration: 0.25});
			}

			if(this.isIE){
				$A(lowerSubmenu.getElementsByTagName('a')).each(function(itema){
					itema.style.display = "block";
				});
			}
			
		}
		
		this.previousSubmenu = currentSubmenu;
		Event.stop(event);
	},

	closeAll: function() {
		this.firstLevelItems.each(function(firstLevelLi){
			var currentSubmenu = firstLevelLi.parentNode;
			var childUls = currentSubmenu.getElementsByTagName('ul');
			$A(childUls).reverse().each(function(item){
				//if(item.style.display == "block"){
				if(this.isIE){
					$A(item.getElementsByTagName('a')).each(function(itema){itema.style.display = "none";});
				}	
				item.style.display = "none";
				//}
			}.bind(this));
		}.bind(this));
	},
		
	wait: function(event, element) {
		if(! Position.within(element, Event.pointerX(event), Event.pointerY(event))){
			var thisMenuObject = this;
			this.closeMenuTimerId = setTimeout(( function() {return thisMenuObject.detectCloseNeed();}), 1600);
			this.isCloseNeeded = true;
		}else{
			var thisMenuObject = this;
			this.closeMenuTimerId = setTimeout(( function() {return Event.observe(document.body, "mouseover", thisMenuObject.mouseOverBody, false);}), 400);
			this.isCloseNeeded = true;
		}
		Event.stop(event);
	},

	overBody: function(event) {
		if(this.isCloseNeeded){
		var isWithinMenu = false;
		this.allchildLisOfTheMenu.each(function(item){
			isWithinMenu = isWithinMenu || Position.within(item, Event.pointerX(event), Event.pointerY(event));
		}.bind(this));
		if(!isWithinMenu){
			var thisMenuObject = this;
			this.closeMenuTimerId = setTimeout(( function() {return thisMenuObject.detectCloseNeed();}), 400);
			this.isCloseNeeded = true;
		}
		}
		Event.stopObserving(document.body, "mouseover", this.mouseOverBody, false);
	},

	detectCloseNeed: function() {
		if(this.isCloseNeeded){
			this.closeAll();
		}
	}
};


var LoginDialog = Class.create();

LoginDialog.prototype = {

    initialize: function(openDialogElement, closeDialogElement, submitDialogElement, loginDialog, loginForm, modalityDiv) {
		this.openDialogElement = $(openDialogElement);
		this.closeDialogElement = $(closeDialogElement);
		this.submitDialogElement = $(submitDialogElement);
		this.loginDialog = $(loginDialog);
		this.loginForm = $(loginForm);
		this.modalityDiv = $(modalityDiv);
		Event.observe(this.openDialogElement, "click", this.showLoginDialog.bindAsEventListener(this), false);
		Event.observe(this.closeDialogElement, "click", this.closeLoginDialog.bindAsEventListener(this), false);

		Event.observe(this.loginDialog, "mouseover", function(event){Event.stop(event);}.bindAsEventListener(), false);
		Event.observe(this.modalityDiv, "mouseover", function(event){Event.stop(event);}.bindAsEventListener(), false);
		Event.observe(this.loginDialog, "mouseout", function(event){Event.stop(event);}.bindAsEventListener(), false);
		Event.observe(this.modalityDiv, "mouseout", function(event){Event.stop(event);}.bindAsEventListener(), false);

		var agent = navigator.userAgent.toLowerCase();
		if (agent.indexOf('msie') !=-1 && agent.indexOf('opera') ==-1){
			var agentVer = parseFloat(agent.match(/msie.{1}(\d+.\d+)/)[1]); 
			if ( agentVer < 7.0) { 
				new Hover([this.closeDialogElement, this.submitDialogElement], "hover");
			}
		}
	},
	
	showLoginDialog: function(event){
		Event.stop(event); 
		Element.addClassName(this.modalityDiv, "active");
		this.modalityDiv.style.height = Element.getHeight(document.body)+"px";
		Element.addClassName(this.loginDialog, "active");
		Element.addClassName(document.documentElement, "login");
	},

	closeLoginDialog: function(event){
		Event.stop(event); 
		Element.removeClassName(this.modalityDiv, "active");
		Element.removeClassName(this.loginDialog, "active");
		Element.removeClassName(document.documentElement, "login");
		Form.reset(this.loginForm);
	}
	
};

var Hover = Class.create();

Hover.prototype = {
	initialize: function(elements, className){
		elements.each(function(element){
			Event.observe(element, "mouseover", function(){ Element.addClassName(element, className);}, false);
			Event.observe(element, "mouseout", function(){ Element.removeClassName(element, className);}, false);
		});
	}
};

function popCallback() {
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open('/callback.html', '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=280,height=120,left=200,top=200');");
}
