var Tab = {
	create: function( url, dir, element, header, content, time ) {
		var tab = Tab;
		
		tab.url = url;
		tab.dir = dir;
		tab.element = $(element);
		tab.header = $(header).rows[0].cells;
		tab.content = $(content);
		tab.time = time;
		tab.tabs = [];
		tab.ajax = null;
		tab.loading = false;
		tab.loadingHTML = "<div class='carregando'><img src='"+tab.url+"/templates/imagens/indicator_circle.gif' align='absmiddle' /> Carregando...</div>";
		
		if( tab.url != window.location.href ) {
			tab.url = window.location.href;
		}
		
		var list = tab.url.split("/");
        for( var i = 0; i < list.length; i++ ) {
            if( list[i].indexOf("?") > -1 ) {
                list[i] = list[i].substring(0, list[i].indexOf("?"));
            }
        }
		if( list[list.length-1] == "index.php" || list[list.length-1] == "index.abas.php" || list[list.length-1] == "entrada.php" ) {
			list[list.length-1] = "";
		}
		tab.url = list.join("/");
		
		if( tab.url.substring(tab.url.length-1, tab.url.length) != "/" && tab.dir.substring(0, 1) != "/"  ) {
			tab.url += "/"+ tab.dir;
		} else {
			tab.url += tab.dir;
		}
		
		for( var i = 0; i < tab.header.length; i++ ) {
			// [object] - referencia para o elemento
			// [id] - id do elemento (servira de referencia para o php
			// [selected] - true ou false
			if( tab.header[i].id != "" ) {
				tab.tabs.push(new Array(
					tab.header[i],
					tab.header[i].id,
					( $(tab.header[i].id).hasClassName('selected') ? true : false )
				));
			}
		}
		
		tab.start();
	},
	
	start: function() {
		var tab = Tab;
		for( var i = 0; i < tab.tabs.length; i++ ) {
			Event.observe(tab.tabs[i][0], 'click', tab.bindClick);
		}
		
		tab.first();
	},
	
	bindClick: function(e) {
		if( !e ) e = window.event;
		if( e.target ) {
			var target = e.target;
		} else {
			var target = e.srcElement;
		}
		try {
			var tab = Tab;
			var id = target.id;
			var data = new Date();
			var rnd = data.getTime();
			if( !tab.loading ) {
				clearInterval(tab.interval);
				var obj = e.target;
				if( !target.id || target.id == "" || target.id == "ultimo" ) {
					obj = target.parentNode;
					id = target.parentNode.id;
				}
				
				for( var i = 0; i < tab.tabs.length; i++ ) {
					tab.tabs[i][0].removeClassName("selected");
				}
				obj.addClassName("selected");
				tab.ajax = new Ajax.Request(tab.url+ "/listagem."+ id +".php?rnd="+rnd, {
					method: "get",
					onSuccess: function(transport) {
						var tab = Tab;
						clearInterval(tab.interval);
						tab.content.innerHTML = transport.responseText;
						for( var i = 0; i < tab.tabs.length; i++ ) {
							if( tab.tabs[i][1] == id ) {
								tab.tabs[i][2] = true;
							} else {
								tab.tabs[i][2] = false;
							}
						}
						tab.loading = false;
					},
					onComplete: function(transport) {
						var tab = Tab;
						clearInterval(tab.interval);
						tab.content.innerHTML = transport.responseText;
						for( var i = 0; i < tab.tabs.length; i++ ) {
							if( tab.tabs[i][1] == id ) {
								tab.tabs[i][2] = true;
							} else {
								tab.tabs[i][2] = false;
							}
						}
						tab.loading = false;
					},
					onFailure: next,
					onLoading: function(transport) {
						var tab = Tab;
						tab.content.innerHTML = tab.loadingHTML;
						tab.loading = true;
					}
				});
			}
		} catch(e) {}
	},
	
	first: function() {
		var tab = Tab;
		if( !tab.loading ) {
			var obj = tab.tabs[0][0];
			
			for( var i = 0; i < tab.tabs.length; i++ ) {
				tab.tabs[i][0].removeClassName("selected");
			}
			var data = new Date();
			var rnd = data.getTime();
			obj.addClassName("selected");
			tab.ajax = new Ajax.Request(tab.url+ "/listagem."+ obj.id +".php?rnd="+rnd, {
				method: "get",
				onSuccess: function(transport) {
					try {
						var tab = Tab;
						clearInterval(tab.interval);
						tab.content.innerHTML = transport.responseText;
						for( var i = 0; i < tab.tabs.length; i++ ) {
							tab.tabs[i][2] = false;
						}
						tab.tabs[0][2] = true;
						tab.loading = false;
						
						tab.interval = window.setInterval("next()", tab.time);
					} catch(e) { next(); }
				},
				onComplete: function(transport) {
					try {
						var tab = Tab;
						clearInterval(tab.interval);
						tab.content.innerHTML = transport.responseText;
						for( var i = 0; i < tab.tabs.length; i++ ) {
							tab.tabs[i][2] = false;
						}
						tab.tabs[0][2] = true;
						tab.loading = false;
						
						tab.interval = window.setInterval("next()", tab.time);
					} catch(e) { next(); }
				},
				onFailure: next,
				onLoading: function(transport) {
					var tab = Tab;
					tab.content.innerHTML = tab.loadingHTML;
					tab.loading = true;
				},
				onFailure: next
			});
		}
	}
};

function next() {
	var iPosition = 0;
	var tab = Tab;
	clearInterval(tab.interval);
	for( var i = 0; i < tab.tabs.length; i++ ) {
		if( tab.tabs[i][2] ) {
			iPosition = i;
		}
	}
	if( iPosition < (tab.tabs.length-1) ) {
		iPosition++;
	} else {
		iPosition = 0;
	}
	
	if( !tab.loading ) {
		var obj = tab.tabs[iPosition][0];
		
		for( var i = 0; i < tab.tabs.length; i++ ) {
			tab.tabs[i][0].removeClassName("selected");
		}
		obj.addClassName("selected");
		var data = new Date();
		var rnd = data.getTime();
		tab.ajax = new Ajax.Request(tab.url+ "/listagem."+ obj.id +".php?rnd="+rnd, {
			method: "get",
			onSuccess: function(transport) {
				try {
					var tab = Tab;
					clearInterval(tab.interval);
					tab.content.innerHTML = transport.responseText;
					for( var i = 0; i < tab.tabs.length; i++ ) {
						tab.tabs[i][2] = false;
					}
					tab.tabs[iPosition][2] = true;
					tab.loading = false;
					
					tab.interval = window.setInterval("next()", tab.time);
				} catch(e) { next(); }
			},
			onComplete: function(transport) {
				try {
					var tab = Tab;
					clearInterval(tab.interval);
					tab.content.innerHTML = transport.responseText;
					for( var i = 0; i < tab.tabs.length; i++ ) {
						tab.tabs[i][2] = false;
					}
					tab.tabs[iPosition][2] = true;
					tab.loading = false;
					
					tab.interval = window.setInterval("next()", tab.time);
				} catch(e) { next(); }
			},
			onFailure: next,
			onLoading: function(transport) {
				var tab = Tab;
				tab.content.innerHTML = tab.loadingHTML;
				tab.loading = true;
			},
			onFailure: next
		});
	}
}

var bShow = false;
var bHide = true;
var interval = null;
function SimularPagamento( url, element, target ) {
	Event.stopObserving(target, 'mouseover');
	Event.observe(target, 'mouseover', function(e) {
		if( !bShow ) {
			new Ajax.Request(url, {
								method: "get",
								parameters: "prd="+ $("produto_id").value,
								/*onLoading: function() {
									alert("aldre");
								},*/
								onSuccess: function(t) {
									$(element).innerHTML = t.responseText;
									$(element).show();
									bShow = true;
									interval = setTimeout("HidePagamentos('simular_pagto_lista')", 10000);
								}
			});
		}
	});
}

function HidePagamentos( element ) {
	if( bHide ) {
		$(element).hide();
		bShow = false;
		window.clearTimeout(interval);
	}
}
