/*
	SITE PLATFORM v1.3
	built by AntalMedia (www.antalmedia.com)
	built on Mootools v1.11 (http://www.mootools.net)
	
	copyright 2008. all rights reserved.
	
	HOW TO ADD TO THE SITE OBJECT
	Object.extend(Site, {
		added_function: function() {
			alert('added');
		}
	});
		$$('#project_category_list a').each(function(anchor){
	anchor.addEvents({
		'click'     : function(e){ new Event(e).stop(); },
		'mouseup'   : function(e){ new Event(e).stop(); },
		'mousedown' : function(e){ new Event(e).stop(); }
	});
})
	mySortable = Sortables.extend( {
	attach: function(){
		this.handles.each(
			function(handle, i)
			{
				var links = handle.getElementsByTagName('a');
				var temp = this.bound.start[i];
				for(var j = 0; j < links.length; j++)
				{
					$(links[j]).addEvent('mouseenter', function() { handle.removeEvent('mousedown', temp); } );
					$(links[j]).addEvent('mouseleave', function() { handle.addEvent('mousedown', temp); } );
				}
				handle.addEvent('mousedown', temp);
			}, this);
	}
});
*/

var cur_li = '';
var cur_el = '';

var Site = {
	
	pageDomReady: function() {
		Site.blurAllLinks();
		Site.setupProjectSlides();
	},
	pageLoaded: function () {
		Site.setupFocus();
		Site.setupAjaxActions();
		Site.add_project_photo();
		Site.setupEmployeeFilesSorting();
		Site.checkProjectFiles();
	},
	setupFocus: function() {
		if ( $('frmLogin_username') ) {
			$('frmLogin_username').focus();
		}
	},
	preloadImages: function () {
		var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
		var i,j=d.MM_p.length,a=Site.preloadImages.arguments; for(i=0; i<a.length; i++)
		if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
	},
	scrollCheck: function() {
		if ( $('scrollsTo') && $('scrollsTo').value ) Site.scrollsTo($('scrollsTo').value);
	},
	blurAllLinks: function() {
		$$('a').each(function(aLink) {
			aLink.addEvent('focus', function(){ aLink.blur(); });
		});
	},
	scrollsTo: function( pageAnchor ) {
		anchorScroll.toElement($(pageAnchor));
		 return false;
	},
	setupAjaxActions: function() {
		/*$$('.ajax_project_user_detail_link').each(function(li){
			var link = li.getElement('a');
			link.addEvent('click', function(e) {
				e = new Event(e).stop();
				$('ajax_project_user_detail').addClass('ajax-loading');
				$$('#top_main_nav li').each(function(li) {
					li.removeClass('top_main_nav_selected');
				});
				$('manage_users_li').addClass('top_main_nav_selected');
				new Ajax(this.href, {
					method: 'get',
					update: $('ajax_project_user_detail'),
					onComplete: function() {
						Site.setupProjectSlides();
						$('ajax_project_user_detail').removeClass('ajax-loading');
					}
				}).request();
			});
		});*/
		//
		if ( $('add_project_user') && $('ajax_project_user_detail') ) {
			$('add_project_user').addEvent('click', function(e) {
				e = new Event(e).stop();
				Site.ajaxNewProjectUser();
				$$('#top_main_nav li').each(function(li) {
					li.removeClass('top_main_nav_selected');
				});
				$('add_user_li').addClass('top_main_nav_selected');
			});
		}
		/*
		$$('li.ajax_project_category_link').each(function(li){
			var link = li.getElement('a');
			link.addEvent('click', function(e) {
				e = new Event(e).stop();
				Site.clearProjectCategoryActives();
				li.addClass('left_sidebar_nav_selected');
				new Ajax(this.href, {
					method: 'get',
					update: $('middle_content')
				}).request();
			});
		});
		*/
		
	},
	setupProjectFilesSorting: function() {
		if ( $('project_category_list_sort') ) {
			var mySortables = new Sortables('project_category_list_sort', {
				//revert: { duration: 500, transition: 'elastic:out' },
			});
			$$('.file_name, .file_controls').each(function(anchor){
				anchor.addEvents({
					//'click'     : function(e){ new Event(e).stop(); },
					'mouseup'   : function(e){ new Event(e).stop(); },
					'mousedown' : function(e){ new Event(e).stop(); }
				});
			});
			$$('.file_name a').each(function(anchor){
				anchor.addEvents({
					'click'     : function(e){ new Event(e).stop(); window.location = this.href;  }
				});
			});
		}
	},
	setupEmployeeFilesSorting: function() {
		if ( $$('.employee_category_list_sort') && $('Human_Resources_list_sort') && $('Travel_list_sort') && $('Jobsite_Forms_list_sort') && $('Phone_Lists_list_sort') ) {
		
			var mySortables_1 = new Sortables('Human_Resources_list_sort', {});
			var mySortables_2 = new Sortables('Travel_list_sort', {});
			var mySortables_3 = new Sortables('Jobsite_Forms_list_sort', {});
			var mySortables_4 = new Sortables('Phone_Lists_list_sort', {});
			
			$$('.file_name, .file_controls').each(function(anchor){
				anchor.addEvents({
					//'click'     : function(e){ new Event(e).stop(); },
					'mouseup'   : function(e){ new Event(e).stop(); },
					'mousedown' : function(e){ new Event(e).stop(); }
				});
			});
			$$('.file_name a').each(function(anchor){
				anchor.addEvents({
					'click'     : function(e){ new Event(e).stop(); window.location = this.href;  }
				});
			});
		}
	},
	ajaxLoadUserForm: function(el,url) {
		$('ajax_project_user_detail').addClass('ajax-loading');
		var td = $(el).getParent();
		var tr = $(td).getParent();
		$$('.ajax_project_user_detail_link').each(function(tr) {
			tr.removeClass('selected_user');
		});
		tr.addClass('selected_user');
		
		new Ajax(url, {
			method: 'get',
			update: $('ajax_project_user_detail'),
			evalScripts: true,
			onComplete: function() {
				$('ajax_project_user_detail').removeClass('ajax-loading');
			}
		}).request();
	},
	ajaxLoadProjectCategory: function(el,url) {
		Site.clearProjectCategoryActives();
		cur_el = el;
		cur_li = $(el).getParent();
		cur_li.addClass('left_sidebar_nav_selected');
		new Ajax(url, {
			method: 'get',
			update: $('middle_content'),
			onComplete: function() {
				Site.add_project_file();
				Site.setupProjectFilesSorting();
			}
		}).request();
	},
	ajaxRemoveFile: function(file_id, msg) {
		if ( confirm(msg) ) {
			new Ajax('/res/actions/ajax/remove_project_file.php?file_id='+file_id+'&date='+Date(), {
				method: 'get',
				update: $('project_status_bar'),
				evalScripts: true
			}).request();
		}
	},
	ajaxRemoveEmployeeFile: function(file_id, msg) {
		if ( confirm(msg) ) {
			new Ajax('/res/actions/ajax/remove_employee_file.php?file_id='+file_id+'&date='+Date(), {
				method: 'get',
				update: $('status_bar'),
				evalScripts: true
			}).request();
		}
	},
	clearProjectCategoryActives: function() {
		$$('li.ajax_project_category_link').each(function(li){
			li.removeClass('left_sidebar_nav_selected');
		});
	},
	ajaxNewProjectUser: function() {
		$('ajax_project_user_detail').addClass('ajax-loading');
		new Ajax('/res/actions/ajax/project_user_form.php?date='+Date(), {
			method: 'get',
			update: $('ajax_project_user_detail'),
			onComplete: function() {
				Site.setupProjectSlides();
				$('ajax_project_user_detail').removeClass('ajax-loading');
			}
		}).request();
	},
	ajaxNewProject: function() {
		$('project_status_bar').setHTML('<span class="project_action_message"><img align="absmiddle" src="/lib/images/spinner.gif" alt="" />&nbsp;&nbsp;&nbsp;Loading</span>');
		$('left_sidebar_nav').setHTML('&nbsp;');
		$('project_name_h1').setHTML('New Project');
		new Ajax('/res/actions/ajax/project_form.php?date='+Date(), {
			method: 'get',
			update: $('project_wrapper'),
			onComplete: function() {
				$('project_status_bar').setHTML('');
			}
		}).request();
	},
	ajaxLoadProject: function(project_id) {
		$('project_status_bar').setHTML('<span class="project_action_message"><img align="absmiddle" src="/lib/images/spinner.gif" alt="" />&nbsp;&nbsp;&nbsp;Loading</span>');
		$('project_name_h1').remove();
		new Ajax('/res/actions/ajax/project_form.php?project_id='+project_id+'&date='+Date(), {
			method: 'get',
			update: $('project_wrapper'),
			evalScripts: true,
			onComplete: function() {
				$('project_status_bar').setHTML('&nbsp;');
			}
		}).request();
	},
	reloadAjaxProjectUserList: function() {
		if ( $('project_users_list') ) {
			$('project_users_list').addClass('ajax-loading');
			new Ajax('/res/actions/ajax/get_project_user_list.php?date='+Date(), {
				method: 'get',
				update: $('project_users_list'),
				onComplete: function() {
					Site.setupAjaxActions();
					$('project_users_list').removeClass('ajax-loading');
				}
			}).request();
		}
	},
	submitAjaxForm: function(frm,updateElement) {
		var el = $(updateElement);
		el.addClass('ajax-loading');
		$(frm).send({
						update: el,
						evalScripts: true,
						onComplete: function() {
							el.removeClass('ajax-loading');
							Site.reloadAjaxProjectUserList();
						}
					});
	},
	setupProjectSlides: function() {
		$$('div.category_slider_box').each(function(div){
			var link = div.getElement('a');
			var block = link.getNext();
			if ( block.getProperty('id') == 'clients_slider' ) {
				
				var fx = new Fx.Slide(block, {wait: false});
				
				fx.hide();
				block.setStyle('display', 'block');
				link.addEvent('click', function(){
					fx.toggle();
					var img = this.getStyle('background-image');
					if (img == 'url(/lib/images/minus.png)')
						this.setStyle('background-image', 'url(/lib/images/pluss.png)');
					else
						this.setStyle('background-image', 'url(/lib/images/minus.png)');
				});
			}
		});
	},
	checkAllProjectCategories: function(chk_box, project_id) {
		var chk = false;
		if ( chk_box.getProperty('checked') ) chk = true;
		for ( var i=0; i < category_arr.length; i++ ) {
			var obj = $( project_id + "_" + category_arr[i] + "_chk" );
			if (obj && chk) obj.setProperty('checked', 'checked');
			if (obj && !chk) obj.removeProperty('checked');
		}
	},
	confirmDelete: function(msg) {
		if ( confirm(msg) )
			Site.submitAjaxForm('frmRemoveProject','project_wrapper');
	},
	validateProjectForm: function(project_id) {
		var projObj 				= new Object;
		projObj.errorStyles 		= new Object;
		projObj.errorCssClassOff	= 'errorFieldOff';
		projObj.useEffects		= true;
		projObj.requiredFields 	= new Object;
		projObj.requiredFields.project_name = "Project Name is Required.";
		projObj.errorStyles.backgroundColor = "#b20000";
		projObj.errorStyles.color = "#ffffff";
		if ( ajaxValidateForm( 'frmUpdateProject', projObj ) ) {
			$('project_status_bar').setHTML('<span class="project_action_message"><img align="absmiddle" src="/lib/images/spinner.gif" alt="" />&nbsp;&nbsp;&nbsp;Saving</span>');
			$('frmUpdateProject').send({
				update: $('project_save_status'),
				onComplete: function() {
					
				}
			});
		}
	},
	add_project_photo: function() {
		if ( $('add_project_photo') ) {
			$('add_project_photo').addEvent('change', function() {
				$('project_status_bar').setHTML('<span class="project_action_message"><img align="absmiddle" src="/lib/images/spinner.gif" alt="" />&nbsp;&nbsp;&nbsp;Saving</span>');
				$('frmAddPhoto').submit();
				$('frmAddPhoto').reset();
			});
		}
	},
	add_project_file: function() {
		if ( $('add_project_file') ) {
			$('add_project_file').addEvent('change', function() {
				//$('project_status_bar').setHTML('<span class="project_action_message"><img align="absmiddle" src="/lib/images/spinner.gif" alt="" />&nbsp;&nbsp;&nbsp;Saving</span>');
				$('frmAddFile').submit();
				$('frmAddFile').reset();
			});
		}
	},
	submitAjaxInsertEmployeeFile: function() {
		$('frmAddFile').submit();
		$('frmAddFile').reset();
	},
	showProjectPhotos: function(project_id) {
		new Ajax('/res/actions/ajax/get_project_photo_list.php?project_id='+project_id+'&date='+Date(), {
			method: 'get',
			update: $('photo_list')
		}).request();
		
	},
	checkProjectFiles: function() {
		if ( $('show_project_files') ) {
			new Ajax('/res/actions/ajax/load_project_category_files.php?project_id='+$('project_id').value+'&group_id='+$('group_id').value+'&category='+$('show_project_files').value+'&date='+Date(), {
				method: 'get',
				update: $('middle_content'),
				onComplete: function() {
					Site.add_project_file();
					Site.setupProjectFilesSorting();
				}
			}).request();
			if ( $('category_link_1') ) $('category_link_1').addClass('selected_category');
		}
	},
	showProjectFiles: function(project_id,file_category,link_id,group_id) {
		new Ajax('/res/actions/ajax/load_project_category_files.php?project_id='+project_id+'&group_id='+group_id+'&category='+file_category+'&date='+Date(), {
			method: 'get',
			update: $('middle_content'),
			onComplete: function() {
				Site.add_project_file();
				Site.setupProjectFilesSorting();
			}
		}).request();
		
		if ($(link_id)) {
			$$('.category_links').each(function(aLink) {
				aLink.removeClass('selected_category');
			});
			$(link_id).addClass('selected_category');
		}
	},
	showEmployeeFiles: function() {
		new Ajax('/res/actions/ajax/load_employee_category_files.php?date='+Date(), {
			method: 'get',
			update: $('middle_content')
		}).request();
		
	},
	removeProjectPhoto: function(project_id,file) {
		new Ajax('/res/actions/ajax/remove_project_photo.php?project_id='+project_id+'&file='+file+'&date='+Date(), {
			method: 'get',
			update: $('photo_list')
		}).request();
	},
	changeProjectMainImage: function(oldMain,newMain,projectId) {
		new Ajax('/res/actions/ajax/change_project_photo.php?oldMain='+oldMain+'&newMain='+newMain+'&projectId='+projectId+'&date='+Date(), {
			method: 'get',
			update: $('project_status_bar')
		}).request();
	},
	validateNewProjectForm: function() {
		var projObj 				= new Object;
		projObj.errorStyles 		= new Object;
		projObj.errorCssClassOff	= 'errorFieldOff';
		projObj.useEffects		= true;
		projObj.requiredFields 	= new Object;
		projObj.requiredFields.project_name = "Project Name is Required.";
		projObj.errorStyles.backgroundColor = "#b20000";
		projObj.errorStyles.color = "#ffffff";
		if ( ajaxValidateForm( 'frmUpdateProject', projObj ) ) {
			$('project_status_bar').setHTML('<span class="project_action_message"><img align="absmiddle" src="/lib/images/spinner.gif" alt="" />&nbsp;&nbsp;&nbsp;Saving</span>');
			$('frmUpdateProject').send({
				update: $('project_status_bar'),
				onComplete: function() {
					$('project_wrapper').setHTML('');
				}
			});
		}
	},
	showAccessPanel: function(project_id) {
		$$('.project_access_list').each(function(ul){
			$(ul).removeClass('project_access_list_show');
		});
		$('project_access_list_'+project_id).addClass('project_access_list_show');
		$$('.user_project_list').each(function(li){
			$(li).removeClass('selected_user_project');
		});
		$('user_project_list_'+project_id).addClass('selected_user_project');
		var projTop = $('user_project_list_'+project_id).getTop();
		projTop = projTop - 230;
		$('project_access_list_'+project_id).setStyle('top', projTop+'px');
	},
	teamUpdateStatus: function(msg) {
		$('team_update_status').setHTML(msg);
	},
	ajaxUpdateProjectStatus: function(msg) {
		$('project_status_bar').setHTML(msg);
	},
	ajaxUpdateEmployeeStatus: function(msg) {
		$('status_bar').setHTML(msg);
	},
	submitAjaxProjectUpdate: function() {
		$('project_status_bar').setHTML('<span class="project_action_message"><img align="absmiddle" src="/lib/images/spinner.gif" alt="" />&nbsp;&nbsp;&nbsp;Saving</span>');
		$('frmUpdateProjectFilesStatus').send({
			update: $('project_status_bar'),
			evalScripts: true
		});
	},
	submitAjaxEmployeeFilesUpdate: function() {
		$('status_bar').setHTML('<span class="project_action_message"><img align="absmiddle" src="/lib/images/spinner.gif" alt="" />&nbsp;&nbsp;&nbsp;Saving</span>');
		$('frmUpdateProjectFilesStatus').send({
			update: $('status_bar'),
			evalScripts: true
		});
	},
	validateContactForm: function() {
		var contactObj 				= new Object;
		contactObj.errorStyles 		= new Object;
		contactObj.errorCssClassOff	= 'contactErrorFieldOff';
		contactObj.useEffects		= true;
		contactObj.requiredFields 	= new Object;
		contactObj.emailFields 		= new Object;
		contactObj.numberFields		= new Object;
		contactObj.requiredFields.contact_name = "Name is Required.";
		contactObj.emailFields.contact_email = "Email is Required.";
		contactObj.numberFields.contact_validation = "Validation Code is Required.";
		contactObj.errorStyles.backgroundColor = "#b20000";
		contactObj.errorStyles.color = "#ffffff";
		if ( ajaxValidateForm( 'frmContact', contactObj ) ) {
			$('frmContact').setStyle('display', 'none');
			$('form_status_bar').setHTML('<span class="project_action_message"><img align="absmiddle" src="/lib/images/spinner.gif" alt="" />&nbsp;&nbsp;&nbsp;Please Wait Sending</span>');
			$('is_ajax').value = 'true';
			$('frmContact').send({
				update: $('frmContact'),
				onComplete: function() {
					$('form_status_bar').setHTML('');
					$('frmContact').setStyle('display', 'inline');
				}
			});
		}
	}
}
window.addEvent('domready', Site.pageDomReady);
window.addEvent('load', Site.pageLoaded);