/*
 * http://gr0w.com/
 * Copyright (c) 2006 Jon Tan and Paul Whitrow
 * searchOptions By John Resig (http://ejohn.org/)
 * Licensed under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 * Under an Attribution, Share Alike License
 * Other functions based on those by Jeremy Keith http://adactio.com/
 */

/* Generic onload event function
 * 
 */

// updated with fix for IE7 runtime error
function addLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') window.onload = func;
    else {
        window.onload = function() {
            if (oldonload) oldonload();
            func();
        }
    }
} 
/* 
 * Clear form fields default value onblur
 */

function prePrint(){
 if(document.getElementById('printpage')) document.getElementById('printpage').onclick=function(){ window.print();return false;}
}

addLoadEvent (prePrint);

function resetFields(whichform) {
  for (var i=0; i<whichform.elements.length; i++) {
    var element = whichform.elements[i];
    if ((element.type)&&(element.type == "submit")) continue;
    if ((element.type)&&(element.type == "reset")) continue;
    if ((element.type)&&(element.type == "radio")) continue;
    if ((element.type)&&(element.type == "checkbox")) continue;
    if ((element.type)&&(element.type == "textarea")) continue;
    if (!element.defaultValue) continue;
    element.onfocus = function() {
    if (this.value == this.defaultValue) {
      this.value = "";
     }
    }
    element.onblur = function() {
      if (this.value == "") {
        this.value = this.defaultValue;
      }
    }
  }
}

function prepareForms() {
  for (var i=0; i<document.forms.length; i++) {
    var thisform = document.forms[i];
    resetFields(thisform);
  }
}

addLoadEvent (prepareForms);

/* Show or Hide advanced search
 * #searchoptions defaulted to display:none in /css/default.css 
 */

function searchOptions(action) {
    if (action == 'on') {
        var obj1 = document.getElementById('searchoptions');
        var obj2 = document.getElementById('search');
    } else {
        var obj1 = document.getElementById('search');
        var obj2 = document.getElementById('searchoptions');
    }
    obj1.style.display = 'block';
    obj2.style.display = 'none';

}


/* 
 * stripe rows
 */

function insertAfter(newElement,targetElement) {
  var parent = targetElement.parentNode;
  if (parent.lastChild == targetElement) {
    parent.appendChild(newElement);
  } else {
    parent.insertBefore(newElement,targetElement.nextSibling);
  }
}

function addClass(element,value) {
  if (!element.className) {
    element.className = value;
  } else {
    var newClassName = element.className;
    newClassName+= " ";
    newClassName+= value;
    element.className = newClassName;
  }
}


function stripeTables() {
  if (!document.getElementsByTagName) return false;
  var tables = document.getElementsByTagName("table");
  for (var i=0; i<tables.length; i++) {
    var odd = false;
    var rows = tables[i].getElementsByTagName("tr");
    for (var j=0; j<rows.length; j++) {
      if (odd == true) {
        addClass(rows[j],"odd");
        odd = false;
      } else {
        odd = true;
      }
    }
  }
  return false;
}

/*function highlightRows() {
  if(!document.getElementsByTagName) return false;
  var rows = document.getElementsByTagName("tr");
  for (var i=0; i<rows.length; i++) {
    rows[i].oldClassName = rows[i].className
    rows[i].onmouseover = function() {
      addClass(this,"highlight");
    }
    rows[i].onmouseout = function() {
      this.className = this.oldClassName
    }
  }
}*/

addLoadEvent(stripeTables);
/*addLoadEvent(highlightRows);*/


/* cookie functions */
function setCookie(name,value,days){
 if (days){
  var date = new Date();
  date.setTime(date.getTime()+(days*24*60*60*1000));
  var expires = "; expires="+date.toGMTString();
 }
 else var expires = "";
 document.cookie = name+"="+value+expires+"; path=/";
}

function getCookie(name){
 var nameEQ = name + "=";
 var ca = document.cookie.split(';');
 for(var i=0;i < ca.length;i++){
  var c = ca[i];
   while (c.charAt(0)==' ') c = c.substring(1,c.length);
 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
 }
 return false;
}

function delCookie(name){
 setCookie(name,"",-1);
}

function repStr(str,txt,by) {
 var strLength=str.length,txtLength=txt.length;
 if((strLength==0) || (txtLength==0))return str;
 var i=str.indexOf(txt);
 if((!i) && (txt!=str.substr(0,txtLength)))return str;
 if(i==-1)return str;
 var newstr=str.substr(0,i) + by;
 if(i+txtLength < strLength){newstr+=repStr(str.substring(i+txtLength,strLength),txt,by)}
 return newstr;
}

function insertAtCursor(myField, myValue){
 //IE support
 if (document.selection) {
  myField.focus();
  var 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(el){
 if(!document.getElementById('emoticons')) return;
 var smholder=document.getElementById('emoticons');
 var img=smholder.getElementsByTagName('img');
 for(var a=0; a < img.length; a++) img[a].className='jsemote';
 // any changes made here will need to be mirrored in the inc.php file
 AttachEvent(img[0], 'click', function(){insertAtCursor(document.getElementById(el),':)')}, false);
 AttachEvent(img[1], 'click', function(){insertAtCursor(document.getElementById(el),':D')}, false);
 AttachEvent(img[2], 'click', function(){insertAtCursor(document.getElementById(el),':(')}, false);
 AttachEvent(img[3], 'click', function(){insertAtCursor(document.getElementById(el),'x(')}, false);
 AttachEvent(img[4], 'click', function(){insertAtCursor(document.getElementById(el),';)')}, false);
 AttachEvent(img[5], 'click', function(){insertAtCursor(document.getElementById(el),':O')}, false);
 AttachEvent(img[6], 'click', function(){insertAtCursor(document.getElementById(el),':P')}, false);
 AttachEvent(img[7], 'click', function(){insertAtCursor(document.getElementById(el),':I')}, false);
 AttachEvent(img[8], 'click', function(){insertAtCursor(document.getElementById(el),':|')}, false);
 AttachEvent(img[9], 'click', function(){insertAtCursor(document.getElementById(el),':S')}, false);
 AttachEvent(img[10],'click', function(){insertAtCursor(document.getElementById(el),'8)')}, false);
}

//addLoadEvent(emoticons);

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;
}

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]();
}

function backbutton(){
 if(!document.getElementById('back')) return;
 var obj=document.getElementById('back');
 obj.innerHTML='<input type="button" value="Back" onclick="pageback()" />'
}

function pageback(){
 history.go(-1);
}

addLoadEvent(backbutton);

function selectAll(obj){
 for(var a=0;a<obj.options.length;a++){
  obj.options[a].selected=true;
 }
}

function clearFields(){
 for(var a=0; a < arguments.length; a++){
  var obj=document.getElementById(arguments[a]);
  if((obj.type=="checkbox")||(obj.type=="radio")){
   obj.checked=false;
  }else{
   obj.value='';
  }
 }
}

var old,head,scrNum=0

function changeField(to,from){
 document.getElementById(to).value=from
}

function RPC(str){
 head=document.getElementsByTagName('head').item(0);
 script=document.createElement('script');
 script.id='scr'+scrNum
 script.src='../inc/weblog_rpc.php?'+str+'&s='+script.id;
 script.type='text/javascript';
 script.defer=true;
 scrNum++
 void(head.appendChild(script));
}

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

function updateField(f1,f2){
 var f1=document.getElementById(f1);
 var f2=document.getElementById(f2);
 var str="";
 for(a=0;a<f2.options.length;a++){
  if(f2.options[a].selected){
   str+=f2.options[a].value+"\n";
  }
 }
 f1.value=str;
}

function deleteWeblogTag(obj){
 var obj=document.getElementById(obj)
 if(!obj.selectedIndex) return
 var tag=obj.options[obj.selectedIndex].value
 if(tag!=""){
  if(confirm("Please confirm that you wish to delete "+tag+" from the weblog tag list.")){
   RPC("ACTION=deleteweblogtag&tag="+tag)
  }
 }
}

function previewProductImage(n){
 var win=window.open(myEditor_dir+"/imgman/?menu_0&previewproductimage="+n,"","height=500,width=500,scrollbars=no,modal=yes");
}

function updatePreviewProductImage(img,alt,n){
 document.getElementById("image"+n).value=img+"|"+alt;
 document.getElementById("image"+n+"preview").src=img;
 document.getElementById("image"+n+"preview").alt=alt;
}


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;
}

function focusEl(el){
 var obj=document.getElementById(el);
 obj.focus();
 var scr=findPosY(obj);
 window.scrollTo(0,scr);
}

function initFocusCommentPreview(){
 if(document.getElementById('preview')) focusEl('preview');
}

addLoadEvent(initFocusCommentPreview);
