// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

function slideIn() {
	
	$("searchResults").style.width = "38%";
	$("searchResults").style.marginLeft = "280px";
	$("searchOptimizationLabel").setAttribute("onclick", "slideOut();");
	
	var left = $("searchOptimization").style.left;
	left = left.split("px");
	left = parseInt(left[0]);
	
	if (left != 0) {
		
		left += 11;
		$("searchOptimization").style.left = left+"px";
		window.setTimeout("slideIn()", 10);
	}
}

function slideOut() {
	
	$("searchOptimizationLabel").setAttribute("onclick", "slideIn();");
	
	var left = $("searchOptimization").style.left;
	left = left.split("px");
	left = parseInt(left[0]);
	
	if (left != -242) {
		
		left -= 11;
		$("searchOptimization").style.left = left+"px";
		window.setTimeout("slideOut()", 10);
	}
	else {
		
		$("searchResults").style.marginLeft = "38px";
		$("searchResults").style.width = "60%";
	}
}

function showPreview(url, id) {
	
	$("link_result_"+id).style.color = '#663399';
	$("search_preview_"+id).href = 'javascript:closePreview(\''+url+'\', \''+id+'\');';
	$("search_preview_"+id).innerHTML = 'Close';
	$("search_preview_frame_"+id).style.border = '1px solid #ccc';
	$("search_preview_frame_"+id).style.backgroundColor = '#eee';
	
	$("search_pr_"+id).innerHTML = '\
		<div id="preview_topbar">\
			<div id="topbar_close">\
			  <a title="close" class="topbar_close" href="javascript:closePreview(\''+url+'\', \''+id+'\');">X</a>\
			</div>\
			<div id="topbar_max">\
			  <a title="maximize" class="topbar_max" href="'+url+'" target="_blank">X</a>\
			</div>\
		</div>\
		<iframe id="preview_frame" src="'+url+'" />\
	';
}

function closePreview(url, id) {
	
	$("search_pr_"+id).innerHTML = '';
	$("search_preview_frame_"+id).style.border = '0px solid #fff';
	$("search_preview_frame_"+id).style.backgroundColor = '#fff';
	
	$("search_preview_"+id).href = 'javascript:showPreview(\''+url+'\', \''+id+'\');';
	$("search_preview_"+id).innerHTML = 'Preview';
}

function showRememberedSearchResult(url, search_query, description, header, meta_points, search_engines, elementId, authenticity_token) {
	element = $('link_result_' + elementId)
	
	element.setAttribute("class", "link_result_remembered");
	element.insert( { after: "<div id='rem_label_"+elementId+"' class='rem_label'>saved</div>" } );
	
	escaped_url = '/search/not_remember_search_result?search_query=' + escape(unescape(search_query)) + '&search_result%5Burl%5D=' + escape(unescape(url));
	
	link_not_remember = '\
	<a class="link_small" onclick="new Ajax.Updater(\'rememberedResultsContainer\', \'' + escaped_url + '\', {asynchronous:true, evalScripts:true, onComplete:function(request){showNotRememberedSearchResult(\'' + escape(unescape(url)) + '\', \'' + escape(unescape(search_query)) + '\', \'' + escape(unescape(description)) + '\', \'' + escape(unescape(header)) + '\', ' + meta_points + ', \'' + search_engines + '\', \'' + elementId + '\', \'' + authenticity_token + '\')}, parameters:\'authenticity_token=\' + encodeURIComponent(\'' + authenticity_token + '\')}); return false;" href="#">\
		Delete\
	</a>\
	';
	
	$('rem_label_small_' + elementId).innerHTML = link_not_remember + " ~ ";
}

function showNotRememberedSearchResult(url, search_query, description, header, meta_points, search_engines, elementId, authenticity_token) {
	// TODO: Es gibt noch einen Bug beim merken: Wenn in der rechten Remember-Leiste "delete" geklickt wird:
	
	link_element = $('link_result_' + elementId)
	label_element = $('rem_label_' + elementId)
	
	link_element.setAttribute("class", "link_result");
	label_element.remove();
	
	// TODO: der search_engines-Parameter muss richtig eingebaut werden:
	link_parameter = '&search_result%5Bdescription%5D=' + escape(unescape(description)) + '&search_result%5Bheader%5D=' + escape(unescape(header)) + '&search_result%5Bmeta_points%5D=' + escape(unescape(meta_points)) + '&search_result%5Burl%5D=' + escape(unescape(url));
	escaped_url = '/search/remember_search_result?search_query=' + escape(unescape(search_query)) + link_parameter;
	
	link_remember = '\
	<a class="link_small" onclick="new Ajax.Updater(\'rememberedResultsContainer\', \'' + escaped_url + '\', {asynchronous:true, evalScripts:true, onComplete:function(request){showRememberedSearchResult(\'' + escape(unescape(url)) + '\', \'' + escape(unescape(search_query)) + '\', \'' + escape(unescape(description)) + '\', \'' + escape(unescape(header)) + '\', ' + meta_points + ', \'' + search_engines + '\', \'' + elementId + '\', \'' + authenticity_token + '\')}, parameters:\'authenticity_token=\' + encodeURIComponent(\'' + authenticity_token + '\')}); return false;" href="#">\
		Save\
	</a>\
	';
	
	$('rem_label_small_' + elementId).innerHTML = link_remember + " ~ ";
}

// TODO: Diese Methode sollte dynamischer sein.
function showVideoPreview(url, id) {
	
	if (url.search(/youtube.+/) != -1)
		url = "http://www.youtube.com/v/" + url.split("?v=")[1];
	else if (url.search(/http.+/) == -1) // TODO: Hier handelt es sich um Google-Video. Evtl. Abfrage an andere Stelle.
		url = "http://video.google.com/googleplayer.swf?docid=" + url.split("?docid=")[1] + "&hl=de";
	else if (url.search(/clipfish.+/) != -1)
		url = "http://www.clipfish.de/videoplayer.swf?as=0&videoid="+url.split("?videoid=")[1]+"&r=1&c=0000ff";
	else if (url.search(/myvideo.+/) != -1)
		url = "http://www.myvideo.de/movie"+url.split("watch")[1];
	else {
		
		$("result_video_"+id).onclick = new Function('showVideoPreview(\''+url+'\', \''+id+'\'); return false;');
		$("result_video_"+id).innerHTML = 'No Preview';
		
		return false;
	}
	
	$("video_header_"+id).style.color = "#663399";
	$("result_video_"+id).onclick = new Function('closeVideoPreview(\''+url+'\', \''+id+'\'); return false;');
	$("result_video_"+id).innerHTML = 'Close';
		
	$("result_video_preview_"+id).innerHTML = '\
	<div id="video_preview_frame">\
		<object width="100%" height="100%">\
			<param name="movie" value="'+url+'"></param>\
			<param name="allowFullScreen" value="true"></param>\
			<param name="allowscriptaccess" value="always"></param>\
			<embed src="'+url+'" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="100%" height="100%"></embed>\
		</object>\
	</div>\
	';
}

function closeVideoPreview(url, id) {
	
	$("result_video_preview_"+id).innerHTML = '';
	$("result_video_"+id).onclick = new Function('showVideoPreview(\''+url+'\', \''+id+'\'); return false;');
	$("result_video_"+id).innerHTML = 'Preview';
}