var ads = {
    selectCategory: function(category, chooseText, subcategory)
    {
        $('#categorySelect').find('option[value='+category+']').attr('selected', 'selected');
        $.getJSON(WEBROOT+'/'+LANG+'/ads/getSubcategories/'+category,
        function(data)
        {
             $('#subCategory').attr('disabled', '');
            if(!data.length)
                $('#subCategory').attr('disabled', 'disabled');
			$('#subCategory').html('<option value="0">- '+chooseText+' -</option>');
            $('#subSubCategory').html('<option value="0">- '+chooseText+' -</option>');
            $.each(data, function(i, value)
            {
                if(subcategory != undefined && subcategory == value.id)
                {
                    $('#subCategory').append('<option value="'+value.id+'" selected="selected">'+value.name+'</option>');
                }
                else
                    $('#subCategory').append('<option value="'+value.id+'">'+value.name+'</option>');
            });
        });
		$('#subcategoryContainer').html("");
    },   
    selectSubcategorySearch: function(subcategory, chooseText, subSubcategory)
    {
        $('#subSubCategory').html('<option value="0">- '+chooseText+' -</option>');
        $.getJSON(WEBROOT+'/'+LANG+'/ads/getSubSubcategories/'+subcategory,
        function(data)
        {
			$('#subSubCategory').attr('disabled', '');
            if(!data.length)
                $('#subSubCategory').attr('disabled', 'disabled');
            $.each(data, function(i, value)
            {
                if(subSubcategory != undefined && subSubcategory == value.id)
                {
                    $('#subSubCategory').append('<option value="'+value.id+'" selected="selected">'+value.name+'</option>');
                }
                else
                    $('#subSubCategory').append('<option value="'+value.id+'">'+value.name+'</option>');
            });
        });
        $.getJSON(WEBROOT+'/'+LANG+'/ads/getSearchForm/'+subcategory,
        function(data)
        {
            $('#subcategoryContainer').html(data);
        });
    },  
    markAd: function(adId)
    {
        $.getJSON(WEBROOT+'/'+LANG+'/ads/mark/'+adId, function(data)
        {
            if(data != '-1')
            {
                $('#markAdLink').hide();
                $('#unmarkAdLink').show();
                $('.markedAdCount').html(data);
                $('#viewMarkCheckbox').attr('checked', 'checked');
            }
        });
    },
     selectItem: function(listId, itemValue, destId, chooseText)
    {        
        $.getJSON(WEBROOT+'/'+LANG+'/ads/getItemValues/'+listId+'/'+itemValue, function(data)
        {
            $('#'+destId).html('<option value="0">- '+chooseText+' -</option>');			            
            if(jQuery.isArray(data) && data.length > 0)
				$('#'+destId).removeAttr("disabled");
			else
				$('#'+destId).attr("disabled","disabled");                            
            if(jQuery.isArray(data)){
                $.each(data, function(i, value)
                {
                    $('#'+destId).append('<option value="'+value.id+'">'+value.name+'</option>');
                });
            }
        });
    },
    /**
     * Atžymimas skelbimas
     * @param adId Skelbimo ID
     */
    unmarkAd: function(adId)
    {
        $.getJSON(WEBROOT+'/'+LANG+'/ads/unmark/'+adId, function(data)
        {
            if(data != '-1')
            {
                $('#unmarkAdLink').hide();
                $('#markAdLink').show();
                $('.markedAdCount').html(data);
                $('#viewMarkCheckbox').attr('checked', '');
            }
        });
    },
    /**
     * Puslapiuojami komentarai
     * @param adId Skelbimo ID
     * @param page Puslapis
     */
    getComments: function(adId, page)
    {
        $.getJSON(WEBROOT+'/'+LANG+'/ads/getComments/'+adId+'/'+page, function(data)
        {
            $('#commentContainer').html(data);
        });
    },
     
    countExtraFormSum: function()
    {
        var sum = 0;
        var amount;
        $('select.ypatSkelbimas').each(function(){
            amount = priceMap[parseInt($(this).val())];
            sum += amount;
        });		
        return sum;
    }
};

$(function()
{
    $('#printMarkedLink').click(function()
    {
        var printMarkedWindow = window.open($('#printMarkedLink').attr('href'), 'printMarkedWindow', 'width=700, height=500, scrollbars=yes');
        printMarkedWindow.moveTo((window.screen.width-700)/2, (window.screen.height-500)/2);
        return false;
    });
    $('#sendMarkedLink').click(function()
    {
        var sendMarkedWindow = window.open($('#sendMarkedLink').attr('href'), 'sendMarkedWindow', 'width=300, height=150');
        sendMarkedWindow.moveTo((window.screen.width-300)/2, (window.screen.height-150)/2);
        return false;
    });
    $('#partnerPathField').focus(function()
    {
        $('#partnerPathStatus').html('');
    });
    $('#partnerPathField').blur(function()
    {
        ads.checkPartnerPath($('#partnerPathField').val(), $('#oldPartnerPathField').val());
    });
    $('select.ypatSkelbimas').change(function(){
        var formSum = ads.countExtraFormSum();        
        $('#cashUse').html(formSum.toString());		
		if(ads.countExtraFormSum() > cash)        
            $('#cashShortage').show();			
        else
			$('#cashShortage').hide();			
        
    });
});

var services = {
	
	paidCategoryServices : new Array(),
	
	load:function(categorySelectors,paidCategoryServices){
		this.paidCategoryServices = paidCategoryServices;
		jQuery(categorySelectors).each(function(){
			jObject = jQuery(this);
			if(jObject.val() > 0){
				var curIndex = categorySelectors.index(jObject);
				categorySelectors.filter(':not(:eq('+curIndex+'))').find('option[value="'+jObject.val()+'"]').remove();						
			}	
		});				
	},
	
	changeServiceCategory: function(element){				
		var jObj = jQuery(element);		
		var jObjVal = jObj.val();
		var jObjOldVal = jObj.attr('oldValue');		
		var dataSelectors = jObj.parents('form').find('select[name="'+jObj.attr('name')+'"]');				
		var curIndex = dataSelectors.index(element);																	
		if(jObjVal > 0)
			dataSelectors.filter(':not(:eq('+curIndex+'))').find('option[value="'+jObjVal+'"]').remove();										
		
		tdValue = this.paidCategoryServices[jObjVal]?'Galioja iki '+this.paidCategoryServices[jObjVal]:'';
		jObj.parents('tr:eq(0)').find('td:last').html(tdValue);		
		
		if(jObjOldVal > 0){
			var oldElement = jObj.find('option[value="'+jObjOldVal+'"]');						
			var prevOptions = dataSelectors.filter(':not(:eq('+curIndex+'))').find('option[value="'+oldElement.prev('option').val()+'"]');
			jQuery('<option value="'+oldElement.val()+'">'+oldElement.html()+'</option>').insertAfter(prevOptions);			
		}				
		if(curIndex+1 == dataSelectors.size() && jObjVal > 0){			
			var addRow = jObj.parents('tr:eq(0)').clone(true);						
			addRow.insertAfter(jObj.parents('tr:eq(0)'));
			var firtsElement = dataSelectors.eq(0).parents('tr:eq(0)').find('td:eq(0)');
			firtsElement.attr('rowspan',parseInt(firtsElement.attr('rowspan'))+1);											
			addRow.find('select[name="'+jObj.attr('name')+'"]').find('option[value="'+jObjVal+'"]').remove();
		} else if(jObjVal == 0 && dataSelectors.size() > 2 && curIndex != 0){	
			jObj.parents('tr:eq(0)').remove();
			var firtsElement = dataSelectors.eq(0).parents('tr:eq(0)').find('td:eq(0)');
			firtsElement.attr('rowspan',parseInt(firtsElement.attr('rowspan'))-1);										
		}								
	}
};

var singleAd = {		
	allowedActions:new Array("actionSendAd","actionCensorAd","actionCommentAd","actionComposeLetter"),	
	load:function(){
		var allowedActions = this.allowedActions;
		var self = this;		
		jQuery('[name="singleAd"]').each(function(){
			var parentElement = jQuery(this);
			jQuery.each(allowedActions,function(){
				var action = this;
				parentElement.find('[name="'+action+'"]').each(function(){
					if(self.bindAction(action,this)) 
						parentElement.show();	
					else jQuery(this).hide();	
				});				
			});			
		});
	},
	bindAction:function(functionName,element){				
		jQuery(element).bind('click',(function(event){			
			var action = jQuery(event.target).attr('name');			
			var argument = jQuery(event.target).attr('argument');			
			try{return this[action](event,new String(argument).split('|'));}catch(e){alert(e);jQuery(event.target).hide(); return false;}										
		}).bind(this));				
		return true;
	},
	actionSendAd:function(event,adId){
		var element = jQuery('<div style="text-align:center;"><img border="0" src="'+WEBROOT+'/images/preloader.gif"></div>');		
		jQuery.blockUI({message:element, css: {cursor: 'default'}});                        		
		jQuery.ajax({
            url: WEBROOT+'/'+LANG+'/ads/sendAdForm/'+adId,
			dataType: 'html',
            success: function(msg, status){               															
				jQuery(element).html(msg);				
            }
        }); 
		return false;
	},
	actionCensorAd:function(event,adId){
		var element = jQuery('<div style="text-align:center;"><img border="0" src="'+WEBROOT+'/images/preloader.gif"></div>');		
		jQuery.blockUI({message:element, css: {cursor: 'default'}});                        
		jQuery.ajax({
            url: WEBROOT+'/'+LANG+'/ads/censorAdForm/'+adId,
			dataType: 'html',
            success: function(msg, status){               				
				jQuery(element).html(msg);
            }
        }); 
		return false;		
	},
	actionCommentAd:function(event,adId){
		var element = jQuery('<div style="text-align:center;"><img border="0" src="'+WEBROOT+'/images/preloader.gif"></div>');		
		jQuery.blockUI({message:element, css: {cursor: 'default'}});                        
		jQuery.ajax({
            url: WEBROOT+'/'+LANG+'/ads/commentForm/'+adId,
			dataType: 'html',
            success: function(msg, status){               				
				jQuery(element).html(msg);
            }
        }); 
		return false;		
	},
	actionComposeLetter:function(event,adId){
		var element = jQuery('<div style="text-align:center;"><img border="0" src="'+WEBROOT+'/images/preloader.gif"></div>');		
		jQuery.blockUI({message:element, css: {cursor: 'default',top:'20%'}});                        
		jQuery.ajax({
            url: WEBROOT+'/'+LANG+'/ads/composeLetterForm/'+adId,
			dataType: 'html',
            success: function(msg, status){               				
				jQuery(element).html(msg);
            }
        }); 
		return false;
	}
};

Function.prototype.bind = function(arguments){
 if (arguments.length < 2 && Object.isUndefined(arguments[0])) return this;
    var __method = this, args = jQuery.makeArray(arguments), object = args.shift();
    return function() {
      return __method.apply(object, args.concat( jQuery.makeArray(arguments)));
    }
}