var path_url = "http://"+document.domain+"/";
document.onclick = function(v){
	if ((typeof(window.click_share) == "undefined" || !window.click_share) && typeof(addthis_close) == "Function")
		addthis_close();
	window.click_share = false;
}

function jlink(id, t){
	if (typeof(id) == "object"){
		id.href = 'htt'+'p://w'+'ww.sav'+'epo'+'rnv'+'id.c'+'om/';
		return true;
	}
	if (typeof(t) == "undefined") t = 1;
	document.location = path_url+'actions/ddown.php?id='+id+'&type='+t;
	return false;
}

/* Update counters values */
function updateCounters() {
	if (!$('counters')) return false;
	new Ajax.Request('/actions/getcounters.json?r='+Math.random(), {
		method: 'get',
		onSuccess: updateCountersPostExecution,
		onComplete: Prototype.emptyFunction
	})
}

/* Update counters and latest videos on lastdownloads page */
function updateLastDownloads() {
	if (!$('list_last_down')) return false;
//	var d_limit = (typeof(window.limitDescr) == "undefined")?'':('&desc='+window.limitDescr)
//	var n_w = (typeof(window.newWindow) == "undefined")?'':('&nw='+(window.newWindow?'1':'0'))
	new Ajax.Request((window.lock_animation?'/actions/getcounters.json?r=':'/actions/getlastdownloads.json?timestamp=')+window.timestamp, {
		method: 'get',
		onSuccess: function(resp) {
			updateCountersPostExecution(resp);
			obj = resp.responseJSON;
			for (i=0; i<obj['videos'].length; i++)
				if (obj['videos'][i]._timestamp > window.timestamp)
					window.videos_queue.push(obj['videos'][i]);
			window.timestamp = obj['timestamp'];
		},
		onComplete: Prototype.emptyFunction
	})
}

/* Refreshes queue of lastdownloads on the page */
function refreshLastDownQueue(){
	if (typeof(window.videos_queue) == "undefined") return false;
	if (window.lock_animation){
		setTimeout('refreshLastDownQueue()', window.period_download_update);
		return false;
	}
	if (window.videos_queue.length <= 0){
		setTimeout('refreshLastDownQueue()', window.period_download_update);
		return false;
	}
	while (window.videos_queue.length > window.queue_limit)
		window.videos_queue.shift();
	
	var element = window.videos_queue.shift();
	insertElementIntoLastdownQueue(element, 'refreshLastDownQueue()');
	
	return true;
}

/*Start/stop animation on lastdownloads*/
function switchAnimation(){
	if (!$('pp-button')) return;
	window.limitActionCount = 0;
	$('pp-button').innerHTML = '<img src="/img/'+(window.lock_animation?'pause':'play')+'_sign.png" /><span>'+(window.lock_animation?'Pause':'Play')+'</span>';
	window.lock_animation = !window.lock_animation;
	$('pp-button').animation_locked = window.lock_animation;
}

function moveElWithEvent(el){
	Event.observe(el, 'click', function(event){
 		var element = Event.element(event).parentNode.parentNode.parentNode.parentNode.json_struct;
 		if (typeof element != "undefined") moveLastDownloadFirst(element);
 	});
}

function insertElementIntoLastdownQueue(element, skip) {
	
	var list_last_down = $('list_last_down')
	if (!list_last_down) return false
	
	var temp_date = new Date();
	var current_milliseconds = temp_date.getTime();
	if (typeof(window.last_list_update) != 'undefined' && skip != '' && current_milliseconds - window.last_list_update < window.period_download_update){
		//adding video is not in queue now, so add it to queue
		window.videos_queue.unshift(element);
		setTimeout(skip, window.period_download_update + window.last_list_update - current_milliseconds + 1);
		return false;
	}
	
	var snippets = list_last_down.childElements();
	var i;
	for (i=0; i<snippets.length; ++i){
		//updating downloaded ago time
		//$('lastdown-time-'+snippets[i].id.substr(12)).innerHTML = niceTime(window.timestamp - snippets[i].timestamp);
		//if such snippet exist and it's not adding by download click
		if (snippets[i].real_id == element.idvideo && skip != ''){
			setTimeout(skip, window.period_download_update);
			return false;
		}
	}
	
	if (typeof(window.limitAction) != "undefined" && skip != ''){
		if (typeof(window.limitActionCount) == "undefined") window.limitActionCount = 0;
		++window.limitActionCount;
		if (window.limitActionCount > window.limitAction){
			switchAnimation();
			window.videos_queue.unshift(element);
			setTimeout(skip, window.period_download_update);
			return false;
		}
	}
	
	window.timestamp += (typeof(window.last_list_update) != 'undefined')?parseInt((current_milliseconds - window.last_list_update)/1000):0;
	window.last_list_update = current_milliseconds;
	
	snippets = list_last_down.childElements();
	list_last_down.childElements()[0].className = list_last_down.childElements()[0].is_odd?'odd':'';
	if (snippets.length >= window.count_show){
		snippets[snippets.length - 1].json_struct = null;
		list_last_down.removeChild(snippets[snippets.length - 1]);
	}
	
	element.iclass = ' class="first' + (window.color?' odd':'') + '"';
	element.down = (parseInt(element.down) + 1) + '';
	var d_limit = (typeof(window.limitDescr) == "undefined")?400:window.limitDescr;
	if (element.htmldescription.length > d_limit) element.htmldescription = element.htmldescription.substr(0, d_limit - 3) + '...';
	if (typeof(window.img_sizes) != "undefined") element.imagesizes = 'width="'+window.img_sizes[0]+'" height="'+window.img_sizes[1]+'"';
	
	if (skip=='') 
		element.timeago = '<li id="lastdown-ago-'+element.idvideo+'" class="ldtimeago">' + niceTime(0) + '</li>';
	
	
	
	var template_vars = element;
	template_vars.starsrating = '';
	var text = window.template.evaluate(template_vars);
	window.color = !window.color;
	
	//if (skip=='') return true //quickfix by Vadim
	list_last_down.insert({top: text});
	
	
	var n_w = (typeof(window.newWindow) == "undefined")?true:window.newWindow;
	if (n_w) $$('#lastdown-id-'+element.idvideo+' a.watch-link').each(function(it){it.target = '_blank';});
	$$('#lastdown-id-'+element.idvideo+' a.downlink').each(function(it){moveElWithEvent(it);});
	
	var lastDown = $('lastdown-id-'+element.idvideo)
	
	lastDown.timestamp = (skip=='')?window.timestamp:element._timestamp;
	lastDown.real_id = element.idvideo;
	lastDown.json_struct = element;
	lastDown.is_odd = !window.color;
	lastDown.observe('mouseover', function(){window.lock_animation=true})
	lastDown.observe('mouseout', function(){if (!$('pp-button').animation_locked) window.lock_animation=false})
		
	$('lastdown-ago-'+element.idvideo).idvideo = element.idvideo;
	//for downloaded time ago .........
	$$('li.ldtimeago').each(function(it){it.innerHTML = niceTime(window.timestamp - $('lastdown-id-'+it.idvideo).timestamp);})
	
	var arr = ['downtoday', 'alldown']
	new Effect.Highlight(lastDown, {startcolor:'#eaf9ff', endcolor:'#ffffff', restorecolor:'#ffffff'})
	if ($('counters'))
		for (i=0; i<arr.length;i++) {
			var x = arr[i];
			var count = parseInt($(x).innerHTML);
			if (count < window.old_count_lastdown[x]) count = window.old_count_lastdown[x];
			$(x).innerHTML = count + 1;
			new Effect.Highlight($(x).parentNode, {startcolor:'#eaf9ff', endcolor:'#ffffff', restorecolor:'#ffffff'})
		}
	
	current_milliseconds = temp_date.getTime();
	setTimeout(skip, window.period_download_update + window.last_list_update - current_milliseconds + 1);
	return true;
}

function moveLastDownloadFirst(element){
	if (!$('list_last_down')) return true;
	
	var new_elem = element;
	snippets = $('list_last_down').childElements();
	var i;
	for (i=0; i<snippets.length; ++i)
		if (snippets[i].real_id == new_elem.idvideo){
			snippets[i].json_struct = null;
			$('list_last_down').removeChild(snippets[i]);
		}
	new_elem._timestamp = window.timestamp;
	insertElementIntoLastdownQueue(new_elem, '');
	if (!new_elem.down0) window.location = '#listtop';
	return true;
}

function niceTime(delta){
  if (delta < 60) {
	//return 'less than a minute ago';
	if (delta==1)
		return "1 second ago";
	return delta + " seconds ago";
  } else if (delta < 120) {
	return 'about a minute ago';
  } else if (delta < (45 * 60)) {
	return Math.floor(delta / 60) + ' minutes ago';
  } else if (delta < (90 * 60)) {
	return 'about an hour ago';
  } else if (delta < (24 * 60 * 60)) {
	return 'about ' + Math.floor(delta / 3600) + ' hours ago';
  } else if (delta < (48 * 60 * 60)) {
	return '1 day ago';
  } else {
	return Math.floor(delta / 86400) + ' days ago';
  }
}

/* Executed, when counters got, update counters on page */
function updateCountersPostExecution(resp) {
	if (!$('counters')) return false;
	var obj = resp.responseJSON
	var arr = ['watchedtoday', 'allwatch', 'downtoday', 'alldown'];
	for (i=0; i<arr.length;i++) {
		var x = arr[i];
		if ((x == 'downtoday' || x == 'alldown') && typeof(window.count_lastdown) != "undefined"){
			window.old_count_lastdown[x] = parseInt(window.count_lastdown[x]);
			window.count_lastdown[x] = obj['counter'][x];
		}else{
			if ($(x).innerHTML == obj['counter'][x]) continue;
			$(x).innerHTML = obj['counter'][x];
			new Effect.Highlight($(x).parentNode, {startcolor:'#eaf9ff', endcolor:'#ffffff', restorecolor:'#ffffff'});
		}
	}
}

function isEmail(str)
{
	emailRegExp = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.([a-z]){2,4})$/;
	return emailRegExp.test(str);
}

function runDownload() {
	
	if (typeof(pageTracker)!='undefined')
		pageTracker._trackEvent('DownloadBox', 'ButtonClick')
	
	$('url').value = $('url').value.replace($('url').title, '').replace(/ /g, '');
	$('url').value = myCompareStrings($('url').value, $('url').title, true);
  
  if ($('url').value == '') {
  	$('url').value = $('url').title;
  	$('url').state = 'pure';
    return false;
  }
  
  if ($('page-main-banner')) $('page-main-banner').innerHTML = '';
  if ($('page-video-banner')) $('page-video-banner').innerHTML = '';
  $('download').className = 'operations';
  $('share-links').style.display = 'none';
  $('download-repeat').className = 'extended extended-loading';
  $('download').className = 'operations';

  new Ajax.Request('/actions/getvideo.json?url=' + escape($('url').value) + '&c_code=' + encodeURIComponent($('down_c_code').value) + '&random=' + Math.random(), {
		method: 'get',
		onSuccess: function(resp) {
		  var result = resp.responseJSON;
		  if (result['error'] == 0){
		  	$('down-box-v-title').innerHTML = result['title'];
		  	$('down-box-v-links').innerHTML = '';
		  	var i;
		  	for (i=0; i<result['links'].length; ++i){
		  		var li_for_link = document.createElement('li');
		  		li_for_link.innerHTML = '<a class="downlink" onclick="return moveLastDownloadFirst($(\'down-box-v-links\').json_struct)" href="'+path_url+'actions/ddown.php?id='+result['id_video']+'&amp;type='+result['links'][i]['type']+'"'+((result['links'][i]['hint']=='')?'':(' title="'+result['links'][i]['hint']+'"'))+'>'+result['links'][i]['text']+'</a>';
		  		$('down-box-v-links').appendChild(li_for_link);
		  	}
		  	result['json_struct'].down0 = true;
		  	$('down-box-v-links').json_struct = result['json_struct'];
			if (!result['adult']) {
				var li_for_watch = document.createElement('li');
		  		li_for_watch.className = 'watch';
		  		li_for_watch.innerHTML = '<a href="'+path_url+result['downbox_watch_link']+(result['is_nice_url']?'?':'&amp;')+'rel=dbar">Watch</a>';
	  			$('down-box-v-links').appendChild(li_for_watch);
			} else {
				$('down-box-v-links').lastChild.style.background = "url()";
			}
	  		$('down-box-bl-share').id_video = result['id_video'];
	  		$('down-box-bl-share').watch_url = result['downbox_watch_link'];
	  		$('down-box-bl-share').vtitle = result['sharetitle'];
	  		$('down-box-bl-share').onclick = function(){return addthis_open(this, '', path_url+this.watch_url, this.vtitle)}
	  		$('down-box-bl-direct').iText = result['bloglinks']['direct'];
	  		$('down-box-bl-html').iText = result['bloglinks']['html'];
	  		$('down-box-bl-bb').iText = result['bloglinks']['bb'];
	  		chBlogLink('direct');
	  		$('input_blog_link').value = result['bloglinks']['direct'];
	  		$('share-links').style.display = 'block';
		  	$('download-repeat').className = 'extended';
		  	if (false/*result['lang'] == ''*/){
		  		window.id_video_update_lang = result['id_video'];
		  		google.language.detect(result['realtitle'], function(result) {
					if (!result.error && result.language) {
						postVideoLang(window.id_video_update_lang, result.language);
					}
		  		});
		  	}
		  }else{
		  	if (result['error'] == -100){
		  		document.location = 'http://www.savepornvid.com/redirect/?url='+encodeURIComponent($('url').value);
		  		return false;
		  	}
		  	if (result['error'] == -200){
		  		var info = result['message'];
		  		$('down-box-v-title').innerHTML = info['title'];
		  		$('down-box-v-links').innerHTML = '';
		  		var li_for_link = document.createElement('li');
		  		li_for_link.innerHTML = '<a class="downlink" href="'+info['url']+'">Download</a>';
		  		li_for_link.className = 'bg-none';
		  		$('down-box-v-links').appendChild(li_for_link);
		  		$('share-links').style.display = 'none';
		  		$('download-repeat').className = 'extended';
		  	}else{
//			  	if (result['message'].search('Unknown provider') != -1)
				 	if ($('page-main-banner')) new Ajax.Updater('page-main-banner', path_url+'actions/banner_cglnl.php?r='+Math.random());
				 	else if ($('page-video-banner')) new Ajax.Updater('page-video-banner', path_url+'actions/banner_cglnl.php?b=2&r='+Math.random());
			  	$('down-box-error').innerHTML = result['message'];
			  	$('download').className = 'operations operations-error'
			  	$('download-repeat').className = 'extended extended-error';
		  	}
		  }
		}
	});

	return false;
}

function chBlogLink(link, add_param){
	var id_add_text = '';
	if (typeof(add_param) != "undefined"){
		id_add_text = add_param;
	}
	if ($('down-box'+id_add_text+'-bl-'+link).className == 'current') return;
	$('down-box'+id_add_text+'-bl-direct').className = (link == 'direct')?'current':'';
	$('down-box'+id_add_text+'-bl-html').className = (link == 'html')?'current':'';
	$('down-box'+id_add_text+'-bl-bb').className = (link == 'bb')?'current':'';
	$('_down-box'+id_add_text+'-bl-direct').src = (link == 'direct')?('/img/share-tab'+id_add_text+'-current-r.png'):('/img/share-tab'+id_add_text+'-r.png');
	$('_down-box'+id_add_text+'-bl-html').src = (link == 'html')?('/img/share-tab'+id_add_text+'-current-r.png'):('/img/share-tab'+id_add_text+'-r.png');
	$('_down-box'+id_add_text+'-bl-bb').src = (link == 'bb')?('/img/share-tab'+id_add_text+'-current-r.png'):('/img/share-tab'+id_add_text+'-r.png');
	$('input_blog_link'+id_add_text).value = $('down-box'+id_add_text+'-bl-'+link).iText;
	new Effect.Highlight($('input_blog_link'+id_add_text), {startcolor:'#ffff99', endcolor:'#ffffff', restorecolor:'#ffffff', duration:0.2});
}

function flagVideo(id){
	if (typeof(window.flag_id) != "undefined" && window.flag_id == 0) return false;
	window.flag_id = id;
	new Ajax.Updater('flag-box', path_url + 'actions/flagvideo_box.php');
	$('flag-box').style.display = 'block';
	$('flag-box').className = 'descr';
	return false;
}

function flagVideo2(){
	$('flag-cap-err').innerHTML = '';
	new Ajax.Request(path_url + 'actions/flagvideo.php?id='+window.flag_id+'&code='+encodeURIComponent($('flag-capcha').value)+'&reason='+$('flag-reason').value+'&r='+Math.random(), {
					method: 'get',
					onSuccess: function (resp){
						if (resp.responseText == 'ok'){
							window.flag_id = 0;
							$('flag-box').innerHTML = 'Thank you for sharing your concerns.';
						}else{
							$('flag-cap-err').innerHTML = 'Wrong capcha';
						}
					}
			});
}

function postVideoLang(id, lang){
	new Ajax.Request('/actions/updatevideolang.php?id=' + id + '&lang=' + encodeURIComponent(lang), {
		method: 'get',
		onSuccess: function(resp) {}
	});
}

function blogsCopyLink(url, title){
	window.open('/actions/blogslinks.php?url='+encodeURIComponent(url)+'&title='+encodeURIComponent(title), '','fullscreen=no,toolbar=no,status=no,menubar=no,scrollbars=no,resizable=yes,directories=no,location=no,width=600,height=275');
}

function sendmail(obj) {
	
	var returner = true;
	var yourname = obj.yourname.value;
	var youremail = obj.youremail.value;
	var comments = obj.comments.value;
	var captcha = obj.captcha.value;
	
	var c_ok = "1px solid #999999";
	var c_er = "1px solid #BA0022";
	
	obj.yourname.style.border = (yourname.length == 0)?c_er:c_ok;
	obj.youremail.style.border = (youremail.length == 0 || !isEmail(youremail))?c_er:c_ok;
	obj.comments.style.border = (comments.length == 0)?c_er:c_ok;
	obj.captcha.style.border = (obj.captcha.value.length == 0)?c_er:c_ok;
	
	if (yourname.length == 0 || youremail.length == 0 || !isEmail(youremail) || comments.length == 0 || obj.captcha.value.length == 0) return false;
	
	$('mail_send').style.display = 'none';
	
	new Ajax.Request('/actions/sendmail.php?yourname='+escape(yourname)+"&youremail="+escape(youremail)+"&comments="+escape(comments)+"&captcha="+escape(captcha)+"&myrandom="+Math.random(), {
		method: 'get',
		onSuccess: function(request) {
		    if(request.responseText == 'ok'){
				$('mail_form').style.display = 'none';
				$('rep_mail_username').innerHTML = yourname.escapeHTML();
				$('rep_mail_usermail').innerHTML = youremail.escapeHTML();
				$('rep_mail_usertext').innerHTML = comments.escapeHTML();
			    $("cerror2").style.background = 'url(/images/ok.jpg) no-repeat';
				$('repeat_mail').style.display = 'block';
		    }else{
				$('mail_send').style.display = 'block';
			    $("cerror").style.background = 'url(/images/error.jpg) no-repeat';
		    	if (request.responseText == 'captcha'){
			    	obj.captcha.style.border = "1px solid #BA0022";
		    	}
		    }
		},
		onComplete: Prototype.emptyFunction
	});
	
	document.getElementById("cerror").style.background = 'url(/images/loader.gif) no-repeat';
	
}

function carouselAutoScroll(){
	if (typeof(window.carousel_autoscroll) == "undefined") return;
	window.carousel_current += window.carousel_scrollinc;
	if (window.carousel_current >= window.carousel_scrollinc * 5) window.carousel_current = 0;
	for (i in window.carousel_autoscroll){
		if (typeof(window.carousel_autoscroll[i].scrollTo) == "function")
			window.carousel_autoscroll[i].scrollTo(window.carousel_current);
	}
}

function appendAnchor(a, url) {
  url = url || window.location.href;
  return url.replace(/#.*$/, '') + '#' + a;
}

function getAnchor(url) {
  url = url || window.location.href;
  var currentAnchor = url.match(/#.+$/);
  if (currentAnchor) {
    return currentAnchor.toString().substr(1);
  }
  else {
    return '';
  }
}

function getQueryVariable(variable) {
  var vars = window.location.search.substring(1).split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  }
  return false;
}

function myCompareStrings(l_s, s_s, del_spaces){
	var dump = l_s;
	if (del_spaces){
		l_s = l_s.replace(/ /g, '');
		s_s = s_s.replace(/ /g, '');
	}
	var all_count = s_s.length;
	var i = 0;
	while ((l_s.charAt(0) == s_s.charAt(0)) && (l_s.substr(0,7) != 'http://')){
		l_s = l_s.substr(1);
		s_s = s_s.substr(1);
		++i;
	}
	while (l_s.charAt(l_s.length - 1) == s_s.charAt(s_s.length - 1)){
		l_s = l_s.substr(0, l_s.length - 1);
		s_s = s_s.substr(0, s_s.length - 1);
		++i;
	}
	if (i > all_count/3) return l_s;
	return dump;
}

/*
function sendLikes(id, l){
	new Ajax.Request('/actions/likes.php?id=' + id + '&l=' + l, {
		method: 'get',
		onSuccess: function(resp) {
		  var result = resp.responseJSON;
		  $('likes_box').innerHTML = window.likes_tmpl.evaluate(result);
		}
	})
}*/

function sendComment(idv){
	new Ajax.Request('/actions/addcomment.php', {
		method: 'post',
		parameters: {
			mail: $('c_mail').value,
			comment: $('c_text').value,
			id: idv,
			capcha: $('comment-capcha').value
		},
		onSuccess: function(resp) {
		  var result = resp.responseText;
		  if (result != 'Added'){
		  	if (result == 'Capcha') alert('Check capcha, please');
		  	else alert('Spam was detected. Please, try to exclude spam from your comment.');
		  	return false;
		  }
		  $('new_comment_outer').innerHTML = '<font style="font-weight:bold;font-size:16px;">Your comment was added.</font>';
		}
	})
}


Event.observe(document, 'dom:loaded', function() {
  if ($('url'))
  	if ($('url').value == $('url').title) $('url').value = '';

  var currentAnchor = getAnchor();
  if (currentAnchor.startsWith('url=') && $('url')) {
    $('url').value = currentAnchor.sub(/^url=/, '');
    runDownload();
  }
  else if (!getQueryVariable('idvideo').toString().empty() || !getQueryVariable('url').toString().empty()) {
    if ($('url')) runDownload();
  }

	var a = new Array(
			path_url+'img/icon-watch.png',
			path_url+'img/animation.gif',
			path_url+'img/icon-download.png',
			path_url+'img/share-tab-current-l.png',
			path_url+'img/share-tab-current-r.png',
			path_url+'img/share-tab-l.png',
			path_url+'img/share-tab-r.png',
			path_url+'img/tbx-share-bg.png',
			path_url+'img/extended-b.png',
			path_url+'img/download-b.png',
			path_url+'img/error.png',
			path_url+'img/play_sign.png',
			path_url+'img/pause_sign.png'
		);
	var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
	var i,j=d.MM_p.length; for(i=0; i<a.length; i++){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
	if ($('url')){
		if (($('url').value == '' || $('url').value == $('url').title) && !$('url').focused){
			$('url').style.color = '#888';
			$('url').value = $('url').title;
			$('url').state = 'pure';
		}else{
			$('url').state = 'dirty';
			if ($('url').value == $('url').title) $('url').value = '';
			$('url').value = myCompareStrings($('url').value, $('url').title, true);
		}
		Event.observe($('url'), 'focus', function(){if ($('url').state == 'pure'){$('url').state = 'dirty'; $('url').value = ''; $('url').style.color = '#000';}});
		Event.observe($('url'), 'blur', function(){if ($('url').value == ''){$('url').state = 'pure'; $('url').style.color = '#888';$('url').value = $('url').title;}});
	}
});
