$(function(){
	SWFAddress.addEventListener(SWFAddressEvent.CHANGE, handleChange);

	function handleChange(event) {

		if(event.path=='/tv') {
			$('#tv').fadeIn(100);
		}
		else {
			$('#tv').fadeOut(100);
		}

	}
	
	$('#tv').offset({ top: ($(window).height()-420)/2, left: ($(window).width()-900)/2 });
	
	$('.close-tv').click(function(){
		$('#player').html('');
		SWFAddress.setValue('/');
	});
	
	var current;
	
	$('.tv-link').click(function(){
		
		if(current==$(this).attr('tvid')) return;
		
		current = $(this).attr('tvid');
		
		$('.tv-link').css('cursor','pointer');
		$('.tv-link').css('background','none');
		
		$(this).css('cursor','default');
		$(this).css('background','#ffffff');
		$(this).addClass('selected');
		
		$('#player').load('tv.php?id='+current);
	});
	
	$('.close').click(function(){
		$(this).find('.title').html('<span class="highlight">Необходимо <a class="auth" href="#/tv">войти</a></span>');
	});
	
	$('.auth').live('click',function(){
		var visible = $('.auth-block').is(':visible');
		$('.tv-page').hide();
		if(visible) {
			$('.tv-table').show();
		}
		else {
			$('.auth-block').show();
		}
	});
	
	$('.register').live('click',function(){
		var visible = $('.register-block').is(':visible');
		$('.tv-page').hide();
		if(visible) {
			$('.tv-table').show();
		}
		else {
			$('.register-block').show();
		}
	});
	
	$('.tv-register-form .submit').attr('disabled','disabled');
	
	$('#agree').change(function(){
		if($('#agree').attr('checked'))
			$('.tv-register-form .submit').attr('disabled','');
		else
			$('.tv-register-form .submit').attr('disabled','disabled');
	});
	
	$('.tv-register-form').ajaxForm( { beforeSubmit: validateRegistration, success: successRegistration } );
	$('.tv-auth-form').ajaxForm( { beforeSubmit: validateAuth, success: successAuth } );

});


function validateAuth(formData, jqForm, options) {
	var flag = true;
    for (var i=0; i < formData.length; i++) {
    	
    	if(formData[i].name=="email" && !isValidEmailAddress(formData[i].value))
    	{
        	flag = false;
        	$('.tv-auth-form input[name='+formData[i].name+']').addClass("required");
        	var str = formData[i].value;
        	str = str.replace(/ /g,'');
        	$('.tv-auth-form input[name='+formData[i].name+']').val(str);
        	continue;
    	}
    		
        if (!formData[i].value) {
        	flag = false;
        	$('.tv-auth-form input[name='+formData[i].name+']').addClass("required"); 
        } 
        else
        {
        	$('.tv-auth-form input[name='+formData[i].name+']').removeClass("required");
        }
    } 
	
	if(flag) {
    	$('.tv-auth-form .submit').hide();
	}
    
    return flag; 
}   

function successAuth(responseText, statusText) {
	if(responseText=="1")
	{
		location.reload();
	}
	else
	{
		alert(responseText);
		$('.tv-auth-form .submit').show();
	}
}

function validateRegistration(formData, jqForm, options) {
	var flag = true;
    for (var i=0; i < formData.length; i++) {
    	
    	if(formData[i].name=="email" && !isValidEmailAddress(formData[i].value))
    	{
        	flag = false;
        	$('.tv-register-form input[name='+formData[i].name+']').addClass("required");
        	var str = formData[i].value;
        	str = str.replace(/ /g,'');
        	$('.tv-register-form input[name='+formData[i].name+']').val(str);
        	continue;
    	}
    		
        if (!formData[i].value) {
        	flag = false;
        	$('.tv-register-form input[name='+formData[i].name+']').addClass("required"); 
        } 
        else
        {
        	$('.tv-register-form input[name='+formData[i].name+']').removeClass("required");
        }
    } 
	
	if(flag) {
    	$('.tv-register-form .submit').hide();
	}
    
    return flag; 
}   

function successRegistration(responseText, statusText) {
	if(responseText=="1")
	{
		location.reload();
	}
	else
	{
		alert(responseText);
		$('.tv-register-form .submit').show();
	}
}

function isValidEmailAddress(emailAddress) {
	var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
	return pattern.test(emailAddress);
}
