//Ajax
function createXmlHttpRequest(){
    if(window.ActiveXObject){
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if(window.XMLHttpRequest){
        xmlHttp=new XMLHttpRequest();
    }
}

//Create text field node. Return actually DOM element, so could be widely used
function createTdTextNode(text, classStyle){
	return $("<td></td>").addClass(classStyle).append(text).get(0);
}

//Create text field node colspan = 2. Return actually DOM element, so could be widely used
function create2TdTextNode(text, classStyle){
	return $("<td></td>").addClass(classStyle).attr({colSpan:2}).append(text).get(0);
}



function create2TextElements(text1, classStyle1, text2, classStyle2){
	return $("<td></td>").append(
		$("<div></div>").addClass(classStyle1).append(text1)
	).append(
		$("<br/>")
	).append(
		$("<div></div>").addClass(classStyle2).append(text2)
	).get(0);
}

function create2TextElementsWithTDStyle(text1, classStyleForText1, text2, classStyleForText2, classStyleForTD, textHint){
    return $("<td></td>").addClass(classStyleForTD).attr({title:textHint})
	 .append(
		$("<div></div>").addClass(classStyleForText1).append(text1)
	).append(
		$("<br/>")
	).append(
		$("<div></div>").addClass(classStyleForText2).append(text2)
	).get(0);
}

function createDivHrefAndDivTextElement(text, href, classStyle, nameFunction, text2, classStyle2, classStyleTD){
	return $("<td></td>").addClass(classStyleTD).append(
				$("<div></div>").addClass(classStyle).append(
					$("<a></a>").attr(
						(nameFunction!=null) ? {onClick: nameFunction, herf:""} : {href:href, target: "_blank"}
					).append(text)
				)
			)
			.append(
				$("<div></div>").addClass(classStyle2).append(text2)
			).get(0);
}


function createTdFor2TxtElementsTable(text1, classStyle1, text2, classStyle2){
	return	$("<td></td>").append(
				$("<table></table>").append(
					$("<tbody></tbody>").append(
						$("<tr></tr>").append(
							$("<td></td>").addClass(classStyle1).append(text1)
						)
					).append(
						$("<tr></tr>").append(
							$("<td></td>").addClass(classStyle2).append(text2)
						)
					)
				)
			).get(0);
}

//Create radio-button  node
function createTdRadioButtonNode(nameGroup, nameId, isChecked, classStyle, nameFunction){
	var tdNode = document.createElement('td'),
            inputNode;
    if(browser=="IE"){
        inputNode = document.createElement("<input name='"+nameGroup+"'>");
    }else{
        inputNode = document.createElement("input");
        inputNode.name=nameGroup;
    }
    inputNode.id = nameId;
    inputNode.type="radio";
    if(nameFunction!=null){
        inputNode.onclick = nameFunction;
    }
    if(isChecked){
        //inputNode.checked=true;
        inputNode.defaultChecked = true;
    }
    tdNode.appendChild(inputNode);
    return tdNode;
}

//Create radio-button  and Text node
function createTdRadioButtonTextNode(nameGroup, nameId, isChecked, classStyle, nameFunction, text){
    var tdNode = document.createElement('td'),
            inputNode, txtNode;
    if(browser=="IE"){
        inputNode = document.createElement("<input name='"+nameGroup+"'>");
    }else{
        inputNode = document.createElement("input");
        inputNode.name=nameGroup;
    }
    inputNode.id = nameId;
    inputNode.type="radio";
    if(nameFunction!=null){
        inputNode.onclick = nameFunction;
    }
    if(isChecked){
        //inputNode.checked=true;
        inputNode.defaultChecked = true;
    }
    tdNode.appendChild(inputNode);
    txtNode = document.createTextNode(text)
    tdNode.appendChild(txtNode);
    return tdNode;
}

//Create double radio-button  and Text node
function createTdRadioButtonTextNode2(nameGroup, nameId1, isChecked1, nameId2, isChecked2,
                                      classStyle, nameFunction, text1, text2){
	return	$("<td></td>").append(
				$("<input/>").attr({
					name : nameGroup, 
					id : nameGroup,
					value : nameId1,
					type : "radio",
					defaultChecked : isChecked1
				}).click(nameFunction)
			).append (text1).append(
				$("<input/>").attr({
					name : nameGroup, 
					id : nameGroup,
					value : nameId2,
					type : "radio",
					defaultChecked : isChecked2
				}).click(nameFunction)
			).append(text2).get(0);
}


function createRadioButtonWithoutText(nameGroup, nameId, isChecked, nameFunction){
	return	$("<input/>").attr({
				name : nameGroup, 
				id : nameGroup,
				value : nameId,
				type : "radio",
				defaultChecked : isChecked
			}).click(nameFunction).get(0);
}


//Create Text-input  node
function createTdInputtNode(nameId, classStyle, value){
	return	$("<td></td>").append(
				$("<input/>").attr({id : nameId, value : value})
			).get(0);
}

//Create Check-Box node
function createTdCheckBoxNode(id, name, text, classStyle){
	return	$("<td></td>").addClass(classStyle).append(text).append(
				$("<input/>").attr({
					type : "checkbox",
					id : id,
					name : name
				})
			).get(0);
}

//Create Check-Box node
function create2TdCheckBoxNodeWithText(id, name, text, classStyle){
    var tdNode = document.createElement('td'),  inputNode;
    tdNode.setAttribute("colSpan", 2);
    tdNode.className = classStyle;
    inputNode = document.createElement("input");
    inputNode.type="checkbox";
    inputNode.id=id;
    inputNode.name=name;
    tdNode.appendChild(document.createTextNode(text));
    tdNode.appendChild(inputNode);
    return tdNode;
}

//Create 2 Check-Box nodes in one row
function create2TdCheckBoxNodeInOneRow(id1, name1, text1, id2, name2, text2, classStyle){
    var tdNode = document.createElement('td'),
    inputNode = document.createElement("input");
    inputNode.type="checkbox";
    inputNode.id=id1;
    inputNode.name=name1;
    tdNode.setAttribute("colSpan", 2);
    tdNode.className=classStyle;
    tdNode.appendChild(createTdTextNode(text1, classStyle));
    tdNode.appendChild(inputNode);

    inputNode = document.createElement("input");
    inputNode.type="checkbox";
    inputNode.id=id2;
    inputNode.name=name2;
    //tdNode.className=classStyle;
    tdNode.appendChild(document.createTextNode(text2));
    tdNode.appendChild(inputNode);
    return tdNode;
}


function createTdCheckBoxNodeForBasket(id, name, text, classStyle, typeBasket, valueId){
    var tdNode = document.createElement('td'),
            inputNode = document.createElement("input");
    inputNode.type="checkbox";
    inputNode.id=id;
    inputNode.name=name;
    if(browser=="IE"){
        inputNode.setAttribute("onclick", function(){setValueBasket(typeBasket, valueId);});
    }else{
        inputNode.setAttribute("onclick", "setValueBasket('"+typeBasket+"',"+valueId+");");
    }
    tdNode.appendChild(document.createTextNode(text));
    tdNode.appendChild(inputNode);
    tdNode.className=classStyle;
    return tdNode;
}


function createTdTextAndCheckBoxNodeForBasket(idCheckBox, nameCheckBox, textCheckBox, classStyleCheckBox, typeBasketCheckBox, valueIdCheckBox, text2, classStyleText){
    var tdNode = document.createElement('td'),
            inputNode = document.createElement("input");

    var elementA1 = document.createElement("div");
    elementA1.appendChild(document.createTextNode(text2));
    elementA1.className = classStyleText;
    tdNode.appendChild(elementA1);

    elementA1 = document.createElement("div");
    elementA1.appendChild(document.createTextNode(" "));
    elementA1.className = classStyleText;
    tdNode.appendChild(elementA1);

    elementA1 = document.createElement("div");
    inputNode.type="checkbox";
    inputNode.id=idCheckBox;
    inputNode.name=nameCheckBox;
    if(browser=="IE"){
        inputNode.setAttribute("onclick", function(){setValueBasket(typeBasketCheckBox, valueIdCheckBox);});
    }else{
        inputNode.setAttribute("onclick", "setValueBasket('"+typeBasketCheckBox+"',"+valueIdCheckBox+");");
    }

    elementA1.appendChild(document.createTextNode(textCheckBox));
    elementA1.appendChild(inputNode);
    elementA1.className=classStyleCheckBox;
    tdNode.appendChild(elementA1);
    return tdNode;
}


//Create Select node
function createTdDivSelectNode(nameDivId, nameSelectId, classStyle){
    var tdNode = document.createElement('td'),
            divNode = document.createElement('div'),
            selectNode = document.createElement("select");
    divNode.id=nameDivId;
    selectNode.id=nameSelectId;
    selectNode.className=classStyle;
    divNode.appendChild(selectNode);
    tdNode.appendChild(divNode);
    return tdNode;
}

//Create Select node
function createTdSelectNode(nameSelectId, classStyle){
    var tdNode = document.createElement('td'),
            selectNode = document.createElement("select");
    selectNode.id=nameSelectId;
    selectNode.className=classStyle;
    tdNode.appendChild(selectNode);
    return tdNode;
}

//Create MultiSelect node
function createTdMultiSelectNode(nameSelectId, classStyle){
    var tdNode = document.createElement('td'),
            selectNode = document.createElement("select");
    selectNode.id=nameSelectId;
    //alert(styleSelect);
    selectNode.className=classStyle;
    selectNode.multiple = true;
    selectNode.size = 3;
    tdNode.appendChild(selectNode);
    return tdNode;
}


//Create Image with link
function createTdImageHref(classStyleForImage, hrefLink){
   var tdNode = document.createElement('td'), hrefNode;
    if(browser=="IE"){
        hrefNode=document.createElement('<a href="'+hrefLink+'" target="_blank" >');
        hrefNode.appendChild(document.createTextNode(""));
        hrefNode.className = classStyleForImage;
    }else{
        hrefNode = document.createElement("a");
        hrefNode.href=hrefLink;
        hrefNode.target="_blank";
        hrefNode.textContent="";
        hrefNode.className = classStyleForImage;
    }
    tdNode.appendChild(hrefNode);
    tdNode.colSpan=2;
    return tdNode;
}



function fillSelectElementAjax(arrayValue, nameDiv, nameSelect, classStyleSelect, classStyleOption, styleSelect, onChangeFunction, valueSelect){
    var i;
	var strTemp = $("<select></select>").addClass(classStyleSelect)
						.attr({
							id : nameSelect,
							style : styleSelect
						}).change(function(){onChangeFunction});
    for(i=0; i<arrayValue.length; i++)
		strTemp.append(
			$("<option></option>").addClass(classStyleOption)
				.attr({
					id : arrayValue[i][0],
					value : arrayValue[i][0]
				}).attr(
					(valueSelect!=null && arrayValue[i][0]==valueSelect) ? {"selected" : "selected"} : {}
				).append(arrayValue[i][1])
		);
    $("#" + nameDiv).html(strTemp);
}

//Create href node
function createTdHrefNode(text, href, classStyle, nameFunction){
    var tdNode = document.createElement('td'), hrefNode;
    if(browser=="IE"){
        if(nameFunction!=null && href==null){
            //alert("Insert Function");
            hrefNode=document.createElement('<a href="" onClick="'+nameFunction+'; return false;" >');
            //hrefNode.setAttribute("onclick", nameFunction+"; return false;");
        }else{
            hrefNode=document.createElement('<a href="'+href+'" target="_blank" >');
        }
        hrefNode.appendChild(document.createTextNode(text));
    }else{
        hrefNode = document.createElement("a");
        if(nameFunction!=null){
            hrefNode.setAttribute("onClick", nameFunction+"; return false;");
            hrefNode.href='';
        }else{
            hrefNode.href=href;
            hrefNode.target="_blank";
        }
        hrefNode.textContent=text;
    }
    tdNode.appendChild(hrefNode);
    tdNode.className=classStyle;
    return tdNode;
}


function createCompoundTdTextTextNode(text1, classStyle1, text2, classStyle2){
    var tdNode = document.createElement('td'),
            pNode = document.createElement("p");
    pNode.className = classStyle1;
    pNode.appendChild(document.createTextNode(text1));
    tdNode.appendChild(pNode);

    pNode = document.createElement("p")
    pNode.className = classStyle2;
    pNode.appendChild(document.createTextNode(text2));
    tdNode.appendChild(pNode);

    return tdNode;
}

function createCompoundTdHrefTextNode(text1, href, classStyle1, text2, classStyle2){
    var tdNode = document.createElement('td'),
            pNode = document.createElement("p"), aNode;

    if(browser=="IE"){
        // txtNode = document.createElement("<a>");
        aNode=document.createElement('<a href="'+href+'" target="_blank" >');
        aNode.appendChild(document.createTextNode(text1));
    }else{
        aNode = document.createElement("a");
        aNode.href=href;
        aNode.className = classStyle1;
        aNode.target="_blank";
        aNode.textContent=text1;
    }
    tdNode.appendChild(aNode);

    pNode = document.createElement("p")
    pNode.className = classStyle2;
    pNode.appendChild(document.createTextNode(text2));
    tdNode.appendChild(pNode);

    return tdNode;
}

//Create navigator Bar
function createNavigatorBar(pageSize, documentCount, maxLinkCount, typeSearch, paramSearch){
    var lastPage, startPage, endPage, linkBar="";
    var first, last, strUrl;

    //alert(documentCount);
    //Clear params

    var indexStartPos = paramSearch.indexOf('&typeSearch');
    if(indexStartPos!=-1){
        paramSearch = paramSearch.substring(0,indexStartPos);
    }


    lastPage = parseInt((documentCount-1)/pageSize);
    startPage = Math.max(0, Math.min(currentPage - parseInt((maxLinkCount/2)), lastPage-maxLinkCount+1));
    endPage = Math.min(startPage+maxLinkCount-1, lastPage);
    if(startPage>0){
        linkBar+="<a href='' class='s' onClick='dontUseHashUrl=true; searchVacanciesResume(0,"+typeSearch+", \""+paramSearch+"\"); return false;'><-- </a>";
    }
    if(currentPage > lastPage){
        currentPage=lastPage;
    }

    for(var i=startPage; i<=endPage; i++){
        first=i*pageSize+1;
        last = Math.min((i+1)*pageSize, documentCount);
        if(first!=last){
            if(i==currentPage){
                linkBar+="<a>"+first+'..'+last+"</a>"+"  ";
            }else{
                linkBar+="<a href='' onClick='dontUseHashUrl=true; searchVacanciesResume("+i+","+typeSearch+", \""+paramSearch+"\"); return false;'>"+first+'..'+last+"</a>"+"  ";
            }
        }else{
            if(i==currentPage){
                linkBar+="<a>"+first+"</a>"+"  ";
            }else{
                linkBar+="<a href='' onClick='dontUseHashUrl=true; searchVacanciesResume("+i+","+typeSearch+", \""+paramSearch+"\"); return false;'>"+first+"</a>";
            }

        }
    }
    if((endPage+1)*pageSize<documentCount){
        var nextItemsUrl = pageURL+lastPage;
        linkBar+="<a href='' onClick='dontUseHashUrl=true; searchVacanciesResume("+lastPage+","+typeSearch+", \""+paramSearch+"\"); return false;'>--></a>";
        //linkBar+="<a href='"+nextItemsUrl+"' > --></a>";
    }
    return linkBar;
}


function createNavigatorBarForTopVacRes(pageSize, documentCount, maxLinkCount, typeDisplay, paramSearch){
    var lastPage, startPage, endPage, linkBar="";
    var first, last, strUrl;

    //alert(documentCount);
    lastPage = parseInt((documentCount-1)/pageSize);
    startPage = Math.max(0, Math.min(currentPage - parseInt((maxLinkCount/2)), lastPage-maxLinkCount+1));
    endPage = Math.min(startPage+maxLinkCount-1, lastPage);
    if(startPage>0){
        linkBar+="<a href='' class='s' onClick='displayLastVacanciesResume("+typeDisplay+",0); return false;'><-- </a>";
    }
    if(currentPage > lastPage){
        currentPage=lastPage;
    }

    for(var i=startPage; i<=endPage; i++){
        first=i*pageSize+1;
        last = Math.min((i+1)*pageSize, documentCount);
        if(first!=last){
            if(i==currentPage){
                linkBar+="<a>"+first+'..'+last+"</a>"+"  ";
            }else{
                linkBar+="<a href='' onClick='displayLastVacanciesResume("+typeDisplay+","+i+"); return false;'>"+first+'..'+last+"</a>"+"  ";
            }
        }else{
            if(i==currentPage){
                linkBar+="<a>"+first+"</a>"+"  ";
            }else{
                linkBar+="<a href='' onClick='displayLastVacanciesResume("+typeDisplay+","+i+"); return false;'>"+first+"</a>";
            }

        }
    }
    if((endPage+1)*pageSize<documentCount){
        var nextItemsUrl = pageURL+lastPage;
        linkBar+="<a href='' onClick='displayLastVacanciesResume("+typeDisplay+","+lastPage+"); return false;'>--></a>";
        //linkBar+="<a href='"+nextItemsUrl+"' > --></a>";
    }
    return linkBar;
}


//Create File-input  node
function createTdFileInputNode(nameId, classStyle){
    var tdNode = document.createElement('td'),
            inputNode = document.createElement("input");
    inputNode.id=nameId;
    inputNode.type="file";
    tdNode.appendChild(inputNode);
    return tdNode;
}

//Create Button
function createTdButtonNode(nameId, name, classStyle, nameFunction){
    var tdNode = document.createElement('td'),
            inputNode = document.createElement("input");
    inputNode.id=nameId;
    inputNode.type="button";
    inputNode.value=name;
    inputNode.onclick=nameFunction;
    tdNode.appendChild(inputNode);
    return tdNode;
}

/*

<input name="importFileName" onChange = "setValueChange(1)" type="file" size="20" accept="image/jpeg">
*/
