// common.js (frontend) v1.2.2 Copyright (c) 2006-2008 by BT-Group (info@bt-group.lt)
// All Right Reserved.

// konstantos
var JS_SELECT_LIST = 'selects'; // mapping'o multi selectu sarasas
var JS_FORM_NAME = 'form'; // formos pavadinimas
var JS_CHBOXS_NAME = 'items[]'; // chexboxo pavadinimas
var JS_ENTER_KC = 13; // enter kodas
var JS_JCLOSE_AC = 'popup_refresh'; // funkcijos jclose actionas

// gauna objekta pagal jo id pavadinima
function $$( name ) {
	return document.getElementById( name );
}

// gauna elementu sarasa kuriu vardas yra name
function $$$( name ) {
	return document.getElementsByName( name );
}

// pakeicia chexboxu pazymejima kuriu vardas JS_CHBOXS_NAME pagal
// nurodyto parametru obj chexbox'o pazymejima 
function jc( obj ) 
{
	if( obj ) {
		var sb = $$$( JS_CHBOXS_NAME );
		if( sb ) { 
			if( sb.length ) { 
				var gl = sb.length;
				for( i = 0; i < gl; i++ )
					sb[ i ].checked = obj.checked;
			} else sb.checked = obj.checked;
		} // if
	} // if( obj )
	
  	return false;
}

// funkcija pazymi (action=true) arba nuzymi (action=false) visus chexboxus
// kurie turi varda name[] ir yra standartineje formoje
function ch( form,name,action )
{
	var sb;
	if( sb = $$$( name + '[]' ) ) {
		if( sb.length ) { 
			var gl = sb.length;
			for( var i = 0; i < gl; i++ )
				sb[ i ].checked = action;
		} else sb.checked = action;
	} // if
	
	return false;
}

// funkcija atlieka formos (form) submita, pries submita prie formos actiono yra pridedama
// parametro value reiksme 
// jei yra kvieciama kaip js( value ) tai formos pavadinimas JS_FORM_NAME
function js( form,value )
{
	var name = value ? form : JS_FORM_NAME;
	var vals = value ? value : form;
	var form = $$$( name );
	
	if( form ) {
		form = form[ 0 ];
     	form.action += vals;
		var p;
		// jei buvo mapping'o multiselectu tai pazymim ju reiksmes 
		// nes kitaip jos nebus perduotos i posta
		if( p = $$( JS_SELECT_LIST ) )
     		jsa( p.value );
    	form.submit();
	} // if
	return false;
}

// jei buvo paspaustas enter klavisas (JS_ENTER_KC) tai funkcija 
// padaro submita
function jse( e,form,value )
{
	var c;
	if( !e )
		e = window.event;
	if( e.keyCode ) 
		c = e.keyCode;
	else if( e.which ) 
		c = e.which;
	
	if( c == JS_ENTER_KC ) return js( form,value );
	
	return true;
}


// funkcija yra ideali funkcijai js tik kad action'a ne prideda, o priskiria 
function jg( form,value )
{
   	var name = value ? form : JS_FORM_NAME;
	var vals = value ? value : form;
	var form = $$$( name );
	
	if( form ) {
		form = form[ 0 ];
     	form.action = vals;
		var p;
		if( p = $$( JS_SELECT_LIST ) )
     		jsa( p.value );
    	form.submit();
	} // if
	
	return false;
}

// funkcija iskviecia popup langa kurio plotis ow, aukstis oh, turinio adresas href
// naudojama mygtukuose onClick actionuose
function jbd( href,ow,oh )
{
	var dw = document.body.clientWidth;
	var dh = document.body.clientHeight;
	var x = (dw - ow)/2;
	var y = (dh - oh)/2;
	
	var ww = window.open( href,'','width=' 
		+ ow + ',height=' + oh + ',toolbar=no,left=' + x + ',top=' + y + ','
	    + 'location=no,directories=no,personalbar=no,status=no,menubar=no,scrollbars=no,titlebar=no,'
	    + 'resizable=yes,dependent=yes,dialog=yes,close=no,chrome=yes' 
	);
	if( !ww ) {
		alert( 'Popup langas buvo blokuotas. Prašom pakeisti nustatymus' );
		return false;
	} // if
	ww.focus();
	
	return false;
}

// funkcija iskviecia popup langa kurio plotis ow, aukstis oh, turinio adresas 
// perduodamas per HTML a objekto instancija is kurios yra nuskaitoma href atributo
// reiksme 
// naudojamas a linkuose
function jd( obj,ow,oh ) {
	return obj ? jbd( obj.href,ow,oh ) : false;
}

// funkcija perkelia pazymetas eilutes is multiselecto fbox i multiselecta tbox, bei 
// surikiuoja abieju multiselectu reiksmes pagal abecele
function jlm( fbox,tbox ) 
{
	 var fbox = $$( fbox );
	 var tbox = $$( tbox );
	 
	 if( fbox && tbox ) {
		 var afbox = new Array( );
		 var alookup = new Array( );
		 var atbox = new Array( );
		 
		 var i;
		 for( i = 0; i < tbox.options.length; i++ ) {
			  alookup[ tbox.options[ i ].text ] = tbox.options[ i ].value;
			  atbox[ i ] = tbox.options[ i ].text;
		 } // for
		 var flen = 0;
		 var tlen = atbox.length
		 for( i = 0; i< fbox.options.length; i++ ) {
			  alookup[ fbox.options[ i ].text ] = fbox.options[ i ].value;
			  if( fbox.options[ i ].selected && fbox.options[ i ].value != '' ) {
				   atbox[ tlen ] = fbox.options[ i ].text;
				   tlen++;
			  } else {
				   afbox[ flen ] = fbox.options[ i ].text;
				   flen++;
			  }
		 } // for
		 // surikiuojam elementus
		 afbox.sort();
		 atbox.sort();
		 fbox.length = 0;
		 tbox.length = 0;
		 var c;
		 for( c = 0; c < afbox.length; c++ ) {
			  var no = new Option();
			  no.value = alookup[ afbox[ c ] ];
			  no.text = afbox[ c ];
			  fbox[ c ] = no;
		 } // for
		 
		 for( c = 0; c < atbox.length; c++ ) {
			  var no = new Option();
			  no.value = alookup[ atbox[ c ] ];
			  no.text = atbox[ c ];
			  tbox[ c ] = no;
		 } // for
	 } // if
	 
	 return true;
}

// funkcija pazymi multiselecto box visus laukus
function jsa( box ) 
{
	 if( box ) {
		 var list = box.split( ',' );
		 var l = list.length;
		 for( var j = 0; j < l; j++ ) {
		 	 var box = $$( list[ j ] );
		 	 if( box ) {
				 var r = box.length;
		 		 for( var i = 0; i < r; i++ )
			 	    box[ i ].selected = true;
			 } // if( box )
	 	 } // for
	 } // if
	 return true;
}

// funkcija padaro submita lange, kuris atidare funkcija kviecianti langa, bei uzdaro esama 
// (ta kuriame ji kvieciama) langa 
function jclose()
{
	if( opener )  {
		var w = opener.document.forms[ 0 ];
		if( w ) { 
			w.method = 'POST';
			w.action += 'ac=' + JS_JCLOSE_AC;
			w.submit();
		} // if
	} // if
	window.close();
	
	return false;
}

// naujos funkcijos jsa aliasas
function list_select_all( box ) {
	return jsa( box );
}

// jei buvo paspaustas enter klavisas (JS_ENTER_KC) tai funkcija 
// grazina true
function je( e )
{
	var c;
	if( !e ) 
		e = window.event;
	if( e.keyCode ) 
		c = e.keyCode;
	else if( e.which ) 
		c = e.which;	
	return c == JS_ENTER_KC;
}
