﻿function CheckZipAlert(zip)
{
   if(!zip.value.match(/^(\d\d\d \d\d|\d\d\d\d\d)$/))
	{
	    return confirmZipPopUp();
	}
	else return true;
}

function confirmZipPopUp()
{
    var agree=confirm("OBS! Postnumret kan vara felaktigt. Svenskt postnummer anges som XXX XX, vill du gå vidare ändå?");
    if (agree) return true ;
    else return false ;
}

function confirmPopUp(message)
{
    return confirm(message);
}

function personnummer(nr)
{
	this.valid=false;
	if(!nr.match(/^(\d{2})(\d{2})(\d{2})(\d{4})$/))
	{
	    return false;
	}
	var mArray = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	this.nu=new Date();
	this.FY=this.nu.getFullYear()+"";
	this.cent = this.FY.substring(0, 2);
	this.SY=this.FY.substring(2,4);
	this.yr=RegExp.$1;
	this.mth=RegExp.$2;
	this.dag=RegExp.$3;
	this.cd=RegExp.$4;
	this.LY=(this.yr*1<=this.SY*1)?(this.cent+this.yr)*1:((this.cent*1-1)+this.yr)*1;


	if (new Date(this.LY, 2 - 1, 29).getDate() == 29) mArray[1] = 29;
	
	if(this.mth*1<1||this.mth*1>12||this.dag*1<1||this.dag*1>mArray[this.mth*1-1])
	{ 
	    return false;
	}
	
	this.ad=this.yr+this.mth+this.dag+this.cd;
	
	var k="";
	
	for(var i=0;i<this.ad.length;i++)
	{
	    k+=((((i+1)%2)+1)*this.ad.substring(i,i+1)); 
	}
	
	this.cs=0;
	
	for(var i=0;i<k.length;i++)
	{
	    this.cs+=k.substring(i,i+1)*1; 
	}
	
	this.valid = (this.cs%10 == 0) ? true : false;
	
	this.sex = parseInt(this.cd.substring(2,3)) % 2;
}

function charCounter(fieldstr,cntfieldstr,maxlimit)
{
    var field = document.getElementById(fieldstr);
    var cntfield = document.getElementById(cntfieldstr);
    if(field.value.length > maxlimit)
        {
        field.value = field.value.substring(0, maxlimit);
        cntfield.innerHTML = maxlimit - field.value.length + ' tecken kvar.';
        alert('Du har försökt skriva in för många tecken. Kontrollera din text.');
        }
    else cntfield.innerHTML = maxlimit - field.value.length + ' tecken kvar.';
    
    return;
}

function charCounter2(inst) {
	var plainText = inst.getBody().innerText;
    // innerText not available in Mozilla
	if (plainText == null) {
		plainText = inst.getBody().textContent;
	}	
	// the editor id is the id of the original textarea
	// the corresponding label is created by text replacement
	// as they appear in pairs, e.g.:
	// "ctl00_ContentPlaceHolder1_ApplDoctoralServiceWizardControl_WizardApplDoctoralService_MultiTextBoxInfoLocalRules_TextBoxInfo"
	// "ctl00_ContentPlaceHolder1_ApplDoctoralServiceWizardControl_WizardApplDoctoralService_MultiTextBoxInfoLocalRules_LabelCounter"
	var textboxId = inst.id;
	var lableId = textboxId.replace(/_TextBoxInfo$/, "_LabelCounter");
	var cntfield = document.getElementById(lableId);
	var stringBefore ="";
	if (cntfield != null) {
		stringBefore = cntfield.innerHTML;
	}
	if (stringBefore.length == 0) 
	{
	// Hidden
	}
	else {
		//should have ignored also length of CRLF's as this is done when analysing html-code
	    // but do not knw how to strip them code below fails replace and gives endless loop.
		//while (plainText.indexOf("\r\n") != -1)
		//{
		//	plainText.replace("\r\n","");
		//}
		//logic based on orignal string written at Page_Load - maxlength found within "()"
		var maxStart = stringBefore.indexOf("(");
		var maxStop = stringBefore.lastIndexOf(")");
		var max = stringBefore.substring(maxStart + 1, maxStop);
		cntfield.innerHTML = (max - plainText.length) + ' tecken kvar (' + max + ')';
		if (max < plainText.length) {
			alert('Du har försökt skriva in för många tecken. Kontrollera din text.');
		}
	}

	//If the text seems to be empty, but is not then make it empty!
	//For TinyMCE application of <=/delete/ctrlX seems to leave some html-tags
	//e.g. <P><STRONG></STRONG>&nbsp;</P>
	//they are not seen by the user or in generated word-documents but
	//makes the validation that a field is nonempty meaningless
	if ((plainText.length == 0) && (inst.getBody().innerHTML.length != 0)) {
		var ih = inst.getBody().innerHTML; // html-contents
		//also an empty image is OK
		if (ih.search(/img/i) == -1) {
			inst.getBody().innerHTML = "";
		}
	} 
	
    return;
}


function charMultiCounter(fieldstr, cntfieldstr, maxlimit)
{
    var contDiv = document.getElementById("containerDiv");
    var field = document.getElementById(fieldstr);
    var cntfield = document.getElementById(cntfieldstr);
    var cnt=0;
    var cntOthers=0;
    var docName = "";
    var allContainedElements = contDiv.getElementsByTagName("*");

    for (i = 0; i < allContainedElements.length; i++) 
    {
        var doc = allContainedElements[i];
        docName = "";
        if (doc.type == "textarea") 
        {
            docName = doc.name;
            cnt += doc.value.length;
            if (docName != field.name) cntOthers += doc.value.length;
        }
    }        
    
    if(cnt > maxlimit)
    {
        field.value = field.value.substring(0, maxlimit-cntOthers);
        cntfield.innerHTML = maxlimit - cntOthers - field.value.length + ' tecken kvar.';
        alert('Du har försökt skriva in för många tecken. Kontrollera din text.');
    }
    else cntfield.innerHTML = maxlimit - cnt + ' tecken kvar.';

    return;
}



function validateGroups(group1,group2)
{
    if(typeof(Page_ValidationActive) != "undefined")
    {
        var validated = Page_ClientValidate(group1);
        if (validated)
        {
            return Page_ClientValidate(group2);
        }
        else return false;
    }
    else return true;
}

function validateListBoxExactlyOne(source,args) 
{
    var lb = document.getElementById(source.controltovalidate);
    if(lb.options.length == 1) args.Isvalid = true;
    else args.IsValid = false;
}

var win;
function openPopup(strOpen)
{
    focusWin();
    win=window.open(strOpen,"Info", "status=1, scrollbars=yes, width=500, height=600, resizable=yes");
}
function openStaticPopup(strOpen)
{
    focusWin();
    win=window.open(strOpen,"Info", "status=1, scrollbars=no, width=500, height=400, resizable=false");
}

function focusWin() 
{
    if (win && win.open && !win.closed) win.focus();
}







