var ERR_TOO_SHORT_LOGIN = 'E-mail must be between 6 and 100 characters.';
var ERR_TOO_SHORT_PASSWORD = 'Password must be between 4 and 12 characters.';
var ERR_INCORRECT_CONFIRM_PASSWORD = 'The password you entered doesn`t match the confirmation password.';
var ERR_INCORRECT_OLD_PASSWORD = 'Old password is invalid.';
var ERR_INCORRECT_MAIL = 'Your E-mail address is invalid.';
var MAX_SEASON_SHOW = 7;
var regex_mail = new RegExp('^([A-Z0-9._%+-]+)@([A-Z0-9.-]+)\.([A-Z]{2,4})$', 'i');
var right_limit;
var left_limit;
var select_tab;
var auth_message = '';
var count_files_for_downloads = 0;

function expand_review(id){
    new Ajax.Request('/review/full/'+id, {
        method:'get',
        onSuccess: function(transport) {
            $('review_'+id).innerHTML = transport.responseText;
            $('review_'+id).addClassName('full');
        }
    });
}

function vote_review(id, rating) {
    new Ajax.Request('/review/rate/'+id+'/'+(rating == 1 ? '+1' : '-1'), {
        method:'get',
        onSuccess: function (transport) {
            try{
                var json = transport.responseText.toQueryParams();
            }catch(e){
                alert('Something went wrong...');
                return;
            }
            if (json.success == 1) {
                $('karma_'+id).innerHTML = json.extra;
                alert('Thanks for your vote');
                return;
            }

            alert(json.msg.replace(/\+/g, ' '));
            if (json.extra) {
                window.open(json.extra, '_blank').focus();
            }
            if (json.toeval){
            	eval(json.toeval);
            }
        }, onFailure: function(){ alert('Something went wrong...'); }
    });
}

function open_userbar(tab)
{
	if (tab == "register")
	{
		$('reg_content').show();
		$('login_content').hide();

		$('pm_register').className = 'pm_active';
		$('pm_login').className = '';
	}
	else
	{
		$('reg_content').hide();
		$('login_content').show();

		$('pm_register').className = '';
		$('pm_login').className = 'pm_active';


		setTimeout("$('login_auth').focus()", 200);
	}

	$('popup_dimmer').setStyle({height: document.body.offsetHeight + 'px', width: document.body.offsetWidth + 'px'});

	$('c_popup').setStyle({width: document.body.offsetWidth + 'px'});

	$('c_popup').scrollTo();

	$('popup_dimmer').show();
	$('c_popup').show();
	if(auth_message != ''){
		$('auth_message').innerHTML = auth_message;
		auth_message = '';
	}
}

function close_userbar(tab)
{
	$('popup_dimmer').hide();
	$('c_popup').hide();
	$('auth_message').innerHTML = '';
}


function check_registration(form)
{
	var pform = $(form);

	var login = (pform.getInputs('text', 'login')[0].value);
	var pass = (pform.getInputs('password', 'pass')[0].value);
	var cpass = (pform.getInputs('password', 'cpass')[0].value);
	
	if( !$('#rememberme').attr('checked') )
	{
		alert('Please read and agreed to the terms of service!');
		return;
	}

	var errors = new Hash();

	if (login.length < 6 || login.length > 100)
	{
		errors.set('login', ERR_TOO_SHORT_LOGIN);
	}
	else if (!regex_mail.test(login))
	{
		errors.set('login', ERR_INCORRECT_MAIL);
	}

	if (pass.length < 4 || pass.length > 12)
	{
		errors.set('pass', ERR_TOO_SHORT_PASSWORD);
	}
	else if (pass != cpass)
	{
		errors.set('pass', ERR_INCORRECT_CONFIRM_PASSWORD);
	}

	if (errors.size() == 0)
	{
		return true;
	}
	else
	{
		$('reg_login_error').innerHTML = errors.get('login') ? errors.get('login') : '';
		$('reg_pass_error').innerHTML = errors.get('pass') ? errors.get('pass') : '';
	}

	return false;
}

function check_auth(form)
{alert(1);
    $('submit_auth').disabled=true;
	var pform = $(form);

	var login = (pform.getInputs('text', 'login')[0].value);
	var pass = (pform.getInputs('password', 'pass')[0].value);

	var errors = new Hash();

	if (login.length < 6 || login.length > 100)
	{
		errors.set('login', ERR_TOO_SHORT_LOGIN);
	}
	else if (!regex_mail.test(login))
	{
		errors.set('login', ERR_INCORRECT_MAIL);
	}

	if (pass.length < 4 || pass.length > 12)
	{
		errors.set('pass', ERR_TOO_SHORT_PASSWORD);
	}

	if (errors.size() == 0)
	{
	    new Ajax.Request('/user/authn/', {
        	method:'post',
	        parameters:{'login':login, 'pass':pass, 'type':'auth', 'ajax':true},
        	onSuccess: function(transport) {
        		if(transport.responseText.length>0){
				document.location.reload();
			}else{
				document.getElementById('auth_errors').style.display = '';
				$('submit_auth').disabled=false;

			}
	        }
	    });
	}
	else
	{
        $('submit_auth').disabled=false;
		$('auth_error').innerHTML = errors.get('login') ? errors.get('login') : '';

	}

	return false;
}

function selectTab(season_id) {
    $('season_tab_' + selected_season_id).removeClassName('current');
    $('season_tab_' + season_id).addClassName('current');
    $('season_tab_' + selected_season_id).addClassName('noclass');
    selected_season_id = season_id;
    container = $('episodesBox');
    series_block = container.getElementsByTagName('li');
    series_block_count = series_block.length;
   
    for (var i = 0 ; i != series_block_count; i++) {
        tab_id = parseInt(series_block[i].id.match(/([0-9]+)$/)[1]);
        tab_season_id = parseInt(series_block[i].getAttribute('name').match(/([0-9]+)$/)[1]);
        if (season_id == tab_season_id) {
            $('season_block_id_' + tab_id).show();
        } else {
            $('season_block_id_' + tab_id).hide();
        }
    }
}

function selectAllSeries(season_id, skipBox) {
    if (skipBox == null) {
        $('season_all_' + season_id).checked = ($('season_all_' + season_id).checked) ? false : true;
    } else {
        $('season_all_' + season_id).checked = skipBox;
    }
    container = $('episodesBox');
    series_block = container.getElementsByTagName('li');
    series_block_count = series_block.length;
    for (var i = 0 ; i != series_block_count; i++) {
        tab_id = parseInt(series_block[i].id.match(/([0-9]+)$/)[1]);
        tab_season_id = parseInt(series_block[i].getAttribute('name').match(/([0-9]+)$/)[1]);
        if (season_id == tab_season_id) {
            $('sbox_' + tab_id).checked = $('season_all_' + season_id).checked;
        }
    }
    updatePrices();
}

function updatePrices() {

    var count_files  = 0;
    
    var size_hd      = 0;
    var size_divx    = 0;
    var size_hqdivx  = 0;
    var size_ipod    = 0;
    
    var price_hd     = 0;
    var price_divx   = 0;
    var price_hqdivx = 0;
    var price_ipod   = 0;
    
    var count             = {};
    var checkBoxContainer = {};
    var selected          = '';
    
    var hideHd     = false;
    var hideDivx   = false;
    var hideIpod   = false;
    var hideHQDivX = false;
    
    container = $('episodesBox');
    series_block = container.getElementsByTagName('li');
    series_block_count = series_block.length;
    
    for (var i = 0 ; i != series_block_count; i++) {
        serie_id      = parseInt(series_block[i].id.match(/([0-9]+)$/)[1]);
        tab_season_id = parseInt(series_block[i].getAttribute('name').match(/([0-9]+)$/)[1]);
        serie = series.get(serie_id);
        if ($('sbox_' + serie_id).checked) { 
        	if (selected == '') {
        	    selected = serie_id;
        	} else {
        	    selected += ',' + serie_id;
        	}
            if (serie.size_hd) {
			    size_hd += serie.size_hd;
		    } else {
		        hideHd = true;
		    }
		    if (serie.size_divx) {
			    size_divx += serie.size_divx;
		    } else {
		        hideDivx = true;
		    }
		    if (serie.size_ipod) {
			    size_ipod += serie.size_ipod;
		    } else {
		        hideIpod = true;
		    }
		    if (serie.size_hqdivx) {
			    size_hqdivx += serie.size_hqdivx;
		    } else {
		        hideHQDivX = true;
		    }
		    if (serie.size_hd || serie.size_divx || serie.size_ipod || serie.size_hqdivx) {
		        count_files++;
		        count[tab_season_id] = count[tab_season_id] == undefined ? 1 : count[tab_season_id]+1; 
		    }
		    checkBoxContainer[tab_season_id] = checkBoxContainer[tab_season_id] == undefined || checkBoxContainer[tab_season_id] == true ? true : false;
        } else {
            checkBoxContainer[tab_season_id] = false;
        }
    }
    count_files_for_downloads = count_files;

    $('pk_hd').value='';
	$('pt_divx').value='';
	$('pk_ipod').value='';
	$('pk_hqdivx').value='';
    if(!hideHd)
    	$('pk_hd').value=selected;
    if(!hideDivx)
    	$('pk_divx').value=selected;
    if(!hideIpod)
    	$('pk_ipod').value=selected;
    if(!hideHQDivX)
    	$('pk_hqdivx').value=selected;
    
    if(hideHQDivX && !hideDivx){
    	$('download_hqdivx').hide();
    	$('download_divx').show();
    }else{
    	$('download_hqdivx').show();
    	$('download_divx').hide();
    }
    container = $('seasonsBox');
    seasons_block = container.getElementsByTagName('li');
    seasons_block_count = seasons_block.length;
    for (var i = 0 ; i != seasons_block_count; i++) {
        tab_id = parseInt(seasons_block[i].id.match(/([0-9]+)$/)[1]);
       // alert(selected_season_id);
        if (tab_id == selected_season_id) {
        $('season_all_' + tab_id).checked = checkBoxContainer[tab_id] == undefined ? false : checkBoxContainer[tab_id];
        }
        $('episodes_count_link_' + tab_id).innerHTML = count[tab_id] != undefined ? '(' + count[tab_id] + ')': '';
    }
    $('size_hd').innerHTML    = size_hd + ' MB';
    $('size_divx').innerHTML   = size_divx + ' MB';
    $('size_ipod').innerHTML   = size_ipod + ' MB';
    $('size_hqdivx').innerHTML = size_hqdivx + ' MB';
    
    if (size_hd) {
        var summ_hd = serie.price_hd*count_files;
        $('price_hd').innerHTML    = '$' + serie.price_hd.toFixed(2) + ' x ' + count_files;
        $('summ_hd').innerHTML     = '$' + summ_hd.toFixed(2);
        $('pt_hd').value           = summ_hd.toFixed(2);
        if (hideHd == false) {
           $('tab-hd').removeClassName('fnex');
        } else {
           $('tab-hd').addClassName('fnex');
        }
    } else {
        $('price_hd').innerHTML = '$' + serie.price_hd.toFixed(2);
        $('summ_hd').innerHTML  = '$0.00';
        $('pt_hd').value        = 0;  
        $('tab-hd').addClassName('fnex');
    }
    
    if (size_divx) {
        var summ_divx = serie.price_divx*count_files;
        $('price_divx').innerHTML    = '$' + serie.price_divx.toFixed(2) + ' x ' + count_files;
        $('summ_divx').innerHTML     = '$' + summ_divx.toFixed(2);
        $('pt_divx').value           = summ_divx.toFixed(2);
        if (hideDivx == false) {
            $('tab-divx').removeClassName('fnex');
        } else {
            $('tab-divx').addClassName('fnex');
        }
    } else {
        $('price_divx').innerHTML = '$' + serie.price_divx.toFixed(2);
        $('summ_divx').innerHTML  = '$0.00';
        $('pt_divx').value        = 0;
        $('tab-divx').addClassName('fnex');
    }

    if (size_ipod) {
        var summ_ipod = serie.price_ipod*count_files;
        $('price_ipod').innerHTML    = '$' + serie.price_ipod.toFixed(2) + ' x ' + count_files;
        $('summ_ipod').innerHTML     = '$' + summ_ipod.toFixed(2);
        $('pt_ipod').value           = summ_ipod.toFixed(2);
        if (hideIpod == false) {
            $('tab-ipod').removeClassName('fnex');
        } else {
            $('tab-ipod').addClassName('fnex');
        }
    } else {
        $('price_ipod').innerHTML = '$' + serie.price_ipod.toFixed(2);
        $('summ_ipod').innerHTML  = '$0.00';
        $('pt_ipod').value        = 0; 
        $('tab-ipod').addClassName('fnex');
    }
    
    if (size_hqdivx) {
        var summ_hqdivx = serie.price_hqdivx*count_files;
        $('price_hqdivx').innerHTML    = '$' + serie.price_hqdivx.toFixed(2) + ' x ' + count_files;
        $('summ_hqdivx').innerHTML     = '$' + summ_hqdivx.toFixed(2);
        $('pt_hqdivx').value           = summ_hqdivx.toFixed(2);  
        if (hideHQDivX == false) {
            $('tab-hqdivx').removeClassName('fnex');
        } else {
            $('tab-hqdivx').addClassName('fnex');
        }
    } else {
        $('price_hqdivx').innerHTML = '$' + serie.price_hqdivx.toFixed(2);
        $('summ_hqdivx').innerHTML  = '$0.00';
        $('pt_hqdivx').value        = 0;
        $('tab-hqdivx').addClassName('fnex');
    }

}

function NewComfirmation(form_to_submit) {
	if (confirmation(form_to_submit,form_to_submit.price_total.value)) {
		form_to_submit.submit();
	}
}

function str_replace(search, replace, subject) {
	return subject.split(search).join(replace);
}

function showTrailer(strTrailerUrl,strSizeType){
	strTrailerUrl = decodeLink(strTrailerUrl);
	$('popup_dimmer').setStyle({height: document.body.offsetHeight + 'px'});
	$('popup_dimmer').show();
	$('trailer_player_position').show();
	if(strSizeType == 'small'){
		var playerWidth = 320;
		var playerHeight = 148;
		
	}
	if(strSizeType == 'medium'){
		var playerWidth = 640;
		var playerHeight = 284;
	}
	if(strSizeType == 'large'){
		var playerWidth = 720;
		var playerHeight = 320;
	}
	
	$('player_closer').setStyle({marginLeft: (playerWidth-66) + 'px'});
	$('player_closer').focus();
	$('trailer_player_position').setStyle({left: (document.body.offsetWidth-playerWidth)/2 + 'px'});
	$('trailer_player_position').setStyle({top: 100 + 'px'});
	var flashvars = {file:strTrailerUrl,"m":"video", "uid":"trailer_player", "st":"/player/styles/" + strSizeType + ".txt", width:playerWidth, height:playerHeight};
	var params = {bgcolor:"#ffffff", allowFullScreen:"true", allowScriptAccess:"always"};
	new swfobject.embedSWF("http://img.filmous.com/player/uppod.swf", "trailer_player", playerWidth, (playerHeight+35), "9.0.0",false,flashvars, params);
	return false;
}

function closePlayer(){
	$('trailer_player_position').innerHTML = '<div class="closer"  id="player_closer"><a href="#" onClick="return closePlayer();"></a></div><div id="trailer_player"></div>';
	$('trailer_player_position').hide();
	$('popup_dimmer').hide();
	return false;
}
function decodeLink(str){
	url = '';
	for(i=0;i<str.length;i++){
		url = url + String.fromCharCode(str.charCodeAt(i)-1);
	}
	return url;
}

function getPreview(str){
	document.location = decodeLink(str);
	return false;
}
