// Page Load init()

var RecaptchaOptions = {
    theme : 'white'
 };

function init_front_end(){
	configureValidations();
	showActiveLink();
	selectDefaultField();
	
	// geo();
}
function init_admin(){
	configureValidations();
	showActiveAdminLink();
	selectDefaultField();
}

function selectDefaultField() {
	if ($('default')) {
		$('default').focus();
	}
}

function configureValidations(){
	var forms = document.getElementsByTagName('form');
	for (var i=0; i < forms.length; i++) {
		if (forms[i].className.indexOf("required") > -1) {
			new Validation(forms[i].id, {useTitles : true});
			Validation.add('validate-phone', 'A valid phone number is required.\nEx. 866-394-2848', {
			     pattern : new RegExp(/^((\+\d{1,3}(-| |\.)?\(?\d\)?(-| |\.)?\d{1,5})|(\(?\d{2,6}\)?))(-| |\.)?(\d{3,4})(-| |\.)?(\d{4})(( x| ext)\d{1,5}){0,1}$/) // only letter allowed
			});
		};
	};
}

// show or hide elements onclick
function showHide(id) {
	Element.toggle(id);
	return false;
}

// hide all divs with a class of "solo"
function hideSolos(){
	var divs = document.getElementsByTagName('div');
	for (var i=0; i < divs.length; i++) {
		if (divs[i].className == "solo") {
			divs[i].style.display = "none";
			//new Effect.BlindUp(divs[i].id);
		};
	};
}

// alternate table row class (background color)
function alternateRows(){

	var rows = document.getElementsByTagName('tr');
	for (var i=0; i < rows.length; i++) {
		if (i % 2) {
					rows[i].className = "odd";
				} else {
					rows[i].className = "even";
				};
	};
}

// show or hide elements one at a time
function showHideSolo(id){
	if (id != "") {
		hideSolos();
		//new Effect.BlindDown(id);
		Element.toggle(id);
		document.getElementById('media_type_select').value = id;
	};
}

// popup window for guarantee
var newwindow;
function popwindow(url){
	newwindow=window.open(url,'name','height=600,width=370,scrollbars=1');
	if (window.focus) {newwindow.focus()}
}

// Check for Dupe E-Mail
function emailCheck(email) {
	var update="user_email";
	var url=base_url+"/bin/check_dupe_email.php";
	var params="email="+email;
	var aUpdater=new Ajax.Updater(update,url,{
		method:"post",parameters:params,onComplete:function(transport){
			if(transport.responseText != ""){
				alert(transport.responseText);
				$(update).focus();
				$(update).style.cssText='border:solid 2px #f00;';
			} else {
				$(update).style.cssText='border:inset 2px #ddd;';
			}
		}
	})
	return false;
}

function isUSA(value, type){
	if (value == "United States") {
		$(type + '_province').disabled = true;
		$(type + '_state').disabled = false;
	}else{
		$(type + '_province').disabled = false;
		$(type + '_state').disabled = true;
	};
}

function checkSpelling(id){
	var area = $(id);
	var speller = new spellChecker(area);
	speller.openChecker();
	return false;
}

// show active link
function showActiveLink(){
	var a = document.getElementsByTagName('a');
	var url = location.href;
	
	for (var i=0; i < a.length; i++) {
		if (a[i].href == location.href && a[i].className != 'no_highlight') {
			a[i].style.cssText = "font-weight:bold;color:#000;text-decoration:none;";
		};	
	};
}

function showActiveAdminLink(){
	var a = document.getElementsByTagName('a');
	var url = location.href;
	
	for (var i=0; i < a.length; i++) {
		if (a[i].href == url) {

			switch(a[i].className){
				case('pager_link'):
					a[i].className = 'active_pager_link';
					break
				case('image'):
				case('nav_link'):
				case('active_nav_link'):
					// do nothing
					break
				default:
					a[i].style.cssText = "font-weight:bold;color:#000;text-decoration:none;";
			}
		}
		else if (url.search('/admin-message/') != '-1') {
			$('nav_admin_message').className = 'active_nav_link';
		}
		
	}
}

function deleteObject(objectClass, id) {
	if (confirm('Are you sure you want to delete this '+objectClass+'?')) {
		var cell = $(objectClass+'_'+id);
		var params = "class="+objectClass+"&id="+id;
		var url = base_url+"/bin/delete_object.php";
		var req = new Ajax.Request(url,{method:"post",parameters:params});
		$(cell).remove();
	}
	return false;
}

function addWheelSizeRow(wheel_model_finish_id) {
	if ($('empty_row')) {
		$('empty_row').remove();
	}
	
	var title = 'This is a required field. Click the delete icon on the right if this row is not needed.';
	var date = new Date();
	var timestamp = date.getTime();
	
	var diameter_input = '<input type="text" class="size_field required" name="wheelsize[new]['+timestamp+'][diameter]" title="'+title+'" />';
	var width_input = '<input type="text" class="size_field required" name="wheelsize[new]['+timestamp+'][width]" title="'+title+'" />';
	var price_input = '<input type="text" class="size_field price" name="wheelsize[new]['+timestamp+'][price]" title="'+title+'" />';
	var special_price_input = '<input type="text" class="size_field price" name="wheelsize[new]['+timestamp+'][special_price]" />';
	var delete_button = '<a href="#" class="size_field image" title="Delete Size" onclick="return removeNewRow(\''+timestamp+'\')"><img src="'+base_url+'/img/icons/delete.png" alt="Delete Wheel" /></a>';
	var hidden_id_field = '<input type="hidden" name="wheelsize[new]['+timestamp+'][wheel_model_finish_id]" value="'+wheel_model_finish_id+'" />';
	
	var row_template = new Template('<tr id="new_row_'+timestamp+'" class="odd"><td>#{diameter_row}</td><td>#{width_row}</td><td>#{price_row}</td><td>#{special_price_row}</td><td align="center">#{delete_row}#{hidden_field}</td></tr>');
	
	$('size').insert(
		row_template.evaluate({
								diameter_row: diameter_input,
								width_row: width_input,
								price_row: price_input,
								special_price_row: special_price_input,
								delete_row: delete_button,
								hidden_field: hidden_id_field
							  }
							 )
					);
	
	return false;
}

function addWheelOptionRow(wheel_model_finish_id) {
	if ($('empty_row')) {
		$('empty_row').remove();
	}
	
	var title = 'This is a required field. Click the delete icon on the right if this row is not needed.';
	var date = new Date();
	var timestamp = date.getTime();
	
	var description_input = '<input type="text" class="size_field required" name="wheeloption[new]['+timestamp+'][description]" title="'+title+'" />';
	var price_input = '<input type="text" class="size_field price" name="wheeloption[new]['+timestamp+'][price]" title="'+title+'" />';
	var special_price_input = '<input type="text" class="size_field price" name="wheeloption[new]['+timestamp+'][special_price]" />';
	var delete_button = '<a href="#" class="size_field image" title="Delete Size" onclick="return removeNewRow(\''+timestamp+'\')"><img src="'+base_url+'/img/icons/delete.png" alt="Delete Wheel" /></a>';
	var hidden_id_field = '<input type="hidden" name="wheeloption[new]['+timestamp+'][wheel_model_finish_id]" value="'+wheel_model_finish_id+'" />';
	
	var row_template = new Template('<tr id="new_row_'+timestamp+'" class="odd"><td>#{description_row}</td><td>#{price_row}</td><td>#{special_price_row}</td><td align="center">#{delete_row}#{hidden_field}</td></tr>');
	
	$('option').insert(
		row_template.evaluate({
								description_row: description_input,
								price_row: price_input,
								special_price_row: special_price_input,
								delete_row: delete_button,
								hidden_field: hidden_id_field
							  }
							 )
					);
	
	return false;
}


function addTireSizeRow(tire_model_id) {
	if ($('empty_row')) {
		$('empty_row').remove();
	}
	
	var title = 'This is a required field. Click the delete icon on the right if this row is not needed.';
	var date = new Date();
	var timestamp = date.getTime();
	
	var s1_input = '<input type="text" class="sub_size_field" name="tiresize[new]['+timestamp+'][s1]" title="cross section - prefix" />';
	var s2_input = '<input type="text" class="sub_size_field" name="tiresize[new]['+timestamp+'][s2]" title="cross section - suffix" />';
	var s3_input = '<input type="text" class="sub_size_field" name="tiresize[new]['+timestamp+'][s3]" title="aspect ratio / speed rating" />';
	var s4_input = '<input type="text" class="sub_size_field" name="tiresize[new]['+timestamp+'][s4]" title="diameter" />';
	var s5_input = '<input type="text" class="sub_size_field" name="tiresize[new]['+timestamp+'][s5]" title="reinforced extra load" />';
	var s6_input = '<input type="text" class="sub_size_field" name="tiresize[new]['+timestamp+'][s6]" title="load index / speed rating" />';
	var sidewall_input = '<input type="text" class="size_field" name="tiresize[new]['+timestamp+'][sidewall]" />';
	var pn_input = '<input type="text" class="size_field" name="tiresize[new]['+timestamp+'][item_number]" />';
	var price_input = '<input type="text" class="size_field price" name="tiresize[new]['+timestamp+'][price]" />';
	var special_price_input = '<input type="text" class="size_field price" name="tiresize[new]['+timestamp+'][special_price]" />';
	var delete_button = '<a href="#" class="size_field image" title="Delete Size" onclick="return removeNewRow(\''+timestamp+'\')"><img src="'+base_url+'/img/icons/delete.png" alt="Delete Tire" /></a>';
	var hidden_id_field = '<input type="hidden" name="tiresize[new]['+timestamp+'][tire_model_id]" value="'+tire_model_id+'" />';
	
	var row_template = new Template('<tr id="new_row_'+timestamp+'" class="odd"><td>#{s1_row}</td><td>#{s2_row}</td><td>#{s3_row}</td><td>#{s4_row}</td><td>#{s5_row}</td><td>#{s6_row}</td><td>#{sidewall_row}</td><td>#{pn_row}</td><td>#{price_row}</td><td>#{special_price_row}</td><td align="center">#{delete_row}#{hidden_field}</td></tr>');
	
	$('size').insert(
		row_template.evaluate({
								s1_row: s1_input,
								s2_row: s2_input,
								s3_row: s3_input,
								s4_row: s4_input,
								s5_row: s5_input,
								s6_row: s6_input,
								sidewall_row: sidewall_input,
								pn_row: pn_input,
								price_row: price_input,
								special_price_row: special_price_input,
								delete_row: delete_button,
								hidden_field: hidden_id_field
							  }
							 )
					);
	
	return false;
}

function addDealerUser(dealer_id) {
	if ($('empty_row')) {
		$('empty_row').remove();
	}
	
	var title = 'This is a required field. Click the delete icon on the right if this row is not needed.';
	var date = new Date();
	var timestamp = date.getTime();
	
	var first_name_input = '<input type="text" class="user_field required" name="user[new]['+timestamp+'][first_name]" title="'+title+'" />';
	var last_name_input = '<input type="text" class="user_field required" name="user[new]['+timestamp+'][last_name]" title="'+title+'" />';
	var job_title_input = '<input type="text" class="user_field required" name="user[new]['+timestamp+'][job_title]" title="'+title+'" />';
	var email_input = '<input type="text" class="user_field required validate-email" name="user[new]['+timestamp+'][email]" id="user_email" onblur="emailCheck(this.value);" />';
	var password_input = 'automatic';
	var notification_label = 'automatic';
	var delete_button = '<a href="#" class="user_field image" title="Delete User" onclick="return removeNewRow(\''+timestamp+'\');"><img src="'+base_url+'/img/icons/delete.png" alt="Delete User" /></a>';
	var hidden_id_field = '<input type="hidden" name="user[new]['+timestamp+'][dealer_id]" value="'+dealer_id+'" />';
	var hidden_ac_field = '<input type="hidden" name="user[new]['+timestamp+'][admin_created]" value="true" />';
	
	var row_template = new Template('<tr id="new_row_'+timestamp+'" class="odd"><td>#{first_name_row}</td><td>#{last_name_row}</td><td>#{job_title_row}</td><td>#{email_row}</td><td align="center">#{password_row}</td><td align="center">#{notification_row}</td><td align="center">#{delete_row}#{hidden_field}#{hidden_field_ac}</td></tr>');
	
	$('users').insert(
		row_template.evaluate({
								first_name_row: first_name_input,
								last_name_row: last_name_input,
								job_title_row: job_title_input,
								email_row: email_input,
								password_row: password_input,
								notification_row: notification_label,
								delete_row: delete_button,
								hidden_field: hidden_id_field,
								hidden_field_ac: hidden_ac_field
							  }
							 )
					);
	
	return false;
}

function addDealerUserFrontEnd(dealer_id) {
	if ($('empty_row')) {
		$('empty_row').remove();
	}
	
	var title = 'This is a required field. Click the delete icon on the right if this row is not needed.';
	var date = new Date();
	var timestamp = date.getTime();
	
	var first_name_input = '<input type="text" class="user_field required" name="user[new]['+timestamp+'][first_name]" title="'+title+'" />';
	var last_name_input = '<input type="text" class="user_field required" name="user[new]['+timestamp+'][last_name]" title="'+title+'" />';
	var job_title_input = '<input type="text" class="user_field required" name="user[new]['+timestamp+'][job_title]" title="'+title+'" />';
	var email_input = '<input type="text" class="user_field required validate-email" name="user[new]['+timestamp+'][email]" id="user_email" onblur="emailCheck(this.value);" />';
	var delete_button = '<a href="#" class="user_field image" title="Delete User" onclick="return removeNewRow(\''+timestamp+'\');"><img src="'+base_url+'/img/icons/delete.png" alt="Delete User" /></a>';
	var hidden_ac_field = '<input type="hidden" name="user[new]['+timestamp+'][admin_created]" value="true" />';
	var hidden_status_field = '<input type="hidden" name="user[new]['+timestamp+'][status]" value="pending" />';
	
	var row_template = new Template('<tr id="new_row_'+timestamp+'" class="odd"><td>#{first_name_row}</td><td>#{last_name_row}</td><td>#{job_title_row}</td><td>#{email_row}</td><td class="center">#{delete_row}#{hidden_field_ac}#{hidden_field_status}</td></tr>');
	
	$('users').insert(
		row_template.evaluate({
								first_name_row: first_name_input,
								last_name_row: last_name_input,
								job_title_row: job_title_input,
								email_row: email_input,
								delete_row: delete_button,
								hidden_field_ac: hidden_ac_field,
								hidden_field_status: hidden_status_field
							  }
							 )
					);
	
	return false;
}


function removeNewRow(row_id) {
	if (confirm('Are you sure you want to delete this row?')) {
		var row = $('new_row_'+row_id);
		row.remove();
	}
	return false;
}

function updateSelectList(objectClass, id){
	var update = objectClass+'_select';
	
	if (id != '') {
		var url = base_url + "/bin/get_select_list_options.php";
		var params = "class="+objectClass+"&id="+id;
		var aUpdater = new Ajax.Updater(update,url,{
			method:"post",parameters:params,onComplete:function(transport){
				if(transport.responseText!=""){
					$(update).disabled = false;
					$(update).focus();
				}
			}
		})
	}
	else {
		clearList(update);
	}
	
	return false;
}

function clearList(id) {
	$(id).update();
	$(id).disabled = true;
}

function disableList(id) {
	$(id).disabled = true;
}

function enableList(id) {
	$(id).disabled = false;
}

function resetPassword(user_id) {
	var params = "id="+user_id;
	var url = base_url+"/bin/reset_password.php";
	var req = new Ajax.Request(url,{method:"post",parameters:params});
	alert("The user's password has been reset and an e-mail describing the new password was sent to the user.");
	return false;
}

function showGalleryPhoto(url, description) {
	$('image_holder').src = url;
	$('image_description').update(description);
}

function setItemsPerPage(value, controller, action, id, qsvars) {
	if (qsvars != '') {
		qsvars = '/'+qsvars;
	}
	var return_url = base_url+'/'+controller+'/'+action+'/'+id+'/'+value+qsvars;
	var params = "value="+value;
	var script_url = base_url+"/bin/set_items_per_page.php";
	var req = new Ajax.Request(script_url,{method:"post",parameters:params});
	window.location.href = return_url;
}

function galleryTabSwitch(mode) {
	if (mode == 'vehicle') {
		$('by_vehicle_tab').className = 'active';
		$('by_wheel_tab').className = 'inactive';
		$('search_by_vehicle').style.cssText = 'display:block;';
		$('search_by_wheel').style.cssText = 'display:none;';
		$('new_search_notice').style.cssText = 'display:none;';
		enableList('ImageCategory_select');
		enableList('VehicleMake_select');
		// enableList('VehicleModel_select');
		disableList('WheelBrand_select');
		disableList('WheelModel_select');
		disableList('WheelModelFinish_select');
	}
	else {
		$('by_vehicle_tab').className = 'inactive';
		$('by_wheel_tab').className = 'active';
		$('search_by_vehicle').style.cssText = 'display:none;';
		$('search_by_wheel').style.cssText = 'display:block;';
		$('new_search_notice').style.cssText = 'display:none;';
		disableList('ImageCategory_select');
		disableList('VehicleMake_select');
		disableList('VehicleModel_select');
		enableList('WheelBrand_select');
		// enableList('WheelModel_select');
		// enableList('WheelModelFinish_select');
	}
	return false;
}

function resetForAll(value, id) {
	if (value == '') {
		enableList(id);
	}
}

function checkPasswordMatch() {
	var p1 = $('user_password');
	var p2 = $('user_password_confirm');
	if (p1.value != p2.value) {
		alert('The passwords entered do not match.');
		p1.style.cssText = 'border:1px solid #902727;';
		p2.style.cssText = 'border:1px solid #902727;';
		p1.focus();
		return false;
	}
	else {
		return true;
	}
}

function validateSearchBox() {
	var searchbox = $('search_bar');
	if (searchbox.value == '' || searchbox.value == 'wheels, tires, news, gallery') {
		alert('Please enter search terms.');
		searchbox.focus();
		return false;
	}
	return true;
}

function clearSearchBox() {
	var searchbox = $('search_bar');
	
	if (searchbox.value == 'wheels, tires, news, gallery') {
		searchbox.className = 'active';
		searchbox.value = '';
	}
}

function resetSearchBox() {
	var searchbox = $('search_bar');

	if (searchbox.value == '') {
		searchbox.className = 'inactive';
		searchbox.value = 'wheels, tires, news, gallery';
	}
}

function clearCheckbox(id) {
	$(id).checked = false;
	if (id == 'wheelmodelfinish_special') {
		$('special_dates').style.cssText = 'display:none;';
	}
}

function showHoverThumb(id) {
	hideAllThumbs();
	$('hover_thumb_'+id).style.cssText = 'display:block;';
}

// function thumbTimer() {
// 	setTimeout("hideAllThumbs()",3000);
// }

// function hideHoverThumb(id) {
// 	$('hover_thumb_'+id).style.cssText = 'display:none;';
// }

function hideAllThumbs() {
	var hover_thumbs = $$('a.hover_thumb');
	
	for (var i=0; i < hover_thumbs.length; i++) {
		hover_thumbs[i].style.cssText = 'display:none;';
	}
}

function playMode() {
	$('play').style.cssText = 'display:none;';
	$('pause').style.cssText = 'display:inline;';
}

function pauseMode() {
	$('pause').style.cssText = 'display:none;';
	$('play').style.cssText = 'display:inline;';
}
