var pw = null;

function sortorder(MinKol) {
	var KolChecked = 0;
	for ( var i = 1; i<=document.fsort.kol.value; i++ ) {
		if ( document.fsort ["chbx["+i+"]"].checked ) { KolChecked++; }
	}
	if ( KolChecked < MinKol ) {
		alert("Active Elements count must be must more, then "+MinKol);
		return false;
	}
	else {
		pw = window.open( "", "pw", "width=400, height=200, left=200, top=250, location=no, menubar=no, status=no, toolbar=no, scrollbars=no, resizable=no" );	
		return true;
	}
}
function openpopwin ( tHREF, tTarget ) {
	window.open( tHREF, tTarget, "width=700, height=500, left=410, top=150, location=no, menubar=no, status=no, toolbar=no, scrollbars=yes, resizable=yes" );
}
function openppp(PageName,W,H) {
	pw = window.open( PageName, "pw", "width="+W+", height="+H+", left=100, top=50, location=no, menubar=no, status=no, toolbar=no, scrollbars=no, resizable=no" );	
	return true;
}
function openppp3(PageName,W,H) {
	pw3 = window.open( PageName, "pw3", "width="+W+", height="+H+", left=100, top=50, location=no, menubar=no, status=no, toolbar=no, scrollbars=no, resizable=no" );	
	return true;
}
function openpppsc(PageName,W,H) {
	pw = window.open( PageName, "pw", "width="+W+", height="+H+", left=120, top=70, location=no, menubar=no, status=no, toolbar=no, scrollbars=yes, resizable=no" );	
	return true;
}
function openpppsc3(PageName,W,H) {
	pw3 = window.open( PageName, "pw3", "width="+W+", height="+H+", left=120, top=70, location=no, menubar=no, status=no, toolbar=no, scrollbars=yes, resizable=no" );	
	return true;
}
function SborDate(Cont) {
	var d, m, y, Mod4, Mod100, Mod400;
	d = document.f [ "d"+Cont ].value;
	m = document.f [ "m"+Cont ].value;
	y = document.f [ "y"+Cont ].value;
	
	if ( d != 0 && m != 0 && y != 0 ) {	
		Mod4 = y % 4
		Mod100 = y % 100
		Mod400 = y % 400
		
		if ( ( m == 4 || m == 6 || m == 9 || m == 11 ) && d == 31 ) { document.f [ "d"+Cont ].value = 30; }
		if ( m == 2 && d > 28 ) {
			if ( Mod4 == 0 ) { 
				if ( Mod100 == 0 && Mod400 > 0 ) { document.f [ "d"+Cont ].value = 28 }
				else { document.f [ "d"+Cont ].value = 29 }
			}		
			else { document.f [ "d"+Cont ].value = 28 }
		}	
	}
	document.f [ Cont ].value = y+"-"+m+"-"+document.f [ "d"+Cont ].value;
}
function SborDateFull(Cont) {
	var d, m, y, Mod4, Mod100, Mod400;
	d = document.f [ "d"+Cont ].value;
	m = document.f [ "m"+Cont ].value;
	y = document.f [ "y"+Cont ].value;
	h = document.f [ "h"+Cont ].value;
	r = document.f [ "r"+Cont ].value;
	s = document.f [ "s"+Cont ].value;
	
	if ( d != 0 && m != 0 && y != 0 ) {	
		Mod4 = y % 4
		Mod100 = y % 100
		Mod400 = y % 400
		
		if ( ( m == 4 || m == 6 || m == 9 || m == 11 ) && d == 31 ) { document.f [ "d"+Cont ].value = 30; }
		if ( m == 2 && d > 28 ) {
			if ( Mod4 == 0 ) { 
				if ( Mod100 == 0 && Mod400 > 0 ) { document.f [ "d"+Cont ].value = 28 }
				else { document.f [ "d"+Cont ].value = 29 }
			}		
			else { document.f [ "d"+Cont ].value = 28 }
		}	
	}
	document.f [ Cont ].value = y+"-"+m+"-"+document.f [ "d"+Cont ].value+" "+h+":"+r+":"+s;
}
function isValidEmail (emailStr) // Checks if email is in valid format.
{
	var emailPat=/(.+)@(.+)$/;
	var specialChars="\\(\\)<>@,;:`?|{}'/+*=!#$%^&~\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var countryCodes = new Array ( "AF" , "AL" ,  "DZ" ,  "AS" ,  "AD" ,  "AO" ,  "AI" ,  "AQ" ,  "AG" ,  "AR" ,  "AM" ,  "AW" , 
 	 "AU" ,  "AT" ,  "AZ" ,  "BS" ,  "BH" ,  "BD" ,  "BB" ,  "BY" ,  "BE" ,  "BZ" ,  "BJ" ,  "BM" ,  "BT" ,  "BO" ,  "BA" ,  "BW" , 
	 "BV" ,  "BR" ,  "BN" ,  "BG" ,  "BF" ,  "BI" ,  "KH" ,  "CM" ,  "CA" ,  "CV" , 
	 "KY" ,  "CF" ,  "TD" ,  "CL" ,  "CN" ,  "HK" ,  "CX" ,  "CC" ,  "CO" ,  "KM" ,  "CG" ,  "CD" ,  "CK" ,  "CR" ,  "CI" ,  "HR" , 
	 "CU" ,  "CY" ,  "CZ" ,  "DK" ,  "DJ" ,  "DM" ,  "DO" ,  "TP" ,  "EC" ,  "EG" ,  "SV" ,  "GQ" ,  "ER" ,  "EE" ,  "ET" , 
	 "FK" ,  "FO" ,  "FJ" ,  "FI" ,  "FR" ,  "GF" ,  "PF" ,  "GA" ,  "GM" ,  "GE" ,  "DE" ,  "GH" ,  "GI" ,  "GR" ,  "GL" ,  "GD" , 
	 "GP" ,  "GU" ,  "GT" ,  "GN" ,  "GW" ,  "GY" ,  "HT" ,  "HN" ,  "HU" ,  "IS" ,  "IN" ,  "ID" ,  "IR" ,  "IQ" ,  "IE" ,  "IL" ,  "IT" , 
	 "JM" ,  "JP" ,  "JO" ,  "KZ" ,  "KE" ,  "KI" ,  "KR" ,  "KP" ,  "KW" ,  "KG" ,  "LA" ,  "LV" ,  "LB" ,  "LS" ,  "LR" ,  "LY" , 
	 "LI" ,  "LT" ,  "LU" ,  "MO" ,  "MK" ,  "MG" ,  "MW" ,  "MY" ,  "MV" ,  "ML" ,  "MT" ,  "MH" ,  "MQ" ,  "MR" ,  "MU" ,  "YT" ,  "MX" , 
	 "FM" ,  "MD" ,  "MC" ,  "MN" ,  "MS" ,  "MA" ,  "MZ" ,  "MM" ,  "NA" ,  "NR" ,  "NP" ,  "AN" ,  "NL" ,  "NC" ,  "NZ" ,  "NI" , 
	 "NE" ,  "NG" ,  "NU" ,  "NF" ,  "NO" ,  "OM" ,  "PK" ,  "PW" ,  "PA" ,  "PG" ,  "PY" ,  "PE" ,  "PH" ,  "PN" ,  "PL" , 
	 "PT" ,  "PR" ,  "QA" ,  "RE" ,  "RO" ,  "RU" ,  "RW" ,  "SH" ,  "LC" ,  "WS" ,  "SM" ,  "SA" ,  "SN" ,  "SC" ,  "SL" , 
	 "SG" ,  "SK" ,  "SI" ,  "SB" ,  "SO" ,  "ZA" ,  "ES" ,  "LK" ,  "SD" ,  "SR" ,  "SZ" ,  "SE" ,  "CH" ,  "SY" ,  "TW" ,  "TJ" ,  "TZ" , 
	 "TH" ,  "TG" ,  "TK" ,  "TO" ,  "TT" ,  "TN" ,  "TR" ,  "TM" ,  "TV" ,  "UG" ,  "UA" ,  "AE" ,  "UK" ,  "US" ,  "UY" ,  "UZ" ,  "VU" , 
	 "VA" ,  "VE" ,  "VN" ,  "VG" ,  "VI" ,  "EH" ,  "YE" ,  "YU" ,  "ZM" ,  "ZW" )

	var matchArray=emailStr.match(emailPat);
	if (matchArray==null) 
		return("Email address seems incorrect (check @ and .'s)");
	var user=matchArray[1];
	var domain=matchArray[2];
	if ((user.match(userPat)==null) || (user.charAt(0)=="-") || (user.charAt(user.length-1)=="-") )
	    return("The username in email address doesn't seem to be valid.");
	for(var i=0; i<user.length-1; i++)
		{	var ch= user.substring(i, i + 2);
		 	if((ch=="--") || (ch=="-.") || (ch==".-") || (ch=="__") || (ch=="_.") || (ch=="._") || (ch=="_-") || (ch=="-_"))
				return("The username in email address doesn't seem to be valid.");	
		}
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) 
		{	for (var i=1;i>=4;i++) 
				{  if (IPArray[i]>255)
				     return("Destination IP address is invalid!");
				}
		 	return true;
		}
	if ((domain.match(domainPat)==null) || (domain.charAt(0)=="-") || (domain.charAt(domain.length-1)=="-") || (domain.indexOf("_") != -1 ))
		return("The domain name doesn't seem to be valid.");
	for(var i=0; i<domain.length-1; i++)
		{	
			var ch= domain.substring(i, i + 2);
		 	if(ch=="--" || ch=="-." || ch==".-")
				return("The domain name doesn't seem to be valid.");	
		}
	var atomPat=new RegExp(atom,"g");
	var domArr=domain.match(atomPat);
	var len=domArr.length;
	if (len < 2)
		return("This email address is missing a hostname!");
	var domainExt = domArr[domArr.length-1]
	if (domainExt.length<2 || domainExt.length>4)
	   return("The address must end in a four-letter domain, or two letter country.");
	if (domainExt.length==2)
		{	var validCountryCode = false;
			for (var i=0; i<countryCodes.length-1; i++)
				{	if (domainExt.toUpperCase()== countryCodes[i])
						{	validCountryCode = true;
							break;	
						}
				}
			if (!validCountryCode)
				return ("This email address is missing a country code!");
		}
	else
		{	for(var i=0; i>4; i++)
				{	if((domainExt.charAt(i) < "a" || "z" < domainExt.charAt(i)) && (domainExt.charAt(i) < "A" || "Z" < domainExt.charAt(i)) && (domainExt.charAt(i)!= ' '))
			   			return("Only letters are accepted in domain extension!");
				}
		}
	return ("Yes");
}
function isValidName(nameStr) {
	if ( nameStr.length > 0 ) {return ("Yes");}
	else { return ("No"); }
}
function openterm(Id) {
	var kolterms = document.getElementById("kolterms").value;
	for ( var i = 1; i <= kolterms; i++ ) {
		if ( i != Id ) { 
			document.getElementById("term"+i).style.display = "none";
			document.getElementById("anons"+i).style.display="block";
			document.getElementById("more"+i).innerHTML = "read more";
		}
		else {
			if ( document.getElementById("term"+Id).style.display == "none" ) {
				document.getElementById("term"+Id).style.display="block";
				document.getElementById("anons"+Id).style.display="none";
				document.getElementById("more"+Id).innerHTML = "close";
			}
			else {
				document.getElementById("term"+Id).style.display="none";
				document.getElementById("anons"+Id).style.display="block";
				document.getElementById("more"+Id).innerHTML = "read more";
			}
		}
	}
}
function openart(Id) {
	var kolterms = document.getElementById("kolterms").value;
	for ( var i = 1; i <= kolterms; i++ ) {
		if ( i != Id ) { document.getElementById("term"+i).style.display = "none"; }
		else {
			if ( document.getElementById("term"+Id).style.display == "none" ) {
				document.getElementById("term"+Id).style.display="block";
			}
			else {
				document.getElementById("term"+Id).style.display="none";
			}
		}
	}
}
function testsearch() {
	if ( document.fsearch.search.value.length == 0 ) {
		alert(searchmess);
		return false;
	}
	else {
		return true;
	}
}
function comsun() {
	alert(coming_soon);
	return false;
}
function extractNumber(obj, decimalPlaces, allowNegative)
{
	var temp = obj.value;
	
	// avoid changing things if already formatted correctly
	var reg0Str = '[0-9]*';
	if (decimalPlaces > 0) {
		reg0Str += '\\.?[0-9]{0,' + decimalPlaces + '}';
	} else if (decimalPlaces < 0) {
		reg0Str += '\\.?[0-9]*';
	}
	reg0Str = allowNegative ? '^-?' + reg0Str : '^' + reg0Str;
	reg0Str = reg0Str + '$';
	var reg0 = new RegExp(reg0Str);
	if (reg0.test(temp)) return true;

	// first replace all non numbers
	var reg1Str = '[^0-9' + (decimalPlaces != 0 ? '.' : '') + (allowNegative ? '-' : '') + ']';
	var reg1 = new RegExp(reg1Str, 'g');
	temp = temp.replace(reg1, '');

	if (allowNegative) {
		// replace extra negative
		var hasNegative = temp.length > 0 && temp.charAt(0) == '-';
		var reg2 = /-/g;
		temp = temp.replace(reg2, '');
		if (hasNegative) temp = '-' + temp;
	}
	
	if (decimalPlaces != 0) {
		var reg3 = /\./g;
		var reg3Array = reg3.exec(temp);
		if (reg3Array != null) {
			// keep only first occurrence of .
			//  and the number of places specified by decimalPlaces or the entire string if decimalPlaces < 0
			var reg3Right = temp.substring(reg3Array.index + reg3Array[0].length);
			reg3Right = reg3Right.replace(reg3, '');
			reg3Right = decimalPlaces > 0 ? reg3Right.substring(0, decimalPlaces) : reg3Right;
			temp = temp.substring(0,reg3Array.index) + '.' + reg3Right;
		}
	}
	
	obj.value = temp;
}
function blockNonNumbers(obj, e, allowDecimal, allowNegative)
{
	var key;
	var isCtrl = false;
	var keychar;
	var reg;
		
	if(window.event) {
		key = e.keyCode;
		isCtrl = window.event.ctrlKey
	}
	else if(e.which) {
		key = e.which;
		isCtrl = e.ctrlKey;
	}
	
	if (isNaN(key)) return true;
	
	keychar = String.fromCharCode(key);
	
	// check for backspace or delete, or if Ctrl was pressed
	if (key == 8 || isCtrl)
	{
		return true;
	}

	reg = /\d/;
	var isFirstN = allowNegative ? keychar == '-' && obj.value.indexOf('-') == -1 : false;
	var isFirstD = allowDecimal ? keychar == '.' && obj.value.indexOf('.') == -1 : false;
	
	return isFirstN || isFirstD || reg.test(keychar);
}