// variables
var saveReplacementObj = new Object();

// document load finished
$(document).ready(function() {
	fieldTextReplace();
	anchorTargetReplace();
	confirmDelete();
	$('#search').keyup(function(){
		var location = 'http://www.planonstore.com/SearchResults.asp?Search='+$(this).val();
		$('#search_btn').attr('href', location);
	});
});

// functions
function confirmDelete()
{
	$('.delete_btn').click(function(){
		return confirm('Are you sure you want to delete this entry?');
	});
}


function fieldTextReplace()
{
	$('.jquery_text_replace').each(function(){
		var reference = $(this).attr('id');
		saveReplacementObj[reference] = null;
		$(this).focus(function(){
			if(saveReplacementObj[reference] == null){
				saveReplacementObj[reference] = $(this).val();
				$(this).val('');
			}
		});
		$(this).blur(function(){
			if(saveReplacementObj[reference] != null && $(this).val() == ''){
				$(this).val(saveReplacementObj[reference]);
				saveReplacementObj[reference] = null;
			}
		});
	});
}

function anchorTargetReplace()
{
	$('a[rel=external]').attr('target','_blank').removeAttr('rel');
}

function ajaxNewsletterSignup()
{
	$('#signup_loader').fadeIn(0).removeClass('dn');
	var params = {email:$('#newsletter').val()};
	
	var error = function (XMLHTTPRequestObj, statusText) {
		$('#signup_loader').addClass('dn');
		$('#signup_message').html('Oops! Please make sure you are connected to the internet and try again.');
	};
	var success = function (theData, statusText) {
		$('#signup_loader').fadeOut(500,function(){
			$(this).addClass('dn');
		});
		if(theData == 'invalid'){
			$('#signup_message').css('color','#30B3E3').html('The email address provided is not valid');
		}else{
			$('#signup_message').css('color','#30B3E3').html('Success! You have been added to our newsletter list.');
			//alert(saveReplacementObj['newsletter']);
			$('#newsletter').val('email address');
		}
	};
	$.ajax({error:error, success:success, url:"ajax/newsletter_signup", type:"POST", data:params});
}



function ajaxGetProductByOS(base_url)
{
	var driverOSElement = $('#driver_os');
	// $(driverOSElement).attr('disabled','disabled').val('');
	$('#driver_product option.removable').remove();
	
	var params = {os_id:$('#driver_os').val()};
	
	var error = function (XMLHTTPRequestObj, statusText) {
		// alert("Error: "+statusText+", Request: "+XMLHTTPRequestObj);
	};
	var success = function (theData, statusText) {
		//alert('Data: '+theData);
		$.each($.evalJSON(theData), function(i, n){
			var op = document.createElement('option');
			$(op).attr('value',n.id).html(n.name).addClass('removable');
			$('#driver_product').append($(op));
		});
		$(driverOSElement).removeAttr('disabled');
	};
	$.ajax({error:error, success:success, url:base_url+"ajax/get_product_by_os_id", type:"POST", data:params});
}

function ajaxGetProductModels(base_url)
{
	var driverModelElement = $('#driver_model');
	$(driverModelElement).attr('disabled','disabled').val('');
	$('#driver_model option.removable').remove();
	
	var params = {category_id:$('#driver_product').val()};
	
	var error = function (XMLHTTPRequestObj, statusText) {
		//alert("Error: "+statusText);
	};
	var success = function (theData, statusText) {
		$.each($.evalJSON(theData), function(i, n){
			//alert(n.name);
			var op = document.createElement('option');
			$(op).attr('value',n.id).html(n.name).addClass('removable');
			$('#driver_model').append($(op));
		});
		$(driverModelElement).removeAttr('disabled');
	};
	$.ajax({error:error, success:success, url:base_url+"ajax/get_product_models", type:"POST", data:params});
}

function ajaxGetDrivers(base_url)
{
	// $os_version_id=null, $product_id=null, $model_id=null
	var params = {os_version_id:$('#driver_os').val(), product_id:$('#driver_product').val(), model_id:$('#driver_model').val()};
	//alert("OS ID: "+params.os_version_id+", Product ID: "+params.product_id+", Model ID: "+params.model_id);
	
	var error = function (XMLHTTPRequestObj, statusText) {
		//alert("Error: "+statusText);
	};
	var success = function (theData, statusText) {
		if(theData == "null"){
			var tr = document.createElement('tr');
			$(tr).addClass('first');
			var tdName = document.createElement('td');
			$(tdName).html('There are currently no new driver for your selection').css({width:'918px',background:'#B8CED6'});
			$(tr).append($(tdName));
			$('#download_drivers').append($(tr));
			$('#download_drivers').slideDown('regular', function(){
				$('#driver_loader').slideUp('regular');
			});
			return false;
		}
		$.each($.evalJSON(theData), function(i, n){
			var tr = document.createElement('tr');
			if(i == 0){
				$(tr).addClass('first');
			}
			
			var tdName = document.createElement('td');
			$(tdName).html(n.product_category+' '+n.product_model+' - '+n.title+' for '+n.os+' '+n.os_version);
			
			var tdButton = document.createElement('td');
			var button = document.createElement('button');
			
			$(button).attr('rel', n.file_path).css('cursor','pointer').html('Download').click(function(){
				window.location.href = base_url+'support/download/'+$(this).attr('rel');
			});
			$(tdButton).append($(button));
			
			$(tr).append($(tdName));
			$(tr).append($(tdButton));
			$('#download_drivers').append($(tr));
		});
		$('#download_drivers').slideDown('regular', function(){
			$('#driver_loader').slideUp('regular');
		});
	};
	$('#download_drivers tr').remove();
	$('#driver_loader').slideDown('regular', function(){
		$.ajax({error:error, success:success, url:base_url+"ajax/get_drivers", type:"POST", data:params});
	});
}

function ajaxSaveOrder(order, table)
{
	var order = $.toJSON(order);
	var params = {new_order:order,table_name:table};
	
	var error = function (XMLHTTPRequestObj, statusText) {
		//alert("Error: "+statusText);
	};
	var success = function (theData, statusText) {
		if(theData == 'success'){
			$('#reorder_loader').fadeOut('slow', function(){
				$(this).addClass('dn');
			});
		}
	};
	$.ajax({error:error, success:success, url:"ajax/reorder_table", type:"POST", data:params});
}