
/*
NARIX v_0.20 multirequest library
*/

// Shitaa funkcija izmantojaas arii Aglim kaut kaadaa modulii
function randomString(len) {
    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
    var rs = "";
    for (var i=0; i<len; i++) {
	var rnum = Math.floor(Math.random() * chars.length);
	rs += chars.substring(rnum, rnum+1);
    }
    return rs;
}

function MRequests() {
    this.defaultMethod = "POST";
    this.actionFile = "index.php";
    this.storage = new Array();
}

// iesaak transakciju un atgriezj attieciigo id
MRequests.prototype.start = function() {
    // uzgjeneree stringu, peec kura atradiis objektu 
    // masiivaa attieciigo requestu
    var rand_string = randomString(10);
    
    // uztaisam jaunu objektu
    var new_object = new net.hospital();
    
    // izveidojam jaunu apakshmasiivu prieksh objekta un kveves
    this.storage[rand_string] = new Array();
    this.storage[rand_string]["obj_name"] = new_object;

    this.storage[rand_string]["queue"] = "";

    return rand_string;
}

// noselektee visus formas mainiigos un nosuuta ar GETu
MRequests.prototype.addForm = function(formname, trans_id, variables, submit_button) {
    var getstr = "";
    var form = eval("document."+formname);

    for (i=0; i<form.length; i++) {
	var elem = form.elements[i];
	
	switch (elem.tagName) {
	case "INPUT" : {
	    switch (elem.type) {
	    case "text" : 
	    case "password" :
	    case "hidden" : {
		getstr += elem.name + "=" + elem.value + "&";
		break;
	    }
	    case "checkbox" : {
		if (elem.checked) {
		    getstr += elem.name + "=" + elem.value + "&";
		} else {
		    getstr += elem.name + "=&";
		}
		break;
	    }
	    case "radio" : {
		if (elem.checked) 
		    getstr += elem.name + "=" + elem.value + "&";		 
		break;
	    }
	    }
	    break;
	}
	    
	case "SELECT" : {
            if (elem.selectedIndex>=0)
	        getstr += elem.name + "=" + elem.options[elem.selectedIndex].value + "&";
	    break;
	}
	    
	case "TEXTAREA" : {
	    getstr += elem.name + "=" + elem.value + "&";
	    break;
	}
	}
    }
    
    // ja ir padota poga, ar kuru submitee formu - piemet klaat GETaa
    if (submit_button) {
	getstr += submit_button.name + "=" + submit_button.value;
    }

    // ja ir padota poga, ar kuru submitee formu - piemet klaat GETaa
    if (variables) {
	getstr += variables + "&";
    }
    
    getstr += "_|*_|"; // beidzas mainiigie

    this.storage[trans_id]["queue"] += getstr;
 }


MRequests.prototype.addUrl = function(url, trans_id, actionFile) {
    var getstr = "";

    // ja ir noraadiits urlis
    if (url) {
        getstr += (getstr ? "&" : "")+url;
    }

    getstr += "_|*_|"; // beidzas mainiigie
    this.storage[trans_id]["queue"] += getstr;
    if (actionFile) {
	this.storage[trans_id]["actionFile"] = actionFile;
    }
}

MRequests.prototype.commit = function(trans_id) {
    var obj = this.storage[trans_id]["obj_name"];
    var queue = this.storage[trans_id]["queue"];
    var actionFile = this.storage[trans_id]["actionFile"];
    var url;


    url = (actionFile ? actionFile : this.actionFile);
    obj.loadXMLDoc(url, this.defaultMethod, queue);

    // izmetam aaraa kruto objektu
    delete obj;
}

var multireq = new MRequests();
