//pre load images

if(document.images)

{

	preload_image = new Image(25,25); 

	preload_image.src="/vpicks/images/web/loading.gif"; 

}



//clears form error messages

function clears(form)

{

	for(var i=0;i < form.elements.length;i++){

		if(document.getElementById(form.elements[i].name))

			document.getElementById(form.elements[i].name).innerHTML = "&nbsp;";

	}

}



//reset form

function resets(form)

{

	var elems = form.elements;



	for(i=0; i<elems.length; i++){

		type = elems[i].type.toLowerCase();

		

		switch(type)

		{

			case "text":

			case "password":

			case "textarea":

			case "hidden":

				if(!elems[i].disabled) elems[i].value = "";

				break;

		

			case "radio":

			case "checkbox":

				if (elems[i].checked) elems[i].checked = false;

				break;

			

			case "select-one":

			case "select-multi":

				elems[i].selectedIndex = 0;

				break;

			

			default: break;

		}

	}

}



function IsNumeric(string)

{

	var valid = "0123456789.";

	var character;

	

	if(!string.length) return false;

	

	for (i = 0; i < string.length; i++){

		character = string.charAt(i);

	   

		if(valid.indexOf(character) == -1) return false;

	}

	

	return true;

}



//checks item form for errors

function error_item(form)

{

	//errors count

	var errors = 0;

	

	//check name

	if(!form.item_name.value.length){

		document.getElementById('item_name').innerHTML = "Name required";

		errors++;

	}

	

	//check price

	if(!form.item_price.value.length){

		document.getElementById('item_price').innerHTML = "Price required";

		errors++;

	}

	else if(!IsNumeric(form.item_price.value))

	{

		document.getElementById('item_price').innerHTML = "Price must be numeric";

		errors++;

	}

	

	//check special price

	if(form.item_status.value == 'S' && !form.item_specialPrice.value.length)

	{

		document.getElementById('item_specialPrice').innerHTML = "Special price required";

		errors++;

	}

	if(form.item_specialPrice.value.length && !IsNumeric(form.item_specialPrice.value))

	{

		document.getElementById('item_specialPrice').innerHTML = "Price must be numeric";

		errors++;

	}

	

	//check forward

	if(form.item_forward.value.length && form.item_forward.value.substring(0,7) != "http://")

	{

		document.getElementById('item_forward').innerHTML = "Forward URL must begin with http://";

		errors++;

	}

	

	//check description

	if(!form.item_description.value.length){

		document.getElementById('item_description').innerHTML = "Description required";

		errors++;

	}

	

	return errors;

}



//checks referral form for errors

function error_referral(form)

{

	//errors count

	var errors = 0;

	

	//check name

	if(!form.referral_name.value.length){

		document.getElementById('referral_name').innerHTML = "Name required";

		errors++;

	}

	

	//check source

	if(form.referral_type.value == "reviews" && !form.referral_source.value.length){

		document.getElementById('referral_source').innerHTML = "Source required for review";

		errors++;

	}

	

	//check author

	if(form.referral_type.value == "reviews" && !form.referral_author.value.length){

		document.getElementById('referral_author').innerHTML = "Author required for review";

		errors++;

	}

	

	if(form.referral_state.value != "AA" && form.referral_state.value != "ZZ")

	{

		//check address

		if(form.referral_type.value == "dealers" && !form.referral_address.value.length){

			document.getElementById('referral_address').innerHTML = "Address required for dealer";

			errors++;

		}

		

		//check city

		if(form.referral_type.value == "dealers" && !form.referral_city.value.length){

			document.getElementById('referral_city').innerHTML = "City required for dealer";

			errors++;

		}

		

		//check zip

		if(form.referral_type.value == "dealers" && !form.referral_zip.value.length){

			document.getElementById('referral_zip').innerHTML = "Zip code required for dealer";

			errors++;

		}

		else if(form.referral_zip.value.length > 0 && !IsNumeric(form.referral_zip.value))

		{

			document.getElementById('referral_zip').innerHTML = "Zip must be numeric";

			errors++;

		}

		

		//check phone

		if(form.referral_type.value == "dealers" && !form.referral_phone.value.length){

			document.getElementById('referral_phone').innerHTML = "Phone required for dealer";

			errors++;

		}

		else if(form.referral_phone.value.length > 0 && !IsNumeric(form.referral_phone.value))

		{

			document.getElementById('referral_phone').innerHTML = "Phone number must be numeric";

			errors++;

		}

		else if(form.referral_phone.value.length > 0 && form.referral_phone.value.length < 10)

		{

			document.getElementById('referral_phone').innerHTML = "Phone must be ten digits";

			errors++;

		}

	}

	

	//check state

	if(form.referral_type.value == "dealers" && !form.referral_state.value.length){

		document.getElementById('referral_state').innerHTML = "State required for dealer";

		errors++;

	}

	

	//check website

	if(form.referral_website.value.length && form.referral_website.value.substring(0,7) != "http://")

	{

		document.getElementById('referral_website').innerHTML = "Web address must begin with http://";

		errors++;

	}

	if(form.referral_type.value == "dealers" && (form.referral_state.value == "AA" || form.referral_state.value == "ZZ") && !form.referral_website.value.length)

	{

		document.getElementById('referral_website').innerHTML = "Website required for international or online dealer";

	}

	//check comment

	if((form.referral_type.value != "dealers" && form.referral_type.value != "reviews") && !form.referral_comment.value.length){

		document.getElementById('referral_comment').innerHTML = "Comment required for artist, testimonial or review";

		errors++;

	}

	

	return errors;

}



//checks info form for errors

function error_info(form)

{

	//errors count

	var errors = 0;

	

	//check title

	if(!form.info_title.value.length){

		document.getElementById('info_title').innerHTML = "Title required";

		errors++;

	}

	

	//check comment

	if(form.info_type.value == "tips" && !form.info_comment.value.length){

		document.getElementById('info_comment').innerHTML = "Comment required for tip";

		errors++;

	}

	

	//check script

	if((form.info_type.value == "videos" || form.info_type.value == "links") && !form.info_script.value.length){

		document.getElementById('info_script').innerHTML = "Script required for videos and links";

		errors++;

	}

	if(form.info_type.value == "links" && form.info_script.value.substring(0,7) != "http://"){

		document.getElementById('info_script').innerHTML = "Web address must begin with http://";

		errors++;

	}

	

	return errors;

}



//item add/edit

function item(form)

{

	clears(form);

	

	if(!error_item(form)){

		form.item_price.value = form.item_price.value * 100;

		

		if(form.item_specialPrice.value.length)

			form.item_specialPrice.value = form.item_specialPrice.value * 100;

		

		form.submit();

	}

}



//referral add/edit

function referral(form)

{

	clears(form);

	

	if(!error_referral(form)) form.submit();

}



//info add/edit

function info(form)

{

	clears(form);

	

	if(!error_info(form)) form.submit();

}



function deleteItem(form)

{

	if(confirm("Are you sure you want to delete this item?")){

		form.item_mode.value = "delete";

	

		form.submit();

	}

}



function deleteReferral(form)

{

	if(confirm("Are you sure you want to delete this referral?")){

		form.referral_mode.value = "delete";

	

		form.submit();

	}

}



function deleteInfo(form)

{

	if(confirm("Are you sure you want to delete this info?")){

		form.info_mode.value = "delete";

	

		form.submit();

	}

}



function tag(elem,val)

{

	var form = document.getElementById('tag_form');

	var tags = form.elements;

	

	for(i=0; i<tags.length; i++) tags[i].value = "";

	

	document.getElementById(elem).value = val;

	

	form.submit();

}



function image(form, filename)

{

	form.filename.value = filename;

	

	form.submit();

}



function package(form, id)

{

	form.item_id.value = id;

	

	form.submit();

}



function equipment(form, id)

{

	package(form, id);

}



function changeType(form, tab)

{

	if(tab == "items")

	{

		document.getElementById('categories').className = "hidden";

		document.getElementById('thickness').className = "hidden";

		document.getElementById('size').className = "hidden";

		document.getElementById('gender').className = "hidden";

		

		if(form.item_type.value == "apparel")

		{

			document.getElementById('size').className = "";

			document.getElementById('gender').className = "";

		}

		else if(form.item_type.value == "picks")

		{

			document.getElementById('categories').className = "";

			document.getElementById('thickness').className = "";

		}

		else if(form.item_type.value == "packages" || form.item_type.value == "accessories")

		{

			document.getElementById('categories').className = "";

		}

	}

	else if(tab == "referrals")

	{

		document.getElementById('address').className = "hidden";

		document.getElementById('city').className = "hidden";

		document.getElementById('state').className = "hidden";

		document.getElementById('zip').className = "hidden";

		document.getElementById('website').className = "hidden";

		document.getElementById('script').className = "hidden";

		document.getElementById('phone').className = "hidden";

		

		if(form.referral_type.value == "dealers")

		{

			document.getElementById('website').className = "";

			document.getElementById('phone').className = "";

			document.getElementById('state').className = "";

			document.getElementById('script').className = "";

			

			if(form.referral_state.value != "AA" && form.referral_state.value != "ZZ")

			{

				document.getElementById('address').className = "";

				document.getElementById('city').className = "";

				document.getElementById('zip').className = "";

			}

		}

		else if(form.referral_type.value == "testimonials")

		{

			document.getElementById('city').className = "";

			document.getElementById('state').className = "";

		}

		else if(form.referral_type.value == "artists")

		{

			document.getElementById('website').className = "";

		}

		else if(form.referral_type.value == "reviews")

		{

			document.getElementById('website').className = "";

		}

	}

	else if(tab == "info")

	{

		document.getElementById('script').className = "hidden";

		

		if(form.info_type.value == "videos" || form.info_type.value == "links")

		{

			document.getElementById('script').className = "";

		}

	}

}



/**** photo gallery stuff ****/

var max;

var current = 0;



function loadMax(maxVal)

{

	max = maxVal;

}



function next()

{

	current = Math.min(current + 1, max - 1);

	

	display();

}



function previous()

{

	current = Math.max(current - 1, 0);

	display();

}



function display()

{

	document.getElementById('pane').src = "/images/web/loading.gif";

	

	document.getElementById('pane').src = "/images/" + document.getElementById('image' + current).value;

	

	var html = (current+1) + " of " + max;

	

	document.getElementById('index').innerHTML = html;

}



function page(index)

{

	document.getElementById('resultsIndex').value = index;

	document.getElementById('resultsIndex').form.submit();

}



//user login

function login(form)

{

	var errors = 0;

	

	if(!form.login_email.value.length)

	{

		document.getElementById('login_email').innerHTML = "Missing email";

		errors++;

	}

	

	if(!form.login_pass.value.length)

	{

		document.getElementById('login_pass').innerHTML = "Missing password";

		errors++;

	}

	

	if(!errors) form.submit();

}



function enter(form, e)

{

	var keycode;



	if(window.event)

		keycode = window.event.keyCode;

	else if (e)

		keycode = e.which;



	if (keycode == 13) login(form);

}



function slideshow(num)

{

	var slide = num % max;

	

	img = document.getElementById('image'+slide).value;

	

	document.getElementById('slide').src = "/images/" + img;

	

	setTimeout("slideshow("+(slide+1)+");",3500);

}



function url(id, form)

{

	if(document.getElementById('button'+id).value == "done")

	{

		form.equipment_mode.value = "urlEquipment";

		form.item_id.value = id;

		

		if(form["referral_url"+id].value.length && form["referral_url"+id].value.substring(0,7) != "http://")

			alert("URL must begin with http://");

		else

			form.submit();

	}

	else

	{

		document.getElementById('field'+id).className = "";

		document.getElementById('button'+id).value = "done";

	}

}



function showHideSpecialPrice(form)

{

	document.getElementById('specialPrice').className = "hidden";

	form.item_specialPrice.value = "";

	document.getElementById('item_specialPrice').innerHTML = "";

	

	if(form.item_status.value == 'S')

	{

		document.getElementById('specialPrice').className = "";

	}

	if(form.item_status.value == 'D')

	{

		document.getElementById('specialPrice').className = "";

	}


}



//items page filter form

function filterItems(form)

{

	boolAppend = new Array("guitar","bass","mandolin","acoustic","electric","glow","therapeutic");

	

	firstLoop = true;

	

	for(var key in boolAppend)

	{

		if(value = boolAppend[key])

		{

			if(form[value] && form[value].checked)

			{

				if(!firstLoop)

				{

					form.action += "+";

				}

				else

				{

					form.action += "/";

					firstLoop = false;

				}

				

				form.action += value;

			}

		}

	}



	form.submit();

}

