﻿var ajax_count = 0;
var ajax_curr_idx = 0;
var ajax_cache = new Array();
var ajax_frame_script = "ajax_history.php";
var ajax_frame_loaded = false;
var ajax_target_div = "";


function ajax_history_init(div, count) {
	ajax_target_div = div;
	ajax_count = ajax_curr_idx = count;
	window.setInterval ("ajax_check_state()", 1000);
}


function ajax_save_state(div, url, param, page) {
	if(page == null)
		page = 1;
	ajax_count ++;
	ajax_cache[ajax_count] = document.getElementById(ajax_target_div).innerHTML;
	var frame = document.getElementById("ajax_history_frame");
	ajax_frame_loaded = false;
	frame.src = ajax_frame_script +"?count="+ ajax_count +"&div="+ div +"&page="+ page;
	ajax_curr_idx = ajax_count;
	Cookies.set("ajax_history_url_"+div+ajax_count, url);
	Cookies.set("ajax_history_param_"+div+ajax_count, encodeURIComponent(param));
}


function ajax_check_state() {
	if (ajax_frame_loaded == false)
		return;
	var doc = window.ajax_history_frame.document;
	if (doc == null)
		return;
	var new_idx = doc.getElementById("ajax_history_count").value;
	//alert('new:'+new_idx+',curr:'+ajax_curr_idx);
	if (new_idx != ajax_curr_idx) {
		if (ajax_cache[new_idx]) {
			document.getElementById(ajax_target_div).innerHTML = ajax_cache[new_idx];
		}
		else{
			var url = Cookies.get("ajax_history_url_"+ ajax_target_div + new_idx)	;
			var param = Cookies.get("ajax_history_param_"+ ajax_target_div + new_idx);
			if(url != null && param != null){
				//alert('url:'+url+';param:'+decodeURIComponent(param));
				var mgr = new Ext.UpdateManager(ajax_target_div);
				mgr.update(url, decodeURIComponent(param),function(){ajax_cache[new_idx] = document.getElementById(ajax_target_div).innerHTML;});
			}
		}
		ajax_curr_idx = new_idx;
	}
}


function ajax_frame_onload() {
	ajax_frame_loaded = true;
}
