function toggle(element) { if($(element)) { $(element).style.display= $(element).style.display != 'none' ? 'none' : 'block'; } }
function show(element) { if($(element)) { $(element).style.display= 'block'; } }
function hide(element) { if($(element)) { $(element).style.display= 'none'; } }
function cancel(flag){ if(flag == 1) { return true; } else { return false; } }
var fade_obj;
function fade_in(Obj) { fade_obj= Obj; for (i=0;i<=10;i++) { setTimeout('setOpacity('+i+')',100*i); } }
function setOpacity(v) {	$(fade_obj).style.opacity = v/10;	$(fade_obj).style.filter = 'alpha(opacity=' + v*10 + ')'; if (v==0) { show(fade_obj); } }
function resizer(size,ele) { $(ele).style.height=size; }
function explain(url,func) { xhr=XMLSupport(); if (xhr) { if (func=='') { func= "print_out"; } eval('xhr.onreadystatechange='+func+';'); xhr.open("GET",url,true); xhr.send(null); } }
function print_out() { if (XMLReady()) { show('overshadow'); $('poptarget').innerHTML= '<div style="height:500px; width:750px; padding:5px;">'+xhr.responseText+'</div>'; } } 
function XMLForum(types,pid,args) { if (types=="star") { var ids="star"+pid; var urls="f_ajax.php?id="+pid+"&rate="+args; ajaxRequest(ids,urls); } }
function loadingImage(what) { $(what).innerHTML='<center><h1 style="color:#FFFFFF;">Loading...<br><img src="'+loadIMG+'"></h1></center>'; }
function browsemID(pers) { XMLPage('process-ajax_browser_profile.php?person='+pers,'gallery'); GoTo('1'); }

function $(element) {
 if (document.getElementById) { return document.getElementById(element);  }
  else if (document.all) { return document.all[element]; }
  else if (document.layers) { return document.layers[element]; }
  else { confirm("Oops! No Support.\r\nYour Browser does not support standard DOM methods.\r\n\r\nThis is a basic function of all modern Web Browsers.\r\nYou should consider updating your Web Browser to the latest version."); }
}

function XMLReady() { 
 if (xhr.readyState==4) { if (xhr.status==200) { clearTimeout(xhrTimeout); xhrTimeout='done'; return true; } else { xhr.abort(); return false; } } 
}
function ajaxTimeout(){ xhr.abort(); xhrTimeout='done'; alert("The AJAX request timed out after 30 seconds, as a safeguard for Server speed. You can try your request again."); }

var xhr=null; var xhrTimeout='done';
function XMLSupport() {
 var xmlcheck=null;
  if (window.XMLHttpRequest) { xmlcheck= new XMLHttpRequest(); }
   else if (window.ActiveXObject) { try { xmlcheck= new ActiveXObject("Microsoft.XMLHTTP"); } catch(err) { xmlcheck= new ActiveXObject('Msxml2.XMLHTTP'); } }
 if (xmlcheck==null) { confirm('Error!\r\nWeb Browser Failed to Support.\r\n\r\nXML HTTPRequest Failed. This method is used to update a webpage. It is supported by all modern Web Browsers. Your Web Browser failed to support this feature.\r\n\r\nYou should download the latest updates for your Web Browser and try again.'); return false; }
 return xmlcheck;
}

function statbar(code) {
 var sM;
  if (code=='done') { sM= "Done"; }
  else if (code=='ajax') { sM= "Sending Request... waiting for Server to respond." }
  else { sM= code; }
  try { window.status= sM; return true; } catch(err) { return true; }
}

function toIFrame(obj) { // totalviewer
 if(typeof(obj.href) !== 'undefined' && typeof(obj.target) !== 'undefined') {
    var lhref= obj.href; var tG= "xmlembed=yes&target="+obj.target;
    lhref+= lhref.indexOf('?') == -1 ? "?" : "&";
   if (obj.target=="_self") { document.location.href= lhref+"target=iframe"; } 
   else if (obj.target=="newthisweek") { if (xhrTimeout=='done') { loadingImage('newthisweek'); } GoTo(2); ajaxRequest('newthisweek',lhref+tG); }
   else if (obj.target=="gallery") { GoTo(1); ajaxRequest('gallery',lhref+tG); }
    else { var targto= obj.target; $(targto).src= lhref+"target=iframe"; if (obj.target=="magpersonal") { GoTo(0); } }
 }
}

var objButton;
function disableButton(obj,time) {
 if (obj!='') { objButton=obj; }
 if (time=='now') { objButton.disabled=false; return false; }
 if (time != 0) { setTimeout("disableButton('','now')",time*1000); }
 objButton.disabled=true;
}

function buildPOST(which) {
 theForm = document.forms[which]; var urls = "";
 for (e=0;e<theForm.elements.length;e++) {
   if (theForm.elements[e].name!='') {
	   var name= theForm.elements[e].name;
	   if (theForm.elements[e].value) { urls+=(urls=='')?'':'&'; urls+= name+'='+escape($F(which,e)); }
   }
 }
urls+= "&lowres=yes&xmlembed=yes";
return urls;
}

function $F(name,element,direct) {
  var mValue="";
  var formType= document.forms[name].elements[element].type;
  var formElem= document.forms[name].elements[element];
	if (direct == "type") { return formType; }
	if (direct == "node") { return formElem; }
	else if (formType == "text" || formType == "textarea" || formType == "button" || formType == "hidden")
	  { return formElem.value; }
	else if (formType == "checkbox" || formType == "radio") { 
		if (formElem.checked) { return formElem.value; }
		  else { return ""; } }
	else if (formElem.multiple) {
		for (var i=formElem.options.length-1; i >= 0;i--) {
		  if (formElem.options[i].selected) { mValue+=mValue==''?'':'|'; mValue+= formElem.options[i].value; 
		} } return mValue; }
	else { 
		if (formElem.value && formElem.value != "") { return formElem.value; }
		 else {	return formElem.options[formElem.selectedIndex].text; } }
}

function installSearchEngine() {
 if (window.external && ("AddSearchProvider" in window.external)) {
   // Firefox 2 and IE 7, OpenSearch
   window.external.AddSearchProvider("http://project-xtapes.com/main/magazine/SearchPlugin.xml");
 } else if (window.sidebar && ("addSearchEngine" in window.sidebar)) {
   // Firefox <= 1.5, Sherlock
   window.sidebar.addSearchEngine("http://project-xtapes.com/main/magazine/SearchPlugin.xml",
                                  "http://project-xtapes.com/main/magazine/images/IMCIcon.png",
                                  "IMC Magazine", "");
 } else {
   // No search engine support (IE 6, Opera, etc).
   alert("No search engine support");
 }
}

var lImage;
function XMLPage(url,targ) {
  if (targ) { var ids= targ; }
   else { var ids="content"; }
 var qStart= url.indexOf('?') == -1 ? "?" : "&";
 var urls=url+qStart+"target="+targ+"&xmlembed=yes";
 ajaxRequest(ids,urls);
  if (targ.indexOf('forum') != -1) {
    if (document.location.href.indexOf('#') != -1) { 
    	var eA= document.location.href.indexOf('#');
    	var nURL= document.location.href.substr(0,eA)+"#p_"+targ;
    	document.location.href=nURL;
    } else { document.location.href=document.location.href+"#p_"+targ; }
  }
}

var ajaxCaller;
function ajaxRequest(toss,arg,targto) {
 if (xhrTimeout!='done') { if (ajaxCaller!='magupload') { alert('Please wait... Request is in progress.'); } return false; }
 xhr= XMLSupport(); ajaxCaller=toss;
 if (xhr) {
  // if (xhr.isActive) { alert('xhr request active'); }
   xhrTimeout= setTimeout("ajaxTimeout()",30000);
   if (toss=='Search_Results_Tot') { ajaxCaller= "Search_Results"; }
    else if (toss=='Quick_Search') { ajaxCaller= "Search_Results"; GoTo(2); }
    else if (toss=='Current_Issues') { ajaxCaller= "Current_Issues"; GoTo(2); }
    else if (toss.indexOf('postform') != -1) { ajaxCaller= "bbcoding"; }
  
    if (arg=="GET") { arg= ajaxCaller+".php?"+qString; }
    if (arg=="POST") {
       var qString= buildPOST(toss);
	     xhr.onreadystatechange=ajax_run;
	     xhr.open(arg,ajaxCaller+".php",true);
       xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	     xhr.send(qString);
    } else {
	     // if (ajaxCaller=="gallery") { arg+="&target=magpersonal&xmlembed=yes"; }  || toss=='Quick_Search'
       if (ajaxCaller=="Current_Issues") { arg+="&target=newthisweek&xmlembed=yes"; }
	     xhr.onreadystatechange=ajax_run;
       xhr.open("GET",arg,true);
       xhr.send(null);
    } if (targto) { ajaxCaller= targto; } 
 } else { xhrTimeout='done'; return false; }
} 

function ajax_run() {
 if (XMLReady()) {

 switch (ajaxCaller) {
  case "suggest":
	  ajaxSuggestExec();
	  break;
  case "ticker":
  	showDaily=0;
  	var tempDaily= xhr.responseText.split('(*)');
  	var cntTemp= tempDaily[0] < 4 ? tempDaily[0] : "3";
  	$('dailyCnt').innerHTML= cntTemp+" of "+tempDaily[0];
    $('dailycontent').innerHTML= tempDaily[1];
  	break;
  case "magupload":
	  ajaxUpdaterExec();
	  break;
  case "poptarget":
	  $('mini_win').style.width='';
	  $('poptarget').innerHTML= xhr.responseText; 
	  show('overshadow');
	  break;
  case "bbcoding":
	  $('newtopic_preview_ajax').innerHTML= xhr.responseText;
    show('newtopic_preview');
  	break;
  case "ajTop":
  	var returnTXT= xhr.responseText.split(',,,');
	  $('ajTop').innerHTML= returnTXT[1];
    $('divhead1').innerHTML= returnTXT[0];
  	break;
  case "newsreload":
    var retArr= xhr.responseText.split('<<><>>');
	  $('dailycontent').innerHTML= retArr[1];
	  $('dailyCnt').innerHTML= retArr[0];
    showDaily=0;
	  break;
  default:
	  $(ajaxCaller).innerHTML= xhr.responseText;
	 if ($('pgtitle')) { document.title = $('pgtitle').innerHTML; }
	 if (ajaxCaller=="updater") { $('link_addupdate').innerHTML=""; }
	 fitIt();
	break;
 }
 } 
}

function fitIt() {
	 if ($('displayBlock')) { var t= sizeBrowser('width',1); if (t>915) { $('displayBlock').style.width= Math.floor(t/305)*310; }}
}

var thevault_scroll= window.setInterval("Scroll()",10000);
var pos=0; var posTimes=0;
function Scroll() {
 if ($('thetext')) {
  if (posTimes<16) { pos -=1; $('thetext').style.top= pos; ++posTimes; setTimeout('Scroll()',30); return; }
   else { posTimes=0;
    if (pos < 0-$("thetext").offsetHeight+16) { pos = 0; }
    $("thetext").style.top= pos;
   } 
 }
}

function clearRestart(which) {
  if (which=='stop') { clearInterval(thevault_scroll); thevault_scroll=null; setTimeout("clearRestart('Scroll()')",5000); }
   else if (thevault_scroll==null) { thevault_scroll= window.setInterval("Scroll()",10000); }
}

var showDaily=0;
function navDaily(direction) {
 var item= document.getElementById('dailycontent').getElementsByTagName('div');
 var showTo= direction == "back" ? -3 : 3;
 showDaily= showDaily+showTo;
  if (showDaily<0 || showDaily>item.length-1) { showDaily=0; }
   if (showDaily>item.length-3) { $('dailyCnt').innerHTML= item.length+" of "+item.length; } 
    else { $('dailyCnt').innerHTML= (showDaily+3)+" of "+item.length;  }
 for (v=0; v<item.length; v++) { item[v].style.display="none"; }
 for (i=0; i<3; i++) { var u= i+showDaily; item[u].style.display="block"; }
}

function getUrlVars(){
 var vars= [], hash;
 var hashes= window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
 for(var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1];
 }
return vars;
}

function loadjs(ele,jsurl) { var vvT= ele; var wwT= jsurl; mkNode('script',vvT,wwT,'head',true); }
function mkNode(type,obj,arg,parent,del) {
 if (del) { if ($(obj)) { var toUnload= $(obj); toUnload.parentNode.removeChild(toUnload); } }
  var fileref= document.createElement(type);
   fileref.setAttribute("id",obj); fileref.setAttribute("name",obj);
 if (type=='script') { fileref.setAttribute("type","text/javascript"); fileref.setAttribute("src", arg); }
   else { arg= arg.split(','); for (u=0; u<arg.length; u++) { arg[u]= arg[u].split('='); if (arg[u].length==2) { fileref.setAttribute(arg[u][0],arg[u][1]); } } }
 if (typeof(fileref)!="undefined") {
  if (parent=='head') { document.getElementsByTagName("head")[0].appendChild(fileref); } else { $(parent).appendChild(fileref); }
 } else { alert('Javascript function Failed: Create Element. Contact Admin.'); return false; }
} 

/* function loadJS(filesrc) {
  var headTag = document.getElementsByTagName('head')[0]; 
  var jscript=document.createElement('script');
  jscript.setAttribute("type","text/javascript");
  jscript.setAttribute("src", filesrc);
  headTag.appendChild(jscript);
} */

function reIssue() { reCheck="ok"; }
function checkUpdates() { reCheck="wait"; setTimeout('reIssue()',60000); 
  $('checkupdates').innerHTML="Please wait...<br>Checking New Uploads Now"; XMLPage('New_This_Week.php?checkupdates=yes','checkupdates'); 
 }

var tDrop, drop_time, tyDelay, checkTime; var reCheck="ok";
function togDrop(ty,act) {
 if (ty==0) { clearTimeout(drop_time); tDrop= setTimeout("togDrop(808,'show')", 1500); return false; }
 if (ty==99) { clearTimeout(tDrop); return false; }
 if (act=='show') {
  clearTimeout(tDrop); wCall="null";
  if (ty==808) { if (reCheck=="timer_on") { clearTimeout(checkTime); reCheck="ok"; } }
	if (ty!=1) { hide('extended'); } else { wCall="extended"; }
	if (ty!=2) { hide('q_search'); } else { wCall="q_search"; }
	if (ty!=4) { hide('uploadem'); } else { wCall="uploadem"; }
  if (ty!=5) { hide('blogforum'); }	else { wCall="blogforum"; }
	if ($('usercp')) { if (ty!=3) { hide('usercp'); } else { wCall="usercp"; } }
	if ($('forumsearch')) { if (ty!=6) { hide('forumsearch'); } else { wCall="forumsearch"; } }
  if ($('newupcheck')) { if (ty!=7) { hide('newupcheck'); }	else { wCall="newupcheck"; } }
	if ($('imc_group')) { if (ty==9) { show('imc_group'); $('imc_group').style.position="absolute"; } else { hide('imc_group'); } }
	if (wCall!="null") { show(wCall); $(wCall).style.position="absolute"; 
	   if (wCall=="newupcheck" && reCheck=="ok" && xhrTimeout=='done') { reCheck="timer_on"; checkTime= setTimeout('checkUpdates()',3000); }
	 }
	return false;
 }
 else { tyDelay= ty; clearTimeout(tDrop); drop_time= setTimeout("togDrop(tyDelay,'show')",400); }
}

var last_vidid="0";
function showMode(which,arg) {
  $('mini_win').style.width=''; hide('overshadow');
  if (which=="newsfeed") { if (typeof(arg)!='undefined') { which="newsfeed"+arg; } } 

  if (which=="video") {
    if ($('video') && arg == last_vidid) { show('overshadow'); return false; }
	   else { $('mini_win').style.width='920px'; last_vidid= arg; var popWin= new Array('gallery_video.php?id='+arg,'920','580'); }
  }
  else if (which=="error") { var popWin= new Array(base_dir+'error_report.php?report=error&item_id='+arg,'650','400'); }
  else if (which=="bump") { var popWin= new Array(base_dir+'bump.php?item_id='+arg,'650','400'); }
  else if (which=="signin") { 
    if (arg='reminder') { var popWin= new Array(base_dir+'login.php?top=off&reminder=on','1050','500');  }
     else { var popWin= new Array(base_dir+'login.php?top=off','1050','500'); }
  }
  else if ($(which)) { show('overshadow'); return false; }
  else if (which.indexOf('newsfeed') != -1) { var newsID= (typeof(arg)!='undefined') ? "&story="+arg : "";
    var popWin= new Array(base_dir+'rss_browse.php?top=off'+newsID,sizeBrowser('width','.9'),sizeBrowser('height','.9')); }
  else if (which.indexOf('imagehost') != -1) { var popWin= new Array(arg,sizeBrowser('width','.8'),'600'); }
  else if (which=="speedtest") { var popWin= new Array(base_dir+arg,'1020','550'); }
  else if (which=="html2bbcode") { var popWin= new Array('http://project-xtapes.com/html2bbcode.html','850','440'); }
  else if (which=="tutorial_nudity") { var popWin= new Array(base_dir+'help/tutorial_nudity.php','650',sizeBrowser('height','.9')); }
  else if (which=="tutorial_uploader") { var popWin= new Array(base_dir+'help/tutorial.php',sizeBrowser('width','.9'),sizeBrowser('height','.9')); }
  else if (which=="nudescenes") { var popWin= new Array(base_dir+'nudescenes.php?top=off','850','440'); }
  else if (which=="addNews") { var popWin= new Array(base_dir+'rss_browse.php?send=news',sizeBrowser('width','.9'),sizeBrowser('height','.9')); }
  else if (which=="comments") { var popWin= new Array(base_dir+'new_comments.php?top=off','850','440'); }
  else if (which=="mag_websites") { var popWin= new Array(base_dir+'Mag_Websites.php?top=off','850','440'); }
  else if (which=="Beta") { $('mini_win').style.width='98%'; var popWin= new Array(base_dir+'jSearch.php',sizeBrowser('width'),sizeBrowser('height')); }
  else if (which=="bgs") { $('mini_win').style.width='98%'; var popWin= new Array(base_dir+'images/bg/',sizeBrowser('width'),sizeBrowser('height')); }
  else if (which=="delete_log") { $('mini_win').style.width='99%'; var popWin= new Array(base_dir+'log_deleted.php?top=off',sizeBrowser('width'),sizeBrowser('height')); }
  else if (which=="moreinfo") { var popWin= new Array(base_dir+'personal_bio.php?p='+person,'800','480'); }
  else if (which=="safesettings") { var popWin= new Array(base_dir+'safe_browsing.php','600','480'); }
  else if (which=="mail_inbox") { var popWin= new Array(base_dir+'minbox.php?top=off','750','500'); }
  else if (which=="tagbox") { var popWin= new Array(base_dir+'tagbox.php?top=off','730','500'); }
  else { var popWin= new Array(arg,sizeBrowser('width','.9'),sizeBrowser('height','.9')); }
  
 $('poptarget').innerHTML= '<iframe name="'+which+'" id="'+which+'" src="'+popWin[0]+'" width="'+popWin[1]+'" height="'+popWin[2]+'"></iframe>';
 fade_in('overshadow');
}

function sizeBrowser(ax,perc) {
 if (ax=="height") { 
   if (document.body.clientHeight) { bHeight= document.body.clientHeight; }
    else if (window.innerHeight) { bHeight= window.innerHeight; } else { bHeight= 600; }
  if (perc) { return (bHeight-($('Topmenu').offsetHeight))*perc; }
  else { return bHeight-($('Topmenu').offsetHeight+55); }
 }
 else {
   if (document.body.clientWidth) { bWidth= document.body.clientWidth; }
    else if (window.innerWidth) { bWidth= window.innerWidth; } else { bWidth= 1000; }
  if (perc) { return (bWidth-35)*perc; }
  else { return bWidth-55; }
 }
}

function mini_height() {
  if (document.body.clientHeight) { bHeight= document.body.clientHeight; }
   else if (window.innerHeight) { bHeight= window.innerHeight; }
    else { bHeight= 600; }
  return bHeight-($('Topmenu').offsetHeight+55);
}