/* 27Jan2012 */
/**
 * Manage Class
 *
 * Handles managing add/edit
 *
 * @package tgl
 */
var xswfu;

var Manage = {
  errors: [],
  checkFormCalls: [],
	swfuList: [],
	upCount:0,
	
	currentAction: null,

  load: function()
  {
		//alert('manage load');
		$('.storelogo').each(function(el){
			//alert('inserting logo uploader');			
			Manage2.insertUploader2('Logo');
		});
		$('.storelogo2').each(function(el){
			//alert('inserting logo uploader');			
			Manage2.insertUploader2('Logo2');
		});
		/*
		$('.libraryUploadervideo').each(function(el){
			//alert('inserting logo uploader');			
			Manage2.insertUploader2('VideoLinker');
		});
		$('.libraryUploaderaudio').each(function(el){
			//alert('inserting logo uploader');			
			Manage2.insertUploader2('AudioLinker');
		});
		$('.libraryUploaderphoto').each(function(el){
			//alert('inserting logo uploader');			
			Manage2.insertUploader2('PhotoLinker');
		});
		$('.libraryUploaderliterature').each(function(el){
			//alert('inserting logo uploader');			
			Manage2.insertUploader2('PhotoLinker');
			//Manage2.insertUploader2('Literature');
		});
		*/


		return;	//EARLY EXIT

/*
		if ($('channelPrice')){
			this.observeChannels();
		}
		

		
    var form = $$('form.manageForm')[0];
    
    //Current
		if(form){
			this.currentAction = form.readAttribute('action');		
		}
		
		this.upCount=0;

	  $$('span[id^=spanButtonPlaceholder]').each(function(el){
			 var target = el.readAttribute('id');															 
			 var swfType = el.readAttribute('swfType');															 
			 index = target.substring(21,target.length);
																							 
		 if(swfType=='image'){		
				Manage.init_uploader(index);
			}else{
				 Manage.init_uploaderFile(index);
		 }
	 });
	
*/

},

  
	//--------------------------------------------- SWF uploader interface code ----------------------------------------------
	

//var swfu:,
 init_uploader:  function(index) {
	 //alert('init_uploader:'+index);
	 
			this.swfuList[index] =  new SWFUpload({
				// Backend settings
				upload_url: upload_url,						//cpo WAS "upload.php",
				file_post_name: "Filedata",

				// Flash file settings
				file_size_limit : "2 MB",
				file_types : "*.gif;*.png;*.jpg;*.jpeg",			// or you could use something like: "*.doc;*.wpd;*.pdf",
				file_types_description : "All Files",
				file_upload_limit : "0",
				file_queue_limit : "1",

				// Event handler settings
				swfupload_loaded_handler :  swfUploadLoaded,
				
				file_dialog_start_handler: fileDialogStart,
				file_queued_handler : fileQueued,
				file_queue_error_handler : fileQueueError,
				file_dialog_complete_handler : fileDialogComplete,
				
				//upload_start_handler : uploadStart,	// I could do some client/JavaScript validation here, but I don't need to.
				upload_progress_handler : uploadProgress,
				upload_error_handler : uploadError,
				upload_success_handler : uploadSuccess,
				upload_complete_handler : uploadComplete,

				// Button Settings
				button_image_url : button_image_url,										//cpo WAS "XPButtonUploadText_61x22.png",
				button_placeholder_id : "spanButtonPlaceholder"+index,
				button_width: 61,
				button_height: 22,
				
				// Flash Settings
				flash_url : swfupload_url,														//cpo WAS "../swfupload/swfupload.swf",

				custom_settings : {
					progress_target : "fsUploadProgress"+index,
					txt_filename : "txtFileName"+index,						
					hidfileid : "hidFileID"+index,								 
					asset_filename : "Asset"+index+"Swfname",													 
					upload_successful : false
				},
				
				// Debug settings
				debug: false
			});
	 //alert('init_uploader EXIT');	 
},

	
 init_uploaderFile:  function(index) {
	 //alert('init_uploader:'+index);
	 
			this.swfuList[index] =  new SWFUpload({
				// Backend settings
				upload_url: upload_url,						//cpo WAS "upload.php",
				file_post_name: "Filedata",

				// Flash file settings
				file_size_limit : "2 MB",
				file_types : "*.*",			// or you could use something like: "*.doc;*.wpd;*.pdf",
				file_types_description : "All Files",
				file_upload_limit : "0",
				file_queue_limit : "1",

				// Event handler settings
				swfupload_loaded_handler :  swfUploadLoaded,
				
				file_dialog_start_handler: fileDialogStart,
				file_queued_handler : fileQueued,
				file_queue_error_handler : fileQueueError,
				file_dialog_complete_handler : fileDialogComplete,
				
				//upload_start_handler : uploadStart,	// I could do some client/JavaScript validation here, but I don't need to.
				upload_progress_handler : uploadProgress,
				upload_error_handler : uploadError,
				upload_success_handler : uploadSuccess,
				upload_complete_handler : uploadComplete,

				// Button Settings
				button_image_url : button_image_url,										//cpo WAS "XPButtonUploadText_61x22.png",
				button_placeholder_id : "spanButtonPlaceholder"+index,
				button_width: 61,
				button_height: 22,
				
				// Flash Settings
				flash_url : swfupload_url,														//cpo WAS "../swfupload/swfupload.swf",

				custom_settings : {
					progress_target : "fsUploadProgress"+index,
					txt_filename : "txtFileName"+index,						
					hidfileid : "hidFileID"+index,								 
					asset_filename : "Asset"+index+"Swfname",													 
					upload_successful : false
				},
				
				// Debug settings
				debug: false
			});
	 //alert('init_uploader EXIT');	 
},
	
	
	
	//------------------------------------------- END SWF uploader interface code  -------------------------------------------
	
  assetCount:0,

  addAnother: function(type)
  {
		
    var assetTemplateId = 'timetableRecord'+this.assetCount;
    //Get first template, replicate and replace fields
		var templateObj = $$('div[id^=timetableRecord]')[0];
    
    var template = templateObj.innerHTML;
    var templateId = templateObj.id.replace('timetableRecord','');
    var sRegExNames = new RegExp("Timetable"+templateId, "g");
    template = template.replace(sRegExNames,"Timetable"+this.assetCount);
    
//    var sRegExIds = new RegExp("data\\[Timetable\\]\\["+templateId+"\\]", "g");
    var sRegExIds = new RegExp("data\\[Course\\]\\[timetable\\]", "g");
		
//    template = template.replace(sRegExIds,"data[Course][timetable]["+this.assetCount+']');
    template = template.replace(sRegExIds,"data[Course][timetable"+this.assetCount+']');
    
    template = '<div id="'+assetTemplateId+'">'+template+'</div>';
//	  alert(template);    
    
   $('timetable').insert(template);
//	  alert($('timetable').innerHTML);    
    
    //Clear values
/*		
    $(assetTemplateId).select('input[type!="hidden"]').each(function(el){
      el.value = '';
    });
    
    $('Timetable'+this.assetCount+'Id').value = '0';
*/    
    this.assetCount++;		

  },	
	
	
  
  addCheckForm: function(call)
  {
    this.checkFormCalls[this.checkFormCalls.length] = call;
  },
  
  
  checkForm: function(form)
  {
		//alert('manage.checkForm');
		
		
    this.errors = [];
    var errorFirst = '';
    var self = this;
    
    
    //
    for(var ii=0; ii < this.checkFormCalls.length; ii++)
    {
      eval(this.checkFormCalls[ii]+'();');
    }
    
	
    //Check channels
    var checkBWrap = document.getElementById("channelInputs");
    if(checkBWrap)
    {
      var inpts = checkBWrap.getElementsByTagName("input");
      var chck = 0;
      
      for (i=0; i < inpts.length; i++)
      {
        if (inpts[i].type == "checkbox")
        {
          if (inpts[i].checked)
          {
            chck = chck + 1; 
          }
        }
      }
  
      if (chck == 0)
      {
        this.addFormError('Please choose at least one channel');
      }
    }
		
	

    //Check required
		var priceCount=0;
		var priceSkip = false; 
//    $(form).select('[rel~="required"]').each(function(index,DItem){
    $('[rel~="required"]').each(function(index,DItem){
      if(!$(this).val())
      {
        if(!errorFirst) { errorFirst = DItem; }

//        var label = $(this).attr('relLabel');
        var label = $(this).attr('rellabel');


        label = label.replace(/(<([^>]+)>)/ig,""); 
													
				priceSkip = false;
				var isPriceLabel =	label.substr(0,5);
				if (isPriceLabel =='Price'){
					label = 'Price for this item';															
					priceCount++;
					if (priceCount>1) priceSkip = true;
					if (priceSkip)																		 
            self.addFormError('Please enter a '+label);
				}else{
					if (label.substr(0,1) == 'A'){																	 
						 self.addFormError('Please enter an '+label);
					 }else{
						 self.addFormError('Please enter a '+label);
					 }
				}
			}
    });
    
	
	// Check that were on the Product Add/Edit page
	if (document.getElementById("ProductsProductAddEdit"))
	{
		if (document.getElementById("price").value=="")
		{
		  this.addFormError('Please enter Pound price');
		}
		
		if (document.getElementById("credit").value=="")
		{
		  this.addFormError('Please enter \'L\' price');
		}
		
		/*
		var deliveryOptions = document.getElementsByClassName("deliveryOptions");
		if (deliveryOptions)
		{		
			var inputs = deliveryOptions; 
			var chck = 0;
			
			for (i=0; i < deliveryOptions.length; i++)
			{
				if (deliveryOptions[i].type == "checkbox")
				{
				  if (deliveryOptions[i].checked)
				  {
					chck = chck + 1; 
				  }
				}
			}
		  
			if (chck == 0)
			{
	          this.addFormError('Please choose at least one delivery option');
			}
		}*/
	}
	
	
	
    //Check max words
    $(form).select('[rel~="max100"]').each(function(index){
      var y = $(this).val();
      var words = y.replace(/\s/g,' ').split(' ').length;
    
      if(words > 100)
      {
        if(!errorFirst) { errorFirst = this; }
        self.addFormError('Keywords is too long. Max 100 words');
      }
    });
    
		
		
		// id AddressPostCode
		// id AddressCountryId selected 232
		//alert($('AddressPostCode').value);
		//alert($('AddressCountryId').value);
		//alert($('AddressCountryId').options[$('AddressCountryId').selectedIndex].value);
/*
		if (($('#AddressCountryId') != null) && ($('#AddressCountryId').val()==232)){
			var postcodeRegEx = /[A-Z]{1,2}[0-9]{1,2} ?[0-9][A-Z]{2}/i;
			var p = $('AddressPostCode').value;
			if( postcodeRegEx.test(p)){
				
			}else{
        self.addFormError('Postcode is invalid');			
			}
			
			
		}
*/		
		
		
    if(this.errors.length > 0)
    {
      //Focus on first error
      if(errorFirst)
      {
        $(errorFirst).focus();
      }
      
      //Alert errors
      alert(this.errors.join("\n"));
      return false;
    }
    
    return true;
  },
  
	
	//-------------------------
	
	
	
	
 checkPostcode: function(form)
  {
		alert('manage.checkPostcode');
		
		
    this.errors = [];
    var errorFirst = '';
    var self = this;
    
	
		if (($('AddressCountryId') != null) && ($('AddressCountryId').value == 232)){
			var postcodeRegEx = /[A-Z]{1,2}[0-9]{1,2} ?[0-9][A-Z]{2}/i;
			var p = $('AddressPostCode').value;
			if( postcodeRegEx.test(p)){
				
			}else{
        self.addFormError('Postcode is invalid');			
			}
			
			
		}
		
		
		
    if(this.errors.length > 0)
    {
      //Focus on first error
      if(errorFirst)
      {
        errorFirst.focus();
      }
      
      //Alert errors
      alert(this.errors.join("\n"));
      return false;
    }
    
    return true;
  },	
	
	//-------------------------
  
  addFormError: function(text)
  {
    this.errors[this.errors.length] = text;
  },
  
  
  deleteAsset: function(controller,recordId,assetId,type,controlObj)
  {
    if(!type) { type = 'record'; }
    
    var answer = confirm('Are you sure you want to delete this '+type+'?');
    
    if(answer)
    {
      var url = '/manage/'+controller+'/deleteAsset/'+recordId+'/'+assetId;
      
      new Ajax.Request(url,{
        onSuccess: function()
        {
          if($(controlObj))
          {
            $(controlObj).hide();
          }
        }
      });
      
    }
    
    return false;
  },
  


	
	
  addProForma: function(id)
  {
    var proForma = new Array("Name:",
      "Personal Details:",
      "Address:",
      "Telephone:",
      "Mobile No:",
      "Age:",
      "Date of Birth:",
      "Marital Status:",
      "Education and Qualifications:",
      "School:",
      "Work Experience:",
      "Position:",
      "Duties:",
      "Position:",
      "Duties:",
      "Position:",
      "Duties:",
      "Personal Qualities:",
      "Interests and Other Information:",
      "References:"
    );
  
    $(id).value = proForma.join("\n\n");
  },
  
  
  observeChannels: function()
  {
    var self = this;
  
    $$('div#channelInputs input').each(function(i){
      i.observe('click',function(e){						//cpo was change  n ie call on change but ie need to lose focus for change to work
        self.updateChannelPrice();
      });
    });
    
    this.updateChannelPrice();
  },
  
  
  updateChannelPrice: function()
  {
    var count = 0;
    var channelPrice = 0;
    var channelPriceTotal = 0;
    
    $$('div#channelInputs input').each(function(i){
      if(i.checked)
      {
        count++;
      }
    });
    
    if(count > 0)
    {
      channelPrice = this.channelFirst + (count - 1) * this.channelAdditional;
    }
    
    channelPriceTotal = channelPrice * this.weeksInYear;
    
    $('channelPrice').innerHTML = formatCurrency(channelPrice);
    $('channelPriceTotal').innerHTML = formatCurrency(channelPriceTotal);
  },
  
  
  preview: function(type)
  {
    if ((type=="Offer")||(type=="Product")||(type=="Traderoom"))
		{
			var state = this.checkForm(document.forms[0]);
			if (state==false) {
				return false;
			}
		}
	
		if(!$('form.manageForm'))
    {
      alert('Sorry, there was an internal problem previewing this record');
      return;
    }
  
    var form = $('form.manageForm')[0];
    
    //Current
//    var currentAction = form.attr('action');
    var currentAction = $('form.manageForm').attr('action');    
		//alert(currentAction);


    //Set
    $('form.manageForm').attr("action", "/manage/datas/preview/"+type);
    $('form.manageForm').attr("target", "preview");
    
	  window.open("/manage/datas/preview/"+type,"preview","status=1,width=720,height=400,scrollbars=1"); 
    
		//   form.submit();						// original submit the form for preview, then data fields are passwd directly to view ignoring the database
		//doSubmit();									// version for swfupload image in the background
		doSubmitPreview();
		
		
    //Set back
    $('form.manageForm').attr("action", currentAction);
    $('form.manageForm').attr("target", "");


		document.getElementById('btnSubmit').disabled=false;

    //form.serialize()
  },
  
  
  shipping_function: function()
  {
	var traderoom_id=document.getElementById('TraderoomsTraderoomId').value;	
	var number_of_delivery_options=document.traderoom.deliveryOptions.length;
	var delivery_selected=false;

	for (var i=0;i!=number_of_delivery_options;i++)
	{
		if (document.traderoom.deliveryOptions[i].checked==true) 
		{ 
			delivery_selected=true; 
			break;
		}
		else { 
			delivery_selected=false; 
		}
	}
	
	if (delivery_selected==true)
	{
		//document.getElementById('btnSubmit').disabled=false;
				
		//window.open("/traderooms/view/"+traderoom_id+"?preview","preview","status=1,width=760,height=550,scrollbars=1"); 
		return true;
	}
	else
	{
		alert("Delivery option not selected");
		return false;
		
	}

  },
  
  
  payment_function: function()
  {
	var traderoom_id=document.getElementById('TraderoomsTraderoomId').value;	
	var number_of_payment_options=document.payment.deliveryOptions.length;
	var payment_selected=false;
	
	for (var i=0;i!=number_of_payment_options;i++)
	{
		if (document.payment.deliveryOptions[i])
		{
			if (document.payment.deliveryOptions[i].checked==true) 
			{ 
				payment_selected=true; 
				break;
			}
			else { 
				payment_selected=false; 
			}
		}
	}
	
	if (payment_selected==true)
	{
		//alert("delivery selected");
		document.getElementById('btnSubmit').disabled=false;
		
		window.open("/traderooms/view/"+traderoom_id+"?preview","preview","status=1,width=760,height=550,scrollbars=1"); 

		//window.open("/payments/view/"+traderoom_id,"preview","status=1,width=720,height=400,scrollbars=1"); 
	}
	else
	{
		alert("You must select at least one payment option!");
		//document.getElementById('btnSubmit').disabled=false;
	}
  }
  
}

///
//document.observe("dom:loaded", function() { Manage.load(); });
//


$(document).ready(function()
{
	Manage.load();
}
);

