// <![CDATA[
var navSlide
var pass_onComplete = null;
var Page = $('outer_content');
var Content = $('inner_content');
var curentPage = location.href.substring(location.href.lastIndexOf('/')+1);
var lastPage = null;
var page_fx;
var loader = $('Loader');
var loader_fx;
var loader_timer;
var content_scroll;
var page_scroll;
var content = $('content');
var page_loaded = true;
$('Player_holder').style.display="block";
var messagesent;
var default_alpha = .5;
var errorSlide;
var FormContainer_fx;
var timer,timerMap1,timerMap2;
var coverSlide_top;
var coverSlide_bottom;
var cover_pad = 3;
var is_busy = false;

function Hide_Loader() {
	end_loader_loop();
	loader_fx.start({
				   'opacity': 0
	});
}

function Show_Loader() {
	updateLoader_loop();
	loader_fx.start({
				   'opacity': 1
	});
}

function get_filename(url) {
	return url.substring(url.lastIndexOf('/')+1);
}

/* ------------------ http://www.irt.org/script/771.htm ------------------ */
function replace(string,text,by) {
// Replaces text with by in string
    var strLength = string.length, txtLength = text.length;
    if ((strLength == 0) || (txtLength == 0)) return string;

    var i = string.indexOf(text);
    if ((!i) && (text != string.substring(0,txtLength))) return string;
    if (i == -1) return string;

    var newstr = string.substring(0,i) + by;

    if (i+txtLength < strLength)
        newstr += replace(string.substring(i+txtLength,strLength),text,by);

    return newstr;
}
////-------------------

/* ------------------  http://homepage.ntlworld.com/bobosola/pnginfo.htm ------------------ */
var arVersion = navigator.appVersion.split("MSIE")
var version = parseFloat(arVersion[1])
function fixPNG(myImage) 
{
    if ((version >= 5.5) && (version < 7) && (document.body.filters)) 
    {
       var imgID = (myImage.id) ? "id='" + myImage.id + "' " : ""
	   var imgClass = (myImage.className) ? "class='" + myImage.className + "' " : ""
	   var imgTitle = (myImage.title) ? 
		             "title='" + myImage.title  + "' " : "title='" + myImage.alt + "' "
	   var imgStyle = "display:inline-block;" + myImage.style.cssText
	   var strNewHTML = "<span " + imgID + imgClass + imgTitle
                  + " style=\"" + "width:" + myImage.width 
                  + "px; height:" + myImage.height 
                  + "px;" + imgStyle + ";"
                  + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
                  + "(src=\'" + myImage.src + "\', sizingMethod='scale');\"></span>"
	   myImage.outerHTML = strNewHTML	  
    }
}


function grab_contentLinks() {   ///// OVERRIDE EVENTS FOR LINKS IN CONTENT AREA
	 
	 if (curentPage.test("contact.php")) {
		 init_contact();
	 }
	 
	var list = $$('#inner_content a');
	list.each(function(element) {
		// alert(element.href);
		
		if (!element.hasClass('scroll')) {
			
			var link_fx = new Fx.Styles(element, {duration:300, wait:false,transition: Fx.Transitions.Quart.easeOut});
			
			// -- initalize letter spaceing to avoid lag
			link_fx.start({
					'letter-spacing': 0
					
				});
			
			// -- ATTACH EVENTS
			
			element.addEvent('mouseenter', function(){
				link_fx.start({
					'letter-spacing': 2
					
				});
				
				if (sound_is_loaded) {
					soundManager.stop('links_select');
					soundManager.play('links_select',{volume:8});
				}
	
			});
		 
			element.addEvent('mouseleave', function(){
				link_fx.start({
					'letter-spacing': 0
				});
			});
			
			if (!element.hasClass('nolink')) {
					  
				element.addEvent('click', function(e){
					
					var url = this.href
					//alert(url);
					if (url && !url.test("mailto")) {
						
						e = new Event(e).stop();
						if (url.test("balancetheory.com") && this.target !="_blank" && !url.test("mailto")) {
							//alert("get page: " + this.href);
                            _gaq.push(['_trackPageview', '/pages/'+this.href]);
							get_Page(url + "&ap=1");
							if (sound_is_loaded) {
								soundManager.play('select',{volume:18});
							}
						} else {
                            _gaq.push(['_trackPageview', '/external/'+this.href]);
							if (this.hasClass('full_win')) {
								window.open(url);
							} else {
								NewWindow(url);
							}
						}
				   }
				  
					//get_Page(this.href);
				});
			 }
		
		
		} else { ////---- ATTACH SCROLL EVENT
			if (element.href) {						
				element.addEvent('click', function(e){
					e = new Event(e).stop();
					//alert(this.name);
						//alert(this.href);
						if (this.href.test("Top")) {
							page_scroll.toTop();
						} else if (this.href.test("Bottom")) {
							page_scroll.toBottom();
						} else {
							//var url = this.href.substring(this.href.lastIndexOf('/')+1);
							var url = get_filename(this.href);
							//alert(replace(url,'#',''));
							var obj = replace(url,'#','');
							//alert(url.replace(/[/#]/g,) );
							//content_scroll.toElement(obj,{offset: {'x': 0, 'y': 100}});
							var cords = $(obj).getCoordinates();
							var pos = $(obj).getPosition();
							var to_x = $('content').getLeft();
							var to_y =  pos['y'] - 3;
							
							content_scroll.scrollTo( to_x, to_y);
							//alert("cords['height']: " + cords['height'] + "  to_y :" + to_y);
							
						}					 
										   
				});
			} 

		}
		

   });
	var TipsContent = new Tips($$('.Tips'), {
			initialize:function(){
				this.fx = new Fx.Style(this.toolTip, 'opacity', {duration: 500, wait: false}).set(0);
			},
			onShow: function(toolTip) {
				this.fx.start(1);
			},
			onHide: function(toolTip) {
				this.fx.start(0);
			}
		});

	if (window.ie6) {		
		fix_images('#inner_content'); 
	}
					   
}

function fix_images(container) {
	
	var imgs = $$(container +' img');
	imgs.each(function(element) {
		if (element.src.test('.png')) {
			//alert("Fix img: " + element);
			fixPNG(element)	;
		}
	});

	}

function get_last_Page() {
	
	get_Page(lastPage);

}



/* ---------------------------------------------------- CONTACT BIZNESS ------------------------- */

function InputOn(obj, a) {
	//obj.setStyle('color', 'white');
}

function InputOff(obj, a) {
	//obj.setStyle('color', '#DFDBE6');
}

function PhoneNumber (s) {this.number = s.replace(/^[01]/, '').replace (/([a-pr-y])/gi, function () {return {a:1, b:2, c:2, d:3, e:3, f:3, g:4, h:4, i:4, j:5, k:5, l:5, m:6, n:6, o:6, p:7, r:7, s:7, t:8, u:8, v:8, w:9, x:9, y:9}[arguments[1].toLowerCase()]}).match(/\d/g)}

PhoneNumber.prototype.toString = function () {return [this.number[0], this.number[1], this.number[2], '-', this.number[3], this.number[4], this.number[5], '-', this.number[6], this.number[7], this.number[8], this.number[9]].join('')}

function init_contact() {
	//alert("init Contact");
	messagesent = false;
	
	///------ ADD DEVENT HANDLERS AND SET OPACITY -------- 
	$('SecurityImage').setOpacity(default_alpha+.2);
		var Inputs = $$('#ContactInfo input');
		Inputs.each(function(element) {
			
			var input_fx = element.effects({duration: 300, transition: Fx.Transitions.Quart.easeInOut});
			element.setOpacity(default_alpha);
			element._efx = input_fx;
			 if (element.name == 'name' || element.name == 'email' || element.name == 'phone' || element.name == 'comment' || element.name == 'securityImageValue' && element.name != 'submit' && element.name != 'reset' ) {
				element._efx = input_fx;
				element.addEvents({
					'focus': function(ev) {
						//InputOn.call(this, ev); 
						this._efx.start({
				 			  'opacity': 1
						});
							

						
					},
					'blur': function(ev) { 
						//InputOff.call(this, ev);
						this._efx.start({
				 			  'opacity': default_alpha
						});

					}
				});

			 } 
		 });	
		
		
		
		var Textareas = $$('#ContactInfo textarea');
		Textareas.each(function(element) {
								
			var input_fx = element.effects({duration: 300, transition: Fx.Transitions.Quart.easeInOut});
			element.setOpacity(default_alpha);
			element._efx = input_fx;
			
				element.addEvents({
					'focus': function(ev) {
						//InputOn.call(this, ev); 
						this._efx.start({
				 			  'opacity': 1
						});
							

						
					},
					'blur': function(ev) { 
						//InputOff.call(this, ev);
						this._efx.start({
				 			  'opacity': default_alpha
						});

					}
				});
		 });	


}
function processthis(obj) {	

	if ($('submitter')) {
		$('submitter').disabled = true;
	}
	if (is_busy !=true) {
		is_busy = true;
		/* ------------------ FADE IN LOADER WHLE PROCESSING ------------------- */
		loader_fx.start({
						'opacity': 1
		}).chain(function(){	
		
	
			var holder = $('inner_content');
			obj.action += "&ap=1";
			/* ------------------ FADE IN LOADER WHLE PROCESSING */
			$('ContactInfo').send({
				update: holder,
				onComplete: function() {					
					
					Hide_Loader();
					var Failed = $('Failed').innerHTML;
					var Success = $('Success').innerHTML;
					is_busy = false;
					if (Failed.length > 0) {						
								ShowError();	
					} else if (Success.length > 0) {					
						ShowError();
						messagesent = true;
						disable_form();	
						
					}
					
				}
			});
			
					
		});
	} //EOF
	
}

function check_for_scroll() { //////// SLIDES BACK HEADER AND FOOTER SCROLL COVERS

	var cords = $('content').getSize();
	var cover_cords = $('top_cover').getSize();
	var cover_width = cover_cords['size']['x'] ; 
	
	if (cords['scrollSize']['y'] < window.getScrollHeight()) { ///// ---------------------- SLIDE IN

		coverSlide_top.start({
			'right': [ - cover_width]
		});
	
		coverSlide_bottom.start({
			'right': [ - cover_width]
		});
		
		//alert("slideIn");
	} else { ///// --------------------------------- SLIDE OUT
		coverSlide_top.start({
			'right': [ cover_pad]
		});
		coverSlide_bottom.start({
			'right': [ cover_pad]
		});

		//alert("slideOut");
	}
}

function  disable_form() {	
	 $('comment').value=''; 			 
	 $('comment').disabled = true;
	
	var Inputs = $$('#ContactInfo input');
	Inputs.each(function(element) {

		 if (element.name == 'name' || element.name == 'email' || element.name == 'phone' || element.name == 'comment' || element.name == 'securityImageValue') {
			 element.value=''; 
			  element.disabled = true;
		 } else if (element.name == 'submit' || element.name == 'Reset') {
			 element.disabled = true;
		 }
 	 });
}

function HideError() {
	errorSlide.slideOut();
	if (messagesent) {
	//	alert("last url: " + last_url);
			
			//curentPage = Page;
			//window.setTimeout('window.get_Page(page,curentPage)', 500);
		
	} else {
		
		if ($('submitter')) {
			$('submitter').disabled = false;
		}	
		FormContainer_fx.start({
					   'opacity': 1
		});

		
	}
	$('ContactInfo').removeEvents();
	$('log').removeEvents();
	init_contact();

}
function ShowError() {	

	if ($('submitter')) {
		$('submitter').disabled = true;
	}
 	var log_c = $('log');
	errorSlide = new Fx.Slide(log_c, {duration: 600, transition:Fx.Transitions.Quart.easeInOut});
	
	errorSlide.hide();
	
	
	
	var form_c = $('ContactInfo');
	FormContainer_fx = new Fx.Styles(form_c, {duration:300, wait:false,transition:Fx.Transitions.Quad.easeOut});
	FormContainer_fx.start({
				   'opacity': .4
	});

	log_c.style.display = 'block';
	errorSlide.slideIn();

	log_c.addEvent('click', function(e) {	
 		e = new Event(e).stop();	
		window.clearTimeout(timer);
		HideError();
	});							  

	form_c.addEvent('click', function(e) {		
		e = new Event(e).stop();	
		window.clearTimeout(timer);
		HideError();
	});							  

	//setTimeout("HideError();",6000);
	window.clearTimeout(timer);
	timer = window.setTimeout('window.HideError()', 7000);
}


/* --------------------------------- MAIN PAGE HANDLER ------- */

function get_Page(url,func) {
	//alert("Ajax call: " + url);
	
	//var page = url.substring(url.lastIndexOf('/')+1)
	page_loaded = false;
	var page = get_filename(url);
	if (curentPage!= page && is_busy!=true) {
		is_busy = true;
		lastPage = curentPage;
		curentPage = page;
		Show_Loader();
		page_fx.start({
				'opacity': 0			
		}).chain(function(){
		
			content.scrollTop = 0;
			/*
			if (func) {
				pass_onComplete = func;
				
				
				
			} else {
			pass_onComplete = null;
			}
			*/
			
			new Ajax(url, {
				method: 'get',
				update: $('inner_content'),
				onComplete:function () {
					grab_contentLinks();
					page_loaded = true;
					page_fx.start({
						'opacity': 1			
					}).chain(function(){
						check_for_scroll();
						Hide_Loader();	
						is_busy=false;
					});
					
					
				}
			}).request();
		
		});
	}//CHECK PAGE
}


// -----------------------------


function init_Nav() {
	
	/* ----- Slide in NAV CONTAINER   --- */
	navSlide = new Fx.Slide('nav_container', {duration:1000, wait:false,transition: Fx.Transitions.Quart.easeOut});
	navSlide.hide();
	$('nav_container').setOpacity(1);
	navSlide.toggle();
	
	/* ----- Assign events   --- */
	var list = $$('#Nav a');
	var i = 1;
	list.each(function(element) {
	 
		var fx = new Fx.Styles(element, {duration:300, wait:false,transition: Fx.Transitions.Quart.easeOut});
	 
		element.addEvent('mouseenter', function(){
			fx.start({
				'margin-top': -5
				
			});
			if (sound_is_loaded) {
				soundManager.play('bleep'+this._id,{volume:8});
			}
			//$('Nav_info').setHTML(this.title);
			
		});
	 
		element.addEvent('mouseleave', function(){
			fx.start({
				'margin-top': 0
			});
		});

		element.addEvent('click', function(e){
			e = new Event(e).stop();
			//alert(get_filename(this.href));

			//alert("get page: " + this.href);
			//if (curentPage!=  this.href.substring(this.href.lastIndexOf('/')+1)) {
			var c_page = get_filename(this.href)	
			if (curentPage != c_page) {
				//alert("get page: " + c_page);
                 _gaq.push(['_trackPageview', '/pages/'+c_page]);
				get_Page("pages/" + c_page + "&ap=1");
				if (sound_is_loaded) {
					soundManager.play('select',{volume:18});
				}
			}
			//soundManager.play('bleep');
		});
		element._id = i;
		//element._info = element.title;
		//alert("bleep"+element._id);
		i++;
	 
	});	
}



function init_Page() {
	
	init_Nav();
	page_fx = new Fx.Styles(Page, {duration:500, wait:false,transition: Fx.Transitions.Quart.easeOut});
	page_fx.start({
			'opacity': 1			
		});
	grab_contentLinks();
	
 //
}


window.addEvent('domready', function() {
									 
			if (window.gecko) {
				cover_pad = 0;
			}
							 
		init_Page();
		if(!window.ie) {	
			var TipsMain = new Tips($$('.TipsMain'), {
				initialize:function(){
					this.fx = new Fx.Style(this.toolTip, 'opacity', {duration: 500, wait: false}).set(0);
				},
				onShow: function(toolTip) {
					this.fx.start(1);
				},
				onHide: function(toolTip) {
					this.fx.start(0);
				}
				
			});
		} else { 
			var Obj = {
				'x': -220,
				'y': -100
			};
			var TipsMain = new Tips($$('.TipsMain'), {
				initialize:function(){
					this.fx = new Fx.Style(this.toolTip, 'opacity', {duration: 500, wait: false}).set(0);
				},
				onShow: function(toolTip) {
					this.fx.start(1);
				},
				onHide: function(toolTip) {
					this.fx.start(0);
				},
				offsets: Obj
			});
		}
			loader_fx = loader.effects({duration: 300, wait: false, transition: Fx.Transitions.Quart.easeInOut});
			loader.setOpacity(0);
			loader.style.display="block";
			
			var offset_y= -180;
			
			/*------------ SCROLL  ---------- */
			content_scroll = new Fx.Scroll('content', {
				wait: false,
				duration: 1000,
				offset: {'x': 0, 'y': offset_y},
				transition: Fx.Transitions.Quart.easeOut
			});
			
			page_scroll = new Fx.Scroll('content', {
				wait: false,
				duration: 2200,
				offset: {'x': 0, 'y': 0},
				transition: Fx.Transitions.Quad.easeInOut
			});
			
			
			/*------------ SLIDER FOR SCROLL COVERS ---------- */
			$('top_cover').style.display="block";
			$('bottom_cover').style.display="block";
			//alert($('bottom_cover').style.display);
			//coverSlide_top = new Fx.Slide('top_cover', {duration: 300});
			var top_target = $('top_cover');
			var bottom_target = $('bottom_cover');
			coverSlide_top = new Fx.Styles(top_target , {duration: 300, wait: false, transition: Fx.Transitions.Quad.easeInOut});
			coverSlide_bottom = new Fx.Styles(bottom_target , {duration: 300, wait: false, transition: Fx.Transitions.Quad.easeInOut});
			//coverSlide_bottom.slideOut();
});			
			
window.addEvent('load', function() {
		check_for_scroll();
		if (window.ie6) {		
			fix_images('#main_body'); 
		}
					   



	/*
	preload_images(
		'../images/layout/nav/text/about_off.png'
	);
	*/
});
		
		
  // ]]>		

