$(document).ready(function()
{
	if($('.focus').length == 1)
	{
		$('.focus').focus();
	}
	else
	if($('.focus').length > 0)
	{
		$i = 0;

		$('.focus').each(function() {
			this.focus();

			if($i == 1)
			{
				return false;
			}

			$i++;
		});
	}

	if($('.datepick').length > 0)
	{
		$('.datepick.norange').datepick({
			onDate: $.datepick.noWeekends,
			monthsToShow: 4,
			dateFormat: 'dd-mm-yyyy'
		});

		$('.datepick.planning').datepick({
			onDate: $.datepick.noWeekends,
			monthsToShow: 4,
			dateFormat: 'dd-mm-yyyy',
			onSelect: function(dates) { if($(this).hasClass('move')) { planning_get('move'); } else { planning_get(); } }
		});

		$('.datepick').not('.norange').datepick({
			rangeSelect: true,
			onDate: $.datepick.noWeekends,
			monthsToShow: 2,
			dateFormat: 'dd-mm-yyyy'
		});
	}

	if($('#startpick,#endpick').length > 0)
	{
		$('#startpick,#endpick').datepick({
			onDate: $.datepick.noWeekends,
			onSelect: customRange,
			monthsToShow: 2,
			dateFormat: 'dd-mm-yyyy'
		});
	}

	if($('input[name=customer]').length > 0)
	{
		$('input[name=customer]').autocomplete({
			source: 'xmlhttp/autocomplete_customers.xmlhttp.php',
			minLength: 2,
			select: function(event, ui)
			{
				if(ui.item)
				{
					$('input[type=hidden][name=cardcode]').val(ui.item.id);
				}

				if($(this).hasClass('autosubmit'))
				{
					$(this).parent().submit();
				}
			}
		});
	}

	if($('input[name=product]').length > 0)
	{
		$('input[name=product]').autocomplete({
			source: 'xmlhttp/autocomplete_products.xmlhttp.php',
			minLength: 2,
			select: function(event, ui)
			{
				if(ui.item)
				{
					$('input[type=hidden][name=itemcode]').val(ui.item.id);
					$('input[type=submit]').fadeIn();
				}
			},
			search: function(event, ui)
			{
				$('#loading').show();
			},
			open: function(event, ui)
			{
				$('#loading').hide();
			},
			close: function(event, ui)
			{
				$('#loading').hide();
			},
		});
	}

	$('tr.bottom_border').hover(function() {
		$(this).addClass('hovered');
	},
	function() {
		$(this).removeClass('hovered');
	});

	if($('.tooltip').length > 0)
	{
		$('.tooltip').tooltip({
			showURL:false,
			showBody:' - '
		});
	}

	if($('select[name=address]').length > 0)
	{
		set_gmap_href($('select[name=address]'));
	}

	$('#color_chooser').css('opacity', 0);
	$('#color_chooser').css('display', 'block');
});

$(document).keyup(function($event)
{
    if($event.keyCode == 13)
	{
		if($('#submit_button').length > 0)
		{
			$('#submit_button').click();
		}
	}
});

function customRange(dates) {
    if (this.id == 'startpick') {
        $('#endpick').datepick('option', 'minDate', dates[0] || null);
    }
    else {
        $('#startpick').datepick('option', 'maxDate', dates[0] || null);
    }
}

function search_addItemToShoppingCart($sItemCode, $sQuantityID)
{
	if(!$('#' + $sQuantityID + '').val())
	{
		alert('Could not determine quantity. Please contact Carrus Carts & Parts.');
	}
	else
	{
		$.ajax({
			type: 'GET',
			url: 'xmlhttp/search_addItemToShoppingCart.xmlhttp.php',
			data: 'itemcode=' + Base64.encode($sItemCode) + '&quantity=' + $('#' + $sQuantityID + '').val() + '',
			success: function($response)
			{
				$('#menu_shoppingcart_quantity').html($response);
			}
		});
	}
}

function shoppingcart_delItem($sItemCode)
{
	$.ajax({
		type: 'GET',
		url: 'xmlhttp/shoppingcart_delItem.xmlhttp.php',
		data: 'itemcode=' + $sItemCode + '',
		success: function()
		{
			window.location = 'index.php?page=cart';
		}
	});
}

function shoppingcart_orderProducts($sRequest)
{
	$sDisableSubmit = true;

	$sError = '';
	$oFocus = '';
	$sData = 'request=' + $sRequest + '',
	$aFields = new Array();

	$aFields['cart_order_contact_person'] = 'Contactpersoon';
	$aFields['cart_order_telephone'] = 'Telefoonnummer';
	$aFields['cart_order_email_address'] = 'E-mail adres';
	$aFields['cart_order_company_name'] = 'Bedrijfsnaam';
	$aFields['cart_order_address'] = 'Adres';
	$aFields['cart_order_postal_code'] = 'Postcode';
	$aFields['cart_order_city'] = 'Plaats';
	$aFields['cart_order_country'] = 'Land';
	$aFields['cart_order_comments'] = 'Opmerkingen';
	$aFields['cart_order_vat_number'] = 'BTW nummer';
	$aFields['cart_order_allow_partial_delivery'] = 'Deelleveringen toestaan';

	for($sField in $aFields)
	{
		$oObject = $('#' + $sField + '');

		if(typeof($oObject.val()) !== 'undefined')
		{
			$oObject.removeClass('error');

			if($sField != 'cart_order_vat_number' && $sField != 'cart_order_comments' && $sField != 'cart_order_allow_partial_delivery' && $oObject.val().length < 2)
			{
				$sError += $aFields[$sField] + '<br />';
				$oObject.addClass('error');

				if($oFocus.length == 0)
				{
					$oFocus = $oObject;
				}
			}
			else
			{
				$sData += '&' + $sField + '=' + encodeURIComponent($oObject.val()) + '';
			}
		}
	}

	if($sError.length > 0)
	{
		$oFocus.focus();
		$('#cart_order_feedback').html('<span class="red">The following fields are left empty:<br /><br />' + $sError + '<br />All fields are required. Please try again.<br /><br />');
	}
	else
	if($('select[name=cart_order_allow_partial_delivery]').val() == '-1')
	{
		$('#cart_order_feedback').html('<span class="red">Please select whether you agree with a partial delivery.<br /><br />');
		return;
	}
	else
	if(!$('input[name=agree_terms_and_conditions]').is(':checked'))
	{
		$('#cart_order_feedback').html('<span class="red">You have to agree the terms and conditions to continue.<br /><br />');
		return;
	}
	else
	{
		$.ajax({
			type: 'GET',
			url: 'xmlhttp/shoppingcart_orderProducts.xmlhttp.php',
			data: $sData,
			success: function($response)
			{
				if($response.length > 0)
				{
					alert("Error:\n\n" + $response + "\n\nPlease contact Carrus Carts & Parts. Thank you.");
				}
				else
				{
					window.location = 'index.php?page=cart_order&thankyou=true';
				}
			}
		});
	}
}

function changeClass($container, $class)
{
	$($container).removeClass();
	$($container).addClass($class);
}

function cms_downloads_submit_download_item()
{
	$error = false;

	$('input[type=file]').each(function()
	{
		if(this.value.length == 0)
		{
			$('#cms_downloads_submit_feedback').html('<span style="color:#FF0000;"><strong>Niet alle bestanden zijn geselecteerd, selecteer alstublieft voor elke taal een bestand.</strong></span><br /><br />');
			$error = true;
		}
	});

	$('input[type=text]').each(function()
	{
		if(this.value.length == 0)
		{
			$('#cms_downloads_submit_feedback').html('<span style="color:#FF0000;"><strong>Vul alstublieft alle velden in.</strong></span><br /><br />');
			$error = true;
		}
	});

	if($error == false)
	{
		$date = new Date();
		$time = $date.getTime();

		$.ajax({
			type: 'GET',
			url: 'xmlhttp/cms_checkInternalNameExistance.xmlhttp.php',
			data: 'internal_name=' + $('#name').val() + '&foobar=' + $time + '',
			success: function($response)
			{
				if($response == 'false')
				{
					$('#cms_downloads_submit_feedback').html('<span style="color:green;"><strong>Bezig met uploaden, een ogenblik geduld, dit kan even duren...</strong></span><br /><br />');
					$('#cms_downloas_submit_form').submit();
				}
				else
				{
					$('#cms_downloads_submit_feedback').html('<span style="color:#FF0000;"><strong>De door u gekozen interne naam bestaat al. Kies een andere en probeer het opnieuw.</strong></span><br /><br />');
				}
			}
		});
	}
}

function planning_get(div)
{
	$('#planning_proposition').html('Laden...');

	var replace = 'false';
	var date = 'false';
	var prefix = '';
	var force = 'false';
	var extra = 0;

	if(div)
	{
		prefix = '#' + div + ' ';
	}

	if($(prefix + 'input[type=hidden][name=replace]').length == 1)
	{
		replace = $(prefix + 'input[type=hidden][name=replace]').val();
	}

	if($(prefix + 'input[type=text][name=date]').length == 1)
	{
		date = $(prefix + 'input[type=text][name=date]').val();
	}

	if($('input[type=checkbox][name=force]').is(':checked'))
	{
		force = 'true';
	}

	if($('input[type=checkbox][name=extra_time]').is(':checked'))
	{
		extra = $('select[name=extra]').val();
	}

	var data = { 'engineer[]' : [], 'time' : $('input[type=hidden][name=time]').val(), 'docnum' : $('input[type=hidden][name=docnum]').val(), 'replace' : replace, 'date' : date, 'eta' : $('input[type=hidden][name=eta]').val(), 'force' : force, 'extra' : extra };

	$(prefix + 'input.engineer:checked').each(function()
	{
		data['engineer[]'].push($(this).val());
	});

	$.ajax({
		type: 'POST',
		url: 'xmlhttp/planning_get.xmlhttp.php',
		data: data,
		success: function(response)
		{
			$('#planning_proposition').html(response);
		}
	});
}

function strstr (haystack, needle, bool) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Onno Marsman
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: strstr('Kevin van Zonneveld', 'van');
    // *     returns 1: 'van Zonneveld'
    // *     example 2: strstr('Kevin van Zonneveld', 'van', true);
    // *     returns 2: 'Kevin '
    // *     example 3: strstr('name@example.com', '@');
    // *     returns 3: '@example.com'
    // *     example 4: strstr('name@example.com', '@', true);
    // *     returns 4: 'name'
    var pos = 0;

    haystack += '';
    pos = haystack.indexOf(needle);
    if (pos == -1) {
        return false;
    } else {
        if (bool) {
            return haystack.substr(0, pos);
        } else {
            return haystack.slice(pos);
        }
    }
}

function set_gmap_href(element)
{
	var select = $(element);
	var val = select.find('option:selected').text();
	val = strstr(val, '::');

	$('a#gmap').attr('href', 'http://www.google.nl/maps?q=' + val.substr(3) + '&hl=nl');
	$('input[type=hidden][name=address]').val(select.val());
}

function mailing_view(id)
{
	if(!id)
	{
		id = 0;
	}

	$.fancybox({
		'type' : 'ajax',
		'href' : '/xmlhttp/mailing_preview.xmlhttp.php?id=' + id + '',
	});
}

function hide_color()
{
	$('#color_chooser').fadeOut(function() {
		$('#color_chooser').css({ 'opacity' : 0, 'display' : 'block'});
	});
}

function show_color(object, id)
{
	var $object = $(object);
	var offset = $object.offset();

	$('input[type=hidden][name=id]').val(id);

	if($('#color_chooser').hasClass('unmoved'))
	{
		$('#color_chooser').removeClass('unmoved');
		$('#color_chooser').css({ 'top' : (offset.top + 10), 'left' : offset.left });
		$('#color_chooser').animate({ 'opacity' : 1 }, 500);
	}
	else
	{
		$('#color_chooser').animate({
			'opacity' : 1,
			'top' : (offset.top + 10),
			'left' : offset.left,
		}, 500);
	}
}

function color_choose_save()
{
	var data = $('#color_chooser form').serialize();
	var id = $('input[type=hidden][name=id]').val();
	var color = $('select[name=color]').val();

	$.ajax({
		type: 'POST',
		url: 'xmlhttp/planning_color_save.xmlhttp.php',
		data: data,
		success: function(response)
		{
			$('#td_' + id + '').css('background-color', color);
			hide_color();
		}
	});
}

function set_edit_form(key, type)
{
	$('#content_header').html('Edit content');
	$('.content_submit').val('Save');
	$('input[name=replace_key]').val(key);
	$('div.hidden').hide();

	if(type == 'p')
	{
		$('#type_p').attr('checked', true);
		$('input[name=product]').val($('td#content_' + key + '').html());
		$('#contents_product').fadeIn();
	}
	else
	if(type == 't')
	{
		$('#type_t').attr('checked', true);
		$('textarea[name=text]').val($('td#content_' + key + '').html());
		$('#contents_text').fadeIn();
	}
}

