 // External JS Scripts

var tt = 1;
var runflag1 = 0;
var runtime  = 0;
var noreq    = 0;

function get_browser(){

  var browser = navigator.appName;
  
  if( browser == 'Microsoft Internet Explorer' )
    return 'ie';
  else
    return 'ff';  

}

function editPost(i,pid,tid,page){

  var post = document.getElementById('post'+i);
  
  if( post ){
  
    var text       = striptags(post.innerHTML);
  
    post.innerHTML = '<textarea id="edit'+i+'" style="width:350px;">'+text+'</textarea>';
  
  }
  
  var actions = document.getElementById('actions'+i);
  
  if( actions ){
  
    actions.innerHTML = '[<a nohref=nohref style="cursor:pointer; color:orange;" onclick="submitEdit('+i+','+pid+','+tid+','+page+');">Submit</a>]';
 
  }

}

function submitEdit(i,pid,tid,page){

  var e = document.getElementById('edit'+i);
  
  if( e ){
  
    var text = e.value;
    
    if( text ){
  
      ajax('forum.php?action=edit&page='+page+'&tid='+tid+'&pid='+pid+'&msg='+text,1);
    
    }
  
  }  

}

function striptags(text){
  /* 
    This line is optional, it replaces escaped brackets with real ones, 
    i.e. &lt; is replaced with < and &gt; is replaced with >
  */	
  
  text = text.replace(/&(lt|gt);/g, function (strMatch, p1){ return (p1 == "lt")? "<" : ">"; });
  text = text.replace(/<\/?[^>]+(>|$)/g, "");
  
  return text;

}

function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function sendMail(cs){
 
  var msg   = trim(document.getElementById('msg').value);
  var to    = trim(document.getElementById('to').value);
  var title = trim(document.getElementById('title').value);

  if( to ){

    if(msg){

      if( cs ){
        ajax('csmail.php?action=send&msg='+msg+'&title='+title+'&to='+to+'&mid='+cs,1); 
      }else{
        ajax('mail.php?action=send&msg='+msg+'&title='+title+'&to='+to,1);
      }  

    }else{
      document.getElementById('alert').innerHTML = 'You cannot send a blank message.';  
    }
    
  }else{
    document.getElementById('alert').innerHTML = 'You cannot send mail to nobody.';
  }    

}

function invMenu(menu,x,count){

  var row  = document.getElementById('row'+x);
  var menu = document.getElementById(menu);
  
  var dheight = '120px';
  var dborder = 'none';
  
  var nheight = '250px';
  var nborder = '1px solid #333';
  
  if( menu.style.display != 'block' ){
 
    for( i=0; i<=count; i++ ){
    
      var edit   = document.getElementById('edit'+i);      
      var upload = document.getElementById('upload'+i); 
  
      var erow  = document.getElementById('row'+i);
      
      if( erow ){
        erow.style.border = dborder;
        erow.style.height = dheight;
      }  
      
      if( edit )
        edit.style.display  = 'none';
        
      if( upload )
        upload.style.display  = 'none';        
        
    }  
    
    if( menu )
      menu.style.display = 'block';
      
    if( row ){  
      row.style.border = nborder;
      row.style.height = nheight;
    }    
  
  }else{
  
    if( menu )
      menu.style.display = 'none';
      
    if( row ){  
      row.style.border = dborder;
      row.style.height = dheight;
    }
    
  }    

}

function getElementHeight(Elem) {
        var ns4 = false;
        var op5 = false;
	if (ns4) {
		var elem = getObjNN4(document, Elem);
		return elem.clip.height;
	} else {
		if(document.getElementById) {
			var elem = document.getElementById(Elem);
		} else if (document.all){
			var elem = document.all[Elem];
		}
		if (op5) { 
			xPos = elem.style.pixelHeight;
		} else {
			xPos = elem.offsetHeight;
		}
		return xPos;
	} 
}

function getElementWidth(Elem){
  var elem = document.getElementById(Elem);
  xPos = elem.offsetWidth;
  return xPos;
}

function kTT(event,text,css){

  if( tt ){ 

    var browser = get_browser();

    var e = document.getElementById('kTT');

    e.style.display = 'none';
    e.style.height  = '';
    e.style.width   = '';
    e.innerHTML     = '&nbsp;';

    //  Custom CSS  
    if( css ){
    
      css = trim(css);
    
      var iexplode = css.split(';');
      
      for( i = 0; i < iexplode.length; i++ ){

        var det = iexplode[i].split(':');
        
        if( isNaN(det[0]) && det[1] ){
        
          var property = trim(det[0]);
          var value    = trim(det[1]);

          switch( property ){
        
            case 'border' :          var border  = 1; e.style.border          = value; break;
            case 'width'  :          var width   = 1; e.style.width           = value; break;
            case 'height' :          var height  = 1; e.style.height          = value; break;
            case 'padding':          var padding = 1; e.style.padding         = value; break;
            case 'background-color': var bg      = 1; e.style.backgroundColor = value; break;
            case 'opacity':
            var opacity = 1;
            e.style.MozOpacity = value/100;
            e.style.filter     = 'alpha(opacity:'+value+')';
            break;
        
          }  
        
        }
      
      }
  
    }   
  
    //  Default CSS
    if( !border )
      e.style.border          = '2px solid #99CCFF';
    if( !padding )  
      e.style.padding         = '2px';
    if ( !bg )
      e.style.backgroundColor = 'Black';
    if( !opacity ){
      e.style.filter          = 'alpha(opacity:90)';  
      e.style.MozOpacity      = .9;  
    } 
 
    //  Static CSS   
    e.style.position = 'absolute';
    e.style.zIndex   = 100000; 

    e.innerHTML    = text;
  
    var winWidth   = document.body.clientWidth  + document.body.scrollLeft;
    var winHeight  = document.body.clientHeight + parseInt(document.body.scrollTop);

    e.style.display = 'block';

    var H = getElementHeight('kTT');
    var W = getElementWidth('kTT');
    
    var topPos   = event.pageY || event.clientY;
    var leftPos  = event.pageX || event.clientX;
    var rightPos = leftPos + W;    

    if( browser == 'ie' ){
      topPos = topPos + parseInt(document.body.scrollTop);
    }

    if( topPos+H+20 > winHeight ){
      topPos = topPos - (H+20);
    }
    
    if( rightPos+W+20 > winWidth ){
      leftPos = leftPos - (W+20);
    }    

    e.style.top      = topPos  + 5;
    e.style.left     = leftPos + 20;
   
  }
    
}  

function unkTT(){
  if( tt ){ 
    var e = document.getElementById('kTT');
    if( e )
      e.style.display = 'none';
  }  
}

function theTime(){
  var time = new Date();
  var kevms = time.getSeconds() + (time.getMinutes() * 60) + ( time.getHours() * 3600 ) + ( time.getDay() * 86400 );
  return kevms;
} 
 
function resetObj(objid){
 
    var temp = objid;
    Element.remove(objid);
    var newobj = document.createElement('div');
    newobj.id = temp;
    var spanAppend = document.getElementById('w');
    spanAppend.appendChild(newobj);
    
    return newobj;
     
}

function box(url, height, width){

  runflag1 = 0;

  var overlay  = document.getElementById('overlay');
  var lightbox = document.getElementById('lightbox');
  
  if( overlay && lightbox ){

    if( overlay.style.display != 'block' ){

      if( url ){

        if( height )
          lightbox.style.height = height;

        if( width )
          lightbox.style.width  = width;

        overlay.style.display='block';
        lightbox.style.display='block';
        loadani('lightbox','bigball2','margin-left:auto; margin-top:auto;');
        ajax(url,'lightbox');
      
      }

    }else{

      overlay.style.display='none';
      lightbox.style.display='none';
      lightbox.style.width='';
      lightbox.style.height='';

    }

  }

}

function giveFocus(id,bypass){

  var obj = document.getElementById(id);
 
  if( obj ){

    if( get_browser() == 'ie' && !bypass ){
      setTimeout('giveFocus(\''+id+'\',1)',50);
    }else{
      obj.focus();
    }

  }

}

function loadani(objid,img,style){

  var e = document.getElementById(objid);  
  
  if( e ){
  
    e.innerHTML = '<div style="'+style+'"><img src="img/ajax/'+img+'.gif"></div>';
  
  }

}

var runflag1 = 0;

function ajax(url, opt_objChoice, hud){ 
   
  var opt;

  var XMLHttpRequestObject = false;
    
  opt = opt_objChoice;
    
  if (window.XMLHttpRequest){

    XMLHttpRequestObject= new XMLHttpRequest();

  }else if(window.ActiveXObject){

    XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");

  }else{
    alert('Please upgrade your browser.');
  }
   
  var t = url;
  var params = '';
  url = url.split('?',1);
  var tp = t.indexOf('.php');
  var sub = t.substr(tp+4);
  params = ltrim(sub,'?');

  if( XMLHttpRequestObject && !runflag1 ){
  
    runflag1 = 1;
    runtime  = theTime();

    var _targObject=null;

    if( isNaN(opt) ){

      _targObject = document.getElementById(opt);

    }else{

      switch( opt ){
            
        case 1: _targObject = document.getElementById('page'); break;
              
      }

    }
 
    var restart = 0; 
    
    //  Custom url options
    var urlprefix = t.substr(0,8); 

    XMLHttpRequestObject.open("POST",url[0],true);
    
    //Send the proper header information along with the request
    XMLHttpRequestObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    XMLHttpRequestObject.setRequestHeader("Content-length", params.length);
    XMLHttpRequestObject.setRequestHeader("Connection", "close");    
          
    XMLHttpRequestObject.onreadystatechange = function(){
       
      if( XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200 ){
            
        if( _targObject ){                    
         
          //  UPDATE TARGET DIV 
          if( _targObject.innerHTML != XMLHttpRequestObject.responseText )
            _targObject.innerHTML = XMLHttpRequestObject.responseText;
    
        }
    
        runflag1 = 0;
        noreq    = 0;
        XMLHttpRequestObject = null;
                 
      }
      
    }
          
    if( !noreq ){
      XMLHttpRequestObject.send(params);
    }

  }
         
}
