$().ready( function() {
	calendario();
	catsubcat();
	estadocidade();
	confirmacao();
	imprimir();
	masks();
} );

function calendario() {
	$('.calendario').datepicker();
}

function catsubcat() {
	$('.selectcat').bind('blur', function() {
		var catc = $(this).attr('value');
		var catn = $('.selectcat').attr('name');
		var url = $('.selectcat').attr('title');
		var subc = $('.selectsubcat').attr('name');
		categoria(catc, catn, subc, url);
	} );
}

function estadocidade() {
	$('.selectestado').bind('blur', function() {
		var id = $(this).attr('value');
		var est = $('.selectestado').attr('name');
		var adm = $('.selectestado').attr('title');
		var cid = $('.selectcidade').attr('name');
		Cidade(id, est, cid, adm);
	} );
}

function confirmacao() {
	$('.open').bind('click', function() {
		var url = $(this).attr('title');
		redireciona(url, 0);
	} );
	
	$('a.confirmacao').bind('click', function() {
		var title = $(this).attr('title');
		if(!confirm(title)) {
			return false;
		}
	} );
}

function imprimir() {
	$('.print').click( function() {
		window.print();
	} );
}

function masks() {
	$('.maskdata').mask('99/99/9999');
	$('.maskhora').mask('99:99:99');
	$('.masknum').numeric();
	$('.maskletra').alpha({nocaps:true});
	$('.maskfone').mask('(99) 9999-9999');
	$('.maskcep').mask('99999-999');
	$('.maskcpf').mask('999.999.999-99');
	$('.maskcnpj').mask('99.999.999/9999-99');
	$(".maskdolar").maskMoney();
	$(".maskreal").maskMoney({symbol:"R$",decimal:",",thousands:"."});
	$(".maskeuro").maskMoney({symbol:"Euro",decimal:",",thousands:" "});
}

function redireciona(url, tempo) {
	setTimeout(window.open(url, "_self"), tempo);
}

function seleciona(form, el) {
	var classe = 'erro';
	$(form+' *').each( function() {
		if(el!='') {
			if($(this).attr('id')==el) {
				$(this).focus().addClass(classe);
			} else {
				$(this).removeClass(classe);
			}
		} else {
			$(this).removeClass(classe);
			$(form).resetForm();
		}
	} );
	return false;
}

/* Teste inicio */

	function sack(file) {
		this.xmlhttp = null;
	
		this.resetData = function() {
			this.method = "POST";
			this.queryStringSeparator = "?";
			this.argumentSeparator = "&";
			this.URLString = "";
			this.encodeURIString = true;
			this.execute = false;
			this.element = null;
			this.elementObj = null;
			this.requestFile = file;
			this.vars = new Object();
			this.responseStatus = new Array(2);
		};
	
		this.resetFunctions = function() {
			this.onLoading = function() { };
			this.onLoaded = function() { };
			this.onInteractive = function() { };
			this.onCompletion = function() { };
			this.onError = function() { };
			this.onFail = function() { };
		};
	
		this.reset = function() {
			this.resetFunctions();
			this.resetData();
		};
	
		this.createAJAX = function() {
			try {
				this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e1) {
				try {
					this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e2) {
					this.xmlhttp = null;
				}
			}
	
			if (! this.xmlhttp) {
				if (typeof XMLHttpRequest != "undefined") {
					this.xmlhttp = new XMLHttpRequest();
				} else {
					this.failed = true;
				}
			}
		};
	
		this.setVar = function(name, value){
			this.vars[name] = Array(value, false);
		};
	
		this.encVar = function(name, value, returnvars) {
			if (true == returnvars) {
				return Array(encodeURIComponent(name), encodeURIComponent(value));
			} else {
				this.vars[encodeURIComponent(name)] = Array(encodeURIComponent(value), true);
			}
		}
	
		this.processURLString = function(string, encode) {
			encoded = encodeURIComponent(this.argumentSeparator);
			regexp = new RegExp(this.argumentSeparator + "|" + encoded);
			varArray = string.split(regexp);
			for (i = 0; i < varArray.length; i++){
				urlVars = varArray[i].split("=");
				if (true == encode){
					this.encVar(urlVars[0], urlVars[1]);
				} else {
					this.setVar(urlVars[0], urlVars[1]);
				}
			}
		}
	
		this.createURLString = function(urlstring) {
			if (this.encodeURIString && this.URLString.length) {
				this.processURLString(this.URLString, true);
			}
	
			if (urlstring) {
				if (this.URLString.length) {
					this.URLString += this.argumentSeparator + urlstring;
				} else {
					this.URLString = urlstring;
				}
			}
	
			this.setVar("rndval", new Date().getTime());
	
			urlstringtemp = new Array();
			for (key in this.vars) {
				if (false == this.vars[key][1] && true == this.encodeURIString) {
					encoded = this.encVar(key, this.vars[key][0], true);
					delete this.vars[key];
					this.vars[encoded[0]] = Array(encoded[1], true);
					key = encoded[0];
				}
	
				urlstringtemp[urlstringtemp.length] = key + "=" + this.vars[key][0];
			}
			if (urlstring){
				this.URLString += this.argumentSeparator + urlstringtemp.join(this.argumentSeparator);
			} else {
				this.URLString += urlstringtemp.join(this.argumentSeparator);
			}
		}
	
		this.runResponse = function() {
			eval(this.response);
		}
	
		this.runAJAX = function(urlstring) {
			if (this.failed) {
				this.onFail();
			} else {
				this.createURLString(urlstring);
				if (this.element) {
					this.elementObj = document.getElementById(this.element);
				}
				if (this.xmlhttp) {
					var self = this;
					if (this.method == "GET") {
						totalurlstring = this.requestFile + this.queryStringSeparator + this.URLString;
						this.xmlhttp.open(this.method, totalurlstring, true);
					} else {
						this.xmlhttp.open(this.method, this.requestFile, true);
						try {
							this.xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
						} catch (e) { }
					}
	
					this.xmlhttp.onreadystatechange = function() {
						switch (self.xmlhttp.readyState) {
							case 1:
								self.onLoading();
								break;
							case 2:
								self.onLoaded();
								break;
							case 3:
								self.onInteractive();
								break;
							case 4:
								self.response = self.xmlhttp.responseText;


								self.responseXML = self.xmlhttp.responseXML;
								self.responseStatus[0] = self.xmlhttp.status;
								self.responseStatus[1] = self.xmlhttp.statusText;
	
								if (self.execute) {
									self.runResponse();
								}
	
								if (self.elementObj) {
									elemNodeName = self.elementObj.nodeName;
									elemNodeName.toLowerCase();
									if (elemNodeName == "input"
									|| elemNodeName == "select"
									|| elemNodeName == "option"
									|| elemNodeName == "textarea") {
										self.elementObj.value = self.response;
									} else {
										self.elementObj.innerHTML = self.response;
									}
								}
								if (self.responseStatus[0] == "200") {
									self.onCompletion();
								} else {
									self.onError();
								}
	
								self.URLString = "";
								break;
						}
					};
	
					this.xmlhttp.send(this.URLString);
				}
			}
		};
	
		this.reset();
		this.createAJAX();
	}
	
	var ajax = new Array();
	
	function Cidade(sel, est, cid, adm)
	{
		var estadoCodigo = document.getElementById(est).value;
		document.getElementById(cid).options.length = 0;
		var index = ajax.length;
		ajax[index] = new sack();
		ajax[index].requestFile = adm+'system/php/cidade.php?estado='+estadoCodigo;
		ajax[index].onCompletion = function(){ CriarCidade(index, cid) };
		ajax[index].runAJAX();
	}
	function CriarCidade(index, cid)
	{
		var obj = document.getElementById(cid);
		eval(ajax[index].response);
	}


	function categoria(sel, est, cid, adm)
	{
		var cat = document.getElementById(est).value;
		document.getElementById(cid).options.length = 0;
		var index = ajax.length;
		ajax[index] = new sack();
		ajax[index].requestFile = adm+'system/php/categoria.php?categoria='+cat;
		ajax[index].onCompletion = function(){ criacategoria(index, cid) };
		ajax[index].runAJAX();
	}
	function criacategoria(index, cid)
	{
		var obj = document.getElementById(cid);
		eval(ajax[index].response);
	}
/* Teste fim */
