/*
Fonctions dediees à l'envoi des commandes
*/
function getArgList(cmdname) {
	var arglist = null;
    var i=0;
    for (i=0; arglist == null && i < parent.argtab.length; i++) {
    	if (parent.argtab[i][0] == cmdname) {
        	arglist = parent.argtab[i][1];
        }
    }
    if (arglist == null) {
    	alert("Commande non declaree:"+cmdname);
    	arglist = new Array();
    }
    return arglist;
}

function sendCmdInFrame(cmdname, target_frame, cmdarg1, cmdarg2, cmdarg3, cmdarg4, cmdarg5, cmdarg6) {
	var cmdargs = new Array();
	if (cmdarg1 != null) {
		cmdargs.push(cmdarg1);
		if (cmdarg2 != null) {
			cmdargs.push(cmdarg2);
			if (cmdarg3 != null) {
				cmdargs.push(cmdarg3);
				if (cmdarg4 != null) {
					cmdargs.push(cmdarg4);
					if (cmdarg5 != null) {
						cmdargs.push(cmdarg5);
						if (cmdarg6 != null) {
							cmdargs.push(cmdarg6);
						}
					}
				}
			}
		}
	}
	sendCommand(cmdname, cmdargs, null, target_frame);
}

function sendCmd(cmdname, cmdarg1, cmdarg2, cmdarg3, cmdarg4, cmdarg5, cmdarg6) {
	sendCmdInFrame(cmdname, null, cmdarg1, cmdarg2, cmdarg3, cmdarg4, cmdarg5, cmdarg6);
}

function sendCommand(cmdname, cmdargs, layercmdname, target_frame) {
	if ( cmdargs == null ) {
		cmdargs = new Array();
	}
	if ( layercmdname == null ) {
		layercmdname = "command";
	}
	if ( target_frame == null ) {
		target_frame = "akcmd";
	}
//	alert("sendCommand: cmdname="+cmdname+", cmdargs="+cmdargs+", layercmdname="+layercmdname+", target="+target_frame);
    var layer = getLayerById(layercmdname);
    var form = CreateForm(layer, cmdname, cmdargs, target_frame);
    sendForm(form, false);
}

function sendForm(form, doTrace) {
	if (doTrace) {
    	displayForm(form);
    }
//    alert("start submitting form...");
    form.submit();
//    alert("submitted");
}

function addInputTag(paramname, paramvalue) {
	var s = "";
    s += "<input type=\"hidden\" name=\""+paramname+"\" value=\""+paramvalue+"\" >";
    return s;
}

function getUserInfo2Submit() {
	var s = "";
    s += addInputTag("user", parent.user);
    s += addInputTag("password", parent.pwd);
	if ( parent.admin_user != null ) {
		s += addInputTag("admin_user", parent.admin_user);
	}
    return s;
}

function getFormStartTag(target_frame) {
	var s = "";
	var pathname = document.location.pathname;
	if ( parent != null ) {
		pathname = parent.location.pathname;
	}
    s += "<form name=\"command\" action=\"" + pathname + "\" method=\"post\"";
    if ( target_frame != null ) {
        s += " target=\"" + target_frame + "\"";
    }
    s += ">";
    return s;
}

function getFormEndTag() {
    return "</form>";
}

function buildFormCode(cmdname, cmdargs, target_frame) {
	var s = "";
	s += getFormStartTag(target_frame);
    s += getUserInfo2Submit();
    s += addInputTag("cmd", cmdname);
	var argname = getArgList(cmdname);
//	alert("buildFormCode: argname="+argname);
	for (var i=0; i < cmdargs.length && i < argname.length; i++) {
        if ( isArray(cmdargs[i]) ) {
			for (var j=0; j < cmdargs[i].length; j++) {
            	s += addInputTag(argname[i], cmdargs[i][j]);
			}
		} else {
			if ( cmdargs[i] != undefined )
			{
			    s += addInputTag(argname[i], EscapeQuotes(cmdargs[i]));
			}
		}
    }
    s += getFormEndTag();
    return s;
}

function CreateForm(layer, cmdname, cmdargs, target_frame) {
	var txt = buildFormCode(cmdname, cmdargs, target_frame);
//	alert(txt);
	var form = getForm2Send(layer, txt);
	return form;
}

function EscapeQuotes(txt) {
	re = new RegExp("\"", "g");
	return txt.replace(re, "&quot;");
}
