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 regex_mail = new RegExp('^([A-Z0-9._%+-]+)@([A-Z0-9.-]+)\.([A-Z]{2,4})$', 'i');
var reg_autj_error_message = '';

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, backward)
{
	if (tab == "register")
	{
		$('registration').show();
		$('authorization').hide();

	}
	else
	{
		$('registration').hide();
		$('authorization').show();



		setTimeout("$('login_auth').focus()", 200);
	}
	
	try{
		if(backward){
			if (tab == "register")
			{
				$('register_backward').value=backward;	
			}
			else
			{
				$('auth_backward').value=backward;
			}
		}
	}catch(e){}
	
	$('popup_dimmer').setStyle({height: document.body.offsetHeight + 'px'});
	$('popup_dimmer').show();
	if(reg_autj_error_message != ''){
		$('alert_div_reg').innerHTML = reg_autj_error_message;
		$('alert_div_auth').innerHTML = reg_autj_error_message;
		reg_autj_error_message = '';
	}
	
}

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://movieberry.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 close_userbar(tab)
{
	$('popup_dimmer').hide();
	$('authorization').hide();
	$('registration').hide();
	$('alert_div_reg').innerHTML = '';
	$('alert_div_auth').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);

	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 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 = $('episodes');
    series_block = container.getElementsByTagName('li');
    series_block_count = series_block.length;
	var real_episodes_height = 0;
   
    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();
			real_episodes_height += $('season_block_id_' + tab_id).offsetHeight;
        } else {
            $('season_block_id_' + tab_id).hide();
        }
    }
    var seasons_heights  = $('seasons').offsetHeight;
    var episodes_heights = $('episodes').offsetHeight;
    if (episodes_heights < seasons_heights) {
        var ua = navigator.userAgent.toLowerCase();
        if (ua.indexOf('msie') != -1 && ua.indexOf('opera') == -1) {
            $('episodes').style.height = seasons_heights + 15 + 'px';
        } else {
            $('episodes').style.minHeight = seasons_heights + 15 + 'px';
       }
    }
    if(real_episodes_height > episodes_heights){
    	var ua = navigator.userAgent.toLowerCase();
    	if (ua.indexOf('msie') != -1 && ua.indexOf('opera') == -1) {   	
	    	$('episodes').style.height = '';    	
    	}
    }
}

function selectAllSeries(season_id) {
    $('season_box_' + season_id).checked = ($('season_box_' + season_id).checked) ? false : true;
    container = $('episodes');
    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_box_' + season_id).checked;
        }
    }
    updatePrices();
}
var count_files = 0;

function updatePrices() {

    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 selected = '';
    
    var hideHd    = false;
    var hideDivx   = false;
    var hideIpod   = false;
    var hideHQDivX = false;

    $('issetHd').hide();
    $('emptyHd').show();
    $('issetDivx').hide();
    $('emptyDivx').show();
    $('issetIpod').hide();
    $('emptyIpod').show();
    $('issetHQDivX').hide();
    $('emptyHQDivX').show();
    
	$('hd_ul').className = 'fnex';
    $('hq_ul').className = 'fnex';
    $('divx_ul').className = 'fnex';
    $('ipod_ul').className = 'fnex';
    
    
    $('tab-hd').className = str_replace(' fnex','',$('tab-hd').className) + ' fnex';
    $('tab-hqdivx').className = str_replace(' fnex','',$('tab-hqdivx').className) + ' fnex';
    $('tab-divx').className = str_replace(' fnex','',$('tab-divx').className) + ' fnex';
    $('tab-ipod').className = str_replace(' fnex','',$('tab-ipod').className) + ' fnex';
    
    container = $('episodes');
    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; 
		    }
        }
    }
    $('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;
    
    container = $('seasons');
    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]);
        $('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) {
           $('issetHd').show();
           $('emptyHd').hide();
		   $('hd_ul').className = '';
           $('tab-hd').className = str_replace(' fnex','',$('tab-hd').className);
        }
    } else {
        $('price_hd').innerHTML = '$' + serie.price_hd.toFixed(2);
        $('summ_hd').innerHTML  = '$0.00';
        $('pt_hd').value        = 0;  
        $('issetHd').hide();
        $('emptyHd').show();
    }
    
    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) {
            $('issetDivx').show();
            $('emptyDivx').hide();
			$('divx_ul').className = '';
            $('tab-divx').className = str_replace(' fnex','',$('tab-divx').className);
        }
    } else {
        $('price_divx').innerHTML = '$' + serie.price_divx.toFixed(2);
        $('summ_divx').innerHTML  = '$0.00';
        $('pt_divx').value        = 0;
        $('issetDivx').hide();
        $('emptyDivx').show();
    }

    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) {
            $('issetIpod').show();
            $('emptyIpod').hide();
			$('ipod_ul').className = '';
            $('tab-ipod').className = str_replace(' fnex','',$('tab-ipod').className);
        }
    } else {
        $('price_ipod').innerHTML = '$' + serie.price_ipod.toFixed(2);
        $('summ_ipod').innerHTML  = '$0.00';
        $('pt_ipod').value        = 0; 
        $('issetIpod').hide();
        $('emptyIpod').show();
    }
    
    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) {
            $('issetHQDivX').show();
            $('emptyHQDivX').hide();
			$('hq_ul').className = '';
            $('tab-hqdivx').className = str_replace(' fnex','',$('tab-hqdivx').className);
        } 
    } else {
        $('price_hqdivx').innerHTML = '$' + serie.price_hqdivx.toFixed(2);
        $('summ_hqdivx').innerHTML  = '$0.00';
        $('pt_hqdivx').value        = 0;
        $('issetHQDivX').hide();
        $('emptyHQDivX').show();
    }

}

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



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

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;
}
function ShowFullStory(){
	$('short_story').hide();
	$('full_story').show();
}

	
function getBodyScrollTop()
{
  return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
}



function getBodyScrollLeft()
{
  return self.pageXOffset || (document.documentElement && document.documentElement.scrollLeft) || (document.body && document.body.scrollLeft);
}




function open_post() {
  if (!is_authorized) {
    reg_autj_error_message = "You have to register or log in to add a comment.";
      $('auth_backward').value = backward;
      open_userbar('login');
      return;
  }
 // var top = document.viewport.getScrollOffsets()['top'];
  //var height = document.viewport.getHeight();
   $('postbox').show();
  $('postbox_litter').show();
  $('postbox_post').show();
  $('postbox_litter').setStyle({height: document.body.offsetHeight + 'px'});
 // $('postbox_post').setStyle({top: (top + height/2 - 250) + 'px'});
 
 nRealTop = getBodyScrollTop();
 	$('postbox_post').setStyle({top: (nRealTop + 150) + 'px'});
 
 // $('review_title').focus();
}

function close_post(){
	$('postbox_litter').hide();
	$('postbox_post').hide();
	$('postbox').hide();
}

