//----------------------------------------
function popupWindow (URL, w, h)
{
	var day = new Date();
	var id = day.getTime();
    
	var str = "page" + id + '=window.open("' + URL + '","' + id + '","' +
	'toolbar=0,scrollbars=auto,location=0,statusbar=0,menubar=0,resizable=0,left=20,top=20,' + 
	'width=' + w + ',' +
	'height=' + h + '");';
	
	eval (str);
}


//----------------------------------------
function openFull(URL)
{
	newwin = window.open(URL, '', 'toolbar=0,location=0,scrollbars=1,statusbar=0,menubar=1');
	newwin.moveTo(0,0);
	newwin.resizeTo(screen.availWidth,screen.availHeight);
}



//----------------------------------------
function confirm_delete (alert_str, form_name)
{
	if (form_name)
		the_form = document.forms[form_name];
	else
		the_form = document.forms[0];

//	var selectObject = document.forms[0].elements['action'];
	var selectObject = the_form.elements['action'];
	var selectValue  = selectObject.value;
	var is_confirmed = true;
	
	if (selectValue == 'delete')
		is_confirmed = confirm (alert_str);

	return is_confirmed;
}


//----------------------------------------
function confirm_ask (alert_str)
{
	is_confirmed = confirm (alert_str);
	return is_confirmed;
}

//----------------------------------------
function validate_email_field (el)
{
	var re = /([^\@\.\-_A-Za-z0-9])/g;
	
//	el = document.getElementById(field_name);

	var arg = el.value;
	var t = arg.replace(re,"");
//	if (t.length > 40)
//		t = t.substring(0,39);

	el.value = t;
}

// -----------------------------------------------------
function validateEmailv2(email)
{
    if(email.length <= 0)
		return false;

    var splitted = email.match("^(.+)@(.+)$");
    
    if(splitted == null)
    	return false;

    if(splitted[1] != null )
    {
		var regexp_user = new RegExp("^[A-Za-z0-9\-\._]*$");
		
		if (splitted[1].match (regexp_user) == null) 
			return false;
    }
 
 	if(splitted[2] != null)
    {
		var regexp_domain = new RegExp("^[A-Za-z0-9\-\.]*\.[A-Za-z]{2,4}$");
		
		if(splitted[2].match(regexp_domain) == null) 
		{
			var regexp_ip = new RegExp("^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$");

			if(splitted[2].match(regexp_ip) == null) 
				return false;
		}
		return true;
	}
	return false;
}
// -----------------------------------------------------
function numbersonly (myfield, e)
{
	var key;
	var keychar;

	if (window.event)
		key = window.event.keyCode;
	else if (e)
		key = e.which;
	else
		return true;

	keychar = String.fromCharCode(key);
	// control keys
	if ((key==null)	||
		(key==0) 	||
		(key==8) 	|| 
		(key==9) 	||
		(key==13)	||
		(key==27) )
		return true;
	
	// numbers
	else if ((("0123456789").indexOf(keychar) > -1))
		return true;

	return false;
}

// -----------------------------------------------------
function numbersonlydecimal (myfield, e)
{
	var key;
	var keychar;

	if (window.event)
		key = window.event.keyCode;
	else if (e)
		key = e.which;
	else
		return true;

	keychar = String.fromCharCode(key);
	// control keys
	if ((key==null)	||
		(key==0) 	||
		(key==8) 	|| 
		(key==9) 	||
		(key==13)	||
		(key==27) )
		return true;
	
	// numbers
	else if ((("0123456789.").indexOf(keychar) > -1))
		return true;

	return false;
}


// -----------------------------------------------------
function validate_tx (field, field_v, valid)
{
	el = 	document.getElementById(field);
	el_v = 	document.getElementById(field_v);
	
	if (el && el_v)
	{
		if (el.value != '')
			el_v.className = 'valid';
		else
		{
			valid = 0;
			el_v.className = 'invalid';
		}
	}

	return (valid);
}

// -----------------------------------------------------
function validate_tx_val (field, alert_str)
{
	el = document.getElementById (field);
	
	if (el)
	{
		if (el.value == '')
		{
			alert (alert_str);
			el.focus ();
			return (false);
		}
		else
			return (true);
	}

	return (true);
}
	
// -----------------------------------------------------
function validate_tx_len (field, field_v, min_l, valid)
{
	el = 	document.getElementById(field);
	el_v = 	document.getElementById(field_v);

	if (el && el_v)
	{	
		if (el.value != '' && el.value.length >= min_l)
		{
			el_v.className = 'valid';
		}
		else
		{
			valid = 0;
			el_v.className = 'invalid';
		}
	}
	
	return (valid);
}
	
// -----------------------------------------------------
function validate_pass	(field_1, field_2, field_v, min_l, valid)
{
	el_1 = 	document.getElementById(field_1);
	el_2 = 	document.getElementById(field_2);
	el_v = 	document.getElementById(field_v);
	
	if (el_1 && el_2 && el_v)
	{
		if (el_1.value != '' && el_2.value != '' && 
			el_1.value == el_2.value &&
			el_1.value.length >= min_l)
		{
			el_v.className = 'valid';
		}
		else
		{
			valid = 0;
			el_v.className = 'invalid';
		}
	}
	return (valid);
}


// -----------------------------------------------------
function validate_email_tx (field, field_v, valid)
{
	el = 	document.getElementById(field);
	el_v = 	document.getElementById(field_v);

	if (el && el_v)
	{
		email = el.value;
		
		email_valid = validateEmailv2(email);
		
		if (email_valid)
		{
			el_v.className = 'valid';
		}
		else
		{
			valid = 0;
			el_v.className = 'invalid';
		}
	}
	return (valid);
}

//----------------------------------------
function validate_pcode (p1, p2)
{
/*	data = new Array(1,6,3,7,9,10,5,8,4,2);

	el1 = document.getElementById(p1);
	el2 = document.getElementById(p2);
	
	pcode = el1.value + el2.value;

	var sum = 0;
	for(x = 0; x < 10; x++)
	{
		data_holder = data[x];
		sum = sum + ((1*pcode.substr(x,1))*data_holder);
	}

	total_sum = sum;

	sum = ((1 - sum) % 11) + 11;
	ctrl_sum = pcode.substr(10,1);
	
	sum2 = (1101 - total_sum) % 11;
	
	alert (sum + ", " + sum2 + ", " + ctrl_sum);

	if (sum == ctrl_sum)
		return true;
	else 
	{
		alert ("Personas kods '" + el1.value + '-' + el2.value + "' ir nepareizs!");
		return false;
	}
*/	
	return (true);
}

// -----------------------------------------------------
function set_visibility (show_el_id, hide_el_id)
{
	show_el = document.getElementById(show_el_id);
	hide_el = document.getElementById(hide_el_id);
	
	if (show_el)
		show_el.style.display = "block";
	if (hide_el)
		hide_el.style.display = "none";
}



// -----------------------------------------------------
function triger_visibility (first_el_id, sec_el_id, first_str, sec_str, triger_el_id)
{
	first_el = document.getElementById(first_el_id);
	sec_el = document.getElementById(sec_el_id);
	triger_el = document.getElementById(triger_el_id);
	
	
	if (first_el && sec_el && triger_el)
	{
//		alert (first_el);
//		alert (sec_el);
//		alert (triger_el.innerHTML);

		if (first_el.style.display == "none")
		{
			first_el.style.display = "block";
			sec_el.style.display = "none";
			triger_el.innerHTML = first_str;
		}
		else
		{
			first_el.style.display = "none";
			sec_el.style.display = "block";
			triger_el.innerHTML = sec_str;
		}
	}
}

// -----------------------------------------------------
function triger_acc_cnt (chk_el, dest_el)
{
	if (chk_el.checked)
	{
		document.getElementById(dest_el).disabled = false;
		
		val = document.getElementById(dest_el).value;
		if (val == "0")
			document.getElementById(dest_el).value = 1;
	}
	else
	{
		document.getElementById(dest_el).disabled = true;
	}
}

// -----------------------------------------------------
function translate_link(src_el, dest_el_id)
{
	dest_el = document.getElementById(dest_el_id);
	
	if (src_el && dest_el)
	{
		src_txt = src_el.value;
		dest_txt = "";

		src_txt = src_txt.toLowerCase();
		
		len = src_txt.length;
		
		for (i = 0; i < len; i++)
		{
			ch = src_txt.charAt(i);
			
			switch (true)
			{
				case	(ch >= 'a' && ch <= 'z'):
				case	(ch >= '0' && ch <= '9'):
				case	(ch == '-'):
				case	(ch == '_'):
						dest_txt = dest_txt + ch;
						break;
				
				case	(ch == 'ā' || ch == 'Ā'):
						dest_txt = dest_txt + 'aa';
						break;

				case	(ch == 'ē' || ch == 'Ē'):
						dest_txt = dest_txt + 'ee';
						break;

				case	(ch == 'ī' || ch == 'Ī'):
						dest_txt = dest_txt + 'ii';
						break;

				case	(ch == 'ū' || ch == 'Ū'):
						dest_txt = dest_txt + 'uu';
						break;

				case	(ch == 'ģ' || ch == 'Ģ'):
						dest_txt = dest_txt + 'gj';
						break;

				case	(ch == 'ķ' || ch == 'Ķ'):
						dest_txt = dest_txt + 'kj';
						break;

				case	(ch == 'ļ' || ch == 'Ļ'):
						dest_txt = dest_txt + 'lj';
						break;

				case	(ch == 'ņ' || ch == 'Ņ'):
						dest_txt = dest_txt + 'nj';
						break;

				case	(ch == 'č' || ch == 'Č'):
						dest_txt = dest_txt + 'ch';
						break;

				case	(ch == 'š' || ch == 'Š'):
						dest_txt = dest_txt + 'sh';
						break;

				case	(ch == 'ž' || ch == 'Ž'):
						dest_txt = dest_txt + 'zh';
						break;
						
				case	(ch == " "):
						dest_txt = dest_txt + "_";
						break;
			}
		}

		dest_el.value = dest_txt;
		
//		alert (dest_txt);
	}
}

//----------------------------------------
function close_refresh (delay_time)
{
	my_opener = opener.location;

//	alert (my_opener);

	setTimeout (window.close(), delay_time);
	
	my_opener.reload();
} 


//----------------------------------------
function check_all_by_checker_named (the_form, the_name, el)
{
	var		elts = (typeof (document.getElementById(the_form).elements) != 'undefined')
				  ? document.getElementById(the_form).elements
				  : 0;

	var 	elts_cnt  = (typeof (elts.length) != 'undefined')
				  ? elts.length
				  : 0;

	do_check = el.checked;
	name_len = the_name.length;

	if (elts_cnt)
	{
		for (var i = 0; i < elts_cnt; i++)
		{
			el_name = elts[i].name;
			
			if (el_name.substring(0,name_len) == the_name)
				elts[i].checked = do_check;
		}
	}
}


//----------------------------------------
function check_all_by_checker (the_form, the_name, el)
{
	var		elts = (typeof (document.getElementById(the_form).elements[the_name]) != 'undefined')
				  ? document.getElementById(the_form).elements[the_name]
				  : 0;

	var 	elts_cnt  = (typeof (elts.length) != 'undefined')
				  ? elts.length
				  : 0;

	do_check = el.checked;

	if (elts_cnt)
	{
		for (var i = 0; i < elts_cnt; i++)
		{
//			alert (elts[i].name);
			elts[i].checked = do_check;
		}
	}
}



//----------------------------------------
function check_all (the_form, the_name, do_check)
{
	var		elts = (typeof (document.forms[the_form].elements[the_name]) != 'undefined')
				  ? document.forms[the_form].elements[the_name]
				  : 0;

	var 	elts_cnt  = (typeof (elts.length) != 'undefined')
				  ? elts.length
				  : 0;

	if (elts_cnt)
	{
		for (var i = 0; i < elts_cnt; i++)
		{
			elts[i].checked = do_check;
		}
	}
	else
	{
		elts.checked = do_check;
	}
	
	return (true);
}

// -----------------------------------------------------
function decode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
   input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

   do {
      enc1 = keyStr.indexOf(input.charAt(i++));
      enc2 = keyStr.indexOf(input.charAt(i++));
      enc3 = keyStr.indexOf(input.charAt(i++));
      enc4 = keyStr.indexOf(input.charAt(i++));

      chr1 = (enc1 << 2) | (enc2 >> 4);
      chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
      chr3 = ((enc3 & 3) << 6) | enc4;

      output = output + String.fromCharCode(chr1);

      if (enc3 != 64) {
         output = output + String.fromCharCode(chr2);
      }
      if (enc4 != 64) {
         output = output + String.fromCharCode(chr3);
      }
   } while (i < input.length);

   return output;
}

// -----------------------------------------------------
function encode64(input) 
{
	var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

	var output = "";
	var chr1, chr2, chr3;
	var enc1, enc2, enc3, enc4;
	var i = 0;
	
	do 
	{
		chr1 = input.charCodeAt(i++);
		chr2 = input.charCodeAt(i++);
		chr3 = input.charCodeAt(i++);
		
		enc1 = chr1 >> 2;
		enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
		enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
		enc4 = chr3 & 63;
		
		if (isNaN(chr2))
		{
			enc3 = enc4 = 64;
		} else if (isNaN(chr3)) 
		{
			enc4 = 64;
		}
		
		output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4);
	} while (i < input.length);
	
	return output;
}

// -----------------------------------------------------
function save_session (prefix, fname, val)
{
	val = Base64.encode (val);

	url = "/ajax.php?mod=save_session|prefix=" + prefix + "|fname=" + fname + "|val=" + val;

	simpleXRequest (url);
}

// -----------------------------------------------------
function save_form_session (form_id, prefix)
{
	var	elements = document.getElementById(form_id).elements;
	
	var	elts_cnt = elements.length;
	
//	alert (elts_cnt);
	
	for (var i = 0; i < elts_cnt; i++)
	{
		el = elements[i];
		
		if (el)
		{
			type = el.type;
			fname = el.name;
			val = el.value;
			
			if (fname)
			{
//				alert (type + ", " + fname + ", " + val);
		
				switch (type)
				{
					case	"radio":
					case	"checkbox":
							if (el.checked)
								save_session (prefix, fname, val);
							break;
					
					case	"undefined":
					case	"hidden":
					case	"button":
							break;
							
					default:
							save_session (prefix, fname, val);
							break;
				}
			}
		}
	}
}

// -----------------------------------------------------
function show_doc_link(doc_id, el_id)
{
	el = document.getElementById(el_id);
	
	if (el)
	{
		url = "/ajax.php?mod=doc_page|doc_id=" + doc_id;
	
		XRequest (url, el_id);
		
		el.style.display = "block";
	}
}

// -----------------------------------------------------
function hide_doc_link (el_id)
{
	el = document.getElementById(el_id);
	
	if (el)
	{
		el.style.display = "none";
		el.innerHTML="";
	}
}
