var ui_dad = {

	sortables_init 	: function(s){
		for(i=1; i<=4; i++){ (s == 'create' ? this.sortable_create(i) : this.sortable_destroy(i) ); }
	},
	
	sortable_create : function(j){
		Sortable.create('zone' + j,
			{
				tag:'div',
				dropOnEmpty: true, 
				overlap:'vertical', 
				constraint:false, 
				containment:['zone1','zone2','zone3','zone4'],
				handle:'move',
				scroll: window,
				onUpdate:function(){
					updateZones(j);
				}
			}
		);
	},
	
	sortable_destroy : function(j){
		Sortable.destroy( 'zone' + j );
	}

}


var Section = {
	
	getOptions : function(sid){

		// init vars

			var sectionContentDiv		= $('uiDadSection_content' + sid);

			var sectionHeadMenuBut		= $('sho' + sid);
			var sectionHeadTitle  		= $('uiDadSection_headTitle' + sid);
	
			var sectionOptionsDiv 		= $('uiDadSection_options' + sid);

			var requestDiv				= 'uiDadSection_options' + sid;
			var requestAction			= 'sectionGetOptions';
			var requestEngine 			= '/ui.html'; 


		// check if options div is visible

			// not visible so show

				if (sectionHeadMenuBut.alt == 'Afiseaza optiuni'){

					// do the request

						new Ajax.Updater(requestDiv, requestEngine, {
							
							parameters: { action: requestAction, section_id: sid },

							onComplete: function(){

								sectionOptionsDiv.show();
								
								sectionHeadMenuBut.alt = 'Inchide optiuni';
								
								var sectionOptionsEditTitle = $('uiDadSection_optionsEditTitle' + sid );
								
								sectionOptionsEditTitle.value = sectionHeadTitle.innerHTML;

								if( sectionContentDiv.style.display == 'none' ) {  sectionContentDiv.show() }	
							},
							
							method: 'post'
			
						});

				}


			// visible so hide

				else { sectionOptionsDiv.innerHTML = ''; sectionOptionsDiv.hide(); sectionHeadMenuBut.alt = 'Afiseaza optiuni'; }

	},
	
	update : function (sid, t){
		
		// init vars

			var rows   				= $('uiDadSection_optionsEditRows' + sid);	
			var title  				= $('uiDadSection_optionsEditTitle' + sid);
			var display				= $('uiDadSection_content' + sid);

			var sectionHeadMenuBut	= $('sho' + sid);
			var sectionHeadTitle 	= $('uiDadSection_headTitle' + sid);

			var requestDiv	 		= $('uiDadSection_content' + sid); 
			var requestAction 		= 'sectionUpdate'; 
			var requestEngine 		= '/ui.html'; 

			var sectionOptionsDiv 	= $('uiDadSection_options' + sid);


		// check vars

			var _rows  	 = ''; if (rows  != null) _rows  = rows.value;
			var _title 	 = ''; if (title != null) _title = title.value;
			var _display = 'block'; if (display.style.display != 'none' && t == 'minimize') _display = 'none';


		// do the request

			new Ajax.Request(requestEngine, {
			
				parameters: { action: requestAction, section: sid, rows: _rows, title: _title, display: _display },
						  
				onComplete: function(transport){
					if( t == 'replace' ) { requestDiv.innerHTML = transport.responseText; } else
					if( t == 'save'    ) { sectionOptionsDiv.hide(); sectionHeadMenuBut.alt = 'Afiseaza optiuni'; sectionHeadTitle.innerHTML = title.value; } else
					if( t == 'minimize') { if( _display == 'none' ) {  sectionOptionsDiv.hide(); requestDiv.hide(); } else { requestDiv.show(); } }
				},
				
				method: 'post'
			});

	},
	
	
	add : function(sid, contentType) {

		// init vars

			var old_content 		= $('zone1').innerHTML;

			var requestDiv	 		= 'zone1'; 
			var requestAction 		= 'sectionAdd'; 
			var requestEngine 		= '/ui.html'; 


		// show some activity to user

			if( contentType == 'category'){
				
				var quickAdd 	   = $('quickAdd');

				quickAdd.innerHTML = 'Se adauga...'; 


			}else{

				// modify add button

					var button 		= $('addContentButtonAdd' + sid);

					button.disabled = 'disabled';
					button.value    = 'Va rugam asteptati...';

			}




		// do the request

			new Ajax.Updater(requestDiv, requestEngine, {
				
				parameters: { action: requestAction, section: sid },

				insertion: Insertion.Top,

				onFailure: function(){ button.disabled = ''; button.value = 'Adauga'; },
				
				onComplete: function(){ updateZones(1); ui_dad.sortables_init('destroy'); ui_dad.sortables_init('create'); if( contentType == 'category'){ quickAdd.innerHTML = ''; }else{ button.value = 'Adaugat';} },

				method: 'post'
			  });	
	},
	
	del : function (sid, zone){

		if( confirm('Casuta va fi stearsa, sunteti sigur?') ) {
			
		var requestAction 		= 'sectionDel'; 
		var requestEngine 		= '/ui.html'; 

		// do the request

			new Ajax.Request(requestEngine, {
			
				parameters: { action: requestAction, section: sid },
						  
				onComplete: function(transport){
					$('uiDadSection_' + sid).remove(); ui_dad.sortables_init('destroy');ui_dad.sortables_init('create');updateZones(zone);
				},
				
				method: 'post'
			});
			
		}
	}
}



function addContent(e){

	// init vars

		var requestDiv	 		= 'tiny-tbox'; 
		var requestAction 		= 'addContent'; 
		var requestEngine 		= '/ui.html'; 

		var _search				= $('addContentSearch');

		//if ( _search.value != '' ) e = '';

	// do the request

		new Ajax.Updater(requestDiv, requestEngine, {
			
			parameters: { action: requestAction, letter: e, s: _search.value },

			method: 'get'
		  });	
}

// updateLayout()
function updateLayout(style,e){

	if(e) e.childNodes[0].checked = 'checked';
	
	new Ajax.Updater('uiDadMain','/ui.html',
		  {
			method:'post',
			evalScripts: true,
			parameters: { action: 'updateLayout', layout: style },
			onFailure: function(){ alert('Something went wrong...') }
		  });	
	
}

function jsonSections(s){
	s.each(
		   
		   function(v,i){

				new Ajax.Updater('uiDadSection_' + v[0],'/ui.html',
					  {
						method:'post',
						parameters: { action: 'json', q: 'sections', section: v[0], z: v[1] },
						onComplete: function(){
							if( s.length == ( i+1 ) ) { ui_dad.sortables_init('destroy');ui_dad.sortables_init('create');}
							
							//$('uiDadSection_' + v).down('div.uiDadSection_head').observe('click',showOptions);
							
							//$('uiDadSection_' + v).down('div.uiDadSection_head').observe('mouseout',showOptions);
		
							if(navigator.appName == 'Microsoft Internet Explorer') window.event.cancelBubble = true;
							},
						onFailure: function(){ alert('Something went wrong...') }
					  });	
			
			   
			   }
		   
		   );



}

// updateZones()
function updateZones(id){
	
	var zone = 'zone' + id;

	var send = Sortable.serialize(zone);

	var params = '?action=updateZones&zone=' + id + '&' + send;
	
	new Ajax.Request('/ui.html',
	  {
		method:'get',
		parameters: params,
		onFailure: function(){ alert('Something went wrong...') }
	  });	
}


function hideOptions(event) {
//  var element = event.element().next();
  
//  setTimeout(element.hide(), 5000);
}

function showOptions(event) {

	var element = event.element();

	var elm = Event.findElement(event, 'div');

	if( element.hasClassName('move') ) {
		
		
		var _optDiv = element.up('div.uiDadSection_head').down('div.uiDadSection_headOptions');

		Position.cumulativeOffset(element);
		Element.getDimensions(element);
	
		Position.cumulativeOffset(_optDiv);
		Element.getDimensions(_optDiv);
	
		if( Position.within(element, Event.pointerX(event), Event.pointerY(event)) || Position.within(_optDiv, Event.pointerX(event), Event.pointerY(event)) ) { _optDiv.show(); } else { _optDiv.hide(); }
		
		
		} return true;




//var optDiv = $(Event.element(event)).up('div.uiDadSection_head'); 
//
//	if(typeof(optDiv) == 'object' && !element.hasClassName('uiDadSection_headOptions')){
//		_optDiv = optDiv.down('div.uiDadSection_headOptions');
//
//		Position.cumulativeOffset(element);
//		Element.getDimensions(element);
//	
//		if(Position.within(element, Event.pointerX(event), Event.pointerY(event)) ) { _optDiv.show(); } else { _optDiv.hide(); }
//	}

//$$('div.uiDadSection_head').each( function(e){alert(e);} )
//Event.observe(window, 'load',ui_dad.sortables_init('create'));
}

