//font size section starts
var changeValue = 0;
var currentState = 'normal'
var sizechange = 2;	

function $(objectId) {
	return document.getElementById(objectId);
}
function getState(level) {
	if (currentState == 'normal') {
		if (level == 'inc') {
			return 'large';
		} else {
			return 'small';
		}
	} else if (currentState == 'small') {
		if (level == 'inc') {
			return 'normal';
		} else {
			return 'small';
		}
	} else {
		if (level == 'inc') {
			return 'large';
		} else {
			return 'normal';
		}
	}
}

function changeSize(fontSet) {
	var crossrule;
	var fontState = currentState;
	//creating stylesheet object
	if (document.styleSheets[1].cssRules) {
		crossrule = document.styleSheets[1].cssRules
	} else if (document.styleSheets[1].rules) {
		crossrule = document.styleSheets[1].rules
	}
	//var scale = 'px';
	//traverse each styles
	for (i=0; i<crossrule.length; i++) {
		//picks out style "font-size"
		if (crossrule[i].style.fontSize != '') {
			var size = extractFontSize(crossrule[i].style.fontSize);	
			//scale = extractFontScale(crossrule[i].style.fontSize);
			size = parseFloat(size);
			var originalSize = restoreSize(size,currentState);
			//alert(originalSize);
			if (size > 0) {
				//alert(fontSet + currentState);
				if (fontSet == 'small' && currentState != 'small') {
					//decrease font size
					crossrule[i].style.fontSize = (originalSize - sizechange) + 'px';
					fontState = 'small';
				} else if (fontSet == 'large' && currentState != 'large') {
					//increase font size
					crossrule[i].style.fontSize = (originalSize + sizechange) + 'px';
					fontState = 'large';
				} else if (fontSet == 'normal') {
					crossrule[i].style.fontSize = originalSize + 'px';
					fontState = 'normal';
				}
				setCookie('vtc_font', fontState, exp);
				updateFontInd(fontState + '_font');
			}
		}
	}
	currentState = fontState;
}
//restore font size to original setting
function restoreSize(fontSize, fromState) {
	if (fromState == 'small') {
		return fontSize + sizechange;
	} else if (fromState == 'large') {
		return fontSize - sizechange;
	}
	return fontSize;
}

//remove px from font size ##px
function extractFontSize(fontString) {
	if (fontString.charAt(1) == 'p') {
		return fontString.substr(0,1);
	} else {
		return fontString.substr(0,2);
	}
}
//font size unit either pt or px
//support font size up to 2 digits
function extractFontScale(fontString) {
	if (fontString.charAt(2) == 't') {
		return 'pt';
	} else if (fontString.charAt(3) == 't') {
		return 'pt';
	} else {
		return 'px';
	}
}

function updateFontInd(objectSpan) {
// 	$('small_font').className = 'fontSizeInactive';
// 	$('normal_font').className = 'fontSizeInactive';
// 	$('large_font').className = 'fontSizeInactive';
// 	$(objectSpan).className = 'fontSizeActive';
}

function showHideFontSet(objectId) {
	if ($(objectId).style.display == 'inline') {
		$(objectId).style.display = 'none';
	} else {
		$(objectId).style.display = 'inline';
	}
}

<!--
function setCookie(name, value, expires) { 
	document.cookie = name + "=" + escape(value) + "; path=/" + ((expires == null) ? "" : "; expires=" + expires.toGMTString()); 
} 

var exp = new Date();     //set new date object 
exp.setTime(exp.getTime() + (1000 * 60 * 60 * 24 * 60));     //set it 60 days ahead

function getCookie (name) { 
	var dc = document.cookie;
	var cname = name + "="; 
	if (!dc) return;
	if (dc.length > 0) { 
		begin = dc.indexOf(cname); 
		if (begin != -1) { 
			begin += cname.length; 
			end = dc.indexOf(" ", begin);
			if (end == -1) end = dc.length;
			//alert(begin + '-' +end + '- ' + dc.length);
			return unescape(dc.substring(begin, end));
		} 
	} 
	return null; 
}

//-->


function loadFontPreset() {
	var cookievalue = getCookie ('vtc_font');
	//document.write(document.cookie);
	if (cookievalue != null) {
		cookievalue = cookievalue.substring(0, 10);
	} else {
		changeSize('normal');
		return;
	}
	if (cookievalue.indexOf('small') >= 0) {
		cookievalue = 'small';
	} else if (cookievalue.indexOf('large') >= 0) {
		cookievalue = 'large';
	} else {
		cookievalue = 'normal';
	}
	changeSize(cookievalue);
}

function checkForm(formObject) {
	for (var i=0; i<formObject.elements.length; i++) {
		if (formObject.elements[i].value.length < 1) {
			document.getElementById('submission_error').innerHTML = 'Please fill in all fields!';
			return false;
		}
	}
	return true;
}
function triggerRating(ratingContainer, value, inputId) {
	var inputObject = document.getElementById(inputId);
	var inputStorage = document.getElementById(inputId + '_point');
	var ratingObject = document.getElementById(ratingContainer);
	if (ratingObject && inputObject) {
		var objectLength = ratingObject.childNodes.length;
		for (var i=0; i<objectLength; i++) {
			if (ratingObject.childNodes[i].tagName == 'IMG') {
				if (i < value * 2) {
					var source = ratingObject.childNodes[i].src;
					source = source.replace('empty_star', "full_star", 'gi');
				} else {
					var source = ratingObject.childNodes[i].src;
					source = source.replace('full_star', "empty_star", 'gi');
				}
				ratingObject.childNodes[i].src = source;
				
			}
		}
		inputObject.innerHTML = value;
		inputStorage.value = value;
	}
}
function toggleCaption(id) {
	var elementItem = document.getElementById(id);
	if (!elementItem) return;
	if (elementItem.className == 'content') {
		elementItem.className = 'contentHide';
	} else {
		elementItem.className = 'content';
		var region = YAHOO.util.Dom.getRegion(elementItem);
		elementItem.style.top = -(region.bottom - region.top - 15) + 'px';
	}
}

//YAHOO.namespace("review.container");

function init() {
	//load font preset
	loadFontPreset();
	
	// Instantiate a Panel from script
	YAHOO.review.container.reviewPanel = new YAHOO.widget.Panel("write_review", { width:"430px", visible:false, constraintoviewport:true } );
	YAHOO.review.container.reviewPanel.setHeader("Write a review for this product");
	YAHOO.review.container.reviewPanel.registerDragDrop();
	YAHOO.review.container.reviewPanel.render();

	YAHOO.util.Event.addListener("writeReview", "click", displayPanel, YAHOO.review.container.reviewPanel, true);
}

function displayPanel() {
	positionPanel();
	YAHOO.review.container.reviewPanel.show();
}

function positionPanel() {
	
	var review_panel_region = YAHOO.util.Dom.getRegion('write_review');
	var centerX = YAHOO.util.Dom.getDocumentScrollLeft() + YAHOO.util.Dom.getViewportWidth()/2;
	var centerY = YAHOO.util.Dom.getDocumentScrollTop() + YAHOO.util.Dom.getViewportHeight()/2;
	var panelWidth = review_panel_region.right - review_panel_region.left;
	var panelHeight = review_panel_region.bottom - review_panel_region.top;

	if (centerX - panelWidth/2 > 0) {
		centerX -= panelWidth/2;
	}
	if (centerY - panelHeight/2 > 0) {
		centerY -= panelHeight/2;
	}
	//is not being used since it doesn't handle onscroll event properly
	//YAHOO.review.container.reviewPanel.center();
	
	YAHOO.util.Dom.setX("container", centerX);
	YAHOO.util.Dom.setY("container", centerY);
	
}


function createQuery(form) {
	var elements = form.elements;
	var pairs = new Array();
	var include = true;
	for (var i = 0; i < elements.length; i++) {	
		if ((name = elements[i].name) && (value = elements[i].value)) {
			include = true;
			//checkbox handling
			if (elements[i].type == 'checkbox' && elements[i].checked == false) {
				value = 'off';
			//radio button handling
			} else if (elements[i].type == 'radio') {
				//remove uncheck radio values
				if(elements[i].checked != true) {
					include = false;
				}
			}
			//include specified post values
			if (include) {
				pairs.push(name + "=" + encodeURIComponent(value));
			}
		}
	}	
	return pairs.join("&");
}

function navigate(uri) {
	//uri = encodeURIComponent(uri);
	window.location = uri;
}
function popLink(url, specs) {
	window.open(url, 'BD', specs);
}

function openEmail(base_url, uri) {
	uri = encodeURIComponent(uri);
	popLink(base_url + 'emailReferral.php?queryid='+uri, "width= 400, height= 400, scrolling=no, resizable=no");
}

function videoLink(uri) {
	popLink(uri, "width= 550, height= 550, scrolling=no, resizable=no");
}

function referValidate(formObject) {
	var error = 0;
	for (var i=0; i<formObject.length; i++) {
		if (formObject.elements[i].type == 'text' && formObject.elements[i].value.length < 3) {
			error++;
		}
	}
	if (error == 0) {
		return true;
	}
	alert('You\'ve entered an invalid field!');
	return false;
}

function toggleImage(imageObject, imageName, directory) {
	if (!imageObject) {
		imageObject = $(imageObject);
		if (!imageObject) {
			return;
		}
	} 
	if (directory == 'undefined' ) directory = '';
	if (imageObject.src.indexOf('up') >= 0) {
		imageObject.src = directory + 'images/' + imageName + '_over.gif';
	} else {
		imageObject.src = directory + 'images/' + imageName + '_up.gif';
	}
}

function validate(formObject) {
	var errorFree = true;
	
	for (var i=0; i<formObject.elements.length; i++) {
		if ((formObject.elements[i].validate == 'required' || formObject.elements[i].alt == 'required') && formObject.elements[i].type != 'select-one') {
			if (formObject.elements[i].value.length <= 0) {
				errorFree = false;
			}
		}
	}
	if (!errorFree) {
		alert("Please make sure the required fields marked with * are filled in!");
	}
	return errorFree;
}

function toggleFaq(activateRow, questionList) {
	var questionUL = $(questionList);
	for (var i=0; i<questionUL.childNodes.length; i++) {
		if (questionUL.childNodes[i].tagName == 'LI') {
			questionUL.childNodes[i].className = 'clearFaq';
		}
	}
	$(activateRow).className = 'activeFaq';
}

function uploadValidate(formObject) {
	var error = 0;
	var type;
	for (var i=0; i<formObject.length; i++) {
		if (formObject.elements[i].alt == 'required') {
			if (formObject.elements[i].name == 'phone') {
				type = 'phone';
			} else if (formObject.elements[i].name == 'email') {
				type = 'email';
			} else if(formObject.elements[i].name.indexOf('name') >= 0) {
				type = 'name';
			} else {
				type = 'default';
			}
			if (!validField(formObject.elements[i].value, type)) {
				$('error_' + formObject.elements[i].name).innerHTML ='<font color="#ff0000"> * </font>';
				error++;
			} else {
				$('error_' + formObject.elements[i].name).innerHTML ='<font color="#00ff00"></font>';
			}
		} else if (formObject.elements[i].type == 'file') {
			if (!validField(formObject.elements[i].value, 'default')) {
				$('error_' + formObject.elements[i].name).innerHTML ='<font color="#ff0000"> * </font>';
				error++;
			} else {
				$('error_' + formObject.elements[i].name).innerHTML ='<font color="#00ff00"></font>';
			}
		}
	}
	if (error == 0) {
		return true;
	}
	return false;
}

function toggleField(object) {
	if (object) {
		if (object.className == 'fieldBlur') {
			object.className = 'fieldFocus';
		} else {
			object.className = 'fieldBlur';
		}
	}
}

function toggleInput(object, classname) {
	if (object) {
		if (object.className == classname) {
			object.className = classname + 'Over';
		} else {
			object.className = classname;
		}
	}
}

function invidiualValidate(object, type) {
	if (!validField(object.value, type)) {
		$('error_' + object.name).innerHTML ='<font color="#ff0000"> * </font>';
	} else {
		$('error_' + object.name).innerHTML ='<font color="#00ff00"> </font>';
	}
}

function validField(str, type) {
	var name_regex  = /^([a-zA-Z '-]+)$/;
	var email_regex  = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.([a-zA-Z]{2,4})$/ ;
	var phone_regex  = /(\+)?([-\._\(\) ]?[\d]{3,20}[-\._\(\) ]?){2,10}/;
	var length_check = false;
	switch (type) {
		case 'name': myregexp = new RegExp(name_regex); break;
		case 'email': myregexp = new RegExp(email_regex); break;
		case 'phone': myregexp = new RegExp(phone_regex); break;
		default: length_check = true;
	}
	if (length_check) {
		if (str.length > 5) {
			return true;
		} else {
			return false;
		}
	}
	if (str.match(myregexp)) {
		return true;
	} else {
		return false;
	}
}

function fetchPrice(selectorId) {
	if (!$(selectorId)) return;
	if (($(selectorId).value).length > 0) {
		popLink('http://www.dieselperformance.com/priceSheet/'+ $(selectorId).value, "");
	}
}

function formValidate(formObject) {
	var errorFree = true;
	
	for (var i=0; i<formObject.elements.length; i++) {
		if (formObject.elements[i].alt != 'undefined'  && formObject.elements[i].alt && (formObject.elements[i].alt).length > 0) {
			if (!validField(formObject.elements[i].value, formObject.elements[i].alt)) {
				errorFree = false;
			}
		}
	}
	if (!errorFree) {
		alert("Please make sure the required fields marked with * are filled in properly!");
	}
	return errorFree;
}

jQuery(function(){
	 //load engines into vehicle search
	 jQuery("#make").change(function(e){
	 		var make = jQuery("#make").val();
			if (make=='') {
				return false; 
			}	
	 		
	 		jQuery.ajax({
			  url: '/index.php/product/getEngines',
			  type: 'post',
			  dataType: 'json',
			  data: {makes: make},
			  success: function(response) {
        	 //change engines
					 jQuery("#engine option").not(":first").remove();

					 jQuery.each(response, function(i, engine){
					 		var option = jQuery('<option></option>');
					 		option.attr("value", engine.id);
					 		option.html(engine.engine);
					 		
							jQuery("#engine").append(option);					 									 
											 		
					 });
	 			 
					 //change years
					 var current = new Date().getFullYear() + 1;
					 var oldest = 1983;
					 if (make == 1) {
					 		oldest = 1988;
					 }
					 else if (make == 4) {
					 		oldest = 1994;
					 }
					 jQuery("#year option").not(":first").remove();
					 for (i=current;i>=oldest;i=i-1) {
					 		var option = jQuery('<option></option>');
					 		option.attr("value", i);
					 		option.html(i);
					 		
							jQuery("#year").append(option);
					 }
					 
				}
			});
			//reset fields transmission
			jQuery("#engine, #year, #transmission").val('');
			jQuery("#quickProduct, #noProduct").hide();
	 });
	 jQuery("#make").change();
	 
	 //search product
	 jQuery("#make, #engine, #year, #transmission").change(function(e){
	 		var make = jQuery("#make").val();
	 		var engine = jQuery("#engine").val();
	 		var year = jQuery("#year").val();
	 		var transmission = jQuery("#transmission").val();
	 		
	 		if (make == '' || engine == '' || year == '' || transmission == '') {
			  //continue
			}
			else if (engine == '' || year == '' || transmission == '') {
				jQuery("#quickProduct, #noProduct").hide();
			}
			else {
		 		jQuery.ajax({
				  url: '/index.php/product/getProducts',
				  type: 'post',
				  dataType: 'json',
				  data: {make: make, engine: engine, year: year, transmission: transmission},
				  success: function(response) {
	        	 if (response != null && response != '') {						 										 
								if (response.length == 1) {
								 		jQuery("#noProduct").hide();
										window.location = '/index.php/product/index/'+response[0].product_id+'P';
								}
								else if (response.length > 1) {
									 jQuery("#noProduct").hide();
									 jQuery("#quickProduct option").not(":first").remove();
									 jQuery.each(response, function(i, product){
									 		var option = jQuery('<option></option>');
									 		option.attr("value", product.product_id);
									 		option.html(product.product_name);
									 		
											jQuery("#quickProduct").append(option);					 									 
															 		
									 });										
									 jQuery("#quickProduct").slideDown();
								}
						 }
						 else {
						 		jQuery("#noProduct").fadeIn();
						 }
					}
				});			
			}
	 });
	 
	 //select product
	 jQuery("#quickProduct").change(function(e){
	 		var product_id = jQuery("#quickProduct").val();
			if (product_id=='') {
				return false; 
			}
			
			window.location = '/index.php/product/index/'+product_id+'P';
	 });
   	 	 

	 
	 
	 
});
