// create style sheets
if (!isBrowserTooOld()) {
	jsPrint("<STYLE TYPE='text/css'>");
	jsPrint("#DataTable { ");
	jsPrint("	font-size: 14;");
	jsPrint("	border-top: solid;");
	jsPrint("	border-left: solid;");
	jsPrint("	border-right: solid;");
	jsPrint("	border-bottom: solid;");
	jsPrint("	border-color: black;");
	jsPrint("	border-top-width: 2;");
	jsPrint("	border-left-width: 2;");
	jsPrint("	border-right-width: 1;");
	jsPrint("	border-bottom-width: 1;");
	jsPrint("} </STYLE>");

	jsPrint("<STYLE TYPE='text/css'>");
	jsPrint("#DataHeader { ");
//	jsPrint("	font-size: 13;");
	jsPrint("	border-bottom: solid;");
	jsPrint("	border-bottom-width: 2;");
	jsPrint("	border-right: solid;");
	jsPrint("	border-right-width: 1;");
	jsPrint("} </STYLE>");

	jsPrint("<STYLE TYPE='text/css'>");
	jsPrint("#DataRow { ");
//	jsPrint("	font-size: 13;");
	jsPrint("	border-bottom: solid;");
	jsPrint("	border-width: 1;");
	jsPrint("	border-right: solid;");
	jsPrint("	border-right-width: 1;");
	jsPrint("} </STYLE>");
}

// ----------------------------------------------
// detalii vinzator (va fi folosita in jsUtil)
var sellerWindowPointer = null;

function setFocusOnParentWindow() {
    if (sellerWindowPointer != null) {
        sellerWindowPointer.close();
        sellerWindowPointer = null;
    }

}	// setFocusOnParentWindow

// -----------------------------------------------------------
function displayTable(allRows, 
					  header,
					  width,
					  alignment,
					  displayMessage,
					  comerciantColumn) {

	// daca comerciantColumn >= 0 atunci se face un link pe coloana
	// respectiva
	// daca comerciantColumn == -1 atunci se adauga o noua coloana 
	// cu un checkbox pentru a permite stergerea
    // ultima coloana din allRows este idParent care nu este nul 
    // in cazul articolelor
    // coloana 4 (3 daca se numara de la 0) este cea a titlului.
    // Ea va prezenta un link in cazul articolului

	var toPrint = null;

    if (allRows.length == 0) {
        // nu exista inregistrari
        jsPrint(displayMessage);
        return;
    }

	toPrint = 
		"<form name='formList'> " +
		"<table width='100%'><tr><td>" + displayMessage + "</td>";
	
	if (comerciantColumn == -1 && allRows.length > 0) {
		toPrint += 
			"<td align='right'>" +
			"<input type='button' value='Sterge inregistrarile selectate' " + 
			"       name='stergeMesaje' " +
			"		onClick='stergeMesajeSelectate(formList)'>" +
			"</td>";
	}

	toPrint += "</tr></table>";
	jsPrint(toPrint);

	if (allRows.length == 0) {
        toPrint = "</form>";
    	jsPrint(toPrint);

        return;
    }

	toPrint = 
		"<table " + 
		(isBrowserTooOld() ? " border='1' " : " id=DataTable ") +
		"  width='100%' CELLSPACING='0' cellpadding='2'>";

	// write the header
	toPrint += "<tr>";
	for (var i = 0; i < header.length; i++) {
		toPrint += 
//		"<th align='center' width='" + width[i] + "%'> " + header[i] + " </th>";
		"<th " +
		(isBrowserTooOld() ? "" : " id=DataHeader ") +
		" width='" + width[i] + "%'> " + header[i] + " </th>";
	}
	
	if (comerciantColumn == -1) {
		toPrint += "<th " + 
				   (isBrowserTooOld() ? "" : " id=DataHeader ") +
				   ">Sterge</th>";

        // coloana de edit
//		toPrint += "<th " + 
//				   (isBrowserTooOld() ? "" : " id=DataHeader ") +
//				   ">&nbsp;</th>";
	}

	toPrint += "</tr>";
	jsPrint(toPrint);

	// write values
	for (var i = 0; i < allRows.length; i++) {
		toPrint = "<tr>";

		for (var j = 0; j < header.length; j++) {
			toPrint += "<td " + 
					   (isBrowserTooOld() ? "" : " id=DataRow ") +
					   " align='" + alignment[j] + "'>";

			if (allRows[i][j] == "" || allRows[i][j] == "0") {
				toPrint += "&nbsp;";
			} else {
				if (j == COLOANA_DATA) {
					// aceasta coloana este o data
					toPrint += getFormattedDate(allRows[i][j]);

				} else if (j == COLOANA_TITLU) {
                    // titlu. testez daca exista link
                    var articolLink = "";
                    if (allRows[i][COLOANA_CU_DETALII] != "0") {
                        // avem un articol. Creaza linkul
                        articolLink = "<a href='detalii_carte.php?carteId=" + 
                            allRows[i][COLOANA_ID_ITEM] + "'>";
                    }

                    toPrint += articolLink + allRows[i][j] + 
                               (articolLink == "" ? "" : "</a>");

                } else {
                    // coloana obisnuita  
                    var link = "";
					if (j == comerciantColumn) {
						link = "<a href='...' onClick=\"return showLibrarieData('" + 
							allRows[i][COLOANA_ID_LIBRARIE] + "')\">";
					} 

					toPrint += link + allRows[i][j] + 
                               (link == "" ? "" : "</a>");
				}
			}

			toPrint += "</td>";
		}
		
		if (comerciantColumn == -1) {
			toPrint += "<td " + 
				(isBrowserTooOld() ? "" : " id=DataRow ") +
				" align='center'>" +
				"<input type='checkbox' name='chkSterge_" + i + "'></td>";

            // butonul de editare
//			toPrint += "<td " + 
//				(isBrowserTooOld() ? "" : " id=DataRow ") +
//				" align='center'>" +
//				"<input type='button' onClick='editAcestTitlu(" + i + ")' value='Modifica'></td>";
		}

		jsPrint(toPrint + "</tr>");
	}

	jsPrint("</table></form>");

}	// displayTable

// -----------------------------------------------------------
/**
 * Descideo freastra si tipareste datele despre o revista
 */
function detaliiRevista(idParent) {
    // testez mai intii daca idParent exista in allRows (toate cartile)
    var titlu = "";
    var luna = "";
    var an   = "";

    for (var i = 0; i < allRows.length; i++) {
        if (idParent == allRows[i][COLOANA_ID_ITEM]) {
            titlu = allRows[i][COLOANA_TITLU];
            luna  = allRows[i][COLOANA_LUNA];
            an    = allRows[i][COLOANA_AN];

            idParent = "";
            break;
        }
    }

    var params = "idParent=" + idParent + 
                 "&titlu=" + titlu + 
                 "&luna=" + luna +
                 "&an=" + an;

    window.open("infoParent.php?" + params, "",
                "menubar=no,width=400,height=130,left=200,top=150,resizable=no,scrollbars=no");

	return false;

}	// detaliiRevista

function createOneRowLibraryData(header, value) {
    return "<tr>" +
		   "<td align='right' width='10%' nowrap>" + header + ":</td>" +
		   "<td>" + value + "&nbsp;</td>" +
		   "</tr>";

}   // createOneRowLibraryData

// -----------------------------------------------------------
/**
 * Descideo freastra si tipareste datele despre un comerciant
 * Folosetse variabila global allLibraries
 */
function showLibrarieData(idLibrarie) {
	var rowData = null;

	for (var i = 0; i < allDetaliiLibrarie.length; i++) {
		if (allDetaliiLibrarie[i][0] == idLibrarie) {
			rowData = allDetaliiLibrarie[i];
			break;
		}
	}

	if (rowData == null) return false;

	sellerWindowPointer = window.open('', '', 
		'menubar=no,width=500,height=280,left=100,top=150,resizable=no,scrollbars=no');
	var toPrint = 
		"<html><head><title>Info</title>" + 
        "<" + "script language='JavaScript'><!--\n" + 
//        "window.onblur=closeThisWindow; \n" +
        "function closeThisWindow() {\n" +
        "window.close(); }\n" + 
        "//-->\n" + 
        "<" + "/script> " +
        "</head><body bgColor='lightgrey'>" + 
        "<table border='1' cellpadding='2' cellspacing='0' width='100%'>" +
        createOneRowLibraryData("Denumire", rowData[1]) +
        createOneRowLibraryData("Adresa", rowData[2]) +
        createOneRowLibraryData("Telefon", rowData[3]) +
        createOneRowLibraryData("Fax", rowData[4]) +
        createOneRowLibraryData("Email", 
            (rowData[5] == "" ? "" :
			 		 "<a href='mailto:" + rowData[5] + "'>" + rowData[5] + "</a>")) +
        createOneRowLibraryData("Adresa internet", 
            (rowData[6] == "" ? "" :
			 		 "<a href='http://" + rowData[6] + "' target='_blank'>" + rowData[6] + "</a>")) +
		"</table>" +
		"<center>" +
		"<form>" + (isIE ? "" : "<br>") +
		"<input type='button' value='Inchide fereastra' " + 
				"onClick='window.close()'>" +
		"</form>" +
		"</center>" +
		"</body>" +
		"</html>";

	sellerWindowPointer.document.writeln(toPrint);
	sellerWindowPointer.document.close();
    
    // ruleaza aceasta functie in parinte
    window.onfocus = setFocusOnParentWindow;

	return false;

}	// showLibrarieData

/**
 * Returneaza ceva de form: <option value='xx'>YY .......
 */
function getOptionForCombo(allData, defaultValue, startIndex) {
	var toString = "";

    if (startIndex == null) startIndex = 0;
	for (var i = startIndex; i < allData.length; i++) {
		toString += "<option ";
   		if (allData[i][0] == defaultValue) toString += " selected ";
		toString += " value = '" + allData[i][0] + "'>" +
					allData[i][1];
	}

	return toString;

}	// getOptionForCombo

/**
 *
 */
function displayLinks(phpPageName, currentPage, nPages) {
	if (nPages <= 1) return;

    var toPrint = "<p align='right'>Selecteaza o pagina: &nbsp; &nbsp; ";

    for (var i = 1; i <= nPages; i++) {
        if (i == currentPage) {
            toPrint += i + " ";
        } else {
            // avem un link
            toPrint += "<a href='" + phpPageName + "' " +
                " onClick='return clickOnALink(" + i + ");' >" + i + "</a> ";
        }
    }

    toPrint += "</p>";
    jsPrint(toPrint);

}	// displayLinks

// -----------------------------------------------------------
function jsPrint(value) {
	document.writeln(value);

}	// jsPrint

// -----------------------------------------------------------
function getRowColor(bEvenRow) {
	var color = " bgcolor = " + 
		    (bEvenRow ? "'gray'" : "'lightgrey'");
	return "";

}	// getRowColor

// -----------------------------------------------------------
function addSessionIdToRelatedElements(sessionId) {
    // process links first
    var acceptedLinks = "|http|"
	var allLinks = document.links;
	for (var i = 0; i < allLinks.length; i++) {
		var aLink = allLinks[i];

        // daca linkul e gol atunci iesi
        if (aLink.href.indexOf("...") > -1) continue;

        // daca este de tip interzis, nu fa nimic
        var type = aLink.href.substring(0, 4).toLowerCase();
        if (acceptedLinks.indexOf("|" + type + "|") == -1) continue;

        // am accum un link la care trebuie sa adaug sessionID
        if (aLink.href.indexOf("?") == -1) {
            aLink.href += "?";
        } else {
            aLink.href += "&";
        }

        aLink.href += "sessionId=" + sessionId;
	}

}   // addSessionIdToRelatedElements

// -----------------------------------------------------------
function getFormattedDate(stringDate) {
	// Returneaza o data din format "yyyy-mm-dd"
	// in format dd/mm/yyyy
	if (stringDate == null) stringDate = "";
	if (stringDate != "") {
		var an = parseFloat(stringDate.substring(0, 4));
		var luna = parseFloat(stringDate.substring(5, 7));
		var zi = parseFloat(stringDate.substring(8));

		stringDate = (zi < 10 ? "0" : "") + zi + "/" +
					 (luna < 10 ? "0" : "") + luna + "/" +
					 (an < 1900 ? an + 1900 : an);
	}

	return stringDate;

}   // getFormattedDate

// -----------------------------------------------------------
function getValueFromArray(anArray, key, firstNChars) {
	// array este de forma { key , value }
	var value = "";

	for (var i = 0; i < anArray.length; i++) {
		if (anArray[i][0] == key) {
			value = anArray[i][1];

			if (firstNChars != null) {
				if (value.length > firstNChars) {
					value = value.substring(0, firstNChars) + "...";
				}
			}

			break;
		}
	}

	return value;

}	// getValueFromArray

// -----------------------------------------------------------
function getTrim(value) {
	// trim a string
	var startPos = 0;

	// process beginning
	for (var i = 0; i < value.length; i++) {
		if (value.charAt(i) != " ") break;
		startPos++;
	}

	value = value.substring(startPos);

	// process end
	startPos = value.length;
	for (var i = value.length - 1; i >= 0; i--) {
		if (value.charAt(i) != " ") break;
		startPos--;
	}	

	value = value.substring(0, startPos);

	return value;

} // getTrim

// -----------------------------------------------------------------
// UTILITARE PENTRU CREARE MANAGER + LIBRARIE

// -----------------------------------------------------------
var CONTROL_TEXT = 0;
var CONTROL_COMBO = 1;

var COLOANA_HEADER          = 0;
var COLOANA_NUME            = 1;
var COLOANA_TIP_CONTROL     = 2;
var COLOANA_MAX_LENGTH      = 3;    // numai pentri CONTROL_TEXT
var COLOANA_MAX_SIZE        = 4;    // numai pentri CONTROL_TEXT
var COLOANA_VALORI_COMBO    = 5;    // numai pentri CONTROL_COMBO
var COLOANA_MANDATORY       = 6;      

function createRegistrationTable(dateLib) {
    // dateLib este un array de array-uri:
    // [0] = new Array(header, numeControl, tipControl, maxLength, maxSize, valoriCombo, TRUE (data este mandatory))
    var toPrint = "<table width='100%'>";
    
    var aRow = null;
    for (var i = 0; i < dateLib.length; i++) {
        aRow = dateLib[i];

        toPrint += "<tr>" +
            "<td align='right' width='40%'>" + aRow[COLOANA_HEADER] + 
            ": </td>" + "<td width='60%'>";
        
        if (aRow[COLOANA_TIP_CONTROL] == CONTROL_TEXT) {
            // TEXT field
            toPrint += "<input type='text' name='" + aRow[COLOANA_NUME] + "' " +
            " maxlength='" + aRow[COLOANA_MAX_LENGTH] + "' " +
            " size='" + aRow[COLOANA_MAX_SIZE] + "'> ";
        } else {
            // COMBO
            toPrint += "<select name='" + aRow[COLOANA_NUME] + "' >";

            var valoriCombo = aRow[COLOANA_VALORI_COMBO];
            for (var j = 0; j < valoriCombo.length; j++) {
                toPrint += "<option value='" + valoriCombo[j][0] + "'>" +
                           valoriCombo[j][1] + "</option>"
            }

            toPrint += "</select>";
        }

        // manadatory
        toPrint += (aRow[COLOANA_MANDATORY] ? "<font color='red'>(*)</font>" : "") +
                   "</td></tr>";
    }

    toPrint += "</table>";
    document.writeln(toPrint);
    
    aRow = null;

}	// createRegistrationTable

function verificareCimpuriRegistrationTable(dateLib) {
    // verifica cimpurile unei tabele de inregistrare
    // form este form CONTROL
    // dateLib: vezi mai sus pentru structura
    var bValid = true;
    var ctrl = null;

    // date biblioteca
    var aRow = null;
    for (var i = 0; i < dateLib.length; i++) {
        aRow = dateLib[i];

        // daca nu am control mandatory, merg mai departe
        if (!aRow[COLOANA_MANDATORY]) continue;

        // controlul este madatory
        aCtrl = document.forms[0].elements[aRow[COLOANA_NUME]];

        if (getTrim(aCtrl.value) == "") {
            bValid = false;
            if (aRow[COLOANA_TIP_CONTROL] == CONTROL_TEXT) {
                // text field
                alert("Cimpul '" + aRow[COLOANA_HEADER] + "' nu este completat.");
            } else {
                // combo
                alert("Selectati o optiune din '" + aRow[COLOANA_HEADER] + "'.");
            }

            aCtrl.focus();
            break;
        }
    }

    aCtrl = null;
    aRow  = null;

    return bValid;

}	// verificareCimpuriRegistrationTable

function getControlFromHisName(ctrlName) {
    var aCtrl = null;
    var aForm = null;

    for (var i = 0; i < document.forms.length; i++) {
        aForm = document.forms[i];

        for (j = 0; j < aForm.elements.length; j++) {
            if (aForm.elements[j].name == ctrlName) {
                aCtrl = aForm.elements[j];
            }
        }
    }

    if (aCtrl == null) {
        alert("Controlul '" + ctlrName + "' nu a fost gasit !!!");
    }

    return aCtrl;

}   // getControlFromHisName

function setComboItem(aCombo, item) {
    for (var i = 0; aCombo.length; i++) {
        if (aCombo.options[i].text == item) {
            aCombo.selectedIndex = i;
            break;
        }
    }

}   // setComboItem

