var aFilterSelected = {}
$(document).ready(function(){
    jattParam = { followMouse : true, live :false, loading : 'Минуточку',  zIndex : 10000 }
    $.jatt( jattParam )
    var transfer_type = $('#transferType')

    function message( sDescr, sType ){
	//$.jGrowl.defaults = { closer : false, closerTemplate : '' }
	if (!sType){
	    sType = 'notice'
	//}else{
	//    sType = 'showNoticeToast'
	}

	$.jGrowl( sDescr, { position : 'center'  });

	//$().toastmessage('showToast',
	//	{ text : sDescr ,  position : 'top-center', type : sType }
	//)
    }
    oService.message = message
    $("input[name=query]").focus()
    function setSlider( iMin, iMax ){
	try{
	    $("#price_slider").slider(
		{
		    from: iMin,
		    to: iMax,
		    //step: {{ware.price.step}},
		    dimension: '&nbsp;руб.',
		    //scale: $('#price_scale').val().split(','),
		    skin : 'plastic',
		    limits : true,
		    smooth : true,
		    callback : function (value){
			oService.remote('remoteShowWareByFilter', {'path_info' : $("#path_info").val(), 'sessionPropertyCode' : $("#sessionPropertyCode").val() , 'price' : value }, setWareFilter, {}, true )
		    }
		}
	    )
	}catch( oError ){
	    alert( oError )
	}
    }
    setSlider( $('#price_min').val()*1, $('#price_max').val()*1 )


    function initWareBasket( ){
	//$("select[actionType=basketSelect]").change(function( oEvent ){
	//	try{
	//		var iWrm_id = $(this).val()
	//		if (iWrm_id != ''){
	//			oService.remote('remoteBasketProcess', {'action' : 'add', 'wrm_id' : iWrm_id }, pushToBasket, {} )
	//		}
	//	}catch( oError ){
	//    alert( oError )
	//}finally{
	//    return false
	//}
	//})
	$("input[actionType=basket]").click(function( oEvent ){
	    try{

		    var iWre_id = $(this).attr( 'wre_id' )
		    if (iWre_id){
			var oSelect = $('#select-' + iWre_id )
			var iWrm_id = oSelect.val()

			if (!iWrm_id ){
			    message('Для покупки товара,<br/>выберите нужный вам размер');
			    oSelect.focus()
			    return false
			}
		    }else{
			var iWrm_id = $(this).attr( 'wrm_id' )
		    }

		    //alert( iWrm_id )
		    if (!iWrm_id ){
			var oWareModel = $("#ware_model")
			if (oWareModel.val( ) == ''){
			    message('Для покупки товара,<br/>выберите нужный вам размер');
			    //alert('Вам необходимо выбрать размер')
			    oWareModel.focus()
			    return false
			}else{
			    iWrm_id = oWareModel.val( )
			}
		    }

		    oService.remote('remoteBasketProcess', {'action' : 'add', 'wrm_id' : iWrm_id }, pushToBasket, {} )
	    }catch( oError ){
		    alert( oError )
	    }finally{
		    return false
	    }
	})
    }
    initWareBasket( )
    $("a[actionType=clearBasket]").click(function( oEvent ){
        try{
            //alert( 'Удалить?' )
            oService.remote('remoteClearBasket', {}, clearBasket )
        }catch( oError ){
            alert( oError )
        }finally{
            return false
        }
    })
    $("input[actionType=basketCountChange]").blur(function( oEvent ){
        try{
            //alert( 'Удалить?' )
            oService.remote('remoteBasketCountChange', {'wrm_id' : $(this).attr('wrm_id'), 'count' : $(this).val() }, basketCountChange, { 'wrm_id' : $(this).attr('wrm_id') }  )
        }catch( oError ){
            alert( oError )
        }finally{
            return false
        }
    })
    function change_transfer_type( ){
	if (transfer_type.length > 0){
	    if (transfer_type.val( ) != ''){
		if (checkMaxMailSum()){
		    var oIndex = $("input[name=usr_index]")
		    if ((transfer_type.val( ) == 'mail' || transfer_type.val( ) == 'mail_prepay' ) && oIndex.val( ) == ''){
			message('При выборе типа доставки почта, необходимо заполнить Индекс', 'error')
			$('#mailTransfer').show('fast')
			oIndex.focus( )
			return false
		    }else{
			var oParam = {'type' : transfer_type.val( ), 'index' : oIndex.val( ) }
			oService.remote('remoteChangeTransferType', oParam, changeTransferType, oParam )
			return true
		    }
		}else{
		    transfer_type.val("")
		    return false
		}
	    }else{
		$('#basket-transfer-finalSumma').html( '' )
		$('#orderFormContainer').fadeIn('slow')
		$('#orderFormContainer').html( '' )
		return false
	    }
	}
	return false
    }
    change_transfer_type( )
    transfer_type.change(function( oEvent ){
	return change_transfer_type()
    })


    $("a[actionType=deleteWare]").click(function( oEvent ){
        try{
            //alert( 'Удалить?' )
            var iWrmID = $(this).attr('wrm_id')
            oService.remote('remoteBasketProcess', { 'action' : 'delete', 'wrm_id' : iWrmID }, deleteWare, { 'wrm_id' : iWrmID } )
        }catch( oError ){
            alert( oError )
        }finally{
            return false
        }
    })

    $("a[actionType=showHideProperty]").click(function( oEvent ){
        try{
			if ($('#wareProperty').is(":visible")){
				$('#wareProperty').hide('fast')

			}else{
				$('#wareProperty').show('fast')
			}
        }catch( oError ){
            alert( oError )
        }finally{
            return false
        }
    })


//    $("a[actionType=changeImage]").bind('click', function(  ){
//	//alert( $(this).attr('bigSrc') )
//	//$('#bigImage' ).attr('src', $(this).attr('bigSrc'))
//	var sBig = $(this).attr('bigSrc')
//	var sBigBig = $(this).attr('bigBigSrc')
//	$('#bigImageHref' ).attr('rel', sBigBig)
//	//imagePreview();
//	//alert( sBigBig)
//	$('#bigImage' ).fadeOut('fast', function(){
//		$('#bigImage' ).attr('src', sBig)
//		//alert(sBigBig)
//
//		$('#bigImage' ).fadeIn( 'fast')
//
//	    })
//
//	return false
//    })
    function setPropertyClick(){
	    //alert(1)
	$("a[actionType=propertyClick]").click(function( oEvent ){
	    try{
		//alert($(this).attr('sessionPropertyCode'))
		//sValue = $(this).text()
		$(this).toggleClass('selected')
		if (aFilterSelected[ $(this).attr('w2p_id') ]){
			aFilterSelected[ $(this).attr('w2p_id') ] = false
		}else{
			aFilterSelected[ $(this).attr('w2p_id') ] = true
		}
		//alert('click')
		oService.remote('remoteShowWareByFilter', {'path_info' : $("#path_info").val(), 'sessionPropertyCode' : $("#sessionPropertyCode").val() , 'prp_id' : $(this).attr('prp_id'), 'w2p_id' : $(this).attr('w2p_id')}, setWareFilter, {}, true )
	    }catch( oError ){
		alert( oError )
	    }finally{
		return false
	    }
	})
    }
    function setClearFilter(){
	$("a[actionType=clearFilter]").click(function( oEvent ){
	    try{
		oService.remote('remoteShowWareByFilter', {'path_info' : $("#path_info").val(), 'sessionPropertyCode' : $("#sessionPropertyCode").val(), 'clearFilter' : true} , setWareFilter, {'clear' : true}, true )
	    }
	    finally{
		return false
	    }
	})
    }
    setClearFilter( )
    function setPageSelect( ){
	$("a[actionType=pageSelect]").click(function( oEvent ){
	    try{
		//alert( $(this).attr('page') )
		oService.remote('remoteShowWareByFilter',
				{
				     'path_info' : $("#path_info").val()
				    ,'sessionPropertyCode' : $("#sessionPropertyCode").val()
				    ,'page' : $(this).attr('page')
				}, setWareFilter, {}, true )
	    }catch( oError ){
		alert( oError )
	    }finally{
		return false
	    }
	})
    }


    function setSelected( ){
	    for ( iSelected in aFilterSelected ){
		    //alert( iSelected )
		    if ( aFilterSelected[ iSelected ] ){
			    //alert(iSelected)
			    //alert($("a[w2p_id=" + iSelected + "]").attr('w2p_id'))
			    $("a[w2p_id=" + iSelected + "]").addClass('selected')
		    }else{
			    $("a[w2p_id=" + iSelected + "]").removeClass('selected')
		    }
	    }
    }
    function setCanSelected( aSelected ){
	    for ( iSelected in aSelected ){
		    //alert( iSelected )
		    //alert(aSelected[ iSelected ] )
		    if ( aFilterSelected[ aSelected[ iSelected ] ] ){

			    //alert($("a[w2p_id=" + iSelected + "]").attr('w2p_id'))
			    $("a[w2p_id=" + aSelected[ iSelected ] + "]").removeClass('canselected')
		    }else{
			    $("a[w2p_id=" + aSelected[ iSelected ] + "]").addClass('canselected')
		    }
	    }
    }
    setPropertyClick( )
    //function checkRequired( sPrefix ){
    //    var bRequired = false
    //    $("input[req="+sPrefix+"]").each(function(){
    //        if ($(this).val() == ''){
    //            sDescr = $(this).attr('title')
    //            //alert($(this).val() + sDescr )
    //            message('Поле '  + sDescr + ' Обязательно для заполнения', 'error')
    //            $(this).focus()
    //            bRequired = true
    //            return
    //        }else{
    //            sSubType = $(this).attr('subtype')
    //            //alert(sSubType)
    //            if (sSubType == 'index' &&!checkIndex( $(this).val() )){
    //                sDescr = $(this).attr('title')
    //                message('поле ' + sDescr + ' должен быть числовым, например, 129090', 'error')
    //                $(this).focus()
    //                bRequired = true
    //                return
    //            }
    //            if (sSubType == 'email' && !echeck( $(this).val() )){
    //                //alert( 1)
    //                sDescr = $(this).attr('title')
    //                message('в поле ' + sDescr + ' должен быть правильный электронный адрес, например, re.gogo@gmail.com', 'error')
    //                $(this).focus()
    //                bRequired = true
    //                return
    //            }
    //
    //
    //        }
    //    })
    //
    //    return bRequired
    //}

    //$('div[action=user_favorite]').each(function(index) {
    //    var oParam = {maxvalue:5, increment:.5, ufv_type : $(this).attr('ufv_type'), ufv_src : $(this).attr('ufv_src') }
    //    if ($(this).attr('ufv_rating') != ''){
    //        oParam.ufv_rating = $(this).attr('ufv_rating')
    //    }
    //    $(this).rating('/set_user_favorite/', oParam)
    //})
    //$('a[action=deleteFavorite]').bind('click', function() {
    //    try{
    //
    //        jQuery.post('/delete_user_favorite/', {
    //              "ufv_src" : $(this).attr('ufv_src')
    //            , "ufv_type" : $(this).attr('ufv_type')
    //        });
    //        //var sId = 'favorite_' + $(this).attr('ufv_type') + ':' + $(this).attr('ufv_src')
    //        var sId = 'favorite_' + $(this).attr('ufv_type') + $(this).attr('ufv_src')
    //        //alert( document.getElementById( sId ))
    //        //alert( sId )
    //        $('#' + sId).fadeOut('slow')
    //    }catch( oError ){
    //        alert( oError )
    //    }finally{
    //        return false
    //    }
    //});


    $('#orderForm').submit( function( oEvent ){
        try{


	    if (checkMaxMailSum() && oService.checkForm( $(this) )){
		return true
	    }else{
		return false
	    }


            //if (!checkRequired('required') ){
            //    //if ((sTransferType == 'mail' || sTransferType == 'mail_prepay' ) && !checkRequired('requiredMail') ){
            //    //    return false
            //    //}
            //    //var oTel = $("input[name=usr_tel]")
            //    ////alert( oTel.val() )
            //    //if (sTransferType =='courier' && oTel.val( ) == ''){
            //    //    message('При выборе типа доставки Курьером по Москве, необходимо заполнить телефон', 'error')
            //    //    oTel.focus( )
            //    //    return false
            //    //}
            //    //if (sTransferType =='courier' && oTel.val( ) != '' && !checkInternationalPhone( oTel.val( ) ) ){
            //    //    message('Телефон должен быть в международном формате, например +74562221155', 'error')
            //    //    oTel.focus( )
            //    //    return false
            //    //}
            //}else{
            //    return false
            //}
            //return true
        }catch( oError ){
            alert( oError )
            return false
        }


    })

    function setClassOfRowInBasketTable( ){
         $('#basket_table tr:odd').addClass('even')
         $('#basket_table tr:even').removeClass('even')
    }
    function deleteWare( oReturnData, oParam ){
        $('#basket-summa-final').html(oReturnData.result.summa)
        basketStatus( oReturnData )
        message( oReturnData.result.message )
        $('#tr-'+oParam['wrm_id'] ).remove()
        setClassOfRowInBasketTable()

    }
    function setWareFilter( oReturnData, oParam ){
	    //
	    //alert(  oReturnData.result.wareHtml )
	    $('#wareResult').html(oReturnData.result.wareHtml)
	    $('#pageSelectTop').html(oReturnData.result.pageHtml)
	    $('#pageSelectBottom').html(oReturnData.result.pageHtml)
	    $('#wareProperty').html(oReturnData.result.wareFilter)
	    //alert(1)
	    $('#wareCount').html(oReturnData.result.rowCount)

	    //
	    //alert($('#wareCount').length)
	    $('#wareClear').html('<strong><a href="#" actionType="clearFilter">очистить фильтр</a></strong>')

	    setClearFilter()

	    if (oReturnData.result.price){
		//setSlider( oReturnData.result.price.min, oReturnData.result.price.max )
		$("#price_slider").slider('value', oReturnData.result.price.min,oReturnData.result.price.max )

	    }
	    if (oParam.clear){
		aFilterSelected	 = {}
		$('#wareClear').html('')
	    }
	    //alert(oReturnData.result.wareFilter)
	    //alert(oReturnData.result.w2p_id)
	    //setCanSelected( oReturnData.result.w2p_id )
	    $.jatt( jattParam )

	    initWareBasket()
	    setPageSelect()
	    setPropertyClick()
	    setSelected( )
	    //imagePreview()
	    //alert(1)


    }

    function basketStatus( oReturnData ){
        $('#basket-summa').html(oReturnData.result.summa)
	$('span[name=basket-summa-final]').html(oReturnData.result.summa)
	$('span[name=basket-count-final]').html(oReturnData.result.count)
        $('#basket-count').html(oReturnData.result.count)


    }
    function changeTransferType( oReturnData, oParam ){
	if (oReturnData.result.message != '' && oReturnData.result.message != null ){
		//alert( oReturnData.result.message )
		message( oReturnData.result.message )
	}
	$('#orderFormContainer').fadeOut('slow', function( ){
		$('#basket-transfer-final').html( oReturnData.result.transferDescr )
		$('#basket-transfer-finalSumma').html( oReturnData.result.transferFinalDescr )
		$('#orderFormContainer').fadeIn('slow')
		$('#orderFormContainer').html( oReturnData.result.form )


	} )

//        if (oParam['type'] =='mail' || oParam['type'] =='mail_prepay' ){
//            $('#mailTransfer').show('fast')
//        }else{
//            $('#mailTransfer').hide('fast')
//        }
//        $('span[name=basket-summa-final]').html(oReturnData.result.summa)
//        $('span[name=basket-transfer-final]').html(oReturnData.result.transfer)
//	$('span[name=basket-count-final]').html(oReturnData.result.count)
//
//		basketStatus( oReturnData )

    }
    function basketCountChange( oReturnData, oParam ){
	try{
	    var iPrice  = $('#price-' + oParam['wrm_id']).text( ) * 1
	    var iCount = $('#count-' + oParam['wrm_id']).val( ) * 1
	    $('#sum-' + oParam['wrm_id']).text( iPrice * iCount )
	    basketStatus( oReturnData )
//	    orderButtonProcess( true )
	}catch( oError ){
	    alert( oError  )
	}
    }
    function clearBasket( oReturnData, oParam ){
        $('#basket_table tr').remove()
        basketStatus( oReturnData )
        message( oReturnData.result.message )

        $('span[name=basket-summa-final]').html(oReturnData.result.summa)
		//$('#basket-transfer-final').html(oReturnData.result.transfer)
    }
    function pushToBasket( oReturnData, aParam ){
        message( oReturnData.result.message, 'success' )
        basketStatus( oReturnData )
    }
    function checkMaxMailSum(){
	iSumma = $('#basket-summa').html() * 1
	var sTransferType = $("#transferType").val()
	if (sTransferType == 'mail-naloz' && iSumma > mailMaxSum){
	    message('При наложенном платеже сумма не может быть больше ' + mailMaxSum, 'error')
	    return false
	}else{
	    return true
	}
    }

})

