(function(){


	var jQuery;
	var scripturl='http://inxeniu.com/nectar/widgettest/';
	/******** Cargar jq si no está presenter *********/
	if (window.jQuery === undefined || window.jQuery.fn.jquery !== '1.5.0') {
		var script_tag = document.createElement('script');
		script_tag.setAttribute("type","text/javascript");
		script_tag.setAttribute("src","http://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js");
		script_tag.onload = scriptLoadHandler;
		script_tag.onreadystatechange = function () { // Para IE
			if (this.readyState == 'complete' || this.readyState == 'loaded') {
				scriptLoadHandler();
			}
		};
		// Meterlo en cabecera si la hay
		(document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag);
	} else {
		// La versión ya en la página es la que queremos usar
		jQuery = window.jQuery;
		main();
	}


	function scriptLoadHandler() {
		jQuery = window.jQuery.noConflict(true);
		main();
	}

	function main() {
			var lastccaa=0;
			var lastsex='h';
			var lastage=0;
			jQuery(document).ready(function($){
			var css_link = $("<link>", {
				rel: "stylesheet",
				type: "text/css",
				href: scripturl+"css/calvac.css"
			});
			css_link.appendTo('head');

			function calvac_show(pag, callback){
				var node=$('#calvac');
				var contents=node.contents();
				if(contents.length==0){
					node.append("<div></div>");
					contents=node.contents();
				}
				contents.fadeOut(400, function(e){
					$.ajax(scripturl+'calvac.php', {
						data:{'calvac_pag': pag},
						dataType: 'jsonp',
						success: function(data, textStatus, jqXHR){
							$('#calvac').empty().append(data.html);
							var rd=$('#calvac input[name=sexo]:radio');
							if(lastsex=='m'){
								rd.filter('[value=m]').attr('checked', 'true');
							}
							else{
								rd.filter('[value=h]').attr('checked', 'true');
							}
							$('#calvac select[name=ca]').val(lastccaa);
							$('#calvac select[name=edad]').val(lastage);
							cambiarBandera();
							$('#calvac').children().hide().fadeIn(400, function(){
								callback();
							});
						}
					});
				});
			}

			function cambiarBandera(){
				$("#bandera").empty();
				var v=$('#calvac select[name=ca]').val();
				if(v==0) return;
				$.ajax(scripturl+'calvac.php',{
					data: {"b": v},
					dataType: 'jsonp',
					success: function(data, textStatus, jqXHR){$('#bandera').append(data.html);}
				});
			}

			function checkAll(err){
				var node=$('#calvac');
				var inp=node.find('input, select');
				var todos=true;
				for(i=0;i<inp.length;i++){
					var the_inp=inp.eq(i);
					if(the_inp.val()==0){
						todos=todos && false;
						err.push(the_inp.attr('name'));
					}
					else todos=todos && true;
				}
				return todos;
			}

			function checkValues(e){
				var node=$('#calvac');
				var err=new Array();
				var todos=checkAll(err);
				if(todos){
					node.find('.botondiv .boton').unbind().click(function(e){
						var data={};
						node.find('input, select').each(function(i){
							if($(this).attr('name')=='') return true;
							if($(this).attr('type')=='radio'){
								var l=$(this).filter(':checked');
								if(l.length==0) return true;
								else lastsex=l.val();
							}
							var n=$(this).attr('name');
							var v=$(this).val();
							data[n]=v;
							if(n=='ca')
								lastccaa=v;
							else if(n=='edad'){
								lastage=v;
							}
							return true;
						});
						data['calvac_pag']=2;
						node.children().fadeOut(400, function(){
							node.empty();
							$.ajax(scripturl+'calvac.php',{
								'data': data,
								dataType: 'jsonp',
								success: function(data, textStatus, jqXHR){
									node.append(data.html);
									node.children().hide().fadeIn(400, function(){
										$('#calvac_restart').click(calvac_start);
									});
									node.find('.calvac_legal').click(legal);
									node.find('.calvac_pastecode').click(pasteCode);
								}
							});
						});
					});
				}
				else
					node.find('.botondiv .boton').unbind().click(function(e){
						var txt="<div class='calvac_popup_text'><img src='"+scripturl+"img/icon_warning.png' />"+
						"<br />Por favor, completa todas las opciones:<br />";
						for(i=0;i<err.length;i++){
							if(err[i]=='ca') txt+="<br />Debes indicar la comunidad autónoma.";
							if(err[i]=='edad') txt+="<br />Debes indicar la edad.";
						}
						txt+="</div>";
						calvac_popup(txt, function(){
							$('#calvac .calvac_button_copy').click(function(){});
						}, '');
					});
			}

			function calvac_popup(htmltxt, callback, cssclass){
				$('#calvac .calvac_popup').remove();
				if(typeof cssclass!='string') cssclass='';
				p=$("<div class='calvac_popup "+cssclass+"'>"+htmltxt+"<br /><button class='calvac_popup_button'><img src='"+scripturl+"img/aceptar.png' /></button></div>");
				$('#calvac').append(p);
				if(typeof callback!='undefined'){
					p.hide().fadeIn(400, callback);
				}
				else p.hide().fadeIn(400);
				$('.calvac_popup_button').click(function(){
					$('#calvac .calvac_popup').fadeOut(400, function(){$(this).remove();});
				});
				return false;
			}

			function pasteCode(){
				var txt="<div class='calvac_popup_text'>Para insertar este calendario en tu web, inserta el siguiente código html en la cabecera (head):<br />"+
				"<input type='text' class='calvac_copypaste_text' "+
				"value=\"<script type='text/javascript' charset='UTF-8' src='"+scripturl+"js/calvac.js'></script>\"></input><br /><br/>"+
				"Después inserta en el cuerpo (body) el siguiente código donde quieras que aparezca el calendario."+
				"<input type='text' class='calvac_copypaste_text' "+
				"value=\"<div id='calvac'></div>\"></input><br/><br/>"+
				"<div class='calvac_download_icon_container'>Descarga este widget para:<br />"+
				"<a href='"+scripturl+"down/calvac_win.gadget.zip'><img class='calvac_download_icon_left' src='"+scripturl+"img/icon_win.png' /></a>"+
				"<a href='"+scripturl+"down/calvac_mac.zip'><img class='calvac_download_icon_right' src='"+scripturl+"img/icon_macos.png' /></a>"+
				"</div></div>";
				calvac_popup(txt, function(){
					$('#calvac .calvac_button_copy').click(function(){});
				}, 'pastecode_popup');
				return false;
			}

			function legal(){
				var txt="<div class='calvac_popup_text'>Nectar Seguros de Salud S.A. no se hace responsable"+
				" de la veracidad de los datos contenidos en esta herramienta informativa.</div>";
				calvac_popup(txt);
				return false;
			}

			function calvac_cycle(e){
				var node=$('#calvac');
				node.find('select#ca').unbind().change(cambiarBandera);
				node.find('.calvac_legal').click(legal);
				node.find('.calvac_pastecode').click(pasteCode);
				node.find('input, select').change(checkValues);
				checkValues({});
			}

			function calvac_start(){
				calvac_show(1, calvac_cycle);
			}

			$(document).ready(calvac_start);

		});
	}


})();

