var close_with_reload = false;
var close_with_reload_to_home = false;

jQuery(document).ready(function($) {
	
	// FAQ actions
	$('.question h4').click(function () {
		$(this).parent().find('p').toggle();
		return false;
	});

	// click to close layer
	$('a[rel=close]').live('click',function(event){
		event.preventDefault();
		$('#layer').fadeOut('slow')
		if(close_with_reload_to_home){
			window.location.href = $('#top').attr('href')
			close_with_reload_to_home = false;
		}
		if(close_with_reload){
			window.location.reload()
			close_with_reload = false;
		}
	});

	// open contact form
	$('a[rel=show[contact]]').click(function(event){
		event.preventDefault();		
		$('#layer-container').load('/xhr/_contact.php',function(){
			$('#layer').fadeIn('slow')			
			$('#layer .contact').show()
			validate_contact_form()
		})

	});

	// contact form handling
	$("#submit-contact").live('click',function(event){
		event.preventDefault();
		event.stopPropagation();

		if($("#submit-contact").hasClass('disabled')){
			return false;
		} else{
			$("#submit-contact").addClass('disabled')	
		}
			
		
				
		// validate				
		if(!$('#contact-form').valid()){			
			$("#submit-contact").removeClass('disabled')											
			return false;			
		} 
		
		// get data

		user_fname = $('#fname').val()
		user_lname = $('#lname').val()
		user_email = $('#u_email').val()
		user_message = $('#u_message').val()
		
		$.post('/xhr/xhr.php?process=contact', {
			fname: user_fname,
			lname: user_lname,
			email: user_email,
			message: user_message
		},function(data,status){
			if(data == 'success'){
				$('#layer .contact-sent').show()
				$("#submit-contact").removeClass('disabled')								
				$('#contact-form')[0].reset()
			} else{
				$("#submit-contact").removeClass('disabled')				
			}
			
		})
		
		
	});

	// open booking form
	$('a[rel=show[booking]]').live('click',function(event){
		event.preventDefault();	

		$('#layer-container').load('/xhr/_booking.php',function(){
			$('#layer').fadeIn('slow')			
			$('#layer .booking').show()
			validate_booking_form()					
		})			

	});

	// submit booking form
	$('#submit-booking').live('click',function(event){
		event.preventDefault()
		event.stopPropagation();					

		if($("#submit-booking").hasClass('disabled')){
			return false;
		} else{
			$("#submit-booking").addClass('disabled')	
		}
								
		// validate				
		if(!$('#booking-form').valid()){			
			$("#submit-booking").removeClass('disabled')											
			return false;			
		} else{
			$.post('/xhr/xhr.php?process=booking',
			 	$('#booking-form').serialize(),
				function(data){
					if(data == 'OK'){
						$('#layer .booking').hide()						
						$('#layer .booking-success').fadeIn()
					} else{
						alert("There was an error while processing your request. Please fill form again.")
						$("#submit-booking").removeClass('disabled')																	
					}
				}
			)
		}
		
	})
	
	// open signup form
	$('a[rel=show[signup]]').live('click',function(event){
		event.preventDefault()
		$('#layer-container').load('/xhr/_signup.php',function(){
			$('#layer').fadeIn('slow')
			$('#layer .signup').show()
			validate_signup_form();
		})
	})
	
	// handling submit signup form
	$('#submit-signup').live('click',function(event){
		event.preventDefault();
		event.stopPropagation();			
		if($("#submit-signup").hasClass('disabled')){
			return false;
		} else{
			$("#submit-signup").addClass('disabled')	
		}
								
		// validate				
		if(!$('#signup-form').valid()){			
			$("#submit-signup").removeClass('disabled')											
			return false;			
		} else{
			$.post('/wp-login.php?action=register',
			 	$('#signup-form').serialize(),
				function(data){
					d = data
					if(d.indexOf('Please activate your account using the verification link sent to your email address.') != -1){
						$('#layer-container').load('/xhr/_signup_confirm.php',function(){
							$('#layer .signup-confirm').fadeIn()	
						})

					}
				}
			)
		}
		
	})

	// open login form
	$('a[rel=show[login]]').live('click',function(event){
		event.preventDefault()
		$('#layer-container').load('/xhr/_login.php',function(){
			$('#layer:hidden').fadeIn('slow');
			$('#layer .login').fadeIn()
			validate_login_form();
		})		
	})
	
	// handles logout function
	$('a[rel=show[logout]]').live('click',function(event){
		event.preventDefault()
		$('#layer-container').load('/xhr/_logout.php',function(){
			window.location.reload()
		})		
	})
	
	// submit login form
	$('#submit-login').live('click',function(event){
		event.preventDefault();
		event.stopPropagation();			
		if($("#submit-login").hasClass('disabled')){
			return false;
		} else{
			$("#submit-login").addClass('disabled')	
		}
								
		// validate				
		if(!$('#login-form').valid()){			
			$("#submit-login").removeClass('disabled')											
			return false;			
		} else{
			$.post('/xhr/xhr.php?process=login',
			 	$('#login-form').serialize(),
				function(data){
					if(data == 'OK'){
						$("#submit-login").removeClass('disabled')
						window.location.reload()
					} else{
						$('#layer .login').hide()						
						$('#layer .login-failed').fadeIn();
					}
					
				}
			)
		}
		

	})

	// videos switching	
	$('#videos-list a.btn_watch').click(function(event){
		video = $(this).parent().find('div.player')
		title = $(this).parent().find('h1')
		descr = $(this).parent().find('p')
		$('#player div.player-container').html(video.html())
		$('#video .video_text h1').html(title.html())
		$('#video .video_text p').html(descr.html())		
		$("#fb-share-video, #myspace-share-video").attr({
			href: this.href
		})
		$('html,body').animate({scrollTop: $("#video").offset().top},'fast')
		
	});
		
	// lights off effect
	$('#lamp a').click(function(event){
		event.preventDefault();
		overlay = $('#video-overlay')
		if(overlay.length == 0){
			$('body').append('<div id="video-overlay" class="lights-on"></div>')
			$('#video-overlay').height($(document).height())
			$('#video-overlay').width($(document).width())					
		}
		
		overlay = $('#video-overlay')
		
		if(overlay.hasClass('lights-on')){
			overlay.fadeIn('slow');
			overlay.removeClass('lights-on')
			$('#player').addClass('lights-off')			
		} else{
			overlay.fadeOut('fast');
			overlay.addClass('lights-on')
			$('#player').removeClass('lights-off')						
		}
	
	});

	$('a[rel=show[share]]').live('click',function(event){
		event.preventDefault()
		$('#layer-container').load('/xhr/_share.php',function(){
			$('#layer:hidden').fadeIn('slow');
			$('#layer .share').fadeIn()
			validate_share_form();
		})				
	})

	$('#submit-share').live('click',function(event){
		event.preventDefault();
		event.stopPropagation();			
		if($("#submit-share").hasClass('disabled')){
			return false;
		} else{
			$("#submit-share").addClass('disabled')	
		}
								
		// validate				
		if(!$('#share-form').valid()){			
			$("#submit-share").removeClass('disabled')											
			return false;			
		} else{
			$.post('/xhr/xhr.php?process=share',
			 	$('#share-form').serialize(),
				function(data){
					if(data == 'OK'){
						$('#layer .share').hide();
						$('#layer .share-sent').fadeIn()
						$("#submit-share").removeClass('disabled')								
						$('#share-form')[0].reset()
						close_with_reload =  true;
					} else{
						$("#submit-share").removeClass('disabled')				
					}
					
				}
			)
		}
		
	})
	
	$('a[rel=show[invite]]').live('click',function(event){
		event.preventDefault()
		$('#layer-container').load('/xhr/_invite.php',function(){
			$('#layer:hidden').fadeIn('slow');
			$('#layer .invite').fadeIn()
			validate_invite_form();
		})						
	})
	
	$('#submit-invite').live('click',function(event){
		event.preventDefault();
		event.stopPropagation();			

		if($("#submit-invite").hasClass('disabled')){
			return false;
		} else{
			$("#submit-invite").addClass('disabled')	
		}
								
		// validate				
		if(!$('#invite-form').valid()){			
			$("#submit-invite").removeClass('disabled')											
			return false;			
		} else{
			$.post('/xhr/xhr.php?process=invite',
			 	$('#invite-form').serialize(),
				function(data){
					if(data == 'OK'){
						$('#layer .invite').hide();
						$('#layer .invite-sent').fadeIn()
						$("#submit-invite").removeClass('disabled')								
						$('#invite-form')[0].reset()
						close_with_reload =  true;
					} else{
						$("#submit-invite").removeClass('disabled')				
					}
					
				}
			)
		}		
	})
		
	// video sharing for Facebook
	$('#fb-share-video').click(function(event){
		event.preventDefault()		
		if(this.href.indexOf('#video-') == -1){
			return;
		} else{
			url = 'http://www.facebook.com/sharer.php?u='+ encodeURIComponent(this.href) + '&t=' + encodeURIComponent("Paintsplat.com - " + $('#video .video_text h1').html())
			options = 'width=760,height=450,toolbar=no,menubar=no'		
			handle = window.open(url,'shareWindow',options)
		}
	});
	
	// video sharing for Myspace 
	$("#myspace-share-video").click(function(event){
		event.preventDefault()		
		if(this.href.indexOf('#video-') == -1){
			return;
		} else{
			title = "Paintsplat.com - " + $('#video .video_text h1').html()
			content = '';
			url = this.href;
			location = ''
			myspace_share(title,content,url,location)
		}
	})
	
	// post sharing for Facebook	
	$('#fb-post-share').click(function(event){
		event.preventDefault()		
		url = 'http://www.facebook.com/sharer.php?u='+ encodeURIComponent(window.location.href) + '&t=' + encodeURIComponent($('title').html())
		options = 'width=760,height=450,toolbar=no,menubar=no'		
		handle = window.open(url,'shareWindow',options)
	});	
	
	// post sharing for Myspace
	$("#myspace-post-share").click(function(event){
		event.preventDefault()		
		title = $('title').html()
		content = '';
		url = window.location.href
		location = ''
		myspace_share(title,content,url,location)
	})	
	
	// init thumbnails for videos from youtube	
	$('div.ventry.youtube').each(function(){
		uri = $(this).find('.source').attr('href')
		thumb = getYoutubeThumbnail(uri,'small')
		$(this).find('img').attr({'src':thumb})
	})
	
	// initialize gallery overlay
	$('a.colorbox').colorbox()
	
	// check for verification hash tag
	check_verification_hash_tag()

	// check for required login page
	check_for_login_required()

});

function validate_contact_form(){
	var validation = $('#contact-form').validate({
		rules: {
			fname: 'required',
			lname: 'required',
			u_email: {
				required: true,
				email:true
			},
			u_message: 'required'
		},
		messages: {
			fname: 'Please enter firstname',
			lname: 'Please enter lastname',
			u_email: 'Please enter valid email address',
			u_message: 'Please enter some message for us!'
		}
	})	
}

function validate_signup_form(){
	var validation = $('#signup-form').validate({
		rules: {
			firstname: 'required',
			lastname: 'required',
			user_email: {
				required: true,
				email:true,
				remote: '/xhr/test_email.php'
			},
			user_login: {
				required: true,
				remote: '/xhr/test_login.php'
			},
			pass1: 'required',
			pass2: {
				required: true,
				equalTo: '#pass1'
			},
			phone: {
				required: true,
			},
			license: 'required'
		},
		messages: {
			firstname: 'Please enter firstname',
			lastname: 'Please enter lastname',
			user_email: {
				email: 'Please enter valid email address',
				remote: 'This email is already taken'
			},
			user_login:{
				required: 'Please choose your login name!',
				remote: 'This login is already taken'
			},
			license: "Please accept our terms & conditions"
		}
	})
	
}

function validate_login_form(){
	var validation = $('#login-form').validate({
		rules: {
			log: 'required',
			pwd: 'required',
		},
		messages: {
			log: 'Please enter username',
			pwd: 'Please enter password',
		}
	})
	
}

function validate_booking_form(){
	jQuery('#booking_date').datepicker();
	var validation = $('#booking-form').validate({
		rules: {
			'booking[date]': 'required',
			'booking[time]': 'required',
			'booking[duration]': 'required',
			'booking[people]': 'required',
			'license': 'required'
		},
		messages: {
			'booking[date]': "Please give us some date",
			'booking[time]': "Choose time",
			'booking[duration]': "Choose duration",
			'boking[people]' : "Tell us how many people",
			license: "Please accept our terms & conditions"
		}
	})
}

function validate_share_form(){
	var validation = $('#share-form').validate({
		rules: {
			'friend[0]': {
				required: true,
				email: true
			},
			'friend[1]': 'email',
			'friend[2]': 'email',		
			'friend[3]': 'email'
		},
		messages: {
			'friend[0]': {
				required: "Please give at least one friend address",
				email: "Please give valid email address"
			},
			'friend[1]': "Please give valid email address",
			'friend[2]': "Please give valid email address",
			'friend[3]': "Please give valid email address"
		}
	})
	
}

function validate_invite_form(){
	var validation = $('#invite-form').validate({
		rules: {
			'friend[0]': {
				required: true,
				email: true
			},
			'friend[1]': 'email',
			'friend[2]': 'email',		
			'friend[3]': 'email'
		},
		messages: {
			'friend[0]': {
				required: "Please give at least one friend address",
				email: "Please give valid email address"
			},
			'friend[1]': "Please give valid email address",
			'friend[2]': "Please give valid email address",
			'friend[3]': "Please give valid email address"
		}
	})
	
}

function check_verification_hash_tag(){
	x = window.location.href
	if(x.indexOf('?piereg_verification') > 0){
		// extract verification code
		$('#layer').fadeIn('slow')			
		code = x.substring(x.indexOf('=')+1)
		$.get('/wp-login.php?piereg_verification='+code,function(data){
			d = data
			if(d.indexOf('your account has been verified, please login') != -1){
				close_with_reload_to_home = true;
				$('#layer-container').load('/xhr/_signup_success.php',function(){
					$('#layer .signup-success').show()
					validate_contact_form()					
				})							
			} else{
				$('#layer-container').load('/xhr/_confirm_failed.php',function(){
					$('#layer').fadeIn('slow')						
					$('#layer .login-required').show()	
				})				
			}
		})
	}
	
}

function check_for_login_required(){
	if($('#login-required').length > 0){
		$('#layer-container').load('/xhr/_login_required.php',function(){
			$('#layer').fadeIn('slow')						
			$('#layer .login-required').show()	
		})				
	}
}

function video_playback(){
	x = window.location.href;
	if(x.indexOf('#video-') != -1){
		id = x.substring(x.indexOf("#video-"))
		$(id + " a.btn_watch").click()
	}
}

function myspace_share(T, C, U, L)
{
    var targetUrl = 'http://www.myspace.com/index.cfm?fuseaction=postto&' + 't=' + encodeURIComponent(T)
    + '&c=' + encodeURIComponent(C) + '&u=' + encodeURIComponent(U) + '&l=' + L;
    window.open(targetUrl);
}

function getYoutubeThumbnail( url, size ){
  if(url === null){ return ""; }
  size = (size === null) ? "big" : size;
  var vid;
  var results;

  results = url.match("[\\?&]v=([^&#]*)");

  vid = ( results === null ) ? url : results[1];
  if(size == "small"){
    return "http://img.youtube.com/vi/"+vid+"/2.jpg";
  }else {
    return "http://img.youtube.com/vi/"+vid+"/0.jpg";
  }
}