/**
 * offers scripts
 * copyright OCEN 2011
 * @author Gijs, Erik
 */

var m_iOffersView = 25;


$(document).ready(function(){
	
	$( "#offersBox" ).tabs();
	$( "#offersBox" ).show();
	
	$( "#adv_date_created" ).datepicker({ dateFormat: 'dd-mm-yy' }, $.datepicker.regional[ 'lang' ]);	
	$( "#adv_date_expired" ).datepicker({ dateFormat: 'dd-mm-yy' }, $.datepicker.regional[ 'lang' ]);	
		
	$(".offerList").each(function(){
		var last_header = parseInt($(this).find('th').size() - 1);
		
		if ($(this).find('tbody tr').size() > 1) {
			$(this).tablesorter({
				widthFixed: true,
				widgets: ['zebra'],				
				// define a custom text extraction function 
				textExtraction: function(node){
					// extract data from markup and return it 
					if ($(node).hasClass('date')) {
						return $(node).attr('abbr');
					} else if ($(node).hasClass('status')) {
						return $(node).attr('abbr');
					}
					else {
						return $(node).text();
					}
				}
			})
			$(this).bind("sortEnd",function() { 
        statusTooltip();
    	});
			
			
			
			if( $(this).find('tbody tr').size() > 25 ) { 
				console.log('here');
				$(this).tablesorterPager({
					container: $("#pager"),
					size: 25 
				});		
			}
			
			$('#pager a').click(function(){
				 statusTooltip();
				return false;
			});
				
		}
	});
	
	$('.offerList tbody .date_end').each(function(){
		$(this).mouseenter(function(){		
			tooltip('op deze datum verloopt de offerte',$(this),75,-15);		
			return false;
		});
		$(this).mouseleave(function(){
			$('.tooltip').remove();
			return false;
		});		
	});
	
	statusTooltip();
});

function statusTooltip(){
	$('.offerList tbody .status_icon').each(function(){
		$(this).mouseenter(function(){		
			tooltip('Offerte status: '+$(this).attr('desc'),$(this),30,-15);		
			return false;
		});
		$(this).mouseleave(function(){
			$('.tooltip').remove();
			return false;
		});		
	});
	
}

/**
 * @desc get more offers
 */
function moreOffers(){
	var l_iNextOffers = m_iOffersView + m_iOffersView;
	
	alert('the next '+l_iNextOffers+' offers is coming soon!');
}


/**
 * @desc decline an offer and send message to client
 */
function declineOffer(p_iOffer){
	$('#cover').fadeIn();
	$('#declineBox').show('fast');
	$('html,body').animate( {scrollTop: 0},200 );
}
function closeDecline(){
	$('#cover').fadeOut();
	$('#declineBox').hide('fast');
}

/**
 * @desc accept an offer and send message to client
 */
function acceptOffer(p_iOffer){
	$('#cover').fadeIn();
	$('#acceptBox').show('fast');
	$('#address_payment_id').unbind().change(function(){
		$('#address-book-payment').remove();
		if ($(this).val()) {
			$(this).after('<div id="address-book-payment" class="address-item-book"><img src="/html/images/configurator/loading.gif" alt="" /></div>');
			$('#address-book-payment').load(document.location.href, {'fCall': 'getAddress', 'id':$(this).val()});
		} else {
			$('#address-book-payment').remove();
			
		}
	});
	$('#address_delivery_id').unbind().change(function(){
		$('#address-book-delivery').remove();
		if ($(this).val()) {
			$(this).after('<div id="address-book-delivery" class="address-item-book"><img src="/html/images/configurator/loading.gif" alt="" /></div>');
			$('#address-book-delivery').load(document.location.href, {'fCall': 'getAddress', 'id':$(this).val()});
		} else {
		$('#address-book-delivery').remove();
			
		}
	});
	$('html,body').animate( {scrollTop: 0},200 );
}
function closeAccept(){
	$('#cover').fadeOut();
	$('#acceptBox').hide('fast');
}

function toggleDelivery(){
	var check_value = $('input[name=delivery_check]:checked').val();
	
	if(check_value == 2){
		$('#deliveryCheck').fadeIn();
	} else {
		$('#deliveryCheck').fadeOut();		
	}
}
function toggleInvoice(){
	var check_value = $('input[name=invoice_check]:checked').val();
	
	if(check_value == 3){
		$('#invoiceCheck').fadeIn();
	} else {
		$('#invoiceCheck').fadeOut();		
	}
}

function addNewDeliveryAddress(){
	$('#add_delivery_address').fadeIn();
	$('.delivery_box').hide();
}
function cancelNewDeliveryAddress(){
	$('#add_delivery_address').fadeOut();
	$('.delivery_box').show();
}
function addNewInvoiceAddress(){
	$('#add_invoice_address').fadeIn();
	$('.invoice_box').hide();
}
function cancelNewInvoiceAddress(){
	$('#add_invoice_address').fadeOut();
	$('.invoice_box').show();
}

function preAccept(){
	
	var errors = false;
	
	$('.error').removeClass('error');
	$('.tooltip').remove();
	var l 	= 385;
	var t 	= -10;
	
	// general fields
	$('#acceptForm input:not(:hidden).mandatory').each(function(){ 
		if( $(this).val() == '' ) { 
			$(this).addClass('error');			
			tooltip(form_input_msg, $(this), l, t);
			errors = 'general';
		}
	});
	
	// delivery
	if( !$('input[name=delivery_check]:checked').val() == 3 ){
		if( $('select[name=address_delivery_id]').val() == '' ) { 
			$('select[name=address_delivery_id]').addClass('error');			
			tooltip(form_input_msg, $('select[name=address_delivery_id]'), l, t);
			errors = 'delivery';
		}
	}
	
	// invoice
	if( !$('input[name=invoice_check]:checked').val() == 3 ){
		if( $('select[name=address_payment_id]').val() == '' ) { 
			$('select[name=address_payment_id]').addClass('error');			
			tooltip(form_input_msg, $('select[name=address_payment_id]'), l, t);
			errors = 'invoice';
		}
	}
	
	if(errors){		
		$('body').append('<div id="usersaveerror" class="error-msg">'+form_error_msg+'<br /><br /><a href="javascript:;" onclick="$(this).parent().fadeOut(\'fast\',function(){ $(this).remove() });" class="button">'+text_close+'</a></div>');
		$('#usersaveerror').show('fast');
		return false;
		
	} else {
		return true;
	}
	
}

/**
 * @desc pre function to decline an offer
 */
function submitDecline(){
	if( confirm(decline_confirm_msg) ) {
		return true;
	} else {
		return false;
	}
}


/**
 * @param {boolean} p_bShow
 */
function toggleRemarks( p_bShow ){
	if(p_bShow){
		$('.remark').fadeIn();
		$('#show_remarks').hide();
		$('#hide_remarks').show();
	} else {
		$('.remark:gt(4)').fadeOut();
		$('#show_remarks').show();
		$('#hide_remarks').hide();
	}
}

/**
 * @param p_iProduct
 * @param p_iOrder
 */
function deleteProduct( p_iOrder, p_iProduct ){
	if( confirm( delete_confirm_msg ) ) { 
		$.post('/offers/', {
			'fCall' : 'deleteProductFromOrder',
			'orders_id' : p_iOrder,
			'orders_products_id' : p_iProduct
		}, function(r){
			if( r == 5 ) { 
				document.location = '/offers/';
			} else {				
				location.reload(true);
			}
		});
	}
	
}

/**
 * @param {Object} p_iAttachment
 */
function deleteAttachment( p_iAttachment ) {
	if(confirm(delete_confirm_msg)){
		$.post('/offers/', {
			'fCall' : 'deleteAttachment',			
			'orders_attachments_id' : p_iAttachment
		}, function(r){
			if(r == 'success'){
				$('#attachment_'+p_iAttachment).fadeOut();
			}	else {
				alert('Kon het opgegeven bestand niet verwijderen.');				
			}		
		});
	}
	
}


function toggleAdvancedSearch(){
	
	if( $('#advancedSearch').css('display') == 'none' ) {
		$('#advancedSearch').show();
		$('#advancedSearch').animate({
			height: 270
		},250);
	} else {
		$('#advancedSearch').animate({ height:0 },250, function(){ 
			$(this).hide();
		});
	}
}

function checkRadios(formID){
	var check = false; 
	
	jQuery('#'+formID+' input[type=radio]').each(function(){
		if( jQuery(this).attr('checked') ){
			check = true;
		}
	});
	
	if(check){
		 jQuery('#'+formID).submit();	
	} else {
		$('body').append('<div id="fielderror" class="error-msg">'+form_error_choise_msg+'<br /><br /><a href="javascript:;" onclick="$(this).parent().fadeOut(\'fast\',function(){ $(this).remove() });" class="button">'+text_close+'</a></div>');
		$('#fielderror').show('fast');
	}
	
}

