
/*
 * INCLUDE - FCKEDITOR - FCKEDITOR.JS
 *  FOR ARTICLE AND FORUM PLUGINS
 *  THIS VERSION FROM FORUM - FCKEDITOR - FCKEDITOR.JS
 * FCKeditor - The text editor for Internet - http://www.fckeditor.net
 * Copyright (C) 2003-2009 Frederico Caldeira Knabben
 *
 * == BEGIN LICENSE ==
 *
 * Licensed under the terms of any of the following licenses at your
 * choice:
 *
 *  - GNU General Public License Version 2 or later (the "GPL")
 *    http://www.gnu.org/licenses/gpl.html
 *
 *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
 *    http://www.gnu.org/licenses/lgpl.html
 *
 *  - Mozilla Public License Version 1.1 or later (the "MPL")
 *    http://www.mozilla.org/MPL/MPL-1.1.html
 *
 * == END LICENSE ==
 *
 * This is the integration file for JavaScript.
 *
 * It defines the FCKeditor class that can be used to create editor
 * instances in a HTML page in the client side. For server side
 * operations, use the specific integration system.
 */

// FCKeditor Class
var FCKeditor = function( instanceName, width, height, toolbarSet, value )
{
	// Properties
	this.InstanceName	= instanceName ;
	this.Width			= width			|| '100%' ;
	this.Height			= height		|| '200' ;
	this.ToolbarSet		= toolbarSet	|| 'Default' ;
	this.Value			= value			|| '' ;
	this.BasePath		= FCKeditor.BasePath ;
	this.CheckBrowser	= true ;
	this.DisplayErrors	= true ;

	this.Config			= new Object() ;

	// Events
	this.OnError		= null ;	// function( source, errorNumber, errorDescription )
}

/**
 * This is the default BasePath used by all editor instances.
 */
FCKeditor.BasePath = '/fckeditor/' ;

/**
 * The minimum height used when replacing textareas.
 */
FCKeditor.MinHeight = 200 ;

/**
 * The minimum width used when replacing textareas.
 */
FCKeditor.MinWidth = 750 ;

FCKeditor.prototype.Version			= '2.6.4' ;
FCKeditor.prototype.VersionBuild	= '21629' ;

FCKeditor.prototype.Create = function()
{
	document.write( this.CreateHtml() ) ;
}

FCKeditor.prototype.CreateHtml = function()
{
	// Check for errors
	if ( !this.InstanceName || this.InstanceName.length == 0 )
	{
		this._ThrowError( 701, 'You must specify an instance name.' ) ;
		return '' ;
	}

	var sHtml = '' ;

	if ( !this.CheckBrowser || this._IsCompatibleBrowser() )
	{
		sHtml += '<input type="hidden" id="' + this.InstanceName + '" name="' + this.InstanceName + '" value="' + this._HTMLEncode( this.Value ) + '" style="display:none" />' ;
		sHtml += this._GetConfigHtml() ;
		sHtml += this._GetIFrameHtml() ;
	}
	else
	{
		var sWidth  = this.Width.toString().indexOf('%')  > 0 ? this.Width  : this.Width  + 'px' ;
		var sHeight = this.Height.toString().indexOf('%') > 0 ? this.Height : this.Height + 'px' ;

		sHtml += '<textarea name="' + this.InstanceName +
			'" rows="4" cols="40" style="width:' + sWidth +
			';height:' + sHeight ;

		if ( this.TabIndex )
			sHtml += '" tabindex="' + this.TabIndex ;

		sHtml += '">' +
			this._HTMLEncode( this.Value ) +
			'<\/textarea>' ;
	}

	return sHtml ;
}

FCKeditor.prototype.ReplaceTextarea = function()
{
	if ( document.getElementById( this.InstanceName + '___Frame' ) )
		return ;
	if ( !this.CheckBrowser || this._IsCompatibleBrowser() )
	{
		// We must check the elements firstly using the Id and then the name.
		var oTextarea = document.getElementById( this.InstanceName ) ;
		var colElementsByName = document.getElementsByName( this.InstanceName ) ;
		var i = 0;
		while ( oTextarea || i == 0 )
		{
			if ( oTextarea && oTextarea.tagName.toLowerCase() == 'textarea' )
				break ;
			oTextarea = colElementsByName[i++] ;
		}

		if ( !oTextarea )
		{
			alert( 'Error: The TEXTAREA with id or name set to "' + this.InstanceName + '" was not found' ) ;
			return ;
		}

		oTextarea.style.display = 'none' ;

		if ( oTextarea.tabIndex )
			this.TabIndex = oTextarea.tabIndex ;

		this._InsertHtmlBefore( this._GetConfigHtml(), oTextarea ) ;
		this._InsertHtmlBefore( this._GetIFrameHtml(), oTextarea ) ;
	}
}

FCKeditor.prototype._InsertHtmlBefore = function( html, element )
{
	if ( element.insertAdjacentHTML )	// IE
		element.insertAdjacentHTML( 'beforeBegin', html ) ;
	else								// Gecko
	{
		var oRange = document.createRange() ;
		oRange.setStartBefore( element ) ;
		var oFragment = oRange.createContextualFragment( html );
		element.parentNode.insertBefore( oFragment, element ) ;
	}
}

FCKeditor.prototype._GetConfigHtml = function()
{
	var sConfig = '' ;
	for ( var o in this.Config )
	{
		if ( sConfig.length > 0 ) sConfig += '&amp;' ;
		sConfig += encodeURIComponent( o ) + '=' + encodeURIComponent( this.Config[o] ) ;
	}

	return '<input type="hidden" id="' + this.InstanceName + '___Config" value="' + sConfig + '" style="display:none" />' ;
}

FCKeditor.prototype._GetIFrameHtml = function()
{
	var sFile = 'fckeditor.html' ;

	try
	{
		if ( (/fcksource=true/i).test( window.top.location.search ) )
			sFile = 'fckeditor.original.html' ;
	}
	catch (e) { /* Ignore it. Much probably we are inside a FRAME where the "top" is in another domain (security error). */ }

	var sLink = this.BasePath + 'editor/' + sFile + '?InstanceName=' + encodeURIComponent( this.InstanceName ) ;
	if (this.ToolbarSet)
		sLink += '&amp;Toolbar=' + this.ToolbarSet ;

	var html = '<iframe id="' + this.InstanceName +
		'___Frame" src="' + sLink +
		'" width="' + this.Width +
		'" height="' + this.Height ;

	if ( this.TabIndex )
		html += '" tabindex="' + this.TabIndex ;

	html += '" frameborder="0" scrolling="no"></iframe>' ;

	return html ;
}

FCKeditor.prototype._IsCompatibleBrowser = function()
{
	return FCKeditor_IsCompatibleBrowser() ;
}

FCKeditor.prototype._ThrowError = function( errorNumber, errorDescription )
{
	this.ErrorNumber		= errorNumber ;
	this.ErrorDescription	= errorDescription ;

	if ( this.DisplayErrors )
	{
		document.write( '<div style="COLOR: #ff0000">' ) ;
		document.write( '[ FCKeditor Error ' + this.ErrorNumber + ': ' + this.ErrorDescription + ' ]' ) ;
		document.write( '</div>' ) ;
	}

	if ( typeof( this.OnError ) == 'function' )
		this.OnError( this, errorNumber, errorDescription ) ;
}

FCKeditor.prototype._HTMLEncode = function( text )
{
	if ( typeof( text ) != "string" )
		text = text.toString() ;

	text = text.replace(
		/&/g, "&amp;").replace(
		/"/g, "&quot;").replace(
		/</g, "&lt;").replace(
		/>/g, "&gt;") ;

	return text ;
}

;(function()
{
	var textareaToEditor = function( textarea )
	{
		var editor = new FCKeditor( textarea.name ) ;

		editor.Width = Math.max( textarea.offsetWidth, FCKeditor.MinWidth ) ;
		editor.Height = Math.max( textarea.offsetHeight, FCKeditor.MinHeight ) ;

		return editor ;
	}

	/**
	 * Replace all <textarea> elements available in the document with FCKeditor
	 * instances.
	 *
	 *	// Replace all <textarea> elements in the page.
	 *	FCKeditor.ReplaceAllTextareas() ;
	 *
	 *	// Replace all <textarea class="myClassName"> elements in the page.
	 *	FCKeditor.ReplaceAllTextareas( 'myClassName' ) ;
	 *
	 *	// Selectively replace <textarea> elements, based on custom assertions.
	 *	FCKeditor.ReplaceAllTextareas( function( textarea, editor )
	 *		{
	 *			// Custom code to evaluate the replace, returning false if it
	 *			// must not be done.
	 *			// It also passes the "editor" parameter, so the developer can
	 *			// customize the instance.
	 *		} ) ;
	 */
	FCKeditor.ReplaceAllTextareas = function()
	{
		var textareas = document.getElementsByTagName( 'textarea' ) ;

		for ( var i = 0 ; i < textareas.length ; i++ )
		{
			var editor = null ;
			var textarea = textareas[i] ;
			var name = textarea.name ;

			// The "name" attribute must exist.
			if ( !name || name.length == 0 )
				continue ;

			if ( typeof arguments[0] == 'string' )
			{
				// The textarea class name could be passed as the function
				// parameter.

				var classRegex = new RegExp( '(?:^| )' + arguments[0] + '(?:$| )' ) ;

				if ( !classRegex.test( textarea.className ) )
					continue ;
			}
			else if ( typeof arguments[0] == 'function' )
			{
				// An assertion function could be passed as the function parameter.
				// It must explicitly return "false" to ignore a specific <textarea>.
				editor = textareaToEditor( textarea ) ;
				if ( arguments[0]( textarea, editor ) === false )
					continue ;
			}

			if ( !editor )
				editor = textareaToEditor( textarea ) ;

			editor.ReplaceTextarea() ;
		}
	}
})() ;

function FCKeditor_IsCompatibleBrowser()
{
	var sAgent = navigator.userAgent.toLowerCase() ;

	// Internet Explorer 5.5+
	if ( /*@cc_on!@*/false && sAgent.indexOf("mac") == -1 )
	{
		var sBrowserVersion = navigator.appVersion.match(/MSIE (.\..)/)[1] ;
		return ( sBrowserVersion >= 5.5 ) ;
	}

	// Gecko (Opera 9 tries to behave like Gecko at this point).
	if ( navigator.product == "Gecko" && navigator.productSub >= 20030210 && !( typeof(opera) == 'object' && opera.postError ) )
		return true ;

	// Opera 9.50+
	if ( window.opera && window.opera.version && parseFloat( window.opera.version() ) >= 9.5 )
		return true ;

	// Adobe AIR
	// Checked before Safari because AIR have the WebKit rich text editor
	// features from Safari 3.0.4, but the version reported is 420.
	if ( sAgent.indexOf( ' adobeair/' ) != -1 )
		return ( sAgent.match( / adobeair\/(\d+)/ )[1] >= 1 ) ;	// Build must be at least v1

	// Safari 3+
	if ( sAgent.indexOf( ' applewebkit/' ) != -1 )
		return ( sAgent.match( / applewebkit\/(\d+)/ )[1] >= 522 ) ;	// Build must be at least 522 (v3)

	return false ;
}





/**
*
*  BEGIN SHOWHIDE.JS
*  FOR ARTICLE PLUGIN
*  
*
**/

function showhide(id1) {
	if(document.getElementById(id1).style.display=='none') {
		document.getElementById(id1).style.display='block';
	} else {
		document.getElementById(id1).style.display='none';
	}
}

function showdiv(id1) {
	if(document.getElementById(id1))
	document.getElementById(id1).style.display='block';
}

function hidediv(id1) {
	if(document.getElementById(id1))
	document.getElementById(id1).style.display='none';
}

function ShowHideSelectDeps(field_id) {
  var elem = "field_"+field_id;
  var show = document.getElementById(elem).options[document.getElementById(elem).options.selectedIndex].value;
  var possible_options = document.getElementById(elem).options.length-1;
  for(x=0; x<possible_options; x++) {
    if(x != show | show == "") {
      hidediv(elem+"_option"+x);
    } else {
      showdiv(elem+"_option"+x);
    }
  }
}

function ShowHideRadioDeps(field_id, show, dep_field, total_options) {
  var elem = "field_"+field_id;
  for(x=0; x<total_options; x++) {
    if(x != show) {
      hidediv(elem+"_radio"+x);
    } else {
      showdiv(elem+"_radio"+x);
      if(document.getElementById(dep_field)) {
        document.getElementById(dep_field).focus()
	document.getElementById(dep_field).value = document.getElementById(dep_field).value;
      }
    }
  }
}


/**
*
*  BEGIN INCLUDE - JPWHCORE - SWFOBJECT.JS
*  FOR JPWCORE PLUGIN
*  
*
**/


/*	SWFObject v2.2 <http://code.google.com/p/swfobject/> 
	is released under the MIT License <http://www.opensource.org/licenses/mit-license.php> 
*/
var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y<X;Y++){U[Y]()}}function K(X){if(J){X()}else{U[U.length]=X}}function s(Y){if(typeof O.addEventListener!=D){O.addEventListener("load",Y,false)}else{if(typeof j.addEventListener!=D){j.addEventListener("load",Y,false)}else{if(typeof O.attachEvent!=D){i(O,"onload",Y)}else{if(typeof O.onload=="function"){var X=O.onload;O.onload=function(){X();Y()}}else{O.onload=Y}}}}}function h(){if(T){V()}else{H()}}function V(){var X=j.getElementsByTagName("body")[0];var aa=C(r);aa.setAttribute("type",q);var Z=X.appendChild(aa);if(Z){var Y=0;(function(){if(typeof Z.GetVariable!=D){var ab=Z.GetVariable("$version");if(ab){ab=ab.split(" ")[1].split(",");M.pv=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}else{if(Y<10){Y++;setTimeout(arguments.callee,10);return}}X.removeChild(aa);Z=null;H()})()}else{H()}}function H(){var ag=o.length;if(ag>0){for(var af=0;af<ag;af++){var Y=o[af].id;var ab=o[af].callbackFn;var aa={success:false,id:Y};if(M.pv[0]>0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad<ac;ad++){if(X[ad].getAttribute("name").toLowerCase()!="movie"){ah[X[ad].getAttribute("name")]=X[ad].getAttribute("value")}}P(ai,ah,Y,ab)}else{p(ae);if(ab){ab(aa)}}}}}else{w(Y,true);if(ab){var Z=z(Y);if(Z&&typeof Z.SetVariable!=D){aa.success=true;aa.ref=Z}ab(aa)}}}}}function z(aa){var X=null;var Y=c(aa);if(Y&&Y.nodeName=="OBJECT"){if(typeof Y.SetVariable!=D){X=Y}else{var Z=Y.getElementsByTagName(r)[0];if(Z){X=Z}}}return X}function A(){return !a&&F("6.0.65")&&(M.win||M.mac)&&!(M.wk&&M.wk<312)}function P(aa,ab,X,Z){a=true;E=Z||null;B={success:false,id:X};var ae=c(X);if(ae){if(ae.nodeName=="OBJECT"){l=g(ae);Q=null}else{l=ae;Q=X}aa.id=R;if(typeof aa.width==D||(!/%$/.test(aa.width)&&parseInt(aa.width,10)<310)){aa.width="310"}if(typeof aa.height==D||(!/%$/.test(aa.height)&&parseInt(aa.height,10)<137)){aa.height="137"}j.title=j.title.slice(0,47)+" - Flash Player Installation";var ad=M.ie&&M.win?"ActiveX":"PlugIn",ac="MMredirectURL="+O.location.toString().replace(/&/g,"%26")+"&MMplayerType="+ad+"&MMdoctitle="+j.title;if(typeof ab.flashvars!=D){ab.flashvars+="&"+ac}else{ab.flashvars=ac}if(M.ie&&M.win&&ae.readyState!=4){var Y=C("div");X+="SWFObjectNew";Y.setAttribute("id",X);ae.parentNode.insertBefore(Y,ae);ae.style.display="none";(function(){if(ae.readyState==4){ae.parentNode.removeChild(ae)}else{setTimeout(arguments.callee,10)}})()}u(aa,ab,X)}}function p(Y){if(M.ie&&M.win&&Y.readyState!=4){var X=C("div");Y.parentNode.insertBefore(X,Y);X.parentNode.replaceChild(g(Y),X);Y.style.display="none";(function(){if(Y.readyState==4){Y.parentNode.removeChild(Y)}else{setTimeout(arguments.callee,10)}})()}else{Y.parentNode.replaceChild(g(Y),Y)}}function g(ab){var aa=C("div");if(M.win&&M.ie){aa.innerHTML=ab.innerHTML}else{var Y=ab.getElementsByTagName(r)[0];if(Y){var ad=Y.childNodes;if(ad){var X=ad.length;for(var Z=0;Z<X;Z++){if(!(ad[Z].nodeType==1&&ad[Z].nodeName=="PARAM")&&!(ad[Z].nodeType==8)){aa.appendChild(ad[Z].cloneNode(true))}}}}}return aa}function u(ai,ag,Y){var X,aa=c(Y);if(M.wk&&M.wk<312){return X}if(aa){if(typeof ai.id==D){ai.id=Y}if(M.ie&&M.win){var ah="";for(var ae in ai){if(ai[ae]!=Object.prototype[ae]){if(ae.toLowerCase()=="data"){ag.movie=ai[ae]}else{if(ae.toLowerCase()=="styleclass"){ah+=' class="'+ai[ae]+'"'}else{if(ae.toLowerCase()!="classid"){ah+=" "+ae+'="'+ai[ae]+'"'}}}}}var af="";for(var ad in ag){if(ag[ad]!=Object.prototype[ad]){af+='<param name="'+ad+'" value="'+ag[ad]+'" />'}}aa.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+ah+">"+af+"</object>";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab<ac;ab++){I[ab][0].detachEvent(I[ab][1],I[ab][2])}var Z=N.length;for(var aa=0;aa<Z;aa++){y(N[aa])}for(var Y in M){M[Y]=null}M=null;for(var X in swfobject){swfobject[X]=null}swfobject=null})}}();return{registerObject:function(ab,X,aa,Z){if(M.w3&&ab&&X){var Y={};Y.id=ab;Y.swfVersion=X;Y.expressInstall=aa;Y.callbackFn=Z;o[o.length]=Y;w(ab,false)}else{if(Z){Z({success:false,id:ab})}}},getObjectById:function(X){if(M.w3){return z(X)}},embedSWF:function(ab,ah,ae,ag,Y,aa,Z,ad,af,ac){var X={success:false,id:ah};if(M.w3&&!(M.wk&&M.wk<312)&&ab&&ah&&ae&&ag&&Y){w(ah,false);K(function(){ae+="";ag+="";var aj={};if(af&&typeof af===r){for(var al in af){aj[al]=af[al]}}aj.data=ab;aj.width=ae;aj.height=ag;var am={};if(ad&&typeof ad===r){for(var ak in ad){am[ak]=ad[ak]}}if(Z&&typeof Z===r){for(var ai in Z){if(typeof am.flashvars!=D){am.flashvars+="&"+ai+"="+Z[ai]}else{am.flashvars=ai+"="+Z[ai]}}}if(F(Y)){var an=u(aj,am,ah);if(aj.id==ah){w(ah,true)}X.success=true;X.ref=an}else{if(aa&&A()){aj.data=aa;P(aj,am,ah,ac);return}else{w(ah,true)}}if(ac){ac(X)}})}else{if(ac){ac(X)}}},switchOffAutoHideShow:function(){m=false},ua:M,getFlashPlayerVersion:function(){return{major:M.pv[0],minor:M.pv[1],release:M.pv[2]}},hasFlashPlayerVersion:F,createSWF:function(Z,Y,X){if(M.w3){return u(Z,Y,X)}else{return undefined}},showExpressInstall:function(Z,aa,X,Y){if(M.w3&&A()){P(Z,aa,X,Y)}},removeSWF:function(X){if(M.w3){y(X)}},createCSS:function(aa,Z,Y,X){if(M.w3){v(aa,Z,Y,X)}},addDomLoadEvent:K,addLoadEvent:s,getQueryParamValue:function(aa){var Z=j.location.search||j.location.hash;if(Z){if(/\?/.test(Z)){Z=Z.split("?")[1]}if(aa==null){return L(Z)}var Y=Z.split("&");for(var X=0;X<Y.length;X++){if(Y[X].substring(0,Y[X].indexOf("="))==aa){return L(Y[X].substring((Y[X].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(a){var X=c(R);if(X&&l){X.parentNode.replaceChild(l,X);if(Q){w(Q,true);if(M.ie&&M.win){l.style.display="block"}}if(E){E(B)}}a=false}}}}();


/**
*
*  BEGIN INCLUDE - JPWHCORE - SOLMETRAUPLOADER.JS
*  FOR JPWCORE PLUGIN
*  
*
**/


// define the object
var SolmetraUploader = {
  //////////////////////////////////
  instances     : new Array(),
  ready         : new Array(),
  allReady      : false,
  errorHandler  : '',
  eventHandler  : '',
  currentForm   : 0,
  //////////////////////////////////
  attach : function () {
    // attach innitialization on window.onload event
    if (window.addEventListener) {
      window.addEventListener('load', SolmetraUploader.initialize, false);
    }
    else if (window.attachEvent) {
      window.attachEvent('onload', SolmetraUploader.initialize);
    }
  },
  //////////////////////////////////
  initialize : function () {
    // get all the instances
    var list = document.getElementsByName('solmetraUploaderInstance');
    cnt = list.length;
    for (i = 0; i < cnt; i++) {
      // check if instance has reported rediness
      if (!SolmetraUploader.inArray(list[i].value, SolmetraUploader.ready)) {
        // reschedule innitialize
        setTimeout('SolmetraUploader.initialize()', 1000);
        return;
      }
    }
    
    // all instances ready - continue innitialization
    SolmetraUploader.allReady = true;
    SolmetraUploader.getForms();
  },
  //////////////////////////////////
  getForms : function () {
    // get all the instances
    var list = document.getElementsByName('solmetraUploaderInstance');
    cnt = list.length;
    for (i = 0; i < cnt; i++) {
      // add instance
      var instance = {
        id        : list[i].value,
        hijack    : SolmetraUploader.getObject('solmetraUploaderHijack_' + list[i].value).value == 'y' ? true : false,
        required  : SolmetraUploader.getObject('solmetraUploaderRequired_' + list[i].value).value == 'y' ? true : false,
        form      : SolmetraUploader.getForm(list[i])
      };
      SolmetraUploader.instances.push(instance);
      SolmetraUploader.hijackForm(instance.form);
    } 
  },
  //////////////////////////////////
  hijackForm : function (frm) {
    // check if this form hasn't been tagged yet
    if (frm.solmetraUploaderOriginalOnSubmit || frm.solmetraUploaderOriginalSubmit) {
      return;
    }
    
    // assign internal id to this form 
    frm.solmetraId = SolmetraUploader.currentForm;
    SolmetraUploader.currentForm++;
    
    // hijack onsubmit event
    frm.solmetraUploaderOriginalOnSubmit = frm.onsubmit;
    frm.onsubmit = function() { return SolmetraUploader.submit(this) ? true: false; }
    
    // hijack submit() method
    frm.solmetraUploaderOriginalSubmit = frm.submit;
    frm.submit = function() { return SolmetraUploader.submit(this) ? true: false; }
  },
  //////////////////////////////////
  submit : function (frm) {
    // check if ready
    if (!SolmetraUploader.ready) {
      return false;
    }
    
    // check for Uploader instances in this form
    var uploadList = new Array();
    var cnt = SolmetraUploader.instances.length;
    for (i = 0; i < cnt; i++) {
      // get reference to the instance
      instance = SolmetraUploader.instances[i];
      
      // check if this belongs to submited form
      var uploading = false;
      var id = '';
      if (instance.form.solmetraId == frm.solmetraId) {
        id = instance.id;
        var uploadStatus = SolmetraUploader.flashGetUploadStatus(instance.id);
        if (instance.required && uploadStatus != 'selected' && uploadStatus != 'done' && uploadStatus != 'uploading') {
          // error: a required field is not selected
          SolmetraUploader.broadcastError(instance.error, 'Not selected');
          return false;
        }
        else if (uploadStatus == 'selected') {
          uploadList.push(instance);
        }
        else if (uploadStatus == 'uploading') {
          uploading = true;
        }
        else if (uploadStatus == 'error') {
          return false;
        }
      }
    }
    
    // let the form submit if there are no file to upload
    if (uploadList.length == 0 && !uploading) {
      if (frm.solmetraUploaderOriginalOnSubmit) {
        frm.solmetraUploaderOriginalOnSubmit();
      }
      frm.solmetraUploaderOriginalSubmit();
      return false;
    }
    
    // innitiate uploads
    while (instance = uploadList.shift()) {
      SolmetraUploader.flashTriggerUpload(instance.id);
    }
    
    // schedule this function to run again
    setTimeout('SolmetraUploader.submit(SolmetraUploader.getInstanceForm(\'' + id + '\'));', 1000);
    
    return false;
  },
  //////////////////////////////////
  flashGetUploadStatus : function (id) {
    var obj = SolmetraUploader.getObject('solmetraUploaderMovie_' + id);
    return obj.getUploadStatus();
  },
  //////////////////////////////////
  flashTriggerUpload : function (id) {
    var obj = SolmetraUploader.getObject('solmetraUploaderMovie_' + id);
    return obj.triggerUpload();
  },
  //////////////////////////////////
  flashTriggerCancel : function (id) {
    var obj = SolmetraUploader.getObject('solmetraUploaderMovie_' + id);
    return obj.triggerCancel();
  },
  //////////////////////////////////
  setErrorHandler : function (funct) {
    SolmetraUploader.errorHandler = funct;
  },
  //////////////////////////////////
  broadcastError : function (id, err) {
    eval(SolmetraUploader.errorHandler + "('" + id + "', '" + err + "')");
  },
  //////////////////////////////////
  setEventHandler : function (funct) {
    SolmetraUploader.eventHandler = funct;
  },
  //////////////////////////////////
  broadcastEvent : function (id, evt, data) {
    // pass through to handler
    eval(SolmetraUploader.eventHandler + "('" + id + "', '" + evt + "', data)");
    
    // handle upload finish
    if (evt == 'complete') {
      objx = SolmetraUploader.getObject('solmetraUploaderData_' + id);
      objx.value += '|' + data.tmp_name + '|' + data.name;
    }
    else if (evt == 'ready') {
      SolmetraUploader.ready.push(id);
    }
  },
  //////////////////////////////////
  getObject : function (id) {
    if (document.getElementById && document.getElementById(id) != null) {
      return document.getElementById(id);
    }
    else if (document.layers && document.layers[id] != null) {
      return document.layers[id];
    }
    else if (document.all) {
      return document.all(id);
    }
    else {
      return true;
    }
  },
  //////////////////////////////////
  getForm : function (obj) {
    while (obj = obj.parentNode) {
      if(obj.nodeName == 'FORM') {
        return obj;
      }
    }
    return false;
  },
  //////////////////////////////////
  getInstanceForm : function (instance) {
    obj = SolmetraUploader.getObject('solmetraUploaderMovie_' + instance);
    while (obj = obj.parentNode) {
      if(obj.nodeName == 'FORM') {
        return obj;
      }
    }
    return false;
  },
  //////////////////////////////////
  inArray : function (needle, arr) {
    cnt = arr.length
    for (fi = 0; fi < cnt; fi++) {
      if (needle == arr[fi]) {
        return true;
      }
    }
    return false;
  }
  //////////////////////////////////
}

// attach to window.onload
SolmetraUploader.attach();

/**
 * SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
 *
 * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 */
if(typeof deconcept=="undefined"){var deconcept=new Object();}if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!document.getElementById){return;}this.DETECT_KEY=_a?_a:"detectflash";this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);this.params=new Object();this.variables=new Object();this.attributes=new Array();if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id",id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height",h);}if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&&this.installedVer.major>7){deconcept.SWFObject.doPrepUnload=true;}if(c){this.addParam("bgcolor",c);}var q=_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpressInstall",false);this.setAttribute("doExpressInstall",false);var _c=(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.setAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);}};deconcept.SWFObject.prototype={useExpressInstall:function(_d){this.xiSWFPath=!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInstall",true);},setAttribute:function(_e,_f){this.attributes[_e]=_f;},getAttribute:function(_10){return this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=_12;},getParams:function(){return this.params;},addVariable:function(_13,_14){this.variables[_13]=_14;},getVariable:function(_15){return this.variables[_15];},getVariables:function(){return this.variables;},getVariablePairs:function(){var _16=new Array();var key;var _18=this.getVariables();for(key in _18){_16[_16.length]=key+"="+_18[key];}return _16;},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\"";_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";var _1a=this.getParams();for(var key in _1a){_19+=[key]+"=\""+_1a[key]+"\" ";}var _1c=this.getVariablePairs().join("&");if(_1c.length>0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",this.xiSWFPath);}_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\">";_19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";var _1d=this.getParams();for(var key in _1d){_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";}var _1f=this.getVariablePairs().join("&");if(_1f.length>0){_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";}_19+="</object>";}return _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title);}}if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();return true;}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};deconcept.SWFObjectUtil.getPlayerVersion=function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){var axo=1;var _26=3;while(axo){try{_26++;axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=new deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=null;}}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}}return _23;};deconcept.PlayerVersion=function(_29){this.major=_29[0]!=null?parseInt(_29[0]):0;this.minor=_29[1]!=null?parseInt(_29[1]):0;this.rev=_29[2]!=null?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototype.versionIsValid=function(fv){if(this.major<fv.major){return false;}if(this.major>fv.major){return true;}if(this.minor<fv.minor){return false;}if(this.minor>fv.minor){return true;}if(this.rev<fv.rev){return false;}return true;};deconcept.util={getRequestParameter:function(_2b){var q=document.location.search||document.location.hash;if(_2b==null){return q;}if(q){var _2d=q.substring(1).split("&");for(var i=0;i<_2d.length;i++){if(_2d[i].substring(0,_2d[i].indexOf("="))==_2b){return _2d[i].substring((_2d[i].indexOf("=")+1));}}}return "";}};deconcept.SWFObjectUtil.cleanupSWFs=function(){var _2f=document.getElementsByTagName("OBJECT");for(var i=_2f.length-1;i>=0;i--){_2f[i].style.display="none";for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=function(){};}}}};if(deconcept.SWFObject.doPrepUnload){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);deconcept.unloadSet=true;}}if(!document.getElementById&&document.all){document.getElementById=function(id){return document.all[id];};}var getQueryParamValue=deconcept.util.getRequestParameter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject;




/**
*
*  BEGIN INCLUDE - JPWHCORE - JPWHCORE_RATING,JS
*  FOR JPWCORE PLUGIN
*  
*
**/


var jpwhcore_rating = new Class({
    
        Implements: [Options],
        
        options: {

            container : '',
            
            id : 0,

            full_star : "./images/icons/jpwhcore_rating_full.png",
            
            partial_star : "./images/icons/jpwhcore_rating_partial.png",
            
            empty_star : "./images/icons/jpwhcore_rating_empty.png",
            
            total: 0,
            
            allowed: 0,

            exists: 0,
            
            exists_text: "",
            
            table: '',
            
            prefix: ''

        },
        initialize: function(opt) {

            this.setOptions(opt);
            
            this.options.container = $(opt['container']);
            if ((this.options.table == '') || (this.options.prefix == '')) { alert('Some information is missing.'); return false; }
            if (!this.options.container) { alert('Container "'+opt['container']+'" was not found.'); return false; }
            
            this.create();

        },
        create: function(){
                
            var self = this;
            
            var getRequest = new Request.JSON({
            
                url: 'jpwhcore_request.php',
                
                method: 'post',
                
                data: {'task': 'rating', 'id': self.options.id, 'table': self.options.table, 'prefix': self.options.prefix },

                onComplete: function(jsonObj)
                {
                    self.options.container.empty();

                    self.options.container.set({'styles' : { 'padding-left': '0px' }});

                    self.options.full = jsonObj.rating[0].full;
                    
                    self.options.partial = jsonObj.rating[0].partial;
                    
                    self.options.empty = jsonObj.rating[0].empty;
                    
                    self.options.total = jsonObj.rating[0].total;
                    
                    self.options.allowed = jsonObj.rating[0].allowed;

                    self.options.exists = jsonObj.rating[0].exists;

                    var id = 1;
                    
                    for (i=0; i<self.options.full; i++)
                    {
                        new Element('img', {
                            
                            'src': self.options.full_star,

                            'name': self.options.prefix+'_star_'+id,

                            'id': self.options.prefix+'_star_'+id,

                            'styles': { 'float':'left', 'padding-left':'3px' } 
                            
                        }).inject(self.options.container);
                            
                        id+=1;
                    }
                    
                    for (i=0; i<self.options.partial; i++)
                    {
                        new Element('img', { 
                        
                            'src': self.options.partial_star,
                            
                            'name': self.options.prefix+'_star_'+id,
                            
                            'id': self.options.prefix+'_star_'+id,
                            
                            'styles': { 'float':'left', 'padding-left':'3px' } 
                        
                        }).inject(self.options.container);
                        
                        id+=1;
                    }
                    
                    for (i=0; i<self.options.empty; i++)
                    {
                        new Element('img', { 
                    
                            'src': self.options.empty_star,
                            
                            'name': self.options.prefix+'_star_'+id,
                            
                            'id': self.options.prefix+'_star_'+id,
                            
                            'styles': { 'float':'left', 'padding-left':'3px' } 
                        
                        }).inject(self.options.container);
                        
                        id+=1;
                    }

                    self.textfield = new Element('div', { 
                    
                        'html': self.options.total,
                            
                        'styles': { 'float':'left', 'padding-left':'10px', 'height': '27px', 'line-height': '27px' } 
                        
                    }).inject(self.options.container);

                    if (self.options.allowed == 1) {
                  
                        $$('img[id^='+self.options.prefix+'_star_]').addEvent('mouseenter', function(evt){

                            this.setStyle('cursor','pointer');
                            
                            self.enter(this.get('id').replace(self.options.prefix+'_star_', ''));
                                
                        });

                        $$('img[id^='+self.options.prefix+'_star_]').addEvent('mouseleave', function(evt){

                            this.setStyle('cursor','default');

                            self.leave();
                                
                        });

                        $$('img[id^='+self.options.prefix+'_star_]').addEvent('click', function(evt){

                            self.rate(this.get('id').replace(self.options.prefix+'_star_', ''));
                                
                        });
                        
                    } 

                    if (self.options.exists == 0) {

                        self.options.container.addEvent('mouseenter', function(evt){

                                self.textfield.set('html', self.options.exists_text);
                                
                        });

                        self.options.container.addEvent('mouseleave', function(evt){

                                self.textfield.set('html', self.options.total);
                                
                        });

                    }

                }
                
            }).send();

        },

        enter: function(rating){
        
            for(var x=1; x<=5; x++) {
                            
                 if(x <= rating) {
                                
                      $(this.options.prefix+'_star_'+x).setProperty('src', this.options.full_star);
                                    
                 } else {
                                
                      $(this.options.prefix+'_star_'+x).setProperty('src', this.options.empty_star);
                                    
                 }
                                
             }
            
        },

        leave: function(){
        
            for(var x=1; x<=5; x++) {
                            
                 var f2 = this.options.full+1;
                                
                 if(x <= this.options.full) {
                                
                      $(this.options.prefix+'_star_'+x).setProperty('src', this.options.full_star);
                                    
                 } else if(this.options.partial != 0 && x == f2) {
                                
                      $(this.options.prefix+'_star_'+x).setProperty('src', this.options.partial_star);
                                    
                 } else {
                                
                      $(this.options.prefix+'_star_'+x).setProperty('src', this.options.empty_star);
                                    
                 }
                                
            }
            
        },

        rate: function(value){

            var self = this;

            this.options.container.empty();
            this.options.container.set({'html': 'Rating...', styles: { 'padding-left': '10px', 'height': '27px', 'line-height': '27px' }});
            
            var rateRequest = new Request.JSON({
            
                url: 'jpwhcore_request.php',
                
                method: 'post',
                
                data: {'task': 'rate', 'id': self.options.id, 'value': value, 'table': self.options.table, 'prefix': self.options.prefix },

                onComplete: function(jsonObj)
                {
                    self.create();
                }
                
            }).send();
            
        }
        
});




/**
*
*  BEGIN INCLUDE - JPWHVID - JS - JPWHVID_VIEWER.JS
*  FOR VID PLUGIN
*  
*
**/

var vidViewer = new Class({
    
        Implements: [Options, Events],
        
        options: {

            container : '',

            container_name : '',

            width: 178,

            columns : 1,
            rows : 2,

            length : 0,

            type: 'horz',

            category : 0,
            show : 'c',
            order : 0,
            query: '',
          
            exception : 0,

            owner : '',

            more : false
            
        },
        initialize: function(opt) {

            this.setOptions(opt);
            this.options.container_name = opt['container'];
            this.options.container = $(opt['container']);
            if (!this.options.container) { alert('Container "'+opt['container']+'" was not found.'); return false; }
            if (this.options.query != '') { this.options.show = ''; }

        },
        view: function(){
        
            var self = this;
            
            var jsonRequest = new Request.JSON({
            
                method: 'post',
                
                url: 'vid_request.php',
                
                data: {'task': 'vidViewer', 'columns': self.options.columns, 'rows': self.options.rows, 'category': self.options.category, 'show': self.options.show, 'order': self.options.order, 'exception': self.options.exception, 'user': self.options.owner, 'length': self.options.length, 'more': self.options.more, 'query': self.options.query}, 
                
                onComplete: function(jsonObj) {
                
                    self.options.container.empty();

                    var nl_end = new Element('div', { 'class': 'vidViewer_nlb' }).inject(self.options.container);

                    var ckey = self.options.columns;
                    var clas = jsonObj.vids.length;

                    var outer_class = (self.options.type == 'horz') ? 'vidViewer_h' : 'vidViewer_v';
                    var first_class = (self.options.type == 'horz') ? 'vidViewer_h-left' : '';
                    var second_class = (self.options.type == 'horz') ? 'vidViewer_h-right' : 'vidViewer_v-bottom';

                    if (self.options.type == 'vert') { new Element('div', { 'class': 'vidViewer_v-middle', 'html': '' }).inject(self.options.container); }

                    var total_results = 0;
                    jsonObj.vids.each(function() { total_results++; });

                    if (total_results > 0) {

                        self.options.container.setStyle('display', 'block');

                        jsonObj.vids.each(function(vid, key) {

                            var h = new Element('div', {

                                'styles': { width: self.options.width },
                                'class': outer_class

                            }).inject(self.options.container);

                            var h_inner = new Element('div').inject(h);

                            var h_first = new Element('div', { 'class': first_class }).inject(h_inner);

                            var h_second = new Element('div', { 'class': second_class }).inject(h_inner);

                            var nl = new Element('div', { 'class': 'vidViewer_nl' }).inject(h_inner);

                            var h_thumb_a = new Element('a', {

                                'class': 'vidViewer_h-thumb',
                                'href': vid.vid_url,
                                'title': vid.vid_title

                            }).inject(h_first);

                            var h_thumb = new Element('img', {

                                'width': '80',
                                'height': '70',
                                'src': vid.vid_thumb,
                                'class': 'vidViewer_h-thumb',
                                'styles': {'width': '80px', 'height': '70px'}

                            }).inject(h_thumb_a);

                            var h_title = new Element('div').inject(h_second);

                            var h_title_a = new Element('a', {

                                'class': 'vidViewer_h-title',
                                'href': vid.vid_url,
                                'title': vid.vid_title,
                                'html': vid.vid_title_short

                            }).inject(h_second);

                            var h_info = new Element('div', {

                                'class': 'vidViewer_h-info',
                                'html': vid.vid_views

                            }).inject(h_second);

                            var h_stars = new Element('div', {

                                'class': 'vidViewer_h-info',
                                'html': vid.vid_stars

                            }).inject(h_second);

                            if ((key + 1) == ckey) {

                                if (self.options.type == 'vert') { new Element('div', { 'class': 'vidViewer_v-middle', 'html': '' }).inject(self.options.container); }
                                new Element('div', { 'class': 'vidViewer_nl' }).inject(self.options.container);
                                if (self.options.type == 'vert' && clas != ckey) { new Element('div', { 'class': 'vidViewer_v-middle', 'html': '' }).inject(self.options.container); }
                                ckey = ckey+self.options.columns;

                            }

                        });
                        
                        new Element('div', { 'class': 'vidViewer_nlb' }).inject(self.options.container);

                        if (jsonObj.more == true) {
                            new Element('div', { 'class': 'vidViewer_moretext', 'html': '[ <a href='+jsonObj.url+'>'+jpwhvid_lang_13500092+'</a> ]' }).inject(self.options.container);
                            new Element('div', { 'class': 'vidViewer_nlbb' }).inject(self.options.container);
                        }

                        if (typeof viewerSuccess == 'function') { viewerSuccess(self.options.container_name); }
                        
                    } else {

                        self.options.container.setStyle('display', 'none');
                        if (typeof viewerFailure == 'function') { viewerFailure(self.options.container_name); }

                    }

                }
                
            }).send();
            
        },
        layout: function(layout) {

            if (layout == 'side') {

                this.options.width = 178;
                this.options.columns = 1;
                this.options.length = 10;

            } else if (layout == 'center') {

                this.options.width = 218;
                this.options.columns = 2;
                this.options.length = 20;

            } else if (layout == 'center-vertical') {

                this.options.width = 80;
                this.options.columns = 5,
                this.options.length = 10;
                this.options.type = 'vert';

            }

        }
});


/**
*
*  BEGIN NEWSFEED_ADVANCED.JS
*  FOR SEPLUGINS NEWSFEED PLUGIN
*  
*
**/



Element.implement({
	sep_nfa_show: function() {
		this.setStyle('display','');
	},
	sep_nfa_hide: function() {
		this.setStyle('display','none');
	},
	sep_nfa_visible: function() {
		if(this.getStyle('display') == 'none') {
			return false;	
		}
		else {
			return true;
		}	
	},
	sep_nfa_toggle: function() {
		if(this.getStyle('display') == 'none') {
			this.sep_nfa_show();
		}
		else {
			this.sep_nfa_hide();
		}				
	},
	sep_nfa_update: function(html) {
		this.innerHTML = html;
	}
});	    
   
function SEP_NewsfeedAdvanced_post(action_id, type) {
	data_string = '';
	if(type == 3) {
		data_string = $('comment_post_form_'+action_id).toQueryString();
	}
 		
	myreq2 = new Request({
		method: 'post',
		url: './user_newsfeed_advanced_ajax.php',
		data: '_ajaxReq=1&task=post&type='+type+'&action_id='+action_id+'&' + data_string,
		onSuccess: function(html){ $('ajax_inject_new_post_'+action_id).clone().injectBefore('ajax_inject_new_post_'+action_id).sep_nfa_update(html.replace(/\\n/g, '<br>')); $('comment_post_form_'+action_id).reset(); if(type == 1 || type == 2) {$('likes_buttons_'+action_id).sep_nfa_hide();} },
		onFailure: function() {alert('Could not save your comment! Please try again!');}
	}).send();	    			

}

function SEP_NewsfeedAdvanced_show_edit_form(id) {
	if($('SEP_NewsfeedAdvanced_Edit_'+id).sep_nfa_visible()) {
		SEP_NewsfeedAdvanced_hide_edit_form(id);
	}
	else {
		$('SEP_NewsfeedAdvanced_Text_'+id).sep_nfa_hide();
		$('SEP_NewsfeedAdvanced_Edit_'+id).sep_nfa_show();
		$('SEP_NewsfeedAdvanced_Textarea_Edit_'+id).focus();
	}
}	

function SEP_NewsfeedAdvanced_hide_edit_form(id) {
	$('SEP_NewsfeedAdvanced_Edit_'+id).sep_nfa_hide();
	$('SEP_NewsfeedAdvanced_Text_'+id).sep_nfa_show();	
}

function SEP_NewsfeedAdvanced_edit(id, type) {
	data_string = '';
	if(type == 3) {
		data_string = $('comment_edit_form_'+id).toQueryString();
	}
 		
	myreq2 = new Request({
		method: 'post',
		url: './user_newsfeed_advanced_ajax.php',
		data: '_ajaxReq=1&task=edit&type='+type+'&id='+id+'&' + data_string,
		onSuccess: function(html){ $('SEP_NewsfeedAdvanced_Text_'+id).sep_nfa_update(html.replace(/\\n/g, '<br>')); $('SEP_NewsfeedAdvanced_Edit_'+id).sep_nfa_hide(); $('SEP_NewsfeedAdvanced_Text_'+id).sep_nfa_show(); },
		onFailure: function() {alert('Could not save your changes! Please try again!');}
	}).send();	 			
}


function SEP_NewsfeedAdvanced_delete(id) {
	myreq2 = new Request({
		method: 'post',
		url: './user_newsfeed_advanced_ajax.php',
		data: '_ajaxReq=1&task=delete&id='+id,
		onSuccess: function(html){ $('SEP_NewsfeedAdvanced_BoxItem_'+id).destroy(); },
		onFailure: function() {alert('Could not delete this comment! Please try again!');}
	}).send();		
}

function SEP_NewsfeedAdvanced_report(id) {
	myreq2 = new Request({
		method: 'post',
		url: './user_newsfeed_advanced_ajax.php',
		data: '_ajaxReq=1&task=report&id='+id,
		onSuccess: function(){ $('SEP_NewsfeedAdvanced_ReportButton_'+id).destroy(); alert('Thank you for reporting this comment!'); },
		onFailure: function() {alert('Could not send your report! Please try again!');}
	}).send();			
}

function SEP_NewsfeedAdvanced_toggle_box(action_id, display) {
		if(display == 'preview') {
			$('SEP_NewsfeedAdvanced_Box_Final_'+action_id).sep_nfa_hide();	
			if(SEP_NewsfeedAdvanced_AutoGrow_Instance) {
				$('SEP_NewsfeedAdvanced_Textarea_'+action_id).setStyle('height', SEP_NewsfeedAdvanced_AutoGrow_Instance.textarea_old_height);		
			}
			$('SEP_NewsfeedAdvanced_Box_Preview_'+action_id).sep_nfa_show();			
		}
		else {
			$('SEP_NewsfeedAdvanced_Box_Preview_'+action_id).sep_nfa_hide();
			$('SEP_NewsfeedAdvanced_Box_Final_'+action_id).sep_nfa_show();	
			$('SEP_NewsfeedAdvanced_Textarea_'+action_id).focus();
		}
}

function SEP_NewsfeedAdvanced_ScrollTo(action_id) {
	offset = 300;
	div_position_y = $('SEP_NewsfeedAdvanced_Box_Final_'+action_id).getPosition().y;
	window.scrollTo(0, div_position_y-offset);
}

function SEP_NewsfeedAdvanced_Show_Hidden_Boxes(action_id) {
	$('SEP_NewsfeedAdvanced_ShowMoreButton_'+action_id).sep_nfa_hide();
	$$('div.SEP_NewsfeedAdvanced_Box_Hidden_'+action_id).each(function(elm){ elm.sep_nfa_show();});	
}

function SEP_NewsfeedAdvanced_Check_MaxLength(field_id, max_length) {
	if($(field_id).value.length	> max_length) {
		alert('Your comment is too long!');	
		return false;
	}
	
	return true;
}


function SEP_NewsfeedAdvanced_ItemOptions(mode, id) {
	if(mode == 'show') {
		$('SEP_NewsfeedAdvanced_Box_Header_Right_Inactive_'+id).sep_nfa_hide();
		$('SEP_NewsfeedAdvanced_Box_Header_Right_Active_'+id).sep_nfa_show();		
	}
	else {
		// $('SEP_NewsfeedAdvanced_Box_Header_Right_Active_'+id).sep_nfa_hide();			
		// $('SEP_NewsfeedAdvanced_Box_Header_Right_Inactive_'+id).sep_nfa_show();	
	} 	
}


   
/* 
 * Copyright (c) 2009 Gary Glass (www.bookballoon.com)
 * Modified by SEplugins 
 */   
var SEP_NewsfeedAdvanced_AutoGrow_Instance = null;
var AutoGrow = new Class({

	Implements: [Options, Events],

	options: {
		interval: 333, // update interval in milliseconds
		margin: 30, // gap (in px) to maintain between last line of text and bottom of textarea
		minHeight: 20 // minimum height of textarea
	},
	
	periodical_timer: null,
	textarea_old_height: 0,

	initialize: function(textarea, options) {
		this.textarea = $(textarea);
		this.options.minHeight = textarea.clientHeight;
		this.setOptions(options);
		this.dummy =  new Element("div", {
			styles:	{
				"overflow-x" : "hidden",
				"position"   : "absolute",
				"top"        : 0,
				"left"       : "-9999px"
			}
		}).setStyles(this.textarea.getStyles("font-size", "font-family", "width", "line-height", "padding")).inject(document.body);
		this.textarea_old_height = this.textarea.getStyle("height");
		this.resize();
		this.start();
	},

	resize: function() {
		var html = this.textarea.get('value').replace(/\n|\r\n/g, '<br>X');
		if (this.dummy.get("html").toLowerCase() != html.toLowerCase()){
			this.dummy.set("html", html);
			var triggerHeight = this.dummy.getSize().y + this.options.margin;
			if (this.textarea.clientHeight != triggerHeight)
			{
				var newHeight = Math.max(this.options.minHeight, triggerHeight);
				this.textarea.tween("height", newHeight);
			}
		}
	},
	
	start: function() {
		this.periodical_timer = this.resize.periodical(this.options.interval, this);
	},
	
	stop: function() {
		$clear(this.periodical_timer);	
	}
	
	

});   



/**
*
*  BEGIN INCLUDE - JS - RADCODES.JS
*  FOR RADCODES PLUGINS
*  
*
**/

/**
 * SimpleTabs - Unobtrusive Tabs with Ajax
 *
 * @example
 *
 *	var tabs = new SimpleTabs($('tab-element'), {
 * 		selector: 'h2.tab-tab'
 *	});
 *
 * @version		1.0
 *
 * @license		MIT License
 * @author		Harald Kirschner <mail [at] digitarald.de>
 * @copyright	2007 Author
 */
var RC_SimpleTabs = new Class({

	Implements: [Events, Options],

	/**
	 * Options
	 */
	options: {
		show: 0,
		selector: '.tab-tab',
		classWrapper: 'tab-wrapper',
		classMenu: 'tab-menu',
		classContainer: 'tab-container',
		onSelect: function(toggle, container, index) {
			toggle.addClass('tab-selected');
			container.setStyle('display', '');
		},
		onDeselect: function(toggle, container, index) {
			toggle.removeClass('tab-selected');
			container.setStyle('display', 'none');
		},
		onRequest: function(toggle, container, index) {
			container.addClass('tab-ajax-loading');
		},
		onComplete: function(toggle, container, index) {
			container.removeClass('tab-ajax-loading');
		},
		onFailure: function(toggle, container, index) {
			container.removeClass('tab-ajax-loading');
		},
		onAdded: Class.empty,
		getContent: null,
		ajaxOptions: {},
		cache: true
	},

	/**
	 * Constructor
	 *
	 * @param {Element} The parent Element that holds the tab elements
	 * @param {Object} Options
	 */
	initialize: function(element, options) {
		this.element = $(element);
		this.setOptions(options);
		this.selected = null;
		this.build();
	},

	build: function() {
		this.tabs = [];
		this.menu = new Element('ul', {'class': this.options.classMenu});
		this.wrapper = new Element('div', {'class': this.options.classWrapper});

		this.element.getElements(this.options.selector).each(function(el) {
			var content = el.get('href') || (this.options.getContent ? this.options.getContent.call(this, el) : el.getNext());
			this.addTab(el.innerHTML, el.title || el.innerHTML, content);
		}, this);
		this.element.empty().adopt(this.menu, this.wrapper);

		if (this.tabs.length) this.select(this.options.show);
	},

	/**
	 * Add a new tab at the end of the tab menu
	 *
	 * @param {String} inner Text
	 * @param {String} Title
	 * @param {Element|String} Content Element or URL for Ajax
	 */
	addTab: function(text, title, content) {
		var grab = $(content);
		var container = (grab || new Element('div'))
			.setStyle('display', 'none')
			.addClass(this.options.classContainer)
			.inject(this.wrapper);
		var pos = this.tabs.length;
		var evt = (this.options.hover) ? 'mouseenter' : 'click';
		var tab = {
			container: container,
			toggle: new Element('li').grab(new Element('a', {
				href: '#',
				title: title
			}).grab(
				new Element('span', {html: text})
			)).addEvent(evt, this.onClick.bindWithEvent(this, [pos])).inject(this.menu)
		};
		if (!grab && $type(content) == 'string') tab.url = content;
		this.tabs.push(tab);
		return this.fireEvent('onAdded', [tab.toggle, tab.container, pos]);
	},

	onClick: function(evt, index) {
		this.select(index);
		return false;
	},

	/**
	 * Select the tab via tab-index
	 *
	 * @param {Number} Tab-index
	 */
	select: function(index) {
		if (this.selected === index || !this.tabs[index]) return this;
		if (this.ajax) this.ajax.cancel().removeEvents();
		var tab = this.tabs[index];
		var params = [tab.toggle, tab.container, index];
		if (this.selected !== null) {
			var current = this.tabs[this.selected];
			if (this.ajax && this.ajax.running) this.ajax.cancel();
			params.extend([current.toggle, current.container, this.selected]);
			this.fireEvent('onDeselect', [current.toggle, current.container, this.selected]);
		}
		this.fireEvent('onSelect', params);
		if (tab.url && (!tab.loaded || !this.options.cache)) {
			this.ajax = this.ajax || new Request.HTML();
			this.ajax.setOptions({
				url: tab.url,
				method: 'get',
				update: tab.container,
				onFailure: this.fireEvent.pass(['onFailure', params], this),
				onComplete: function(resp) {
					tab.loaded = true;
					this.fireEvent('onComplete', params);
				}.bind(this)
			}).setOptions(this.options.ajaxOptions);
			this.ajax.send();
			this.fireEvent('onRequest', params);
		}
		this.selected = index;
		return this;
	}

});

/**
 * END SimpleTabs
 */







var SL_Slider = new Class({

	//implements
	Implements: [Options],	
	
	//variables setup
	numNav: new Array(),		    //will store number nav elements (if used)
	timer: null,					//periodical function variable holder
	isSliding: 0,					//flag for animation/click prevention
	direction: 1,					//flag for direction (forward/reverse)
	
	//options
	options: {
	slideTimer: 8000,  			    //Time between slides (1 second = 1000), a.k.a. the interval duration
	orientation: 'horizontal',      //vertical, horizontal, or none: None will create a fading in/out transition.
	fade: false,                    //if true will fade the outgoing slide - only used if orientation is != None
	isPaused: false,				//flag for paused state
	transitionTime: 1100, 		    //Transition time (1 second = 1000)
	transitionType: 'cubic:out',	//Transition type
	container: null,				//container element
	items:  null, 					//Array of elements for sliding
	itemNum: 0,						//Current item number
	numNavActive: false,			//Whether or not the number navigation will be used
	numNavHolder: null,			    //Element that holds the number navigation
	playBtn: null,					//Play (and pause) button element
	prevBtn: null,					//Previous button element
	nextBtn: null					//Next button element
	},

	//initialization
	initialize: function(options) {
		var self = this;
		
		//set options
		this.setOptions(options);
		
		//remove any scrollbar(s) on the container
		self.options.container.setStyle('overflow', "hidden");  
		
		//if there is a play/pause button, set up functionality for it
		if(self.options.playBtn != null) {
			//self.pauseIt();  
			self.options.playBtn.set('text', 'pause');
			
			self.options.playBtn.addEvents({
				'click': function() {
					self.pauseIt();
				},				
				'mouseenter' : function() {
					this.setStyle('cursor', 'pointer');
				},
				'mouseleave' : function() {
					
				}
			});
		}
		
		//if there is a prev & next button, set up functionality for them
		if(self.options.prevBtn && self.options.nextBtn){
			
			self.options.prevBtn.addEvents({ 
				'click' : function() {
					if(self.isSliding == 0){
						if(self.options.isPaused == false){
							$clear(self.timer);
							self.timer = self.slideIt.periodical(self.options.slideTimer, self, null);
						}
						self.direction = 0;
						self.slideIt();
					}
				},
				'mouseenter' : function() {
					this.setStyle('cursor', 'pointer');
				},
				'mouseleave' : function() {
				
				}
			});	
			
			this.options.nextBtn.addEvents({ 
				'click' : function() {
					if(self.isSliding == 0){
						if(self.options.isPaused == false){
							$clear(self.timer);
							self.timer = self.slideIt.periodical(self.options.slideTimer, self, null);
						}
						self.direction = 1;
						self.slideIt();
					}
				},
				'mouseenter' : function() {
					this.setStyle('cursor', 'pointer');
				},
				'mouseleave' : function() {
					
				}
			});	
		}
		
		//setup items (a.k.a. slides) from list
		self.options.items.each(function(el, i){
			  
			//f.y.i.  el = the element, i = the index
			el.setStyle('position', "absolute");
			var itemH = el.getSize().y;
			var itemW = el.getSize().x;
			if(self.options.orientation == 'vertical'){ 
                el.setStyle('top', (-1 * itemH));
                el.setStyle('left', 0);
            }else if(self.options.orientation == 'none') {
                el.setStyle('left', 0);
                el.setStyle('top', 0);
                el.set('opacity', 0);
			}else{
                el.setStyle('left', (-1 * itemW));
            }
			// -- Number nav setup
			if(self.options.numNavActive == true){
				//create numbered navigation boxes, and insert into the 'num_nav' ul)
				var numItem = new Element('li', {id: 'num'+i});
				var numLink = new Element('a', {
					'class': 'numbtn',
					'html': (i+1)
				});
				numItem.adopt(numLink);
				self.options.numNavHolder.adopt(numItem);
				self.numNav.push(numLink);
				numLink.set('morph', {duration: 100, transition: Fx.Transitions.linear, link: 'ignore'});
				
				numLink.addEvents({
					'click' : function(){
						self.numPress(i);
					},
					'mouseenter' : function() {
						this.setStyle('cursor', 'pointer');
					}
				});
				
				//set initial number to active state
				if(i == self.options.itemNum){
					var initNum = self.numNav[i];
					initNum.addClass('active');
				}
			}
			//end if num nav 'active'
		
		 });
	
	},

	//startup method
	start: function() {
		
		var self = this;
		
		self.slideIt(self.options.itemNum);  //initialize first slide
		
		if(self.options.isPaused == false){
			self.timer = self.slideIt.periodical(self.options.slideTimer, self, null);
			if(self.options.playBtn) self.options.playBtn.set('text', 'pause');
		}
		else{
			//self.pauseIt();
			if(self.options.playBtn) self.options.playBtn.set('text', 'play');
		}
		
	},
	
	
	slideIt: function(passedID) {
		
		var self = this;
		
		//get item to slide out
		var curItem = self.options.items[self.options.itemNum]; 
		if(self.options.numNavActive == true){
			var curNumItem =  self.numNav[self.options.itemNum];
		}
		
		//check for passedID presence
		if(passedID != null) {
			if(self.options.itemNum != passedID){
				if(self.options.itemNum > passedID) { 
					self.direction = 0; 
				} else { 
					self.direction = 1;
				}
				self.options.itemNum = passedID;
			}
		}
		else{
			self.changeIndex();	
		}
		
		
		//now get item to slide in using new index
		var newItem = self.options.items[self.options.itemNum];
		if(self.direction == 0){
			var curX = self.options.container.getSize().x;
			var newX = (-1 * newItem.getSize().x);
            var curY = self.options.container.getSize().y;
            var newY = (-1 * newItem.getSize().y);
		}
		else{
			var curX = (-1 * self.options.container.getSize().x);	
			var newX = newItem.getSize().x;
            var curY = (-1 * self.options.container.getSize().y);
            var newY = newItem.getSize().y;
		}
		
		
		//add/remove active number's highlight
		if(self.options.numNavActive == true){
			var newNumItem =  self.numNav[self.options.itemNum];
			newNumItem.addClass('active');
		}
		
		
		//set up our animation stylings
		var item_in = new Fx.Morph(newItem, {
		     duration: self.options.transitionTime, 
		     transition: self.options.transitionType,
		     link: 'ignore',
		     
		     onStart: function(){
				self.isSliding = 1;  //prevents extra clicks
			},
		     
		     onComplete: function(){
				self.isSliding = 0;  //prevents extra clicks
			}
		     
		});
		
		
		
        if(self.options.orientation == 'vertical'){
            if(self.options.fade == true){item_in.start({'opacity':[0,1],'top' : [newY, 0]});}
            else{item_in.start({'top' : [newY, 0]});}
        }else if(self.options.orientation == 'none') {
            item_in.start({'opacity':[0,1]});
        }else{
            if(self.options.fade == true){item_in.start({'opacity':[0,1],'left' : [newX, 0]});}
            else{item_in.start({'left' : [newX, 0]});}
        }
        
		
		if(curItem != newItem){
			var item_out = new Fx.Morph(curItem, {
				     duration: self.options.transitionTime, 
				     transition: self.options.transitionType,
				     link: 'ignore'
			});
			
			if(self.options.numNavActive == true){
				curNumItem.removeClass('active');
			}
			
            if(self.options.orientation == 'vertical'){
                if(self.options.fade == true){item_out.start({'opacity':[0],'top' : [(curY)]});}
                else{item_out.start({'top' : [(curY)]});}
            }else if(self.options.orientation == 'none') {
                item_out.start({'opacity':[1,0]});
            }else{
                if(self.options.fade == true){item_out.start({'opacity':[0],'left' : [(curX)]});}
                else{item_out.start({'left' : [(curX)]});}
            }
		}
	},
	
	
	//--------------------------------------------------------------------------------------------------------
	//supplementary functions  (mini-functions)
	//--------------------------------------------------------------------------------------------------------
	pauseIt: function () {
		
		var self = this;
		
		//only move if not currently moving
		if(self.isSliding == 0){
			if(self.options.isPaused == false){
				self.options.isPaused = true;
				$clear(self.timer);
				self.options.playBtn.set('text', 'play');				
			}
			else{
				self.options.isPaused = false;
				self.slideIt();
				self.timer = self.slideIt.periodical(self.options.slideTimer, this, null); 
				self.options.playBtn.set('text', 'pause');
			}
			
		} //end if not sliding
		
	},
	
	changeIndex: function() {
		var self = this; 
		
		var numItems = self.options.items.length;  //get number of slider items
		
		//change index based on value of 'direction' parameter
		if(self.direction == 1){
			if(self.options.itemNum < (numItems - 1)){
				self.options.itemNum++; 
			}
			else{
				self.options.itemNum = 0;
			}
		}
		else if(self.direction == 0){
			if(self.options.itemNum > 0){
				self.options.itemNum--; 
			}
			else{
				self.options.itemNum = (numItems - 1);
			}
		}	
		
	},
	
	numPress: function (theIndex) {
		var self = this;
		
		if((self.isSliding == 0) && (self.options.itemNum != theIndex)){
			if(self.options.isPaused == false){
				$clear(self.timer);
				self.timer = self.slideIt.periodical(self.options.slideTimer, this, null);
			}
			self.slideIt(theIndex);
		}
	}
	//------------------------  end supp. functions -----------------------------------------//

});


/**
 * END SL_Slider
 */

/**
*
*  END INCLUDE - JS - RADCODES.JS
*  FOR RADCODES PLUGINS
*  
*
**/


/** START HECONTACTS-JS **/

/**
 * @author Eldar
 * @copyright Hire-Experts LLC
 * @version Contacts Module 1.02
 */

var he_contacts = {

    callback_url : '',
    get_contacts_url : 'he_contacts.php?',
    message_allowed : 0,
    emails_allowed : 0,
    contacts : [],
    last : 0,
    title : '',
    callback_function : '',

    init : function( callback_url, message_allowed, last, get_contacts_url, emails_allowed, title, callback_function ) {
        this.callback_url = callback_url;
        this.message_allowed = message_allowed;
        this.last = last;
        this.title = title;
        this.emails_allowed = emails_allowed;
        if( get_contacts_url ) this.get_contacts_url = get_contacts_url;
        this.callback_function = callback_function;
        
        this.init_check_all();
    },

    link : function( title, callback_url, message_allowed ) {
        javascript:TB_show(title, this.get_contacts_url + 'callback_url=' + callback_url + '&message_allowed=' + message_allowed + '&TB_iframe=true&height=460&width=580', '', './images/trans.gif');
    },
    
    open_form : function() {
        javascript:TB_show(this.title, this.get_contacts_url + 'callback_url=' + urlencode(this.callback_url) + '&message_allowed=' + this.message_allowed + '&emails_allowed=' + this.emails_allowed + '&TB_iframe=true&height=460&width=580', '', './images/trans.gif');
    },

    get_more_contacts : function() {
        var self = this;
        if( self.last == -1 ) return;

        $('he_contacts_loading').setStyle('display', 'block');
        overlay_size('he_contacts_loading');
        
        new Request.JSON({
            method: 'get',
            url: self.get_contacts_url + 'is_ajax=1&start=' + this.last,
            onSuccess: function(response) {
                $('he_contacts_loading').setStyle('display', 'none');
                if( response.html_code )
                {
                    var newDiv = document.createElement('div');
                    newDiv.innerHTML = response.html_code;
                    $('he_contacts_list').insertBefore(newDiv, document.getElementById('he_contacts_end_line'));
                }

                self.last = response.start;
                if( !response.more )
                {
                    $('he_contacts_more').set('class', 'more_disabled');
                    self.last = -1;
                }
            }
        }).send();
    },

    choose_contact : function( contact_id ) {
        if( this.contacts.indexOf(contact_id)==-1 ) { //add contact
            $("contact_" + contact_id).addClass("active");
            this.contacts[this.contacts.length] = contact_id;
        }
        else { //remove contact
            $("contact_" + contact_id).removeClass("active");
            this.contacts.splice(this.contacts.indexOf(contact_id), 1);
        }
    },

    send : function() {
        var self = this;
        $('he_contacts_loading').setStyle('display', 'block');
        overlay_size('he_contacts_loading');
        var post_data = {'contacts_choosed': 1 , 'contacts': self.contacts.toString()}
        if( this.emails_allowed ) post_data.emails = $('he_contacts_emails').value;
        
        new Request.JSON({
            method: 'get',
            url: this.callback_url,
            data: post_data,
            onSuccess: function(response) {
                $('he_contacts_loading').setStyle('display', 'none');
                $('he_contacts_message').setStyle('display', 'block');
                overlay_size('he_contacts_message');
                $('he_contacts_message').getElement('.msg').innerHTML = response.message;
                if( response.status ) {
                	if (typeof(self.callback_function) == "function")
                	{
                		self.callback_function();
                	}
                    setTimeout("parent.TB_remove();", 2500);
                }
                else {
                    setTimeout("$('he_contacts_message').setStyle('display', 'none');", 2500);
                }
            }
        }).send();
    },
    
    init_check_all : function() {
    	this.$check_all = $('he_contacts_check_all');
    	
    	if (!this.$check_all) {
			return false;
		}
    	
    	this.$check_all.addEvent('mousedown', function() {
    		if (this.hasClass('he_checked')) {
				this.removeClass('he_checked');
				this.addClass('he_before_uncheck');
			} else {
				this.removeClass('he_unchecked');
				this.addClass('he_before_check');
			}
    	});
    	
    	this.$check_all.addEvent('mouseup', function() {
    		if (this.hasClass('he_before_uncheck')) {
    			this.removeClass('he_before_uncheck');
    			this.addClass('he_unchecked');
    		} else {
    			this.removeClass('he_before_check');
    			this.addClass('he_checked');
    		}
    	});
    },
    
    check_all : function() {
    	var self = this;
		var $items = $$('#he_contacts_list .item');
		
		if (!this.$check_all || !$items || $items.length == 0) {
			return false;
		}
		
		$items.removeClass('active');
		this.contacts = [];
		
		if (this.$check_all.hasClass('he_checked')) {
			$items.each(function($item, index){
			    var item_id = $item.getProperty('id').substr(8).toInt();
			    self.contacts.push(item_id);
			});
			
			$items.addClass('active');
		}
    }
}

/** END HECONTACTS-JS **/

/** START HE-FUNCTIONS-JS **/

/**
 * @author Eldar
 * @copyright Hire-Experts LLC
 * @version JS 1.01
 */

function overlay_size(element_id) {
    if( !$(element_id) ) return;
    $(element_id).setStyles({
        "height": '0px',
        "width": '0px'
    });
    
    $(element_id).setStyles({
        "height": window.getScrollHeight() + 'px',
        "width": window.getScrollWidth() + 'px'
    });
}

function urlencode(str) {
    // http://kevin.vanzonneveld.net
    // +   original by: Philip Peterson
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: AJ
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: travc
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Lars Fischer
    // +      input by: Ratheous
    // +      reimplemented by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Joris
    // +      reimplemented by: Brett Zamir (http://brett-zamir.me)
    // %          note 1: This reflects PHP 5.3/6.0+ behavior
    // %        note 2: Please be aware that this function expects to encode into UTF-8 encoded strings, as found on
    // %        note 2: pages served as UTF-8
    // *     example 1: urlencode('Kevin van Zonneveld!');
    // *     returns 1: 'Kevin+van+Zonneveld%21'
    // *     example 2: urlencode('http://kevin.vanzonneveld.net/');
    // *     returns 2: 'http%3A%2F%2Fkevin.vanzonneveld.net%2F'
    // *     example 3: urlencode('http://www.google.nl/search?q=php.js&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:unofficial&client=firefox-a');
    // *     returns 3: 'http%3A%2F%2Fwww.google.nl%2Fsearch%3Fq%3Dphp.js%26ie%3Dutf-8%26oe%3Dutf-8%26aq%3Dt%26rls%3Dcom.ubuntu%3Aen-US%3Aunofficial%26client%3Dfirefox-a'

    str = (str+'').toString();
    
    // Tilde should be allowed unescaped in future versions of PHP (as reflected below), but if you want to reflect current
    // PHP behavior, you would need to add ".replace(/~/g, '%7E');" to the following.
    return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').
                                                                    replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+');
}


/** END HE-FUNCTIONS-JS **/
