var checkFormColor = '';

function checkNumber(inp)
{
	var sText = inp.value;
	var ValidChars = "0123456789.-";
	var sRet = "";
	var bInvalidChar = false;
	var bDotUsed = false;
	var bDashUsed = false;
	
	for (i = 0; i < sText.length; i++) 
	{ 
		var Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) != -1)
		{
			//check that there is only one dot
			if(bDotUsed && Char == ".")
				bInvalidChar = true;
			//check that there is only one dash
			else if(bDashUsed && Char == "-")
				bInvalidChar = true;
			//check that the dash is the first character
			else if(Char == "-" && i != 0)
				bInvalidChar = true;
			//else add the character to the return string
			else
				sRet = sRet + Char;
			
			//mark the dot or dash as "used"
			if(Char == ".")
				bDotUsed = true;
			if(Char == "-")
				bDashUsed = true;
		}
		else
			bInvalidChar = true;
	}
	
	if(bInvalidChar == true)
		inp.value = sRet;
}

function checkForm(formID){
	var arr_Elements = dojo.byId(formID).elements;
	
	bPassed = true;
	var arr_strTmp = new Array();
	var arr_bTmp = new Array();
	for(i = 0; i<arr_Elements.length; i++)
	{
		// alert(arr_Elements[i].name);
		var mandatory = arr_Elements[i].getAttribute('mandatory');
		try{
			if(mandatory == 1){
				//text, number, file & date
				if((arr_Elements[i].type == 'text' || arr_Elements[i].type == 'hidden') && arr_Elements[i].value.length > 0 && arr_Elements[i].value != ' '){
					arr_Elements[i].style.borderLeft = '2px solid #5e5d5d';
					arr_Elements[i].style.borderTop = '2px solid #5e5d5d';
					arr_Elements[i].style.borderBottom = '1px solid #d4d0c8';
					arr_Elements[i].style.borderRight = '1px solid #d4d0c8';
					arr_bTmp.push(true);
				}
				
				// select
				else if(arr_Elements[i].nodeName == 'SELECT' && arr_Elements[i].selectedIndex != -1
				&& arr_Elements[i].options[arr_Elements[i].selectedIndex].value.length > 0 
				&& arr_Elements[i].options[arr_Elements[i].selectedIndex].value >= 0){
					arr_Elements[i].style.color = 'black';
					arr_bTmp.push(true);
				}
			
				//textarea
				else if(arr_Elements[i].type == 'TEXTAREA' && arr_Elements[i].value != ''){
					arr_Elements[i].style.borderLeft = '2px solid #5e5d5d';
					arr_Elements[i].style.borderTop = '2px solid #5e5d5d';
					arr_Elements[i].style.borderBottom = '1px solid #d4d0c8';
					arr_Elements[i].style.borderRight = '1px solid #d4d0c8';
					arr_bTmp.push(true);
				}
				
				//checkbox && radio
			//	else if((arr_Elements[i].type == 'checkbox' || arr_Elements[i].type == 'radio') && arr_strTmp.indexOf(arr_Elements[i].name) == -1){
				else if((arr_Elements[i].type == 'checkbox') && arr_strTmp.indexOf(arr_Elements[i].name) == -1){
					arr_strTmp.push(arr_Elements[i].name);
					bPassed = checkGroups(arr_Elements[i].name,arr_Elements);
					arr_bTmp.push(bPassed);
				}
				
				else if(arr_Elements[i].type != 'checkbox' && arr_Elements[i].type != 'radio'){
					bPassed = false;
					arr_bTmp.push(bPassed);
					if(arr_Elements[i].nodeName == 'SELECT')
						arr_Elements[i].style.color = 'red';
					else
						arr_Elements[i].style.border = '1px solid red';
				}			
			}
		}
			catch(exception){
				// alert(
					// "Error name: " + exception.name 
					// + ". Error message: " + exception.message
					// + ". Error type: " + exception.type
				// );
			}
	}

	noFalse = true;
	for(var i=0; i<arr_bTmp.length; i++)
	{
		if(arr_bTmp[i] == false)
			noFalse = false;
	}
	
	if(noFalse){
		if(dojo.byId("dErrorMessag_"+formID))
			dojo.dom.removeNode(dojo.byId("dErrorMessag_"+formID));
		return true;
	}
	else{ 
		if(!dojo.byId("dErrorMessag_"+formID)){
			var div = document.createElement("DIV");
			div.style.backgroundColor = "red";
			div.style.padding = "10px";
			div.id = "dErrorMessag_"+formID;
			div.style.fontSize = "11px";
			div.style.margin = "5px";
			div.style.width = "200px";
			div.innerHTML = "Merkityt kentät on täytettävä.";

		var elErrorContainer = dojo.byId("formErrorContainer");
			elErrorContainer.appendChild(div);
		}
		return false;
	}
}

function checkGroups(name,arr){
	var arrTmp = new Array();
	var bTmp = false;
	
	for(var i = 0; i<arr.length; i++){
		if(arr[i].name == name && arr[i].checked == true){
			bTmp = true;
		}
  
		if(arr[i].name == name){
				arrTmp.push(arr[i]);
			}
	}
 
	arrTmp.forEach(function(el,id,array){
		el.style.border = !bTmp?'1px none red':'';
	});
 
	return bTmp;
}

function roleManagerSelectAll(usage,type)
{
	var arrInputs = document.getElementById('RM'+type).getElementsByTagName('INPUT');
	for(i=0; i<arrInputs.length; i++)
	{
		var inputID = arrInputs[i].id;
		var tmp = inputID.split('_');
		if(tmp[1] == usage)
			document.getElementById(inputID).checked = true;
	}
	document.getElementById(type+usage+'IMG').onclick = function() {roleManagerUnselectAll(usage,type)};
}

function roleManagerUnselectAll(usage,type)
{
	var arrInputs = document.getElementById('RM'+type).getElementsByTagName('INPUT');
	for(i=0; i<arrInputs.length; i++)
	{
		var inputID = arrInputs[i].id;
		var tmp = inputID.split('_');
		if(tmp[1] == usage)
			document.getElementById(inputID).checked = false;
	}
	document.getElementById(type+usage+'IMG').onclick = function() {roleManagerSelectAll(usage,type)};
}

function showhideBar(id)
{
	if(document.getElementById(id).style.display == "none")
	{
		document.getElementById(id).style.display = "block";
		setCookie("leftmenu","block");
	}
	else
	{
		document.getElementById(id).style.display = "none";
		setCookie("leftmenu","none");
	}
}
function showhideBlock(id)
{
	if(document.getElementById(id).style.display == "none")
	{
		document.getElementById(id).style.display = "block";
		setCookie(id,"block");
	}
	else
	{
		document.getElementById(id).style.display = "none";
		setCookie(id,"none");
	}
}
function checkstate(id)
{
	if(getCookie(id) == "block")
	{
		document.getElementById(id).style.display = "block";
	}
	if(getCookie(id) == "none")
	{
		document.getElementById(id).style.display = "none";
	}

}
function getCookie(name) {
	var dc = document.cookie;
	var prefix = name + "=";
	var begin = dc.indexOf("; " + prefix);
	if (begin == -1) {
		begin = dc.indexOf(prefix);
		if (begin != 0) return null;
	} else {
		begin += 2;
	}
	var end = document.cookie.indexOf(";", begin);
	if (end == -1) {
		end = dc.length;
	}
	return unescape(dc.substring(begin + prefix.length, end));
}

function setCookie(name, value, expires, path, domain, secure) {
	document.cookie= name + "=" + escape(value) +
		((expires) ? "; expires=" + expires.toGMTString() : "") +
		((path) ? "; path=" + path : "") +
		((domain) ? "; domain=" + domain : "") +
		((secure) ? "; secure" : "");
}

function addslashes(str) {
	str=str.replace(/\'/g,'\\\'');
	str=str.replace(/\"/g,'\\"');
	str=str.replace(/\\/g,'\\\\');
	str=str.replace(/\0/g,'\\0');
	return str;
}

function cleanUpGetVar(str) {
	str=str.replace(/\&/g,'');
	str=str.replace(/\=/g,'');
	str=str.replace(/\+/g,'@_toplus_@');
	return str;
}
