
/***
 *** 	Common General function repository
 ***	Written by Petrenko Yuri
 ***	Date: 03/05/2005
 ***	Last-modified: 25/03/2008
 ***	ver. 1.0.3
 ***
 ***/
 
/***
 ****		Window functions
 ***/



function openWindow(theURL,winName,features) { 
  if (!features) features="status=yes,toolbar=no,menubar=no,location=no";
  return window.open(theURL,winName,features);
}

/***
 ****		Other
 ***/

function empty(variable) {
	if (typeof(variable)=='undefined') return true;
	if (variable=='' || variable==0 || variable=='0' || !variable) return true;
	return false;	
}

function is_undef(variable) {
	if (typeof(variable)=='undefined') return true;
	return false;	
}

/***
 ****		Array and Types functions
 ***/

function is_array() {
	if (typeof arguments[0] == 'object') {  
		var criterion = arguments[0].constructor.toString().match(/array/i); 
 		return (criterion != null);  
	}
	return false;
//	return ( mixed_var instanceof Array );  // js 1.4
}

function is_hash() {
//	alert(arguments[0]);
	if (typeof arguments[0] == 'object') {  
		var non_empty = false;
		for (var k in arguments[0]) if ( !is_undef(k) || !is_undef(arguments[0][k]) ) {non_empty = true; break;}
		var criterion = arguments[0].constructor.toString().match(/object\(\)/i) && non_empty; 
//		alert(arguments[0].constructor.toString());
 		return (criterion != null);  
	}
	return false;
}


function array_search(needle, haystack) {
	if (typeof(needle)=='undefined' || typeof(haystack)=='undefined') return false;
	if (typeof(haystack.length)=='undefined' || needle==false) return false;
	for(var i=0; i <= haystack.length-1; i++) if (needle==haystack[i]) return i;
	return -1;	
}
function in_array(needle, haystack) {
	if (typeof(needle)=='undefined' || typeof(haystack)=='undefined') return false;
	if (typeof(haystack.length)=='undefined' || !needle) return false;
	for(var i=0; i <= haystack.length-1; i++) if (needle==haystack[i]) return true;
	return false;	
}

function is_obj (variable) {
	if (typeof(variable)=='object') return true;
	return false;	
}
function is_object (variable) {return is_obj (variable);}


/***
 ****		General (taked from PMA compilation)
 ***/
 
function getElement(e,f){
    f=(f)?f:self;
    if(document.layers){
        f=(f)?f:self;
        if(f.document.layers[e]) {
            return f.document.layers[e];
        }
        for(W=0;i<f.document.layers.length;W++) {
            return(getElement(e,f.document.layers[W]));
        }
    }
    if(document.all) {
        return f.document.all[e];
    }
    return f.document.getElementById(e);
} 




/***
 ****		Array prototype
 ***/
arrPrototypeReserved = [ "sizeOf",  "show"];

Array.prototype.sizeOf = function () {
	var l = this.length ? 0 : -1;
	for (var k in this) if ( !in_array(k, arrPrototypeReserved) ) {
//	for (var k in this) if (  k!="show" && k!="size") {
		l++;
	}
	return l;
}

Array.prototype.show = function () {
	var str = '';
//	str = this +', ';	alert(this);
	for (var k in this) {
		if (  !in_array(k, arrPrototypeReserved) )// && typeof(this[k]) != "undefined"
			str = str + k + "=>" + this[k] + ', ';
	}
//		str = str +',' + k;
	if (str.length>0) str = str.substring(0,str.length-2);
	alert(str);
}

/***
 ***		Form Handling
 ***/

function el_value(el) { 	// takes form element value
//	alert(el.type);
	var ret_val = false;
	if (!empty(el.type)) {
		var tmp = el.type;
		if (tmp.indexOf('select')>-1) {
//			alert(el.id + el.selectedIndex);
			if (el.selectedIndex != -1)	return el.options[el.selectedIndex].value;
//			return ret_val;
		}
	}
	if (typeof(el.value)!='undefined') return el.value;
	return ret_val;
}

var value = selObj.options[selObj.selectedIndex].value; 

