var toggleDuration = null;
$(document).ready(function(){	
	if( document.width*document.height < 786432 ) {
		$('.resolution_vual').show();
		$('.resolution_text').show();
		$('#videoContainer').hide();
	}
	
	$.ajax({
		url: 'ajax_request/getCurrentLanguage/',
		type: "POST",
		success: function(result) {
			$('div.select').each(function() {
				var obj = new customSelect( this, result );
				if( result == 'gre' && $('#restart').length > 0 ) {
					$('#restart').addClass('big-but');
				}
			});
		}
	});
	
	$('div').live('mouseenter', function(event){
		event.stopPropagation();
		
		if( $('.slider').length == 0 ) {
			return false;
		}
		
		var isOpenedSlider = false;
		var obj;
		
		$('#PnCn').find('div.slider').each(function() {
			if( $(this).css('display') == 'block' && parseInt($(this).height()) > 0 ) {
				isOpenedSlider = true;
				objSlider = $(this);
			}
		});
		
		if( !isOpenedSlider ) return false;
		
		if( isOpenedSlider ) {
			var parent = this;
			var count = 0;
			while( parent.id != 'Body' ) {				
				if( count == 8 ) {
					break;
				}
				if( $(parent).hasClass('slider') ) {
					parent = false;
					break;
				}
				count++;
				parent = $(parent).parent();
			}
			
			if( parent != false || count == 8 ) {
				objSlider.fadeOut();
			}
		}
	}); 
	
	//
	if( !browserIsNotIELower9() /*|| !supports_audio() */) {
		$('#soundSwitch').find('audio').remove();
		
		if( parseInt(support_storage('musicOff')) != 1 ) {
			setTimeout(play_song, 100);
		} else {
			$('#soundSwitch').removeClass('sound-on');
		}
	} else {
		if( supports_audio() ) {
			if( parseInt(support_storage('musicOff')) != 1 ) {
				setCurrentTime($('#header').find('audio')[0]);
			} else {
				$('#soundSwitch').removeClass('sound-on');
			}
			
			$('#header').find('audio')[0].addEventListener('ended', function(){
				this.currentTime = 0;
			}, false);
		}
	} /**/
	
	$('#soundSwitch').click(function() {
		if( browserIsNotIELower9() && supports_audio() ) {
			if( $(this).hasClass('sound-on') ) {
				window.localStorage.setItem('musicOff', '1');
				$(this).find('audio')[0].pause();
			}
			else {
				window.localStorage.removeItem('musicOff');
				setCurrentTime($('#header').find('audio')[0]);
			}
		}
		else {
			if(!browserIsNotIELower9()) {
				if( $(this).hasClass('sound-on') ) {
					window.localStorage.setItem('musicOff', '1');
				} else {
					window.localStorage.removeItem('musicOff');
				}
				if( player_state() == null ) {
					setTimeout(play_song, 100);
				} else {
					pause_song();
				}
			}
		}
		$(this).toggleClass('sound-on');
	});
	
	preventSelection(document);
	
	$('#header').find('.top-left').find('a').click(function() { setCurrentTimeAudio( ); location.href = '/'; return false; });
});

$(window).resize(function() {
	if( document.width*document.height < 786432 ) {
		$('.resolution_vual').show();
		$('.resolution_text').show();
		$('#videoContainer').hide();
	} else if( document.width*document.height > 786432 ) {
		$('.resolution_vual').hide();
		$('.resolution_text').hide();
		$('#videoContainer').hide();
	}
});

function browserIsNotIELower9() {
	/*var userAgent = navigator.userAgent.toLowerCase().indexOf('msie');
	return ( userAgent == -1 || !(userAgent != -1 && parseInt(navigator.appVersion.toLowerCase()) < 9));*/
	
	var userAgent = navigator.userAgent.toLowerCase().indexOf('msie');
	var appVers = navigator.appVersion.toLowerCase();
	if( userAgent == -1 ) {
		return true;
	}
	appVers = appVers.substr( appVers.indexOf('msie')+5 );
	if( parseInt(appVers) >= 9 ) {
		return true;
	}
	return false;
}

function setCurrentTime( audio, audioTimerId ) {
	if( support_storage('') ) {
		var musicData = $.parseJSON(window.localStorage.getItem('musicData'));
	} else {
		var musicData = null;
	}
	audio.volume = 0;
	audio.play();
	if( !empty(musicData) && !empty(musicData['currentTime']) ) {
		if( audio.currentTime > 0 ) {
			audio.currentTime = musicData['currentTime'] < audio.duration ? musicData['currentTime'] : 0;
			audio.volume = 1;
			clearTimeout(audioTimerId);
		} else {
			audioTimerId = setTimeout(function(){setCurrentTime( audio, audioTimerId );}, 1);
		}
	} else {
		clearTimeout(audioTimerId);
		audio.volume = 1;
	}
}

function supports_audio() {
  return !!document.createElement('audio').canPlayType;
}

function support_storage( name ) {
	if( name == '' ) {
		return 'localStorage' in window && window['localStorage'] !== null;
	} else {
		if( support_storage('') ) {
			return window.localStorage.getItem(name);
		} else {
			return null;
		}
	}
}

function setCurrentTimeAudio( ) {
	if(supports_audio()) {
		var musicData = {'currentTime': $('#header').find('audio')[0].currentTime};
		var data = JSON.stringify(musicData);
		window.localStorage.setItem('musicData', data);
	}
}

/*class*/
function customSelect( block, lang ) {	
	this.isOpen = false;
	var ThisObj = this;
	this.defLang = lang;
	var This;
	
	this.mount = function( selectBlock, selectedLang ) {
		This = $(selectBlock);
		var title = $(selectBlock).children('.title');
		var optionsBlock = $(selectBlock).children('.options');
		var optHeight = 10;
		var optWidth = 0;
	
		var optionList = optionsBlock.find('.option');
		
		$(selectBlock).bind('click', function( event ) {
			event.stopPropagation();
			optionList.each(function(index){
				if( $(this).hasClass('current') ) {
					curIndex = index;
				}
			});
			
			if( optionsBlock.css('display') != 'block' && (optionsBlock.hasClass('topUp') || !optionsBlock.hasClass('topUp'))) {
				optionsBlock.slideDown(toggleDuration);
				if(!optionsBlock.hasClass('topUp') && optionsBlock.css('display') == 'block') {
					ThisObj.isOpen = true;
				}
				else {
					ThisObj.isOpen = false;
				}
			}
			else {
				optionsBlock.slideUp(toggleDuration);
				if(!optionsBlock.hasClass('topUp') && optionsBlock.css('display') == 'block') {
					ThisObj.isOpen = false;
				}
				else {
					ThisObj.isOpen = true;
				}
			}
		});
		
		$(selectBlock).mouseleave(function() {
			ThisObj.isOpen = false;
			setTimeout(_selectCloser, 100);
		});
		
		optionsBlock.show();
		
		$.each(optionList, function(i, e) {
			if( $(e).attr('sb:value') == selectedLang ) {				
				if( $(e).attr('sb:value') == selectedLang ) {
					This.children('input[type="hidden"]').val($(e).attr('sb:value'));
					$(e).addClass('current');
			
					if( title.text() == '' ) {
						title.text($(e).text());
					}
				}
				$(e).hide();
			} else {
				$(e).bind('click', function() {
					optionsBlock.find('.option').each(function(){ $(this).removeClass('current') });
					title.text($(e).text());
					$(e).toggleClass('current');
					This.children('input[type="hidden"]').val($(e).attr('sb:value'));
				
					if( (optionsBlock.hasClass('topUp') && optionsBlock.css('display') != 'block') || (!optionsBlock.hasClass('topUp') && optionsBlock.css('display') == 'block' )) {
						optionsBlock.slideDown(toggleDuration);
						if(!optionsBlock.hasClass('topUp') && optionsBlock.css('display') == 'block') {
							ThisObj.isOpen = true;
						}
						else {
							ThisObj.isOpen = false;
						}
					}
					else {
						optionsBlock.slideUp(toggleDuration);
						if(!optionsBlock.hasClass('topUp') && optionsBlock.css('display') == 'block') {
							ThisObj.isOpen = false;
						}
						else {
							ThisObj.isOpen = true;
						}
					}
					
					changeLanguage($(e).attr('sb:value'));
				});/**/
				
				$(e).bind('mouseover', function() {
					optionsBlock.find('.option').each(function(){ $(this).removeClass('current') });
					$(e).toggleClass('current');
					ThisObj.isOpen = true;
				});
				
				optHeight += $(e).height();
				if( optWidth < $(e).width()+15 ) {
					optWidth = $(e).width()+15;
				}
			}
		});
		
		$(selectBlock).width(optWidth);
		optionsBlock.width(optWidth);
		optionsBlock.hide();
		
		var pos = getAbsolutePosition(selectBlock);
		if( $('#Body').height() < pos[1]+optHeight && optHeight < pos[1] ) {
			This.find('.options').addClass('topUp');
		}
		else {
			This.find('.options').css('top', title.height());
		}
		
		/*$(selectBlock).mouseleave(function(event) {
			event.stopPropagation();
		});*/
	}
	
	function _selectCloser() {
		if(!ThisObj.isOpen) {
			var optionsBlock = This.find('.options');
			if(optionsBlock.css('display') != 'block') {
				return false;
			}
			optionsBlock.slideUp(toggleDuration);
		}
	}
	
	this.mount(block, lang);
}

function changeLanguage( lang ) {
	$.ajax({
		url: 'ajax_request/changeLanguage/'+lang,
		type: "POST",
		success: function() {
			doRedirect();
		}
	});
}

function empty( x ) {
	return ( x == '' || typeof x == 'undefined' || x == null || x == 0 || (x.constructor == 'Array' && x.length == 0) );
}

function getAbsolutePosition( obj )
{
	var topValue = 0, leftValue = 0;
	while(obj){
		leftValue += obj.offsetLeft;
		topValue += obj.offsetTop;
		obj = obj.offsetParent;
	}
	return new Array(leftValue, topValue);
}

function clear_form_elements(ele) {
    $(ele).find(':input').each(function() {
        switch(this.type) {
            case 'password':
            case 'select-multiple':
            case 'select-one':
            case 'text':
            case 'textarea':
                $(this).val('');
                break;
            case 'checkbox':
            case 'radio':
                this.checked = false;
        }
    });
}

function doRedirect() {
	location.href = '/';
}

////

function preventSelection(element){
  var preventSelection = false;

  function addHandler(element, event, handler){
    if (element.attachEvent) 
      element.attachEvent('on' + event, handler);
    else 
      if (element.addEventListener) 
        element.addEventListener(event, handler, false);
  }
  function removeSelection(){
    if (window.getSelection) { window.getSelection().removeAllRanges(); }
    else if (document.selection && document.selection.clear)
      document.selection.clear();
  }
  function killCtrlA(event){
    var event = event || window.event;
    var sender = event.target || event.srcElement;

    if (sender.tagName.match(/INPUT|TEXTAREA/i))
      return;

    var key = event.keyCode || event.which;
    if (event.ctrlKey && key == 'A'.charCodeAt(0))
    {
      removeSelection();

      if (event.preventDefault) 
        event.preventDefault();
      else
        event.returnValue = false;
    }
  }

  addHandler(element, 'mousemove', function(){
    if(preventSelection)
      removeSelection();
  });
  addHandler(element, 'mousedown', function(event){
    var event = event || window.event;
    var sender = event.target || event.srcElement;
    preventSelection = !sender.tagName.match(/INPUT|TEXTAREA/i);
  });
  
  addHandler(element, 'mouseup', function(){
    if (preventSelection)
      removeSelection();
    preventSelection = false;
  });

  addHandler(element, 'keydown', killCtrlA);
  addHandler(element, 'keyup', killCtrlA);
}

function replacer(key, value) {
    if (typeof value === 'number' && !isFinite(value)) {
        return String(value);
    }
    return value;
}

