//-------------------------------------------------------------------	
function strpos(haystack, needle, offset) {   
	// example 1: strpos('Kevin van Zonneveld', 'e', 5);
	// returns 1: 14 
	var i = (haystack+'').indexOf( needle, offset ); 
	return i===-1 ? false : i;
}	
//-------------------------------------------------------------------
	
//-------------------------------------------------------------------
function toggle_bkgd(theid,thecolor) {
	var theItem = 'item_'+theid;
	var thecheckbox = 'checkbox_'+theid;
	if(document.getElementById(thecheckbox)==null) {
		//alert('theid = '+theid);
		document.getElementById(theItem).style.backgroundColor=thecolor;
	} else if(document.getElementById(thecheckbox).checked==false) {
		if(document.getElementById(theItem)!=null) {
			document.getElementById(theItem).style.backgroundColor=thecolor;
		}
	} else {
		if(document.getElementById(theItem)!=null) {
			document.getElementById(theItem).style.backgroundColor='#F4FFD2';
		}
	}
}
//-------------------------------------------------------------------

//-------------------------------------------------------------------
function toggle_checkbox(theid) {
	var thecheckbox = 'checkbox_'+theid;
	if(document.getElementById(thecheckbox).checked==false) {
		document.getElementById(thecheckbox).checked=true;
		toggle_bkgd(theid,'#F4FFD2');
	} else {
		document.getElementById(thecheckbox).checked=false;
		toggle_bkgd(theid,'#FFFFFF');
	}
}
//-------------------------------------------------------------------

//-------------------------------------------------------------------
// Check All | Check None checkboxes in forms...
var checked = false;
var theColor = '#FFFFFF';
function toggle_all_checkboxes(form_id) {
	if(checked == true) {
		checked = false;
		theColor = '#FFFFFF';
	} else {
		checked = true;
		theColor = '#F4FFD2';
	}
	//alert(checked);
	var el = document.getElementById(form_id);
	for (var i = 0; i < el.elements.length; i++) {
		var alt = el.elements[i].alt;
		if(alt=='no_toggle') {
			//alert('no_toggle');
		} else {
			//alert('el.elements[i].id ='+el.elements[i].id);
			//alert('strpos(el.elements[i].id, checkbox_) = '+strpos(el.elements[i].id, 'checkbox'));
			if(strpos(el.elements[i].id, 'checkbox_')!==false) {
				el.elements[i].checked = checked;
				var justId = el.elements[i].id.replace("checkbox_", "");
				toggle_bkgd(justId,theColor);
				//alert(justId);				
			} // end if strpos "checkbox" !== false
		}
	}
}
//-------------------------------------------------------------------

//-------------------------------------------------------------------
// Check All | Check None checkboxes in forms...
function checkedAll (id, checked) {
	var el = document.getElementById(id);
	for (var i = 0; i < el.elements.length; i++) {
		var alt = el.elements[i].alt;
		if(alt=='noCheckedAll') {
			//alert('noCheckedAll');
		} else {
			el.elements[i].checked = checked;
		}
	}
}
//-------------------------------------------------------------------

//-------------------------------------------------------------------
// Check All | Check None checkboxes in forms...
var checkedAll2_setting = false;
function checkedAll2(id) {
	if(checkedAll2_setting == true) {
		checkedAll2_setting = false;
	} else {
		checkedAll2_setting = true;
	}
	var el = document.getElementById(id);
	for (var i = 0; i < el.elements.length; i++) {
		var alt = el.elements[i].alt;
		if(alt=='noCheckedAll') {
			//alert('noCheckedAll');
		} else {
			el.elements[i].checked = checkedAll2_setting;
		}
	}
}
//-------------------------------------------------------------------

//-------------------------------------------------------------------
// paint any pre-selected checkboxes on page load...	
function paint_checked_rows(form_id) {
	var el_a = document.getElementById(form_id);
	for (var i = 0; i < el_a.elements.length; i++) {
		var alt = el_a.elements[i].alt;
		if(alt=='noCheckedAll') {
			//alert('noCheckedAll');
		} else {
			if(strpos(el_a.elements[i].id, 'checkbox_')!==false) {				
				var justId = el_a.elements[i].id.replace("checkbox_", "");			
				if(el_a.elements[i].checked == true) {
					toggle_bkgd(justId,'#F4FFD2');
				} else if(el_a.elements[i].checked == false) {
					toggle_bkgd(justId,'#FFFFFF');
				}
				//alert('el_a.elements[i].checked = '+el_a.elements[i].checked );
			}  // end if strpos checkbox !== false
			
		} // end if... else...
	} // end for
} // end function
//-------------------------------------------------------------------	

//-------------------------------------------------------------------
function mm_confirm_delete(element_id, value) {
	var element = null;
	var warning = 'WARNING: Are you sure you want to delete the selected item(s)?\n\n'
				 +'This cannot be undone!'
	
	if(document.getElementById) {
		var element = document.getElementById(element_id);
	}
	
	if(element == null) return false;
	
	if(value == null) {
		return confirm(warning);
	}
	else {
		if(element.value && element.value == value) {
			return confirm(warning);
		}
	}
}
//-------------------------------------------------------------------

//-------------------------------------------------------------------
function shrink_textarea(textarea_id) {
	var numrows = document.getElementById(textarea_id).rows;
	var shrink_amount = 3;
	//alert('text area '+textarea_id+' has '+numrows+' rows.');
	if((numrows-shrink_amount) > 0) {
		document.getElementById(textarea_id).rows=(numrows-shrink_amount);
	} else {
		document.getElementById(textarea_id).rows=1;
	}
} // end function	
//-------------------------------------------------------------------

//-------------------------------------------------------------------
function expand_textarea(textarea_id) {
	var numrows = document.getElementById(textarea_id).rows;
	var expand_amount = 3;
	//alert('text area '+textarea_id+' has '+numrows+' rows.');
	document.getElementById(textarea_id).rows=(numrows+expand_amount);
} // end function	
//-------------------------------------------------------------------

//-------------------------------------------------------------------
function in_array(needle, haystack, argStrict) {
	// example 1: in_array('van', ['Kevin', 'van', 'Zonneveld']);
	// returns 1: true
	var found = false, key, strict = !!argStrict;
	for (key in haystack) {
		if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {
			found = true;
			break;
		}
	}
	return found;
}
//-------------------------------------------------------------------

//-------------------------------------------------------------------
 function add_upload_field() {
  var field_code = '<br /><input name="file_upload[]" type="file" size="70" />';
  document.getElementById('file_fields').innerHTML += field_code;
 }
//-------------------------------------------------------------------

//-------------------------------------------------------------------
function setFocus(focusme) {
  document.getElementById(focusme).focus()
}
function loseFocus(blurme)  {
  document.getElementById(blurme).blur()
}
//-------------------------------------------------------------------

//-------------------------------------------------------------------
function is_array(input){
	return typeof(input)=='object'&&(input instanceof Array);
}
//-------------------------------------------------------------------

//-------------------------------------------------------------------
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 quotePost(sourceField, targetField) {
	document.getElementById(targetField).value = document.getElementById(targetField).value+document.getElementById(sourceField).value;
}
// ------------------------------------------------------------------

//-------------------------------------------------------------------
// Swap image preview
function swap_image(id) {
	var icon = document.getElementById(id).value;
	var iconUrl = '<img src="img/'+id+'s/'+icon+'" align="absmiddle" />';
	//alert('iconURL = '+iconUrl);
	document.getElementById(id+'_display').innerHTML=iconUrl;
}
//-------------------------------------------------------------------

//-------------------------------------------------------------------
var flexwrite_counter = 0;

function flexwrite(MyFlexNode) {
	flexwrite_counter++;
	var newFields = document.getElementById('flexwrite_dynamic_'+MyFlexNode).cloneNode(true);
	newFields.id = '';
	newFields.style.display = 'inline';
	var newField = newFields.childNodes;
	for (var i=0;i<newField.length;i++) {
		var theName = newField[i].name
		//if (theName)
			//newField[i].name = theName + '[' + flexwrite_counter + ']'; //Changed 05-08-2009
		
		var theId = newField[i].id
		if (theId)
			newField[i].id = 'flex_field_'+flexwrite_counter;		
	
	}
		
	var insertHere = document.getElementById('flexwrite_original_'+MyFlexNode);
	insertHere.parentNode.appendChild(newFields,insertHere);
}
//-------------------------------------------------------------------

//-------------------------------------------------------------------
// AJAX ENGINE (COMPONENT 1 of (2 or 3))
function GetXmlHttpObject() { 
	var objXMLHttp=null;
	if (window.XMLHttpRequest) {
		objXMLHttp=new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	return objXMLHttp;
}
//-------------------------------------------------------------------

//-------------------------------------------------------------------
// "DYNAMIC" AJAX ENGINE (COMPONENT 2 of 2)
// This function takes the following parameters:
//		MyData = The data to be parsed by the remote script
//					MyData may be either a variable ('one')
//					-or- an array (['one', 'two', 'three'])
//		MyURL = The path to the remote script (ie: ajax/example.php)
//		MySpan = The ID of the span (or other item) to be updated
//					If getElementById(MySpan)==null, then the results will 
//					be displayed in an "overlib" javascript popup with this title.
//					Otherwise, the innerHTML of the span will be updated.
function mm_ajax(MyData, MyURL, MySpan) {		
	var ajax_v_general;
	if (MyData.length==0) {
		//document.getElementById(MySpan).innerHTML='No data submitted to AJAX function.';
		return;
	}
	ajax_v_general=GetXmlHttpObject();
	if (ajax_v_general==null) {
		alert('Request failed: This browser does not support HTTP Requests.');
		return;
	}
	var AjaxURL=MyURL+'?checksum='+Math.random();
	if(is_array(MyData)==true) {
		for ( i=0; i < MyData.length ; i++) {
			AjaxURL=AjaxURL+'&v'+[i]+'='+MyData[i];
		} // end for	
	} else {
		AjaxURL=AjaxURL+'&v0='+MyData;	
	}
	ajax_v_general.onreadystatechange=function() {
		if (ajax_v_general.readyState==4 || ajax_v_general.readyState=='complete') {
			if(MySpan != 'null') {
				if(document.getElementById(MySpan)==null) {
					var overlibData = ajax_v_general.responseText; 
					return overlib(overlibData, STICKY, SHADOW, CAPTION, MySpan);					
				} else {
					document.getElementById(MySpan).innerHTML=ajax_v_general.responseText;			
				}
			}
		}
	}
	ajax_v_general.open('GET',AjaxURL,true);
	ajax_v_general.send(null);
}
//-------------------------------------------------------------------

//-------------------------------------------------------------------
function loadXMLDoc(dname) {
	var xmlDoc;
	if (window.XMLHttpRequest) {
		xmlDoc=new window.XMLHttpRequest();
		xmlDoc.open("GET",dname,false);
		xmlDoc.send("");
		return xmlDoc.responseXML;
	
	} else if(ActiveXObject("Microsoft.XMLDOM")) {
		// IE 5 and IE 6
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async=false;
		xmlDoc.load(dname);
		return xmlDoc;
	}
	alert("Error loading document (javascript.js line 155)");
	return null;
} // end fucntion
//-------------------------------------------------------------------

//-------------------------------------------------------------------
function loadXMLString(text) {
	try //Internet Explorer
	{
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async="false";
		xmlDoc.loadXML(text);
	}
	catch(e)
	{
		try // Firefox, Mozilla, Opera, etc.
		{
			parser=new DOMParser();
			xmlDoc=parser.parseFromString(text,"text/xml");
		}
		catch(e)
		{
			alert(e.message);
			return;
		}
	}
	return xmlDoc;
} // end function
//-------------------------------------------------------------------

//-------------------------------------------------------------------
function js_handle_comment_checkbox(checked_status, checkbox_id) {
	var ajax_v_general;
	ajax_v_general=GetXmlHttpObject();
	if (ajax_v_general==null) {
		alert('Request failed: This browser does not support HTTP Requests.');
		return;
	}
	var AjaxURL='includes/update_comment_db.php?checksum='+Math.random();
	    AjaxURL=AjaxURL+'&v0='+checked_status; 
		AjaxURL=AjaxURL+'&v1='+checkbox_id; 

	//alert('AjaxURL = '+AjaxURL);

	ajax_v_general.onreadystatechange=function() {

		if (ajax_v_general.readyState==4 || ajax_v_general.readyState=='complete') {
			
			//alert(ajax_v_general.responseText);
			
			var xmlDoc = loadXMLString(ajax_v_general.responseText);	
			
			var comment_id = xmlDoc.getElementsByTagName("comment_id")[0].childNodes[0].nodeValue;
			var approval_date = xmlDoc.getElementsByTagName("approval_date")[0].childNodes[0].nodeValue;
			var approved_by = xmlDoc.getElementsByTagName("approved_by")[0].childNodes[0].nodeValue;
			
			if(document.getElementById('comment_approval_date_'+trim(comment_id)) != null) { 
				document.getElementById('comment_approval_date_'+trim(comment_id)).innerHTML=trim(decodeURIComponent(approval_date).replace('+',' '));	
			} //else { alert('comment_approval_date_'+trim(comment_id)+' is null!'); }		
			
			if(document.getElementById('comment_approved_by_'+trim(comment_id)) != null) { 
				document.getElementById('comment_approved_by_'+trim(comment_id)).innerHTML=trim(decodeURIComponent(approved_by).replace('+',' '));	
			} //else { alert('comment_approved_by_'+trim(comment_id)+' is null!'); }				
		
		}
	}
	ajax_v_general.open('GET',AjaxURL,true);
	ajax_v_general.send(null);
	
} // end function
//-------------------------------------------------------------------
