var _infoStatus = 'gray'
var _errorStatus = 'red'
var bLock = false

$(document).ready(function(){
    $('a[action=addToBasket]').click(function() {
	try{
	    orderButtonProcess( false )
	    oService.remote('remoteAddToBasket', { wre_descr : $(this).attr('wre_descr'), wre_id : $(this).attr('wre_id') },
			    function ( oReturnData, oParam ){
				try{
				    oService.message( oReturnData.result.message, _infoStatus )
				    $('#basketObject').fadeOut('slow',
					    function(){
						basketStatus( oReturnData )
						$('#basketObject').fadeIn('slow')
					    })

				}catch( oError ){
				    alert( oError  )
				}
			    })
	}catch( oError ){
	    alert( oError )
	}finally{
	    return false
	}
    })
    $('a[action=deleteFromBasket]').click(function() {
	try{
	    if (confirm('Вы уверены, что хотите удалить ' + $(this).attr('wre_descr') + '?')){
		orderButtonProcess( false )
		oService.remote('remoteDeleteFromBasket', { wre_descr : $(this).attr('wre_descr'), wre_id : $(this).attr('wre_id') },
				function( oReturnData, oParam ){
				    try{
					oService.message( oReturnData.result.message, _infoStatus )
					basketStatus( oReturnData )
					$('#tr-' + oParam['wre_id'] ).remove()
					orderButtonProcess( true )
				    }catch( oError ){
					alert( oError  )
				    }
				},
				{wre_id : $(this).attr('wre_id')} )
	    }
	}catch( oError ){
	    alert( oError )
	}finally{
	    return false
	}
    })
    $('input[action=changeCount]').change(function() {
	try{
	    if ( oService.IsNumeric( $(this).val( ) ) && $(this).val( ) * 1 != 0 ){
		orderButtonProcess( false )
		oService.remote('remoteChangeCount', { count : $(this).val( ), wre_id : $(this).attr('wre_id') },
				    function ( oReturnData, oParam ){
					try{
					    var iPrice  = $('#price-' + oParam['wre_id']).text( ) * 1
					    var iCount = $('#count-' + oParam['wre_id']).val( ) * 1
					    $('#sum-' + oParam['wre_id']).text( iPrice * iCount )
					    basketStatus( oReturnData )
					    orderButtonProcess( true )
					}catch( oError ){
					    alert( oError  )
					}
				    },
				    {wre_id : $(this).attr('wre_id')} )
	    }else{
		oService.message( 'Необходимо ввести число', _errorStatus )
		$(this).focus()
	    }
	}catch( oError){
	    alert( oError )
	}
    })




    function basketStatus( oData ){
	if( oData.result.noWare ){
	    //alert(1)
	    $('#orderDiv').text( oData.result.noWare )
	}else{
	    //alert( oData.result.basketInfo )
	    if( oData.result.basketInfo ){
		$('#basketInfo').html( oData.result.basketInfo )

	    }
	    //alert( oData.result.basketFullInfo )
	    if( oData.result.basketFullInfo ){
		$('#basketFullInfo').text( oData.result.basketFullInfo )
	    }
	}
    }

    $('#orderForm').submit(function() {
	try{
	    if (oService.checkForm( $(this) ) && !bLock ){
		var aInput = $(this).find( 'input' )
		for ( var iIndex = 0; iIndex < aInput.length; iIndex++){
		    var oObj = $(aInput[ iIndex ])
		    var sReq = oObj.attr('requiredDescr')
		    var sType = oObj.attr('subtype')
		    if ( sReq && oObj.val()== ''){
			oService.message( sReq, _red)
			oObj.focus()
			return false
		    }

		    if (oObj.val() != '' && sType == 'tel' && !oService.telephoneCheck( oObj.val() ) ){
			oService.message( 'Неправильный телефон, пример : 123-4567', _red)
			oObj.focus()
			return false
		    }
		    if (oObj.val() != '' && sType == 'email' && !oService.emailCheck( oObj.val() ) ){
			oService.message( 'Неправильный электронный адрес, пример : info@gmail.com', _red)
			oObj.focus()
			return false
		    }
		}
		//alert('1')
		return true
	    }else{
		return false
	    }
	}catch( oError ){
	    alert( oError )
	    return false
	}
    })

    function orderButtonProcess( bEnable ){
	bLock = !bEnable
	$('input[buttonType=lock]').each( function( iIndex ){
	    try{
		if ( bEnable ){
		    $(this).attr( 'value', $(this).attr('old_value') )
		    //alert( $(this).attr('old_value') )
		    $(this).attr("disabled", "")
		}else{
		    $(this).attr("disabled", "disabled")
		    $(this).attr('old_value', $(this).val() )
		    $(this).attr( 'value', $(this).attr( 'trigger') )
		    //alert( $(this).attr( 'trigger') )

		}
	    }catch( oError ){
		alert( oError )
	    }
	} )
    }

})

