var krocos = {
	tools: {     
		inputFocus: function(textDefault, id) {
			var elem = document.getElementById(id);
			if (elem.value === textDefault) {
				elem.value = '';
			}
		},

		inputBlur: function(textDefault, id) {
			var elem = document.getElementById(id);
			if (elem.value === '') {
				elem.value = textDefault;
			}
		},

		ltrim: function (s) { 
			return s.replace(/^\s+/, ""); 
		}, 

		rtrim: function (s) { 
		    return s.replace(/\s+$/, ""); 
		}, 
 
		trim: function (s) { 
		    return krocos.tools.rtrim(krocos.tools.ltrim(s)); 
		},
		
		wait: function (msecs) {
			var start = new Date().getTime();
			var cur = start
			while(cur - start < msecs)
			{
				cur = new Date().getTime();
			}
		}
	},
	
	subscribe: {
		updateSubscribe: function() {
        	var elem = document.getElementById('email_form_note');
        	var query = document.getElementById('krocos_search').value;
			var input = document.getElementById('email_form_container');
			var confirmNote = document.getElementById('email_form_confirm');
			input.className = "container invisible";
			confirmNote.className = "note invisible";
			elem.style.display = "block";
        
			if (query.length >= 3 && query != "Buscar aquí") {
				elem.innerHTML = '<a id="search_email_text" href="javascript:void(0)" onClick="krocos.subscribe.showSubscribe()>Recibe en tu email las &uacute;ltimas ofertas relacionadas con “' + query + '” </a>';
			} else {
				elem.innerHTML = 'ej. “Administrativa en Castell&oacute;n” o “Consultor inform&aacute;tico en Valencia”';
			}
		},
		
		showSubscribe: function() {
			var note = document.getElementById('email_form_note');
			var input = document.getElementById('email_form_container');
			note.style.display = "none";
			input.className = "container";
		},
		
		sendSubscribe: function() {
			var elem = document.getElementById("search_email");
			elem.value = krocos.tools.trim(elem.value);
			var contenedor = document.getElementById("email_form_container");
			var regExp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9_\-])+\.)+([a-zA-Z0-9])+$/;
			if (elem.value == "" || elem.value == "tu@email.com" || ! regExp.test(elem.value))
			{
				contenedor.style.borderColor = "red";
			}
			else
			{
				var xmlhttp = false;
				try {
					xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
				} catch (e) {
					try {
						xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
					} catch (E) {
						xmlhttp = false;
					}
				}
	
				if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
					xmlhttp = new XMLHttpRequest();
				}
			
				var url = "/search/subscribe.php";
				xmlhttp.open("POST", url, true);
				xmlhttp.onreadystatechange=function() {
					if (xmlhttp.readyState==4 && xmlhttp.status == 200) {
						var input = document.getElementById('email_form_container');
						var confirmNote = document.getElementById('email_form_confirm');
						input.className = "container invisible";
						confirmNote.className = "note";
					}
				}
				xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
				var search_email = document.getElementById('search_email').value;
				var query = document.getElementById('krocos_search').value;
				xmlhttp.send("search_email="+escape(search_email)+"&query="+escape(query));
			}
		}
	},
	
	searcher: {
		isSearching: false,
		results : null,
		start: false,
		
		init: function() {
			var self = krocos.searcher;
			self.isSearching = false;
			self.start = true;
			self.results = document.getElementById("krocos_search_results");
			var f=document.forms[0];
			f.krocos_search.focus();
		},
		
		searching: function(page) {
			var self = krocos.searcher;
			krocos.subscribe.updateSubscribe();
			/*if (searchWords.value == "") {
				self.isSearching = false;
			}*/
			if (self.isSearching) {
				return;
			}
			else {
				self.isSearching = true;
			}
			var xmlhttp=false;
 			try {
 				xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		 	} catch (e) {
 				try {
 					xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		 		} catch (E) {
 					xmlhttp = false;
 				}
		  	}

			if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
 				xmlhttp = new XMLHttpRequest();
			}

			/*krocos.tools.wait(150);*/
			var searchWords = document.getElementById("krocos_search");
			var keywords;
			
			if (searchWords.value == searchWords.defaultValue) {
				keywords = "";
			}
			else { 
				keywords = krocos.tools.trim(searchWords.value);
			}
			var url = "/search/livesearch.php?s=" + escape(keywords) + "&page=" + page;
			xmlhttp.open("GET", url,true);
			xmlhttp.onreadystatechange=function() {
				if (xmlhttp.readyState==4) {
					if (xmlhttp.status == 200) {
						self.results.innerHTML = xmlhttp.responseText;
						self.isSearching = false;
						searchWords = document.getElementById("krocos_search");
						if (searchWords.value != keywords) {
							self.searching(page);
						}
		 			}
					else
						self.isSearching = false;
				}
			}
			xmlhttp.setRequestHeader("Accept-Charset", "ISO-8859-1");
			xmlhttp.send(null);
		},
		
		pagination: function (page) {
			var self = krocos.searcher;
			krocos.subscribe.updateSubscribe();

			var xmlhttp=false;
 			try {
 				xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		 	} catch (e) {
 				try {
 					xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		 		} catch (E) {
 					xmlhttp = false;
 				}
		  	}

			if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
 				xmlhttp = new XMLHttpRequest();
			}

			var searchWords = document.getElementById("krocos_search");
			var keywords;
			
			if (searchWords.value == searchWords.defaultValue) {
				keywords = "";
			}
			else { 
				keywords = krocos.tools.trim(searchWords.value);
			}
			var url = "/search/livesearch.php?s=" + escape(keywords) + "&page=" + page;
			xmlhttp.open("GET", url,true);
			xmlhttp.onreadystatechange=function() {
				if (xmlhttp.readyState==4) {
					if (xmlhttp.status == 200) {
						self.results.innerHTML = xmlhttp.responseText;
		 			}
				}
			}
			xmlhttp.setRequestHeader("Accept-Charset", "ISO-8859-1");
			xmlhttp.send(null);
		}
	}
};