$(function() {

    var timeout         = 500;
    var closetimer      = 0;
    var ddmenuitem      = 0;

    $('#jsddm > li').bind('mouseover', jsddm_open);
    $('#jsddm > li').bind('mouseout',  jsddm_timer);

    document.onclick = jsddm_close;

    $('.catlink').click(function() {
        var catid = $(this).attr("id");
        catid = catid.replace('catlink_', '');
        $('.subcat_list').each(function() {
            // hide all subcategories except if the current one is going to be shown
            if( $(this).attr("id") != 'subcat_'+catid || !$('#subcat_'+catid).is(':visible') ) {
                $(this).slideUp();
                $('#subcat_'+catid).slideDown();
            }
        }); 
        
    });
    
    var popup1 =  $('#special1').overlay({
        api: true,
        top: '5'
    });
    
    var popup2 =  $('#special2').overlay({
        api: true,
        top: '5'
    });
    
    var popup3 =  $('#special3').overlay({
        api: true,
        top: '5'
    });
    
    var popup4 =  $('#special4').overlay({
        api: true,
        top: '5'
    });
        
    $('#specialpop1').click(function() {
        popup1.load();
        return false;
    });
    
    $('#specialpop2').click(function() {
        popup2.load();
        return false;
    });
    
    $('#specialpop3').click(function() {
        popup3.load();
        return false;
    });
    
    $('#specialpop4').click(function() {
        popup4.load();
        return false;
    });

    // Blurs default values in forms
    $('input.defaultValue').each(function(){
        var defaultVal = this.value;
        $(this).addClass('inputBlurred');

        $(this).focus(function(){
            $(this).removeClass('inputBlurred');
            $(this).addClass('inputFocused');
            if (this.value == defaultVal) {
                this.value = '';
            }
        })
        .blur(function(){
            $(this).removeClass('inputFocused');
            $(this).addClass('inputBlurred');
            if (this.value == '') {
                this.value = defaultVal;
            }
        });
    });

    function jsddm_open() {
        jsddm_canceltimer();
        jsddm_close();
        ddmenuitem = $(this).find('ul').eq(0).css('visibility', 'visible');
    }

    function jsddm_close() {
        if(ddmenuitem) ddmenuitem.css('visibility', 'hidden');
    }

    function jsddm_timer() {
        closetimer = window.setTimeout(jsddm_close, timeout);
    }

    function jsddm_canceltimer() {
        if (closetimer) {
            window.clearTimeout(closetimer);
            closetimer = null;
        }
    }
	
	//Validate number fields with min_value attribute.
	$('input[min_value]').change(function(){
		var val = Math.ceil($(this).val().replace(new RegExp('[^0-9]','g'),''));//strip non-numerical chars
		var min_val = Math.abs($(this).attr('min_value'));
		if (val < min_val){
			alert('Minimum Order of '+min_val+' is required');
			val = min_val;//set value back to minimum value
		}
		$(this).val(val);
	});
	
	//Update Total
	$("td.qty input").change(function() {
		var unit_price = parseFloat($(this).parent().parent().next().text().replace(/^[^0-9\.]/g, ''));
		var qty = parseFloat($(this).val());
		var total = qty * unit_price;
		$(this).parent().parent().next().next().text(isNaN(total) ? '' : $.sprintf('$%0.2f', total));
	});
	$("td.qty input").change();//auto update total on ready
	
	//update basket display order in background
	$('.disp_order_input').change(function() {
		var id = $(this).attr('id');
		var val = $(this).val();
		$.post('/admin/baskets/ajax_setorder/'+id, { 'data[Basket][display_order]': val },function(a,b,c){				
				//console.log(b);
			});
	});
	
	$('#UserOrganisationId').prepend('<option value="-1" >Enter New Organisation</option>');
	$('#UserOrganisationId').change(function(){
		if ($(this).val() == -1 ){
			var org=prompt('Please enter the name of organisation.','');
			if (org!=null && org!=''){
				$.post('/admin/organisations/add/'+org, {},function(a,b,c){	
						location.reload(true);
					});
			}else{
				$(this).val(1);
			}
		}
	});
	
	
	
	
	
	
	
	
});

