//When document loads, apply the prepareImageSwap function to various images with our desired settings
function setImageSwaps() 
{
	prepareImageSwap(document.body);
	//Note that once an image is processed, it won't be processed again, so you should set more specific images first, e.g. document.body, as it is the grand container, has to be processed last.
}


function prepareImageSwap(elem,mouseOver,mouseOutRestore,mouseDown,mouseUpRestore,mouseOut,mouseUp) 
{ 
	//Do not delete these comments. 
	//Non-Obtrusive Image Swap Script V1.1 by Hesido.com 
	//Attribution required on all accounts 
    if (typeof(elem) == 'string') elem = document.getElementById(elem); 
    if (elem == null) return; 
    var regg = /(.*)(_nm\.)([^\.]{3,4})$/ 
    var prel = new Array(), img, imgList, imgsrc, mtchd; 
    imgList = elem.getElementsByTagName('img'); 
    for (var i=0; img = imgList[i]; i++) { 
        if (!img.rolloverSet && img.src.match(regg)) { 
            mtchd = img.src.match(regg); 
            img.hoverSRC = mtchd[1]+'_on.'+ mtchd[3]; 
            img.outSRC = img.src; 
            if (typeof(mouseOver) != 'undefined') { 
                img.hoverSRC = (mouseOver) ? mtchd[1]+'_on.'+ mtchd[3] : false; 
                img.outSRC = (mouseOut) ? mtchd[1]+'_ou.'+ mtchd[3] : (mouseOver && mouseOutRestore) ? img.src : false; 
                img.mdownSRC = (mouseDown) ? mtchd[1]+'_md.' + mtchd[3] : false; 
                img.mupSRC = (mouseUp) ? mtchd[1]+'_mu.' + mtchd[3] : (mouseOver && mouseDown && mouseUpRestore) ? img.hoverSRC : (mouseDown && mouseUpRestore) ? img.src : false; 
                } 
            if (img.hoverSRC) {preLoadImg(img.hoverSRC); img.onmouseover = imgHoverSwap;} 
            if (img.outSRC) {preLoadImg(img.outSRC); img.onmouseout = imgOutSwap;} 
            if (img.mdownSRC) {preLoadImg(img.mdownSRC); img.onmousedown = imgMouseDownSwap;} 
            if (img.mupSRC) {preLoadImg(img.mupSRC); img.onmouseup = imgMouseUpSwap;} 
            img.rolloverSet = true; 
        } 
    } 
    function preLoadImg(imgSrc) { 
        prel[prel.length] = new Image(); prel[prel.length-1].src = imgSrc; 
    } 
} 

function imgHoverSwap() {this.src = this.hoverSRC;} 
function imgOutSwap() {this.src = this.outSRC;} 
function imgMouseDownSwap() {this.src = this.mdownSRC;} 
function imgMouseUpSwap() {this.src = this.mupSRC;}

function resize_iframe(id, txtid)
{
	if(document.getElementById(id).height<500)
		document.getElementById(id).height=500; 
	else
		document.getElementById(id).height=0;

	if(document.getElementById(txtid).innerHTML= '(click to see)')
		document.getElementById(txtid).innerHTML= '(click to hide)';
	else
		document.getElementById(txtid).innerHTML= '(click to see)';

}

function popup(url, w, h, scroll) 
{
	detailWindow=window.open(url,'detailWin','width=' + w + ',height=' + h + 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1');
	detailWindow.focus();
}	



function confirmSubmit()
{
	var agree=confirm("Are you sure you want to delete this?");
	if (agree)
	{
		//alert('true');
		return true;
		
	}
	else
	{
		//alert('f');
		return false;
	}
}

function confirmDels()
{
	var agree=confirm("Are you sure you want to delete all the above checked comments?");
	if (agree)
	{
		//alert('true');
		return true;
		
	}
	else
	{
		//alert('f');
		return false;
	}
}


function confirmApprove()
{
	var agree=confirm("Are you sure you want to approve this?");
	if (agree)
	{
		return true;
	}
	else
		return false;
}
function ajaxthis(url, postdata, changearray)
{
	
	//get with ajax the info for that sec
	var xmlHttpReq = false;
    var self = this;
    // Mozilla/Safari
    if (window.XMLHttpRequest) 
    {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) 
    {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('POST', url, true);
    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4) {
             var myArray = self.xmlHttpReq.responseText.split('``');
             
             for (var j=0; j<myArray.length; j++)
             {
             	document.getElementById(changearray[j]).innerHTML = myArray[j];
             }
             
           if (document.recalc) document.recalc();//for ie only from ie7
        } 
    }
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.send(postdata);	
}

function storeAddress() 
{
  // Prepare query string and send AJAX request
 var pars = 'p=oi&m=1101675884598&ea=' + escape(document.getElementById('ea').value);
 // Update user interface
 document.getElementById('response').innerHTML = '<span style=\"color: #f90;\">Adding email address...</span>';
 var myAjax = ajaxthis('mailinglist.php', pars, ['response']);
}



function ajaxgetreply(id, placetoadd, verifycookie) 
{
  // Prepare query string and send AJAX request
 var pars = 'id=' + id + '&testuid=' + verifycookie + '&ajax=y';
 // Update user interface
 document.getElementById(placetoadd).innerHTML = '<span style=\"color: #f90;\">Reply loading...</span>';
 var myAjax = ajaxthis('getreply.php', pars, [placetoadd]);
}

function ajaxgetreply2(id, placetoadd, verifycookie, action, page) 
{
  // Prepare query string and send AJAX request
 var pars = 'id=' + id + '&testuid=' + verifycookie + '&ajax=y' + '&action=' + action + "&page=" + page;
 // Update user interface
 document.getElementById(placetoadd).innerHTML = '<span style=\"color: #f90;\">Reply loading...</span>';
 var myAjax = ajaxthis('getreply2.php', pars, [placetoadd]);
}


function ajaxflag(id, placetoadd, verifycookie) 
{
  // Prepare query string and send AJAX request
 var pars = 'id=' + id + '&testuid=' + verifycookie + '&ajax=y';
 // Update user interface
 document.getElementById(placetoadd).innerHTML = '<span style=\"color: #f90;\">Reply loading...</span>';
 var myAjax = ajaxthis('flag.php', pars, [placetoadd]);
}




function ajaxnoreply(placetorem) 
{
 // Update user interface
 document.getElementById(placetorem).innerHTML = '';
}


// Twisty.js
//
// Copyright (c) 2007 Red Hat, Inc.
// 
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
// 
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// 
// Provide a nice interface for creating disclosure triangles in a web page
// To use: 
//
// put onload="initTwisty();" in your <body> tag.
//
// You should have this in your style sheet:
//
//     .twisty:hover {
//      background-color: #f0f0f0;
//      border: 1px solid #e0e0e0;
//      margin-left: -1px;
//    }
//
//    .twisty {
//      cursor: hand;
//      cursor: pointer;
//    }
//
// When you have a section you wish to expose/hide, put:
//
// <div>Some Label <img class="twisty" src="twisty-down.gif" onclick="toggleTwisty('childid'); return false;">
//   <div id="childid">
//     <div>Some content</div>
//   </div>
// </div>

function hideTwisty (id) {
  var el = getElemById (id);
  var twisty;

  if (el) {
    setStyle (el, {display: 'none'});
  }

  for (var i = 0; i < el.parentNode.childNodes.length; i++) {
    if (el.parentNode.childNodes[i].nodeName == 'A') {
      var t = el.parentNode.childNodes[i];
      for (var j = 0; j < t.childNodes.length; j++) {
	if (t.childNodes[j].className == 'twisty')
	  twisty = t.childNodes[j];
      }
    }
  }
  
  if (typeof twisty != "undefined")
    twisty.setAttribute('src', 'twisty-hidden.gif');

}

function toggleTwisty (id) {
    var el = getElemById (id);
    var twisty;
    
    for (var i = 0; i < el.parentNode.childNodes.length; i++) {
      if (el.parentNode.childNodes[i].nodeName == 'A') {
	var t = el.parentNode.childNodes[i];
	for (var j = 0; j < t.childNodes.length; j++) {
	  if (t.childNodes[j].className == 'twisty')
	    twisty = t.childNodes[j];
	}
      }
    }
    

    twisties = getElementsByClassName (document, "img", "twisty");

    for (var i = 0; i < twisties.length; i++) {
	if (twisties[i].src.indexOf('twisty-do-down.gif') != -1) {
	    twisties[i].setAttribute ('src', 'twisty-down.gif');
	} else if (twisties[i].src.indexOf('twisty-do-hidden.gif') != -1) {
	    twisties[i].setAttribute ('src', 'twisty-hidden.gif');
	}
    }
    
    if (el.style.display == "none") {
      if (typeof twisty != "undefined")
	twisty.setAttribute('src', 'twisty-do-down.gif');
      if (typeof Effect != "undefined") {
	Effect.toggle(id, "Slide", {duration:.4});
      } else {
	setStyle(el, {display: 'block'});
      }
    } else {
      if (typeof twisty != "undefined")
	twisty.setAttribute('src', 'twisty-do-hidden.gif');
      if (typeof Effect != "undefined") {
	Effect.toggle(id, "Slide", {duration:.4});
      } else {
	setStyle(el, {display: 'none'});
      }
    }
}


function getElementsByClassName(oElm, strTagName, strClassName){
  var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
  var arrReturnElements = new Array();
  strClassName = strClassName.replace(/\-/g, "\\-");
  var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
  var oElement;
  for(var i=0; i<arrElements.length; i++){
    oElement = arrElements[i];
    if(oRegExp.test(oElement.className)){
      arrReturnElements.push(oElement);
    }
  }
  return (arrReturnElements);
}

function getElemById(aID){ 

  if (document.getElementById)
    return document.getElementById(aID);
  
  return document.all[aID];
}

function setStyle(element, style) {
  for (var name in style) {
    var value = style[name];
    element.style[name] = value;
  }
  return element;
}
////END TWISTY///////////////////////////////////////////////////



function toggle(id, show) 
{
	if(show == 'hide')
	{
		document.getElementById(id).style.display = 'none';
	}
	if(show == 'show')
	{
		document.getElementById(id).style.display = 'block';
	}
}

function autotoggle(id)
{
	if(document.getElementById(id).style.display == 'none' || document.getElementById(id).style.display == '')
	{
		//alert(document.getElementById(id).style.display);
		toggle(id, 'show');
	}
	else
	{
		//alert(document.getElementById(id).style.display);
		toggle(id, 'hide');
	}
}




function resize_toggle(id, txtid)
{
	//alert(document.getElementById(id).style.display);
	if(document.getElementById(id).style.display=='none')
		document.getElementById(id).style.display='block'; 
	else
		document.getElementById(id).style.display='none';

	if(document.getElementById(txtid).innerHTML= '(&#8744;)')
		document.getElementById(txtid).innerHTML= '(&#8743;)';
	else
		document.getElementById(txtid).innerHTML= '(&#8744;)';

}


function getObjInnerText (obj) {
return (obj.innerText) ? obj.innerText
: (obj.textContent) ? obj.textContent
: "";
} 

function getParent(element, parent){
if(typeof element=="string"){element=document.getElementById(element);};
if(!element){return null;};
var elements=[];
if(typeof parent!="string"){/*no parent: gets all parents till #document*/
	while(element.parentNode){
	element=element.parentNode;
	elements.unshift(element);
		if(element==parent){return elements;};
	}
}
else{/*string, presumes you want to locate the first parent node that is such TAG*/
parent=parent.toUpperCase();
	while(element.parentNode){
	element=element.parentNode;
	elements.unshift(element);
		if(element.nodeName && element.nodeName.toUpperCase()==parent){return elements;};
	}
};
return elements;
/* keep this comment to reuse freely:
http://www.fullposter.com/?1 */}



function showselected(fieldname)
{
	var selected='';
	for (i=0; i < document.mentor[fieldname].length; i++)
	{
		if(document.mentor[fieldname][i].checked)
		{
			var parent = getParent(document.mentor[fieldname][i], 'LABEL');
			//alert(parent[0].innerHTML);
			selected=selected + getObjInnerText(parent[0]) + "<br>";
		}
	}
	var field = fieldname.replace("[]", '');
	document.getElementById(field).innerHTML=selected;
}


function newtallyemail()
{
	var linklist = document.getElementById('tallyemails');
	//var newlink = document.createElement("<div><input type='text' name='tallyemail[]'> <a href='javascript: newtallyemail();'>add another email</a></div>");
	var newlink = document.createElement("div");
	newlink.className ="emailtally";
	newlink.innerHTML = "email: <input type='text' name='tallyemail[]' size='30'>";
	linklist.appendChild(newlink);
}



function seturl()
{
	var tit=document.getElementById('title').value;
	if(document.getElementById('url').value=='')
	document.getElementById('url').value=friendlyURL(tit);
}

function friendlyURL (clearString) {
  var output = '';
  var x = 0;
  clearString = clearString.toString();
  var regex = /(^[a-zA-Z0-9_.]*)/;
  while (x < clearString.length) {
    var match = regex.exec(clearString.substr(x));
    if (match != null && match.length > 1 && match[1] != '') {
    	output += match[1];
      x += match[1].length;
    } else {
      if (clearString[x] == ' ')
        output += '-';
      else {
        var charCode = clearString.charCodeAt(x);
        var hexVal = charCode.toString(16);
        //output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase();
        output += '';
      }
      x++;
    }
  }
  return output;
}



function edit_permalink()
{
	urldata = document.getElementById('url-name-full').innerHTML;
	document.getElementById('url-name-full').innerHTML='<input type="text" name="url" id="url" value=' + urldata +  '>';
	
	document.getElementById('save_perma').style.display="inline";
	document.getElementById('edit-slug-buttons').style.display="none";
}

function cancel_permalink(orig)
{
	document.getElementById('url-name-full').innerHTML=orig;
	
	document.getElementById('save_perma').style.display="none";
	document.getElementById('edit-slug-buttons').style.display="inline";
}

function save_permalink()
{
	urldata = document.getElementById('url').value;
	document.getElementById('url-name-full').innerHTML=urldata;
	
	document.getElementById('save_perma').style.display="none";
	document.getElementById('edit-slug-buttons').style.display="inline";
}


var timeout	= 500;
var closetimer	= 0;
var ddmenuitem	= '';

// open hidden layer
function mopen(id)
{	
	
	// cancel close timer
	mcancelclosetime();

	// close old layer
	if(ddmenuitem) document.getElementById(ddmenuitem).style.visibility = 'hidden';
	
	// get new layer and show it
	if(document.getElementById(id))
	{
		ddmenuitem = id;
		document.getElementById(ddmenuitem).style.visibility = 'visible';
	}
	
}
// close showed layer
function mclose()
{
	if(ddmenuitem) document.getElementById(ddmenuitem).style.visibility = 'hidden';
	//alert(document.getElementById(ddmenuitem).style.visibility);
}

// go close timer
function mclosetime()
{
	closetimer = window.setTimeout(mclose, timeout);
}

// cancel close timer
function mcancelclosetime()
{
	if(closetimer)
	{
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

// close layer when click-out
document.onclick = mclose; 


