var loadedCPVCodes = new Array();
var loadedCountryCodes = new Array();

function loadCodeSets(cs,codeS,level){
	code = codeS;
	codeset = cs;
	codeLevel = level;
	var prefix = "CY_div_";
	if(codeset == 'CPV'){
		prefix = "CP_div_";
	}
	//alert("code:"+codeS+", codeset:"+codeset);
	if (document.getElementById){
		var style2 = document.getElementById(prefix+codeS).style;
		//alert("style2:"+style2);
		if(style2.display == "block"){
			style2.display = "none";
		} else {
			style2.display = "block";
			//alert("style block:"+style2);
			if(!alreadyLoaded(codeset,codeS)){
				if(codeset == 'CPV'){
					getCPVXML();
					loadedCPVCodes.push(codeS);
				} else if(codeset == 'Country'){
					getCountryXML();
					loadedCountryCodes.push(codeS);
				}
			}
		}
	}
	else if (document.all){
		var style2 = document.all[prefix+codeS].style;
		if(style2.display == "block"){
			//alert("in2:"+style2.display);
			style2.display = "none";
		} else {
			//alert("else:"+style2.display);
			style2.display = "block";
			if(!alreadyLoaded(codeset,codeS)){
				if(codeset == 'CPV'){
					getCPVXML();
					loadedCPVCodes.push(codeS);
				} else if(codeset == 'Country'){
					getCountryXML();
					loadedCountryCodes.push(codeS);
				}
			}
		}
	}
	else if (document.layers){
		var style2 = document.layers[prefix+codeS].style;
		if(style2.display == "block"){
			//alert("in2:"+style2.display);
			style2.display = "none";
		} else {
			//alert("else:"+style2.display);
			style2.display = "block";
			if(!alreadyLoaded(codeset,codeS)){
				if(codeset == 'CPV'){
					getCPVXML();
					loadedCPVCodes.push(codeS);
				} else if(codeset == 'Country'){
					getCountryXML();
					loadedCountryCodes.push(codeS);
				}
			}
		}
	}
}




function alreadyLoaded(codeset,code){
	return false;
	var loadedCodes = new Array();
	if(codeset == 'CPV'){
		loadedCodes = loadedCPVCodes;
	} else if(codeset == 'Country'){
		loadedCodes = loadedCountryCodes;
	}
	for(var i = 0; i < loadedCodes.length; i++){
		if(code == loadedCodes[i]){
			//alert("return true, areday loaded");
			return true;
		}
	}
	//alert("return false, not areday loaded");
	return false;
}

var xmlHttp;
var code;
var codeLevel;
var codeset;

function getCPVXML(){
	var codes = document.getElementById("CP").value;
	var codesArr = codes.split(" ");
	var codesParam = "";
	var comma = false;
	for(var i = 0; i < codesArr.length; i++){
		if(codesArr[i] == '' || codesArr[i] == ' '){
			continue;
		}
		if(code == '0'){
			if(codesArr[i].indexOf("000000") != -1){
				if(comma){
					codesParam += ",";
				}
				codesParam += codesArr[i];
				comma = true;
			}
		} else {
			var zeros = getZeros();
			//alert("z="+zeros);
			//alert(codesArr[i].indexOf(zeros));
			if(codesArr[i].indexOf(zeros) == (8 - zeros.length)){
				if(comma){
					codesParam += ",";
				}
				codesParam += codesArr[i];
				comma = true;
			} 
		}
	}
	var url = "CPVkoodi.jsp?code="+code+"&codes="+codesParam+"&codeLevel="+codeLevel;
	//alert("getXML: URL="+url);
	xmlHttp=GetXmlHttpObject(stateChanged);
	//alert("1xmlHttp="+xmlHttp);
	xmlHttp.open("GET", url , true);
	//alert("2xmlHttp="+xmlHttp);
	xmlHttp.send(null);
}

function getZeros(){
	var z = "";
	var size = 8 - 1;
	size = size - codeLevel;
	for(var i = 0; i < size; i++){
		z = z + "0";
	}
	return z;
}

function getCountryXML(){
	var codes = document.getElementById("CY").value;
	var codesArr = codes.split(" ");
	var codesParam = "";
	var comma = false;
	for(var i = 0; i < codesArr.length; i++){
		if(codesArr[i] == '' || codesArr[i] == ' '){
			continue;
		}
		if(comma){
			codesParam += ",";
		}
		codesParam += codesArr[i];
		comma = true;
	}
	var url = "Countrykoodi.jsp?continent="+code+"&codes="+codesParam;
	//alert("getXML: URL="+url);
	xmlHttp=GetXmlHttpObject(stateChanged);
	xmlHttp.open("GET", url , true);
	xmlHttp.send(null);
}

function stateChanged(){ 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
		//alert("state changed, codeset:"+ codeset);
		if(codeset == 'CPV'){
			document.getElementById("CP_div_"+code).innerHTML=xmlHttp.responseText;
		} else if(codeset == 'Country'){
			document.getElementById("CY_div_"+code).innerHTML=xmlHttp.responseText;	
		}
		
	} 
}

function GetXmlHttpObject(handler){ 
	var objXmlHttp=null;
	if (navigator.userAgent.indexOf("Opera")>=0){
		alert("This doesn't work in Opera") ;
		return; 
	}
	if (navigator.userAgent.indexOf("MSIE")>=0){ 
		var strName="Msxml2.XMLHTTP"
		if (navigator.appVersion.indexOf("MSIE 5.5")>=0){
			strName="Microsoft.XMLHTTP";
		} 
		try { 
			objXmlHttp=new ActiveXObject(strName)
			objXmlHttp.onreadystatechange=handler;
			return objXmlHttp;
		} catch(e){ 
			alert("Error. Scripting for ActiveX might be disabled");
			return;
		} 
	} 
	if (navigator.userAgent.indexOf("Mozilla")>=0){
		objXmlHttp=new XMLHttpRequest();
		objXmlHttp.onload=handler;
		objXmlHttp.onerror=handler;
		return objXmlHttp;
	}
} 

function toggleLayer(whichLayer)
{
	if (document.getElementById)
	{
		// this is the way the standards work
	var style2 = document.getElementById(whichLayer).style;
	style2.display = style2.display? "":"block";
	}
	else if (document.all)
	{
	// this is the way old msie versions work
	var style2 = document.all[whichLayer].style;
	style2.display = style2.display? "":"block";
	}
	else if (document.layers)
	{
	// this is the way nn4 works
	var style2 = document.layers[whichLayer].style;
	style2.display = style2.display? "":"block";
	}
}

function toggleLayer2(whichLayer)
{
	if (document.getElementById)
	{
		// this is the way the standards work
		var style2 = document.getElementById(whichLayer).style;
		if (style2.display == "none") {
			style2.display = "block";
		} else {
			style2.display = "none";
		}
	}
	else if (document.all)
	{
		// this is the way old msie versions work
		var style2 = document.all[whichLayer].style;
		if (style2.display == "none") {
			style2.display = "block";
		} else {
			style2.display = "none";
		}
	}
	else if (document.layers)
	{
		// this is the way nn4 works
		var style2 = document.layers[whichLayer].style;
		if (style2.display == "none") {
			style2.display = "block";
		} else {
			style2.display = "none";
		}
	}
}

function hideOthers(whichLayer)
{
	var showLayer = "CY_div_"+whichLayer;	
	if (document.getElementById)
	{
		// this is the way the standards work		
		for (i = 0; i <= 4; i++){
			if(i != whichLayer){
				var hideLayer = "CY_div_"+i;				
				var style2 = document.getElementById(hideLayer).style;
				if(style2.display == "block"){
					style2.display = "none";
				} 
			}
		}
	}
	else if (document.all)
	{
	// this is the way old msie versions work
	for (i = 0; i <= 4; i++){
			if(i != whichLayer){
				var hideLayer = "CY_div_"+i;				
				var style2 = document.all[hideLayer].style;
				if(style2.display == "block"){
					style2.display = "none";
				}
			}
	}
	}
	else if (document.layers)
	{
	// this is the way nn4 works
	for (i = 0; i <= 4; i++){
			if(i != whichLayer){
				var hideLayer = "CY_div_"+i;				
				var style2 = document.layers[hideLayer].style;
				if(style2.display == "block"){
					style2.display = "none";
				}
			}
	}
	}
}
function checkCheckBoxes(whichLayer){
	// check the right checkboxes
	try{
		var name;
		var valueString;
		var inputsArr;
		if (document.getElementById) {
			name = document.getElementById(whichLayer).id;
			if(name == null){return;}
			name = name.substr(0,3);
			inputsArr = document.getElementsByName(name+"_cb");
			valueString = document.getElementById(name).value;
		}
		else if (document.all) {
			name = document.all[whichLayer].id;
			if(name == null){return;}
			name = name.substr(0,3);
			var allInputsArr = document.all.tags("input");
			for(var i = 0; i < allInputsArr.length; i++){
				if(allInputsArr[i].type == "checkbox" && allInputsArr[i].name == name+"_cb"){
					inputsArr.push(allInputsArr[i]);
				}
			}
			valueString = document.all[name].value;
		}
		else if (document.layers){
			// this is the way nn4 works
			name = document.layers[whichLayer].id;
			if(name == null){return;}
			name = name.substr(0,3);
			var allLayersArr = document.layers;
			for(var i = 0; i < allInputsArr.length; i++){
				if(allInputsArr[i].name == name+"_cb" && allInputsArr[i].type == "checkbox"){
					inputsArr.push(allInputsArr[i]);
				}
			}
			valueString = document.layers[name].value;
		}
		for(var i = 0; i < inputsArr.length; i++){
			if(valueString.indexOf(inputsArr[i].value+" ") > -1){
				inputsArr[i].checked = true;
			}
		}
	} catch(e){
		// DO NOTHING
	}
}

function showProfile(elem, whichProfile) {
if (elem.checked) {
if (document.getElementById)
{
	if (document.getElementById(whichProfile).style.display == "") {
		toggleLayer(whichProfile);
	} 
}else if (document.all) {
	if (document.all[whichProfile].style.display == "") {
		toggleLayer(whichProfile);
	}
}
else if (document.layers)
{
// this is the way nn4 works
	if (document.layers[whichLayer].style.display == "") {
		toggleLayer(whichProfile);
	}
}
}
}
function setAA(elem) {
	var AAelem=document.getElementById('AA');
	//alert('AAelem='+AAelem);
/*	
	if (AAelem.value == "") {
		AAelem.value=elem.value;	
	} else {
		AAelem.value=AAelem.value + " " + elem.value;
	}
 */
 switch (elem.checked) {
 case true:
 		if (AAelem.value.indexOf(elem.value) < 0) {
		AAelem.value=AAelem.value + elem.value + " "; 
		}
		break;
 case false:
   var pattern = new RegExp (elem.value + " ",'ig');
	 AAelem.value = AAelem.value.replace(pattern,"");
	 break;
	}
}
var check=true;
function checkAgree(elem) {
check=elem.checked;
	switch (check) {	
		case true: 
			check=true;					
			break;
		case false:	
			check=false;
			alert("Et voi liitty\u00E4 hyv\u00E4ksym\u00E4tt\u00E4 ehtoja");
			break;
	}
}
function checkDisabled(){ 
	if(check==false){
		alert("Et voi liitty\u00E4 hyv\u00E4ksym\u00E4tt\u00E4 ehtoja");		
		return false;
	}else{
		return true;
	}
}
function setChecked(elem) {
	var AAelem=document.getElementById(elem.name.substr(0,2));

 switch (elem.checked) {
 case true:
 		if (AAelem.value.indexOf(elem.value) < 0) {
		AAelem.value=AAelem.value + elem.value + " "; 
		}
		break;
 case false:
   var pattern = new RegExp (elem.value + " ",'ig');
	 AAelem.value = AAelem.value.replace(pattern,"");
	 break;
	}
}
function setChecked_CP(elem) {
	//var AAelem=document.getElementById('CP');
	//alert('AAelem='+AAelem);
	var AAelem=document.getElementById(elem.name.substr(0,2));

 switch (elem.checked) {
 case true:
 		if (AAelem.value.indexOf(" "+elem.value+" ") < 0) {
		AAelem.value=AAelem.value + " " + elem.value + " "; 
		}
		break;
 case false:
   var pattern = new RegExp (" " + elem.value + " ",'ig');
	 AAelem.value = AAelem.value.replace(pattern,"");
	 break;
	}
}
function setChecked3(elem) {
	//alert(elem.name);
	var AAelem=document.getElementById(elem.name.substr(0,3));

 switch (elem.checked) {
 case true:
 		if (AAelem.value.indexOf(elem.value) < 0) {
		AAelem.value=AAelem.value + elem.value + " "; 
		}
		break;
 case false:
   var pattern = new RegExp (elem.value + " ",'ig');
	 AAelem.value = AAelem.value.replace(pattern,"");
	 break;
	}
}
function setChecked3_CP(elem) {
	var AAelem=document.getElementById(elem.name.substr(0,3));

 switch (elem.checked) {
 case true:
 		if (AAelem.value.indexOf(" "+elem.value+" ") < 0) {
		AAelem.value=AAelem.value + " " + elem.value + " "; 
		}
		break;
 case false:
   var pattern = new RegExp (" " + elem.value + " ",'ig');
	 AAelem.value = AAelem.value.replace(pattern,"");
	 break;
	}
}

function emptySearchForm(frm) {
	for (i = 0; i < frm.length; i++) {
	    
	    switch (frm[i].type) {
		    case "text":
		    case "textarea": { frm[i].value = ""; break; }
		    case "checkbox": { 
		    	if(frm[i].name=="acceptTerms"){
		    		frm[i].checked = true; 		    		
		    	}else{
		    		frm[i].checked = false; 		    		
		    	}
				break;
		    }
			case "select-one":
			case "select-multiple": { frm[i].selectedIndex = -1; break; }
			case "radio": { 
				if(frm[i].value == 1){
					frm[i].checked = true;
				} else {
					frm[i].checked = false; 	
				}
				break; 
			}
	  	}
	}
	if(frm.saveProfile){
		frm.saveProfile.disabled = true;
		if(frm.savewasdisabled){
			frm.savewasdisabled.value = true;
		}
	}
}

function emptyForm(frm) {
	for (i = 0; i < frm.length; i++) {
	    
	    switch (frm[i].type) {
		    case "text":
		    case "textarea": { frm[i].value = ""; break; }
		    case "checkbox": { 
		    	if(frm[i].name=="acceptTerms"){
		    		frm[i].checked = true; 		    		
		    	}else{
		    		frm[i].checked = false; 		    		
		    	}
				break;
		    }
			case "select-one":
			case "select-multiple": { frm[i].selectedIndex = -1; break; }
			case "radio": { 
				if(frm[i].value == 0){
					frm[i].checked = true;
				} else {
					frm[i].checked = false; 	
				}
				break; 
			}
	  	}
	}
	if(frm.saveProfile){
		frm.saveProfile.disabled = true;
		if(frm.savewasdisabled){
			frm.savewasdisabled.value = true;
		}
	}
}

function removeElement(elementId)
{
	var elem = document.getElementById(elementId);
	if (elem) {
		elem.parentNode.removeChild(elem);
	}
}

function fillEnglish(frm) {
	//alert("tyhj?? lomake!");
	for (i = 0; i < frm.length; i++) {
  	//alert(i + "=" + i + ", name=" + frm[i].name + ", type=" + frm[i].type + ", eng=" + document.getElementById(frm[i].name.replace(/FI/,"EN")));
    // Is this a visible text field that can be translated?
    switch (frm[i].type) {
	    case "text":
	    case "textarea": 
		    if (frm[i].name.indexOf("FI") > 0) {		    
		    	var str = frm[i].name.replace(/FI/,"EN");	
		    	/*
		    	if (document.getElementById(str)) {
			    	alert("name[FI]=" + frm[i].name + ", STR=" + str + ", document.getElementById(str)=" + document.getElementById(str));
			    } else
			    if (document.all[str]) {
			    	alert("name[FI]=" + frm[i].name + ", STR=" + str + ", document.all[str]=" + document.getElementById(str));
			    }
			    */
		    	if (document.getElementById(str) && document.getElementById(str).value == "" && frm[i].value != "") {
		    		switch (frm[i].name) {
		    			case "phoneFI":		    			
		    			document.getElementById(str).value = "+358 " + frm[i].value.substr(1);		    			
		    			break;
		    			case "addressFI":
		    			document.getElementById(str).value = frm[i].value.replace(/[0-9][0-9][0-9][0-9][0-9]/, "FI $&")
		    			document.getElementById(str).value = document.getElementById(str).value + "\nCountry: FINLAND\nContinent: EUROPE";		    			
		    			break;
		    			default:
		    			document.getElementById(str).value = frm[i].value;
		    			break;
		    		}
		    	} else 
		    	if (document.all[str] && document.all[str].value == "" && frm[i].value != "") {
		    		switch (frm[i].name) {
		    			case "phoneFI":		    			
		    			document.all[str].value = "+358 " + frm[i].value.substr(1);		    			
		    			break;
		    			case "addressFI":
		    			document.all[str].value = frm[i].value.replace(/[0-9][0-9][0-9][0-9][0-9]/, "FI $&");
		    			document.all[str].value = document.all[str].value + "\nCountry: FINLAND\nContinent: EUROPE";
		    			break;
		    			default:
		    			document.all[str].value = frm[i].value;
		    			break;
		    		}
		    	}
		    }
  	}
	}
}
function checkclass(elm) {
	//alert("Arvo on " + elm.value);
	if (elm.value >= 100) {
		document.forms[0].turnoverClass[0].checked = false;
		document.forms[0].turnoverClass[1].checked = false;
		document.forms[0].turnoverClass[2].checked = false;
		document.forms[0].turnoverClass[3].checked = true;
	} else {
		switch (elm.value.substr(0,2)) {
			case "": 
			case " ": 
			case undefined: 
				document.forms[0].turnoverClass[0].checked = false;
				document.forms[0].turnoverClass[1].checked = false;
				document.forms[0].turnoverClass[2].checked = false;
				document.forms[0].turnoverClass[3].checked = false;
				break;
	
			case "0": 
			case "0,": 
			case "0.": 
				document.forms[0].turnoverClass[0].checked = true;
				document.forms[0].turnoverClass[1].checked = false;
				document.forms[0].turnoverClass[2].checked = false;
				document.forms[0].turnoverClass[3].checked = false;
				break;
	
			case "1": 
			case "1,": 
			case "1.": 
			case "2": 
			case "2,": 
			case "2.": 
			case "3": 
			case "3,": 
			case "3.": 
			case "4": 
			case "4,": 
			case "4.": 
				document.forms[0].turnoverClass[0].checked = false;
				document.forms[0].turnoverClass[1].checked = true;
				document.forms[0].turnoverClass[2].checked = false;
				document.forms[0].turnoverClass[3].checked = false;
				break;
	
			case "5": 
			case "5,": 
			case "5.": 
			case "6": 
			case "6,": 
			case "6.": 
			case "7": 
			case "7,": 
			case "7.": 
			case "8": 
			case "8,": 
			case "8.": 
			case "9": 
			case "9,": 
			case "9.": 
			case "10": 
			case "11": 
			case "12": 
			case "13":
			case "14":  
			case "15":  
				document.forms[0].turnoverClass[0].checked = false;
				document.forms[0].turnoverClass[1].checked = false;
				document.forms[0].turnoverClass[2].checked = true;
				document.forms[0].turnoverClass[3].checked = false;
				break;
	
			default:
			if (elm.value >= 15) {
				document.forms[0].turnoverClass[0].checked = false;
				document.forms[0].turnoverClass[1].checked = false;
				document.forms[0].turnoverClass[2].checked = false;
				document.forms[0].turnoverClass[3].checked = true;
				break;
			}
		}
	}
}
function getkey(e) {
	if (window.event)
   		return window.event.keyCode;
	else if (e)
   		return e.which;
	else
   		return null;
}

function checkNumber(fld, ev, decim) {
 	var key;
 	key = getkey(ev);
 	//var keychar = String.fromCharCode(key);
  // check if inputted char was a number
  //alert("key: " + key);
 	switch (key) {
 		case 0:  // Home
			return(0);
		case 8:  // backspace
			return(0);
		case 9:  // tab
			return(0);
 		case 13:  // Enter
			return(0);
 		case 16:  // Shift
			return(0);
 		case 18:  // Alt
			return(0);
 		case 19:  // Ctrl
			return(0);
 		case 33:  // Page up
			return(0);
  		case 34:  // Page down
			return(0);
		case 37:  // Arrow left
			return(0);
 		case 38:  // Arrow up
			return(0);
 		case 39:  // Arrow right
			return(0);
		case 48:  
		case 49:  
		case 50:  
		case 51:  
		case 52:  
		case 53:  
		case 54:  
		case 55:  
		case 56:  
		case 57:  
			return(0);
			break;
		case 44: // only one decimal point allowed
			if (decim == 'decim') {
				if (fld.value.indexOf(",") == -1 || fld.value.indexOf(",") == (fld.value.length-1) ) { 
					return(0);
				}
			}
		case 45: // only one - allowed at position 7
			if (decim == 'Y') {
				if (fld.value.indexOf("-") == 7 && (fld.value.length-1) == 7) { 
					return(0);
				}
			}
		default:
			//alert("ei numeerinen merkki " + key);
			fld.value=fld.value.substr(0,fld.value.length -1);
			break;
	}
}
function checkYear(fld) {
	if (fld.value == "") {return(0);}
	if (fld.value.length != 4) { alert("Vuosi on sy\u00F6tett\u00E4v\u00E4 nelj\u00E4ll\u00E4 numerolla muodossa vvvv"); fld.focus(); return(0);}
	var today = new Date();
	//alert("T?n??n on " + today + " vuosi on " + today.getFullYear());
	if (fld.value < "1950" || fld.value > today.getFullYear()) { alert("Vuosi on virheellinen"); fld.focus(); return(0);}
}
function checkYid(fld) {
	if (fld.value == "") {return(0);}
	if (fld.value.length != 9 || fld.value.indexOf("-") != 7) { alert("Y-tunnus on sy\u00F6tett\u00E4v\u00E4 muodossa 9999999-9"); fld.focus(); return(0);}
}
function confirmDelete(){
    var answer = confirm("Olet poistamassa tilausta. Tilauksen poiston yhteydess\u00E4 poistuvat my\u00F6s tilaukseen liitetyt k\u00E4ytt\u00E4j\u00E4t. Haluatko jatkaa poistoa?");
	if (answer == true){
		return true;
	}else{
		return false;
	}	
}