// ##########  PAGE LOGIC  ############

var player = 0;

function onYouTubePlayerReady(playerId) {

    player = document.getElementById(playerId);
    player.addEventListener("onStateChange", "onStateChange");
  
}

function load_vid(video_id) {
    var player_elem = document.getElementById('player');
    player_elem.loadVideoById(video_id);
}



function getCurrentTime() {
	var player_elem = document.getElementById('player');
  if (player_elem) {
    return player_elem.getCurrentTime();
  }
}

function getDuration() {
	var player_elem = document.getElementById('player');
  if (player_elem) {
    return player_elem.getDuration();
  }
}

function getPlayerState() {
	var player_elem = document.getElementById('player');
  if (player_elem) {
    return player_elem.getPlayerState();
  }
}

function play_vid(video_id) {
	var player_elem = document.getElementById('player');
	player_elem.loadVideoById(video_id);
}


function resumeVideo() {
	var player_elem = document.getElementById('player');
	if (player_elem) {
	  player_elem.playVideo();
	}
}

function stop_vid() {
	var player_elem = document.getElementById('player');
	player_elem.stopVideo();
}

function pause_vid() {
	var player_elem = document.getElementById('player');
	player_elem.pauseVideo();
}

function onStateChange(newState) {
	
   if(newState == 0 ){
		closePlayer();
	}

}

$(function(){

var self = 0;
var currentState = "NONE"; 
var previousState = "NONE";
var currentItem = -1;
var productImage = 0;

//############  YOUTUBE PLAYER FUNCTIONS  ############


function playPlayer(){
	$('#playvideo').css('display','none');
	$('#videoplayer').fadeIn('slow');	
	startVideo('YjcI-9Q1H5I');
}




function closePlayer(){
	$('#videoplayer').fadeOut('slow');
	$('#playvideo').css('display','inline');
}

$('#req_invite_btn').live('click',function(){requestInvite();})
$('#closePlayer').live('click',function(){closePlayer();return false;})

//launchVid = setTimeout(playPlayer, 5000);

// START VIDEOS
function startVideo(video_id){
	
	productImage = $('#productImgW').html();
	$('#productImg_01').unbind('click');
	var playerId = "videoTarget";		
	
		//clearTimeout(launchVid);
       var params = { allowScriptAccess: "always",allowFullScreen: "true"}; // 252F41  0x121720
       var atts = { id: playerId};
       swfobject.embedSWF("http://www.youtube.com/v/" + video_id + "&enablejsapi=1&playerapiid="+playerId+"&fs=1&rel=0&color1=0x000000&color2=0x252F41&autoplay=1",
       playerId, "544", "381", "8", null, null, params, atts); // add "&rel=0" to get rid of related videos
	
	$('.infoBox').removeClass('boxGlow');
	if($(this).hasClass('infoBox')){
		$(this).addClass('boxGlow');
	}
	
		
}



//############  JW PLAYER FUNCTIONS  ############
// var player = null;
// 
// playerReady = function(thePlayer) {
// 	player = window.document[thePlayer.id];
// 	addListeners();
// }
// 
// 
// addListeners = function() {
// 	if (player) { 
// 		player.addModelListener("STATE", "stateListener");
// 		player.addControllerListener("ITEM", "itemListener");
// 
// 	} else {
// 		setTimeout("addListeners()",100);
// 	
// 	}
// }
// 
// 
// stateListener = function(obj) { //IDLE, BUFFERING, PLAYING, PAUSED, COMPLETED
// 	currentState = obj.newstate; 
// 	previousState = obj.oldstate; 
// 	
// 	if ((currentState == "COMPLETED")) {
// 		$('#productImgW').html(productImage);
// 		$('#productImg_01').bind('click',playOnClick);
// 		if($(self).hasClass('infoBox')){
// 			$(self).removeClass('boxGlow');
// 		}
// 	}
// }
// 
// itemListener = function(obj) { 
// 		if (obj.index != currentItem) {
// 	 		previousItem = currentItem;
// 			currentItem = obj.index;
// 			nextItem = currentItem + 1;
// 
// 		}
// }



//############  PLAY FUNCTION  ############
function play(self){

	var this_clip = $(self).attr("alt");
	videoPlayer('video/'+this_clip, 544, 381, 'true');
	
}


//############  PLAY on CLICK FUNCTION  ############
function playOnClick(){
	
	productImage = $('#productImgW').html();
	$('#productImg_01').unbind('click');
	self = this;		
	play(self);
	
	$('.infoBox').removeClass('boxGlow');
	if($(this).hasClass('infoBox')){
		$(this).addClass('boxGlow');
	}
}


//############  VIDEO PLAYER FUNCTION  ############
videoPlayer = function(video_file, width, height, autostart){
	
	var video_file_var = (video_file) ? video_file : "" ;
	var height_var = (height) ? height : 381 ;
	var width_var = (width) ? width : 544 ;
	//var video_thumb = "images/template-whistler-video/wf_thumb_info.jpg";
	//var video_thumb = "video/video-thumbs-large/"+video_file+".jpg";
	var logo = 'images/whistler_footage_logo_49x34_trns.png';
	//var autostart = (video_file) ? "false" : "false" ;
	var host_url = 'http://localhost/pointkit/site/';
	var repeat = 'false'; // always or never
	var controlbar = 'over';
	var skin = 'video/skins/nacht/nacht_black.swf';
	//var video_file_var = 'rss/cooliris.rss';


	var s1 = new SWFObject("player.swf","player",width_var,height_var,"7");
	s1.addParam("allowfullscreen","true");
	s1.addParam("allowscriptaccess","always");
	s1.addVariable("autostart",autostart);
	s1.addVariable("width",width_var);
	s1.addVariable("height",height_var);
	s1.addVariable("file",video_file_var);
	//s1.addVariable("image",video_thumb);
	s1.addVariable("repeat",repeat);
	//s1.addVariable("logo",logo);
	s1.addVariable("icons","false");
	s1.addVariable("bufferlength","1");
	//s1.addVariable("controlbar",controlbar);
	//s1.addParam('wmode','opaque');
	//s1.addVariable("skin", host_url+skin);
	s1.addVariable("skin", host_url+"video/skins/nacht/nacht_black.swf");
	//s1.addParam('flashvars','file='+host_url+video_file_var+'&repeat='+repeat+'&skin='+host_url+skin+'&autostart='+autostart+'&logo='+host_url+logo+'&image='+host_url+video_thumb);
	s1.write("productImg_01");

	
}

var carousel_Xpos = 0;
var pos = 1;
var posB = 1;

//############  CAROUSEL FUNCTION  ############
function moveCarouselHor(amount){
	
	var visibleBoxes = 2;
	var boxNum = $(".infoBox").length - visibleBoxes;
	var max = 0;
	var min = -Math.abs((boxNum-2)*amount);

	function moveA(amount){
      $("#infoFlow").animate({ 
        left: "+="+amount+"px"
      }, "slow" );
	 }
	
	// Right Click
	if(amount < 0){
		if(pos<boxNum){moveA(amount);pos=pos+1;$('#arrowL').removeClass('arrLoff').addClass('arrLon');}
		if(pos>boxNum-1){$('#arrowR').removeClass('arrRon').addClass('arrRoff');}
	}
	// Left Click
	if(amount > 0){
		if(pos > 1){moveA(amount);pos=pos-1;$('#arrowR').removeClass('arrRoff').addClass('arrRon');}
		if(pos < 2){$('#arrowL').removeClass('arrLon').addClass('arrLoff');}
	}

}


$('#productImg_01, .infoBox').bind('click',function(){ var this_clip = $(this).attr("alt"); startVideo(this_clip);});
$('#arrowL').bind('click',function(){
	moveCarouselHor(315);
});
$('#arrowR').bind('click',function(){
	moveCarouselHor(-315);
});


//############  LOGIN PAGE  ############

// Generic Input Default message reset
inputMsgAutoReset = function(target,msg){	
	$('#'+target+'').die('click').live('click',function(){if($('#'+target+'').val() == msg)$('#'+target+'').val('');}).blur(function(){if($('#'+target+'').val() == msg || $('#'+target+'').val().length == 0)$('#'+target+'').val(msg);}).keydown(function(){if($('#'+target+'').val() == msg){$('#'+target+'').val('');}})
}

loginValidation = function(){
	var uTg = '#usernameInput';var pTg = '#passwordInput';
	var u = $(uTg).val();
	var p = $(pTg).val();
	
	if($(uTg).length==0 || u=='Username'){
		$(uTg).removeClass('loginInput').addClass('loginInputError');$(uTg).val('').focus();
		return false;
	}
	if($(pTg).length==0 || p=='Password'){
		$(pTg).removeClass('loginInput').addClass('loginInputError');$(uTg).val('').focus();
		return false;
	}
	
}

$('#usernameInput').focus();
inputMsgAutoReset('usernameInput','Email');
inputMsgAutoReset('passwordInput','Password');
$('form#loginform').live('submit',loginValidation);

$('#usernameInput').one('keydown',function(){
	$('#passwordInput').replaceWith('<input type="password" id="passwordInput" class="loginInput" name="password" value=""/>')
});



//############  SIGN UP PAGE  ############

// Simple Email validation
validateEmail = function(elId) {
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   var address = $('#'+elId+'').val();
   if(reg.test(address) == false) {
      return false;
   }
}

var inputArrPremium = new Object()
inputArrPremium = {
	'First Name':'first_name',
	'Last Name':'last_name',
	//'Company Name':'company_name',
	'Email':'user_email',
	'Password':'su_password',
	'Confirmation Password':'su_password_conf',
	'Credit Card Owner Full Name':'cc_full_name',
	'Credit Card Number':'cc_number',
	'Credit Card Verification Code':'cc_code'
}

var inputArrTrial = new Object()
inputArrTrial = {
	'First Name':'first_name',
	'Last Name':'last_name',
	//'Company Name':'company_name',
	'Email':'user_email',
	'Password':'su_password',
	'Confirmation Password':'su_password_conf',
	'Confirmation Code':'confirmation'
}

signUpValidation = function(inputArr){

	var errorArr = new Array();var e = 0;

	for (field in inputArr) {
		var target = '#'+inputArr[field]+'';
		if($(target).val().length==0){
			$(target).removeClass('inputError').addClass('inputError');
			errorArr[e] = ""+field+" is required";		
			e++;
		}else if($(target).hasClass('inputError')==true){
			$(target).removeClass('inputError');
		}
	}

	
	if(errorArr.length>0){
		var errors = '';
		
		for (var i = 0; i < errorArr.length; i++) {
			errors += errorArr[i]+"\n";	
		}
		formError++;
		alert(errors);
	}else{
		formError = 0;

	}
	
	return false;
	
}


// Check that email is available

checkEmailAvailability = function(){
		target = 'user_email';
	var email_val = $('#'+target+'').val();
	
	$.post("../../app/check_email_ajax.php", {ajax: "true", email: email_val},
	function(data){
		if(data){
			
			if(data.ok.success == 1){
				$('#'+target+'').removeClass('inputError');
				if($('#'+target+'_msg').hasClass('red')==true){
					$('#'+target+'_msg').removeClass('red').html(inputEmailMsg);
				}
				formError = 0;
			}
			
			if(data.ok.success == 0){
				$('#'+target+'').removeClass('inputError').addClass('inputError');
				$('#'+target+'_msg').addClass('red').html('That email is already taken!');
				formError++;
			}

		}
	}, "json");
	return false;
}


// Email Validation
var inputEmailMsg = $('#user_email_msg').html();

$('#user_email').blur(function(){
	target = 'user_email';
	
	if(validateEmail(target)==false){
		$('#'+target+'').removeClass('inputError').addClass('inputError');
		$('#'+target+'_msg').addClass('red').html('Please, enter a valid email');
		formError++;
	}else{
		$('#'+target+'').removeClass('inputError');
		if($('#'+target+'_msg').hasClass('red')==true){
			$('#'+target+'_msg').removeClass('red').html(inputEmailMsg);
		}
		formError = 0;
		checkEmailAvailability();
	}
})


// Password Validation
var inputPwdMsg = $('#su_password_msg').html();
var formError = 0;

$('#su_password').blur(function(){
	target = 'su_password';
	
	if($('#'+target+'').val().length<6){
		$('#'+target+'').removeClass('inputError').addClass('inputError');
		$('#'+target+'_msg').addClass('red').html('Password must be a least 6 characters long.');
		formError++;
	}else{
		$('#'+target+'').removeClass('inputError');
		if($('#'+target+'_msg').hasClass('red')==true){
			$('#'+target+'_msg').removeClass('red').html(inputPwdMsg);
		}
		formError = 0;
	}
})

// 2nd Password Validation

$('#su_password_conf').blur(function(){
	target = 'su_password_conf';
	
	if($('#'+target+'').val() != $('#su_password').val()){
		$('#'+target+'').removeClass('inputError').addClass('inputError');
		$('#'+target+'_msg').addClass('red').html('Passwords don\'t match. Try again.');
		formError++;
	}else{
		$('#'+target+'').removeClass('inputError');
		if($('#'+target+'_msg').hasClass('red')==true){
			$('#'+target+'_msg').removeClass('red').html('');
		}
		formError = 0;
	}
})


// Validate Credit Card

$("#signUpformPremium").validate({
  onkeyup: false,
  errorClass: "red",
  rules: {
    cc_number: {
      required: true,
      creditcard: true
    }
  }
});



// Submit Sign Up Form

submitForm = function(plan_mode){
	var options = {	ajax:"true",plan:plan_mode}
	var inputArr = plan_mode == 'trial' ? inputArrTrial : inputArrPremium;
	for (field in inputArr) {
		var target = '#'+inputArr[field]+'';
		options[inputArr[field]] = $(target).val();
	}

	$.post("../../app/signup_ajax.php", options,
	function(data){
		if(data){

			if(data.ok.success == 1){
				var email = $('#user_email').val();
				window.location ='login.php?ue='+email;
			}

			if(data.ok.success == 0){	
				for (var i = 0; i < data.ok.errors.length; i++) {
					var target = '#'+data.ok.errors[i].field+'';
					$(target).removeClass('inputError').addClass('inputError');
					$('#'+data.ok.errors[i].field+'_msg').addClass('red').html(data.ok.errors[i].msg);
				}
			}

		}
	}, "json");
	return false;
}



$('#signUpButton').live('click', function(ev) {

    //if(ev.keyCode == 13) {
	signUpValidation(inputArrTrial);
		if(formError > 0){
			return false;
		}else{
			submitForm('trial')
		}
    //}
	return false;
});


$('form#signUpformPremium').live('submit',function(){
	
	signUpValidation(inputArrPremium);
		
	if(formError > 0){
		return false;
	}else{
		//submitForm('premium');
	}
	
});

$('form#signUpformTrial').live('submit',function(){
	
	signUpValidation(inputArrTrial);
	
	if(formError > 0){
		return false;
	}else{
	submitForm('trial');
	}

	return false;
	
});

// Preselect First Field

if($('#first_name').length > 0){
	$('#first_name').focus().select();
}



});
