var SkyManager = {

	dragDrop : {
		origen : null,
		destino : null,
		form : null,

		reset : function() {
			SkyManager.dragDrop.origen = null;
			SkyManager.dragDrop.destino = null;
			SkyManager.dragDrop.form = null;
		},
		run : function() {
			// alert(SkyManager.dragDrop.origen + ":" +
			// SkyManager.dragDrop.destino);
			// return false;

			var formDrop = SkyManager.dragDrop.form;

			jQuery("input[name='origen']", formDrop)
					.val(SkyManager.dragDrop.origen);

			jQuery.ajax({
						url : jQuery(formDrop).attr("action"),
						type : jQuery(formDrop).attr("method"),
						data : (jQuery(formDrop).serialize()),
						dataType : "json",
						success : SkyManager.formsCallback.formGeneral
					});

			SkyManager.dragDrop.reset();
		}
	},

	showFormView : function(pParams) {
		Lightview.show({
			href : pParams.url,
			rel : 'ajax',
			title : pParams.title,
			caption : pParams.caption,
			options : {
				autosize : true,
				topclose : true,
				ajax : {
					method : 'get',
					parameters : pParams,
					evalScripts : true,
					onComplete : function() {

						if (!jQuery(".sinhtml").length) {
							tinyMCE.init({
								mode : "textareas",
								language : "es",
								theme : "advanced",
								plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount",
								external_image_list_url : SKM_URL_SUB + "js/tiny_mce/lists/image_list.php",
								theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor"
							});
						}
						jQuery(".selectorListado").click(function(evento) {
							var formulario = jQuery(jQuery("#imagenesArray").get(0).form);
							var trImagen = evento.currentTarget;
							var idImagen = trImagen.id;
							if (jQuery("[name='elemento_imagenes_" + idImagen + "']", formulario).length) {
								jQuery("[name='elemento_imagenes_" + idImagen + "']", formulario).remove();
								jQuery(trImagen).removeClass("elemento_marcado");
							} else {
								formulario.prepend('<input type="hidden" name="elemento_imagenes_'+ idImagen+ '" value="'+ idImagen + '"/>');
								jQuery(trImagen).addClass("elemento_marcado");
							}
						});

						// jQuery(".datepicker").datepicker();

						SkyManager.ligthViewCallback();
						SkyManager.formsCallback.setCallback();

						eval(pParams.callBack);
					}
				}
			}
		});
	},

	showConfirmView : function(pParams) {
		if (confirm(pParams.title)) {
			if (pParams.type != "self") {
				jQuery.ajax({
							url : pParams.url,
							type : "get",
							data : (pParams),
							dataType : "json",
							success : function(pData) {
								SkyManager.formsCallback.formGeneral(pData);
							}
						});
			} else {
				document.location.href = pParams.url;
			}
		}
	},

	sendAjaxLink : function(pParams) {
		jQuery.ajax({
					url : pParams.url,
					type : "get",
					data : (pParams),
					dataType : "json",
					success : function(pData) {
						SkyManager.formsCallback.formGeneral(pData);
						/*
						 * if (pData.error) { alert(pData.error); }else{ if
						 * (pData.mensaje) alert(pData.mensaje); if
						 * (pData.redirect) document.location = pData.redirect; }
						 */
					}
				});
	},

	ligthViewCallback : function() {
		jQuery(".listado tr:odd").css("background-color", "#ededed"); // filas impares
		jQuery(".listado tr:even").css("background-color", ""); // filas pares

		jQuery(".selectTree").css("cursor", "pointer");

		jQuery(".selectTree").click(function(event) {
			var objeto = event.target;
			var id = objeto.id;
			var tmpArrParams = id.split('_');

			var formulario = tmpArrParams[0];
			var campo = tmpArrParams[1];
			var valor = tmpArrParams[2];

			jQuery("#" + formulario + " input[name='" + campo + "']").val(valor);

			jQuery(".selectTree").each(function(key, value) {
				jQuery(value).css("background-color", null);
			});

			jQuery(objeto).css("background-color", "Red");
		});
	},

	formsCallback : {
		setCallback : function() {

			jQuery("input[name='isAjax']").each(function(pKey, pValue) {

				formulario = pValue.form;
				if (!formulario) return false;
				miCallBack = eval("SkyManager.formsCallback." + formulario.id);

				var fileElement = jQuery("input[type='file']", formulario);

				if (fileElement.length > 0) {
					// SI TIENE UN FILE CAPTURO EL onChange del file
					new AjaxUpload(fileElement, {
						action : jQuery(formulario).attr("action"),
						responseType : "json",
						onSubmit : function(file, extension) {
							jQuery("#uploadText", formulario).show();
							jQuery("#uploadButton", formulario).hide();
						},
						onComplete : function(file, response) {
							jQuery("#uploadText", formulario).hide();
							jQuery("#uploadButton", formulario).show();
							if (response.error) {
								alert(response.error);
								return false;
							}
							objDestino = jQuery("#"+ fileElement.attr("name")+ "_dest", formulario);
							objDestino.attr(response.action.attr,response.action.dest);
							objInput = jQuery("input[name='elemento_url']",formulario).val(response.url);
							alert("Fichero subido");
						}
					});
				}

				jQuery(formulario).submit(function(event) {
					var formulario = event.target;
					if (!formulario)return false;

					if (!jQuery(formulario).hasClass("skm_simple")) {
						jQuery("textarea", formulario).each(function(pKey, pValue) {
							tinyMCE.execCommand('mceRemoveControl', false,pValue.name);
							jQuery(pValue).css({
								"opacity" : "0"
							});
						});
						
						jQuery("[type='submit']", formulario).attr("disabled","true");
					}


					// Validación del formulario.
					var msgError = "";
					jQuery(".skm_required", formulario).each(function(key, value){
                        if (!jQuery(value).val()) msgError += jQuery("#"+value.id + "_skm_required").text() + "<br/>\n";
					});
                    jQuery(".skm_required_not", formulario).each(function(key, value){
                        var idSpan = jQuery("#" + value.id + " + span").get(0).id;
                        var arrSpan = idSpan.split('_');
                        var idNot = arrSpan[arrSpan.length-1];

                        if (!jQuery("#"+idNot).val() && !jQuery(value).val()) {
                           msgError += jQuery("#"+value.id + "_skm_required_not_" + idNot).text() + "<br/>\n";
                        }
					});
					jQuery(".skm_email", formulario).each(function(key, value){
						if (!/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/.test(jQuery(value).val())) 
                        msgError += jQuery("#"+value.id + "_skm_email").text() + "<br/>\n";
					});					
                    if (msgError) {
                        jQuery("#mensajesErr", formulario).html(msgError);
                        jQuery("#errForm", formulario).show();
						//alert(msgError);
						return false;
                     } else {
                        jQuery("#errForm", formulario).hide();
                     }
					
					
					jQuery.ajax({
						url : jQuery(formulario).attr("action"),
						type : jQuery(formulario).attr("method"),
						data : (jQuery(formulario).serialize()),

						dataType : "json",
						success : miCallBack
					});
					return false;
				});

			});
		},

		editPagina : function(pData) {
			if (pData.error) {
				alert(pData.error);
			} else {
				alert("Todo ha ido bien.");
				Lightview.hide();
				if (pData.redirect) {
					document.location = pData.redirect;
				}
			}
		},
		formContacto : function(pData) {
			SkyManager.formsCallback.formGeneral(pData);
		},
		formGeneral : function(pData) {
			if (pData.error) {
				alert(pData.error);

				if (pData.javascript) {
					if (pData.javascript.indexOf('showFormView') == -1) Lightview.hide();
					setTimeout('eval("' + pData.javascript + '")', 2000);
				} else {
					Lightview.hide();
				}
			} else {
				if (pData.mensaje) alert(pData.mensaje);

				if (pData.javascript) {
					if (pData.javascript.indexOf('showFormView') == -1) Lightview.hide();
					setTimeout('eval("' + pData.javascript + '")', 2000);
				} else {
					if (pData.redirect) {
						document.location = pData.redirect;
					} else {
						Lightview.hide();
					}
				}

			}
		}
	},

	module : {

	},

	portada : {

	}
}

jQuery(document).ready(function() {
	SkyManager.formsCallback.setCallback();
});



