var currentvideo_ell = null;
var currentimg_ell = null;
var interval_obj = null;
var b_vote_ell = null;
var movie_id = null;
var rating_span_ell = null;
var rating_ell = null;
var thumb = new Array();
var allowed_ext = new Array("avi", "mpeg", "mpg", "wmv", "flv");
var form_ell = null;
var fieldset_ell = null;
var title_label_ell = null;
var title_ell = null;
var movie_label_ell = null;
var movie_ell = null;
var submit_ell = null;
var posting = false;
var title_label_ell = null;
var genre1_label_ell = null;
var genre2_label_ell = null;
var genre3_label_ell = null;
var movie_label_ell = null;
var genre1_ell = null;
var genre2_ell = null;
var genre3_ell = null;
var error_arr = new Array();

window.onload = function(){
	Sbr.init();
	var menu = document.getElementById("menu")
	if(menu){
		var liSet = menu.getElementsByTagName('LI');				
		for(var i = 0; i < liSet.length; i++){										
			liSet[i].onmouseover = function(){
				this.oldClassName = this.className;
				this.className = this.oldClassName + " over";}				
			liSet[i].onmouseout = function(){
				this.className = this.oldClassName;}}}
				
	var video_ell = document.getElementById('mainleft').getElementsByTagName('div');
	for(var i = 0; i < video_ell.length; i++){		
		if(video_ell[i].className == 'video') {
		video_ell[i].onmouseover = function(){
			start_preview(this);}				
		video_ell[i].onmouseout = function(){
			stop_preview();}}}
			
	if(document.getElementById('flashmovienew'))	
		movie_id = parseUri(window.location.href).directoryPath.replace('/','').replace('/','');	
		
	rating_span_ell = document.getElementById('mainleft').getElementsByTagName('span')[3];
	if(rating_span_ell)	
	{
		rating_ell = rating_span_ell.getElementsByTagName('img');
		for(var i = 0; i < rating_ell.length; i++){
			rating_ell[i].starid = i + 1;
			rating_ell[i].default_star = rating_ell[i].src;
			rating_ell[i].onmouseover = rating_hover;
			rating_ell[i].onmouseout = rating_reset;
			rating_ell[i].onclick = rating_submit;
			rating_ell[i].style.cursor = 'pointer';}
	}	
	form_ell = document.getElementById("uploadform");		
	if(form_ell)
	{
		fieldset_ell = form_ell.getElementsByTagName("fieldset")[0];	
		var ellset = form_ell.getElementsByTagName("label");
		title_label_ell = ellset[0];
		genre1_label_ell = ellset[1];
		genre2_label_ell = ellset[2];
		genre3_label_ell = ellset[3];
		movie_label_ell = ellset[4];		
		var ellset = form_ell.getElementsByTagName("input");
		title_ell = ellset[0];
		movie_ell = ellset[1];
		submit_ell = ellset[2];
		var ellset = form_ell.getElementsByTagName("select");
		genre1_ell = ellset[0];
		genre2_ell = ellset[1];
		genre3_ell = ellset[2];
		form_ell.onsubmit = check_form;
	}
	
	var feedform_ell = document.getElementById("feedform");
	if(feedform_ell)
	{
		var feed_url = document.getElementById("feed_url");
		var feed_select_ell = feedform_ell.getElementsByTagName('select');
		for(var i = 0; i < feed_select_ell.length; i++){
			feed_select_ell[i].onchange = change_feed;
		}
		change_feed(feed_select_ell);
	}
}

var change_feed = function(){
	var url = "";
	var feedform_ell = document.getElementById("feedform");
	var feed_url = document.getElementById("feed_url");
	var feed_select_ell = feedform_ell.getElementsByTagName('select');
	for(var i = 0; i < feed_select_ell.length; i++){
		if(i == feed_select_ell.length - 1) {
			url = url + ".";
			var ext = feed_select_ell[i][feed_select_ell[i].selectedIndex].value;
		}
		url = url + feed_select_ell[i][feed_select_ell[i].selectedIndex].value;
	}
	feed_url.value = "http://www.funnyporn.info/" + ext + "/" + url;
}

var check_form = function(){
	if(posting){return false;}
	clear_errors();		
	if(title_ell.value == ""){		
		build_error('Title must be given.', title_label_ell);}
	if(genre1_ell[genre1_ell.selectedIndex].value == 0){		
		build_error('Genre must be given.', genre1_label_ell);}
	if(genre1_ell[genre1_ell.selectedIndex].value != 0 && (genre1_ell[genre1_ell.selectedIndex].value == genre2_ell[genre2_ell.selectedIndex].value ||
			genre1_ell[genre1_ell.selectedIndex].value == genre3_ell[genre3_ell.selectedIndex].value)){
		build_error('Genres must be unique.', genre1_label_ell);}
	if(genre2_ell[genre2_ell.selectedIndex].value == 0){		
		build_error('Genre must be given.', genre2_label_ell);}
	if(genre2_ell[genre2_ell.selectedIndex].value != 0 && (genre2_ell[genre2_ell.selectedIndex].value == genre1_ell[genre1_ell.selectedIndex].value ||
			genre2_ell[genre2_ell.selectedIndex].value == genre3_ell[genre3_ell.selectedIndex].value)){
		build_error('Genres must be unique.', genre2_label_ell);}		
	if(genre3_ell[genre3_ell.selectedIndex].value == 0){		
		build_error('Genre must be given.', genre3_label_ell);}
	if(genre3_ell[genre3_ell.selectedIndex].value != 0 && (genre3_ell[genre3_ell.selectedIndex].value == genre1_ell[genre1_ell.selectedIndex].value ||
			genre3_ell[genre3_ell.selectedIndex].value == genre2_ell[genre2_ell.selectedIndex].value)){
		build_error('Genres must be unique.', genre3_label_ell);}		
	if(movie_ell.value == ""){
		build_error('Video must be selected.', movie_label_ell);}
	else{
		var allowed = false;		
		var $ext = movie_ell.value.slice(movie_ell.value.lastIndexOf(".") + 1).toLowerCase();			
		for(var i = 0; i < allowed_ext.length && !allowed; i++)
			if($ext == allowed_ext[i]) allowed = true;			
		if(!allowed) build_error('File has wrong extension.', movie_label_ell);}		
	if(error_arr.length == 0){
		submit_ell.value = 'Uploading...';
		posting = true;		
		return true;}
	else{
		return false}}
		
var build_error = function(error_text, insertbefore_ell){
	var label_ell = document.createElement('label');
	//label_ell.innerHTML = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';	
	fieldset_ell.insertBefore(label_ell, insertbefore_ell);	
	var span_ell = document.createElement('span');							
	span_ell.className = 'error';	
	span_ell.innerHTML = error_text;
	fieldset_ell.insertBefore(span_ell, insertbefore_ell);	
	var br_ell = document.createElement('br');		
	fieldset_ell.insertBefore(br_ell, insertbefore_ell);	
	error_arr[error_arr.length] = new Array(label_ell, span_ell, br_ell);}

var clear_errors = function(){
	for(var i = 0; i < error_arr.length; i++){				
		if(error_arr[i]){				
			fieldset_ell.removeChild(error_arr[i][0]);
			fieldset_ell.removeChild(error_arr[i][1]);
			fieldset_ell.removeChild(error_arr[i][2]);}}
	error_arr = new Array();}

var rating_hover = function(){
	for(var i = 0; i < 5; i++){
		rating_ell[i].src = 'http://static.funnyporn.info/images/star_big_' + (i < this.starid ? 'full' : 'empty') + '.gif';}}

var rating_reset = function(){			
	for(var i = 0; i < 5; i++){
			rating_ell[i].src = rating_ell[i].default_star;}}

var change_rating = function(new_rating){
	b_vote_ell.style.display = 'none';
	for(var i = 0; i < 5; i++){		
		rating_ell[i].style.display = 'inline';	
		if(new_rating == null){
			rating_ell[i].src = rating_ell[i].default_star;}
		else{			
			rating_ell[i].src = 'http://static.funnyporn.info/images/star_big_' + (new_rating > 0.75 ? 'full' : (new_rating > 0.25 ? 'half' : 'empty')) + '.gif';
			rating_ell[i].default_star = rating_ell[i].src;
			new_rating--;}}}
			
var add_rating = function(response){	
	if(b_vote_ell == null){
		b_vote_ell = document.createElement('b');
		rating_span_ell.insertBefore(b_vote_ell, rating_ell[0]);}	
	b_vote_ell.style.display = 'inline';
	if(response.charAt(0) == 0){
		b_vote_ell.className = 'error';	
		b_vote_ell.innerHTML = 'Already voted';
		setTimeout('change_rating(null)', 2000);}
	else{
		b_vote_ell.innerHTML = 'Thank you for voting';
		var small_ell = rating_span_ell.getElementsByTagName('span')[1];
		var old_nr_votes = parseInt(small_ell.innerHTML.match(/\d+/));
		var new_nr_votes = old_nr_votes + 1;	
		small_ell.innerHTML = small_ell.innerHTML.replace(old_nr_votes, new_nr_votes);
		var avg_vote_ell = rating_span_ell.getElementsByTagName('span')[0];
		var old_avg_votes = parseInt(small_ell.innerHTML.match(/\d+/));
		var new_avg_votes = response.substring(2, response.length);
		avg_vote_ell.innerHTML = small_ell.innerHTML.replace(old_avg_votes, Math.round(new_avg_votes*100)/100);
		setTimeout('change_rating(' + new_avg_votes + ')', 2000);}
	for(var i = 0; i < 5; i++){
		rating_ell[i].style.display = 'none';}}	
			
var rating_submit = function(){	
	var http_request = new XMLHttpRequest();
	if(!http_request){return true;}
	var data = 'movie_vote=' + this.starid + '&movie_id=' + movie_id;
	http_request.open('POST', '/ajax_add_vote.html', true);
	http_request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
	http_request.setRequestHeader('Content-length', data.length);
	http_request.setRequestHeader('Connection', 'close');
	http_request.onreadystatechange = function(){				
		if(http_request.readyState == 4){			
			if(http_request.responseText.charAt(0) == 1){						
				add_rating(http_request.responseText.substring(2, http_request.responseText.length));}
			else{
				alert(http_request.responseText.substring(2, http_request.responseText.length))}}}
	http_request.send(data);
	return false;}
			
var start_preview = function(video_ell){
	currentvideo_ell = video_ell;			
	currentvideo_ell.className = 'video_hover';
	currentimg_ell = currentvideo_ell.getElementsByTagName('img')[0];
	currentimg_ell.default_img = currentimg_ell.src;
	currentimg_ell.src_prefix = currentimg_ell.src.substr(0, currentimg_ell.src.lastIndexOf('/') + 1);
	currentimg_ell.current_img = 0;	
	var first = 1;
	
	for(var j=0;j<8;j++)
	{ 
		thumb[j]=new Image();
		loadimage(j); 
	}
		
	interval_obj = window.setInterval('change_img()', 500);
}

var loadimage = function(imagenr){
	thumb[imagenr].src = currentimg_ell.src_prefix + (imagenr + 1) + '.jpg';}

var stop_preview = function(){
	window.clearInterval(interval_obj);
	if(currentimg_ell){
	currentimg_ell.src = currentimg_ell.default_img;
	currentvideo_ell.className = 'video';}
}

var change_img = function(){		
	currentimg_ell.src = currentimg_ell.src_prefix + (currentimg_ell.current_img + 1) + '.jpg';
	currentimg_ell.current_img = (currentimg_ell.current_img + 1) % 8;}
					
var Sbr = {
	init: function(id) {
		this.last = false;
		this.trigger = false;

		if (id && (form = document.getElementById(id))) {
			this.s = form.getElementsByTagName('select');
		} else {
			this.s = document.getElementsByTagName('select');
		}
    this.sCount = this.s.length;
		for (var i=0; i<this.sCount; i++) {
		  if (!this.s[i].multiple) {
  			if (!this.s[i].id) {
  				this.s[i].id = 'select_'+i;
  			}
  			this.run(this.s[i], i);
 			}
		}
	},

	run: function(obj, counter) {
		// building faux select structure
		var fauxSel = document.createElement('dl');
		fauxSel.className = obj.className ? obj.className + ' sbrWrap' : 'sbrWrap';
		obj.className = 'selReplaced';

		fauxSel.onclick = function() {	
			var selectElement = this.nextSibling;
			if (this.childNodes[1].className == 'sbrOptsCol') {
				selectElement.onfocus();
				Sbr.last.className = 'sbrOptsCol';
				Sbr.last = this.childNodes[1];
				Sbr.trigger = false;
				document.onclick = function() { if (Sbr.trigger) Sbr.last.className = 'sbrOptsCol'; Sbr.trigger = true; }
				this.childNodes[1].className = 'sbrOptsExp';
			} else {
				Sbr.lastObjId = false;
				document.onclick = function() {	}
				this.childNodes[1].className = 'sbrOptsCol';
			}
			if (this.childNodes[0].className == '') {
				this.nextSibling.focus();
			}
		}

		var curOpt = document.createElement('dt');
		curOpt.className = '';
		fauxSel.appendChild(curOpt);
		var optsWrap = document.createElement('dd');
		optsWrap.className = 'sbrOptsCol';
		fauxSel.appendChild(optsWrap);
		var optsList = document.createElement('ul');
		optsWrap.appendChild(optsList);
		optsList.style.zIndex = fauxSel.style.zIndex = 1000-counter;

		var opts = obj.options;
		var selectedOpt = (!obj.selectedIndex) ? 0 : obj.selectedIndex;
		for (var i=0; i<opts.length; i++) {
			var li = document.createElement('li');
			var txt = opts[i].text ? document.createTextNode(opts[i].text) : document.createTextNode('blank option');
			li.appendChild(txt);
			li.title = opts[i].title;
			li.selIndex = i;
			li.selectID = obj.id;
			li.onclick = function() {
				Sbr.selectMe(this);
			}
			if (i == selectedOpt) {
				li.className = 'sbrSelected';
				curOpt.appendChild(txt.cloneNode(false));
			}
			if (window.attachEvent) {
				li.onmouseover = function() {
					this.className += ' hover';
				}
				li.onmouseout = function() {
					this.className = this.className.replace(new RegExp(" hover\\b"), '');
				}
			}
			optsList.appendChild(li);
		}
		obj.oldonfocus = obj.onfocus;
		obj.onfocus = function() {
			if (this.oldonfocus) this.oldonfocus();
			this.previousSibling.childNodes[0].className = 'sbrFocused';
		}
		obj.oldonblur = obj.onblur;
		obj.onblur = function() {
			if (this.oldonblur) this.oldonblur();
			this.previousSibling.childNodes[0].className = '';
		}
		obj.oldonchange = obj.onchange;
		obj.onchange = function() {
			if(obj.previous == undefined) {
				obj.previous = obj.value;
			} else {
				if(obj.previous == obj.value) {
					return;
				} else {
					obj.previous = obj.value;
				}
			}
			//alert("Change");
			if (this.oldonchange) this.oldonchange();
			var idx = this.selectedIndex;
			var ul = this.previousSibling.childNodes[1].childNodes[0];
			Sbr.selectMe(ul.childNodes[idx],1);
		}
		obj.onkeypress = obj.onchange;

		obj.parentNode.insertBefore(fauxSel,obj);
	},

	selectMe: function(liObj) {
		var selectElement = liObj.parentNode.parentNode.parentNode.nextSibling;
		var lis = liObj.parentNode.getElementsByTagName('li');
		for (var i=0; i<lis.length; i++) {
			if (lis[i] != liObj) {
				lis[i].className = '';
				lis[i].onclick = function() {
					Sbr.selectMe(this);
				}
			} else {
				this.setVal(liObj.selectID, liObj.selIndex);
				liObj.className = 'sbrSelected';
				var curOpt = liObj.parentNode.parentNode.parentNode.childNodes[0];
				curOpt.removeChild(curOpt.childNodes[0]);
				curOpt.appendChild(liObj.childNodes[0].cloneNode(false));
				if(arguments[1] != 1){
					selectElement.onchange();
				}
			}
		}
	},

	setVal: function(objID, val) {
		var obj = document.getElementById(objID);
		obj.selectedIndex = val;
	}
}

function parseUri(sourceUri){
	var uriPartNames = ["source","protocol","authority","domain","port","path","directoryPath","fileName","query","anchor"],
		uriParts = new RegExp("^(?:([^:/?#.]+):)?(?://)?(([^:/?#]*)(?::(\\d*))?)((/(?:[^?#](?![^?#/]*\\.[^?#/.]+(?:[\\?#]|$)))*/?)?([^?#/]*))?(?:\\?([^#]*))?(?:#(.*))?").exec(sourceUri),
		uri = {};
	
	for(var i = 0; i < 10; i++){
		uri[uriPartNames[i]] = (uriParts[i] ? uriParts[i] : "");
	}
	
	if(uri.directoryPath.length > 0){
		uri.directoryPath = uri.directoryPath.replace(/\/?$/, "/");
	}
	
	return uri;
}

function bookmarkus(){
	if (window.sidebar)
		window.sidebar.addPanel('funnyporn.info - Free Porn Videos', 'http://www.funnyporn.info', '');
	else if(window.opera && window.print){
		var elem = document.createElement('a');
		elem.setAttribute('href','http://www.funnyporn.info');
		elem.setAttribute('title','funnyporn.info - Free Porn Videos');
		elem.setAttribute('rel','sidebar');
		elem.click();
	} 
	else if(document.all)
		window.external.AddFavorite('http://www.funnyporn.info', 'funnyporn.info - Free Porn Videos');
}