
function validateMail(email) {
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;  
   if(reg.test(email) == false) {
      return false;
   }
   return true;
}

ResizeBody = function() {
	$('#column1, #col1inner, #column3outer').height($(document).height());
};

$(window).load(function(){
	ResizeBody();
});

function LockScroll(lock){
	if(lock){
		var scrollPosition = [
	      self.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft,
	      self.pageYOffset || document.documentElement.scrollTop  || document.body.scrollTop
	    ];
	    var html = $('html'); // it would make more sense to apply this to body, but IE7 won't have that
	    html.data('scroll-position', scrollPosition);
	    html.data('previous-overflow', html.css('overflow'));
	    html.css('overflow', 'hidden');
	    window.scrollTo(scrollPosition[0], scrollPosition[1]);
	} else {
		  var html = $('html');
	      var scrollPosition = html.data('scroll-position');
	      html.css('overflow', html.data('previous-overflow'));
	      window.scrollTo(scrollPosition[0], scrollPosition[1]);
	}
}

function ImageUploader(path, selected, boxname){
	$('#imageuploader').remove();
	var imageuploader = $('<div id="imageuploader" style="top:-140px;position:fixed;background-color:#cdcdcd;z-index:9999999999999">');
	$(imageuploader).width($(window).width() - 140);
	$(imageuploader).css({'border':'30px solid #4d4d4d','padding':'40px'});
	$(imageuploader).appendTo($('#maindiv'));
	var closer = $('<a id="uploadclose" style="display:inline-block;margin:15px 5px;padding:5px 10px;background:#4e4e4e;color:#cdcdcd;font-weight:bold;cursor:pointer;">Fechar</a>');
	$(closer).css({'position':'absolute','bottom':'0', 'right':'30px'}).appendTo($(imageuploader));
	
	$('#searchbox').attr('disabled','true');
	$('#imageuploader').animate({height : $(window).height() - 140, 'top':'0px'}, 750, function(){
		$('#upload_target').height($('#imageuploader').height()* 0.95).css('border-bottom','2px solid #4d4d4d');
	});
	uploaderwrapper = $('<div id="uploaderwrapper">').prependTo($('#imageuploader'));
	$('#uploaderwrapper').load(base_url + 'imagemanager/getUploader/' + path, function(){
		$('#uploadclose').click(function(){
			$('#imageuploader').animate({height : 0,'top':'-140px'}, 750, function(){
				$('#uploaderwrapper').remove();
				$('#searchbox').attr('disabled','false');
				$(window).unbind('keypress');
				$('#bgdiv, #imagebrowser').remove();	
				if(boxname != ''){
					LockScroll(false);					
					ImageManager(path, selected, boxname);
				}
			});
		});		
	});		
}

function fileManager(){
	$(document).unbind('keydown.fb');
	var bgdiv = $('<div id="bgdiv" style="position:absolute;background:#662200;z-index:999990;opacity:0.8;" />');
	$(bgdiv).width($(document).width()).height($(document).height()).appendTo('body');	
	var filemanager = $('<div id="filemanager" />').css({'position':'fixed','z-index':'999999'});
	$('#fancybox-content').css('height', $('#fancybox-content').height()+'px');
	LockScroll(true);
	$('#maindiv').append($(filemanager));
	$(imagebrowser).load(base_url + 'filemanager/getManager/' + path + '/' + image, function(){
		
	});
	
}


function ImageManager(path, image, boxname){	
	$(document).unbind('keydown.fb');	
	function fetchSelected(){
		if($('li.selected').length == 0) {$('#imagebrowser li:first').addClass('selected');}
		var top = $('li.selected').position().top;
		$('#browser').scrollTop(top);
	}
	var bgdiv = $('<div id="bgdiv" style="position:absolute;background:#662200;z-index:999990;opacity:0.8;" />');
	$(bgdiv).width($(document).width()).height($(document).height()).appendTo('body');	
	var imagebrowser = $('<div id="imagebrowser" />').css({'position':'fixed','z-index':'999999'});
	$('#fancybox-content').css('height', $('#fancybox-content').height()+'px');
	LockScroll(true);
	$('#maindiv').append($(imagebrowser));
	$(imagebrowser).load(base_url + 'imagemanager/getManager/' + path + '/' + image, function(){
		$(imagebrowser).css({'margin-top':($(window).height() - $(imagebrowser).height()) /2 + 'px','margin-left':($(window).width() - $(imagebrowser).width()) /2+'px'});
		$('#close, #options #cancel').click(function(){
			$(window).unbind('keypress');
			$('#imagemanager').parent().remove();
			$(bgdiv).remove();
			LockScroll(false);			
		});
		$('#imagemanager #browser li img').click(function(){
			$('#imagemanager li.selected').removeClass('selected');
			$(this).parent().addClass('selected');			
			selected = $(this).attr('alt');
		});
		$('#choose').click(function(){
			$(window).unbind('keypress');
			var imagepath = $('#' + boxname).find('img:first').attr('src').split('/');
			image = imagepath[imagepath.length -1];
			$('#' + boxname).find('img:first').attr('src',$('#' + boxname).find('img:first').attr('src').replace(image,selected));
			$('#' + boxname).find('a:first').text(selected);
			$('#' + boxname).find('a:first').unbind('click').click(function(){
				ImageManager(path, selected, boxname);
				return false;
			});
			$(imagebrowser).fadeOut('slow',function(){
				$(this).remove();
				$(bgdiv).remove();
				LockScroll(false);
			});			
		});
		$('#imagemanager li img').live('dblclick',function(){
			$('#choose').trigger('click');
		});		
		
		$('#imagemanager #upload').click(function(){
			ImageUploader(path,selected,boxname);
		});		
		$(window).resize(function(){			
			$(imagebrowser).css({'margin-top':($(window).height() - $(imagebrowser).height()) /2 + 'px','margin-left':($(window).width() - $(imagebrowser).width()) /2+'px'});
		});		
		$(window).keypress(function(e){			
			var liid = $('li.selected').attr('id');
			var quant = $('#imagebrowser li').length;
			switch(e.keyCode){
				case 37: //left
					var nextid = parseInt(liid) - 1;
					if(nextid >= 0){
						selected = $('li#'+nextid).find('img').attr('alt');
						$('li#'+nextid).find('img').trigger('click');						
						fetchSelected();
						return false;
					}
					break;
				case 39:  //right
					var nextid = parseInt(liid) + 1;
					if(nextid < quant){
						selected = $('li#'+nextid).find('img').attr('alt');
						$('li#'+nextid).find('img').trigger('click');
						fetchSelected();
						return false;
					}
					break;
				case 38: //up
					var nextid = parseInt(liid) - 5;
					if(nextid >= 0){
						selected = $('li#'+nextid).find('img').attr('alt');
						$('li#'+nextid).find('img').trigger('click');
						fetchSelected();
						return false;
					}
					break;
				case 40: //down
					var nextid = parseInt(liid) + 5;
					if(nextid < quant){
						selected = $('li#'+nextid).find('img').attr('alt');
						$('li#'+nextid).find('img').trigger('click');
						fetchSelected();
						return false;
					}
					break;
				case 27: //ESC
					e.preventDefault();
					$('#cancel').trigger('click');
					$(window).unbind('keypress');
					$(document).bind('keydown.fb', function(e) {
				        if (e.keyCode == 27) {
				            e.preventDefault();
				            $.fancybox.close();

				        } else if ((e.keyCode == 37 || e.keyCode == 39) && e.target.tagName !== 'INPUT' && e.target.tagName !== 'TEXTAREA' && e.target.tagName !== 'SELECT') {
				            e.preventDefault();
				            $.fancybox[ e.keyCode == 37 ? 'prev' : 'next']();
				        }
				    });

					return false;
					break;
				case 13: //Enter					
					$('#choose').trigger('click');
					$(window).unbind('keypress');
					break;
			}			
		});
		
		$('#searchbox').placeholder({color: '#4e4e4e'}).live('keyup', function(){
			var val = $(this).val();
			if($(this).val() != ''){
				$('#browser li').each(function(){
					var imagename = $(this).children('img:first').attr('alt');
					if(imagename.toLowerCase().indexOf(val.toLowerCase()) < 0){
						$(this).hide();
					}
					else{
						$(this).show();
					}
				});
			} else{
				$('#browser li').show();
			}
		});
		
		fetchSelected();
	});	
}


function MakeActiveColumn(tablename){
	$('table.grid td[col=active]').each(function(){
		var rowid = $(this).parent().attr('primary_key');
		var buttonimage = Array('offbutton.gif', 'onbutton.gif');			
		var link = $('<a href="'+base_url+'admin/changeactive/'+tablename+'/'+rowid+'" />');//alert(link.html());
		var img = $('<img id="btn'+rowid+'" width="12" src="'+base_url+'assets/img/admin/'+buttonimage[parseInt($(this).text())]+'" />').appendTo(link);
		$(this).css('text-align','center').html(link);

		$(link).click(function(e){
			e.preventDefault();
			$.post($(this).attr('href'), {}, function(ret){
				$('#btn'+rowid).attr('src',base_url+'assets/img/admin/'+buttonimage[ret]);
			})
		});
										
	});
}

function MakeDeleteColumn(tablename){
	$('table.grid td[col=id]').each(function(){
		var rowid = $(this).text();
		var td = $(this);
		var img = $('<img width="12" src="'+base_url+'assets/img/admin/delbutton.gif" />');
		var link = $('<a href="'+base_url+'admin/deleterow/'+tablename+'/'+rowid+'" />').append($(img));
		$(this).css('text-align','center').html($(link));
		$(link).click(function(e){
			e.preventDefault();
			if(confirm('Tem a certeza que deseja apagar este post?')){
				$.post($(this).attr('href'), {}, function(ret){
					alert('Apagado com sucesso');
					$(td).parent().remove();
				})
			}
		});
	});
}


///*******tinyMCE********////

function getTinyConfig(altura){
	mceConfig = [{
		// General options
		mode : "textareas",
		theme : "advanced",
		plugins : "imagemanager,media,autolink,lists,pagebreak,style,layer,table,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount,advlist",

		// Theme options
		theme_advanced_buttons1 : "newdocument,|,cut,copy,paste,pastetext,pasteword,|,undo,redo,cleanup,|,search,replace,|,visualchars,|,ltr,rtl,|,code,|,insertdate,inserttime,|,preview,print,|,fullscreen",
		theme_advanced_buttons2 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,fontselect,fontsizeselect,|,forecolor,backcolor,|,bullist,numlist,|,outdent,indent,blockquote",
		theme_advanced_buttons3 : "link,unlink,image,media,|,tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,|,",
		theme_advanced_toolbar_location : "top",
		theme_advanced_toolbar_align : "left",
		theme_advanced_statusbar_location : "bottom",
		theme_advanced_resizing : true,

		// Example content CSS (should be your site CSS)
		content_css : "assets/css/main.css",
		height : altura,
				
		// Drop lists for link/image/media/template dialogs
		template_external_list_url : "lists/template_list.js",
		external_link_list_url : "lists/link_list.js",
		external_image_list_url : "lists/image_list.js",
		media_external_list_url : "lists/media_list.js",

		// Style formats
		style_formats : [
			{title : 'Bold text', inline : 'b'},
			{title : 'Red text', inline : 'span', styles : {color : '#ff0000'}},
			{title : 'Red header', block : 'h1', styles : {color : '#ff0000'}},
			{title : 'Example 1', inline : 'span', classes : 'example1'},
			{title : 'Example 2', inline : 'span', classes : 'example2'},
			{title : 'Table styles'},
			{title : 'Table row 1', selector : 'tr', classes : 'tablerow1'}
		],

		// Replace values for the template plugin
		template_replace_values : {
			username : "Some User",
			staffid : "991234"
		}
	}];
	return mceConfig[0];
}


function loadTinyMce(editor, altura){
	tinyMCE.settings = getTinyConfig(altura);
	tinyMCE.execCommand('mceAddControl', false, editor);	
}

function removeTinyMce(editor){
	tinyMCE.execCommand('mceRemoveControl', false, editor);
}

function getTinyContent(editor_id){
	editor = tinymce.get(editor_id);
	return editor.getContent();
}



