function scrollToPart(id)
{
	SmoothScroll.scrollTo('part'+id, gebi('parts_list'));
}

function alertWS(msg, title)
{
	if(!!title)
		title='Message';
	
	WindowSet.addWindow(
	{
		name: 'alertWS',
		title: title,
		width: 400,
		height: 100,
		fitWidth: true,
		fitHeight: true,
		top: '50%',
		left: '50%',
		content: '<div style="width:100%; text-align:center;"><p>'+ msg +'</p><p><input type="button" value="OK" onclick="WindowSet.alertWS.close();" /></p><p>&nbsp;</p></div>',
		modal: true,
		closeButton: true
	});
}

function showPart(parts_id, pumps_id)
{
	WindowSet.addWindow(
	{
		name: 'part_detail',
		title: 'Part Detail',
		width: 400,
		height: 100,
		fitWidth: true,
		fitHeight: true,
		top: '50%',
		left: '50%',
		contentUrl: 'part_detail.php?parts_id='+parts_id+'&pumps_id='+pumps_id,
		modal: true,
		closeButton: true
	});
}

function showPump(pumps_id)
{
	WindowSet.addWindow(
	{
		name: 'pump_detail',
		title: 'Pump/Pump Tool Detail',
		width: 400,
		height: 100,
		fitWidth: true,
		fitHeight: true,
		top: '50%',
		left: '50%',
		contentUrl: 'pump_detail.php?pumps_id='+pumps_id,
		modal: true,
		closeButton: true
	});
}

function addToCart(parts_id, pumps_id)
{
	if(!!WindowSet.part_detail)
		WindowSet.part_detail.close();
	
	if(!!WindowSet.pump_detail)
		WindowSet.pump_detail.close();
	
	WindowSet.addWindow(
	{
		name: 'add_to_cart',
		title: 'Add to Cart',
		width: 400,
		height: 100,
		fitWidth: true,
		fitHeight: true,
		top: '50%',
		left: '50%',
		contentUrl: 'add_to_cart.php?parts_id='+parts_id+'&pumps_id='+pumps_id,
		modal: true,
		closeButton: true
	});
}

addEvent(window, 'load', function()
{
	WindowSet.setup(
	{
		minZIndex: 10000,
		position: 'fixed'
	});
});

function hideTabLi(num)
{
	gebi('tabber').tabber.tabs[num].li.style.display='none';
}

function showTabLi(num)
{
	gebi('tabber').tabber.tabs[num].li.style.display='';
}

function currentTabIndex()
{
	return document.getElementsByClassName('tabberactive')[0].getElementsByTagName('a')[0].tabberIndex;
}

function currentTabReference()
{
	return gebi('tabber').tabber.tabs[currentTabIndex()];
}

function loadTabContent(index, forceRefresh, orderby)
{
	var a, div, i, inputs, url, img;
	
	if(!orderby)
		orderby='';
	
	a=new Ajax(true, 'txt');
	switch(index)
	{
		case TAB_USERS:
			div='users';
			url='modules/users/view.php';
		break;
		case TAB_COMPANIES:
			div='companies';
			url='modules/companies/view.php';
		break;
		case TAB_DOCUMENTS:
			div='documents';
			url='modules/documents/view.php';
		break;
		case TAB_MOTD:
			div='motd';
			url='modules/motd/view.php';
		break;
	}
	
	if(!!gebi(div))
	{
		gebi('tabber').tabber.tabs[index].showLoader();
		
		inputs=gebi(div).getElementsByTagName('input');
		checked=false;
		if(forceRefresh!==true)
		{
			for(i=0; i<inputs.length; i++)
			{
				if(inputs[i].type=='checkbox' && inputs[i].checked)
					return;
			}
		}
		
		a.get(url, function()
		{
			if(a.ready())
			{				
				gebi('tabber').tabber.tabs[index].hideLoader();
				
				if(a.status()==200)
					gebi(div).innerHTML=a.response();
				else if(a.status() != 0)
					alert('Couldn\'t load page: HTTP Error '+a.status()+'\n\n'+a.response());
			}
		});
	}
}

function orderBy(order)
{
	loadTabContent(currentTab(), true, order);
}

function loadFormTab(id, tab, editable, editAsNew, clearForm)
{
	var a, ele, elements, module, formOpen, i, j, opt, opts;
	
	if(!!tab)
	{
		formOpen=gebi('tabber').tabber.tabs[tab].li.style.display!='none';
		showTabLi(tab);
		gebi('tabber').tabber.tabShow(tab);
		
		if(formOpen)
		{
			if(!confirm('There is a form already open. Are you sure you want to load another one over it? Any changes you have made will be lost.'))
				return;
		}
	}
	
	if(tab==TAB_ADD_USERS)
	{
		elements=gebi('add_users_form').elements;
		module='users';
	}
	else if(tab==TAB_ADD_COMPANIES)
	{
		elements=gebi('add_companies_form').elements;
		module='companies';
	}
	else if(tab==TAB_ADD_DOCUMENTS)
	{
		elements=gebi('add_documents_form').elements;
		module='documents';
	}
	
	url='modules/'+ module +'/ajax.php?Action=load_form';
	for(i=0; i<elements.length; i++)
	{
		ele=elements[i];
		
		if(editable===false || ele.className=='disabled')
			ele.disabled=true;
		else
			ele.disabled=false;
		
		if(clearForm!==false)
		{
			if(ele.name!='xsrf_key')
			{
				if(ele.tagName.toLowerCase()=='textarea' || (ele.tagName.toLowerCase()=='input' && (ele.type=='hidden' || ele.type=='text' || ele.type=='password' || ele.type=='file')))
					ele.value='';
				else if(ele.tagName.toLowerCase()=='input' && ele.type=='checkbox')
					ele.checked=false;
				else if(ele.tagName.toLowerCase()=='select')
				{
					if(ele.type=='select-multiple')
					{
						for(j=0; j<ele.options.length; j++)
							ele.options[j].selected=false;
					}
					else
						ele.selectedIndex=0;
				}
			}
		}
	}
	
	a=new Ajax(true, 'txt');
	if(!isNaN(parseInt(id)))
		url=url+ (url.indexOf('?')==-1? '?' : '&') +'id='+id;
	a.get(url, function()
	{
		if(a.ready())
		{
			if(a.status()==200)
			{
				//alert(a.response());
				try
				{
					resp=JSON.parse(a.response());
				}
				catch(err)
				{
					alert('Error Parsing JSON: '+a.response());	
				}
				if(resp.success)
				{
					for(i in resp.form_fields)
					{
						if(!!resp.form_fields[i])
						{
							ele=elements[i];
							if(!!ele)
							{
								if(resp.form_fields[i].disabled)
									ele.disabled=true;
								if(ele.tagName.toLowerCase()=='textarea' || (ele.tagName.toLowerCase()=='input' && (ele.type=='hidden' || ele.type=='text' || ele.type=='password')))
									ele.value=resp.form_fields[i].value;
								else if(ele.tagName.toLowerCase()=='input' && ele.type=='checkbox')
									ele.checked=resp.form_fields[i].value? true : false;
								else if(ele.tagName.toLowerCase()=='select')
								{
									if(!!resp.form_fields[i].options)
									{
										while(ele.options.length > 0)
											ele.remove(0);
										
										opts=resp.form_fields[i].options;
										for(j=0; j<opts.length; j++)
										{
											opt = document.createElement('option');
											opt.text = opts[j].text;
											opt.value = opts[j].value;
											try
											{
												ele.add(opt, null); // Everything but IE
											}
											catch(err)
											{
												ele.add(opt); // You-Know-Who
											}
										}
									}
									
									for(j=0; j<ele.options.length; j++)
									{
										if(ele.type=='select-multiple')
										{
											for(k=0; k<resp.form_fields[i].value.length; k++)
											{
												if(ele.options[j].value==resp.form_fields[i].value[k])
													ele.options[j].selected=true;
											}
										}
										else
										{
											if(ele.options[j].value==resp.form_fields[i].value)
												ele.selectedIndex=j;
										}
									}
								}
							}
						}
					}
					//if(editAsNew===true)
					//	elements['id'].value='';
				}
				else
					alert('The form could not be displayed: '+resp.error);
			}
			else if(a.status() != 0)
				alert('Couldn\'t load form: HTTP Error '+a.status()+'\n\n'+a.response());
		}
	});
}

function newUser(id) //if id is present, populate form with current user
{
	loadFormTab(id, TAB_ADD_USERS);
	
	if(!!id)
	{
		gebi('add_users_form').elements['Action'].value = 'update';
		gebi('add_users_form').elements['users_id'].value = id;
	}
	else
	{
		gebi('add_users_form').elements['Action'].value = 'add';
		gebi('add_users_form').elements['users_id'].value = '';
	}
}

function newDocument(id) //if id is present, populate form with current document
{
	loadFormTab(id, TAB_ADD_DOCUMENTS);
	
	if(!!id)
	{
		gebi('add_documents_form').elements['Action'].value = 'update';
		gebi('add_documents_form').elements['documents_id'].value = id;
	}
	else
	{
		gebi('add_documents_form').elements['Action'].value = 'add';
		gebi('add_documents_form').elements['documents_id'].value = '';
	}
}

function newCompany(id) //if id is present, populate form with current company
{
	loadFormTab(id, TAB_ADD_COMPANIES);
	
	if(!!id)
	{
		gebi('add_companies_form').elements['Action'].value = 'update';
		gebi('add_companies_form').elements['companies_id'].value = id;
	}
	else
	{
		gebi('add_companies_form').elements['Action'].value = 'add';
		gebi('add_companies_form').elements['companies_id'].value = '';
	}
}
/*
function deleteUser(id) //if id is present, populate form with current user
{
	loadFormTab(id, TAB_ADD_USERS);
	gebi('add_users_form').elements['Action'].value = 'edit';
	gebi('add_users_form').elements['users_id'].value = id;
}
*/
function blurTr(trID)
{	
	gebi(trID).style.backgroundColor = '#777777';
}

function unblurTr(trID)
{	
	gebi(trID).style.backgroundColor = '';
}

function removeTr(trID)
{
	var tr = gebi(trID);
	tr.style.display = "none";
	//table.removeChild(tr);
}
