

function clearField(itemId) {
	if( $(itemId + "") ) $(itemId + "").value = "";
	if( $(itemId + "_url") ) $(itemId + "_url").value = "";
	if( $(itemId + "_type") ) $(itemId + "_type").value = "";
	if( $(itemId + "_name") ) $(itemId + "_name").value = "";
	if( $(itemId + "_display") ) $(itemId + "_display").innerHTML = " ";
}

function highlightFields( field_str )
{
	var fields = field_str.split(',');
	
	for( var i=0; i<fields.length; i++ )
	{
		highlightField( fields[i], '#F6F5CF' ); 
	}
	
}

function highlightField( field_name, field_color )
{
	document.getElementById( field_name ).style.backgroundColor = field_color;
}

function pop_templates()
{
	window.open('pop_templates.php','admin_pop','width=600,height=400,scrollbars=yes,resizable=yes');	
}

//removes all spaces in a string
function removespaces() 
{
	return this.replace(/.*\S/,'');
	
}	//end function

//trims leading and trailing spaces
function trim_spaces() 
{
	return this.replace(/^\s+/,'').replace(/\s+$/,'');
	
}	//end function

function clear_image( field_id )
{
	document.getElementById( 'pg-' + field_id ).src = 'images/spacer.gif';
	document.getElementById( field_id ).value = '';
	document.getElementById( field_id + '_filename' ).value = '';
}

function clear_link( field_id )
{
	document.getElementById( field_id ).value = '';
	document.getElementById( field_id + '_text' ).innerHTML = '';
	document.getElementById( field_id + '_text' ).style.backgroundColor = '';
}


function isNumeric(sText) {
	var ValidChars = "0123456789.";
	var IsNumber=true;
	var Char;
	for (i = 0; i < sText.length && IsNumber == true; i++) {
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) {
			IsNumber = false;
		}
	}
	return IsNumber;
}

function hideFormExample(object, defaultText) {
	var thisInput = object;
	if(thisInput.value == defaultText) { thisInput.value = ""; }
}
function showFormExample(object, defaultText) {
	var thisInput = object;
	if(thisInput.value == "") { thisInput.value = defaultText; }
}

// Hide or show elements on a page
// nodeIds - ID of one or more (separated by "|") elements on a page
// visTo - takes a value of 0 or 1 to set visibility as either none or block (by default)
// visType (optional) - allows override of default block visibility type for other options (e.g. inline, table-row-group, etc.)
function hide_show(nodeIds, visTo, visType)
{
	var nodeIdArr = nodeIds.split("|");
	
	for(i=0; i<nodeIdArr.length; i++) {
		var nodeId = nodeIdArr[i];
		var thisNode = $(nodeId);
		
		// check for node's current visibility
		if(visTo == 1) {
			if(visType) {
				if( (visType == "table-row-group" || visType == "table-row") && document.all ) visType = "block";
				thisNode.style.display = visType;
			} else {
				thisNode.style.display = "block";
			}
		} else if(visTo == 0) {
			thisNode.style.display = "none";
		} else { // find node current vis and assume the opposite
			var currVis = thisNode.style.display;
			
			if(currVis) {
				if(currVis == "none")
					thisNode.style.display = ( visType ? visType : "block" );
				else
					thisNode.style.display = "none";
			} else if(thisNode.className == "no_show") {
				thisNode.style.display = ( visType ? visType : "block" );
			} else { // assume element starts as visible
				thisNode.style.display = "none";
			}
		}
	}
}

function swap_expand_icons(clicked_header) {
	var curr_class = clicked_header.className;

	if( curr_class == "expandable")
		var new_class = "contractable";
	else
		var new_class = "expandable";

	clicked_header.className = new_class;
}


function init() {
	startList();
}

function initAll() {
	startList();
	setupTabs();
}

function addSubmitTypeInput( mode ) {
	
	var div_hidden_inputs = document.getElementById('hidden-inputs'); 
	
	var input_type = document.createElement('input');
    input_type.type = 'hidden';
    input_type.name = 'submit_mode';
    input_type.value = mode;
    				
    div_hidden_inputs.appendChild(input_type);
	
}

function clearInputs(arrInputs)
{
	var nodeIdArr = arrInputs.split("|");
	
	for(i=0; i<nodeIdArr.length; i++) {
		var nodeId = nodeIdArr[i];
		var thisNode = $(nodeId);
		
		thisNode.value = ''; 
	}
}




// HELPER FUNCTIONS

// commented out by KF on 6/14/2010 -- was breaking jquery
//function $(element_id) {
//	var thisElement = document.getElementById(element_id);
//	if(thisElement)
//		return thisElement;
//}

function checkSignatureField(action)
{
	if (document.getElementById('signature').value=="" || document.getElementById('signature').value=="Please enter your full name here")
	{
		
		alert("Please enter your full name in the signature field before submitting.");
		return false;
	}
	else
	{
		if (action=="denied")
		{
			var agree = confirm('Please confirm that you wish to deny this workorder.\n\nThe workorder will be frozen pending further discussion.\n\n');
			
		}
		else
		{
			var agree = confirm('Please confirm that you wish to proceed with this workorder.\n\nBy clicking on the \'OK\' button you agree to pay all charges described for the work completed.\n\nDo you wish to continue?\n\n');
			
		}
		
		if(agree)
			return true;
		else
			return false;
	}
	
}

function focusNext(objEvent, strElement)
{
   if ( objEvent.keyCode == 13)
   {
       oNextObj = document.getElementById(strElement);
      
        if( oNextObj )
        {
            oNextObj.focus();

			oNextObj.click();
                
        }   //end if
    	return;
          
	}    //end if
       
}   //end function


function checkForm()
{
	var submit = true;
	var objForm = document.getElementById('news_signup');
	var em = "";
	
	var temp = objForm.email.value.split('@');
	
	if (temp[1] == null) {
		submit = false;
		em = em + 'Your Email Needs An @\n';
	} //end if
  	
  	else {
   		var itemp = temp[1].split('.');
   		
   		if (itemp[1] == null) {
   			submit = false;
   			em = em + 'Your Email Needs A "period".\n';
    	}	//end if
   }	//end else
   
   	if( submit == false ) {
		alert( em );
   	}	//end if
   
   return submit;
	
}

function toggleSearch(action) {
	search_field = document.getElementById('search');
	if( search_field ) {
		if( action == 'on' ) {
			if( search_field.value=='Search' ) {
				search_field.value='';
			}
		}
		else if( action == 'off' ) {
			if( search_field.value=='' ) {
				search_field.value='Search';
			}
		}
	}
}

function toggleEmail(action) {
	search_field = document.getElementById('newsletter_email');
	if( search_field ) {
		if( action == 'on' ) {
			if( search_field.value=='email address' ) {
				search_field.value='';
			}
		}
		else if( action == 'off' ) {
			if( search_field.value=='' ) {
				search_field.value='email address';
			}
		}
	}
}

function tabShowHide(type, id){
	if( type == 'close' ){
		document.getElementById( 'close' + id ).style.display = 'none';
		document.getElementById( 'open' + id ).style.display = 'inline';
		document.getElementById( 'tab' + id ).style.display = 'none';
	}
	if( type == 'open' ){
		document.getElementById( 'close' + id ).style.display = 'inline';
		document.getElementById( 'open' + id ).style.display = 'none';
		document.getElementById( 'tab' + id ).style.display = 'block';
	}
}


function changeTab(tab_id){
	var lis = document.getElementById('bottomTabs').getElementsByTagName('li');
	var temp_id="";
	
	for( i=0; i<lis.length; i++){
		if(lis[i].id == 't'+tab_id){
			setClassName(lis[i],'active');
			if($('sub'+tab_id)){ document.getElementById('sub'+tab_id).style.display = 'block'; }
			if($('st'+tab_id+'_1')){ setClassName($('st'+tab_id+'_1'),'active'); }
			if($('h'+tab_id+'_1')){ document.getElementById('h'+tab_id+'_1').style.display = 'block'; }
			if($('c'+tab_id+'_1')){ document.getElementById('c'+tab_id+'_1').style.display = 'block'; }
			if($('right'+tab_id)){ document.getElementById('right'+tab_id).style.display = 'block'; }
		}
		else{
			setClassName(lis[i],'');
			
			temp_id = lis[i].id.substring(1);
			if($('sub'+temp_id)){ document.getElementById('sub'+temp_id).style.display = 'none'; }
			if($('right'+temp_id)){ document.getElementById('right'+temp_id).style.display = 'none'; }
			
			for(t=1; t<=6; t++){
				for( s=1; s<=6; s++ ){
					if($('st'+t+'_'+s) && ('st'+t+'_'+s != 'st'+tab_id+'_1')){ setClassName($('st'+t+'_'+s),''); }
					if($('h'+t+'_'+s) && ('h'+t+'_'+s != 'h'+tab_id+'_1')){ document.getElementById('h'+t+'_'+s).style.display = 'none'; }
					if($('c'+t+'_'+s) && ('c'+t+'_'+s != 'c'+tab_id+'_1')){ document.getElementById('c'+t+'_'+s).style.display = 'none'; }
				}
			}
		}
	}
	
}

function changeSubsection(tab_num, id){
	var atags = document.getElementById('sub'+tab_num).getElementsByTagName('a');
	var temp_id="";
	for( i=0; i<atags.length; i++){
		if(atags[i].id == 'st'+tab_num+'_'+id){
			setClassName(atags[i],'active');
			if($('h'+tab_num+'_'+id)){ document.getElementById('h'+tab_num+'_'+id).style.display = 'block'; }
			if($('c'+tab_num+'_'+id)){ document.getElementById('c'+tab_num+'_'+id).style.display = 'block'; }
		}
		else{
			setClassName(atags[i],'');
			
			temp_id = atags[i].id.substring(4);
			if($('h'+tab_num+'_'+temp_id)){ document.getElementById('h'+tab_num+'_'+temp_id).style.display = 'none'; }
			if($('c'+tab_num+'_'+temp_id)){ document.getElementById('c'+tab_num+'_'+temp_id).style.display = 'none'; }
		}
	}
}

function changeSlide(tab, current, direction, total){
	
	if( current+1 > total )
		var next=1;
	else
		var next=current+1;
	
	if( current-1 < 1 )
		var prev=total;
	else
		var prev=current-1;


	if( direction == 'up' ){
		$('i'+tab+'_'+current).style.display = 'none';
		$('i'+tab+'_'+next).style.display = 'block';
	}
	else if( direction == 'down' ){
		$('i'+tab+'_'+current).style.display = 'none';
		$('i'+tab+'_'+prev).style.display = 'block';
	}
	
}

function changeHero(current, direction, total){
	
	if( current+1 > total )
		var next=1;
	else
		var next=current+1;
	
	if( current-1 < 1 )
		var prev=total;
	else
		var prev=current-1;


	if( direction == 'up' ){
		$('hero'+current).style.display = 'none';
		$('hero'+next).style.display = 'block';
	}
	else if( direction == 'down' ){
		$('hero'+current).style.display = 'none';
		$('hero'+prev).style.display = 'block';
	}
	
}


/***********************************************************
* filter search
***********************************************************/
function filterPerPage(term,pagenum) {
	var loc = 'search.php?';
	loc += 'k='+term;
	loc += '&p='+pagenum;
	loc += '&pp='+document.getElementById('perpage').value;
	window.location = loc;
}
function filterPageNum(term,perpage) {
	var loc = 'search.php?';
	loc += 'k='+term;
	loc += '&pp='+perpage;
	loc += '&p='+document.getElementById('pagenum').value;
	window.location = loc;
}

/***********************************************************
* class name functions
***********************************************************/
function getClassName(element) {
	var className = (document.all && document.getElementById ? element.className : element.getAttribute("class"));
	return className;
}
function setClassName(element,style) {
	if( document.all && document.getElementById ) element.className=style;
	else element.setAttribute("class", style);
}

function show_hide_woList(id){
	if( id == 'pending_wo' ){
		var item = document.getElementById(id);
		if( item.style.display == 'none' ){
			item.style.display = 'block';
			document.getElementById('pending_right').style.display = 'none';
			document.getElementById('pending_down').style.display = 'block';
		}
		else{
			item.style.display = 'none';
			document.getElementById('pending_right').style.display = 'block';
			document.getElementById('pending_down').style.display = 'none';
		}
	}
	else if( id == 'active_wo' ){
		var item = document.getElementById(id);
		if( item.style.display == 'none' ){
			item.style.display = 'block';
			document.getElementById('active_right').style.display = 'none';
			document.getElementById('active_down').style.display = 'block';
		}
		else{
			item.style.display = 'none';
			document.getElementById('active_right').style.display = 'block';
			document.getElementById('active_down').style.display = 'none';
		}
	}
	else if( id == 'late_wo' ){
		var item = document.getElementById(id);
		if( item.style.display == 'none' ){
			item.style.display = 'block';
			document.getElementById('late_right').style.display = 'none';
			document.getElementById('late_down').style.display = 'block';
		}
		else{
			item.style.display = 'none';
			document.getElementById('late_right').style.display = 'block';
			document.getElementById('late_down').style.display = 'none';
		}
	}
}

function toggleValue(field, action) {
	
	var field_value = document.getElementById(field);
	
	if( field_value && field == 'contact_name' ) {
		if( action == 'on' ) {
			if( field_value.value=='Contact Name' ) {
				field_value.value='';
			}
		}
		else if( action == 'off' ) {
			if( field_value.value=='' ) {
				field_value.value='Contact Name';
			}
		}
	}
	else if( field_value && field == 'contact_email' ){
		if( action == 'on' ) {
			if( field_value.value=='Contact Email' ) {
				field_value.value='';
			}
		}
		else if( action == 'off' ) {
			if( field_value.value=='' ) {
				field_value.value='Contact Email';
			}
		}
	}
}


/**
 * recolors alt rows
 * @param string table = id of table element
 */
function recolorRows(table) {
	if( document.getElementById(table) ) {
		var trs = document.getElementById(table).getElementsByTagName('tr');
		for( var n=0; n<trs.length; n++ ) {
			if( getClassName(trs[n]) != 'header' && getClassName(trs[n]) != 'footer' ) {
				if( n%2 ) {
					setClassName(trs[n],'bgcolor0');
				}
				else {
					setClassName(trs[n],'bgcolor1');
				}
			}
		}
	}
}


//assigns a new function to string types
String.prototype.removespaces = removespaces;
String.prototype.trim_spaces = trim_spaces;