
function ShowModalWindowEx(sUrl, sHostname, sHeightPx, sWidthPx, sCurrentFile)
{
	if (sCurrentFile != null)
	{
		sUrl += "&file=" + sCurrentFile;
	}

	var rnd = GetRandom();
	sUrl += "&rnd=" + rnd;

	var myObject = new Object();
	myObject.sourceurl = sUrl;
	var sFeature = "dialogHeight:" + sHeightPx + "px;dialogWidth:" + sWidthPx +"px;scroll:yes;resizable:yes"
	
	childWindowRet = window.showModalDialog(sHostname+sUrl,myObject,sFeature);

	document.all.txtModalRet.value = childWindowRet;
}

function GetRandom()
{
	var randomNumber = Math.round(Math.random()*10000);
	return randomNumber;
}

function search(id, locale)
{
   var search=document.getElementById(id);
   var currentSearch = location.search;
   
   //alert(search.value + ' ' + currentSearch);
   
   currentSearch = currentSearch.replace("?","");
   location.href="searchresult.aspx?q=" + search.value + "&locale=" + locale;
}






function emailCheckWithErrors(emailStr, errmsg1, errmsg2, errmsg3, errmsg4, errmsg5, errmsg6, errmsg7)
{	
	var checkTLD=1;
	var knownDomsPat=/^(no|fi|dk|se|com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	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 matchArray=emailStr.match(emailPat);
	if (matchArray==null) 
	{
		alert(errmsg1);
		return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];
	for (i=0; i<user.length; i++) 
	{
		if (user.charCodeAt(i)>127) 
		{
			alert(errmsg2);
			return false;
		}
	}
	for (i=0; i<domain.length; i++) 
	{
		if (domain.charCodeAt(i)>127) 
		{
			alert(errmsg3);
			return false;
		}
	}
	if (user.match(userPat)==null) 
	{
		alert(errmsg4);
		return false;
	}
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) 
	{
		if (domArr[i].search(atomPat)==-1) 
		{
			alert(errmsg5);
			return false;
		}
	}
	if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].toLowerCase().search(knownDomsPat)==-1) 
	{
		alert(errmsg6);
		return false;
	}
	if (len<2) 
	{
		alert(errmsg7);
		return false;
	}
	return true;
}
function isYear(v)
{
    intYear = parseInt(v);
    if (!isNumeric(v))
        return false;
    if (isNaN(intYear))
        return false;
    if (intYear > 2100)
        return false;
    if (intYear < 1754)
        return false;
    return true;
}
function isMonth(v)
{
    intMonth = parseInt(v,10);
    if (!isNumeric(v))
        return false;
    if (isNaN(intMonth))
        return false;
    if (intMonth < 1)
        return false;
    if (intMonth > 12)
        return false;
    return true;
}
function isDay(yearValue,monthValue,dayValue)
{
   intDay = parseInt(dayValue,10);
   intMonth = parseInt(monthValue,10);
   intYear = parseInt(yearValue);
    if (isNaN(intDay))
        return false;
    if (intDay < 1)
        return false;
    switch (intMonth)
    {
        case 2:
            var isLeap = (intYear % 4 == 0 && (intYear % 100 != 0 || intYear % 400 == 0));
            if (intDay>28 && !isLeap)
                return false;
            if (intDay>29)
                return false;
        break;
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            if (intDay > 31)
                return false;
        break;
        case 4:
        case 6:
        case 9:
        case 11:
            if (intDay > 30)
                return false;
        break;
        default:
        return false;
    }
    return true;
}
function isNumeric(v)
{
    var i;
    for (i = 0; i < v.length; i++)
    {
        switch (v.charAt(i))
        {
            case ' ':
            case '.':
                if(i==0 || i==v.length-1)
                    return false;
                break;
            default:
            if (isNaN(parseFloat(v.charAt(i))))
                return false;
        }
    }
    return true;
}
function socialSecurityNumber(field){
	var nr  = field.value;
	this.valid=false;
	if(!nr.match(/^(\d{4})(\d{2})(\d{2})(\d{4})$/)){ return false; }
	this.now=new Date(); 
	this.nowFullYear=this.now.getFullYear()+""; 
	this.nowCentury=this.nowFullYear.substring(0,2); 
	this.nowShortYear=this.nowFullYear.substring(2,4);
	this.year=RegExp.$1; 
	if(this.year<1900 || this.year > this.nowFullYear){return false;this.valid=false;}
	this.shortYear = this.year.substring(2,4);
	this.month=RegExp.$2; 
	this.day=RegExp.$3; 
	this.controldigits=RegExp.$4;
	this.fullYear= this.year;//(this.year*1<=this.nowShortYear*1)?(this.nowCentury+this.year)*1:((this.nowCentury*1-1)+this.year)*1;
	var months = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	if(this.fullYear%400==0||this.fullYear%4==0&&this.fullYear%100!=0){ months[1]=29; }
	if(this.month*1<1||this.month*1>12||this.day*1<1||this.day*1>months[this.month*1-1]){ return false; }
	this.alldigits=this.shortYear+this.month+this.day+this.controldigits;
	var nn="";
	for(var n=0;n<this.alldigits.length;n++){ nn+=((((n+1)%2)+1)*this.alldigits.substring(n,n+1)); }
	this.checksum=0;
	for(var n=0;n<nn.length;n++){ this.checksum+=nn.substring(n,n+1)*1; }
	this.valid=(this.checksum%10==0)?true:false;
	this.sex=parseInt(this.controldigits.substring(2,3))%2;
}
