var autosavetimer=30000; // 30 secs
var opera=false;
var moz=false;
var ie=false;

if ((navigator.userAgent).indexOf("Opera")!=-1) opera=true;
if (navigator.appName=="Netscape") moz=true;
if ((navigator.appName).indexOf("Microsoft")!=-1) ie=true;

function setUp(){
 setGoggles();
 if(document.getElementById('entryform')){
  autoSave();
 }
}

function loaded(rstr){
 setUp();
 if(document.getElementById('entryemoticons')) emoticons();
 if(document.getElementById('secStr')){
  document.getElementById('secStr').innerHTML='Please insert the anti-spam code (<strong><a href="javascript:void(0);" onclick="document.getElementById(\'rstr\').value=\''+rstr+'\';" title="Enter code into box.">'+rstr+'</a></strong>):<input type="text" name="rstr" id="rstr" />';
 }
}

function insertAtCursor(myField, myValue){
 //IE support
 if (document.selection) {
  myField.focus();
  sel = document.selection.createRange();
  sel.text = myValue;
  myField.focus();
 }
 //MOZILLA/NETSCAPE support
 else if (myField.selectionStart || myField.selectionStart == '0') {
  var startPos = myField.selectionStart;
  var endPos = myField.selectionEnd;
  var scrollTop = myField.scrollTop;
  myField.value = myField.value.substring(0, startPos)
                + myValue 
                + myField.value.substring(endPos, myField.value.length);
  myField.focus();
  myField.selectionStart = startPos + myValue.length;
  myField.selectionEnd = startPos + myValue.length;
  myField.scrollTop = scrollTop;
 } else {
  myField.value += myValue;
  myField.focus();
 }
} 

function emoticons(){
 var smholder=document.getElementById('entryemoticons');
 var img=smholder.getElementsByTagName('img');
 for(a=0; a < img.length; a++) img[a].className='entryjsemote';
 // any changes made here will need to be mirrored in the user_settings.php file
 AttachEvent(img[0], 'click', function(){insertAtCursor(document.getElementById('comment'),':)'+' ')}, false);
 AttachEvent(img[1], 'click', function(){insertAtCursor(document.getElementById('comment'),':D'+' ')}, false);
 AttachEvent(img[2], 'click', function(){insertAtCursor(document.getElementById('comment'),':('+' ')}, false);
 AttachEvent(img[3], 'click', function(){insertAtCursor(document.getElementById('comment'),'x('+' ')}, false);
 AttachEvent(img[4], 'click', function(){insertAtCursor(document.getElementById('comment'),';)'+' ')}, false);
 AttachEvent(img[5], 'click', function(){insertAtCursor(document.getElementById('comment'),':O'+' ')}, false);
 AttachEvent(img[6], 'click', function(){insertAtCursor(document.getElementById('comment'),':P'+' ')}, false);
 AttachEvent(img[7], 'click', function(){insertAtCursor(document.getElementById('comment'),':I'+' ')}, false);
 AttachEvent(img[8], 'click', function(){insertAtCursor(document.getElementById('comment'),':|'+' ')}, false);
 AttachEvent(img[9], 'click', function(){insertAtCursor(document.getElementById('comment'),':S'+' ')}, false);
 AttachEvent(img[10],'click', function(){insertAtCursor(document.getElementById('comment'),'8)'+' ')}, false);
}

function AttachEvent(obj,evt,fnc,useCapture){
 if (!useCapture) useCapture=false;
 if (obj.addEventListener){
  obj.addEventListener(evt,fnc,useCapture);
  return true;
 } else if (obj.attachEvent) return obj.attachEvent("on"+evt,fnc);
 else{
  MyAttachEvent(obj,evt,fnc);
  obj['on'+evt]=function(){ MyFireEvent(obj,evt) };
 }
 return false;
} 

//The following are for browsers like NS4 or IE5Mac which don't support either
//attachEvent or addEventListener
function MyAttachEvent(obj,evt,fnc){
 if (!obj.myEvents) obj.myEvents={};
 if (!obj.myEvents[evt]) obj.myEvents[evt]=[];
 var evts = obj.myEvents[evt];
 evts[evts.length]=fnc;
 return false;
}

function MyFireEvent(obj,evt){
 if (!obj || !obj.myEvents || !obj.myEvents[evt]) return;
 var evts = obj.myEvents[evt];
 for (var i=0,len=evts.length;i<len;i++) evts[i]();
}

// entry autosave 

function autoSave(){
 setTimeout("saveEntry()",autosavetimer);
}

var statusBarText="";

function saveEntry(){
 var media=escape(document.getElementById('media').value);
 var title=escape(document.getElementById('title').value);
 var tags=escape(document.getElementById('tags').value);
 var author=escape(document.getElementById('author').value);
 var authoremail=escape(document.getElementById('authoremail').value);
 var synopsis=escape(document.getElementById('synopsis').value);
 var userating=document.getElementById('userating');
 if(userating.checked){userating=true;}else{userating=false;}
 var usecomments=document.getElementById('comments');
 if(usecomments.checked){usecomments=true;}else{usecomments=false;}
 var entry=escape(myEditor_Content_hidden.value);
 if(title!=""){
  statusBarText=document.getElementById('myEditor_statusbar').innerHTML;
  document.getElementById('myEditor_statusbar').innerHTML='Auto saving...';
  var str='media='+media+'&title='+title+'&tags='+tags+'&author='+author+'&authoremail='+authoremail+'&synopsis='+synopsis+'&entry='+entry+'&userating='+userating+'&usecomments='+usecomments
  rpc(str,'','autosave_rpc.php');
 }
 autoSave();
}

function resetStatusbar(){
 setTimeout("document.getElementById('myEditor_statusbar').innerHTML=statusBarText",1000)
}

// goggles functions
var timer=0;
var t2=0;
var old,head,scrNum=0
var wait=0
var gr;

function setGoggles(){
 gr=document.getElementById('gogglesresult');
 gr.style.visibility='hidden';
 var posLeft=findPosX(document.getElementById('gogglesin'));
 var posTop=findPosY(document.getElementById('gogglesin'));
 gr.style.left="1px";
 gr.style.top="36px";
 AttachEvent(gr, 'mouseover', function(){lightup(100)}, false);
 AttachEvent(gr, 'mouseout', function(){lightup(80)}, false);
 AttachEvent(gr, 'focus', function(){lightup(100)}, false);
 AttachEvent(gr, 'blur', function(){lightup(80)}, false);
 if(document.getElementById('gogglesform')) document.getElementById('gogglesform').action='/goggles_rpc.php';
}

function rpc(str,path,file){
 head=document.getElementsByTagName('head').item(0);
 script=document.createElement('script');
 script.id='scr'+scrNum
 script.src=path+file+'?'+str+'&s='+script.id;
 script.type='text/javascript';
 script.defer=true;
 scrNum++
 void(head.appendChild(script));
 //prompt('',script.src);
}

function removeScript(scriptid){
 old=document.getElementById(scriptid);
 if(old)head.removeChild(old);
}

function clearSearch(){
 clearTimeout(wait);
}

function lightup(opac){
 if(moz)gr.style.MozOpacity=opac/100;
 if(ie || opera){
  gr.filters.alpha.opacity=opac;
 }
}

function checkSearch(val,deftxt,path){
 gr=document.getElementById('gogglesresult');
 clearTimeout(wait);
 if(val.length <= 1){
  gr.innerHTML='';
  gr.style.visibility='hidden';
 }
 if((val!="")&&(val!=deftxt)){
  gr.style.visibility='visible';
  gr.innerHTML='<p>Searching for &lsquo;'+val+'&rsquo;</p>';
  wait=setTimeout("doSearch('"+val+"','"+path+"')",250);
 }
}

function doSearch(val,path){
 startTimer();
 rpc('gogglesin='+val,path,'goggles_rpc.php');
 clearTimeout(wait);
}

function clearGogglesResults(){
 gr.innerHTML='';
 gr.style.visibility='hidden';
 document.getElementById('gogglesin').value="live search";
}

function startTimer(){
 t2++;
 timer=setTimeout("startTimer()",1);
}

function stopTimer(){
 t2=0;
 clearTimeout(timer)
}

function checkKey(kc){
 if(document.all){
  k=event.keyCode;
 }else{
  k=kc.which
 }
 if(k=='13'){ // carriage return
  return false;
 }
}

function findPosX(obj){
 var curleft = 0;
 if(obj.offsetParent){
  while(obj.offsetParent){
   curleft += obj.offsetLeft
   obj = obj.offsetParent;
  }
 }else if(obj.x){
  curleft += obj.x;
 }
 return curleft;
}

function findPosY(obj){
 var curtop = 0;
 if(obj.offsetParent){
  while(obj.offsetParent){
   curtop += obj.offsetTop
   obj = obj.offsetParent;
  }
 }else if(obj.y){
  curtop += obj.y;
 }
 return curtop;
}

window.onload=setUp;

