﻿// DigiAJAX scripts for XHTML
// Author: Fredrik Wikeby (Digikom AS)
// All rights reserved

// Global vars
var digiAjaxCount = 0;
var digiAjaxLoadArray = new Array();

// Add to queue
function digiAjaxAdd(strUrl,strDiv,intType) {
	digiAjaxLoadArray[digiAjaxCount] = new Array(5);
	digiAjaxLoadArray[digiAjaxCount][0] = digiAjaxCount;
	digiAjaxLoadArray[digiAjaxCount][1] = strUrl;
	digiAjaxLoadArray[digiAjaxCount][2] = strDiv;
	digiAjaxLoadArray[digiAjaxCount][3] = intType;
	digiAjaxLoadArray[digiAjaxCount][4] = 0;
	digiAjaxCount = digiAjaxCount + 1;
}

// Start load with delay
function digiAjaxLoad(intRun) {
	if (intRun == 0) {
		setTimeout("digiAjaxLoad(1)",500);
	} else {
		digiAjaxQueueLoad();
	}
}

// Load queue
function digiAjaxQueueLoad() {
	arrayLoaded = false;
	for (i=0; i<digiAjaxLoadArray.length; i++) {
		loadStatus = digiAjaxLoadArray[i][4];
		if (loadStatus == 0) {
			loadID = digiAjaxLoadArray[i][0];
			loadUrl = digiAjaxLoadArray[i][1];
			loadDiv = digiAjaxLoadArray[i][2];
			loadType = digiAjaxLoadArray[i][3];
			loadUrl = loadUrl.replace(/&amp;/g,'&');

			// Load screen
			digiAjaxLoadScreen(loadDiv,loadType);
			digiAjaxGet(loadUrl,loadDiv,loadType);
			digiAjaxLoadArray[i][4] = 1;
			arrayLoaded = true;
			break;
		}
	}
	if (arrayLoaded) {
		setTimeout("digiAjaxQueueLoad()",1000);
	}
}

// Get URL
function digiAjaxGet(strUrl, strDiv, intType) {
    if (window.XMLHttpRequest) {
		digiHttp = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		digiHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	digiHttp.varType = intType;
	digiHttp.varName = strDiv;
	digiHttp.onreadystatechange = digiAjaxState;
	digiHttp.open('GET', strUrl, true);
	digiHttp.send(null);
}

// Check state and return div
function digiAjaxState() {
	strLoadDiv = digiHttp.varName;
	intLoadType = digiHttp.varType;

	// if (digiHttp.readyState == 0) {
	// 	digiAjaxLoadScreen(strLoadDiv,intLoadType);
	// }
	if (digiHttp.readyState == 4) {
		if (digiHttp.status == 200) {
			//document.getElementById(strLoadDiv).innerHTML = digiHttp.responseText.replace(/[form]/g,'<form'); 
			document.getElementById(strLoadDiv).innerHTML = digiHttp.responseText; 
		} else {
			document.getElementById(strLoadDiv).innerHTML = "Loading failed: " + digiHttp.statusText; 
		}
	}
}

// Show loadscreen
function digiAjaxLoadScreen(strDiv,intType) {
	var loadScreen = "";
	if (intType == 1) {
		loadScreen = "<div class='digiLoadScreen'><img src='/webxec/images/loading.gif' width='66' height='66' border='0' alt='' /></div>";
		document.getElementById(strDiv).innerHTML = loadScreen;
	}
}

