/*javascript for all pages*/

$(document).ready(function(){
	
	//asset behaviour
	assetBehaviour.init();
	
	//lightbox
	divLayer.init();
	
	//adding nice bits to user interface
	niceUI.init();
	
	//datepick
	datepicker.init();
	

        
});




/*triggers various datepickers*/
var datepicker = {
	init: function () {

		//$("input#f_date").datepicker({minDate: -20, maxDate: '+1M +10D'});
		
		/*datepicker on stats page*/
		$("input#f_date").datepicker({showOn: 'button', buttonImage: 'http://forums.theeca.com/images/misc/calendar_icon.gif', buttonImageOnly: true, dateFormat: 'dd/mm/yy'});
		$("input#t_date").datepicker({showOn: 'button', buttonImage: 'http://forums.theeca.com/images/misc/calendar_icon.gif', buttonImageOnly: true, dateFormat: 'dd/mm/yy'});


		/*datepicker on my-promotion page*/
		$("input#promo_start").datepicker({showOn: 'button', buttonImage: 'http://forums.theeca.com/images/misc/calendar_icon.gif', buttonImageOnly: true, dateFormat: 'dd/mm/yy'});
		$("input#promo_end").datepicker({showOn: 'button', buttonImage: 'http://forums.theeca.com/images/misc/calendar_icon.gif', buttonImageOnly: true, dateFormat: 'dd/mm/yy'});
				
		
	}
}


var niceUI = {
	init: function () {

	//highlight to rows -start-
	$("a.promoLink").click(function(){
		$(this).parent().parent().addClass('act');
	});
	
	$('#fancy_close').click (function(){
		$('tr.act').removeClass('act');
	})
	//highlight to rows -end-
	
	}
}


var divLayer = {
  init: function () {
  
  	/*$(document).pngFix();*/
			
			$("a#inspiration").fancybox({
				'hideOnContentClick': true,
				'frameWidth': '400',
				'frameHeight': '100'				
			});
			
			$("a#videoTour").fancybox({
				'hideOnContentClick': true,
				'frameWidth': '620',
				'frameHeight': '377'				
			});	
			
			$("a#accountDetails").fancybox({
				'hideOnContentClick': false,
				'frameWidth': '300',
				'frameHeight': '400'				
			});	
			
			$("a#howItWorks").fancybox({
				'hideOnContentClick': true,
				'frameWidth': '482',
				'frameHeight': '246'				
			});	
					
			
			/*$("a.promoLink").fancybox({
				'hideOnContentClick': false
			});*/
			
  }
}


/**/
var assetBehaviour = {
	
    init: function() {
	 
	  $('#tabMyPromotionMessage').click(function(){$(this).hide()});

	  /*change asset quantity*/
	  $('select.assetQuantity').change(function() {
	  	
		var dropDown = $(this).attr('id').toString();		
		 
		var pattern = new RegExp('quantity-','g');
		
		assetId = dropDown.replace(pattern, ''); 	   	  	
		
			quantity = $(this).children("[@selected]").attr('value');
				
          		  	
			url = 'assets/update-asset-session';		
			data = 'id=' + assetId + '&quantity=' + quantity;		
			
			$.ajax({
				method: 'POST',
				url: url,
				data: data,
				success: function(html){
			
					if (html) {
						//alert(html);		
					} else {
						//alert('Sorry, an error occured. The quantity of this item could not be changed');
					}
					
				}
			});	  	
	  	
	  })
	  

	/*remove asset from "my promotion"*/  
  	$('button.removeAsset').click(function() {
	  	var button = $(this).attr('id').toString(); 	  			 	  
		var pattern = new RegExp('button-','g');
		
		assetId = button.replace(pattern, ''); 
		
		url = 'assets/remove-asset-session';
		data = 'id=' + assetId;		
			
	 	  	$.ajax({
				method: 'POST',
				url: url,
				data: data,
				success: function(countAssets){
		
					if (countAssets) {
						$('#button-' + assetId).parent().hide();
						
						if (countAssets == 0) {
							$('#noItems').show();
							$('#hundretTicketMatch').hide();
						}
								
					} else {
						alert('sorry, the item could not be removed');
					}
					
				}
			});	 	
		 	
	  })
	  
	  
	  /*add asset to "my promotion"*/
 	  $('button.assetButton').click(function() {
 	  	
		var button = $(this).attr('id').toString(); 	  			 	  
		var pattern = new RegExp('button-','g');
		
		assetId = button.replace(pattern, ''); 	   	  	
		quantity = $('#quantity-' + assetId).val();
		
		
		//if item needs to be added 	
 	  	if ($(this).hasClass('notInBasket')) {
 	  		
 	  		$(this).removeClass('notInBasket');	
 	  		
			url = 'assets/add-asset-session';
			data = 'id=' + assetId + '&quantity=' + quantity;		
			
	 	  	$.ajax({
				method: 'POST',
				url: url,
				data: data,
				success: function(html){
		
					if (html) {
						
						$('#tabMyPromotionMessage').animate({ height: 'show', opacity: 'show' }, 'slow');
						
					} else {
						alert('Sorry, an error occured. The item could not be added');
					}
					
				}
			});		 		
 	  	
		//if item needs to be deleted			
 	  	} else {
 
 	  		$(this).addClass('notInBasket');	
 
			url = 'assets/remove-asset-session';
			data = 'id=' + assetId;		
			
	 	  	$.ajax({
				method: 'POST',
				url: url,
				data: data,
				success: function(html){
		
					if (html) {
						$('#quantity-' + assetId).unbind('mouseup');
					} else {
						alert('sorry, the item could not be removed');
					}
					
				}
			});	 	  		
 	  		
 	  		
 	  	}
	
	  })		   

   }
};

var App = {};

App.updatePromoStatus = function(promo_id, status) {
	
	$('#dialog').remove();
		
	var row = $('#row-' + promo_id);
	var tdStatus = $('#row-' + promo_id + '> td.status');
	var tdReject = $('#row-' + promo_id + '> td.reject');
	var tdApprove = $('#row-' + promo_id + '> td.approve');
	var tdWait = $('#row-' + promo_id + '> td.wait');
	var imgWait = $('#row-' + promo_id + '> td.wait > img');	

	if (status == 'rejected') {
		var confirm = '<tr id="dialog"><td colspan="6"><form id="reasonForm" style="float:right; width:310px;margin-left:10px; text-align:right;"><textarea id="reason" style="width:280px;" class="required" /><button  style="float:right;" id="cancel" class="fir cancel png">Cancel</button><button type="submit"  style="float:right;" id="confirm" class="fir update-status png">Update status</button></form>Please give a reason for rejection:</td></tr>';
	}
	if (status == 'approved') {
		var confirm = '<tr id="dialog"><td colspan="6"><form id="reasonForm" style="float:right;text-align:right;"><span>Are you sure you want to approve this promotion?</span><button id="cancel" class="fir cancel png" style="float:right;">Cancel</button><button id="confirm" class="fir update-status png" style="margin-left:-5px;position:relative;float:right;">Update status</button></form></td></tr>';
	}
	
	$(row).after(confirm);
	

	$('#cancel').click(function(){
		$('#dialog').remove();
	})	
	
	$('#confirm').click(function(){	
		
		$("#reasonForm").click (function() {return false;});
		
		$("#reasonForm").validate({		
			debug: false,	
			errorElement: 'em'			
		});	
		
		$reasonFormValid =  $("#reasonForm").validate().form();

		if ($reasonFormValid) {

			var reason = $("#reason").val(); 
		
			$('#promo_update_btn_'+ promo_id).attr("value", "Updating");
			$('#promo_update_btn_'+ promo_id).attr("disabled", true);
			$(imgWait).show();
	
			var data = {promo_id:promo_id, status:status, reason:reason};
			
			$.ajax({
				method: 'POST',
				url: 'ajax/update-promotion-status',
				data: jQuery.param(data),		
				success: function(html){
					if (html=="true") {		
						$(tdReject).replaceWith('<td colspan="3" >Status has been changed</td>'); //done this way because setting colspan is buggy
						$('#row-' + promo_id + '> td').animate({ backgroundColor: '#e5eed7' }, 'slow');								
						$(tdStatus).html('<strong>'+status+'</strong>');
						$(tdApprove).remove();
						$('#dialog').remove();
						$(tdWait).remove();				
						$(imgWait).hide();		
					} else {
						alert('Status NOT changed');
					}
					$('#promo_update_btn_'+promo_id).attr("value", "Update");
					$('#promo_update_btn_'+promo_id).attr("disabled", false);
				}
			});		
		}
	})
};


App.uploadReport = {
	checkForm: function (promotionId) {

			/*customize jquery form validator*/
			$('#uploadReport-' + promotionId).validate({					
				debug: false,					
				errorElement: 'em'
			})		
		
	}
};

App.initTabs = function() {
	var names = ["Promotions", "Assets"];
	var values = ["promotions_tab", "assets_tab"];
	var tabs = new AW.UI.Tabs;
	tabs.setId("dataTabs");
	tabs.setItemText(names);
	tabs.setItemValue(values); // store ids of content DIVs
	tabs.setItemCount(2);
	tabs.refresh();

	tabs.onSelectedItemsChanged = function(selected){

		var i, divs = document.getElementById("dataContent").childNodes;

		for(i=0; i<divs.length;i++){
			if (divs[i].style) {
				divs[i].style.display = "none"; // hide all elements
			}
		}

		var index = selected[0];
		$('#'+this.getItemValue(index)).show();
	};

	tabs.setSelectedItems([0]); // load the first page.
	
};

App.getAssetDetails = function(obj, promo_id) {
	var imgWait = $('#imgWait-'+promo_id+'> img');	
	$(imgWait).show();
	
	$.ajax({
		method: 'POST',
		url: '/ajax/get-assets-assoc',
		data: jQuery.param({promo_id:promo_id}),		
		success: function(html){
			$("#assets-details-"+promo_id).html(html);
			$(imgWait).hide();
			$(obj).fancybox({'hideOnContentClick': false, 'directClick': true});
		}
	});
};

App.getReportImages = function(obj, images, promo_id) {
	
	if (!images) {
		$(obj).fancybox({'hideOnContentClick': false, 'directClick': true });
		return;
	}
	
	var imgWait = $('#imgWait-'+promo_id+'> img');	
	$(imgWait).show();
	
	$.ajax({
		method: 'POST',
		url: '/ajax/get-report-images',
		data: jQuery.param({images:images}),		
		success: function(html){
			$("#reports-images-"+promo_id).html(html);
			$(imgWait).hide();
			$(obj).fancybox({'hideOnContentClick': false, 'directClick': true});
		}
	});

};
