/****************** common functions **************/
function popupPoster(postername,movieTitle,width,height){

  var relation = width / height;
  
  if(width > 600){
    width = 600;
  }
  
  if(navigator.userAgent.indexOf("Firefox") > -1){
      height = (width/relation)+40; 
  }else if(navigator.userAgent.indexOf("Opera") > -1){
      height = (width/relation)+45;
      width += 10; 
  }  
            
  PosterWindow = window.open(postername, movieTitle, "width=140,height=206,resizable=yes,status=no,left=100,top=100");
  
  PosterWindow.resizeTo(width+28,height+35);
  PosterWindow.focus();
}

function popupAddThisFeed(){
	var addThisWindow = window.open("http://www.addthis.com/feed.php?pub=cinefreaks&h1=http%3A%2F%2Fcinefreaks.com%2FgetRSS%2F&t1=", "Cinefreaks Feed", "width=650,height=600,resizable=yes,status=no,left=100,top=100");
  	addThisWindow.focus();
}

function showNotice(notice,area){
	obj(area).innerHTML = notice;
	QQ.Element.toggle(area,true);
}

function addView(id, resource) {
	QQ.Ajax.request(AJAX_REQUEST_BASE+'statistics/add'+resource+'View/id/'+id);
}

/****************** news page ******************/
function submitQuizAnswer(category){
	var inputs = objs("class","answer");
  var answer;
	for (var i = 0; i < inputs.length; ++i){
		if (inputs[i].checked){answer = inputs[i].value; break;}
	}	
	
	QQ.Ajax.request(AJAX_REQUEST_BASE+"news/answerDailyQuestion",{method:"post",data:"answer="+answer,responseFunction:dailyQuestionCallback});
}
function dailyQuestionCallback(req){
	obj("dailyQuizQuestion").innerHTML = req.responseText;
}


/****************** preview page ******************/
/* filter previews */
function filterPreviews(){

	//// get filter options
	// month
	var month = $('#month').find(":selected").val();

	// genre
	var genre = $('#genre').find(":selected").val();
	
	// country
	var country = $('#country').find(":selected").val();
	
	window.location = BASE+"filterPreviews/month/"+month+"/genre/"+genre+"/country/"+country;

  	//QQ.Ajax.request(AJAX_REQUEST_BASE+"movies/filterPreviews",{method:"post",data:"month="+month+"&genre="+genre+"&impression="+impression,responseFunction:filterPreviewsCallback})
}

function filterPreviewsByWeek(){

	//// get filter options
	// page number
	var page = $('#pageNumber').find(":selected").val();

	window.location = BASE+"previews/page/"+page;
}

/**************** program page ************************/
function jumpToCinema() {
	var cLocation = window.location.href;
	var parts = cLocation.split("#");
	
	window.location = parts[0] + "#" +  QQ.Form.getSelectedOption("cinema").value;
}

function jumpToCity() {	
	window.location = BASE + "kinoprogramm/kinos/" + QQ.String.urlEncode(obj("city").value);
}

function jumpToCityMap() {	
	window.location = BASE + "kinoprogramm/map/" + obj("city").value;
}

function jumpToDate(cinema) {
	if (cinema) {
		window.location = BASE + "kinoprogramm/kinos/" + obj("city").value + "/" + obj("date").value + "#" +  QQ.Form.getSelectedOption("cinema").value;
	} else {
		window.location = BASE + "kinoprogramm/kinos/" + obj("city").value + "/" + obj("date").value;
	}	
}

function showCinemas(idString) {
	if (map === undefined) return; 
	map.clearOverlays();
	var ids = idString.split(",");
	for (var i = 0; i < ids.length; i++) {
		map.addOverlay(cinemaPoints[ids[i]]);
	}
}

/**************** review page ************************/



// sorting
function sortReviews(sorting){
	
	var letter = 'all';
	try {
		letter = $('#letter').find(":selected").val();
	}catch(e){}
	if (letter == undefined) {
		letter = 'all';
	}
	var genre = 'all';
	try {
		genre = $('#genre').find(":selected").val();
	}catch(e){}
	var studio = 'all';
	try {
		studio = $('#studio').find(":selected").val();
	}catch(e){}
	var country = 'all';
	try {
		country = $('#country').find(":selected").val();
	}catch(e){}
	var rating = 'all';
	try {
		rating = $('#rating').find(":selected").val();
	}catch(e){}
	var playing = 'all';
	try {
		playing = $('#playing').find(":selected").val();
	}catch(e){}

	//if (letter )
		
	window.location = BASE+"movies/sortBy"+sorting+"/letter/"+letter+"/genre/"+genre+"/studio/"+studio+"/country/"+country+"/rating/"+rating+"/playing/"+playing;	
}

// filtering
function filterReviews(){	
	var checkedRadioButton = QQ.Form.getSelectedRadioButton("sorting");	
	sortReviews(checkedRadioButton.value);
}

/**************** web tv page *******************/
var lights = true;
function switchLights() {	
	if (lights) {
		QQ.Element.toggle('shadow');
		QQ.Animator.fade('shadow',{startAlpha:0,endAlpha:80});
		obj('bulb').className = 's bulbOff';
		obj('bulbText').innerHTML = 'Licht anschalten';
		obj('bulbText').style.color = '#999';
	} else {
		var callback = function () {QQ.Element.toggle('shadow');};
		QQ.Animator.fade('shadow',{startAlpha:80,endAlpha:0,callback:callback});
		obj('bulb').className = 's bulbOn';
		obj('bulbText').innerHTML = 'Licht ausschalten';
		obj('bulbText').style.color = '#fff';		
	}
	
	lights = !lights;	
}

function loadVideo() {
	var locationArray = window.location.href.split('#');
	var videoIDArray = locationArray[1].split('-');
	window.document.webTVPlayerNavigation.loadVideo(videoIDArray[0]);
}

function loadPlayer(type, video, title, videoID) {
	//alert(type+video+title+videoID);
	
	var so = null;
	
	if (type == "qq") {
		so = new SWFObject(BASE+"application/frontend/swf/mediaPlayer.swf", "previewPictureShow", "660", "404", "9", "#000");
 		so.addParam("scale","noscale");						
		so.addParam("quality", "best");
		so.addVariable("closeButton", "0");
		so.addVariable("playBarColor", "457DDF");
		so.addVariable("loadBarColor", "205BB5");
		so.addVariable("title", title);
		so.addVariable("forceToSize", true);		
		so.addVariable("media", QQ.String.urlEncode(video));
		so.addVariable("start", "1");
	} else if (type == "yt") {
		so = new SWFObject("http://www.youtube.com/v/"+video+"&hl=en&fs=1&rel=0&color1=0x3a3a3a&color2=0x999999", "previewPictureShow", "504", "404", "9", "#000");
	} else if (type == "google") {
		so = new SWFObject("http://video.google.com/googleplayer.swf?docid="+video+"&hl=en&fs=true", "previewPictureShow", "660", "404", "9", "#000");
	}

    so.addParam("quality", "best");
    so.addParam("wmode", "transparent");
    so.addParam("allowFullScreen","true");
    so.addParam("salign","lt");

    so.write("webTVPlayer_swf");
    
    var currentLocation = window.location.href;
    var locationStringArray = currentLocation.split("#");
    window.location = locationStringArray[0] + "#" + videoID + "-" + title;
}

/**************** movie page *******************/
function toggleYouTubeBox(){
    QQ.Element.toggle('moreVideosContainer');
	if (obj('videoToggleText').innerHTML == 'mehr'){obj('videoToggleText').innerHTML = "weniger"; obj("youTubeArrow").className = "s arrowUp";}
	else {obj('videoToggleText').innerHTML = 'mehr'; obj('youTubeArrow').className = "s arrowDown"; window.location = "#youTubeVideos";}
}

function toggleImageBox(){
    QQ.Element.toggle('moreImagesContainer');
	if (obj("imagesToggleText").innerHTML == "mehr"){obj("imagesToggleText").innerHTML = "weniger"; obj("moreImagesArrow").className = "s arrowUp";}
	else {obj("imagesToggleText").innerHTML = "mehr"; obj("moreImagesArrow").className = "s arrowDown"; window.location = "#gallery";}
}


/**************** cast n crew page *******************/
/**
 * sort by name, movie count, average rating or average length
 * @param {Object} sorting
 */
function sortCastnCrew(sorting){
	var job = QQ.Form.getSelectedOption("job").value;
	var letter = QQ.Form.getSelectedOption("letter").value;
	
	window.location = BASE+"cast/sortBy"+sorting+"/job/"+job+"/letter/"+letter;
}

// filtering
function filterCastnCrew() {	
	// hide notice
	//toggleOn('notice',false);
	
	var checkedRadioButton = QQ.Form.getSelectedRadioButton("sorting");	
	sortCastnCrew(checkedRadioButton.value);	
}

// search connection between characters
function searchConnection(soureType){
	
	// character id to start from
	var sourceID = obj("sourceID").value;
	
	// character to look for
	var destination = obj("destination").value;
	obj("connectionResults").innerHTML = "Suche Verbindung...";
	QQ.Element.toggle('searchConnectionOK',false);
	QQ.Ajax.request(AJAX_REQUEST_BASE+"search/searchConnection/",{method:"post",data:"sourceID="+sourceID+"&destination="+destination+"&sourceType="+soureType,responseFunction:searchConnectionCallback});
}

function searchConnectionCallback(req){
	obj("connectionResults").innerHTML = req.responseText;
	QQ.Element.toggle('searchConnectionOK',true);
}

function download(file) {
	//ajaxRequest(AJAX_REQUEST_BASE+"downloads/countDownload","get","/file/"+file);
	QQ.Ajax.request(AJAX_REQUEST_BASE+"downloads/countDownload",{method:"post",data:"file="+file});
	file = file.replace(/__/, ".");
  	var win = window.open(BASE + "downloads/files/" + file, "download counter", "width=1,height=1,left=0,top=0,scrollbars=no,resizable=no");
}      	

// at user registration
function changeFlag() {
  var image;
	
	var country = QQ.Form.getSelectedOption("countryChoose").text;
	
  if (country == "Deutschland"){
    image = "germanyFlag";
  }else if (country == "�sterreich"){
    image = "austriaFlag";
  }else if (country == "Schweiz"){
    image = "switzerlandFlag";
  }else if (country == "Italien"){
    image = "italyFlag";
  }else if (country == "Frankreich"){
    image = "franceFlag";
  }
  obj("flagImage").src = "images/design/" + image + ".png"         

}

function errorMsg(){
    alert("Das Plugin kann nur f�r Mozilla oder Netscape 6 installiert werden.");
}

function addEngine(name,ext,cat,type){
	if (navigator.userAgent.indexOf('Firefox/2') != -1) {
		  window.external.AddSearchProvider("http://www.cinefreaks.com/xml/"+name+".xml");
	}else{
		  if ((typeof window.sidebar == "object") && (typeof window.sidebar.addSearchEngine == "function")) { 
	        window.sidebar.addSearchEngine("http://www.cinefreaks.com/downloads/"+name+".src",
                                         "http://www.cinefreaks.com/pictures/design/"+name+"."+ext, name, cat);
	    }else{
	        alert("Das Plugin kann nur f�r Mozilla oder Netscape 6 installiert werden.");
	    }	
	}	
}

var lastSearch = "";
function cfSearch(e){	
	if ((e === undefined || e.keyCode == 13) && lastSearch != obj("searchBox").value) {
		var searchString = obj("searchBox").value;	
		lastSearch = searchString;
		if (searchString != "") window.location = BASE + "search/" + QQ.String.urlEncode(searchString) + "/";
	}
}


/* fx */
function fxSetUserRating(rating){
	obj("fxUserRating").value = rating;
}

/****************************** register page **************************/
function emailError(){
	obj('emailInput').style.color = 'red';
}

function emailSuccess(){
	obj('emailInput').style.color = 'black';
}

function validateEmail(e){
	if (e.keyCode != 13) {
		QQ.Validator.validateInput({regExp:QQ.Validator.emailRegExp,value: obj("emailInput").value,successFunction:emailSuccess,errorFunction:emailError});
	}
}

