

//v1.7
// Flash Player Version Detection
// Detect Client Browser type
// Copyright 2005-2007 Adobe Systems Incorporated.  All rights reserved.
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

function ControlVersion()
{
	var version;
	var axo;
	var e;

	// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry

	try {
		// version will be set for 7.X or greater players
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) {
	}

	if (!version)
	{
		try {
			// version will be set for 6.X players only
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
			
			// installed player is some revision of 6.0
			// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
			// so we have to be careful. 
			
			// default to the first public version
			version = "WIN 6,0,21,0";

			// throws if AllowScripAccess does not exist (introduced in 6.0r47)		
			axo.AllowScriptAccess = "always";

			// safe to call for 6.0r47 or greater
			version = axo.GetVariable("$version");

		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 4.X or 5.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 3.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 2.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}
	
	return version;
}

// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	var flashVer = -1;
	
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");			
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			var versionRevision = descArray[3];
			if (versionRevision == "") {
				versionRevision = descArray[4];
			}
			if (versionRevision[0] == "d") {
				versionRevision = versionRevision.substring(1);
			} else if (versionRevision[0] == "r") {
				versionRevision = versionRevision.substring(1);
				if (versionRevision.indexOf("d") > 0) {
					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
				}
			}
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}	
	return flashVer;
}

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
	versionStr = GetSwfVer();
	if (versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			// Given "WIN 2,0,0,11"
			tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString        = tempArray[1];			// "2,0,0,11"
			versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
		} else {
			versionArray      = versionStr.split(".");
		}
		var versionMajor      = versionArray[0];
		var versionMinor      = versionArray[1];
		var versionRevision   = versionArray[2];

        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
		if (versionMajor > parseFloat(reqMajorVer)) {
			return true;
		} else if (versionMajor == parseFloat(reqMajorVer)) {
			if (versionMinor > parseFloat(reqMinorVer))
				return true;
			else if (versionMinor == parseFloat(reqMinorVer)) {
				if (versionRevision >= parseFloat(reqRevision))
					return true;
			}
		}
		return false;
	}
}

function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '';
  if (isIE && isWin && !isOpera)
  {
    str += '<object ';
    for (var i in objAttrs)
    {
      str += i + '="' + objAttrs[i] + '" ';
    }
    str += '>';
    for (var i in params)
    {
      str += '<param name="' + i + '" value="' + params[i] + '" /> ';
    }
    str += '</object>';
  }
  else
  {
    str += '<embed ';
    for (var i in embedAttrs)
    {
      str += i + '="' + embedAttrs[i] + '" ';
    }
    str += '> </embed>';
  }

  document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
      case "id":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}

// scroller.js
// Copyright (c) 2008-2009 Uploaded.TV (http://www.uploaded.tv)
// Author: Dhiman Biswas
//////////////////////////////////////////////////////////////////////////////////


// for index page 
/*function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		//date.setTime(date.getTime()+(300*1000));  // for testing  5 min
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name)
{
	createCookie(name,"",-1);
}*/

/*function closeMe()
{
	createCookie('index_top_banner','yes',1);
	$("cls").style.display="none";
}*/
function closeMe()
{
	new Ajax.Request('/trans_banner.php', {parameters: {bannerflag:'off'},
						 onComplete: function(transport)
						 {
							 
							 result = trim(transport.responseText);
							 if(result == '100')
							 {
								 $("cls").style.display="none";
							 }
							 else
							 {
								alert(mylang.L_UPTV_ENABLE_COOKIE_OF_BROWSER); 
							 }
							 
						 }
						 });
	/*createCookie('index_top_banner','yes',1);
	$("cls").style.display="none";*/
}
/*function onoroff()
{
	var re=readCookie('index_top_banner');
	if(re=='' || re==null)
	{
		$("cls").style.display="block";
	}
	else
	{
		$("cls").style.display="none";
	}
}*/
/////////////////////////////////////////////////////////////////////////////////////////////////////
// Constant Variables for scroller
var isAnimating = false;
var limit = 3;
var moveX = 402;
var moveY = 25;
var step = 0;
var amount = 450;

var mvcurPos = 0;
var fncurPos = 0;
var bwcurPos = 0;
var mvCurrentTab = "mvVideoTab";
var fnCurrentTab = "fnVideoTab";
var bwCurrentTab = "bwYoutube";

/////////////////////////
var page = [1,1,1,1,1,1,1,1,1,1,1,1,1,1]; // For 14 pages of scrollers
//var loaded = [2,2,2,2,2,2,2,2,2,2,2,2,2,2];
var from = [3,3,3,3,3,3,3,3,3,3,3,3,3,3];

// For Sponserd Videos
var moveSV = 588;
var limitSV = 6;

var pageSV = 1;
var loadedSV = 2;
var fromSV = 3;

function showNext(scroller, url)
{
	//var media = scroller.substr(2);
	//alert(media);
	var i;
	i = getscrollerID(scroller);	
	if(isAnimating == false)
	{
		if(loaded[i] > page[i])
		{
			//alert("ok");
			isAnimating = true;
			new Effect.Move(scroller,{x:-moveX, afterFinish: function(){ isAnimating = false; page[i]++ ;}});
		}
		else
		{			
			//var url = "trans_index_most_viewed_video.php";
			
			new Ajax.Request(url, {parameters: {page:from[i], limit:limit}, onComplete: function(transport)
																								 {
																									 var JSONstr = transport.responseText;
																									 //alert(JSONstr);
																									 if(trim(JSONstr) == 'N')
																									 {
																										 //alert("no data");
																										 return;
																									 }
																									 else
																									 { 
																										 var data = JSONstr.evalJSON();
																										 //alert(video[1].title);
																										 var j;
																										 for( var j in data )
																										 {
																											 var thumb = document.createElement('div');
																											 
																											 thumb.className = 'thumb';
																											 if(i == 0 || i == 4)
																											 {
																												 var linkTitle = data[j].mediatitle.replace(/ /g,'_');
																												 thumb.innerHTML = '<div class="img"><a href="/_video/'+data[j].loginname+'/'+data[j].basedirguid+'/show-video_quality-'+mediaDefaultQuality+'/'+linkTitle+'"><img src="'+mediaServerURL+'_video/'+data[j].loginname+'/'+data[j].basedirguid+'/show-thumb_size-b/" title="'+data[j].mediatitle+'" alt="'+data[j].mediatitle+'" border="0" /></a></div><div class="txt"><h3><a href="/_video/'+data[j].loginname+'/'+data[j].basedirguid+'/show-video_quality-'+mediaDefaultQuality+'/'+linkTitle+'">'+data[j].mediatitle+'</a></h3><a href="/'+data[j].loginname+'" class="by">'+data[j].loginname+'</a></div>';
																											 }
																											 else if(i == 1 || i == 5)
																											 {
																												 var linkTitle = data[j].mediatitle.replace(/ /g,'_');
																												 thumb.innerHTML = '<div class="img"><a href="/_audio/'+data[j].loginname+'/'+data[j].basedirguid+'/show-audio/'+linkTitle+'"><img src="'+mediaServerURL+'_audio/'+data[j].loginname+'/'+data[j].basedirguid+'/show-thumb_size-b/" title="'+data[j].mediatitle+'" alt="'+data[j].mediatitle+'" border="0" /></a></div><div class="txt"><h3><a href="/_audio/'+data[j].loginname+'/'+data[j].basedirguid+'/show-audio/'+linkTitle+'">'+data[j].mediatitle+'</a></h3><a href="/'+data[j].loginname+'" class="by">'+data[j].loginname+'</a></div>';
																											 }
																											 else if(i == 2 || i == 6)
																											 {
																												 var linkTitle = data[j].mediatitle.replace(/ /g,'_');
																												 thumb.innerHTML = '<div class="img"><a href="/_image/'+data[j].loginname+'/'+data[j].basedirguid+'/show-image/'+linkTitle+'"><img src="'+mediaServerURL+'_image/'+data[j].loginname+'/'+data[j].basedirguid+'/show-thumb_size-b/" title="'+data[j].mediatitle+'" alt="'+data[j].mediatitle+'" border="0" /></a></div><div class="txt"><h3><a href="/_image/'+data[j].loginname+'/'+data[j].basedirguid+'/show-image/'+linkTitle+'">'+data[j].mediatitle+'</a></h3><a href="/'+data[j].loginname+'" class="by">'+data[j].loginname+'</a></div>';
																											 }
																											 else if(i == 3 || i == 7)
																											 {
																												thumb.innerHTML = '<div class="userimg"><a href="/'+data[j].loginname+'"><img src="'+mediaServerURL+'_uploaderimage/'+data[j].loginname+'/'+data[j].channelicon+'/show-thumb_size-b/" alt="'+data[j].loginname+'" title="'+data[j].loginname+'" border="0" /></a></div><div class="txt"><h3><a href="/'+data[j].loginname+'">'+data[j].loginname+'</a></h3></div>';
																											 }
																											 else if(i > 7)
																											 {
																												 thumb.innerHTML = '<div class="userimg"> <a href="'+data[j].url+'" > <img src="'+data[j].thumb+'" title="'+data[j].title+'" alt="'+data[j].title+'" border="0" /> </a> </div><div class="txt"><h3> <a href="'+data[j].url+'" >'+data[j].title+'</a></h3></div>';
																											 }
																											 $(scroller).appendChild(thumb);
																										 }
																										 loaded[i]++;
																										 isAnimating = true;
																										 //alert("ok");
																										 new Effect.Move(scroller,{x:-moveX, afterFinish: function(){ isAnimating = false; page[i]++; from[i]++; }});
																										 
																									 }
																								 }
							 });
		}
	}
}

function getscrollerID(scroller)
{
	if(scroller == 'mvVideo')
	i = 0;
	else if(scroller == 'mvMusic')
	i = 1;
	else if(scroller == 'mvPhoto')
	i = 2;
	else if(scroller == 'mvUploader')
	i = 3;
	else if(scroller == 'fnVideo')
	i = 4;
	else if(scroller == 'fnMusic')
	i = 5;
	else if(scroller == 'fnPhoto')
	i = 6;
	else if(scroller == 'fnUploader')
	i = 7;
	else if(scroller == 'youtube')
	i = 8;
	else if(scroller == 'google')
	i = 9;
	else if(scroller == 'break')
	i = 10;
	else if(scroller == 'veoh')
	i = 11;
	else if(scroller == 'dailymotion')
	i = 12;
	else if(scroller == 'revver')
	i = 13;
	else
	{
		alert("Invalid media");
		return false;
	}
	return i;
}

function showPrev(scroller)
{
	var media = scroller.substr(2);
	var i;
	i = getscrollerID(scroller);
	if(page[i] > 1)
	{
		if(isAnimating == false)
		{
			isAnimating = true;
			new Effect.Move(scroller,{x:moveX, afterFinish: function(){ isAnimating = false; page[i]-- ;}});
		}
	}
}


function showDn(obj, totSteps)
{
	if(step < totSteps && isAnimating == false)
	{
		isAnimating=true;
		new Effect.Move(obj,{y:-moveY, duration:1, afterFinish: function(){ isAnimating = false; }});
		step++;
	}
}
	
function showUp(obj)
{
	if(step > 0 && isAnimating == false)
	{
		isAnimating=true;
		new Effect.Move(obj,{y:moveY, duration:1, afterFinish: function(){ isAnimating = false; }});
		step--;
	}
}

function showPane(tab, obj, pos)
{
	if(isAnimating==false)
	{
		prefix = tab.id.substr(0, 2);
		var lastPos;
		var change;
		var move;
		var lastTab;
		
		if(prefix == "mv")
		{
			if (mvCurrentTab == tab.id)	return;
			lastPos = mvcurPos;
			mvcurPos = pos;
			change = mvcurPos - lastPos;
			lastTab = mvCurrentTab;
			mvCurrentTab = tab.id;
			$(mvCurrentTab).className = "active";
		}
		if(prefix == "fn")
		{
			if (fnCurrentTab == tab.id) return;
			lastPos = fncurPos;
			fncurPos = pos;
			change = fncurPos - lastPos;
			lastTab = fnCurrentTab;
			fnCurrentTab = tab.id;
			$(fnCurrentTab).className = "active";
		}
		if(prefix == "bw")
		{
			if (bwCurrentTab == tab.id) return;
			lastPos = bwcurPos;
			bwcurPos = pos;
			change = bwcurPos - lastPos;
			lastTab = bwCurrentTab;
			bwCurrentTab = tab.id;
			$(bwCurrentTab).className = "active";
		}
		if(lastTab) $(lastTab).className = "";
		move = -amount * change;
		isAnimating = true;
		new Effect.Move(obj,{x:move,afterFinish: function(){ isAnimating = false; }});
	}
}

function showNextSV(scroller, url)
{
	if(isAnimating == false)
	{
		if(loadedSV > pageSV)
		{
			//alert(loaded);
			isAnimating = true;
			new Effect.Move(scroller,{x:-moveSV, afterFinish: function(){ isAnimating = false; pageSV++ ;}});
		}
		else
		{			
			//var url = "trans_index_most_viewed_video.php";
			new Ajax.Request(url, {parameters: {page:fromSV, limit:limitSV}, onComplete: function(transport)
																								  {
																									  var JSONstr = transport.responseText;
																									 //alert(JSONstr);
																									 if(trim(JSONstr) == 'N')
																									 {
													 													 return;
																									 }
																									 else
																									 { 
																										 var data = JSONstr.evalJSON();
																										 //alert(video[1].title);
																										 var j;
																										 for(j=0;j<data.length;j++)
																										 {
																											 var thumb = document.createElement('div');
																											 thumb.className = 'spacer';
																											 thumb.innerHTML = '<div class="thumb"><div class="img"><a href="_video/'+data[j].title+'"><img src="/_images/GUID-IMAGE-PATH-GUID_VIDE_'+data[j].id+'/video/b" title="'+data[j].title+'" alt="'+data[j].title+'" border="0" /></a></div></div>';
																											 $(scroller).appendChild(thumb);
																										 }
																										 loadedSV++;
																										 isAnimating = true;
																										 new Effect.Move(scroller,{x:-moveSV, afterFinish: function(){ isAnimating = false; pageSV++ ;}});
																									 }
																								 }
							 });
		}
	}	
}

function showPrevSV(scroller)
{
	if(pageSV > 1)
	{
		if(isAnimating == false)
		{
			isAnimating = true;
			new Effect.Move(scroller,{x:moveSV, afterFinish: function(){ isAnimating = false; pageSV-- ;}});
		}
	}
}

var pageICO = 1;
var moveICO = 592;

function showNextIcons(scroller, limit)
{
	if(pageICO < limit)
	{
		if(isAnimating == false)
		{
			isAnimating = true;
			new Effect.Move(scroller,{x:-moveICO, afterFinish: function(){ isAnimating = false; pageICO++ ;}});
		}
	}
}

function showPrevIcons(scroller)
{
	if(pageICO > 1)
	{
		if(isAnimating == false)
		{
			isAnimating = true;
			new Effect.Move(scroller,{x:moveICO, afterFinish: function(){ isAnimating = false; pageICO-- ;}});
		}
	}
}
/*Uploaded Icons*/
function loadIcoTxt()
{
	var icoText = $$('.icoTxt');
	var iconsL = $$('.icon a');
	var i = 0;
	icoText.each(function(icoTxt) {
								
											icoTxt.setStyle({display:'none'});
								
										}.bind(this));
	iconsL.each(function(icon) {

											var iText = icoText[i];
											//alert(iText);
											icon.observe('mouseover', function() {
													iText.appear();
													
													//alert(i);
												   }, false);
											icon.observe('mouseout', function() {
												 iText.fade();
												}, false);
				i++;
										
									  }.bind(this));	
}

// accordion.js v2.0
//
// Copyright (c) 2007 stickmanlabs
// Author: Kevin P Miller | http://www.stickmanlabs.com
// 
// Accordion is freely distributable under the terms of an MIT-style license.
//
// I don't care what you think about the file size...
//   Be a pro: 
//	    http://www.thinkvitamin.com/features/webapps/serving-javascript-fast
//      http://rakaz.nl/item/make_your_pages_load_faster_by_combining_and_compressing_javascript_and_css_files
//

/*-----------------------------------------------------------------------------------------------*/
//Modified by Uploaded.TV

if (typeof Effect == 'undefined') 
	throw("accordion.js requires including script.aculo.us' effects.js library!");

var accordion = Class.create();
accordion.prototype = {

	//
	//  Setup the Variables
	//
	showAccordion : null,
	currentAccordion : null,
	duration : null,
	effects : [],
	animating : false,
	
	//  
	//  Initialize the accordions
	//
	initialize: function(container, options) {
	  if (!$(container)) {
	    throw(container+" doesn't exist!");
	    return false;
	  }
		this.options = Object.extend({
			resizeSpeed : 8,
			classNames : {
				toggle : 'h3',
				toggleActive : 'active'
			},
			defaultSize : {
				height : null,
				width : null
			},
			direction : 'vertical',
			onEvent : 'click'
		}, options || {});
		
		this.duration = ((11-this.options.resizeSpeed)*0.15);

		var accordions = $$('#'+container+' '+this.options.classNames.toggle);
		//alert('#'+container+' '+this.options.classNames.toggle);
		accordions.each(function(accordion) 
		{
			Event.observe(accordion, this.options.onEvent, this.activate.bind(this, accordion), false);
			if (this.options.onEvent == 'click') 
			{
			  accordion.onclick = function() {return false;};
			}
			if (this.options.direction == 'horizontal') 
			{
				var options = {width: '0px'};
			} 
			else 
			{
				var options = {height: '0px'};
			}
			Object.extend(options, {display: 'none'});
			this.currentAccordion = $(accordion.next(0)).setStyle(options);	
		}.bind(this));
	},
	
	//
	//  Activate an accordion
	//
	activate : function(accordion) {
		if (this.animating) {
			return false;
		}
		
		this.effects = [];
		this.currentAccordion = $(accordion.next(0));
		this.currentAccordion.setStyle({
			display: 'block'
		});
		this.currentAccordion.previous(0).addClassName(this.options.classNames.toggleActive);

		if (this.options.direction == 'horizontal') {
			this.scaling = {
				scaleX: true,
				scaleY: false
			};
		} else {
			this.scaling = {
				scaleX: false,
				scaleY: true
			};			
		}
		if (this.currentAccordion == this.showAccordion) {
		  this.deactivate();
		} else {
		  this._handleAccordion();
		}
	},
	// 
	// Deactivate an active accordion
	//
	deactivate : function() {
		var options = {
		  duration: this.duration,
			scaleContent: false,
			transition: Effect.Transitions.sinoidal,
			queue: {
				position: 'end', 
				scope: 'accordionAnimation'
			},
			scaleMode: { 
				originalHeight: this.options.defaultSize.height ? this.options.defaultSize.height : this.currentAccordion.scrollHeight,
				originalWidth: this.options.defaultSize.width ? this.options.defaultSize.width : this.currentAccordion.scrollWidth
			},
			afterFinish: function() {
				this.showAccordion.setStyle({
      				display: 'none'
				});		// height: 'auto' has been removed due to flicker occuring		
				this.showAccordion = null;
				this.animating = false;
			}.bind(this)
		};
		Object.extend(options, this.scaling);
      this.showAccordion.previous(0).removeClassName(this.options.classNames.toggleActive);
    
		new Effect.Scale(this.showAccordion, 0, options);
	},

  //
  // Handle the open/close actions of the accordion
  //
	_handleAccordion : function() {
		var options = {
			sync: true,
			scaleFrom: 0,
			scaleContent: false,
			transition: Effect.Transitions.sinoidal,
			scaleMode: { 
				originalHeight: this.options.defaultSize.height ? this.options.defaultSize.height : this.currentAccordion.scrollHeight,
				originalWidth: this.options.defaultSize.width ? this.options.defaultSize.width : this.currentAccordion.scrollWidth
			}
		};
		Object.extend(options, this.scaling);
		
		this.effects.push(
			new Effect.Scale(this.currentAccordion, 100, options)
		);

		if (this.showAccordion) {
			this.showAccordion.previous(0).removeClassName(this.options.classNames.toggleActive);
			options = {
				sync: true,
				scaleContent: false,
				transition: Effect.Transitions.sinoidal
			};
			Object.extend(options, this.scaling);
			
			this.effects.push(
				new Effect.Scale(this.showAccordion, 0, options)
			);				
		}
		
    new Effect.Parallel(this.effects, {
			duration: this.duration, 
			queue: {
				position: 'end', 
				scope: 'accordionAnimation'
			},
			beforeStart: function() {
				this.animating = true;
			}.bind(this),
			afterFinish: function() {
				if (this.showAccordion) {
					this.showAccordion.setStyle({
						display: 'none'
					});				
				}
				$(this.currentAccordion).setStyle({
				  height: 'auto'
				});
				this.showAccordion = this.currentAccordion;
				this.animating = false;
			}.bind(this)
		});
	}
}

//////////////Page Script////////////////////

//
		//  In my case I want to load them onload, this is how you do it!
		// 
		Event.observe(window, 'load', loadAccordions, false);
	
		//
		//	Set up all accordions
		//
		function loadAccordions() {
			if($('topContainer')){
			var topAccordion = new accordion('topContainer');
			topAccordion.activate($$('#topContainer h3')[0]);
				 }
/*			var nextAccordion = new accordion('nextContainer',{classNames : {toggle : 'h4',toggleActive : 'active'}});
			nextAccordion.activate($$('#nextContainer h4')[0]);*/
			/*var topAccordion = new accordion('vertical_container', {
				classNames : {
					toggle : 'horizontal_accordion_toggle',
					toggleActive : 'horizontal_accordion_toggle_active',
					content : 'horizontal_accordion_content'
				},
				defaultSize : {
					width : 525
				},
				direction : 'horizontal'
			});
			
			
			var bottomAccordion = new accordion('vertical_container');
			
			var nestedVerticalAccordion = new accordion('vertical_nested_container', {
			  classNames : {
					toggle : 'vertical_accordion_toggle',
					toggleActive : 'vertical_accordion_toggle_active',
					content : 'vertical_accordion_content'
				}
			});
			
			// Open first one
			bottomAccordion.activate($$('#vertical_container .accordion_toggle')[0]);
			
			// Open second one
			topAccordion.activate($$('#horizontal_container .horizontal_accordion_toggle')[2]);*/
		}