function popUp(page,width,height)
{
	if (screen) {
			y = (screen.availHeight - height)/2;
			x = (screen.availWidth - width)/2;
		}
	layout = "toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes" + ",width=" + width + ",height=" + height + ",left=" + x + ",top=" + y;
	window.open(page,"", layout);
}

function checkKeyword(e,str,errtext)
{
	var re = new RegExp("[^a-zåäöA-ZÅÄÖ0-9]");
	if (str.match(re))
	{
		var targ;
		if( !e )
			e = window.event;
		if (e.target)
			targ = e.target;
		else if (e.srcElement)
			targ = e.srcElement;
		alert(errtext);
		targ.value = targ.value.substring(0,targ.value.length-1);
	}
}

function checkLen4()
{
	var maxLen = 0;
	
	if(document.form.txtLimit)
	{
		if(document.form.txtLimit.value == "1")
		{
			maxLen = 160;
		}
		else
		if(document.form.txtLimit.value == "2")
		{
			maxLen = 320;
		}
		else
		if(document.form.txtLimit.value == "3")
		{
			maxLen = 480;
		}
	}
	else
	{
		maxLen = 160;
	}
	
	if (document.form.chkPinCode != null)
	{
	  	if (document.form.chkPinCode.checked)
	  	{
			maxLen = maxLen - 5;
		}
	}
	else if (document.form.isCouponMode != null)
	{
	  	if (document.form.isCouponMode.value == 1)
	  	{
			maxLen = maxLen - 20;
		}
//		if (document.form.txtCouponPrefix.value == -999)
//	  	{
//			maxLen = 160;
//		}
	} 

	var counter = (maxLen - countLength(document.form.txtReplyMessage.value));
	
	if (counter < 0)
	{
		document.form.txtCharsLeft.value = 0;
		
		while(maxLen - countLength(document.form.txtReplyMessage.value) < 0)
		{
			document.form.txtReplyMessage.value = document.form.txtReplyMessage.value.substring(0,document.form.txtReplyMessage.value.length - 1);
		}
		
	}
	else
	{
		document.form.txtCharsLeft.value = counter;   
	}
	
	return true;
}

function checkLenEnd()
{
	var maxLen = 160;
	
	var counter = (maxLen - countLength(document.form.txtEndMessage.value));
	
	if (counter < 0)
	{
		document.form.txtCharsLeftEnd.value = 0;
		
		while(maxLen - countLength(document.form.txtEndMessage.value) < 0)
		{
			document.form.txtEndMessage.value = document.form.txtEndMessage.value.substring(0, document.form.txtEndMessage.value.length - 1);
		}
	}
	else
	{
		document.form.txtCharsLeftEnd.value = counter;   
	}
	
	return true;
}

function checkLen2()
{
	var maxLen = 90;
	
	var counter = (maxLen - countLength(document.form.txtReplyMessage2.value));
	
	if (counter < 0)
	{
		document.form.txtCharsLeft2.value = 0;
		
		while(maxLen - countLength(document.form.txtReplyMessage2.value) < 0)
		{
			document.form.txtReplyMessage2.value = document.form.txtReplyMessage2.value.substring(0, document.form.txtReplyMessage2.value.length - 1);
		}
	}
	else
	{
		document.form.txtCharsLeft2.value = counter;   
	}
	
	return true;
}

function checkLen3()
{
	var maxLen = 160;
	
	var counter = (maxLen - countLength(document.form.txtReplyMessage3.value));

	if (counter < 0)
	{
		document.form.txtCharsLeft3.value = 0;
		
		while(maxLen - countLength(document.form.txtReplyMessage3.value) < 0)
		{
			document.form.txtReplyMessage3.value = document.form.txtReplyMessage3.value.substring(0,document.form.txtReplyMessage3.value.length-1);
		}
	}
	else
	{
		document.form.txtCharsLeft3.value = counter;   
	}
	
	return true;
}



function checkMessageAmount()
{
	var varMessageAmount = document.getElementById("numberOfMessages").value;

	if(varMessageAmount == 1)
	{
		document.getElementById("numberOfMessages").value = varMessageAmount + " Meddelande";
	}
	else
	{
		document.getElementById("numberOfMessages").value = varMessageAmount + " Meddelanden";
	}
}




/////////////////////////////////////////////////////////////////////////////////////////////////
// Javascript functions used in AIMO
/////////////////////////////////////////////////////////////////////////////////////////////////

function dateOnBlur(dateClientId, timeClientId)
{
	if(document.getElementById(dateClientId) && document.getElementById(timeClientId))
	{
		var selectedDate = document.getElementById(dateClientId).value;
		var selectedTime = document.getElementById(timeClientId).value;
		
		if(selectedDate.length > 0 && selectedTime.length == 0)
		{
			document.getElementById(timeClientId).value = "12:00";
		}
	}
}

function replyMessageOnClick(clickedRadioButtonClientID, relatedTextBoxClientID1, relatedTextBoxClientID2, relatedTextBoxClientID3, relatedTextBoxClientID4, disableTextBoxClientID1, disableTextBoxClientID2, disableTextBoxClientID3, disableTextBoxClientID4, disableTextBoxClientID5, disableTextBoxClientID6)
{
	document.getElementById(clickedRadioButtonClientID).checked = true;
	document.getElementById(relatedTextBoxClientID1).disabled = false;
	
	if(relatedTextBoxClientID2 != "")
	{
		document.getElementById(relatedTextBoxClientID2).disabled = false;
	}
	if(relatedTextBoxClientID3 != "")
	{
		document.getElementById(relatedTextBoxClientID3).disabled = false;
	}
	if(relatedTextBoxClientID4 != "")
	{
		document.getElementById(relatedTextBoxClientID4).disabled = false;
	}
	
	if(disableTextBoxClientID1 != "")
	{
		document.getElementById(disableTextBoxClientID1).disabled = true;
	}	
	if(disableTextBoxClientID2 != "")
	{
		document.getElementById(disableTextBoxClientID2).disabled = true;
	}
	if(disableTextBoxClientID3 != "")
	{
		document.getElementById(disableTextBoxClientID3).disabled = true;
	}
	if(disableTextBoxClientID4 != "")
	{
		document.getElementById(disableTextBoxClientID4).disabled = true;
	}
	if(disableTextBoxClientID5 != "")
	{
		document.getElementById(disableTextBoxClientID5).disabled = true;
	}
	if(disableTextBoxClientID6 != "")
	{
		document.getElementById(disableTextBoxClientID6).disabled = true;
	}
}



function checkLen(HtmlTextAreaMessageClientID, LabelNumCharactersLeftClientId, LabelNumMessagesClientId, MaxLengthId)
{
    var maxLen;
    var maxMessages;
    var MaxLength;
    
    MaxLength = null; //countLength(document.getElementById(MaxLengthId).value);
    
    if (MaxLength == null)
	{
	    maxLen = 160;
	    maxMessages = 4;
	}
	else
	{
	    maxLen = MaxLength;
	    maxMessages = 1;
	}
	
	if(LabelNumMessagesClientId == "")
	{
		maxMessages = 1;
	}	

	var counter = 0;
	var i = 1;	 
	
	while(maxLen - countLength(document.getElementById(HtmlTextAreaMessageClientID).value) < 0)
	{
		if(i == maxMessages)
		{
			break;
		}	
		
		if (MaxLength == null)
		{
		    if (i == 1)
		        maxLen += 146;
		    else
		        maxLen += 153;
		}
		else
		{
		    maxLen += MaxLength;
		}
		
		i++;
	}

	if(LabelNumMessagesClientId != "")
	{
		document.getElementById(LabelNumMessagesClientId).innerHTML = i;
	}
	
	counter = maxLen - countLength(document.getElementById(HtmlTextAreaMessageClientID).value)
	
	if (counter < 0)
	{
		document.getElementById(LabelNumCharactersLeftClientId).innerHTML = 0;
		
		while(maxLen - countLength(document.getElementById(HtmlTextAreaMessageClientID).value) < 0)
		{
			document.getElementById(HtmlTextAreaMessageClientID).value = document.getElementById(HtmlTextAreaMessageClientID).value.substring(0, document.getElementById(HtmlTextAreaMessageClientID).value.length - 1);
		}
		
	}
	else
	{
		document.getElementById(LabelNumCharactersLeftClientId).innerHTML = counter;   
	}
	
	return true;
}

function checkLenWithLink(HtmlTextAreaMessageClientID, LabelNumCharactersLeftClientId, LabelNumMessagesClientId, MinusChars)
{
    var maxLen;
    var maxMessages;
    var MaxLength;
    
    MaxLength = null; //countLength(document.getElementById(MaxLengthId).value);
    
    if (MaxLength == null)
	{
	    maxLen = 160 - MinusChars;
	    maxMessages = 4;
	}
	else
	{
	    maxLen = MaxLength;
	    maxMessages = 1;
	}
	
	if(LabelNumMessagesClientId == "")
	{
		maxMessages = 1;
	}	

	var counter = 0;
	var i = 1;	 
	
	while(maxLen - countLength(document.getElementById(HtmlTextAreaMessageClientID).value) < 0)
	{
		if(i == maxMessages)
		{
			break;
		}	
		
		if (MaxLength == null)
		{
		    if (i == 1)
		        maxLen += (146 - MinusChars);
		    else
		        maxLen += (153 - MinusChars);
		}
		else
		{
		    maxLen += MaxLength;
		}
		
		i++;
	}

	if(LabelNumMessagesClientId != "")
	{
		document.getElementById(LabelNumMessagesClientId).innerHTML = i;
	}
	
	counter = maxLen - countLength(document.getElementById(HtmlTextAreaMessageClientID).value)
	
	if (counter < 0)
	{
		document.getElementById(LabelNumCharactersLeftClientId).innerHTML = 0;
		
		while(maxLen - countLength(document.getElementById(HtmlTextAreaMessageClientID).value) < 0)
		{
			document.getElementById(HtmlTextAreaMessageClientID).value = document.getElementById(HtmlTextAreaMessageClientID).value.substring(0, document.getElementById(HtmlTextAreaMessageClientID).value.length - 1);
		}
		
	}
	else
	{
		document.getElementById(LabelNumCharactersLeftClientId).innerHTML = counter;   
	}
	
	return true;
}

function countLength(str)
{
	var length = 0;
	
	for(var i = 0; i < str.length; i++)
	{
		if(str[i] == "^" || str[i] == "{" || str[i] == "}" || str[i] == "\\" || str[i] == "[" || str[i] == "]" || str[i] == "~" || str[i] == "|" || str[i] == "€")
		{
			length++;
		}
		
		length++;
	}	

	return length;
}

function clientValidateTabContainer(source, arguments)
{
//Checks to see if tha tabcontainer has any pages to delete
//Used in send.aspx.cs (btnDelPage)
//Patrik Norrgård 22.08.2007
	if(source.Tabs.Count == 0)
	{
		arguments.IsValid = false;
		return;
	}
	else if (source.ActiveTabIndex == 0)
	{
		arguments.IsValid = false;
		return;	
	}
	else
	{
		arguments.IsValid = true;
		return;
	}
	
}

function clientValidateURL(source, arguments)
{
//Performs client side validation of an url (http, https, wap et.c.)
//Added by Patrik 6.8.2007
	arguments.IsValid =  true;
	
	var urlStr = arguments.Value;
	if (urlStr.indexOf(" ")!=-1)
	{
	//	alert("Spaces are not allowed in a URL");
		arguments.IsValid =  false;
		return;
	}
	if(urlStr==""||urlStr==null)
	{
		arguments.IsValid =  false;
		return;
	}
	urlStr=urlStr.toLowerCase();
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var atom=validChars + '+';
	var urlPat=/^http:\/\/(\w*)\.([\-\+a-z0-9]*)\.(\w*)/;
	var matchArray=urlStr.match(urlPat);
	if (matchArray==null)
	{
		//alert("The URL seems incorrect \ncheck it begins with http://\n and it has 2 .'s");
		arguments.IsValid =  false;
		return;
	}
	var user=matchArray[2];
	var domain=matchArray[3];
	for (i=0; i<user.length; i++) 
	{
		if (user.charCodeAt(i)>127) 
		{
		//alert("This domain contains invalid characters.");
		arguments.IsValid =  false;
		return;
		}
	}
	for (i=0; i<domain.length; i++) 
	{
	if (domain.charCodeAt(i)>127) 
		{
		//alert("This domain name contains invalid characters.");
		arguments.IsValid =  false;
		return;
		}
	}
	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("The domain name does not seem to be valid.");
		arguments.IsValid =  false;
		return;
		}
	}
//	if (domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1)
//	{
//		//alert("The address must end in a well-known domain or two letter " + "country.");
//		arguments.IsValid =  false;
//		return;
//	}
}

function DisplayPanel(pnl)
{
	var ele = document.getElementById(pnl);
	var img = document.getElementById(pnl + '_img');
	
	if (ele != null)
	{
		if (ele.style.display == "none")
		{
			ele.style.display = "block";
			img.src = "../Images/collapse.gif";
		}
		else
		{
			ele.style.display = "none";
			img.src = "../Images/expand.gif";
		}
	}
}

function clientImageFileValidator(source, arguments)
{
    // isValid initial value is set to true
    arguments.IsValid = true;
    
    // get filename
    var fileNameArr = new Array();
    var fileName = "";
    var fileType = "";
    fileName = arguments.Value;
    fileName = fileName.toLowerCase();
    
    // create array containing valid filetypes
    var validFileTypes = new Array();
    validFileTypes[0] = "jpg";
    validFileTypes[1] = "jpeg";
    validFileTypes[2] = "gif";
    
    // split filename if not empty and get filename + filetype
    if (fileName != "")
    {
        fileNameArr = fileName.split(".");
        if (fileNameArr.length > 0)
        {
            fileType = fileNameArr[fileNameArr.length - 1];
            
            // IE fix
            if (navigator.appName == "Netscape")
            {
                fileName = fileNameArr[0];
            }
            else
            {
                fileNameArr = fileNameArr[0].split("\\");
                fileName = fileNameArr[fileNameArr.length - 1];
            }
        }
    }
    else
    {
        arguments.IsValid = false;
        return;
    }
    
    // check if filename and filetype is valid
    if (fileType != "")
    {
        var valid = false;
        
        // check filetype
        for (x in validFileTypes)
        {
            if (validFileTypes[x] == fileType)
            {
                valid = true;
            }
        }
        // check filename
        if (fileName.match('^[a-zA-Z0-9_åäöÅÄÖÜü\x20\x2D\xD8\xF8\xC6\xE6\xDF]+$') == null)
        {
            valid = false;
        }
        arguments.IsValid = valid;
    }
    else
    {
        arguments.IsValid = false;
    }
    return;
}

function clientVideoFileValidator(source, arguments)
{
    // isValid initial value is set to true
    arguments.IsValid = true;
    
    // get filename
    var fileNameArr = new Array();
    var fileName = "";
    var fileType = "";
    fileName = arguments.Value;
    fileName = fileName.toLowerCase();
    
    // create array containing valid filetypes
    var validFileTypes = new Array();
    validFileTypes[0] = "asf";
    validFileTypes[1] = "avi";
    validFileTypes[2] = "flv";
    validFileTypes[3] = "mov";
    validFileTypes[4] = "mpeg";
    validFileTypes[5] = "mpg";
    validFileTypes[6] = "mp4";
    validFileTypes[7] = "wmv";
    validFileTypes[8] = "3gp";
    
    // split filename if not empty and get filename + filetype
    if (fileName != "")
    {
        fileNameArr = fileName.split(".");
        if (fileNameArr.length > 0)
        {
            fileType = fileNameArr[fileNameArr.length - 1];
            
            // IE fix
            if (navigator.appName == "Netscape")
            {
                fileName = fileNameArr[0];
            }
            else
            {
                fileNameArr = fileNameArr[0].split("\\");
                fileName = fileNameArr[fileNameArr.length - 1];
            }
        }
    }
    else
    {
        arguments.IsValid = false;
        return;
    }
    
    // check if filename and filetype is valid
    if (fileType != "")
    {
        var valid = false;
        
        // check filetype
        for (x in validFileTypes)
        {
            if (validFileTypes[x] == fileType)
            {
                valid = true;
            }
        }
        // check filename
        if (fileName.match('^[a-zA-Z0-9_åäöÅÄÖÜü\x20\x2D\xD8\xF8\xC6\xE6\xDF]+$') == null)
        {
            valid = false;
        }
        arguments.IsValid = valid;
    }
    else
    {
        arguments.IsValid = false;
    }
    return;
}

function clientTextFileValidator(source, arguments)
{
    // isValid initial value is set to true
    arguments.IsValid = true;
    
    // get filename
    var fileNameArr = new Array();
    var fileName = "";
    var fileType = "";
    fileName = arguments.Value;
    fileName = fileName.toLowerCase();
    
    // create array containing valid filetypes
    var validFileTypes = new Array();
    validFileTypes[0] = "txt";
    
    // split filename if not empty and get filename + filetype
    if (fileName != "")
    {
        fileNameArr = fileName.split(".");
        if (fileNameArr.length > 0)
        {
            fileType = fileNameArr[fileNameArr.length - 1];
        }
    }
    else
    {
        arguments.IsValid = false;
        return;
    }
    
    // check if filename and filetype is valid
    if (fileType != "")
    {
        var valid = false;
        
        // check filetype
        for (x in validFileTypes)
        {
            if (validFileTypes[x] == fileType)
            {
                valid = true;
            }
        }
        arguments.IsValid = valid;
    }
    else
    {
        arguments.IsValid = false;
    }
    return;
}

function smsNumberValidator(source, arguments)
{
    // isValid initial value is set to true
    arguments.IsValid = true;
    
    // get telephone number
    var number;
    number = arguments.Value;
    
    // check if not empty
    if (number != "")
    {
        var valid = false;
        // check if a valid number is entered
        if (number.match('^\+{0,1}[1-9]{1}[0-9]{6}\d*$') == null)
        {
            valid = false;
        }
        arguments.IsValid = valid;
    }
    else
    {
        arguments.IsValid = false;
    }
    return;
}

function denyblankspace(event, name)
{
    var key = event.charCode;
    var textID = window.document.getElementById(name);
    
    if(event.keyCode == 32 || event.charCode == 32)
    {
        //keycode is INVALID
        textID.style.backgroundImage = "url('../Images/red_textbox_bg.png')";
        return false;
    }
    else
    {
        //keycode is OK
        textID.style.backgroundImage = "url('')";
        return true;
    }    
}