/*commonFunc.js */
String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };

var reqParam = null;
function gethttpObject()
{
    if (reqParam != null && reqParam.readyState != 0 && reqParam.readyState != 4)
    {
        reqParam.abort();
    }
    try
    {
        reqParam = new XMLHttpRequest();
    }
    catch (error)
    {
        try
        {
            reqParam = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (error)
        {
            throw error;
        }
    }
    return reqParam;
}

function checkgoTo(totalPages, val)
{
    if ( !val || val.length == 0 )
    {
        showTopErrMsg("Please enter a valid page no.");
        return false;
    }

    if(checkNum(val))
    {
        val = parseInt(val);
        totalPages = parseInt(totalPages);
        if(val > totalPages || val < 1)
        {
            showTopErrMsg("Please enter a valid page no.");
            return false;
        }
    }
    else
    {
        showTopErrMsg("Please enter a valid page no.");
        return false;
    }
    return true;
}

function checkNum(iNumber)
{
    var i;
    for (i=0;i<iNumber.length;i++)
    {
        var c = iNumber.charAt(i);
        if (! checkDigit(c))
            return false;
    }
    return true;
}

function checkDigit(c)
{
    return ((c >= "0") && (c <= "9"))
}

function matchRegEx(value)
{
    var pattern = /[^A-Za-z 0-9\\\/_\-]/i;
    return !pattern.test(value);
}

function isValidEmail(Email)
{
    var pattern = /^([a-zA-Z0-9_\-])+(\.([a-zA-Z0-9_\-])+)*@((\[(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5]))\]))|((([a-zA-Z0-9])+(([\-])+([a-zA-Z0-9])+)*\.)+([a-zA-Z])+(([\-])+([a-zA-Z0-9])+)*))$/;
    return (Email.length >= 6 && pattern.test(Email));
}

function changePageID(pageID) { document.frmLinks_1.pageID.value=pageID; document.frmLinks_1.submit(); }

function sortBy(sortBy, sortOrder)
{
    var f = document.frmSort;
    f.sortBy.value = sortBy;
    f.sortOrder.value = sortOrder;
    f.submit();
}

function removeErrors(arr)
{
    for(var i = 0; i < arr.length; i++)
    {
        if(e = gbi(arr[i]+"error"))
        {
            e.innerHTML = ""; e.style.display = "none";
        }
    }
}

function showTopErrMsg(errMsg)
{
    try{ gbi('greenmess').style.display='none';} catch(e) {}
    var parent  = gbi('errormess');
    var child = parent.childNodes;
    child[0].innerHTML = errMsg;
    parent.style.display = '';
    scroll(0,0);
}

function hideTopErrMsg()
{
    try{ gbi('greenmess').style.display='none';} catch(e) {}
    var parent  = gbi('errormess');
    var child = parent.childNodes;
    child[0].innerHTML = '';
    parent.style.display = 'none';
}

function ChkBoxLocationCounter(city, country, locid, firstTime)
{
    var arrCity = document.getElementsByName(city);
    var arrCountry = document.getElementsByName(country);
    var Count = 0;
    for (i = 0; i < arrCity.length; i++)
    {
        if( arrCity[i].checked == true && arrCity[i].value != '0' && arrCity[i].value != '')
            Count++;
    }
    for (i = 0; i < arrCountry.length; i++)
    {
        if( arrCountry[i].checked == true && arrCountry[i].value != '0' && arrCity[i].value != '')
            Count++;
    }
    if(!firstTime || (firstTime && Count > 0))
        gbi(locid).value = "- Locations ( "+Count+" ) -";
}

function checkGroupHeader(location, group)
{
    var i;
    if(gbi(group+location).checked == true)
    {
        for(i = location+1;gbi(group+i) && gbi(group+i).value!=''; i++)	
            gbi(group+i).checked = true;
    }
    else
    { 
        for(i = location+1;gbi(group+i) && gbi(group+i).value!=''; i++)
            gbi(group+i).checked = false;
    }
    ChkBoxLocationCounter('city[]', 'country[]', 'jlocation',0);
}

/*jobList.js */
function downloadResponse(jobName, jobID, respCount)
{
    var f = document.downloadXls;
    f.jobName.value = jobName;
    f.jobID.value = jobID;
    f.respCount.value = respCount;
    f.submit();
}
function changePageIDForJob(pageNo)
{
    var f = document.jsJobSrchFrm;
    f.pageNo.value = pageNo;
    f.sortType.value = toggleVal(f.sortType.value);
    f.submit();
}

function changeSortingField(fieldName, sortType)
{
    var f = document.jsJobSrchFrm;
    f.sortType.value = (f.sortOnField.value != fieldName ) ? 2 : sortType;
    f.sortOnField.value = fieldName;
    f.submit();
}
function changeViewsPerPage(selObj)
{
    var f = document.jsJobSrchFrm;
    f.pageNo.value = 1;
    f.jobsPerPage.value = selObj.value;
    f.sortType.value = toggleVal(f.sortType.value);
    f.submit();
}
function changeJobType(selObj)
{
    var f = document.jsJobSrchFrm;
    f.jobType.value = selObj.value;
    f.pageNo.value = 1;
    f.sortType.value = toggleVal(f.sortType.value);
    f.submit();
}
function setDelJobId(jobId)
{
    var f = document.delJob;
    f.delJobId.value = jobId;
    f.sortType.value = toggleVal(f.sortType.value);
}
function setBlockJobId(jobId, dupMonths)
{
    setBlockFieldName();

    var f = document.frmBlock;
    f.jobID.value = jobId;
    f.blockDuration.value=dupMonths;
    f.sortType.value = toggleVal(f.sortType.value);
}
function setBlockFieldName()
{
    document.frmBlock.block.value = (document.frmBlock.blockDuration.value == 0) ? "Unblock" : "Block";
}
function validateJobSearchForm()
{
    var f = document.jobsearch;
    if ( f.keyword.value.trim().length == 0 && f.jobPostedAfter.value.length == 0 && f.jobPostedBefore.value.length == 0 )
    {
        showTopErrMsg("Please enter at least one criteria to search for jobs.");
        return false;
    }
    return true;
}

function toggleVal(val) { return (val == 1) ? 2 : 1; }

/*ajaxFolder.js */
function createFolder()
{
    var str = document.frmCreate;
    var id = str.id.value;
    var folderName = str.fname.value.trim();

    if(folderName == "")
    {
        gbi("createError2").className = 'error';
        gbi("createError2").innerHTML = "Please enter a folder name.";
    }
    else if(matchRegEx(folderName) == false)
    {
        gbi("createError2").className = 'error';
        gbi("createError2").innerHTML = "Please enter a valid folder name.";
    }
    else
    {
        try
        {
            reqFolder = gethttpObject();
        }
        catch(error)
        {
            reqFolder = null; return false;
        }
        gbi("createError2").className = 'error';
        gbi("createError2").innerHTML = "Checking the availability of folder name...";
        reqFolder.onreadystatechange = onReadyStateChangeCreateFolder;
        reqFolder.open("GET", ajax_checkFolder+"?id="+id+"&fname=" + folderName + "&r=1");
        reqFolder.setRequestHeader("X-Requested-With", "XMLHttpRequest");
        reqFolder.send(null);
    }

    return false;
}


function onReadyStateChangeCreateFolder()
{
    if (reqFolder.readyState == 4)
    {
        try
        {
            if (reqFolder.status == 200)
            {
                gbi("createError2").innerHTML = "";
                if(reqFolder.responseText == "OK")
                {
                    document.frmCreate.submit();
                }
                else 
                {
                    gbi("createError2").style.display = "";
                    gbi("createError2").innerHTML = reqFolder.responseText;
                    return false;
                }
            }
            else if (reqFolder.status != 0)
            {
                alert("Your request could not be processed due to a technical error. Please try again after some time.");
            }
        }
        catch (error){ }
    }

    return true;
}

function renameFolder()
{
    var str = document.frmRename;
    var id = str.id.value;
    var folderName = str.fname.value.trim();

    if(folderName == "")
    {
        gbi("renameError").innerHTML = "Please enter a folder name.";
        gbi("renameError").style.display= '' ;
    }
    else
    {
        try
        {
            reqFolder = gethttpObject();
        }
        catch(error)
        {
            reqFolder = null; return false;
        }
        gbi("createError2").innerHTML = "Checking the availability of folder name...";
        reqFolder.onreadystatechange = onReadyStateChangeRenameFolder;
        reqFolder.open("GET", ajax_checkFolder+"?id="+id+"&fname=" + folderName+"&fid="+str.fid.value);
        reqFolder.setRequestHeader("X-Requested-With", "XMLHttpRequest");
        reqFolder.send(null);
    }

    return false;
}


function onReadyStateChangeRenameFolder()
{
    if (reqFolder.readyState == 4)
    {
        try
        {
            if (reqFolder.status == 200)
            {
                gbi("renameError").innerHTML = "";
                if(reqFolder.responseText == "OK")
                {
                    document.frmRename.submit();
                }
                else  if ( reqFolder.responseText == "ERROR")
                {
                    window.location.reload(true);
                }
                else
                {
                    gbi("renameError").style.display = "";
                    gbi("renameError").innerHTML = reqFolder.responseText;
                    return false;
                }
            }
            else if (reqFolder.status != 0)
            {
                alert("Your request could not be processed due to a technical error. Please try again after some time.");
            }
        }
        catch (error){ }
    }

    return true;
}

function setFolderData(folderID, respCount, folderName)
{
    var frm = document.downloadFolder;
    frm.folderID.value = folderID;
    frm.respCount.value = respCount;
    frm.folderName.value = folderName;
    frm.submit();
}
function searchFolders()
{
    var folderList = document.getElementsByName('fol_id[]');
    var selCount = 0;
    var folderSrchFrm = document.searchInFolders;
    for(var i=0; i<folderList.length; i++)
    {
        if ( folderList[i].checked == true )
        {
            selCount++;
            var input = document.createElement('INPUT');
            input.name = 'arrFolderIDs[]';
            input.type = 'hidden';
            input.value = folderList[i].value;
            folderSrchFrm.appendChild(input);
        }
    }
    if ( selCount == 0 )
    {
        showTopErrMsg('Please select at least one folder to perform the search.');
        return false;
    }
    else
        folderSrchFrm.submit();
}

function checkAll(eleName, checkVal) 
{
    var f = document.frmActions;
    if(f)
    {
        var check = f.elements[checkVal].checked;
        if(f.checkAll_1) f.checkAll_1.checked = check;
        if(f.checkAll_2) f.checkAll_2.checked = check;

        for(i=0;i<f.elements.length;i++)
        {
            if(f.elements[i].name == eleName)
                f.elements[i].checked = check;
        }
    }
    else
        checkAllByName(eleName, checkVal);
}

function checkAllByName(eleName, checkVal)
{
    var ids = document.getElementsByName(eleName);
    var otherCheckVal = (checkVal == "checkAll_1") ? "checkAll_2" : "checkAll_1";
    var checkids = document.getElementsByName(checkVal);
    var check = checkids[0].checked;

    for(var i=0;i<ids.length;i++)
        ids[i].checked = check;

    var checkAll = document.getElementsByName(otherCheckVal);
    for(i=0;i<checkAll.length;i++)
        checkAll[i].checked =check;
}

/*draft.js */
function validateDraft()
{
    removeErrors(new Array("fromName", "fromEmail", "subject", "draftName", "message"));

    var str = document.frmDraft, focusField = "", arrError= new Array(), j = 0;
    var fromName = str.fromName.value.trim();
    if(fromName == "")
    {
        focusField = "fromName";
        arrError["fromName"] = "This field cannot be left blank.";
    }
    else if(! isValidName(name))
    {
        focusField = "fromName";
        arrError["fromName"] = "Please enter a valid name.";
    }

    var fromEmail = str.fromEmail.value.trim();
    if(fromEmail == "")
    {
        focusField = (focusField != "") ? focusField : "fromEmail";
        arrError["fromEmail"] = "This field cannot be left blank.";
    }
    else if(! isValidEmail(fromEmail))
    {
        focusField = (focusField != "") ? focusField : "fromEmail";
        arrError["fromEmail"] = "Please enter a valid email.";
    }

    var subject = str.subject.value.trim();
    if(subject == "")
    {
        focusField = (focusField != "") ? focusField : "subject";
        arrError["subject"] = "This field cannot be left blank.";
    }

    var message = str.message.value.trim();
    if(message == "")
    {
        focusField = (focusField != "") ? focusField : "message";
        arrError["message"] = "This field cannot be left blank.";
    }

    if((actionName == "new") || (actionName == "flow" && str.saveAsTemplate.checked))
    {
        var draftName = str.draftName.value.trim();
        if(draftName == "")
        {
            focusField = (focusField != "") ? focusField : "draftName";
            arrError["draftName"] = "This field cannot be left blank.";
        }
    }

    for(idx in arrError)
    {
        ++j;
        if(e = gbi(idx + "error"))
        {
            e.innerHTML = arrError[idx]; e.style.display = "";
        }
    }

    if(j == 0) str.submit();
    else if(focusField != "") 
    {
        str.action = "";
        str.elements[focusField].focus();
    }
}

function setDraftActivity(type)
{
    var str = document.frmAct;
    gbi("errorSpan").innerHTML = "";
    gbi("errormess").style.display = 'none';
    str.draftID.value='';

    if(type == "s")
    {
        str.action = sharedAction;
        gbi("shareMsg").innerHTML = sharedMsg;
        str.submitShare.value = "Share";
    }
    else if(type == "u")
    {
        str.action = unsharedAction;
        gbi("shareMsg").innerHTML = unsharedMsg;
        str.submitShare.value = "Unshare";
    }
    else if(type == "d")
    {
        str.draftID.value = getMultipleElements("draft_id[]");
        if(str.draftID.value == '')
        {
            gbi("errorSpan").innerHTML = deleteErrMsg;
            gbi("errormess").style.display = "";
            scroll(0, 0);
            return false;
        }

        str.action = deleteAction;
        gbi("deleteMsg").innerHTML = deleteMsg;
    }
    return true;
}

function getMultipleElements(eleName) 
{
    var retVal = "", arr = document.getElementsByName(eleName);
    for(i=0; i<arr.length; i++)
    {
        if(arr[i].checked)
        {
            retVal += ((retVal == "") ? "" : ",") + arr[i].value;
        }
    }
    return retVal.trim();
}

function isAtleastOneElementSelected(eleName)
{
    return (getMultipleElements(eleName) == "") ? false : true;
}

/* getResp.js */
function onloadEventsInUpload()
{
    selectCountry(); getEducation(); checkFresher();
}

function getEducation()
{
    getSpec("ugSpec", document.frmGetResponse.ugCourse.value, document.frmGetResponse.ugSpec.value);
    getSpec("pgSpec", document.frmGetResponse.pgCourse.value, document.frmGetResponse.pgSpec.value);
}

function getSpec(type, val, specVal)
{
    var arrCourse = val.split("|X|");
    var course = arrCourse[0];
    document.frmGetResponse.elements[type].options[0].text = " - Select - ";
    document.frmGetResponse.elements[type].options[0].value = -1;

    if(arrCourse[1])
    {
        var arrSpec = arrCourse[1].split("#");
        var optLength = arrSpec.length;

        document.frmGetResponse.elements[type].options.length = optLength + 1;
        for(var i=0;i<optLength;i++)
        {
            document.frmGetResponse.elements[type].options[i+1].text = arrSpec[i];
            document.frmGetResponse.elements[type].options[i+1].value = arrSpec[i];
        }
        if(specVal == -1 || specVal == '')
            document.frmGetResponse.elements[type].options[0].selected = true;
    }
    else
        document.frmGetResponse.elements[type].options.length = 1;
}

function selectCountry()
{
    if ( document.frmGetResponse.country.value == -1 ||  document.frmGetResponse.country.value == "INDIA")
    {
        gbi("otherCountry").style.display = "none";
        document.frmGetResponse.city.disabled = false;
        selectCity();
    }
    else  if ( document.frmGetResponse.country.value == "Other" )  
    {
        gbi("otherCountry").style.display = "";
        document.frmGetResponse.city.value = -1;
        document.frmGetResponse.city.disabled = true;
        gbi("otherCity").style.display = "";
    }
    else  
    {
        document.frmGetResponse.city.value = -1;
        document.frmGetResponse.city.disabled = true;
        gbi("otherCity").style.display = "";
        gbi("otherCountry").style.display = "none";
    }
}

function selectCity()
{
    var city = gbi("city");
    var ocity = gbi("otherCity");
    var pattern = /(Other)/;

    if ( city.options[city.selectedIndex].text.match("Other") ) 
        ocity.style.display = ( pattern.test(city.options[city.selectedIndex].value) ) ? "" : "none";
    else
        ocity.style.display = "none";
}

function validateResume()
{
    removeErrors(Array("name", "dob", "country", "city", "email", "phone", "mobile", "exp", "currOrg", "currDesig", "ctc", "ugc", "ugs", "pgs", "upload"));

    var arrQ = document.frmGetResponse.mQues.value.split(",");
    for(i = 0; i < arrQ.length; i++)
    {
        if( (q = parseInt(arrQ[i])) > 0)
        {
            if(obj = gbi("queserr_"+q))
            {
                obj.innerHTML = "";	obj.style.display="none";
            }
        }
    }

    var msg = "", err, arrError = new Array(), str = document.frmGetResponse, focusField = "";

    var name = str.clientName.value;
    //var name = str.clientName.value = str.clientName.value.trim();
    if(name == "")
    {
        focusField = "clientName";
        arrError["nameerror"] = "This field cannot be left blank.";
    }
    else if(name.length < 6)
    {
        focusField = "clientName";
        arrError["nameerror"] = "Please enter minimum six characters.";
    }
    else if(! isValidName(name))
    {
        focusField = "clientName";
        arrError["nameerror"] = "Special characters other than . and ' are not allowed.";
    }

    if(str.dobDate.value == -1 || str.dobMonth.value == -1 || str.dobYear.value == -1)
    {
        focusField = (focusField != "") ? focusField : "dobDate";
        arrError["doberror"] = "Please enter a valid date of birth.";
    }
    else if(! isValidDate(str.dobDate.value, str.dobMonth.value, str.dobYear.value))
    {
        focusField = (focusField != "") ? focusField : "dobDate";
        arrError["doberror"] = "Please enter a valid date of birth.";
    }

    if(str.country.value == -1)
    {
        focusField = (focusField != "") ? focusField : "country";
        arrError["countryerror"] = "This field cannot be left blank.";
    }
    else if(str.country.value == "INDIA")
    {
        if(str.city.value == -1 || str.city.value == "")
        {
            focusField = (focusField != "") ? focusField : "city";
            arrError["cityerror"] = "This field cannot be left blank.";
        }
        else if(str.city.value.match("Other") )
        {
            if( (err = validateLoc("City")) != "")
            {
                focusField = (focusField != "") ? focusField : "otherCity";
                arrError["cityerror"] = err;
            }
        }
    }
    else if(str.country.value == "Other")
    {
        if( (err = validateLoc("Country")) != "")
        {
            focusField = (focusField != "") ? focusField : "otherCountry";
            arrError["countryerror"] = err;
        }
    }
    else if( (err = validateLoc("City")) != "")
    {
        focusField = (focusField != "") ? focusField : "otherCity";
        arrError["cityerror"] = err;
    }

    var email = str.email.value = str.email.value.trim();
    if(email == "")
    {
        focusField = (focusField != "") ? focusField : "email";
        arrError["emailerror"] = "This field cannot be left blank.";
    }
    else if(! isValidEmail(email))
    {
        focusField = (focusField != "") ? focusField : "email";
        arrError["emailerror"] = email + " is not a valid email id. Please enter a valid email id.";
    }

    var countryPhone = str.countryPhone.value = str.countryPhone.value.trim();
    var cityPhone = str.cityPhone.value = str.cityPhone.value.trim();
    var phone = str.phone.value = str.phone.value.trim();
    var mobile = str.mobile.value = str.mobile.value.trim();
    if(phone == "" && mobile == "")
    {
        focusField = (focusField != "") ? focusField : "mobile";
        arrError["mobileerror"] = "This field cannot be left blank.";
    }
    if(phone.length > 0)
    {
        if(phone.length < 5)
        {
            focusField = (focusField != "") ? focusField : "phone";
            arrError["phoneerror"] = "Please enter a valid Phone Number.";
        }	
        else if(! isValidPhone(countryPhone + cityPhone + phone))
        {
            focusField = (focusField != "") ? focusField : "countryPhone";
            arrError["phoneerror"] = "Please specify a valid landline number.";
        }
    }
    if(mobile.length > 0)
    {
        if(mobile.length < 10)
        {
            focusField = (focusField != "") ? focusField : "mobile";
            arrError["mobileerror"] = "Please enter a valid Mobile Number.";
        }
        else if(!isValidPhone(mobile))
        {
            focusField = (focusField != "") ? focusField : "mobile";
            arrError["mobileerror"] = "Please enter a valid mobile number.";
        }
    }

    if(str.expYear.value == -1 || (str.expYear.value != 99 && str.expYear.value !=31 && str.expMonth.value == -1))
    {
        focusField = (focusField != "") ? focusField : "expYear";
        arrError["experror"] = "This field cannot be left blank.";
    }

    var curOrg = str.currentOrg.value = str.currentOrg.value.trim();
    if(curOrg == "")
    {
        focusField = (focusField != "") ? focusField : "currentOrg";
        arrError["currOrgerror"] = "This field cannot be left blank.";
    }

    var curDesig = str.currentDesig.value = str.currentDesig.value.trim();	
    if(curDesig == "")
    {
        focusField = (focusField != "") ? focusField : "currentDesig";
        arrError["currDesigerror"] = "This field cannot be left blank.";
    }

    if(str.expYear.value != 99 && (str.currency.value == -1 || str.ctcLacs.value == -1 || (str.ctcThousands.value == -1 && str.ctcLacs.value <= 50) ) )
    {
        focusField = (focusField != "") ? focusField : "currency";
        arrError["ctcerror"] = "This field cannot be left blank.";
    }

    if(str.ugCourse.value == -1)
    {
        focusField = (focusField != "") ? focusField : "ugCourse";
        arrError["ugcerror"] = "This field cannot be left blank.";
    }

    if(str.ugSpec.value == -1)
    {
        focusField = (focusField != "") ? focusField : "ugSpec";
        arrError["ugserror"] = "This field cannot be left blank.";
    }

    if(str.pgCourse.value != -1 && str.pgSpec.value == -1)
    {
        focusField = (focusField != "") ? focusField : "pgSpec";
        arrError["pgserror"] = "This field cannot be left blank.";
    }

    if(str.docName.value == "" && str.textCV.value == "")
    {
        focusField = (focusField != "") ? focusField : "textCV";
        arrError["uploaderror"] = "Please upload your resume to proceed.";
    }

    var arrQues = str.mQues.value.split(",");
    var i,j,e,c,q,arrCh,flag=0;
    for(i = 0; i < arrQues.length; i++)
    {
        if( (q = parseInt(arrQues[i])) > 0)
        {
            e=0;
            c = arrQues[i].substr(arrQues[i].length-1, 1);
            if(c == "T")
            {
                if(str.elements["ques_"+q].value.trim() == "") e=1;
            }
            else if(c == "R")
            {
                for(j = 0; str.elements["ques_"+q][j]; j++)
                {
                    if(str.elements["ques_"+q][j].checked)
                    {
                        flag=1; break;
                    }
                }
                if(flag==0)	e=1;
            }
            else if(c == "L")
            {
                if(str.elements["ques_"+q].value == "") e=1;
            }
            else if(c =="C")
            {
                arrCh = document.getElementsByName("ques_"+q+"[]");
                for(j = 0; j < arrCh.length; j++)
                {
                    if(arrCh[j].checked)
                    {
                        flag=1; break;
                    }
                }
                if(flag==0) e=1;
            }
            if(e)	arrError["queserr_"+q] = "This field cannot be left blank.";
        }
    }

    i = 0; var e;
    for(idx in arrError)
    {
        if(e = gbi(idx))
        {
            i++;
            e.innerHTML = arrError[idx]; e.style.display = "";
        }
    }


    if(i > 0)
    {
        var obj = gbi("errormess").getElementsByTagName('span');
        obj[0].innerHTML = i+" errors found. Please enter details correctly and submit the form again.";
        gbi("errormess").style.display = "block";
        if(focusField != "") { str.elements[focusField].focus(); scroll(0, 0);}
        return false;
    }
    return true;
}

function validateLoc(type)
{
    var fieldname = (type == "City") ? "otherCity" : "otherCountry";
    var val = document.frmGetResponse.elements[fieldname].value.trim();
    if(val == "")
        return "Please type the " + type + " name in the text box.";
    else if(val.length < 2)
        return "Please enter the correct name of the " + type + ".";
    else
    {
        var pattern = /[^a-zA-Z\s,.\-/]/;
        if(pattern.test(val))
            return "Special characters other than . - , are not allowed.";
    }
    return "";
}

function isValidDate(Date, Month,Year)
{
    var arrDate  = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
    if ( Year % 4 == 0 ) arrDate[1] = 29;

    return (Date > arrDate[Month-1]) ? false : true;
}

function isValidPhone(Value)
{
    if ( Value.length == 0 )
        return true;

    var pattern  = /[0-9]/g;
    var pattern1 = /[+]?[0-9]*$/g;
    var firstChar = Value.charAt(0);
    if ( !  (firstChar == "+" || firstChar == "-" || ( firstChar >=0 && firstChar <= 9 )) ) 
        return false;

    for(i=1; i< Value.length; i++ )
    {
        firstChar = Value.charAt(i);
        if(! (firstChar >= 0 || firstChar <= 9) )
            return false;
    }
    return true;
}

function checkFresher()
{
    var str = document.frmGetResponse;
    if(str.expYear.value == 99)
        str.expMonth.disabled = str.currency.disabled = str.ctcLacs.disabled = str.ctcThousands.disabled = true;
    else if(str.expYear.value == 31)
    {
        str.expMonth.disabled = true;
        str.currency.disabled = str.ctcLacs.disabled = str.ctcThousands.disabled = false;
    }
    else
        str.expMonth.disabled = str.currency.disabled = str.ctcLacs.disabled = str.ctcThousands.disabled = false;
}

function checkCTC()
{
    document.frmGetResponse.disabled = (document.frmGetResponse.ctcLacs.value == 51) ? true : false;
}

/* manageQuestionnaire.js */
function changeViewsPerPageForQues(obj)
{
    var f = document.frmSort;
    f.pageNo.value = 1;
    f.countPerPage.value = obj.value;
    f.submit();
}
function changeSortBy()
{
    var f = document.frmSort;
    f.pageNo.value = 1;
    f.orderBy.value = (f.orderBy.value == 1 ) ? 2 : 1;
    f.submit();
}
function checkSelected(eleName)
{
    var val = getMultipleElements(eleName);
    if(val == "")
    {
        showTopErrMsg('Please select the questionnaire(s) to be deleted.');
        return false;
    }
    else
    {
        hideTopErrMsg();
        document.frmSort.delTplID.value = val;
        return true;
    }
}
function deleteTemplate()
{
    var f = document.frmSort;
    var tidLength = document.getElementsByName('tID[]').length;
    var count = getMultipleElements('tID[]').split(",").length;

    if(count == tidLength && f.pageNo.value == f.maxPageValue.value)
        f.pageNo.value = parseInt(f.pageNo.value) - 1;

    f.submit();
}
function validateQuesForm(calledFor)
{
    var bool = isAtleastOneElementSelected('jobID[]');
    if(bool == false)
    {
        if(document.getElementsByName('jobID[]').length > 0)
            alert('Please select the job(s) to which you wish to '+ calledFor +' the questionnaire.');
        else
            alert("No job found.");
    }
    return bool;
}
function openAssignToJobWindow(qnID)
{
    qID = qnID;
    getJobFor='assign';
    document.assignToJob.tID.value = qID;
    changePageID_ques(1);
}
function openRevokeFromJobWindow(qnID)
{
    qID = qnID;
    getJobFor='remove';
    document.assignToJob.tID.value = qID;
    changePageID_ques(1);
}

/* questionCommon.js */
var httpObj = null;
var getJobFor = null;
var qID = null;
function changePageID_ques(pageNo)
{
    if ( httpObj != null )
        httpObj.abort();
    if ( getJobFor == 'assign' || getJobFor == 'remove')
    {
        // Paging called for AJAX
        getUserJobs(getJobFor, qID, pageNo);
    }
    else 
    {
        // Paging  called for Questionnaire
        document.frmSort.pageNo.value = pageNo;
        document.frmSort.submit();
    }
}
function getUserJobs(getJobFor, qID, pageNo)
{
    var waitMsg = '<br><br><center>Please wait......</center>';
    if( getJobFor == 'assign')
    {
        gbi('ajax_assignJob_content').innerHTML = waitMsg;
        gbi('assignToJob').disabled = true;
    } else 
    {
        gbi('ajax_removeJob_content').innerHTML = waitMsg;
        gbi('removeFromJob').disabled = true;
    }
    if ( httpObj == null )
        httpObj = gethttpObject();

    httpObj.onreadystatechange = function(){ eval("onReadyStateChangeGetUserJob('"+getJobFor+"', "+qID+")") };

    if ( getJobFor == 'assign')
        httpObj.open("GET", ajax_getAssignJob_url+"?id="+id+'&pageNo='+pageNo+'&rand='+Math.random(), true);
    else if ( getJobFor == 'remove')
        httpObj.open("GET", ajax_getRevokeJob_url+"?id="+id+"&tID="+qID+'&pageNo='+pageNo+'&rand='+Math.random(), true);
    httpObj.setRequestHeader("X-Requested-With", "XMLHttpRequest");
    httpObj.send(null);
}
function onReadyStateChangeGetUserJob(getJobFor, qID)
{
    if (httpObj.readyState == 4 ) {
        if ( httpObj.status == 200 ) {
            if (httpObj.responseText == 'ERROR') {
                window.location.reload(true); return;
            }
            var xmlResponse = httpObj.responseXML;
            var xmlRoot = xmlResponse.documentElement;
            var ajax_job_content = (getJobFor == 'assign') ? gbi('ajax_assignJob_content') : gbi('ajax_removeJob_content');
            if (xmlRoot.firstChild.firstChild.nodeValue.toUpperCase() == "SUCCESS") {
                var image_html = "<img src='"+img+"/ques.gif' alt='' width='13' height='13' vspace='2' title='Jagga' />";
                ajax_job_content.innerHTML = '';
                var dummyRow = '';
                var sampleDiv = gbi('dummyRow').innerHTML;
                var xc =xmlRoot.childNodes;
                if ( xc.length > 2 )
                {
                    gbi(getJobFor + 'PageLinks').innerHTML = xc[1].childNodes[0].data;
                    for (ic=2; ic<xc.length;ic++)
                    {
                        var jobIdArray = xc[ic].getElementsByTagName('JOB_ID');
                        var postArray = xc[ic].getElementsByTagName('POST');
                        var dateArray = xc[ic].getElementsByTagName('DATE');
                        var tIDArray = xc[ic].getElementsByTagName('TEMPLATE_ID');

                        try {
                            for(var i=0; i<jobIdArray.length; i++) {
                                dummyRow = sampleDiv;
                                dummyRow = dummyRow.replace('__JOB__ID_ELE_NAME__', 'jobID[]');
                                dummyRow = dummyRow.replace('__JOB_ID__', jobIdArray.item(i).firstChild.data);
                                if ( getJobFor == 'assign' && parseInt(tIDArray.item(i).firstChild.data) > 0 )
                                    dummyRow = dummyRow.replace('__POST__', postArray.item(i).firstChild.data + image_html);
                                else
                                    dummyRow = dummyRow.replace('__POST__', postArray.item(i).firstChild.data);
                                dummyRow = dummyRow.replace('__DATE__', dateArray.item(i).firstChild.data);
                                if ( i%2 == 0 )
                                    dummyRow = dummyRow.replace('oddRow', 'evenRow');
                                ajax_job_content.innerHTML += dummyRow;
                            }
                        }catch(e) {}
                    }

                    if (getJobFor == 'assign')
                        gbi('assignToJob').disabled = false;
                    else if ( getJobFor == 'remove')
                        gbi('removeFromJob').disabled = false;

                } else {
                    gbi('assignToJob').disabled = gbi('removeFromJob').disabled = false;
                    ajax_job_content.innerHTML = "<br><br><center>No job found.</center>";
                }
                try{document.assignToJob.tID.value = qID; } catch(e){}

                modalwin('680','350',getJobFor, gbi(getJobFor+qID));					
            } else if (xmlRoot.firstChild.firstChild.nodeValue == "FAILURE")  {
                showTopErrMsg('There was an error while processing your request. Please try again later.');
            }
            // done especially for handling on IE
            httpObj = null;
        }
    }
}
function assignQuesToJobs()
{
    gbi('assignToJob').disabled = true;
    var strJobID = getMultipleElements('jobID[]');
    if ( strJobID.length == 0)
    {
        alert("Please select the job(s) to which you wish to assign the questionnaire.");
        gbi('assignToJob').disabled = false;
        return false;
    }
    else 
    {
        var f = document.questionnaire;
        f.jobID.value = strJobID;
        f.create.click();
    }
}

/* questionnaire.js */
function addNewQuestion()
{
    var currQuesCnt = document.questionnaire.currQuesCnt.value;
    var maxQuesCnt = document.questionnaire.maxQuesCnt.value;
    var sampleQuestion = gbi('sample_question').innerHTML;
    sampleQuestion = sampleQuestion.replace(/@@/g,currQuesCnt);
    currQuesCnt++;
    sampleQuestion = sampleQuestion.replace(/_QID_/g, currQuesCnt);
    var newDiv = document.createElement('DIV');
    newDiv.innerHTML = sampleQuestion;
    gbi('container_question').appendChild(newDiv);
    document.questionnaire.currQuesCnt.value = currQuesCnt;
    if ( currQuesCnt >= maxQuesCnt)
    {
        gbi('addMoreQues').style.display = 'none';
        return false;
    }
    return false;
}

function validateCreateQues(objForm, calledFrom, startId )
{
    var skipped = 0, k;
    var error = false;
    var focussed = false;

    var previewFlag = false;
    if ( calledFrom == 'preview') {
        calledFrom = 'new';
        previewFlag = true;
    }

    if ( calledFrom == 'new' ) {
        try{
            var errormess = gbi('errormess');
            var topErrMsg = gbi('topErrMsg');
            errormess.style.display = 'none';
            topErrMsg.innerHTML = '';

        }catch(e) {  }
        var questionnaireName_err = gbi('questionnaireName_err');
        questionnaireName_err.style.display = 'none';
        questionnaireName_err.innerHTML = '';

        var questionnaireName = gbi('questionnaireName');
        questionnaireName.value = questionnaireName.value.trim();

        if ( questionnaireName.value.length == 0 ) {
            questionnaireName_err.innerHTML = 'Please enter a name.';
            questionnaireName_err.style.display = '';
            if ( !focussed) {
                questionnaireName.focus(); focussed = true;
            }
            error = true;
        }
    }

    var errorClassName = (calledFrom == 'new') ? 'error' : 'error2';
    var i = (startId == null ) ? 1 : startId

        for(;i<=objForm.currQuesCnt.value;i++) {
            var j = i - 1;
            var question_err = gbi('question_err'+i);
            var answerType_err = gbi('answerType_err'+i);
            var answer_err = gbi('answer_err'+i);

            question_err.style.display = answerType_err.style.display = answer_err.style.display = 'none';
            question_err.innerHTML = answerType_err.innerHTML = answer_err.innerHTML = '';

            var question = gbi('question'+i);
            var answerType = gbi('answerType'+i);
            var answer = gbi('answer'+i);
            var mandatory = gbi('mandatory'+i);

            question.value = question.value.trim();
            answer.value = answer.value.trim();

            if (calledFrom == 'new' && question.value.length == 0 && 
                    answerType.selectedIndex == 0 && 
                    answer.value.length == 0 && 
                    mandatory.checked == false) {
                skipped++;
            }else {
                if ( question.value.length == 0 ) {
                    question_err.innerHTML = 'Please enter the question.';
                    question_err.style.display = '';
                    if ( !focussed ) {
                        question.focus(); focussed = false;
                    }
                    error = true;
                }
                if ( answerType.value == -1 ) {
                    answerType_err.innerHTML = 'Please select the type of answer.';
                    answerType_err.style.display = '';
                    if ( !focussed ) {
                        answerType.focus(); focussed = true;
                    }
                    error = true;

                    if ( answer.value.length == 0 ) {
                        answer_err.innerHTML = 'Please enter the answer options.';
                        answer_err.style.display = '';
                        if ( !focussed) {
                            answer.focus(); focussed = true;
                        }
                        error = true;
                    }
                } else if ( answerType.value != 'Text Box' ) {
                    answer.value = answer.value.replace(/[ ]{2,}/g, ' ');
                    if ( answer.value.indexOf(',') == -1 ) {
                        answer_err.innerHTML = "Please enter at least two options for answers.";
                        answer_err.style.display = '';
                        if ( !focussed ) {
                            answer.focus(); focussed = true;
                        }
                        error = true;
                    } else {
                        answer.value = answer.value.replace(/[,]{2,}/g, ',');
                        if ( answer.value.charAt(0) == ',' )
                            answer.value = answer.value.substring(1);
                        if ( answer.value.charAt(answer.value.length-1) == ',')
                            answer.value = answer.value.substring(0,answer.value.length-1);

                        var ansLength = 0, ansVal = '', ansList = answer.value.split(','), a;
                        for(k = 0; k < ansList.length; k++) { 
                            a = ansList[k].trim();
                            if(a != "") { ansVal += (ansVal == '') ? a : ","+a; }
                        }
                        answer.value = ansVal;

                        if ( ansVal.split(",").length <= 1 ) {
                            answer_err.innerHTML = "Please enter at least two options for answers.";
                            answer_err.style.display = '';
                            if ( !focussed ) {
                                answer.focus(); focussed = true;
                            }
                            error = true;
                        }
                    }
                } else if ( answer.value.length > 0 ) {
                    answer.disabled = false;
                    answer_err.innerHTML = 'You can not define the answer for a text box.';
                    answer_err.style.display = '';
                    if ( !focussed ) {
                        answer.focus(); focussed = true;
                    }
                    error = true;
                }
            }
        }

    if ( calledFrom == 'new') {
        if ( skipped == objForm.currQuesCnt.value) {
            showTopErrMsg('Please enter at least one question to save this questionnaire.');
            error = true;
        }
    }

    if ( error == false ) {
        if ( previewFlag == true) {
            objForm.action = formPreviewAction;
            objForm.target = '_blank';
        } else {
            objForm.action = formSaveAction;
            objForm.target = '_self';
        }
    }

    return !error;
}
function gbi(eleId) { try { return document.getElementById(eleId); } catch(e) { return null; } }
function gbn(eleName) { try { return document.getElementsByName(eleName); } catch(e) { return null } }

function showEditBtn(btnID) { gbi(btnID).style.display = ''; }
function checkQuesSelected(eleName)
{
    var val = getMultipleElements(eleName);
    if(val == "")
    {
        showTopErrMsg('Please select the questions you wish to delete.');
        return false;
    }
    else
    {
        hideTopErrMsg();
        document.delQues.qID.value = val;
        return true;
    }
}
function hideAddFrmError()
{
    gbi('question_err1').style.display = gbi('answerType_err1').style.display = gbi('answer_err1').style.display = 'none';
}
function disableSelBox(selBox, eleId)
{
    if ( selBox.value == 'Text Box') 
    {
        gbi('answer'+eleId).value = '';
        gbi('answer'+eleId).disabled = true;
        var answer_err =  gbi('answer_err'+eleId);
        answer_err.style.display = 'none';
        answer_err.innerHTML = '';
        var answerType_err = gbi('answerType_err'+eleId);
        answerType_err.style.display = 'none';
        answerType_err.innerHTML = '';
        gbi('hint_'+eleId).style.display = '';
    } else 
    {
        gbi('answer'+eleId).disabled = false;
        gbi('hint_'+eleId).style.display = 'none';
    }
}

/* ajaxResponse.js */
function moveResponses()
{
    var str = document.frmCreate;
    var id = str.id.value;
    if(str.ftype[0].checked && str.folderID.value <= 0)
    {
        gbi("folderErrorRow").style.display = "block";
        gbi("folderError").innerHTML = "Please select a folder to move responses.";
    }
    else if(str.ftype[1].checked)
    {
        var folderName = str.folderName.value.trim();
        if(folderName == "")
        {
            gbi("createErrorRow").style.display = "block";
            gbi("createError").innerHTML = "Please enter a folder name.";
        }
        else if(matchRegEx(folderName)== false)
        {
            gbi("createErrorRow").style.display = "block";
            gbi("createError").innerHTML = "Please enter a valid folder name.";
        }
        else
        {
            try
            {
                reqFolder = gethttpObject();
            }
            catch(error)
            {
                reqFolder = null; return false;
            }

            gbi("createError").innerHTML = "Please wait....";
            reqFolder.onreadystatechange = onReadyStateChangeFolder;
            reqFolder.open("GET", ajax_createFolder+"?id="+id+"&fname=" + folderName+ "&r=1");
            reqFolder.setRequestHeader("X-Requested-With", "XMLHttpRequest");
            reqFolder.send(null);
        }
    }
    else
    {
        str.strResponseID.value = getMultipleElements("respID[]");
        str.folderName.value = str.folderID.options[str.folderID.selectedIndex].text;
        str.submit();
    }
    return false;
}

function onReadyStateChangeFolder()
{
    var str = document.frmCreate;
    if (reqFolder.readyState == 4)
    {
        try
        {
            if (reqFolder.status == 200)
            {
                if( reqFolder.responseText == "ERROR" )
                {
                    window.location.reload(true);
                    return false;
                }
                gbi("createError").innerHTML = "";

                var arrText = reqFolder.responseText.split("|X|");
                if(arrText[0] == "OK")
                {
                    str.strResponseID.value = getMultipleElements("respID[]");
                    str.newFolder.value = 1;
                    str.folderID.options.length = str.folderID.options.length + 1;

                    var optn = new Option;
                    optn.text = str.folderName.value.trim();
                    optn.value = arrText[1];
                    str.folderID.options[str.folderID.options.length-1] = optn;
                    str.folderID.options[str.folderID.options.length-1].selected = true;

                    str.submit();
                }
                else 
                {
                    gbi("createError").innerHTML = reqFolder.responseText;
                }
            }
            else if (reqFolder.status != 0)
            {
                alert("Your request could not be processed due to a technical error. Please try again after some time.");
            }
        }
        catch (error){}
    }

    return true;
}

function deleteResponses() { document.frmActions.act.value = "delete"; document.frmActions.submit(); }

/* frwdResp.js */
function takeActions(act, actid, preview)
{
    var f = document.frmActions, flagAct;
    if(preview != 1)
    {
        var flag = isAtleastOneElementSelected("respID[]");
        if(flag == false)
        {
            if ( act == "delete" )
                flagAct = "Delete";
            else if ( act == "download" )
                flagAct = "Download";
            else if ( act == "forward")
                flagAct = "Forward";
            else
                flagAct = "Move";

            showTopErrMsg("Please select the responses you wish to "+ flagAct +".");
            return false;
        }
    }

    if(act == "chngAct")
    {
        f.actID.value=actid; f.act.value=act; f.submit();
    }
    else return true;
}
function chngStat(objRdBtn, fieldName, stat)
{
    if ( objRdBtn.checked == true)
        gbi(fieldName).disabled = stat;
}
function validateForwardForm(showPreview)
{
    hideFrwdErr();
    var f = document.frwdResp;
    var name = f.name;
    var email = f.email;
    var remail = f.remail;
    var subject = f.subject;
    var message = f.message;
    var format = f.format;
    var error = false;

    name.value = name.value.trim();
    email.value = email.value.trim();
    remail.value = remail.value.trim();
    subject.value = subject.value.trim();
    message.value = message.value.trim();

    if ( name.value.length == 0 ) {
        gbi('error_name').style.display = '';
        gbi('errorstr_name').innerHTML = 'This field cannot be left blank.';
        error = true;
        return !error;
    } else if ( ! isValidName(name.value)) {
        gbi('error_name').style.display = '';
        gbi('errorstr_name').innerHTML = 'Please specify valid name.';
        error = true;
        return !error;
    }

    if ( email.value.length == 0 ) {
        gbi('error_email').style.display = '';
        gbi('errorstr_email').innerHTML = 'This field cannot be left blank.';
        error = true;
        return !error;
    } else if ( !isValidEmail(email.value)) {
        gbi('error_email').style.display = '';
        gbi('errorstr_email').innerHTML = 'Please specify valid email id.';
        error = true;
        return !error;
    }

    if ( remail.value.length == 0 ) {
        gbi('error_remail').style.display = '';
        gbi('errorstr_remail').innerHTML = 'This field cannot be left blank.';
        error = true;
        return !error;
    } else {
        var arrEmail = remail.value.split(',');
        if ( arrEmail.length > 5 ) {
            gbi('error_remail').style.display = '';
            gbi('errorstr_remail').innerHTML = 'You cannot specify more than 5 email ids.';
            error = true;
            return !error;
        }
        for(var z=0; z<arrEmail.length; z++)
        {
            arrEmail[z] = arrEmail[z].toString().trim();
            if ( !isValidEmail(arrEmail[z])) {
                gbi('error_remail').style.display = '';
                gbi('errorstr_remail').innerHTML = 'Please specify valid recipient email id.';
                error = true;
                return !error;
            }
        }
    }

    if ( subject.value.length == 0 ) {
        gbi('error_subject').style.display = '';
        gbi('errorstr_subject').innerHTML = 'This field cannot be left blank.';
        error = true;
        return !error;
    }

    if ( message.value.length == 0 ) {
        gbi('error_message').style.display = '';
        gbi('errorstr_message').innerHTML = 'Please specify message.';
        error = true;
        return !error;
    }

    if ( format[0].checked == false && format[1].checked == false  && format[2].checked == false )
    {
        gbi('error_format').style.display = '';
        gbi('errorstr_format').innerHTML = 'Please select a format.';
        error = true;
        return !error;
    }

    if (!error) 
    {
        f.strResid.value = getMultipleElements('respID[]');
        if ( showPreview ) 
        {
            showFrwdPreview(); addppg('forwardForm'); addppg('preview')
        }
    }
    return !error;

}
function showFrwdPreview()
{
    var f = document.frwdResp;
    gbi('prev_subject').innerHTML = f.subject.value;
    gbi('prev_to').innerHTML = f.remail.value.replace(/,/g, ',<br>');
    gbi('prev_message').innerHTML = f.message.value.replace(/\n/g, '<br>');
}
function clearFrwdFrm()
{
    var f = document.frwdResp;
    f.name.value = f.email.value = f.remail.value = f.subject.value = f.message.value = '';
    return true;
}
function hideFrwdErr()
{
    gbi('error_name').style.display = gbi('error_email').style.display = gbi('error_remail').style.display = gbi('error_subject').style.display = gbi('error_message').style.display = gbi('error_format').style.display = 'none';
}
function contact(source,respID)
{
    var frm = document.frmContact, j = 0;
    if(respID == 0)
    {
        frm.respID.value = getMultipleElements("respID[]");
        if(frm.respID.value != "")
            j = frm.respID.value.split(",").length;
    }
    else 
    {
        j=1; frm.respID.value = respID;
    }

    if(j > 0) 
    {
        if(source == "send") frm.action = sendContact; else if(source == "edit") frm.action = editContact; else frm.action = previewContact; 
        frm.submit();
    }
    else 
        showTopErrMsg("Please select resumes that you wish to contact.");
}

/* downloadResp.js */
function onSbmtDwnLd()
{
    var f = document.downloadResp;
    var arr = gbi('downloadDiv').getElementsByTagName('input');
    for(var i =0; i < arr.length; i++)
    {
        if(arr[i].type == "radio" && arr[i].checked)
        {
            f.dwnldType.value = arr[i].value;
            f.resid.value = getMultipleElements('respID[]');
            f.action = download_multiple;
            hidemodal();
            f.submit();
            return true;
        }
    }
    alert("Please select a format to download resumes.");
    return false;
}

/* response - html */
function validateSearchWithin()
{
    var msg, str = document.frmSearch;
    str.keywords.value = str.keywords.value.trim();
    str.minExp.value = parseInt(str.minExp.value);
    str.maxExp.value = parseInt(str.maxExp.value);

    var keywordsFilled = ( str.keywords.value.length  > 0 ) ? true : false;
    var experienceFilled = checkExperience(str.minExp.value, str.maxExp.value);
    var locationFilled  =  ( checkLocation("city[]") || checkLocation("country[]") );

    if ( !keywordsFilled && experienceFilled == "NONE" && !locationFilled )
        msg = "Please enter at least one criteria to perform the search.";

    if(msg) 
    { 
        showTopErrMsg(msg); 
        return false; 
    } 
    else return true;
}
function checkExperience(minExp, maxExp)
{
    if ( minExp == -1 && maxExp == -1 )
        return "NONE";
    else if ( minExp > -1 && maxExp > -1 )
        return "BOTH";
    else if ( minExp > -1 )
        return "MIN";
    else if ( maxExp > -1 )
        return "MAX";
}
function checkLocation(loc)
{
    if( (objLoc = document.getElementsByName(loc)) && (objLoc.length > 0) )
    {
        for(var i=0; i<objLoc.length; i++)
        {
            if(objLoc[i].checked) return true;
        }
    }
    return false;
}
function showImage(imageEleID)
{
    gbi(imageEleID).style.display = ''; return true;
}

function showCreate()
{
    var f = document.frmCreate;
    gbi("createError").innerHTML=gbi("folderError").innerHTML="";gbi("createErrorRow").style.display=gbi("folderErrorRow").style.display='none';

    if(f.ftype[1].checked) 
    {
        f.submitForm.value = "Create & Move";
        gbi("folderName").style.display="";
        gbi("useExisting").innerHTML = gbi("useExisting").innerHTML.replace(/\<(\/?strong)\>/gi, "");
        gbi("useNew").innerHTML = "<strong>" + gbi("useNew").innerHTML + "</strong>";
        gbi("folderID").style.display="none";
    }
    else 
    {
        f.submitForm.value = "Move";
        gbi("folderName").style.display="none";
        gbi("useNew").innerHTML = gbi("useNew").innerHTML.replace(/\<(\/?strong)\>/gi, "");
        gbi("useExisting").innerHTML = "<strong>" + gbi("useExisting").innerHTML + "</strong>";
        gbi("folderID").style.display="";
    }
}

/* jobFilter.js */
function addSpecialization(objCourse, courseType, specSpanId)
{
    var i = 0, j = 0;
    var courseEleName = (courseType == 'ug' ) ? 'ugCourse[]' : 'pgCourse[]';
    var specEleName = (courseType == 'ug' ) ? 'ugSpec[]' : 'pgSpec[]';
    var course = document.getElementsByName(courseEleName);
    var specSpan = gbi(specSpanId);
    var spec = document.getElementsByName(specEleName);
    var arrCurrSpecSelected = new Array();
    for(j=0; j<spec.length; j++)
    {
        if ( spec[j].checked == true)
        {
            arrCurrSpecSelected[i] = spec[j].value;
            i++;
        }
    }
    specSpan.innerHTML = '';
    for(j=0; j < course.length; j++)
    {
        if ( course[j].checked == true )
        {
            var tmp = course[j].value.toString().split('|X|');
            var tmp1 = tmp[1].toString().split('#');
            var tmpLi = document.createElement('LI');
            var tmpDiv = document.createElement('DIV');
            var tmpStrong = document.createElement('STRONG');
            var tmpTextNode = document.createTextNode('----'+tmp[0]+'----');
            tmpStrong.appendChild(tmpTextNode);
            tmpDiv.appendChild(tmpStrong);
            tmpLi.appendChild(tmpDiv);
            specSpan.appendChild(tmpLi);
            for(i=0; i < tmp1.length; i++)
            {
                var li = document.createElement('LI');
                var input = document.createElement('INPUT');
                var txtNode = document.createTextNode(tmp1[i].toString());

                input.setAttribute('type','checkbox');
                input.setAttribute('value', tmp[0].toString()+"|X|"+tmp1[i].toString());
                input.setAttribute('name', specEleName);

                li.appendChild(input);
                li.appendChild(txtNode);
                specSpan.appendChild(li);
            }
        }
    }
    spec = document.getElementsByName(specEleName);
    for(j=0; j<spec.length; j++)
    {
        for(i=0; i<arrCurrSpecSelected.length; i++)
        {
            if ( spec[j].value == arrCurrSpecSelected[i])
            {
                spec[j].checked = true;
                break;
            }
        }
    }
}
function onloadEventsForFilter()
{
    var i = 0, j = 0, f = document.filter;
    var ugcourse = document.getElementsByName('ugCourse[]');
    for(i=0; i<ugcourse.length; i++)
    {
        if(ugcourse[i].checked == true )
        {
            addSpecialization(ugcourse[i], 'ug', 'containerUgSpec');
        }
    }

    var pgcourse = document.getElementsByName('pgCourse[]');
    for(i=0; i<pgcourse.length; i++)
    {
        if(pgcourse[i].checked == true )
        {
            addSpecialization(pgcourse[i], 'pg', 'containerPgSpec');
        }
    }

    if(ugSpec)
    {
        var objUgSpec = new Array(), k=0;
        var arrUgSpec = ugSpec.toString().split('~');
        for(i=0; i < f.elements.length; i++)
            if(f.elements[i].name == "ugSpec[]")
                objUgSpec[k++] = f.elements[i];

        for(i=0; i<objUgSpec.length; i++)
        {
            for(j=0; j<arrUgSpec.length; j++)
            {
                arrUgSpec[j] = arrUgSpec[j].replace("&amp;", "&");
                if ( objUgSpec[i].value == arrUgSpec[j])
                {
                    objUgSpec[i].checked = true;
                    break;
                }
            }
        }
    }

    if(pgSpec) 
    {
        var objPgSpec = new Array(), k=0;
        var arrPgSpec = pgSpec.toString().split('~');
        for(i=0; i < f.elements.length; i++)
            if(f.elements[i].name == "pgSpec[]")
                objPgSpec[k++] = f.elements[i];

        for(i=0; i<objPgSpec.length; i++)
        {
            for(j=0; j<arrPgSpec.length; j++)
            {
                arrPgSpec[j] = arrPgSpec[j].replace("&amp;", "&");
                if ( objPgSpec[i].value == arrPgSpec[j])
                {
                    objPgSpec[i].checked = true;
                    break
                }
            }
        }
    }
    onchangeDraftID(gbi('draftID'));
}
function submitFilterForm()
{
    // Has been called intentionally, to handle if users plays with browser javascript stats
    if(validateFilterForm())
    {
        onchangeDraftID(gbi('draftID'));

        var form = document.filter;
        var moveToFolder = gbi('defaultFolder');
        var strEmailID = gbi('strEmailID');
        var copyToFolder = gbi('personalFolder');
        var draftID = gbi('draftID');
        var draftText = gbi('draftText');

        strEmailID.value = strEmailID.value.trim();
        draftText.value = draftText.value.trim();

        if ( strEmailID.value.toLowerCase().trim() == "5 email ids allowed. seperate using comma (,)" )
            strEmailID.value = "";

        if ( moveToFolder.selectedIndex == 0 && strEmailID.value.length == 0 && copyToFolder.selectedIndex == 0 && draftID.selectedIndex == 0 && draftText.value.length == 0 )	{
            showTopErrMsg("Please select at least one action for the filter");
            if ( strEmailID.value.length == 0 )
                strEmailID.value == "5 email id(s) allowed. Seperate using comma (,)";
            return false;
        } if ( moveToFolder.selectedIndex > 0 || copyToFolder.selectedIndex > 0 || draftID.selectedIndex > 0 || draftText.value.trim().length > 0 ){
        }
        if ( strEmailID.value.length > 0 ) {
            var strEmail = strEmailID.value.replace(/;/g, ',');
            strEmail = strEmail.replace(/[,]{2,}/g, ',');
            var arrEmail = strEmail.split(',');

            for(i=0;i<arrEmail.length;i++)
            {
                arrEmail[i] =  arrEmail[i].trim();
                if ( ! isValidEmail(arrEmail[i]) )
                {
                    showTopErrMsg("Please specify valid email id(s)");
                    if ( strEmailID.value.length == 0 )
                        strEmailID.value == "5 email id(s) allowed. Seperate using comma (,)";
                    return false;
                }
            }
        }
        return true;
    }
    return false;
}
function validateFilterForm()
{
    var state = false;
    var f = document.filter;

    var includeKeywords = f.includeKeywords;
    var includeKeywordsSearchType = f.includeKeywordsSearchType;
    var designationSearchText = f.designationSearchText;
    var designationType = f.designationType;
    var designationSearchType = f.designationSearchType;
    var employerSearchText = f.employerSearchText;
    var employerType = f.employerType;
    var employerSearchType = f.employerSearchType;
    var minExperience = f.minExperience;
    var maxExperience = f.maxExperience;
    var city = document.getElementsByName('city[]');
    var country = document.getElementsByName('country[]');
    var ugCourse = document.getElementsByName('ugCourse[]');
    var pgCourse = document.getElementsByName('pgCourse[]');
    var mergeUgPg = f.mergeUgPg;
    var expErr = false;

    if ( parseInt(minExperience.value) >= 0 || parseInt(maxExperience.value) >= 0 ) {
        if ( parseInt(minExperience.value) <= parseInt(maxExperience.value) ) {
            return true;
        } else {
            state =  false;
            expErr = true;
        }
        if ( expErr == true ) {
            showTopErrMsg('Please specify a valid range of experience.');
            return false;
        }

    }
    else 
    {
        if ( includeKeywords.value.trim().length > 0 )
            state = true;
        else if ( designationSearchText.value.trim().length > 0 )
            state = true;

        else if ( employerSearchText.value.trim().length > 0 )
            state =  true;

        var i = 0;
        for(i=0;i<city.length;i++) {
            if ( city[i].checked == true ) {
                state =  true;
                break;
            }
        }

        for(i=0;i<country.length;i++) {
            if ( country[i].checked == true ) {
                state =  true;
                break;
            }
        }

        for(i=0;i<ugCourse.length;i++) {
            if ( ugCourse[i].checked == true ) {
                state =  true;
                break;
            }
        }

        for(i=0;i<pgCourse.length;i++) {
            if ( pgCourse[i].checked == true ) {
                state =  true;
                break;
            }
        }

        try	//dynamic validation for customised question.
        {
            i = 0;
            var ele;
            while(ele = document.getElementsByName('criteria['+i+'][]'))
            {
                if (ele[0].type.toString().toLowerCase() == 'text' )
                {
                    if ( ele[0].value.trim().length > 0 )
                    {
                        state =  true;
                        break;
                    }
                }
                else if ( ele[0].type.toString().toLowerCase().indexOf("select") > -1 )
                {
                    if ( ele[0].selectedIndex > -1 )
                    {
                        state =  true;
                        break;
                    }
                }
                i++;
            }
        }
        catch(e){ }
        if ( state == false ) 
        {
            showTopErrMsg("Please specify at least one criteria to apply the filter.");
        }
        return state;
    }
}
function onchangeDraftID(draftID)
{
    try
    {
        var draft_id = draftID.options[draftID.selectedIndex].value;
        draft_id = parseInt(draft_id);
        //if(draft_id > 0) {
        httpObj = gethttpObject();
        httpObj.onreadystatechange = onReadyStateChangeCallAjaxHandler;
        httpObj.open("GET",ajax_getTemplateData+"?draft_id="+draft_id);
        httpObj.send(null);
        // }
    }catch(e){  }
}

function onReadyStateChangeCallAjaxHandler()
{
    try
    {
        if(httpObj.readyState==4)
        { if(httpObj.status==200)
            if ( httpObj.responseText == "ERROR")
                alert("Your request could not be processed . Please try again");
            else     
                gbi("draftText").innerHTML= httpObj.responseText;
            var draftText = gbi('draftText');
            draftText.disabled = true;

        } 
    }    
    catch(e){}
}
/*renameAgent.js */
var xmlHttpObj = null;
function checkDuplicateAgentName()
{
    xmlHttpObj = gethttpObject();

    var newName = gbi('agentNewName').value.trim();
    if ( newName.length == 0 )
    {
        gbi('ajaxErrMsg').innerHTML = 'Please enter a name to save this search.';
        gbi('ajaxErrMsg').className = 'error';
        return false;
    }else if ( newName.indexOf("\"") > -1 ) {
        gbi('ajaxErrMsg').innerHTML = 'Please enter a valid name.';
        gbi('ajaxErrMsg').className = 'error';
        return false;
    }

    xmlHttpObj.onreadystatechange = onreadyStateChangeChkDupAgtName;
    gbi('ajaxErrMsg').className = 'error';
    gbi('ajaxErrMsg').innerHTML = 'Please wait.....';

    var requestParams = "id="+gbi('id').value+"&agentNewName="+gbi('agentNewName').value.replace(/\&/,'|XA|');
    xmlHttpObj.open("GET", gbi('ajax_chk_dupAgtName').value + "?" + requestParams, true);
    xmlHttpObj.setRequestHeader("X-Requested-With", "XMLHttpRequest");
    xmlHttpObj.send(null);
}

function onreadyStateChangeChkDupAgtName()
{
    if ( xmlHttpObj.readyState == 4 ) {
        if ( xmlHttpObj.status ==  200 ) {
            gbi('ajaxErrMsg').innerHTML = '';
            gbi('ajaxErrMsg').className = '';
            var responseText = xmlHttpObj.responseText.toUpperCase();
            if ( responseText == 'UNIQUE') {
                document.renameAgent.agentNewName.value = gbi('agentNewName').value;
                document.renameAgent.submit();
            } else if ( responseText == 'NON_UNIQUE') {
                gbi('ajaxErrMsg').className = 'error';
                gbi('ajaxErrMsg').innerHTML = 'You have already saved a search with this name. Please enter another name.';
            } else if ( responseText == 'ERROR' ) {
                window.location.reload(true);
            }
        }
    }
}

/*searchAgent.js */
function onloadEventsForSearch()
{
    var i = 0, j = 0;
    var ugcourse = document.getElementsByName('ugCourse[]');
    for(i=0; i<ugcourse.length; i++)
    {
        if(ugcourse[i].checked == true )
        {
            addSpecialization(ugcourse[i], 'ug', 'containerUgSpec');
        }
    }

    var pgcourse = document.getElementsByName('pgCourse[]');
    for(i=0; i<pgcourse.length; i++)
    {
        if(pgcourse[i].checked == true )
        {
            addSpecialization(pgcourse[i], 'pg', 'containerPgSpec');
        }
    }

    var arrUgSpec = ugSpec.toString().split('~');
    var objUgSpec = document.getElementsByName('ugSpec[]');
    for(i=0; i<objUgSpec.length; i++)
    {
        for(j=0; j<arrUgSpec.length; j++)
        {
            if ( objUgSpec[i].value == arrUgSpec[j])
            {
                objUgSpec[i].checked = true;
                break
            }
        }
    }

    var arrPgSpec = pgSpec.toString().split('~');
    var objPgSpec = document.getElementsByName('pgSpec[]');
    for(i=0; i<objPgSpec.length; i++)
    {
        for(j=0; j<arrPgSpec.length; j++)
        {
            if ( objPgSpec[i].value == arrPgSpec[j])
            {
                objPgSpec[i].checked = true;
                break
            }
        }
    }
}

function validateSearchForm()
{
    var state = false;
    var i=0;
    var f = document.responseSearch;

    if ( f.includeKeywords.value.trim().length >  0 )
        state =true;

    if ( f.minExp.selectedIndex > 0 || f.maxExp.selectedIndex > 0)
        state =true;

    var city = document.getElementsByName('city[]');
    for(i=0;i<city.length;i++) {
        if ( city[i].checked == true ) {
            state =true;
            break;
        }
    }

    var country = document.getElementsByName('country[]');
    for(i=0;i<country.length;i++) {
        if ( country[i].checked == true ) {
            state =true;
            break;
        }
    }

    if ( f.searchEmployerText.value.trim().length > 0 )
        state =true;

    if ( f.searchDesignationText.value.trim().length > 0 )
        state =true;

    var ugcourse = document.getElementsByName('ugCourse[]');
    for(i=0;i<ugcourse.length;i++) {
        if ( ugcourse[i].checked == true ) {
            state =true;
            break;
        }
    }

    var pgcourse = document.getElementsByName('pgCourse[]');
    for(i=0;i<pgcourse.length;i++) {
        if ( pgcourse[i].checked == true ){
            state =true;
            break;
        }
    }

    try
    {
        i = 0;
        var ele;
        while(ele = document.getElementsByName('criteria['+i+'][]'))
        {
            if (ele[0].type.toString().toLowerCase() == 'text' )
            {
                if ( ele[0].value.trim().length > 0 )
                {
                    state =true;
                    break;
                }
            }
            else if ( ele[0].type.toString().toLowerCase().indexOf("select") > -1 )
            {
                if ( ele[0].selectedIndex > -1 )
                {
                    state =true;
                    break;
                }
            }
            i++;
        }
    }
    catch(e){} 

    try
    {
        if( f.activityID.selectedIndex > 0 )
            state =true;
    }catch(e){}
    try {
        if ( f.responseSource.selectedIndex > 0 )
            state =true;
    }catch(e) {}
    try {
        if ( f.applicationDate.value.length > 0 )
            state =true;
    }
    catch(e)
    {
    }

    if ( state == false ) {
        showTopErrMsg('Please enter at least one criteria to perform the search.');
        return false;
    } else {
        var agtNames = document.getElementsByName('agentName');
        for( var y=0;y<agtNames.length;y++)
        {
            if ( agtNames[y].type.toLowerCase() == 'text' && document.responseSearch.saveAgent.checked == true && agtNames[y].value.trim().indexOf("\"")> -1 )
            {
                showTopErrMsg('Please enter a valid name to save this search.');
                return false;
            }
        }
    }
    return true;
}

/* search agent listing - html */
function checkForDelete()
{
    var strAgentList = getMultipleElements('saID[]');
    if ( strAgentList.length > 0 )
    {
        document.delSrchAgt.strAgentList.value = strAgentList;
        return true;
    }

    showTopErrMsg(delMsg);
    document.delSrchAgt.strAgentList.value = '';
    return false;
}
function emptyValues()
{
    var f = document.renameAgent;
    f.saID.value = f.agentNewName.value = gbi('agentNewName').value = '';
    gbi('ajaxErrMsg').className = 'noerror';
}
function changeAgentType(obj)
{
    document.ChgAgtType.agentType.value = obj.value;
    document.ChgAgtType.submit();
}

/* eappsMis.js */
function validateMisForm()
{
    var f =  document.mis;
    var startDate = f.startDate;
    var endDate = f.endDate;
    var viewType = f.viewType;
    var boolError = true;

    if ( startDate.value.trim().length == 0 )
    {
        showTopErrMsg('Please select the From date.');
        boolError = false;
    }
    else if ( endDate.value.trim().length == 0 )
    {
        showTopErrMsg('Please select the To date.');
        boolError = false;
    }
    else if ( startDate.value.trim().length > 0 && endDate.value.trim().length > 0) {
        var start = startDate.value.split('-');
        var end = endDate.value.split('-');
        var sdt = start[0]+start[1]+start[2];
        var tdt = end[0]+end[1]+end[2];

        if ( parseInt(sdt) > parseInt(tdt) ) {
            showTopErrMsg('Please select valid date range.');
            boolError = false;
        }
    }
    if (boolError == true &&  viewType[0].checked == false && viewType[1].checked == false )
    {
        showTopErrMsg('Please select the display format.');
        boolError = false;
    }
    return boolError;
}

function checkSubscription()
{
    var bool = isAtleastOneElementSelected('autoEmailType');
    if(bool) return true;
    else
    {
        showTopErrMsg('Please select the duration of subscription.');
        return false;
    }
}
/* inline_admin.js */
var currentUser = null;
var calledFor = null;
var http = null;
var const_inline_error = "<br>An error has occured while processing your request. We recommend clicking the \"Refresh\" or \"Reload\" button on your browser's toolbar.";

function Inline(oName)
{
    this.oName = oName; // name of object

    this.inlinejobs = function(layerid, clickEventId, uid, pageNo){
        pageNo = ( pageNo == null ) ? 1 : parseInt(pageNo);
        currentUser = uid;
        calledFor = layerid;
        http = null;
        http = gethttpObject();
        var id = gbi('id').value;
        var requestParams = "id="+id+"&uname="+uid + "&pageNo=" + pageNo+"&rand="+Math.random();
        gbi('user_NaMe').innerHTML = gbi('uname_'+uid).innerHTML;
        gbi('user_NaMe1').innerHTML = gbi('uname_'+uid).innerHTML;
        gbi("assignbutton").disabled = true;
        gbi("delbutton").disabled = true;
        modalwin('680','400',layerid, gbi(clickEventId));
        switch(clickEventId)
        {
            case 'add1':
                var fstr = this.oName + ".onreadystatechangeInline(0,"+ uid + ")";
                http.onreadystatechange = function() {
                    eval(fstr); return true;
                };
                http.open("GET", gbi("ajax_url_assignlist").value + "?" + requestParams, true);
                http.setRequestHeader("X-Requested-With", "XMLHttpRequest");

                break;
            case 'remove1':
                var fstr = this.oName + ".onreadystatechangeInline(1,"+	uid + ")";
                http.onreadystatechange = function() {
                    eval(fstr); return true;
                };
                http.open("GET", gbi("ajax_url_dellist").value + "?" + requestParams, true);
                http.setRequestHeader("X-Requested-With", "XMLHttpRequest");

                break;
        }
        http.send(null);
    }

    this.assign = function(uid){
        try{	
            http = gethttpObject();
            var id = gbi('id').value;

            var jobids = "";
            var a = gbi("assign_count").value;
            var count = 0;
            for(var i = 0; i < a; i++){
                if(gbi("check_" + i).checked)
                {
                    jobids += gbi("check_" + i).value + "+";
                    count++;
                }
            }
            if ( count == 0 ) {
                alert('Please select at least one job.');
                return ;
            }
            jobids = jobids.slice(0,-1);	
            var requestParams = "id="+id+"&jids="+jobids+"&uid="+uid;
            var fstr = this.oName + ".onreadystatechangeInline2(2,"+ uid +")";
            http.onreadystatechange = function() {
                eval(fstr); return true;
            };
            http.open("POST", gbi("ajax_url_assign").value, true);
            http.setRequestHeader("X-Requested-With", "XMLHttpRequest");
            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            http.setRequestHeader("Content-length", requestParams.length);
            http.setRequestHeader("Connection", "close");
            http.send(requestParams);
        }catch(e) {  }
    }

    this.remove = function(uid){

        http = gethttpObject();
        var id = gbi('id').value;

        var jobids = "";
        var a = gbi("del_count").value;
        var count = 0;
        for(var i = 0; i < a; i++){
            if(gbi("check_" + i).checked)
            {
                jobids += gbi("check_" + i).value + "+";
                count++;
            }
        }
        if ( count == 0 ) {
            alert('Please select at least one job.');
            return;
        }
        jobids = jobids.slice(0,-1);	
        var requestParams = "id="+id+"&jids="+jobids+"&uid="+uid;
        var fstr = this.oName + ".onreadystatechangeInline2(3,"+uid +")";
        http.onreadystatechange = function() {
            eval(fstr); return true;
        };
        http.open("POST", gbi("ajax_url_del").value, true);
        http.setRequestHeader("X-Requested-With", "XMLHttpRequest");
        http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        http.setRequestHeader("Content-length", requestParams.length);
        http.setRequestHeader("Connection", "close");
        http.send(requestParams);
    }


    this.onreadystatechangeInline = function(action,uid) {
        if (http.readyState == 4) {
            try {	
                if (http.status == 200) {	
                    // The ajax request failed because user was  timed out.
                    if ( http.responseText == "ERROR")
                    {
                        window.location.reload(true);;
                        return false;
                    }
                    var xmlResponse = http.responseXML;
                    xmlRoot = xmlResponse.documentElement;
                    var master = gbi("jobdiv"+ action);
                    var arr = master.childNodes;
                    var cnt = arr.length;
                    for(var i = cnt -1; i >= 0 ;i--)
                        master.removeChild(arr[i]);
                    var dummy = gbi("dummyrow").innerHTML;
                    if (xmlRoot.firstChild.firstChild.nodeValue == "Success") 
                    {
                        try{
                            gbi(calledFor+'PageLinks').innerHTML = xmlRoot.childNodes[1].childNodes[0].data;
                            idArray = xmlRoot.getElementsByTagName("id");
                            dateArray = xmlRoot.getElementsByTagName("date");
                            postArray = xmlRoot.getElementsByTagName("post");
                            var tmp = "";
                            var cnt2 = idArray.length;
                            for (var i=0; i<cnt2; i++)
                            {
                                tmp = "";
                                tmp = dummy.replace("checkbox_val",idArray.item(i).firstChild.data);
                                tmp = tmp.replace("CHECKiD","check_" + i);
                                tmp = tmp.replace("DATY",dateArray.item(i).firstChild.data);
                                tmp = tmp.replace("ROLYY",postArray.item(i).firstChild.data);
                                var b = document.createElement('div');
                                b.innerHTML = tmp;
                                // class name added by Vishal
                                if( i%2 == 1 ) {
                                    b.className = "cls oddRow lh28";
                                    b.setAttribute('class', 'cls evenRow lh28');
                                } else {
                                    b.className = "cls evenRow lh28"
                                        b.setAttribute('class', 'cls oddRow lh28');
                                }
                                master.appendChild(b);
                            }
                            switch(action)
                            {
                                case 0: //AddListing	
                                    gbi("assign_count").value = i;	
                                    gbi("assignbutton").onclick = function(){i1.assign(uid, "assign");};
                                    gbi("assignbutton").disabled = false;
                                    break;
                                case 1: //DelListing
                                    gbi("del_count").value = i;	
                                    gbi("delbutton").onclick = function(){i1.remove(uid);};
                                    gbi("delbutton").disabled = false;
                                    break;
                            }
                        }catch(e) {
                            try{
                                var errDv = document.createElement("DIV");
                                errDv.style.color = '#ff0000';
                                errDv.align = 'center';
                                errDv.innerHTML = '<br>No Job Found.';
                                master.appendChild(errDv);
                                gbi(calledFor+'PageLinks').innerHTML = '';
                            } catch(e) {}
                        }
                    }
                    else
                    {
                        if (xmlRoot.firstChild.firstChild.nodeValue == "Err") 
                        {
                            hidemodal();
                            gbi('successmsg').innerHTML = const_inline_error;
                            gbi('greenmess').style.display = "block";	
                            scroll(0,80);	
                        }						

                    }

                }
                else if (http.status == 302) {
                    gbi("error_comments"+i).innerHTML = const_inline_error;
                }
                else if (http.status != 0) { // IE returns a status code of 0 on some occasions, so ignore that case
                    gbi("error_comments"+i).innerHTML = const_inline_error;
                }
            }
            catch (error) {
            }
        }
        return true;
    };

    this.onreadystatechangeInline2 = function(action,uid) {
        if (http.readyState == 4) {
            try {	
                if (http.status == 200) {	
                    // The ajax request failed because user was  timed out.
                    if ( http.responseText == "ERROR")
                    {
                        window.location.reload(true);;
                        return false;
                    }
                    if (http.responseText.charAt(0) == "\n") // to handle prob with symfony (extra \n char)
                        var arr_response = http.responseText.substr(1).split("|X|");
                    else
                        var arr_response = http.responseText.split("|X|");
                    if (arr_response[0] == "OK") 
                    {
                        var xmlResponse = http.responseXML;
                        switch(action)
                        {
                            case 2: //add
                                gbi('successmsg').innerHTML = arr_response[1]+" Job(s) has/have been assigned to "+gbi('uname_'+uid).innerHTML;
                                gbi('greenmess').style.display = "block";
                                var cnt = parseInt(gbi('ucount_'+uid).innerHTML)+ parseInt(arr_response[1]);
                                gbi('ucount_'+uid).innerHTML = (cnt < 0 ) ? '0' : cnt;
                                scroll(0,80);	
                                hidemodal();
                                cleanmodal(0);	
                                break;
                            case 3: //remove
                                gbi('successmsg').innerHTML = arr_response[1]+" Job(s) has/have been revoked from "+gbi('uname_'+uid).innerHTML;
                                gbi('greenmess').style.display = "block";
                                var cnt = parseInt(gbi('ucount_'+uid).innerHTML) - parseInt(arr_response[1] );
                                gbi('ucount_'+uid).innerHTML = (cnt < 0 ) ? '0' : cnt;

                                hidemodal();
                                scroll(0,80);
                                cleanmodal(1);	
                                break;
                        }
                    }
                    else
                    {
                        if (arr_response[0] == undefined) 
                        {
                            gbi("error_comments"+i).innerHTML = const_inline_error;
                        }						

                    }
                }
                else if (http.status == 302) {
                    gbi("error_comments"+i).innerHTML = const_inline_error;
                }
                else if (http.status != 0) { // IE returns a status code of 0 on some occasions, so ignore that case
                    gbi("error_comments"+i).innerHTML = "<br>" + const_inline_error;
                }
                http = null;
            }
            catch (error) {
            }
        }
        return true;
    };
    return this; // return object of Inline class
}

function cleanmodal(cnt)
{
    var browser=navigator.appName;
    var master = gbi("jobdiv"+cnt);
    var arr = master.childNodes;
    var cnt = arr.length;
    var lim;
    if( browser == "Netscape")
        lim = 3;
    else	
        lim = 1;
    try {
        for(var i = cnt -1; i >= lim ;i--)
            var tmpChildN = arr[i].chileNodes;
        for(var j=0; j<tmpChildN.length;j++)
            arr[i].removeChild(tmpChildN[j]);
        master.removeChild(arr[i]);
    }catch(err1) {
        try {
            master.innerHTML = '';
        } catch(err2) {
        }
    }
}
function changePageIDForJobAssign(pageNo)
{
    i1.inlinejobs(calledFor, calledFor+'1', currentUser, pageNo);
}

/* inlineNew.js */

// Global variable to send ajax request for comments
var xmlHttpObj = null;

    function addComment(objBtn) {
        if ( xmlHttpObj == null )
            xmlHttpObj = gethttpObject();

        if ( gbi('commentCount').value >= maxComment ) {
            showTopErrMsg('You can only add '+ maxComment +' comments.');
            return false;
        }

        var commentText = gbi('newComment').value.trim();
        if ( commentText.length == 0 ) {
            showTopErrMsg("You have not entered any comment.");
            gbi('newComment').focus();
            return false;
        } else if ( commentText.length > 250 ) {
            showTopErrMsg("You can enter only upto 250 characters.");
            gbi('newComment').focus();
            return false;
        }
        hideTopErrMsg();
        commentText = commentText.replace(/\&amp;/g, '&');
        commentText = commentText.replace(/\&/g, '|XA|');
        commentText = commentText.replace(/\+/g, '|XX|');


        xmlHttpObj.onreadystatechange = function(){ onreadyStateChangeAddComment( objBtn ); }

        var requestParams = "id="+gbi('id').value+"&resid=" + gbi("resid").value + "&comment=" + commentText;
        xmlHttpObj.open("POST", gbi('ajax_url_add').value , true);
        xmlHttpObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlHttpObj.setRequestHeader("Content-length", requestParams.length);
        xmlHttpObj.setRequestHeader("Connection", "close");

        xmlHttpObj.send(requestParams);
        objBtn.disabled = true;

    }

    function updateComment(objBtn, i) {
        if ( xmlHttpObj == null )
            xmlHttpObj = gethttpObject();

        var commentText = gbi('textarea_'+i).value.trim();
        if ( commentText.length == 0 ) {
            showTopErrMsg("You have not entered any comment.");
            gbi('newComment').focus();
            return false;
        } else if ( commentText.length > 250 ) {
            showTopErrMsg("You can enter only upto 250 characters.");
            gbi('newComment').focus();
            return false;
        }

        hideTopErrMsg();
        objBtn.disabled = true;
        commentText = commentText.replace(/\&amp;/g, '&');
        commentText = commentText.replace(/\&/g, '|XA|');
        commentText = commentText.replace(/\+/g, '|XX|');

        xmlHttpObj.onreadystatechange = function() { onreadyStateChangeUpdateComment(objBtn, i); }

        var requestParams = "id="+gbi('id').value+ "&comment_id=" + gbi('comment_id_'+i).value + "&comment=" + commentText;
        xmlHttpObj.open("POST", gbi('ajax_url_save').value , true);
        xmlHttpObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlHttpObj.setRequestHeader("Content-length", requestParams.length);
        xmlHttpObj.setRequestHeader("Connection", "close");
        xmlHttpObj.send(requestParams);
    }

    function deleteComment(objBtn, ij) {
        if ( xmlHttpObj == null )
            xmlHttpObj = gethttpObject();

        hideTopErrMsg();
        objBtn.disabled = true;
        xmlHttpObj.onreadystatechange = function() {onreadyStateChangeDeleteComment(ij);};

        var requestParams = "id="+gbi('id').value+ "&comment_id=" + gbi('comment_id_'+ij).value;
        xmlHttpObj.open("GET", gbi('ajax_url_delete').value + "?" + requestParams, true);
        xmlHttpObj.send(null);
    }

function onreadyStateChangeAddComment(objBtn) {
    if ( xmlHttpObj.readyState == 4 ) {
        if ( xmlHttpObj.status == 200 ) {
            gbi('comment_count_master').innerHTML = parseInt(gbi('comment_count_master').innerHTML) + 1;
            var responseText = xmlHttpObj.responseText;
            if ( responseText.charAt(0) == "\n" )
                responseText = responseText.substring(0);

            var arrResp = responseText.split('|X|');
            if ( arrResp[0] == "OK" ) {
                var comment_parent =  gbi("add-comments-new");

                var i = gbi('commentCount').value;
                i = parseInt(i) + parseInt(1);

                var newContent = gbi('SampleDiv').innerHTML;
                newContent = newContent.replace(/@@/g, arrResp[1]);

                comment_parent.innerHTML = newContent + comment_parent.innerHTML;

                var xx = 1;
                var bEle = document.getElementsByTagName('b');
                for(var j=0; j<bEle.length; j+=2)
                {
                    try {
                        bEle[j].innerHTML = xx + '.';
                        bEle[j+1].innerHTML = (xx++) + '.';
                    } catch(e) { }
                }
                gbi('date_'+arrResp[1]+ '_1').innerHTML = getCurrDateString();
                gbi('date_'+arrResp[1]+ '_2').innerHTML = getCurrDateString();
                var newComment_encoded = gbi('newComment').value;
                newComment_encoded = newComment_encoded.replace(/\&/g, '&amp;');
                newComment_encoded = newComment_encoded.replace(/\</g, '&lt;');
                newComment_encoded = newComment_encoded.replace(/\>/g, '&gt;');
                newComment_encoded = newComment_encoded.replace(/\"/g, '&quot;');
                newComment_encoded = newComment_encoded.replace(/\n/g, '<br />');
                gbi('original_comment_'+ arrResp[1]).innerHTML = newComment_encoded;
                gbi('comment_id_' + arrResp[1]).value = arrResp[1]; 
                comment_parent.style.display = 'block';
                gbi('commentCount').value = i; 
                gbi('newComment').value = '';
                xmlHttpObj = null;
                objBtn.disabled = false;
            }
        } else if ( xmlHttpObj.status ==  302 ) {
        } else if ( xmlHttpObj.status != 0 ) {
        }
    }
}

function onreadyStateChangeUpdateComment(objBtn, i) {
    if ( xmlHttpObj.readyState == 4 ) {
        if ( xmlHttpObj.status == 200 ) {
            var newComment_encoded = gbi('textarea_' + i ).value.trim();
            newComment_encoded = newComment_encoded.replace(/\&/g, '&amp;');
            newComment_encoded = newComment_encoded.replace(/\</g, '&lt;');
            newComment_encoded = newComment_encoded.replace(/\>/g, '&gt;');
            newComment_encoded = newComment_encoded.replace(/\"/g, '&quot;');
            newComment_encoded = newComment_encoded.replace(/\n/g, '<br />');

            gbi("original_comment_"+i).innerHTML = newComment_encoded;
            gbi("edit_comment_"+i).style.display = 'none';
            gbi('view_comment_'+i).style.display = '';
            objBtn.disabled = false;
            xmlHttpObj = null;
        }
    }
}

function onreadyStateChangeDeleteComment(i) {

    if ( xmlHttpObj.readyState == 4 ) {
        if ( xmlHttpObj.status == 200 ) {
            gbi('comment_count_master').innerHTML = ((parseInt(gbi('comment_count_master').innerHTML) - 1) >=0 ) ? parseInt(gbi('comment_count_master').innerHTML) - 1 : 0; 
            var idel = i;
            var new_i = idel;
            gbi('edit_comment_' + idel ).parentNode.removeChild(gbi('edit_comment_' + idel ));
            gbi('view_comment_' + idel ).parentNode.removeChild(gbi('view_comment_' + idel ));

            var xx = 1;
            var bEle = document.getElementsByTagName('b');
            for(var j=0; j<bEle.length; j+=2)
            {
                try {
                    bEle[j].innerHTML = xx + '.';
                    bEle[j+1].innerHTML = (xx++) + '.';
                } catch(e) { }
            }

            gbi('commentCount').value = parseInt(gbi('commentCount').value) - 1;
            xmlHttpObj = null;
        }
    }
}

function ModifyComment(commentID)
{
    var original_comment = gbi("original_comment_"+commentID).innerHTML;
    original_comment = original_comment.replace(/\&amp\;/g, '&'); 
    original_comment = original_comment.replace(/\&lt\;/gi, '<');
    original_comment = original_comment.replace(/\&gt\;/gi, '>');
    original_comment = original_comment.replace(/\&quot\;/gi, '"');
    original_comment = original_comment.replace(/\n/gi, '');
    original_comment = original_comment.replace(/<br>/gi, '\n');
    original_comment = original_comment.replace(/<br \/>/gi, '\n');
    gbi("textarea_"+commentID).value = original_comment;
    gbi("edit_comment_"+commentID).style.display = '';
    gbi("view_comment_"+commentID).style.display = 'none';
}
function CancelModifyComment(commentID)
{
    gbi("edit_comment_"+commentID).style.display = 'none';
    gbi("view_comment_"+commentID).style.display = '';
    gbi("textarea_"+commentID).value = gbi("original_comment_"+commentID).innerHTML;
}

function getCurrDateString() 
{
    var months = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
    var dt = new Date();
    var dtStr = dt.getDate() + '-' + months[dt.getMonth()] + '-' + dt.getFullYear();
    return dtStr;
}
function checkLimit(obj, length)
{
    if (obj.value.trim().length > length )
        showTopErrMsg('You cannot add more than ' + length + ' characters');
}


/* highlight */
function highlightWord(node,word) {
    var l = word.replace(/\\/g,'').length;
    if (node.hasChildNodes()) {
        var hi_cn;
        for (hi_cn=0;hi_cn<node.childNodes.length;hi_cn++) {
            highlightWord(node.childNodes[hi_cn],word);
        }
    }

    if (node.nodeType == 3) {
        tempNodeVal = node.nodeValue.toLowerCase();
        tempWordVal = word.toLowerCase();
        if(tempWordVal.search(/(\.|\+|\*|\#)/) == -1)
            var st = "tempNodeVal.search(\/\\b"+tempWordVal+"\\b\/i)";
        else if(tempWordVal == 'c')
            var st = "tempNodeVal.search(\/\\bc(\\ |\\,|\\.|\\\\|\\\/)\/i)";
        else
            var st = "tempNodeVal.search(\/"+tempWordVal+"/i)";
        if (eval(st) != -1) {
            pn = node.parentNode;
            checkn = pn;
            while (checkn.nodeType != 9 &&
                    checkn.nodeName.toLowerCase() != 'body') {
                if (checkn.className.match(/\bnosearchhi\b/)) { return; }
                checkn = checkn.parentNode;
            }
            if (pn.className != "searchword") {
                nv = node.nodeValue;
                if(tempWordVal.search(/(\.|\+|\*|\#)/) == -1)
                    var st1 = "tempNodeVal.search(\/\\b"+tempWordVal+"\\b\/i)";
                else if(tempWordVal == 'c')
                    var st1 = "tempNodeVal.search(\/\\bc(\\ |\\,|\\.|\\\\|\\\/)\/i)";
                else
                    var st1 = "tempNodeVal.search(\/"+tempWordVal+"/i)";
                ni = eval(st1);
                if(ni == -1) return;
                before = document.createTextNode(nv.substr(0,ni));
                docWordVal = nv.substr(ni,l);
                after = document.createTextNode(nv.substr(ni+l));
                hiwordtext = document.createTextNode(docWordVal);
                hiword = document.createElement("span");
                hiword.className = "searchword";
                hiword.appendChild(hiwordtext);
                pn.insertBefore(before,node);
                pn.insertBefore(hiword,node);
                pn.insertBefore(after,node);
                pn.removeChild(node);
            }
        }
    }
}

function SearchHighlight() 
{
    if (!document.createElement) return;
    if(qs == '') return;

    qsa = qs.split(',');
    for (i=0;i<qsa.length;i++) 
    {
        qsip = qsa[i];
        highlightWord(gbi("rdxResume"),qsip);
    }
}

/*  upload - html */
function checkContainer(frmName)
{
    var frmObj = eval('document.' + frmName);
    var arr = frmObj.container.value.split("|X|");
    if(arr[0] == "" || typeof(arr[1]) == "undefined")
    {
        var obj = gbi("errormess").getElementsByTagName("span");
        gbi("errormess").style.display="block";
        obj[0].innerHTML = err;
        scroll(0, 0);
    }
    else frmObj.submit();
}

/* othermedia - html */
function submitOMediaForm()
{
    if ( !checkPost() )	return false;
    if ( !checkMedia() )	return false;

    var postType = document.getElementsByName('postType');
    var mediaType = document.getElementsByName('mediaType');

    if ( postType[0].checked && mediaType[0].checked )
    {
        var vJobID = gbi('oldPost').value;
        var src = gbi('oldMedia');
        var sourceID = src.options[src.selectedIndex].text;

        var code = 	sourceUrl.toString().split('|X|');
        var url = code[0] + vJobID + code[1] + sourceID + code[2];
        gbi('codeArea').value = url;
        return false;
    }
    else
        return true;
}
function checkPost()
{
    var postType = document.getElementsByName('postType');
    if ( postType[0].checked && gbi('oldPost').value == '-1')
    {
        chgClass('1', 'mediaSel', 'media', 'step', 'othermedia')
            showTopErrMsg('Please select a job position from the list or \nprovide a new position to proceed.');
        return false;
    }
    else if ( postType[1].checked && gbi('newPost').value.length == 0 )
    {
        chgClass('1', 'mediaSel', 'media', 'step', 'othermedia')
            showTopErrMsg('Please select a job position from the list or \nprovide a new position to proceed.');
        return false;
    }
    else
    {
        chgClass('2', 'mediaSel', 'media', 'step', 'othermedia');
        return true;
    }
}
function checkMedia()
{
    var mediaType = document.getElementsByName('mediaType');
    if ( mediaType[0].checked && gbi('oldMedia').value == -1 )
    {
        chgClass('2', 'mediaSel', 'media', 'step', 'othermedia');
        showTopErrMsg('Please select a media from the list or \nprovide a new media to proceed.');
        return false;
    }
    else if ( mediaType[1].checked && gbi('newMedia').value.length == 0 )
    {
        chgClass('2', 'mediaSel', 'media', 'step', 'othermedia');
        showTopErrMsg('Please select a media from the list or \nprovide a new media to proceed.');
        return false;
    }
    else
    {
        gbi('codeArea').value = '';
        chgClass('3', 'mediaSel', 'media', 'step', 'othermedia')
            return true;
    }
    gbi('codeArea').value = '';
}

function disableStep(eleID) { try { gbi(eleID).disabled = true; } catch(e) {} }
function enableStep(eleID) { try { gbi(eleID).disabled = false; } catch(e) {} }

function isValidName(Name)
{
    var pattern = /[^a-zA-Z'\s.]+/;
    return !(pattern.test(Name));
}

/***************** autosuggest_eapps.js start *************/
function AutoSuggest(elem, formname)
{
    var me = this;
    this.elem = elem;
    this.eligible = new Array();
    this.inputText = null;
    this.highlighted = -1;
    this.div = document.getElementById("autosuggest");
    this.div.style.zIndex=1000;
    var TAB = 9;
    var ESC = 27;
    var KEYUP = 38;
    var KEYDN = 40;
    var ENTER = 13;
    var cntr = 0;
    var maxlist = 20;
    var flag_ie = false;
    var leftover = "";
    elem.setAttribute("autocomplete","off");
    if(!elem.id)
    {
        var id = "autosuggest" + idCounter;
        idCounter++;
        elem.id = id;
    }
    elem.onblur = function(ev)
    {
        me.hideDiv();
    }
    elem.onkeydown = function(ev)
    {
        newflag = "";
        var key = me.getKeyCode(ev);
        switch(key)
        {
            case TAB:
                me.useSuggestion();
                break;

            case ENTER:

                newflag = "DOWN";
                var val_ret = me.useSuggestion();
                if(val_ret == 0)
                    newflag = "";
                else
                    return false;

                break;

            case ESC:
                me.hideDiv();
                break;

            case KEYUP:
                if (me.highlighted > 0)
                {
                    me.highlighted--;
                }
                me.changeHighlight(key);
                break;

            case KEYDN:
                if (me.highlighted < (me.eligible.length - 1) && me.highlighted < (maxlist-1))
                {
                    me.highlighted++;
                }
                me.changeHighlight(key);
                break;
        }
    };

    elem.onkeyup = function(ev)
    {
        newflag = "";
        var key = me.getKeyCode(ev);

        switch(key)
        {
            case ENTER:
                newflag = "UP";
            case TAB:
            case ESC:
            case KEYUP:
            case KEYDN:
                return;
            default:
                if(trim1(this.value).length > 1)
                {
                    var str_input = this.value;
                    var arr_tmp = str_input.split(',');

                    var str_mod_comm = this.id;
                    var arr_mod_comm = str_mod_comm.split('_');

                    if(arr_tmp.length>1 && (this.id == 'srch_inc_keyword' || this.id == 'desig' || this.id == 'emp_keyword_inc' || this.id == 'emp_keyword_exc' || this.id == 'newComment' || arr_mod_comm[0] == 'textarea'))
                    {
                        str_input=trim1(arr_tmp[arr_tmp.length-1]);
                        if(this.id == 'desig' || this.id == 'emp_keyword_inc' || this.id == 'emp_keyword_exc' || this.id == 'newComment' || arr_mod_comm[0] == 'textarea')
                        {
                            if(str_input.length<=1) str_input = '';
                        }
                        arr_tmp = arr_tmp.slice(0,arr_tmp.length-1);
                        leftover = arr_tmp.join(',');
                    }
                    delete(arr_tmp);
                    str_input = str_input.replace(/[@;:!&\s]+/g," ");
                    str_input = str_input.replace(/^\s/,"");
                    // CLEANUP END
                    if(str_input.length <= 0)
                    {
                        leftover='';
                        me.hideDiv();
                        return;
                    }

                    me.inputText = str_input;
                    var return_len = me.getEligible();
                    if(return_len > 0)
                    {
                        me.createDiv();
                        me.positionDiv();
                        me.showDiv();
                    }
                    else
                    {
                        me.hideDiv();
                    }
                }
                else
                {
                    leftover='';
                    me.inputText = '';
                    me.hideDiv();
                }
        }
    };
    this.useSuggestion = function()
    {
        if (this.highlighted > -1)
        {
            if(document.getElementById("uen")) document.getElementById("uen").value = this.elem.value;

            if(leftover != '') leftover += ',';
            this.elem.value = leftover+this.eligible[this.highlighted];
            this.hideDiv();
            leftover='';

            if(document.getElementById("usl")) document.getElementById("usl").value = this.elem.value;
            setTimeout("document.getElementById('" + this.elem.id + "').focus()",0);
            return 1;
        }
        else
            return 0;
    };
    this.showDiv = function()
    {
        me.highlighted = -1;
        document.getElementById("uen").value = document.getElementById("usl").value = "";
        this.div.style.display = 'block';

        if(disable && flag_ie)
        {
            var subobj=this.div;
            var ifrRef = document.getElementById("DivShim");
            ifrRef.style.width = subobj.offsetWidth;
            ifrRef.style.height = subobj.offsetHeight;
            ifrRef.style.top = subobj.style.top;
            ifrRef.style.left = subobj.style.left;
            ifrRef.style.marginTop = subobj.style.marginTop;
            ifrRef.style.marginBottom = subobj.style.marginBottom;
            ifrRef.style.marginLeft = subobj.style.marginLeft;
            ifrRef.style.marginRight = subobj.style.marginRight;
            ifrRef.style.display = subobj.style.display;
            ifrRef.style.zIndex = 1;
            subobj.style.zIndex = 2;
        } // end of if()
    };
    this.hideDiv = function()
    {
        this.div.style.display = 'none';
        document.getElementById("DivShim").style.display= 'none';
        this.highlighted = -1;
        this.eligible = new Array();

        if(disable && flag_ie)
        {
            var i;
            for(i=0;i<disable.length;i++)
            {
                document.getElementById(disable[i]).style.visibility = 'visible';                        }// end of for()
        } // end of if()

    };
    this.changeHighlight = function()
    {
        var lis = this.div.getElementsByTagName('LI');
        for (i in lis)
        {
            var li = lis[i];

            if (this.highlighted == i)
            {
                li.className = "selected";
            }
            else
            {
                li.className = "";
            }
        }
    };
    this.positionDiv = function()
    {
        var el = this.elem;
        var x = 0;
        var y = el.offsetHeight;

        while (el.offsetParent && el.tagName.toUpperCase() != 'BODY')
        {
            x += el.offsetLeft;
            y += el.offsetTop;
            el = el.offsetParent;
        }

        x += el.offsetLeft;
        y += el.offsetTop;
        this.div.style.left = x -(form_n == "form4" && document.getElementById("divfordisplay")?parseInt(document.getElementById("divfordisplay").style.left.substr(0,(document.getElementById("divfordisplay").style.left.length-2))):0) + 'px';
        this.div.style.top = y -(form_n == "form4" && document.getElementById("divfordisplay")?parseInt(document.getElementById("divfordisplay").style.top.substr(0,(document.getElementById("divfordisplay").style.top.length-2))):0) + 'px';
    };
    this.createDiv = function()
    {
        cntr = 0;
        var full_temparr = new Array();
        var ul = document.createElement('ul');
        for (i in this.eligible)
        {
            if(cntr == 20) break;
            var word = this.eligible[i];
            full_temparr[cntr++] = word;
            var li = document.createElement('li');
            var a = document.createElement('a');
            a.href="javascript:setValue(\""+word+"\");";
            a.innerHTML = markbold(this.inputText.toLowerCase(),word.toLowerCase());
            li.appendChild(a);
            if (me.highlighted == i)
            {
                li.className = "selected";
            }
            ul.appendChild(li);
        }
        this.div.replaceChild(ul,this.div.childNodes[0]);
        ul.onmouseover = function(ev)
        {
            var target = me.getEventSource(ev);
            while (target.parentNode && target.tagName.toUpperCase() != 'LI')
            {
                target = target.parentNode;
            }

            var lis = me.div.getElementsByTagName('LI');
            for (i in lis)
            {
                var li = lis[i];
                if(li == target)
                {
                    me.highlighted = i;
                    break;
                }
            }
            me.changeHighlight();
        };
        ul.onmousedown = function(ev)
        {
            me.useSuggestion();
            me.hideDiv();
            me.cancelEvent(ev);
            return false;
        };
        this.div.className="suggestion_list";
        this.div.style.position = 'absolute';
    };
    this.getEligible = function()
    {
        this.eligible = new Array();

        var tmpArr = new Array();
        switch(this.elem.id)
        {
            case 'srch_inc_keyword' : tmpArr = sample.concat(sample1); break;
            case 'ez_keyword_any' : tmpArr = sample.concat(sample1); break;
            case 'ez_keyword_all' : tmpArr = sample.concat(sample1); break;
            case 'ez_keyword_exclude' : tmpArr = sample.concat(sample1); break;
            case 'emp_keyword_inc' : tmpArr = sample2; break;
            case 'emp_keyword_exc' : tmpArr = sample2; break;
            case 'desig'            : tmpArr = sample1; break;
            case 'newComment'      : tmpArr = sample3; break;
        }

        var str_mod_comm1 = this.elem.id;
        var arr_mod_comm1 = str_mod_comm1.split('_');
        if (arr_mod_comm1[0] == 'textarea') {
            tmpArr = sample3;
        }

        for (i in tmpArr)
        {
            var suggestion = tmpArr[i];
            var index = suggestion.toLowerCase().indexOf(this.inputText.toLowerCase());

            if(index == 0 || suggestion.charAt(index-1) == " ")
            {
                this.eligible[this.eligible.length]=suggestion;
            }
        }
        return this.eligible.length;
    };

    this.getKeyCode = function(ev)
    {
        if(ev)      //Moz
        {
            flag_ie = false;
            return ev.keyCode;
        }
        if(window.event)  //IE
        {
            flag_ie = true;
            return window.event.keyCode;
        }
    };
    this.getEventSource = function(ev)
    {
        if(ev)      //Moz
        {
            return ev.target;
        }

        if(window.event)  //IE
        {
            return window.event.srcElement;
        }
    };
    this.cancelEvent = function(ev)
    {
        if(ev)      //Moz
        {
            ev.preventDefault();
            ev.stopPropagation();
        }
        if(window.event)  //IE
        {
            window.event.returnValue = false;
        }
    }
}

function in_array(arr,str)
{
    for (var i in arr) { if (arr[i] === str) return i; }
    return -1;
}

function createAutoSuggest()
{
    new AutoSuggest(document.getElementById(suggestelement),form_n);
}

function markbold(str1,str2)
{
    index = str2.indexOf(str1);
    var str_ret="";
    str_ret += str2.substr(0,index);
    str_ret += "<b>"+str2.substr(index,str1.length)+"</b>";
    str_ret += str2.substr((index+str1.length),str2.length);
    return str_ret;
}

function setValue(val)
{
    document.getElementById(suggestelement).value=val;
}

function getHTTPObject()
{
    var http_request;

    if (window.XMLHttpRequest) { // For Mozilla and other browsers
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/xml');
        }
    }
    else if (window.ActiveXObject) { // For Internet Explorer
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {}             }
    }
    if (!http_request) {
        alert('Giving up :( Cannot create an XMLHTTP instance');
                return false;
                }

                return http_request;
                }

                var http_suggest = new getHTTPObject();

                function getdata()
                {
                http_suggest.open("GET",url+"set="+set,true);
                http_suggest.onreadystatechange = handleHttpResponse;
                http_suggest.send(null);
                }
                function call_getdata()
                {
                set++;
                http_suggest = null;
                http_suggest = new getHTTPObject();
                getdata();
                }

function handleHttpResponse()
{
    if (http_suggest.readyState == 4)
    {
        var doc = http_suggest.responseText;
        if(doc)
        {
            var temp = doc.split('|');
            sample = sample.concat(temp.slice(1,temp.length));

            if(b==0)
            {
                if (document.getElementById(suggestelement))
                {
                    createAutoSuggest();
                }
                else
                {
                    a = 1;
                }
                b=1;
            }

            if(temp[0]=='')
                setTimeout("call_getdata()",2000);
        }
    }
}

var idCounter = 0;

function trim1(s)
{
    s+=''; // make sure s is a string
    s=s.replace(/^(\s+)/g,'').replace(/(\s+)$/g,'');
    return s;
}

/*-------------------autosuggest_eapps.js end---------------------*/

