function gotoLoc (select) {
	//alert(select.options[select.selectedIndex].value);
	if (select.options[select.selectedIndex].value != "" && select.options[select.selectedIndex].value != "Choose...")
	{	
		window.location = select.options[select.selectedIndex].value; 
	}
}

function HLon (id) {
	var elem = document.getElementById(id);
	var str = elem.className;
	elem.className = elem.className + ' sel';
}

function HLoff (id) {
	var elem = document.getElementById(id);
	var str = elem.className;
	elem.className = str.replace('sel', '');
}

function IHLon (id) {	
	var n = document.getElementById(id); 
	n.className = 'imgsel';
}

function IHLoff (id) {
	var n = document.getElementById(id); 
	n.className = ''; 
}

function deleteItem (name, id, url) {
	if (confirm('Are you sure you want to delete ' + name)) {
		 window.location = url;
	}
}

function oNav(my_id)
  { 
   var elem = document.getElementById(my_id);
   var str = elem.className;
   
   if (str.indexOf('Closed') > -1)
	{
		elem.className = str.replace('Closed', 'Opened');
	}
	else
	{
		elem.className = str.replace('Opened', 'Closed');
   }
}

function show_div_in_group (showID, prefix, count) {
	for (var i=0; i<count; i++)
	{
		var elem = document.getElementById(prefix + i);
		var str = elem.className;
		elem.className = str.replace('show', 'hide');
		elem = document.getElementById(prefix + 'li'+ i);
		elem.className = '';
	}
	var elem = document.getElementById(prefix + showID);
	var str = elem.className;
	elem.className = str.replace('hide', 'show');
	elem = document.getElementById(prefix + 'li'+ showID);
	elem.className = 'sel';
}
     


function showhideID (my_id) {
	var elem = document.getElementById(my_id);
	var str = elem.className;
	// alert(str);
	if (str.indexOf('hide') > -1)
	{
		elem.className = str.replace('hide', 'show');
	}
	else
	{
		elem.className = str.replace('show', 'hide');
   }
}
function hideID (my_id) {
	var elem = document.getElementById(my_id);
	var str = elem.className;
	elem.className = str.replace('show', 'hide');
}

function empty (my_id) {
	document.getElementById(my_id).innerHTML = "";
}

function openclose (my_id) {
	// alert(document.getElementById(my_id).innerHTML);
	// document.getElementById(my_id).innerHTML = "[open]";
}


/* ------------------------------ DIRECTORY LISTING FUNCTIONS - AJAX --------------------------- */

function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
}

var http = createRequestObject();
var resultDIV = "";

function sndReq(url, responseFunction) { 
    http.open('GET', url);
    http.onreadystatechange = responseFunction;
    http.send(null);
}

function sndForm(url, responseFunction, data) {
	alert(data);
    http.open('GET', url);
    http.onreadystatechange = responseFunction;
    http.send(data);
}


var autoDIV	= "";
var autoURL = "";

function activateForm(element, fn, div, url) {
	fn = eval(fn);
	autoDIV = div;
	autoURL = url;
	element.onkeyup = fn; 
}
function autoGETSearch() {
	resultDIV	= autoDIV;
	var data 	= getFormValues(this.form);
	sndReq(autoURL+"?"+data, searchResponse);
}
function autoSearch() {
	resultDIV	= autoDIV;
	var data 	= "q="+this.value;
	sndReq(autoURL+"?"+data, searchResponse);
}

// SEARCH

function searchResponse() {
    if (http.readyState == 4) {
        var response = http.responseText;
        document.getElementById(resultDIV).innerHTML = response;
    }
}

function search (q, divID, url) { 
	resultDIV = divID;
	sndReq(url+'?q='+q, searchResponse);
}

function ajax (divID, url) { 
	resultDIV = divID;
	sndReq(url, searchResponse);
} 

function GETsearch (form, divID, url) {
	resultDIV 	= divID;
	document.getElementById(resultDIV).innerHTML = "searching...";
	var data 	= getFormValues(form);
	sndReq(url+"?"+data, searchResponse);
}     

function addImageEditor(imageID,articleID) { 
	resultDIV = 'tabs1';
	sndReq('image_link.php?imageID='+imageID+'&articleID='+articleID, searchResponse);
	show_div_in_group(1, 'tabs', 6);
}       

function addImage(imageID,articleID) {
	resultDIV = 'images0';
	sndReq('image_link.php?imageID='+imageID+'&articleID='+articleID, searchResponse);
	show_div_in_group(0, 'images', 3);
}

function addDownload(downloadID,studioID) {
	resultDIV = 'downloads';
	sndReq('add_rt_downloadlinks.php?&action=ajaxadd&downloadID='+downloadID+'&studioID='+studioID, searchResponse);
}

function loadMediaForm (q, divID, url) {
	resultDIV = divID;
	document.getElementById(resultDIV).innerHTML = "<p>.: .: .: .: .:</p>";
	sndReq(url+q, mediaFormLoaded);
}

function mediaFormLoaded () 
{
	if (http.readyState == 4) {
        var response = http.responseText;
        document.getElementById(resultDIV).innerHTML = response;
    }
	
	hiddenFormFieldsPointers = new Object();
	prepareForm();
}


function getFormValues(fobj)
{
   var str = "";
   var valueArr = null;
   var val = "";
   var cmd = "";
   for(var i=0; i<fobj.elements.length; i++)
   {
       switch(fobj.elements[i].type)
       {
            case "text":
			case "hidden":
                str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
                 break;
            case "select":
                str += fobj.elements[i].name +
                "=" + fobj.elements[i].options[fobj.elements[i].selectedIndex].value + "&";
                break;
       }
   }
   str = str.substr(0,(str.length - 1));
   return str;
}

function previewEmail(id) {
	var pre = document.getElementById("preview");
	pre.innerHTML = "<h1>fetching preview...</h1>";
	resultDIV = "preview";
	sndReq('emailpreview?id='+id, searchResponse);
}



/* ------------------------------ EDITOR FUNCTIONS - JS --------------------------- */

function editor (action) {
	if (cur_field && cur_field.selectionEnd) {
		
	// user has selected text
		var sel_str = (cur_field.value).substring(cur_field.selectionStart,cur_field.selectionEnd);
		switch (action) {
			// EMAIL 
			case "email":
				var newtext = '<a href="mailto:'+sel_str+'">'+sel_str+'</a>';
				insertAtCursor(cur_field, newtext);
			break;
			
			// URL LINK 
			case "url":
				var link = prompt('Enter the URL (web address) including http://');
				var newtext = '<a href="'+link+'">'+sel_str+'</a>';
				insertAtCursor(cur_field, newtext);
			break;
			
			case "urlnew":
				var link = prompt('Enter the URL (web address) including http://');
				var newtext = '<a target="_new" href="'+link+'">'+sel_str+'</a>';
				insertAtCursor(cur_field, newtext);
			break;   
			
			case "hr":
				var newtext = '<div class="hr"></div>';
				insertAtCursor(cur_field, newtext);
			break;
			
			// TAG FORMATTING
			default:
				var newtext = '<'+action+'>'+sel_str+'</'+action+'>';
				insertAtCursor(cur_field, newtext);
		}
		
	// user has not selected any text
	} else {
		alert("You need to select some text in one of the content fields to make this work.");
	}
}

function insert(str)
{
	if (cur_field && cur_field.selectionEnd) {
		// user has selected text
		insertAtCursor(cur_field, str);
	} else {
		alert("You need to click in the content text field to make this work.");
	}
}

var cur_field;
var cur_pos_start;
var cur_pos_end;
var cur_text;



function editor_focus (element) {
	cur_field = element;
}

function insertAtCursor(myField, myValue) {
  //IE support
  if (document.selection) {
    myField.focus();
    sel = document.selection.createRange();
    sel.text = myValue;
  }
  //MOZILLA/NETSCAPE support
  else if (myField.selectionStart || myField.selectionStart == '0') {
    var startPos = myField.selectionStart;
    var endPos = myField.selectionEnd;
    myField.value = myField.value.substring(0, startPos)
                  + myValue 
                  + myField.value.substring(endPos, myField.value.length);
  } else {
    myField.value += myValue;
  }
} 
            
function checkID (id)
{                    
	if ($('chk'+id).checked)   
	{
		$('chk'+id).checked=0;
	} else {
		$('chk'+id).checked=1;
	}
	
}
function checkAllInThread (thread)
{                                                        
 	var select = "li."+thread;
	var articles = $('sitelinks').getElements(select);
	
	for (var i=0; i<articles.length;i++)
	{        
		var input = articles[i].getElementsByTagName('input');  
		input[0].checked = 1;   
	}
}
function uncheckAllInThread (thread)
{                                                        
 	var select = "li."+thread;
	var articles = $('sitelinks').getElements(select);
	
	for (var i=0; i<articles.length;i++)
	{        
		var input = articles[i].getElementsByTagName('input');  
		input[0].checked = 0;   
	}
}