/**
 * excuta o cerere http GET la adresa specificata in <b><u>url</u></b> iar in functie de rezultat se schimba innerHTML-ul
 * tag-ului cu id-ul <b><u>containerID</u></b> dupa cum urmeaza:<br/>
 * - daca status-ul este diferit de 200 este inlocuit cu <b><u>errcodeInnerHTML</u></b><br/>
 * - daca raspunsul este 'session expired' se inlocuieste cu <b><u>sessionExpiredInnerHTML</u></b><br/>
 * - daca nu ne aflam in niciunul din cazurile de mai sus se inlocuieste cu textul primit ca raspuns<br/>
 *<br/>
 * Parametrul <b><u>lBox<u></b> poate fi 'null', sau, in cazul in care containerul face parte dintr-un popup, va reprezenta
 * catre clasa atasata acestuia (vezi functia <b>addBigLightboxMarkup()</b> din lightbox.js)
 */
var selectata;

function ajaxRequest(containerID, url, lBox, errcodeInnerHTML, sessionExpiredInnerHTML){
    var http_request;
        
    try{    
        // Firefox, Opera 8.0+, Safari    
        http_request=new XMLHttpRequest();
    }catch (e){
        // Internet Explorer    
        try{
            http_request=new ActiveXObject("Msxml2.XMLHTTP");
        }catch (e){
            try{
                http_request=new ActiveXObject("Microsoft.XMLHTTP");
            }catch (e){
                alert("Your browser does not support AJAX!");        
                return false;        
            }      
        }
    }
    
    //refresh last updated block
    http_request.onreadystatechange=function(){
        if(http_request.readyState==4){
            if (http_request.status == 200) {
                var result = http_request.responseText;
                if (result.indexOf("session expired") >= 0){
                    document.getElementById(containerID).innerHTML = sessionExpiredInnerHTML;
                }else{
                    document.getElementById(containerID).innerHTML = result;
                    hCarousel = new UI.Carousel("horizontal_carousel");
                }
            }else{
                document.getElementById(containerID).innerHTML = errcodeInnerHTML;
            }

            if (lBox != null){
                lBox.actions();
            }
        }
    }
    http_request.open("GET",url, true);
    http_request.send(null);
    return false;
}    

/**
 * excuta o cerere http POST la adresa specificata in <b><u>url</u></b> cu parametri din <b><u>parameters</u></b>,
 * reprezentand un queryString form-urlencoded (vezi functia <b>getURLEncodedQueryFromContainer</b>).
 *  iar in functie de rezultat se schimba innerHTML-ul tag-ului cu id-ul <b><u>containerID</u></b> dupa cum urmeaza:<br/>
 * - daca status-ul este diferit de 200 este inlocuit cu <b><u>errcodeInnerHTML</u></b><br/>
 * - daca raspunsul este 'session expired' se inlocuieste cu <b><u>sessionExpiredInnerHTML</u></b><br/>
 * - daca nu ne aflam in niciunul din cazurile de mai sus se inlocuieste cu textul primit ca raspuns<br/>
 *<br/>
 * Parametrul <b><u>lBox</u></b> poate fi 'null', sau, in cazul in care containerul face parte dintr-un popup, va reprezenta
 * catre clasa atasata acestuia (vezi functia <b>addBigLightboxMarkup()</b> din lightbox.js)
 */
function ajaxPostRequest(containerID, url, parameters, lBox, errcodeInnerHTML, sessionExpiredInnerHTML){
    var http_request;

    try{
        // Firefox, Opera 8.0+, Safari
        http_request=new XMLHttpRequest();
    }catch (e){
        // Internet Explorer
        try{
            http_request=new ActiveXObject("Msxml2.XMLHTTP");
        }catch (e){
            try{
                http_request=new ActiveXObject("Microsoft.XMLHTTP");
            }catch (e){
                alert("Your browser does not support AJAX!");
                return false;
            }
        }
    }

    //refresh last updated block
    http_request.onreadystatechange=function(){
        if(http_request.readyState==4){
            if (http_request.status == 200) {
                var result = http_request.responseText;
                if (result.indexOf("session expired") >= 0){
                    document.getElementById(containerID).innerHTML = sessionExpiredInnerHTML;
                }else{
                    document.getElementById(containerID).innerHTML = result;
                }
            }else{
                document.getElementById(containerID).innerHTML = errcodeInnerHTML;
            }

            if (lBox != null){
                lBox.actions();
            }
        }
    }
    http_request.open('POST', url, true);
    http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    http_request.setRequestHeader("Content-length", parameters.length);
    http_request.setRequestHeader("Connection", "close");
    http_request.send(parameters);

    return false;
}

/**
 * parcurge toate tag-urile de tip input, select si text area din interiorul tag-ului  cu id-ul sprecificat
 * in <b><u>containerID</u></b> si formeaza cu numele si valorile lor un queryString urlencoded
 */
function getURLEncodedQueryFromContainer(containerID){
    var response = "";
    var i=0;
    var container = document.getElementById(containerID);

    var inputs = container.getElementsByTagName("input");
    for (i=0; i<inputs.length; i++){
        response += (response.length > 0 ? "&" : "") + inputs[i].name+"="+encodeURI(inputs[i].value);
    }

    inputs = container.getElementsByTagName("textarea");
    for (i=0; i<inputs.length; i++){
        response += (response.length > 0 ? "&" : "") + inputs[i].name+"="+encodeURI(inputs[i].value);
    }

    inputs = container.getElementsByTagName("select");
    for (i=0; i<inputs.length; i++){
        response += (response.length > 0 ? "&" : "") + inputs[i].name+"="+encodeURI(inputs[i].value);
    }
    return response;
}

/**
 * parcurge toate tag-urile de tip input, select si text area din interiorul tag-ului  cu id-ul sprecificat
 * in <b><u>containerID</u></b> care sunt introduse intr-un formular ce foloseste metoda POST pt a face submit la adresa
 * din <b><u>url</u></b>
 */
function submitParamsFromContainerStandard(containerID, url){
    var formular = document.createElement("form");
    formular.action = url;
        
    var inputs = document.getElementById(containerID).getElementsByTagName("input");
    for (var i=0; i<inputs.length; i++){
        var parametru = document.createElement("input");

        parametru.type = "hidden";
        parametru.name = inputs[i].name;
        parametru.value = inputs[i].value;

        formular.appendChild(parametru);
    }
        
    document.body.appendChild(formular);
    formular.method = "GET";
    formular.submit();
    document.removeChild(formular);
}

/**
 * parcurge toate tag-urile de tip input, select si textarea din interiorul tag-ului cu id-ul sprecificat
 * in <b><u>containerID</u></b> la care se mai adauga parametrul <b><u>extraParamName</u></b>,
 * cu valoarea <b><u>extraParamValue</u></b> si care
 * sunt apoi introduse intr-un formular ce foloseste metoda POST pt a face submit la adresa
 * din <b><u>url</u></b>
 */
function submitParamsFromContainer(containerID, url, extraParamName, extraParamValue){
    var formular = document.createElement("form");
    formular.action = url;
        
    var parametru = document.createElement("input");
    parametru.type = "hidden";
    parametru.name = extraParamName;
    parametru.value = extraParamValue;
    formular.appendChild(parametru);
        
    var inputs = document.getElementById(containerID).getElementsByTagName("input");
    for (var i=0; i<inputs.length; i++){
        parametru = document.createElement("input");

        parametru.type = "hidden";
        parametru.name = inputs[i].name;
        parametru.value = inputs[i].value;

        formular.appendChild(parametru);
    }
        
    document.body.appendChild(formular);
    formular.method = "POST";
    formular.submit();
    document.removeChild(formular);
}

function submitParams(containerID, url, extraParam, actionName, actionValue){
    var formular = document.createElement("form");
    formular.action = url;
    
    var parametru = document.createElement("input");
    parametru.type = "hidden";
    parametru.name = actionName;
    parametru.value = actionValue;
    formular.appendChild(parametru);
    
    var select = document.getElementById(extraParam);
    parametru = document.createElement("input");
    parametru.type = "hidden";
    parametru.name = select.name;
    parametru.value = select.value;
    formular.appendChild(parametru);
        
    var inputs = document.getElementById(containerID).getElementsByTagName("input");
    for (var i=0; i<inputs.length; i++){
        parametru = document.createElement("input");

        parametru.type = "hidden";
        parametru.name = inputs[i].name;
        parametru.value = inputs[i].value;

        formular.appendChild(parametru);
    }
        
    document.body.appendChild(formular);
    formular.method = "GET";
    formular.submit();
    document.removeChild(formular);
}

/**
 * face o cerere POST la adresa din <b><u>url</u></b>,
 * avind ca parametru input-ul/select-ul/textarea cu id-ul <b><u>inputID</u></b>
 */
function submitInputStandard(inputID, url){
    var formular = document.createElement("form");
    formular.action = url;
        
    var inputElem = document.getElementById(inputID);
    var parametru = document.createElement("input");
    parametru.type = "hidden";
    parametru.name = inputElem.name;
    parametru.value = inputElem.value;
    formular.appendChild(parametru);
    
        
    document.body.appendChild(formular);
    formular.method = "GET";
    formular.submit();
    document.removeChild(formular);
}

/**
 * face o cerere POST la adresa din <b><u>url</u></b>,
 * avind ca parametru input-ul/select-ul/textarea cu id-ul <b><u>inputID</u></b>
 */
function submitParam(url, paramName, paramValue){
    var formular = document.createElement("form");
    formular.action = url;
        
    var parametru = document.createElement("input");
    parametru.type = "hidden";
    parametru.name = paramName;
    parametru.value = paramValue;
    formular.appendChild(parametru);
    
        
    document.body.appendChild(formular);
    formular.method = "GET";
    formular.submit();
    document.removeChild(formular);
}

/**
 * face o cerere POST la adresa din <b><u>url</u></b>,
 * avind ca parametri input-ul/selectul/textarea cu id-ul <b><u>inputID</u></b>
 * si parametrul suplimentar <b><u>extraParamName</u></b> cu valoarea <b><u>extraParamValue</u></b>
 */

function submitInput(inputID, url, extraParamName, extraParamValue){
    var formular = document.createElement("form");
    formular.action = url;
        
    var parametru = document.createElement("input");
    parametru.type = "hidden";
    parametru.name = extraParamName;
    parametru.value = extraParamValue;
    formular.appendChild(parametru);
    
    var inputElem = document.getElementById(inputID);
    parametru = document.createElement("input");
    parametru.type = "hidden";
    parametru.name = inputElem.name;
    parametru.value = inputElem.value;
    formular.appendChild(parametru);
    
        
    document.body.appendChild(formular);
    formular.method = "GET";
    formular.submit();
    document.removeChild(formular);
}

/**
 * seteaza valoarea <b><u>newValue</u></b> unui tag de tip input avand id-ul <b><u>containerID</u></b>
 */
function setInputValue(containerID, newValue){
    document.getElementById(containerID).value = newValue;
}

/**
 * afiseaza un popup de alertare/informare avand un titlu (<b><u>statusTitle</u></b>),
 * un mesaj (<b><u>statusMessage</u></b>) si un buton de inchidere
 */
function alertMessageStandard(statusTitle, statusMessage){
    addLightboxMarkup(getAlertMessageBlockStandard(statusTitle, statusMessage));
}

/**
 * afiseaza un popup de alertare/informare avand un titlu (<b><u>statusTitle</u></b>),
 * un mesaj (<b><u>statusMessage</u></b>) si doua butoane: unul de anulare si un OK
 */
function alertMessageWithOK(statusTitle, statusMessage, url){
    addLightboxMarkup(getAlertMessageBlockWithOK(statusTitle, statusMessage, url));
}

/**
 * afiseaza un popup de alertare/informare avand un titlu (<b><u>statusTitle</u></b>),
 * un mesaj (<b><u>statusMessage</u></b>) si un buton de inchidere
 */
function alertMessage(statusTitle, statusMessage, url){
    addLightboxMarkup(getAlertMessageBlock(statusTitle, statusMessage, url));
}

/**
 * afiseaza un popup de modificare parola un titlu (<b><u>statusTitle</u></b>),
 * un mesaj (<b><u>statusMessage</u></b>) si doua butonane: unul de anulare si un OK
 */
function alertChangePass(userID, session){
    //addLightboxMarkup(getChangePass(userID));
    innerHtml = getChangePass(userID, session);
    messageBox = document.getElementById("lbLoadMessage");
    var lBox = new lightbox();

    if (messageBox != null){
        messageBox.innerHTML = innerHtml;
        lBox.actions();
    }else{
        lBox.activate();
        bod 		= document.getElementsByTagName('body')[0];
        overlay 		= document.createElement('div');
        overlay.id		= 'overlay';
        overlay.style.width = screen.width;
        //overlay.style.height = screen.height;
        var arrayPageSize = getPageSize();
        overlay.style.height =  (arrayPageSize[1] +'px');

        lb			 = document.createElement('div');
        lb.id		 = 'lightbox';
        lb.style.width = "300px";
        lb.innerHTML = '<div class="closeContainer" align="right"><a href="#" rel="deactivate" class="cancelAction" >close </a></div>'+
        '<div class="innerLightbox">'+
        '<div id="lbLoadMessage">'+innerHtml+'</div>'+
        '</div>';

        bod.appendChild(overlay);
        bod.appendChild(lb);
        lBox.actions();
    }
    return false;

}


/**
 * afiseaza un popup de modificare parola un titlu (<b><u>statusTitle</u></b>),
 * un mesaj (<b><u>statusMessage</u></b>) si doua butonane: unul de anulare si un OK
 */
function getChangePass(userID, session){

    var innerHtml = '<div class="popup1" id="popup">'+
    '<div class="popup_header1">schimba parola</div>'+
    '<form id="changepass" action="actiuni/personalizare.jsp">'+
    '<input type="hidden" name="pagina" value="modificaparola"/>'+
    '<input type="hidden" name="modifica" value="1"/>'+
    '<input type="hidden" name="session" value="'+session+'"/>'+
    '<input type="hidden" name="userid" value="'+userID+'"/>'+
    '<div class="popup_body1">Introdu parola veche si apoi cea noua si apoi confirm-o:<br/>' +
    '<table style="width:100%;">'+
    '<tr>'+
    '<td>'+
    'Parola actuala'+
    '</td>'+
    '<td align="right">'+
    '<input size="15" type="password" name="oldpass"/><br/>'+
    '</td>'+
    '</tr>'+
    '<tr>'+
    '<td>'+
    'Parola noua '+
    '</td>'+
    '<td align="right">'+
    '<input size="15" type="password" name="newpass"/><br/>'+
    '</td>'+
    '</tr>'+
    '</table>'+
    '<table style="width:100%;">'+
    '<tr>'+
    '<td>'+
    'Confirma parola noua'+
    '</td>'+
    '<td align="right">'+
    '<input size="15" type="password" name="cnewpass"/>'+
    '</td>'+
    '</tr>'+
    '</table>'+
    '</div>'+
    '<div class="popup_footer1">'+
    '<table align="center" style="font-size:11px;" width="150px">'+
    '<tr>'+
    '<td align="center"><span class="lb">&nbsp; </span><a href="#" onclick="document.getElementById(\'changepass\').submit();">ok</a><span class="rb">&nbsp;</span></td>'+
    '<td align="center"><span class="lb">&nbsp; </span><a href="#" rel="deactivate" class="cancelAction">anuleaza</a><span class="rb">&nbsp;</span></td>'+
    '</tr>'+
    '</table>'+
    '</div>'+
    '</form>'+
    '</div>';

    return innerHtml;
}


/**
 * afiseaza un popup de alertare/informare avand un titlu (<b><u>statusTitle</u></b>),
 * un mesaj (<b><u>statusMessage</u></b>) si doua butonane: unul de anulare si un OK
 */
function getAlertMessageBlockWithOK(statusTitle, statusMessage, url){
    var innerHtml = '<div class="popup1" id="popup">'+
    '<div class="popup_header1">'+statusTitle+'</div>'+
    '<div class="popup_body1">'+statusMessage+'</div>'+
    '<div class="popup_footer1">'+
    '<table width="100%">'+
    '<tr align="center">'+
    '<td ><span class="lb">&nbsp;</span><a href="'+url+'">ok</a><span class="rb">&nbsp;</span></td>'+
    '<td ><span class="lb">&nbsp;</span><a href="#" rel="deactivate" class="cancelAction" >anuleaza</a><span class="rb">&nbsp;</span></td>'+
    '</tr>'+
    '</table>'+
    '</div>'+
    '</div>';

    return innerHtml;
}


/**
 * afiseaza un popup de alertare/informare avand un titlu (<b><u>statusTitle</u></b>),
 * un mesaj (<b><u>statusMessage</u></b>) si un buton de inchidere
 */
function getAlertMessageBlockStandard(statusTitle, statusMessage){
    var innerHtml = '<div class="popup1" id="popup">'+
    '<div class="popup_header1">'+statusTitle+'</div>'+
    '<div class="popup_body1">'+statusMessage+'</div>'+
    '<div class="popup_footer1">'+
    '<table align="center" style="height:11px;font-size:11px;">'+
    '<tr>'+
    '<td><span class="lb">&nbsp; </span><a href="#" rel="deactivate" class="cancelAction">inchide</a><span class="rb">&nbsp;</span></td>'+
    '</tr>'+
    '</table>'+
    '</div>'+
    '</div>';

    return innerHtml;
}

/**
 * afiseaza un popup de alertare/informare avand un titlu (<b><u>statusTitle</u></b>),
 * un mesaj (<b><u>statusMessage</u></b>) si un buton de inchidere
 */
function getAlertMessageBlock(statusTitle, statusMessage, url){
    var innerHtml = '<div class="popup1" id="popup">'+
    '<div class="popup_header1">'+statusTitle+'</div>'+
    '<div class="popup_body1">'+statusMessage+'</div>'+
    '<div class="popup_footer1">'+
    '<table width="100%">'+
    '<tr>'+
    '<td width="50%" align="center"><span class="lb">&nbsp;</span><a href="'+url+'">inchide</a><span class="rb">&nbsp;</span></td>'+
    '</tr>'+
    '</table>'+
    '</div>'+
    '</div>';

    return innerHtml;
}

/* functie care ascunde campul de parola in cazul in care albumul este de tip Privat */
function hideRow(id){
    if (document.getElementById(id).value == '0') {
        if (document.getElementById('password') != null){
            document.getElementById("password").style.display = "none";
            document.getElementById("password").value = "";
        }
    }
    else {
        if (document.getElementById('password') != null){
            document.getElementById("password").style.display = "block";
        } 
    }
    
//new lightbox().deactivate();
}

function checkPassword(new_password, select_option, formID){
    var password = document.getElementById(new_password).value;
    var option = document.getElementById(select_option).value;
    
    if(option == 1 && password.length == 0){
        alertMessageStandard("Modifica album Foto", "Pentru ca albumul sa fie privat trebuie sa introduci o parola.");
    }else{
        document.getElementById(formID).submit();
    }
}

function checkMail() {
    var mail = document.getElementById("mail").value;
    var este_ok1 = new Boolean();
    //var este_ok2 = new Boolean();
    este_ok1 = false;
    este_ok2 = false;
    for(var i=1; i<mail.length; i++){
        var temp = mail.substring(i, i+1);
        if((temp == "@") ){
            este_ok1 = true
            };
        if(este_ok1){
            if(temp == ".") {
                este_ok2 = true;
            }
        }
    }
    if(!este_ok2) document.getElementById("mail").value = "Mail incorect";
}

function border_me (obj){
    if (selectata != null) {
        selectata.style.border = "1px solid #ffffff";
    }
    //var pz2 = document.getElementById ( poza );
    obj.style.border = "1px solid #ff4600";
    selectata = obj;
}

function numbersonly(e, decimal) {
    var key;
    var keychar;

    if (window.event) {
        key = window.event.keyCode;
    }else if (e) {
        key = e.which;
    }else {
        return true;
    }

    keychar = String.fromCharCode(key);
    if ((key==null) || (key==0) || (key==8) ||  (key==9) || (key==13) || (key==27) ) {
        return true;
    }else if ((("0123456789").indexOf(keychar) > -1)) {
        return true;
    }else if (decimal && (keychar == ".")) {
        return true;
    }else
        return false;
}

