/* COOKIES */
function getCookie(c_name) {

	if (document.cookie.length>0) {

		c_start=document.cookie.indexOf(c_name + "=");

		if (c_start!=-1) {

			c_start=c_start + c_name.length+1;
			c_end=document.cookie.indexOf(";",c_start);

			if (c_end==-1) c_end=document.cookie.length;

			return unescape(document.cookie.substring(c_start,c_end));

		}
	}

	return "";

}

function setCookie(c_name,value,expiredays) {

	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : ";expires="+exdate.toUTCString());

}


function checkCookie() {

	username=getCookie('username');

	if (username!=null && username!="") {

		alert('Welcome again '+username+'!');

	} else {

		username=prompt('Please enter your name:',"");

		if (username!=null && username!="") {

			setCookie('username',username,365);

		}

	}

}


/* VIEWS */
views = function() {

	return {

		title:			'views',
		reset_:		0,
		join_link:		'',
		limit_this:		0,
		limit_other:	0,


		cookies: function(object) {

			var videobox_views = eval('(' + object + ')');

			/* SET COOKIES */
			setCookie('videobox_first_view', videobox_views.first_view, 365);
			setCookie('videobox_views_girls', videobox_views.girls, 365);
			setCookie('videobox_views_movies', videobox_views.movies, 365);

		},


		init: function() {


			var videobox_views = (views.reset_) ? 'reset' : jQuery('#videobox_views').html();
			var query = "action=init_videobox_view&views="+videobox_views+"&location="+document.location;


			jQuery.ajax({

				async: true,
				type: "POST",
				url: "lib/videobox/actions.php",
				data: query,
				success: function(out){

					//alert('init: ' + out);

					jQuery('#videobox_views').html(out);
					views.cookies(out);

				}

			});

		}, // init



		/* UPDATE VIDEOBOX VIEWS */
		update: function() {


			var videobox_views = (views.reset_) ? 'reset' : jQuery('#videobox_views').html();
			var query = "action=update_videobox_view&views="+videobox_views+"&location="+document.location;


			jQuery.ajax({

				async: true,
				type: "POST",
				url: "lib/videobox/actions.php",
				data: query,
				success: function(out){

					//alert('update: ' + out);

					jQuery('#videobox_views').html(out);
					views.cookies(out);

				}

			});

		}, //update


		/* CHECK VIDEOBOX VIEWS */
		check: function() {


			if (jQuery('#videobox_views').html() == 'reset') return;


			//{ "views":0, "girls":0, "movies":0 };
			var videobox_views = eval('(' + jQuery('#videobox_views').html() + ')');


			if (videobox_views.first_view == 'girls') {
				if (page == 'girls') {
					if (videobox_views.girls > views.limit_this) {

						/* GO TO JOIN*/
						location.href = views.join_link;
						return 1;

					}
				}

				if (page == 'movies') {
					if (videobox_views.movies > views.limit_other) {

						/* GO TO JOIN*/
						location.href = views.join_link;
						return 1;

					}
				}
			}

			if (videobox_views.first_view == 'movies') {
				if (page == 'movies') {
					if (videobox_views.movies > views.limit_this) {

						/* GO TO JOIN*/
						location.href = views.join_link;
						return 1;

					}
				}

				if (page == 'girls') {
					if (videobox_views.girls > views.limit_other) {

						/* GO TO JOIN*/
						location.href = views.join_link;
						return 1;

					}
				}
			}


		} // check

	} // return
}(); // views


/* VIDEOBOX */
var global_player;

function getAjaxHttp()
{
	 var xmlHttp;
	 try
	 {    // Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	 }
	 catch (e)
	 {    // Internet Explorer
		  try
		  {
			  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		  }
		  catch (e)
		  {
			   try
			   {
					xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			   }
			   catch (e)
			   {
					alert("Your browser does not support AJAX!");
					return false;
			   }
		  }
	}
	return xmlHttp;

}



function getResult( phpFile )
{
	var xmlHttp = getAjaxHttp();


	var dummy = "&dummy=" + new Date().getTime();
if (phpFile.indexOf("?") > 0) {
	  dummy = "&dummy=" + new Date().getTime();
	}
	else {
	  dummy = "?dummy=" + new Date().getTime();
	}

	xmlHttp.open("GET",phpFile + dummy,false);
xmlHttp.send(null);

	if(xmlHttp.readyState==4)
	{
			return (xmlHttp.responseText);
	}

	return null;
}


function getContent( phpFile , outputDiv )
{
	var xmlHttp = getAjaxHttp();

	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			document.getElementById( outputDiv ).innerHTML = xmlHttp.responseText;
		}
	}

	var dummy = "&dummy=" + new Date().getTime();
if (phpFile.indexOf("?") > 0) {
	  dummy = "&dummy=" + new Date().getTime();
	}
	else {
	  dummy = "?dummy=" + new Date().getTime();
	}

	xmlHttp.open("GET",phpFile + dummy,true);
xmlHttp.send(null);

}

function getContent( phpFile , outputDiv, jsFnc )
{
	var xmlHttp = getAjaxHttp();

	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			document.getElementById( outputDiv ).innerHTML = xmlHttp.responseText;
			eval(jsFnc);
		}
	}

	var dummy = "&dummy=" + new Date().getTime();
if (phpFile.indexOf("?") > 0) {
	  dummy = "&dummy=" + new Date().getTime();
	}
	else {
	  dummy = "?dummy=" + new Date().getTime();
	}

	xmlHttp.open("GET",phpFile + dummy,true);
xmlHttp.send(null);

}



function doPOST(url, params, outputDiv) {
//  url = url
//  params = string of encoded params (eg, name=test&id=1)
//  outputDiv = where to put results
   http = getAjaxHttp();
   if (http) {
	  //http.onreadystatechange = func;
	  http.onreadystatechange=function()
	  {
		if(http.readyState==4)
		{
			document.getElementById( outputDiv ).innerHTML = http.responseText;
		}
	  }
	  http.open('POST', url, true);
	  http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	  http.setRequestHeader("Content-length", params.length);
	  http.setRequestHeader("Connection", "close");
	  http.send(params);
   }
}







var Videobox = {
	init: function(options) {
		// init default options

		//20090924 Alexey
		//Please ensure html page contains declaration of swfSrcPrefix variable
		//because it's required for working videobox with subfolders feature

		this.options = Object.extend({
			resizeDuration: 400, // Duration of height and width resizing (ms)
			initialWidth: 250, 	// Initial width of the box (px)
			initialHeight: 250, 	// Initial height of the box (px)
			defaultWidth: 425, 	// Default width of the box (px)
			defaultHeight: 350, // Default height of the box (px)
			animateCaption: true, // Enable/Disable caption animation
			flvplayer: (typeof (swfSrcPrefix) != 'undefined' ? swfSrcPrefix : '../') + 'lib/swf/flvplayer.swf'
		}, options || {});

		this.anchors = [];
		$A($$('a')).each(function(el) {
			if (el.rel && el.href && el.rel.test('^vidbox', 'i')) {
				el.addEvent('click', function(e) {
					e = new Event(e);
					e.stop();
					this.click(el);
				} .bind(this));
				this.anchors.push(el);
			}
		}, this);

		this.overlay = new Element('div').setProperty('id', 'vb_lbOverlay').injectInside(document.body);


		this.center = new Element('div').setProperty('id', 'vb_lbCenter').setStyles({ width: this.options.initialWidth + 'px', height: this.options.initialHeight + 'px', marginLeft: '-' + (this.options.initialWidth / 2) + 'px', display: 'none' }).injectInside(document.body);

		this.bottomContainer = new Element('div').setProperty('id', 'vb_lbBottomContainer').setStyle('display', 'none').injectInside(document.body);
		this.bottom = new Element('div').setProperty('id', 'vb_lbBottom').injectInside(this.bottomContainer);
		new Element('a').setProperties({ id: 'vb_lbCloseLink', href: '#' }).injectInside(this.bottom).onclick = this.overlay.onclick = this.close.bind(this);
		this.caption = new Element('div').setProperty('id', 'vb_lbCaption').injectInside(this.bottom);
		this.number = new Element('div').setProperty('id', 'vb_lbNumber').injectInside(this.bottom);
		new Element('div').setStyle('clear', 'both').injectInside(this.bottom);



		var nextEffect = this.nextEffect.bind(this);
		this.fx = {
			overlay: this.overlay.effect('opacity', { duration: 500 }).hide(),
			center: this.center.effects({ duration: 500, transition: Fx.Transitions.sineInOut, onComplete: nextEffect }),
			bottom: this.bottom.effect('margin-top', { duration: 400 })
		};

	},

	click: function(link) {


		/* CHECK VIDEOBOX VIEWS :D */
		//if (views.check()) return;

		global_player = this;



		return this.open(link.href, link.title, link.rel);


	},


	open: function(sLinkHref, sLinkTitle, sLinkRel) {
		this.href = sLinkHref;
		this.title = sLinkTitle;
		this.rel = sLinkRel;
		this.position();
		this.setup();
		this.video(this.href);
		this.top = Window.getScrollTop() + (Window.getHeight() / 15);
		this.center.setStyles({ top: this.top + 'px', display: '' });
		this.fx.overlay.start(0.8);
		this.step = 1;
		this.center.setStyle('background', '#fff url(lib/videobox/images/loading.gif) no-repeat center');
		this.caption.innerHTML = this.title;
		this.fx.center.start({ 'height': [this.options.contentsHeight] });
	//this.haveScenes = 1;


	/* UPDATE VIDEOBOX VIEWS */
	views.update();


	},


	setup: function() {
		var aDim = this.rel.match(/[0-9\.]+/g);
		this.options.contentsWidth = (aDim && (aDim[0] > 0)) ? aDim[0] : this.options.defaultWidth;
		this.options.contentsHeight = (aDim && (aDim[1] > 0)) ? aDim[1] : this.options.defaultHeight;
		if (aDim[2] == 1) {
			this.haveScenes = 1;
		} else {
			this.haveScenes = 0;
		}

		this.options.streamingServer = aDim[3];


		/* GET DURATION :D */
		this.options.duration = (aDim[4]) ? "&duration="+aDim[4] : '';


	},

	position: function() {
		this.overlay.setStyles({ 'top': window.getScrollTop() + 'px', 'height': window.getHeight() + 'px' });
	},

	video: function(sLinkHref) {
		if (sLinkHref.match(/youtube\.com\/watch/i)) {
			this.flash = true;
			var hRef = sLinkHref;
			var videoId = hRef.split('=');
			this.videoID = videoId[1];
			this.so = new SWFObject("http://www.youtube.com/v/" + this.videoID, "flvvideo", this.options.contentsWidth, this.options.contentsHeight, "0");
			this.so.addParam("wmode", "transparent");
		}
		else if (sLinkHref.match(/metacafe\.com\/watch/i)) {
			this.flash = true;
			var hRef = sLinkHref;
			var videoId = hRef.split('/');
			this.videoID = videoId[4];
			this.so = new SWFObject("http://www.metacafe.com/fplayer/" + this.videoID + "/.swf", "flvvideo", this.options.contentsWidth, this.options.contentsHeight, "0");
			this.so.addParam("wmode", "transparent");
		}
		else if (sLinkHref.match(/google\.com\/videoplay/i)) {
			this.flash = true;
			var hRef = sLinkHref;
			var videoId = hRef.split('=');
			this.videoID = videoId[1];
			this.so = new SWFObject("http://video.google.com/googleplayer.swf?docId=" + this.videoID + "&hl=en", "flvvideo", this.options.contentsWidth, this.options.contentsHeight, "0");
			this.so.addParam("wmode", "transparent");
		}
		else if (sLinkHref.match(/ifilm\.com\/video/i)) {
			this.flash = true;
			var hRef = sLinkHref;
			var videoId = hRef.split('video/');
			this.videoID = videoId[1];
			this.so = new SWFObject("http://www.ifilm.com/efp", "flvvideo", this.options.contentsWidth, this.options.contentsHeight, "0", "#000");
			this.so.addVariable("flvbaseclip", this.videoID + "&");
			this.so.addParam("wmode", "transparent");
		}
		else if (sLinkHref.match(/\.mov/i)) {
			this.flash = false;
			if (navigator.plugins && navigator.plugins.length) {
				this.other = '<object id="qtboxMovie" type="video/quicktime" codebase="http://www.apple.com/qtactivex/qtplugin.cab" data="' + sLinkHref + '" width="' + this.options.contentsWidth + '" height="' + this.options.contentsHeight + '"><param name="src" value="' + sLinkHref + '" /><param name="scale" value="aspect" /><param name="controller" value="true" /><param name="autoplay" value="true" /><param name="bgcolor" value="#000000" /><param name="enablejavascript" value="true" /></object>';
			} else {
				this.other = '<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" width="' + this.options.contentsWidth + '" height="' + this.options.contentsHeight + '" id="qtboxMovie"><param name="src" value="' + sLinkHref + '" /><param name="scale" value="aspect" /><param name="controller" value="true" /><param name="autoplay" value="true" /><param name="bgcolor" value="#000000" /><param name="enablejavascript" value="true" /></object>';
			}
		}
		else if (sLinkHref.match(/\.wmv/i) || sLinkHref.match(/\.asf/i)) {
			this.flash = false;
			sLinkHref = 'wgc_media/' + sLinkHref.split('wgc_media/')[1]; //fixed file:/// and http:// difference
			this.other = '<object NAME="Player" WIDTH="' + this.options.contentsWidth + '" HEIGHT="' + this.options.contentsHeight + '" align="left" hspace="0" type="application/x-oleobject" CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6"><param NAME="URL" VALUE="' + sLinkHref + '"><param><param NAME="AUTOSTART" VALUE="false"></param><param name="showControls" value="true"></param><embed WIDTH="' + this.options.contentsWidth + '" HEIGHT="' + this.options.contentsHeight + '" align="left" hspace="0" SRC="' + sLinkHref + '" TYPE="application/x-oleobject" AUTOSTART="false"></embed></object>'
		}
		else if (sLinkHref.match(/\.flv/i)) {
			this.flash = true;
			this.so = new SWFObject(this.options.flvplayer + "?file=" + sLinkHref, "flvvideo", this.options.contentsWidth, this.options.contentsHeight, "0", "#000");
		} else if (sLinkHref.match(/\.mp4/i)) {
			/* :D :( )*/

            this.flash = true;
            /***************
            * New CDN Structure required change
            *  I know it's a quick patch amount hideous code
            *  Although this code is meant to be unused soon
            *****************/
            if(sLinkHref.search('http.trailers.wickedcdn.com') >= 0) {
                var streamer = 'http.trailers.wickedcdn.com';
                var thisLink = sLinkHref;
            } else {
                /* old method still used by girls until we move the mp4*/
                var streamer = 'rtmp://fms.movies.wickedcontent.com/wickedcontentmovies';

                sLinkHref = sLinkHref.replace("http://downloads.wickedcontent.com", "");
                sLinkHref = sLinkHref.substr(0, sLinkHref.indexOf("?"));

                // strip the first slash
                if (sLinkHref[0] == '/') {
                    sLinkHref = sLinkHref.substr(1, sLinkHref.length);
                }

                var id = 0;

                // Id using IE7 or less, set id to '1'
                if (navigator.appName == 'Microsoft Internet Explorer')
                {
                    var ua = navigator.userAgent;
                    var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");

                    if (re.exec(ua) != null)
                        rv = parseFloat(RegExp.$1);

                    if ( rv < 8.0 )
                    {
                        id = 1;
                    }
                }

                var replaced_expression = sLinkHref.split('/')[id];
                sLinkHref = window.global_streams_array[replaced_expression];
                var thisLink = sLinkHref;
            }


			this.so = new SWFObject("mediaplayer-5.2/player-licensed.swf","flvvideo",this.options.contentsWidth,this.options.contentsHeight,"9.0.115","#000000");


			this.so.addParam("allowfullscreen","true");
			this.so.addParam("allowscriptaccess","always");
			this.so.addParam("wmode","transparent");
			//this.so.addParam("flashvars",""+this.options.duration+"&bufferlength=2&autostart=true&stretching=uniform&streamer=rtmp://" + this.options.streamingServer + ":1935/simplevideostreaming/&file=" + sLinkHref );
			//alert("bufferlength=2&autostart=true&stretching=uniform&streamer=rtmp://fms.movies.wickedcdn.com/wickedcdnmovies/&file=" + sLinkHref);

            //this.so.addParam("flashvars",""+this.options.duration+"&bufferlength=2&autostart=true&stretching=uniform&streamer=rtmp://fms.movies.wickedcdn.com/wickedcdnmovies&file=" + sLinkHref );
            //this.so.addParam("flashvars",""+this.options.duration+"&bufferlength=2&autostart=true&stretching=uniform&streamer=http.trailers.wickedcdn.com&file=http://http.trailers.wickedcdn.com/1384/vids/wkd_alibi_the_strailer_400p_1300.mp4" );
			this.so.addParam("flashvars",""+this.options.duration+"&bufferlength=2&autostart=true&stretching=uniform&streamer="+streamer+"&file=" + thisLink );



		} else {


			this.flash = true;
			this.videoID = sLinkHref;
			this.so = new SWFObject(this.videoID, "flvvideo", this.options.contentsWidth, this.options.contentsHeight, "0");


		}
	},

	nextEffect: function() {
		switch (this.step++) {
			case 1:
				this.fx.center.start({ 'width': [this.options.contentsWidth], 'marginLeft': [this.options.contentsWidth / -2] });
				break;
				this.step++;
			case 2:
				this.center.setStyle('background', '#fff');

				if (this.haveScenes == 1) {
					this.center.setStyle('height',(this.center.clientHeight + 170) + 'px');
					/// Alex mods
					this.topContainer = new Element('div').setStyles({ height: '50px', width: this.options.contentsWidth + 'px'}).injectInside(this.center);
				}

				this.playerArea = new Element('div').injectInside(this.center);

				if (this.haveScenes == 1) {
					new Element('div').setStyle('clear', 'both').injectInside(this.topContainer);
					this.sceneStrip = new Element('div').setStyles({ height: '170px', width: this.options.contentsWidth + 'px', background:'#ffffff', top: (this.top + this.center.clientHeight) + 'px' }).injectInside(this.center);


					if ((this.href.indexOf("/271/") > 0) && (this.href.indexOf("/cmsvideos/") > 0)) {
						entryId = this.href.substr(this.href.indexOf("/cmsvideos/") + 11,this.href.length);
						entryId = entryId.substr(0,entryId.indexOf("/271/"));
						//alert(entryId);
						// get sceneStrips
						this.topContainer.innerHTML = getResult("vbox_title_strip.html?entryId=" + entryId);
						this.sceneStrip.innerHTML = getResult("vbox_scene_strip.html?entryId=" + entryId);

					}
					new Element('div').setStyle('clear', 'both').injectInside(this.sceneStrip);


				}



				/////

				this.flash ? this.so.write(this.playerArea) : this.center.setHTML(this.other);

				this.bottomContainer.setStyles({ top: (this.top + this.center.clientHeight) + 'px', height: '0px', marginLeft: this.center.style.marginLeft, width: this.options.contentsWidth + 'px', display: '' });
				if (this.options.animateCaption) {
					this.fx.bottom.set(-this.bottom.offsetHeight);
					this.bottomContainer.style.height = '';
					this.fx.bottom.start(0);
					break;
				}
				this.bottomContainer.style.height = '';
				this.step++;
		}
	},

	close: function() {
		this.fx.overlay.start(0);
		this.center.style.display = this.bottomContainer.style.display = 'none';
		this.center.setStyle('height','0px');
		this.center.innerHTML = '';
		return false;
	},

	gotoScene : function ( x ) {

			sLinkHref = this.href;
			sLinkHref = sLinkHref.substr(sLinkHref.indexOf("/cmsvideos/"),sLinkHref.length);
			this.so = new SWFObject("mediaplayer-5.2/player-licensed.swf","flvvideo",this.options.contentsWidth,this.options.contentsHeight,"9.0.115","#000000");
			this.so.addParam("allowfullscreen","true");
			this.so.addParam("allowscriptaccess","always");
			this.so.addParam("wmode","transparent");
			var port = (Math.random() >= 0.5)  ? 1 : 0;
			port = port + 67;
			sLinkHref = sLinkHref.substr(0,sLinkHref.indexOf("."));
			sLinkHref = sLinkHref + "-" + x + ".mp4";
			//this.so.addParam("flashvars","&bufferlength=2&autostart=true&stretching=uniform&streamer=rtmp://66.78.24." + port + ":1935/simplevideostreaming/&file=" + sLinkHref );
			//alert("bufferlength=2&autostart=true&stretching=uniform&streamer=rtmp://fms.movies.wickedcontent.com/wickedcontentmovies/&file=" + sLinkHref);
			this.so.addParam("flashvars","&bufferlength=2&autostart=true&stretching=uniform&streamer=rtmp://fms.movies.wickedcdn.com/wickedcdnmovies/&file=" + sLinkHref );
			this.playerArea.innerHTML = "";
			this.so.write(this.playerArea);

	}

};

function gotoScene( x ) {
	 global_player.gotoScene(x);
}

window.addEvent('domready', Videobox.init.bind(Videobox));
