var app = new Object();
app = {
	ready: function() {
		//what to do on ready

		app.resize();
		app.ieStuff();
		app.cufon();
		app.homeFlash.detect();
	},
	ieStuff: function() {
		if ($.browser.msie) {
			//IE here
		}
	},
	resize: function() {
		//for resizing
		app.valign.main_menu();
		app.valign.div_in_div('homepage','content');
		app.valign.div_in_div('valign','content');
		app.valign.div_in_div('others','content');
		app.valign.div_in_div('others-default','content');
		app.valign.div_in_div('cabinet','content');
		app.valign.div_in_div('contact','content');
	},
	loadBackground: function(url) {
			var img = new Image;
		
		  $(img).load(url, function () {
		    // *finally*, set the src attribute of the new image to our image
			  $('#container').css('background', 'url('+url+') no-repeat 0 0');
		  });
	},
	scroll: function() {
		app.valign.main_menu();
	},
	cufon: function() {
		Cufon.replace('.left-menu li a, .expo .expo-title, #others-content .dates-menu li a, .left-column ul.domaines-menu li a, .right-column h2',{
			fontFamily: 'Futura LT Medium',
			hover: {
				color: '#ffffff'
			}
		});
		Cufon.replace('.top-menu li a, .names-menu li a, .homepage .head h1, .homepage .head .description',{
			fontFamily: 'Futura Lt BT',
			hover: {
				color: '#ffffff'
			}
		});
		Cufon.replace('.date-body .date-title',{
			fontFamily: 'Trajan Pro'
		});
		Cufon.replace('.expo-info, .expo-list li a span, .expo-list li span, .expo a.link span',{
			fontFamily: 'Helvetica LT'
		});
	},
	valign: {
		main_menu: function() {
			var menu_height = $('#main-menu').height();
			var window_height = $(window).height();
			if ($.browser.msie || $(window).width() < 1260) {
				$('#main-menu').css('position', 'absolute');
				$('.container').css('width','1260');
				if ($.browser.msie) {
					if ($('body').width() <= 1260) {
						$('.container').css('width','1260');
					} else {
						$('.container').css('width','auto');
					}
				}
				if (window_height < 720) {
					var scroll_top = $(window).scrollTop();
					var top = parseInt(parseInt(window_height/2) + scroll_top) - parseInt(menu_height/2);
				} else {
					var top = parseInt(window_height/2) - parseInt(menu_height/2);
				}
			} else {
				$('#main-menu').css('position', 'fixed');
				var top = parseInt(window_height/2) - parseInt(menu_height/2);
				$('.container').css('width','auto');
			}
			$('#main-menu').css('top', top);
		},
		div_in_div: function(id_1,id_2) {
			// id_2 div contains id_1 div
			// id_2 div has position: relative
			// id_1 div has position: absolute
			
			var height_1 = $('#'+id_1).height();
			var height_2 = $('#'+id_2).height();
			var top = parseInt(height_2/2) - parseInt(height_1/2);
			$('#'+id_1).css('top', top+'px');
		}
	},
	language: {
		show: function() {
			if ($('#language-list').is(":hidden")) {
				$('#language-list').show();
			}
		},
		hide: function() {
			if ($('#language-list').is(":visible")) {
				$('#language-list').hide();
			}
		}
	},
	homeFlash: {
		getFlashVersion: function(){
				  // ie
				  try {
				    try {
				      // avoid fp6 minor version lookup issues
				      // see: http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/
				      var axo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');
				      try { axo.AllowScriptAccess = 'always'; }
				      catch(e) { return '6,0,0'; }
				    } catch(e) {}
				    return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g, ',').match(/^,?(.+),?$/)[1];
				  // other browsers
				  } catch(e) {
				    try {
				      if(navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin){
				        return (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g, ",").match(/^,?(.+),?$/)[1];
				      }
				    } catch(e) {}
				  }
				  return '0,0,0';
		},
		detect: function() {
				var version = app.homeFlash.getFlashVersion().split(',').shift();
				if(version < 10){
					$('#homeflash').remove();
				}
		},
		hide: function() {
			
			$('#homeflash').fadeOut('300', function() {
				$('#homeflash').remove();
			});
		}
	},
	contact: {
		submitForm: function() {
			var form = $('#contact-form');
			
			$('#contact-submit').hide();
			$('#contact-loader').show();

			$.post(form.attr('action'),form.serialize(true),function(result){
				var options = app._default_vars.options_for_qtip;
								
				options.style.border.color = (result.type=='info'?'#CDE6AC':'#F79992');
				options.style.name = (result.type=='info'?'green':'red');
				options.position.adjust.y = 0;
				
				if (result.type != 'info') {
					for (x in result.errors) {
						/*options.content = result.errors[x];
						$('#contact-'+x).qtip(options);*/
						$('#contact-'+x).addClass('error');
					}
				} else {
					$('#contact-form').remove();
					$('#contact-success').show();
				}
				
				$('#contact-submit').show();
				$('#contact-loader').hide();
			});
			
			return false;
		}
	},
	cabinet: {
		setJurb: function(_url) {
			if (jurb) {
				jurb.setHash(_url);
			}
		},
		loadContent: function(_url) {
			
			$('.top-menu li').removeClass('selected');
			$('#cabinet-menu-'+_url).addClass('selected');
			
			$('#loading').fadeIn('fast');
			
			$.post('ajax/cabinet', {url: _url}, function(data) {
				$('#cabinet-content').html(data);
				Cufon.refresh();
				$('#loading').fadeOut('fast');
			});
		}
	},
	domaines: {
		setJurb: function(_url) {
			if (jurb) {
				jurb.setHash(_url);
			}
		},
		loadContent: function(_url) {
			
			$('.domaines-menu li').removeClass('selected');
			$('#domaines-menu-'+_url).addClass('selected');
			
			$('#loading').fadeIn('fast');
			
			$.post('ajax/domaines', {url: _url}, function(data) {
				$('#domaines-content').html(data);
				Cufon.refresh();
				$('#loading').fadeOut('fast');
			});
		}
	},
	avocats: {
		setJurb: function(_url,_url2) {
			if (_url2 == '__') {
				var k = true;
				_url2 = null;
			} else {
				var k = false;
			}
			if (jurb) {
				if (_url2) {
					jurb.setHash(_url+'/'+_url2);
				} else {
					jurb.setHash(_url);
				}
				if (k == false) {
					jurb.setLocation();
				}
			}
		},
		loadContent: function(_url) {
			
			$('.top-menu li').removeClass('selected');
			
			$('#loading').fadeIn('fast');
			
			$('#avocats-content').fadeOut(function() {	
				$('#avocats-content').css('visibility','visible');
				
				$.post('ajax/avocats', {url: _url}, function(data) {
					$('#avocats-content').html(data);
					Cufon.refresh();
					$('#loading').fadeOut('fast');
					
					$('#avocats-content').height('345px');
					$('#avocats-content').fadeIn();
					app.resize();
				});
							
					$('#avocats-menu-'+_url).addClass('selected');
			});
		},
		loadAvocatPreviewPic: function(_id,_image) {
			$('#avocats-inner-center').after(_image);
		},
		unloadAvocatPreviewPic: function() {
			$('.avocat-preview-pic').remove();
		},
		loadProfile: function(_url, _url2) {
			
			$('#loading').fadeIn('fast');
			
			$('#avocats-content').fadeOut(function() {
				
				$('#avocats-content').css('visibility','visible');
				$('#avocats-content').height('420px');
				$.post('ajax/avocat', {url: _url, url2: _url2}, function(data) {
					$('#loading').fadeOut('fast');
			
					$('#avocats-content').html(data);
					$('#avocats-content').fadeIn();
					app.resize();
					
					fleXenv.initByClass("flexcroll");
					
					var prev_url = $('#input-prev').val();
					var next_url = $('#input-next').val();
					
					if (prev_url == -1 && $('#left-arrow').css('display') == 'block') {
						$('#left-arrow').hide();
					} else if (prev_url > -1 && $('#left-arrow').css('display') == 'none') {
						$('#left-arrow').show();
					}
					if (next_url == -1 && $('#right-arrow').css('display') == 'block') {
						$('#right-arrow').hide();
					} else if (next_url > -1 && $('#right-arrow').css('display') == 'none') {
						$('#right-arrow').show();
					}
				});
				
			});
		},
		prevLoadProfile: function(categ_url) {
			
			$('#left-arrow').removeAttr('onclick');
			$('#right-arrow').removeAttr('onclick');
			$('#left-arrow').unbind('click');
			$('#right-arrow').unbind('click');
			
			var prev_url = $('#input-prev').val();
			var _url = $('#current-id').val();
			
			app.avocats.setJurb(categ_url, prev_url);
			
			$.post('ajax/avocat', {url: categ_url, url2: prev_url, type: 'change'}, function(data) {
				
				//$('#profile-'+_id).before('<div class="profile" style="display:none;" id="profile-'+prev_id+'">');
				//$('#profile-'+prev_id).html(data);
				
				$('#profile-'+_url).before(data);
				
				$('.profile').show();
				fleXenv.initByClass("flexcroll");
				$('.profile').hide();
				
				$('#profile-'+_url).hide("slide", { direction: "right" }, 400, function() {
					$('#profile-'+prev_url).show("slide", { direction: "left" }, 400, function() {
						$('#profile-'+_url).remove();
						
						
						var prev_url = $('#input-prev').val();
						var next_url = $('#input-next').val();
						
						$('#left-arrow').click(function(e) {
							app.avocats.prevLoadProfile(categ_url);
							return false;
						});
						$('#right-arrow').click(function(e) {
							app.avocats.nextLoadProfile(categ_url);
							return false;
						});
									
						if (prev_url == -1 && $('#left-arrow').css('display') == 'block') {
							$('#left-arrow').hide();
						} else if (prev_url != -1 && $('#left-arrow').css('display') == 'none') {
							$('#left-arrow').show();
						}
						if (next_url == -1 && $('#right-arrow').css('display') == 'block') {
							$('#right-arrow').hide();
						} else if (next_url != -1 && $('#right-arrow').css('display') == 'none') {
							$('#right-arrow').show();
						}
						
					});
				});
			});
		},
		nextLoadProfile: function(categ_url) {
						
			$('#left-arrow').removeAttr('onclick');
			$('#right-arrow').removeAttr('onclick');
			$('#left-arrow').unbind('click');
			$('#right-arrow').unbind('click');
			
			var next_url = $('#input-next').val();
			var _url = $('#current-id').val();
			
			app.avocats.setJurb(categ_url, next_url);
			
			$.post('ajax/avocat', {url: categ_url, url2: next_url, type: 'change'}, function(data) {
				
				//$('#profile-'+_url).before('<div class="profile" style="display:none;" id="profile-'+next_url+'">');
				//$('#profile-'+next_url).html(data);
				
				$('#profile-'+_url).before(data);
				
				$('.profile').show();
				fleXenv.initByClass("flexcroll");
				$('.profile').hide();
			
				$('#profile-'+_url).hide("slide", { direction: "left" }, 400, function() {
					$('#profile-'+next_url).show("slide", { direction: "right" }, 400, function() {
						$('#profile-'+_url).remove();
						var prev_url = $('#input-prev').val();
						var next_url = $('#input-next').val();

						$('#left-arrow').click(function(e) {
							app.avocats.prevLoadProfile(categ_url);
							return false;
						});
						$('#right-arrow').click(function(e) {
							app.avocats.nextLoadProfile(categ_url);
							return false;
						});
						
						if (prev_url == -1 && $('#left-arrow').css('display') == 'block') {
							$('#left-arrow').hide();
						} else if (prev_url != -1 && $('#left-arrow').css('display') == 'none') {
							$('#left-arrow').show();
						}
						if (next_url == -1 && $('#right-arrow').css('display') == 'block') {
							$('#right-arrow').hide();
						} else if (next_url != -1 && $('#right-arrow').css('display') == 'none') {
							$('#right-arrow').show();
						}
					});
				});
			});
		},
		pressbook: function() {
			$('#cv').fadeOut(function() {
				$('#pressbook').fadeIn(function() {
					fleXenv.updateScrollBars();
					fleXenv.scrollTo('pressbook');
				});
			});
			$('#pressbook-link').fadeOut(function() {
				$('#cv-link').fadeIn();
			});
		},
		cv: function() {			
			$('#pressbook').fadeOut(function() {
				$('#cv').fadeIn(function() {
					fleXenv.updateScrollBars();
					fleXenv.scrollTo('cv');
				});
			});
			$('#cv-link').fadeOut(function() {
				$('#pressbook-link').fadeIn();
			});
		},
		fancybox: {
			initiate: function() {
				$("a.fancybox").fancybox({
					'hideOnContentClick': false,
					'titleShow': true,
					'width': 420,
					'height': 600,
					'autoDimensions': false,
					'autoScale': false,
					'overlayOpacity': 0.85,
					'overlayColor': '#000000',
					'titleFormat': app.avocats.fancybox.formatTitle
				});
			},
			formatTitle: function(title, currentArray, currentIndex, currentOpts) {
			    return title + '<br/>(' + (currentIndex + 1) + '/' + currentArray.length + ')';
			}
		}
	},
	others: {
		setJurb: function(_url,_url2,_url3) {
			if (jurb) {
				if (_url2) {
					if (_url3) {
						jurb.setHash(_url+'/'+_url2+'/'+_url3);
					} else {
						jurb.setHash(_url+'/'+_url2);
					}
				} else {
					jurb.setHash(_url);
				}
				jurb.setLocation();
			}
		},
		loadDefault: function () {
			if ($('#others').css('display') == 'block') {
				$('#others').fadeOut(function() {
					$('#others-default').fadeIn(function() {
						
						app.resize();
					});
				});
			} else {
				$('#others-default').fadeIn(function() {
					
						app.resize();
				});
			}
		},
		loadExpo: function(type, page, _url) {
			$('#others-menu-expos').addClass('selected');
			$('#others-menu-dates').removeClass('selected');
			
			$('#loading').fadeIn('fast');
			
			if ($('#others-default').css('display') == 'block') {
				if ($('#others-default').hasClass('default')) {
					$('#others-default').hide();
					$('#others-default').removeClass('default');
					
					$.post('ajax/exposition', {page: page, url: _url}, function(data) {
						$('#others-content').html(data);
						Cufon.refresh();
						$('#loading').fadeOut('fast');
						app.resize();
						
						$('#others').fadeIn();
						
						fleXenv.initByClass("flexcroll");
					});
				} else {
					$('#others-default').fadeOut(function() {
						$.post('ajax/exposition', {page: page, url: _url}, function(data) {
							$('#others-content').html(data);
							Cufon.refresh();
							$('#loading').fadeOut('fast');
					
							$('#others').fadeIn();
							
							fleXenv.initByClass("flexcroll");
						});
					});
				}
			} else {
				if (type == 'expos') {
					$('#others-content').fadeOut(function() {
						$.post('ajax/exposition', {page: page, url: _url}, function(data) {
							$('#others-content').html(data);
							Cufon.refresh();
							$('#loading').fadeOut('fast');
							
							$('#others-content').fadeIn();
							
							fleXenv.initByClass("flexcroll");
						});
					});
				}
			}
		},
		loadExpos: function(type, page) {
			$('#others-menu-expos').addClass('selected');
			$('#others-menu-dates').removeClass('selected');
			Cufon.refresh();
			$('#loading').fadeIn('fast');
			
			if (page) {
				var _p = page;
			} else {
				var _p = 1;
			}
			
			if ($('#others-default').css('display') == 'block') {
				if ($('#others-default').hasClass('default')) {
					$('#others-default').hide();
					$('#others-default').removeClass('default');
					
					$.post('ajax/expositions', {page: _p}, function(data) {
						$('#others-content').html(data);
						Cufon.refresh();
						$('#loading').fadeOut('fast');
						app.resize();
						
						$('#others').fadeIn();
					});
				} else {
					$('#others-default').fadeOut(function() {
						$.post('ajax/expositions', {page: _p}, function(data) {
							$('#others-content').html(data);
							Cufon.refresh();
							$('#loading').fadeOut('fast');
							
							$('#others').fadeIn();
						});
					});
				}
			} else {
				if (type == 'expos') {
					$('#others-content').fadeOut(function() {
						$.post('ajax/expositions', {page: _p}, function(data) {
							$('#others-content').html(data);
							Cufon.refresh();
							$('#loading').fadeOut('fast');
							
							$('#others-content').fadeIn();
						});
					});
				}
			}
		},
		loadDate: function(type, _url) {
			$('#others-menu-dates').addClass('selected');
			$('#others-menu-expos').removeClass('selected');
			Cufon.refresh();
			$('#loading').fadeIn('fast');
			
			if ($('#others-default').css('display') == 'block') {
				if ($('#others-default').hasClass('default')) {
					$('#others-default').hide();
					$('#others-default').removeClass('default');
					
					$.post('ajax/dates', {url: _url}, function(data) {
						$('#others-content').html(data);
						Cufon.refresh();
						$('#loading').fadeOut('fast');
						app.resize();
						
						$('#others').fadeIn();
					});
				} else {
					$('#others-default').fadeOut(function() {
						$.post('ajax/dates', {url: _url}, function(data) {
							$('#others-content').html(data);
							Cufon.refresh();
							$('#loading').fadeOut('fast');
							
							$('#others').fadeIn();
						});
					});
				}
			} else {
				if (type == 'dates') {
					$('#others-content').fadeOut(function() {
						$.post('ajax/dates', {url: _url}, function(data) {
							$('#others-content').html(data);
							Cufon.refresh();
							$('#loading').fadeOut('fast');
							
							$('#others-content').fadeIn();
						});
					});
				}
			}
		},
		changeDate: function(_url) {
			$('.dates-menu li').removeClass('selected');
			$('#date-menu-'+_url).addClass('selected');
					Cufon.refresh();
				
			$('.date-body:visible').hide();
			$('#date-'+_url).show();
			
		}
	},
	_default_vars: {
		options_for_qtip: {
			content: '',
			style: {
				padding: 2,
				fontSize: '14px',
				textAlign: 'center',
				border: {
					width: 3,
					radius: 5,
					color: '#CDE6AC'
				},
				tip: {
					corner: 'rightMiddle',
					size: {
						x: 10,
						y : 5
					}
				},
				name: 'green'
			},
			position: {
				corner: {
					target: 'leftMiddle',
					tooltip: 'rightMiddle'
				},
				adjust: {
					y: 0,
					x: -10
				}
			},
			show: {
				when: false,
				ready: true,
				delay: 0,
				effect: {
					type: 'fade',
					length: 100
				}
			},
			hide: {
				delay: 2000,
				when: {
					event: 'unfocus'
				},
				effect: {
					type: 'fade',
					length: 100
				}
			}
		}
	}
}
$(document).ready(app.ready);
$(window).load(app.ready);
$(window).resize(app.resize);
$(window).scroll(app.scroll);
