/*
 * Created on 08.08.2011
 * author: tflueter <tflueter@brainpool.de>
 */

/** Logger **/

window.onload = function(){
	/*var myLogReader = new YAHOO.widget.LogReader("yui_logger", {newestOnTop:true, verboseOutput:false}); 
	myLogReader.setTitle("Debug Logger");*/
}



/** Ajax **/

function ajax(method, url, action, div, formId, animation){
	if(typeof animation == 'undefined') animation = 'false';
	if(action != '') action='?action='+action;
	
	/*
	var search1 = action.search(/home/);
	var search2 = action.search(/getVideoList/);
	
	if(search1 != -1 && search2 != -1)
	{
		
		document.getElementById('ajaxLoaderBox').style.display = 'block';
	    var anim = new YAHOO.util.Anim('ajaxLoaderBox',{opacity: {from: 0, to: 0.9 }},0.5); 
		anim.animate();

	}
	*/
	
	if(typeof div == 'undefined'){
		YAHOO.log('AJAX Target div nicht gesetzt!', 'error');
		return;
	}
	if(url == ''){
		YAHOO.log('AJAX URL nicht gesetzt!', 'error');
		return;
	}
	if(url == 'ajax.php') url = '/'+project+'/includes/php/ajax.php';
	if(typeof method == 'undefined' || method == '') method = 'GET';
	
	if(typeof formId !== 'undefined' && formId != '') {
		formObj = document.getElementById(formId);
		YAHOO.util.Connect.setForm(formObj);
	} 
	
	var dummyDiv = document.getElementById('ajaxDummyDiv');
	var targetDiv = document.getElementById(div);
	var animationHeight = 0;
	if(!targetDiv || typeof(targetDiv) == 'undefined' || targetDiv == '')
	{
		YAHOO.log(typeof(targetDiv) +'('+div+')'+'not set?','error');
	}
	var callback = {
		success: function(o) {
                        animation = true;
			if(targetDiv)
			{
				if(animation == true)
				{
					dummyDiv.innerHTML = o.responseText;
					var anim = collapseDiv(targetDiv);
					animCallBack = function()
					{
						animationHeight = dummyDiv.offsetHeight; 
                                                if (animationHeight == 0){
                                                    animationHeight = 200;
                                                }
                                                //animationHeight = animationHeight+15;
						expandDiv(targetDiv, animationHeight);
                                               
						targetDiv.innerHTML = dummyDiv.innerHTML;
						dummyDiv.innerHTML = '';
					}
					anim.onComplete.subscribe(animCallBack);
				}
				else
				{
					targetDiv.innerHTML = o.responseText;
				}
			}	
			else
				YAHOO.log('AJAX Request Targetdiv: '+div+' existiert nicht', 'error');
		},
		failure: function(o) {
			YAHOO.log('AJAX Request Failed: '+url, 'error'); 
		}
	}
	YAHOO.util.Connect.asyncRequest(method, url+action, callback);
	//return false;
}

function collapseDiv(div)
{
	var attributes = {
		//height: { to: 0 }
		opacity: {to: 0.2}
	};
	
	var myAnim = new YAHOO.util.Anim(div.id, attributes, 0.1);
	myAnim.animate();
	return myAnim;
}



function show_chapters(uid, chapters, paramParentDIV)
{
	var chapterContainer = 'chapter_' + uid + '_' + (chapters + 1);
	
	var cHeight = YAHOO.util.Dom.getStyle(chapterContainer, 'height');
	var cHeight = parseInt(cHeight,10);


	//var paramParentDIV = 'episodes_Elton vs. Simon_full_episode';
	var parentDivHeight = YAHOO.util.Dom.getStyle(paramParentDIV, 'height');
	var parentDivHeight = parseInt(parentDivHeight,10);		

	var chapterRowHeight = 25;
	var listHeight = chapters * chapterRowHeight + 25;	

	if(cHeight > 0)
	{
		
		parentDivHeight -= listHeight;
		YAHOO.util.Dom.setStyle(paramParentDIV, 'height', parentDivHeight + 'px'); 
		
		hide_chapters(uid, chapters);
	}
	else
	{
		parentDivHeight += listHeight;
		YAHOO.util.Dom.setStyle(paramParentDIV, 'height', parentDivHeight + 'px'); 
		expandDiv(chapterContainer, (chapterRowHeight * (chapters+1)));
		document.getElementById('arrow' + uid).src = '/myspass/media/images/buttons/pageination/pageination_arr_down_simple_active.gif'; 
	}
}



function hide_chapters(uid, chapters)
{
	var chapterContainer = 'chapter_' + uid + '_' + (chapters + 1);
	expandDiv(chapterContainer, 0);
	document.getElementById('arrow' + uid).src = '/myspass/media/images/buttons/pageination/pageination_arr_right_simple_active.gif';
}



function expandDiv(div, height)
{
	var attributes = 
	{
		height: {to: height},
		opacity: {to: 1}
	};
	
	var myAnim;
	if(div.id)
	{
		myAnim = new YAHOO.util.Anim(div.id, attributes, 0.1);
	}
	else
	{
		myAnim = new YAHOO.util.Anim(div, attributes, 0.1);
	}
	myAnim.animate();
	return myAnim;
}


function switchDiv(newDivId, oldDivId, height)
{
	var oldDiv = document.getElementById(oldDivId);
	var newDiv = document.getElementById(newDivId);
	
	if(typeof height == 'undefined')
	{	
		dummyDiv = domElem('ajaxDummyDiv');
		dummyDiv.innerHTML = newDiv.innerHTML;
		height = dummyDiv.offsetHeight;
		height = height +30;
		dummyDiv.innerHTML = '';
	}
	var anim = collapseDiv(oldDiv);
	animCallBack = function()
	{
		oldDiv.style.display = 'none';
		newDiv.style.display = 'block';
		expandDiv(newDiv, height);
	}
	anim.onComplete.subscribe(animCallBack);
}
function showVideoPanelLayer(divId, innerDivId, height)
{
	var div = document.getElementById(divId);
	var innerDiv = document.getElementById(innerDivId);
	
	var oldDiv = getActiveLayerLink();
	if(oldDiv != false)
	{
		hideAnim = hideVideoPanelLayer(divId, oldDiv);
		deactivateLayerButton(oldDiv);
		animCallBack = function()
		{
			showVideoPanelLayer(divId, innerDivId, height);
		}
		hideAnim.onComplete.subscribe(animCallBack);
		return;
	}
	var attributes = {
		height: {to: height},
		top: {to: 416-height}
	};
	div.style.display = 'block';
	innerDiv.style.display = 'block';
	activateLayerButton(innerDiv.id);
	var myAnim = new YAHOO.util.Anim(div.id, attributes, 1, YAHOO.util.Easing.easeBoth);
	myAnim.animate();
	return myAnim;
}

function activateLayerButton(id)
{
	var buttonId = 'videoPanelLayerLink_' + id.substr(5);
	button = document.getElementById(buttonId);
	button.className = 'active';
}

function deactivateLayerButton(id)
{
	var buttonId = 'videoPanelLayerLink_' + id.substr(5);
	button = document.getElementById(buttonId);
	button.className = '';
}
function hideVideoPanelLayer(divId, innerDivId)
{
	var div = document.getElementById(divId);
	var innerDiv = document.getElementById(innerDivId);
	var attributes = {
		height: {to: 0},
		top: {to: 416}
	};
	var myAnim = new YAHOO.util.Anim(div.id, attributes, 1, YAHOO.util.Easing.easeBoth);
	animCallBack = function()
	{
		deactivateLayerButton(innerDiv.id);
		innerDiv.style.display = 'none';
	}
	myAnim.onComplete.subscribe(animCallBack);
	myAnim.animate();
	return myAnim;
}


function switchTabs(aElem)
{
	ul = aElem.parentNode.parentNode;
	for(i=0;i<=(ul.childNodes.length-1);i++)
	{
		/*if (ul.childNodes[i].className == 'active') 
		{
			
		}*/
		if (ul.childNodes[i].className != 'right') 
		{
			ul.childNodes[i].className = '';
		}
	}
	aElem.parentNode.className = 'active';
}
function getParentId(childId)
{
	var pId = document.getElementById(childId).parentNode.parentNode.id;
	return pId;
}

//Slider

var sliderWidth 	= 610;
var slideDuration 	= 1.0;
var slideEffect 	= YAHOO.util.Easing.easeOut;
var position 		= 0;

//var numberOfElements    = document.getElementById("sliderContentInner").childNodes.length;

function sliderTarget(slideTarget, position)
{
	var attributes = {
		scroll: {to: [position, 0]}
	};
	var slideAnimation = new YAHOO.util.Scroll(slideTarget,attributes,slideDuration,slideEffect);
	slideAnimation.animate();
}

function slideLeft(slideTarget)
{
    slideTarget = document.getElementById(slideTarget);
    position = position - sliderWidth;
    if(position <= 0)
    {
	position = 0;
       hideElem('sliderArrowLeftActive');
       showElem('sliderArrowLeftInactive');
    }

    var numberOfElements = document.getElementById("sliderContentInner").childNodes.length;
    var maximum = (Math.ceil((numberOfElements)/4) -1) * sliderWidth;
    if(position < maximum)
    {
       hideElem('sliderArrowRightInactive');
       showElem('sliderArrowRightActive');
    }
    sliderTarget(slideTarget, position);
}

function slideRight(slideTarget)
{
    slideTarget = document.getElementById(slideTarget);
    var numberOfElements = document.getElementById("sliderContentInner").childNodes.length;
    var maximum = (Math.ceil((numberOfElements)/4) -1) * sliderWidth;
    
    if ((sliderWidth + position) >= maximum)
    {
       position = maximum;
       hideElem('sliderArrowRightActive');
       showElem('sliderArrowRightInactive');
    }
    else
    {
        position = position + sliderWidth;
    }
    
    if(position > 0 )
    {
       hideElem('sliderArrowLeftInactive');
       showElem('sliderArrowLeftActive');
    }
    
    sliderTarget(slideTarget, position);
    
}

function showElem(id)
{
	document.getElementById(id).style.display = 'block';
}

function hideElem(id)
{
	document.getElementById(id).style.display = 'none';
}

//Ende Slider

function refreshExtendPageination(targetId, direction, maximum){
	var currentPos = getSliderPosition(targetId);
	var currentPage = (currentPos + scrollPixel) / scrollPixel;
	if (direction == 'left') {
		if(currentPage > 1)
		currentPage = currentPage - 1;
	}
	else {
		if(currentPage < maximum)
		currentPage = currentPage + 1;
	}
	sliderSetTextfieldValue(targetId, currentPage);
}

function sliderSetPageByTextfield(targetId, e){
	var code = (!e)?event.keyCode : e.which;
	
	if(code == 13 && document.getElementById(targetId + '_inputfield')){
		pageNumber = document.getElementById(targetId + '_inputfield').value;
		maxPage = sliderGetTotalPages(targetId);
		if(pageNumber >= maxPage){
			pageNumber = maxPage;
		}else if(pageNumber <= 0){
			pageNumber = 1;
		}
		sliderSetTextfieldValue(targetId, pageNumber);
		pos = (pageNumber - 1) * scrollPixel;
		sliderMove2Page(targetId, pos);
	}
}

function sliderSetTextfieldValue(targetId, pageNumber){
	if((document.getElementById(targetId + '_inputfield')))
	document.getElementById(targetId + '_inputfield').value = pageNumber;
}

/**
 * tooltip
 */
YAHOO.namespace("tooltip.container");

var tooltipDuration = 0.3;
var tooltipWidth = "401px";
var tooltipHeight = "174px";

function animateTooltip(targetId, status) {
	YAHOO.tooltip.container.tooltip = 
	new YAHOO.widget.Overlay(targetId, 
	{ 
		//xy:[350,100],
		visible : status,
		width : tooltipWidth,
		height: tooltipHeight,
		zIndex : 9999,
		effect:{
			effect : YAHOO.widget.ContainerEffect.FADE,
			duration : tooltipDuration
		} 
	} );
	YAHOO.tooltip.container.tooltip.render("tooltip");
}


function getCookieValue(cookieName)
{
	var cookieValue = YAHOO.util.Cookie.get(cookieName);
	return cookieValue;
}







function suggestSearch(input, div)
{
	YAHOO.example.BasicRemote = function() {

	    // Use an XHRDataSource
	    var oDS = new YAHOO.util.XHRDataSource("/"+project+"/includes/php/ajax.php?");
	    // Set the responseType
	    oDS.responseType = YAHOO.util.XHRDataSource.TYPE_TEXT;
	    // Define the schema of the delimited results
	    oDS.responseSchema = {
	        recordDelim: "\n",
	        fieldDelim: "\t"
	    };
	    // Enable caching
	    oDS.maxCacheEntries = 5;
		
		// Instantiate AutoCompletes 
	    var oConfigs = { 
	        useShadow: false, 
	        queryDelay: 0, 
	        minQueryLength: 1, 
	        animVert: true,
	        animHoriz: false,
	        animSpeed: 0.2,
	        autoHighlight: false,
	        typeAhead: true,
	        allowBrowserAutocomplete: true,
	        maxResultsDisplayed: 10,
	        
	        prehighlightClassName: "highlight_suggest", 
	        highlightClass: "highlight_suggest"
	        
	    } 
	    // Instantiate the AutoComplete
	    var oAC = new YAHOO.widget.AutoComplete(input, div, oDS, oConfigs);
		oAC.generateRequest = function(sQuery) { 
	    	return "ajax=true&action=getSearchwords&results=100&query=" + sQuery ; 
	    };
		oAC.containerCollapseEvent.subscribe(function(type, args){
	   		document.getElementById(div).style.display = 'none';
	   		return true;
	   	});
	   	oAC.doBeforeExpandContainer = function(oTextbox, oContainer, sQuery, aResults){
	   		document.getElementById(div).style.display = 'block';
	   		return true;
	   	};
	    
		oClickor = function(sType, aArgs){
			if(div == 'suggestSmall')
			{
				document.getElementById('searchSmall').submit();
			}
		}; 
		oAC.itemSelectEvent.subscribe(oClickor);
	    return {
	        oDS: oDS,
	        oAC: oAC
	    };
	}();
}


function tabbingBox(elemClass,activeElem,tabClass,activeTab)
{
  
    /* Funzt nicht im IE
    var childs  = document.getElementsByClassName( elemClass );
    var childs2 = document.getElementsByClassName(tabClass);
    */
    var childs  = YAHOO.util.Dom.getElementsByClassName(elemClass, '');
    var childs2 = YAHOO.util.Dom.getElementsByClassName(tabClass, '');
    
    
    activeElem  = document.getElementById(activeElem);
    activeTab   = document.getElementById(activeTab);

    for(var x = 0; x < childs2.length; x++)
    {
        childs2[x].className = 'tab';
    }

    for(var x = 0; x < childs.length; x++)
    {
        childs[x].style.display = 'none';
    }
    
    activeElem.style.display = 'block';
    activeTab.className = 'tab active';
    
    //Kommentare refreschen
    //refreshComments();
   
}

function get_current_user()
{
    var userId = YAHOO.util.Cookie.get("bacsvb__userid");
    return userId;
}



/*
function refreshComments()
{
    var temp = 'http://cms06.endo.e-tv.de/hatenight/messe/Folge-11-Requiem-fuer-eine-Laune--/2704/';
    var urlspitted = temp.split("/");
    var videoID = urlspitted[(urlspitted.length)-2];

    //var 'tabbox_'+ videoID+'_comments';
    //Tobis erste version
    //var commentContainer = document.getElementById('mySpassCContainer_' + videoID);
    var commentContainer = document.getElementById('tabbox_' + videoID + '_comments');
    if(commentContainer)
    {
        ajax('', 'ajax.php', 'getComments&id='+videoID+'&type=video&ajax=true&commentsInit=MySpass&pageNumber=1', 'mySpassCContainer_' + videoID, '', true);
    }
}
*/

function bacs_modal_show(headline, content)
{
        duration = 0.4;
	document.getElementById('modal_headline').innerHTML = headline;
	document.getElementById('modal_content_text').innerHTML = content;

	var overlay = document.getElementById('modal_overlay');
	overlay.style.opacity = 0;
	overlay.style.display = 'block';
	var overlay_anim_data = {opacity: {to: 0.5}};
	var overlay_anim = new YAHOO.util.Anim("modal_overlay", overlay_anim_data, duration, YAHOO.util.Easing.easeIn);
	overlay_anim.onComplete.subscribe(function () {
		overlay.style.opacity = 0.5;
	});
	overlay_anim.animate();
        
        
        
        
	var wrapper = document.getElementById('modalwrapper');
	wrapper.style.opacity = 0;
	wrapper.style.display = 'block';
	var wrapper_anim_data = {opacity: {to: 1}};
	var wrapper_anim = new YAHOO.util.Anim('modalwrapper', wrapper_anim_data, duration, YAHOO.util.Easing.easeIn);
	wrapper_anim.onComplete.subscribe(function () {
		wrapper.style.opacity = 1;
	});
	wrapper_anim.animate();
}

function bacs_modal_hide()
{
	var wrapper = document.getElementById('modalwrapper');
	var overlay = document.getElementById('modal_overlay');

	var overlay_anim_data = {opacity: {to: 0}};
	var overlay_anim = new YAHOO.util.Anim('modal_overlay', overlay_anim_data, 0.4, YAHOO.util.Easing.easeIn);
	overlay_anim.onComplete.subscribe(function() {
		overlay.style.display = 'none';
	});
	
	var wrapper_anim_data = {opacity: {to: 0}};
	var wrapper_anim = new YAHOO.util.Anim('modalwrapper', wrapper_anim_data, 0.4, YAHOO.util.Easing.easeIn);
	wrapper_anim.onComplete.subscribe(function() {
		wrapper.style.display = 'none';
	});
	
	wrapper_anim.animate();
	overlay_anim.animate();
}



function bacs_modal_show_login()
{
        duration = 0.4;
	var overlay = document.getElementById('modal_overlay_login');
	overlay.style.opacity = 0;
	overlay.style.display = 'block';
	var overlay_anim_data = {opacity: {to: 0.5}};
	var overlay_anim = new YAHOO.util.Anim("modal_overlay_login", overlay_anim_data, duration, YAHOO.util.Easing.easeIn);
	overlay_anim.onComplete.subscribe(function () {
		overlay.style.opacity = 0.5;
	});
	overlay_anim.animate();


	var wrapper = document.getElementById('modalwrapper_login');
	wrapper.style.opacity = 0;
	wrapper.style.display = 'block';
	var wrapper_anim_data = {opacity: {to: 1}};
	var wrapper_anim = new YAHOO.util.Anim('modalwrapper_login', wrapper_anim_data, duration, YAHOO.util.Easing.easeIn);
	wrapper_anim.onComplete.subscribe(function () {
		wrapper.style.opacity = 1;
	});
	wrapper_anim.animate();
}

function bacs_modal_hide_login()
{
	var wrapper = document.getElementById('modalwrapper_login');
	var overlay = document.getElementById('modal_overlay_login');
	
	var overlay_anim_data = {opacity: {to: 0}};
	var overlay_anim = new YAHOO.util.Anim('modal_overlay_login', overlay_anim_data, 0.4, YAHOO.util.Easing.easeIn);
	overlay_anim.onComplete.subscribe(function() {
		overlay.style.display = 'none';
	});
	
	var wrapper_anim_data = {opacity: {to: 0}};
	var wrapper_anim = new YAHOO.util.Anim('modalwrapper_login', wrapper_anim_data, 0.4, YAHOO.util.Easing.easeIn);
	wrapper_anim.onComplete.subscribe(function() {
		wrapper.style.display = 'none';
	});
	
	wrapper_anim.animate();
	overlay_anim.animate();
}
