/**
 * funkcja sprawdzająca poprawność adresu email 
 * 
 * @param string email
 */
function checkEmail(email) {
	var reg_test = /^[\w\.-]{2,}@[\w\.-]+\.[a-z]{2,5}$/i.test(email);
	if(!reg_test)
		return false;
	return true;
}

/**
 * funkcja sprawdzająca poprawność godziny
 * 
 * @param string h
 */
function checkHour(h){
	/* var reg_test = /^[0-9]{1,2}\:[0-9]{2}\:[0-9]{2}$/i.test(h);*/
	var reg_test = /^[0-9]{1,2}\:[0-9]{2}$/i.test(h);
	if(!reg_test)
		return reg_test;
	var val = h.split(':');
	if(val[0]>23||val[0]<0||val[1]>59||val[1]<0||val[2]>59||val[2]<0)
		return false;
	return true;
} 

/**
 * funkcja sprawdzająca poprawność numeru telefonu 
 * 
 * @param string pN
 */
function checkPhoneNumber(pN){
	var reg_test = /^[0-9]{10}$/i.test(pN);
	if(!reg_test)
		return false;
	return true;
}

/**
 * funkcja sprawdzająca poprawność adresu WWW
 * 
 * @param string www
 */
function checkWWW(www) {
	var reg_test = /^(http:\/\/|www\.).*/i.test(www);
	if(!reg_test)
		return false;
	return true;
}

/**
 * funkcja sprawdzająca poprawność kodu pocztowego
 * 
 * @param string zC
 */
function checkZipCode(zC) {
	var reg_test = /^[0-9]{2}\-[0-9]{3}$/i.test(zC);
	if(!reg_test)
		return false;
	return true;
}

/**
 * funkcja sprawdzająca, czy długość string-a zawiera się w przedziale
 * 
 * @param string str
 * @param int from
 * @param int to
 */
function checkLength(str, from, to) {
	if (str.length >= from && str.length <= to)
		return true;
	return false;
}

/**
 * funkcja sprawdzająca poprawność loginu uzytkownika
 * 
 * @param string login
 */
function checkLogin(login) {
	var reg_test = /^[\w\.-]{8,50}$/i.test(login);
	if(!reg_test)
		return false;
	return true;
}

/**
 * funkcja sprawdzająca zgodność z typem int
 * 
 * @param {Object} value
 */
function checkInt(value) {
	var reg_test = /^[\-]{0,1}[0-9]{1,8}$/i.test(value);
	if(!reg_test)
		return false;
	return true;
}

/**
 * Backtrace dla funkcji JavaScript	
 * @param {Object} func
 */

function getStackTrace(func){

	if (!func) 
		return "not a function!";
	var trace = getFuncName(func);
	var args = "(";
	for (var arg in func.arguments) {
		if (args && args.length && args.length > 1) 
			args += ",";
		args += func.arguments.toString();
	}
	
	trace += args + ")\n";
	return trace + getStackTrace(func.caller);
}

/**
 * funcka wychwytująca błędy
 */

function handleErrors(errStr, url, lineNum){
	
	document.getElementById('JSError').innerHTML = getStackTrace();
}
//window.onerror=handleErrors;

/**
 * funkcja potwierdzająca wykonaną akcję
 * 
 */
function confirmSubmit(str) {
	var agree = confirm(str);
	
	if (agree)
		return true ;
	return false ;
}

/**
* funkcja zwalnia aktywne zakladki, przyciski i aktywuje wybrana jako aktywna
* (newsy na stronie glownej, box galerii strony glownej)
* ile - calkowita ilosc zakladek
* cur - numer zakladki do aktywacji
* id - tekstowy przedrostek id zakladek, przyciskow
*/
function activateGroup(ile,cur,id)
{
	for(var i=0;i<=ile;i++)
	{
		if(document.getElementById(id+i)) document.getElementById(id+i).className='';
	};
	document.getElementById(id+cur).className='sel';
}

//==========================================
//Check All boxes
//==========================================
function CheckAll(fmobj) {
for (var i=0;i<fmobj.elements.length;i++) {
 var e = fmobj.elements[i];
 if ( (e.name != 'select_all') && (e.type=='checkbox') && (!e.disabled) ) {
   e.checked = fmobj.select_all.checked;
 }
}
}

//==========================================
//Check all or uncheck all?
//==========================================
function CheckCheckAll(fmobj) {
var TotalBoxes = 0;
var TotalOn = 0;
for (var i=0;i<fmobj.elements.length;i++) {
 var e = fmobj.elements[i];
 if ((e.name != 'select_all') && (e.type=='checkbox')) {
   TotalBoxes++;
   if (e.checked) {
    TotalOn++;
   }
 }
}
if (TotalBoxes==TotalOn) {
 fmobj.select_all.checked=true;
}
else {
fmobj.select_all.checked=false;
}
}


/**
 * funkcja ulubionych
 */
function ulubione(obj)
{
	var title = document.title;
	var url = document.location;
	if (window.sidebar)
	{
		window.sidebar.addPanel(title, url,"");
		obj.href="#";
		return false;
	}
	else if (window.external)
	{
		window.external.AddFavorite(url, title);
		obj.href="#"; 
		return false;
	}
	else if (window.opera && window.print)
	{
		obj.rel = 'sidebar';
		obj.title = title;
		obj.href = url;
		return true;
	}
	return false;
}


/**
 * Funkcja wyświetla obiekt flash w miejscu wywołania
 * konieczna by zachowac walidacje xhtml
 */
function flashFix(o)
{
	document.write(o)
}

