function get_element(id)
{
	var elem;
	if(document.getElementById(id))
	{
		elem = document.getElementById(id)
		return elem;
	}
	else
	{
		return false;
	}
}

function get_element_type(id)
{
	var type;
	if(get_element(id))
	{
		type = get_element(id).type;
		return type;
	}
	else
	{
		return null;
	}
}

function get_value(id)
{
	var object=get_element(id);
	var type=get_element_type(id);
	
	//ja dropdown
	if(type=="select-one")
		return object.options[object.selectedIndex].value;
	else
		return object.value;

	return null;
}


function set_value(id,value,parent)
//funkcijai padod objekta id un vertibu
//funkcija uzseto vertibu
//ja ir parents tad var no pop up uz parentu setot
{
	var object;
	var type;

	if(!parent)
	{
		if(!get_element(id))
			return false;

		object=get_element(id);
		type=get_element_type(id);
	}
	else
	{
		if(!self.opener.document.getElementById(id))
			return false;

		object=self.opener.document.getElementById(id);
		type=self.opener.document.getElementById(id).type;
	}

	if(type=="hidden" || type=="text")
		object.value=value;

	//ja select box
	if(type=="select-one")
	{
		for (i=0;i<object.options.length;i++) 
		{
			if (object.options[i].value == value) 
			{
			   object.selectedIndex = i;
			   break;
			}
		}
	}
}



function insert_form_element(input_type,name,value,parent_name,cloning_object,class_name)
{
	var parent=get_element(parent_name)?get_element(parent_name):parent_name;
	var inp;

	if(cloning_object)
		inp = get_element(cloning_object).cloneNode(true);
	else
	{
		if (input_type=="select")
			inp = document.createElement("select");
		else
		{
			inp = document.createElement("input");
			inp.type = input_type;
		}
	}
	
	if (name) 
	{	
		inp.name = name;
		inp.id = name;
	}

	//ja name ir formaataa name[2] tad izdabuj id (2);
	/*if(name.match(/\[/))
	{
		var i=name.indexOf('\[');
		var suff=name.substr(i+1,1);
		var new_name=name.substr(0,i);
		
		inp.id = new_name+'_'+suff;
	}*/

	if (class_name) inp.className=class_name;
    
	inp.value =getQuotes(value);

        
	if (input_type=="checkbox")
    {
		inp.value = 1;

		if(value==1)
			inp.checked = true;
		else 
			inp.checked = false;
    }

	parent.appendChild(inp);

	return inp;

}



function insert_innerHTML(object,content)
{
	if(get_element(object))
		get_element(object).innerHTML=content;
	else
		object.innerHTML=object.innerHTML+content;
}

function insert_row(table_id,offset,rowClass)
{
	var table;
	var nr;
	var row;

	if(get_element(table_id))
	{
		table = get_element(table_id);
		nr = table.rows.length-1+offset;
		row = table.insertRow(nr);
		row.id=nr;
		
		if(rowClass!="")
		{
			if(nr % 2==0)
				row.className=rowClass;
		}
		return row;
	}

}

function insert_cell(parentRow,classname)
{
	var cell=parentRow.insertCell(parentRow.childNodes.length);
	cell.className=classname;
	return(cell);
}

function insert_th(parentRow,content)
{
	oTh = document.createElement("TH");
	oTh.innerHTML = content;
	parentRow.appendChild(oTh);
	return oTh;
}

function round(number,X) {
	// rounds number to X decimal places, defaults to 2
	X = (X!="" ? 2 : X);
	return Math.round(number*Math.pow(10,X))/Math.pow(10,X);
}

function uncheck_all_boxes(form)
{
	if(!document.forms[form])
		return;
	
	var myForm = document.forms[form];
	var formElementCount = document.forms[form].length;
	
	for(var i = 0; i < formElementCount; i++)
	{
		if(myForm.elements[i].type=="checkbox")
		{
				//if(myForm.elements[i].checked==true)
					myForm.elements[i].checked=false;
				//else
					//myForm.elements[i].checked=true;
		}
	}
}

function toggle_all_boxes(myForm,box)
{
	var formElementCount = myForm.length;

	for(var i = 0; i < formElementCount; i++)
	{
		if(myForm.elements[i].type=="checkbox")
		{
			myForm.elements[i].checked=box.checked;
		}
	}
}


function pop_up(strURL, strType, strHeight, strWidth) 
{
	var newWin = null;
	var strHeight = 600;
	var strWidth = 600;
	var strType = "fixed";

	if (newWin != null && !newWin.closed)
	  	newWin.close();
	var strOptions="";
	if (strType=="console")
		strOptions="resizable,height="+
		strHeight+",width="+strWidth;
	if (strType=="fixed")
	   	strOptions="status,scrollbars=yes,height="+
		strHeight+",width="+strWidth;
	if (strType=="elastic")
	   	strOptions="toolbar,menubar,scrollbars,"+
		"resizable,location,height="+
		strHeight+",width="+strWidth;
 	newWin = window.open(strURL, 'newWin', strOptions);
 	newWin.focus();
	return true;
}

function getQuotes(str) 
{
	var ret = str; ret += '';
	if (!ret || (ret == '')) return '';

	while (ret.indexOf("&quot;", 0) > -1)
		ret = ret.replace('&quot;', '"');
	
	while (ret.indexOf("&#039;", 0) > -1)
		ret = ret.replace("&#039;", "'");

	return ret;
}

function putQuotes(str) 
{
	// replaces html quote codes with actual quotes
	var ret = str; ret += '';
	if (!ret || (ret == '')) return '';
	ret = ret.replace(/&#39;/g, "'");
	ret = ret.replace(/&#quot;/g, "\"");
	return ret;
}

function expand_collapse(pic)
{
	var row=get_element(pic);
	var row_display=row.style.display;

	if(row_display=="none")
	{
		row.style.display="";
	}
	else
	{
		row.style.display="none";

	}
}

function dump(arr,level) {
	var dumped_text = "";
	if(!level) level = 0;
	
	//The padding given at the beginning of the line.
	var level_padding = "";
	for(var j=0;j<level+1;j++) level_padding += "    ";
	
	if(typeof(arr) == 'object') { //Array/Hashes/Objects 
		for(var item in arr) {
			var value = arr[item];
			
			if(typeof(value) == 'object') { //If it is an array,
				dumped_text += level_padding + "'" + item + "' ...\n";
				dumped_text += dump(value,level+1);
			} else {
				dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
			}
		}
	} else { //Stings/Chars/Numbers etc.
		dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
	}
	return dumped_text;
}
