var frmT = "";
var frmA = "";
var frm = null;

function SubmitToFrame(form, action, target)
//Tar bort viewstate och skickar specificerat form (som är runat=server) till en annan frame.
//Lägg till functionsanropet till ONSUBMIT, ange THIS som form.
{

    if (form == null)
        form = document.forms[0];

    frmT = form.target;
    frmA = form.action;
    frm = form;

    if (action != null)
        form.action = action;
    if (target != null)
        form.target = target;
    else
        form.target = "_self";
    if (form.__VIEWSTATE)
        form.__VIEWSTATE.disabled = true;

    form.submit();

    window.setTimeout(resetForm, 1)
    return false;
}
function redirectForm(form, url, target, addQS) {
    if (form == null)
        form = document.forms[0];

    var el = form.getElementsByTagName("INPUT");
    var qs = "";
    for (elind = 0; elind < el.length; elind++) {
        if (el[elind].name.substr(0, 2) != '__') {
            if (el[elind].type == 'radio' || el[elind].type == 'checkbox') {
                if (el[elind].checked) {
                    if (el[elind].name.length > 0) {
                        qs += el[elind].name;
                        qs += "=";
                        qs += el[elind].value;
                        qs += "&";
                    }
                }
            }
            else {
                if (el[elind].name.length > 0) {
                    qs += el[elind].name;
                    qs += "=";
                    qs += el[elind].value;
                    qs += "&";
                }
            }
        }
    }
    var el = form.getElementsByTagName("TEXTAREA");
    for (elind = 0; elind < el.length; elind++) {
        if (el[elind].name.length > 0) {
            qs += el[elind].name;
            qs += "=";
            qs += el[elind].value;
            qs += "&";
        }
    }
    var el = form.getElementsByTagName("SELECT");
    for (elind = 0; elind < el.length; elind++) {
        if (el[elind].name.length > 0) {
            qs += el[elind].name;
            qs += "=";
            qs += el[elind].selectedValue;
            qs += "&";
        }
    }
    if (target == '' || target == '_self') {
        document.location = url + '?' + qs + addQS;
    }
    else {
        var frame = eval('parent.' + target);
        frame.location.href = url + '?' + qs + addQS;
    }
}
function resetForm() {
    frm.target = frmT;
    frm.action = frmA;
    frm.__VIEWSTATE.disabled = false;
}
function getQueryString(id, frame) {
    try {
        var doc = null;
        if (frame != "undefined" && frame != null)
            doc = eval(frame);
        else
            doc = document;

        id = id.toLowerCase();

        var QS = doc.location.href.toLowerCase();
        var QS_from = QS.indexOf(id);
        if (QS_from > 0) {
            QS_from = QS.indexOf('=', QS_from) + 1;
            var QS_to = QS.indexOf('&', QS_from);
            if (QS_to < QS_from)
                return QS.substr(QS_from);
            else
                return QS.substr(QS_from, (QS_to - QS_from));
        }
        else
            return "";
    }
    catch (e) {
        alert(e.description)
        return "";
    }
}
function writeCookie(name, value, expires) {
    var cookie = name + "=" + value + ";";

    if (expires == null) {
        //4320000000 = 50 dygn i millisekunder
        var date = new Date();
        date.setTime(date.getTime() + (4320000000));
        expires = date.toGMTString();
    }
    else if (!isNaN(expires)) {
        var date = new Date();
        date.setTime(date.getTime() + (expires));
        expires = date.toGMTString();
    }
    cookie += " expires=" + expires + ";";

    cookie += " path=/";
    document.cookie = cookie;
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');

    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ')
            c = c.substring(1, c.length);

        if (c.indexOf(nameEQ) == 0) {
            return c.substring(nameEQ.length, c.length);
        }
    }
    return "";
}


/*ser till att URL får Name=newValue i sig. om Name finns sedan tidigare tas den och dess värde bort ur strängen.*/
function QSTR_replaceValue(URL, Name, newValue) {
    var i = URL.lastIndexOf('?')
    var myURL = ''
    var myStr = '';
    if (i != -1) {
        myURL = URL.substr(0, i)
        myStr = URL.substr(i + 1)
        var myArr = new Array()
        myArr = myStr.split('&')
        var valueExists = false;
        for (var i = 0; i < myArr.length; i++) {
            myArr[i] = myArr[i].split('=')

            if (myArr[i][0].toLowerCase() == Name.toLowerCase()) {
                myArr[i][1] = newValue
                valueExists = true
            }
            if (myArr[i].length == 1)
                myArr[i][1] = '';
        }
        if (!valueExists) {
            myArr[myArr.length] = new Array(2);
            myArr[myArr.length - 1][0] = Name;
            myArr[myArr.length - 1][1] = newValue;
        }
        myStr = ''
        for (var i = 0; i < myArr.length; i++) {
            if (myArr[i][0].length > 0)
                myStr += myArr[i][0] + '=' + myArr[i][1] + '&'
        }
        if (myStr.length > 0)
            myStr = myStr.substr(0, myStr.length - 1)

    }
    else {
        myStr = Name + '=' + newValue;
        myURL = URL
    }
    return myURL + '?' + myStr;
}

/* BEGIN GENERIC FORMVALIDATION */
/*
kolla intranätet extranät/arkiv/generisk formulärkoll för beskrivning. gör du några ändringar kan det vara bra att uppdatera texten där också


var rootHref='/'
if(document.location.href.toLowerCase().indexOf('http://localhost/')!=-1)
rootHref='/localhost/'
*/

var stdErrMsgDivMinWidth = 100;
var currentGroup = false;

function displayErrorMessage(element, message) {
    var stdErrMsgDiv = getStdErrorDiv();
    stdErrMsgDiv.innerHTML = message

    var fieldPos = getElementPosition(element)
    stdErrMsgDiv.style.top = fieldPos[0] + element.offsetHeight;
    stdErrMsgDiv.style.left = fieldPos[1];


    if (element.offsetWidth < stdErrMsgDivMinWidth)
        stdErrMsgDiv.style.width = stdErrMsgDivMinWidth;
    else
        stdErrMsgDiv.style.width = element.offsetWidth;

    stdErrMsgDiv.style.display = 'block';
    window.setTimeout('hideStdErrMsgDiv()', 2000);
    if (element.focus)
        element.focus();
    if (element.select)
        element.select();
}
function checkForm(form) {
    if (form) {
        form.action = QSTR_replaceValue(form.action, 'currentgroup', currentGroup);

        var returnValue = true;
        try {
            if (!checkFormBeforeCheck(form, currentGroup)) {
                return false;
            }
        }
        catch (e) { }

        for (var i = 0; i < form.length; i++) {
            var standardErorrMsg = true;
            var tmpErrorMsg = checkField(form[i])
            if (tmpErrorMsg != true) {
                try {
                    if (!checkFormOnFaliure(form, currentGroup, tmpReturnValue, form[i]))
                        standardErorrMsg = false;
                }
                catch (e) { }

                if (standardErorrMsg) {
                    //window.status=(tmpErrorMsg)
                    //form[i].style.borderColor='red';
                    //var stdErrMsgDiv=getStdErrorDiv();
                    //stdErrMsgDiv.innerHTML = tmpErrorMsg
                    //form[i].title=tmpErrorMsg;
                    //form[i].style.cursor='help';

                    //var fieldPos = getElementPosition(form[i])
                    //stdErrMsgDiv.style.top = fieldPos[0]+form[i].offsetHeight;
                    //stdErrMsgDiv.style.left = fieldPos[1];
                    //stdErrMsgDiv.style.width = form[i].offsetWidth;
                    //stdErrMsgDiv.style.display ='block';
                    //window.setTimeout('hideStdErrMsgDiv()',2000);
                    if (form[i].focus)
                        form[i].focus();
                    if (form[i].select)
                        form[i].select();
                    alert(tmpErrorMsg);
                    return false;
                }
                else {
                    form[i].style.borderColor = '';
                    form[i].title = '';
                    form[i].style.cursor = '';
                }
            }
            else
                form[i].style.borderColor = '';

        }
        try {
            if (!checkFormBeforeSubmit(form, currentGroup, returnValue))
                returnValue = false;
            else
                returnValue = true;
        }
        catch (e) { }


        return returnValue;
    }
    //no form
    return true;
}

function getElementPosition(inElement) {

    if (!inElement)
        return new Array(0, 0)
    var posY = 0;
    var PosX = 0;
    while (inElement) {
        //alert(inElement.nodeName +'\nTop:' +inElement.offsetTop +'\nLeft:' +inElement.offsetLeft)
        posY += inElement.offsetTop;
        PosX += inElement.offsetLeft;
        inElement = inElement.offsetParent
    }
    return new Array(posY, PosX)

}
function getStdErrorDiv() {
    var standardErrorMsgDiv = document.getElementById("standardErrorMsgDiv")
    if (!standardErrorMsgDiv) {
        standardErrorMsgDiv = document.createElement("DIV")
        standardErrorMsgDiv.id = "standardErrorMsgDiv";
        standardErrorMsgDiv.className = "stdErrMsgDiv";
        standardErrorMsgDiv = document.body.appendChild(standardErrorMsgDiv)
    }
    return standardErrorMsgDiv
}
function hideStdErrMsgDiv() {
    var standardErrorMsgDiv = document.getElementById("standardErrorMsgDiv")
    if (standardErrorMsgDiv)
        standardErrorMsgDiv.style.display = 'none';
}

function checkSingleField(field) {
    if (checkField(field) == true)
        field.style.borderColor = '';
    else
        field.style.borderColor = 'red';
}
function checkField(field) {
    var altOptions = loadAltOptions(field)
    if (altOptions) {
        var group = getAltOption(altOptions, 'group')
        if (group == currentGroup || (!currentGroup)) //if currentGroup not set - don't bother with groups
        {
            var re;
            if (getAltOption(altOptions, 'required') == 'yes' || (getAltOption(altOptions, 'required') != 'yes' && field.value.length > 0)) {
                var type = getAltOption(altOptions, 'type')
                if (type)
                    type = type.toLowerCase()

                if (field.value.length != 0) {
                    switch (type) {
                        case 'email':
                            re = /^[a-z0-9]([a-z0-9_\-\.]*)@([a-z0-9_\-\.]*)(\.[a-z]{2,4}(\.[a-z]{2}){0,2})$/i
                            if (field.value.search(re) != -1)
                                return true;
                            break;
                        case 'string':
                            re = /\w+/i
                            if (field.value.search(re) != -1)
                                return true;
                            break;
                        case 'notempty':
                            if (field.value.length > 1)
                                return true;
                            break;
                        case 'integer':
                            re = /(^\d\d*$)/
                            if (field.value.search(re) != -1)
                                return true;
                            //re = /(^-?\d\d*$)/ //tillåt negativa heltal
                            break;
                        case 'phone':
                            re = /([0-9\(\)+ \-\/])$/
                            if (field.value.search(re) != -1)
                                return true;
                            break;
                        case 'numeric':
                            re = /([0-9\.\,\-])$/
                            if (field.value.search(re) != -1)
                                return true;
                            break;
                        case 'socialid':
                            var result = 0, s2 = 0, i = 0
                            var text = field.value.replace(/\D/g, "");
                            if (text.search(/\d{6}\d{4}/) == 0 && checkDate(text.substring(0, 6))) {
                                if (text.search(/\d{6}0{4}/) == 0) //utländska människor som inte har de fyra sista siffrorna kan fylla i fyra nolor istället
                                {
                                    field.value = text;
                                    return true;
                                }
                                for (i = 0; i < text.length - 1; i++)		//gör t o m näst sista siffran.
                                {
                                    s = parseInt(text.substr(i, 1)); //ta siffra
                                    if (i % 2 == 0)								//jämnt delbar med 2
                                        (s >= 5) ? s2 = (((s - 5) * 2) + 1) : s2 = (s * 2); 			// 5 eller högre -> dra av 5, multiplicera med 2 och lägg till 1. // lägre -> multiplicera med 2
                                    else											//ej jämnt delbar med 2
                                        s2 = s;
                                    result = result + s2; 				//lägg siffra till resultat			
                                }
                                if (result % 10 != 0)
                                    result = 10 - (result % 10); 				//resultat modulus 10 = entalssiffra.  //10 minus resultat = avstånd till närmsta högre 10-tal
                                else
                                    result = 0;
                                s = parseInt(text.substr(i, 1));
                                if (s == result) {
                                    field.value = text
                                    return true;
                                }
                            }
                            break;
                        case 'time':

                            var testvalue = field.value.replace(/\D/g, '')
                            while (testvalue.length < 4)
                                testvalue += '0';
                            if (testvalue.length == 4) {
                                var hour = testvalue.substr(0, 2)
                                var minute = testvalue.substr(2, 2)
                                if (minute < 59 && hour < 23) {
                                    field.value = addZero(hour, 2) + ':' + addZero(minute, 2);
                                    return true;
                                }
                            }
                            break;
                        case 'date':
                            var testvalue = checkDate(field.value.replace(/\D/g, ''))
                            if (testvalue) {
                                field.value = testvalue
                                return true;
                            }
                            break;
                        case 'select':
                            if (field.selectedIndex > 0)
                                return true;
                            break;
                        case 'radio':
                        case 'checkbox':
                            var rblist = eval('field.form.' + field.name)
                            if (rblist) {
                                for (var i = 0; i < rblist.length; i++) {
                                    if (rblist[i].checked)
                                        return true;
                                }
                            }
                            else
                                return true;
                            break;
                        default:
                            //window.status = 'Validation of ' + type + ' is not implemented'
                            return true;
                    }
                }

                var errmsg = getAltOption(altOptions, 'errmsg')

                if (errmsg)
                    return errmsg;
                else
                    return 'The field must be a valid ' + type;

            }

        }

    }
    return true;
}

function checkDate(inValue) //used by checkField for dates and socialid
{
    var inValue = inValue.replace(/\D/g, '')
    if (inValue.length == 6)
        inValue = '20' + inValue
    var year = inValue.substr(0, 4)
    var month = inValue.substr(4, 2) - 1
    var day = inValue.substr(6, 8)
    var inValue = new Date(year, month, day)

    if ((year == inValue.getFullYear() && month == inValue.getMonth() && day == inValue.getDate()))
        return year + '-' + addZero(month + 1, 2) + '-' + addZero(day, 2);
    else
        return false;

}

function loadAltOptions(field) {
    var alt
    if (field.getAttribute)
        alt = field.getAttribute('alt');
    else {
        alt = field.alt;
    }
    if (alt) {
        alt = alt.replace(/\s*;\s*/g, ';')
        alt = alt.replace(/\s*:\s*/g, ':')
        if (alt.length > 0 && alt.indexOf(':') > 0) {
            var altOptions = alt.split(/;/)
            for (var i = 0; i < altOptions.length; i++) {
                if (altOptions[i].indexOf(':') != -1)
                    altOptions[i] = altOptions[i].split(':');
                else { //remove empty keys
                    altOptions.splice(i, 1)
                    i--;
                }
            }
            return altOptions
        }
    }
    return false;
}


function getAltOption(altOptions, name) {
    for (var i = 0; i < altOptions.length; i++) {
        if (altOptions[i][0] == name)
            return altOptions[i][1];
    }
    return false;
}

function addZero(number, digits) {
    number = '0000000000000000000000000000000000000000' + number
    return (number).substr((number).length - digits);
}
/* END GENERIC FORMVALIDATION */

//v1.7
// Flash Player Version Detection
// Detect Client Browser type
// Copyright 2005-2007 Adobe Systems Incorporated.  All rights reserved.
var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

function ControlVersion() {
    var version;
    var axo;
    var e;

    // NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry

    try {
        // version will be set for 7.X or greater players
        axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
        version = axo.GetVariable("$version");
    } catch (e) {
    }

    if (!version) {
        try {
            // version will be set for 6.X players only
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");

            // installed player is some revision of 6.0
            // GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
            // so we have to be careful. 

            // default to the first public version
            version = "WIN 6,0,21,0";

            // throws if AllowScripAccess does not exist (introduced in 6.0r47)		
            axo.AllowScriptAccess = "always";

            // safe to call for 6.0r47 or greater
            version = axo.GetVariable("$version");

        } catch (e) {
        }
    }

    if (!version) {
        try {
            // version will be set for 4.X or 5.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
            version = axo.GetVariable("$version");
        } catch (e) {
        }
    }

    if (!version) {
        try {
            // version will be set for 3.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
            version = "WIN 3,0,18,0";
        } catch (e) {
        }
    }

    if (!version) {
        try {
            // version will be set for 2.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
            version = "WIN 2,0,0,11";
        } catch (e) {
            version = -1;
        }
    }

    return version;
}

// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer() {
    // NS/Opera version >= 3 check for Flash plugin in plugin array
    var flashVer = -1;

    if (navigator.plugins != null && navigator.plugins.length > 0) {
        if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
            var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
            var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
            var descArray = flashDescription.split(" ");
            var tempArrayMajor = descArray[2].split(".");
            var versionMajor = tempArrayMajor[0];
            var versionMinor = tempArrayMajor[1];
            var versionRevision = descArray[3];
            if (versionRevision == "") {
                versionRevision = descArray[4];
            }
            if (versionRevision[0] == "d") {
                versionRevision = versionRevision.substring(1);
            } else if (versionRevision[0] == "r") {
                versionRevision = versionRevision.substring(1);
                if (versionRevision.indexOf("d") > 0) {
                    versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
                }
            }
            var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
        }
    }
    // MSN/WebTV 2.6 supports Flash 4
    else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
    // WebTV 2.5 supports Flash 3
    else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
    // older WebTV supports Flash 2
    else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
    else if (isIE && isWin && !isOpera) {
        flashVer = ControlVersion();
    }
    return flashVer;
}

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision) {
    versionStr = GetSwfVer();
    if (versionStr == -1) {
        return false;
    } else if (versionStr != 0) {
        if (isIE && isWin && !isOpera) {
            // Given "WIN 2,0,0,11"
            tempArray = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
            tempString = tempArray[1]; 		// "2,0,0,11"
            versionArray = tempString.split(","); // ['2', '0', '0', '11']
        } else {
            versionArray = versionStr.split(".");
        }
        var versionMajor = versionArray[0];
        var versionMinor = versionArray[1];
        var versionRevision = versionArray[2];

        // is the major.revision >= requested major.revision AND the minor version >= requested minor
        if (versionMajor > parseFloat(reqMajorVer)) {
            return true;
        } else if (versionMajor == parseFloat(reqMajorVer)) {
            if (versionMinor > parseFloat(reqMinorVer))
                return true;
            else if (versionMinor == parseFloat(reqMinorVer)) {
                if (versionRevision >= parseFloat(reqRevision))
                    return true;
            }
        }
        return false;
    }
}

function AC_AddExtension(src, ext) {
    if (src.indexOf('?') != -1)
        return src.replace(/\?/, ext + '?');
    else
        return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) {
    var str = '';
    if (isIE && isWin && !isOpera) {
        str += '<object ';
        for (var i in objAttrs) {
            str += i + '="' + objAttrs[i] + '" ';
        }
        str += '>';
        for (var i in params) {
            str += '<param name="' + i + '" value="' + params[i] + '" /> ';
        }
        str += '</object>';
    }
    else {
        str += '<embed ';
        for (var i in embedAttrs) {
            str += i + '="' + embedAttrs[i] + '" ';
        }
        str += '> </embed>';
    }
    if (AC_FL_ContentContainer == null)
        document.write(str);
    else {
        document.getElementById(AC_FL_ContentContainer).style.display = "";
        document.getElementById(AC_FL_ContentContainer).innerHTML = str;
    }
}
var AC_FL_ContentContainer = null;
function AC_FL_RunContent() {
    var ret =
    AC_GetArgs
    (arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
    AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent() {
    var ret =
    AC_GetArgs
    (arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
    AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType) {
    var ret = new Object();
    ret.embedAttrs = new Object();
    ret.params = new Object();
    ret.objAttrs = new Object();
    for (var i = 0; i < args.length; i = i + 2) {
        var currArg = args[i].toLowerCase();

        switch (currArg) {
            case "classid":
                break;
            case "pluginspage":
                ret.embedAttrs[args[i]] = args[i + 1];
                break;
            case "src":
            case "movie":
                args[i + 1] = AC_AddExtension(args[i + 1], ext);
                ret.embedAttrs["src"] = args[i + 1];
                ret.params[srcParamName] = args[i + 1];
                break;
            case "onafterupdate":
            case "onbeforeupdate":
            case "onblur":
            case "oncellchange":
            case "onclick":
            case "ondblClick":
            case "ondrag":
            case "ondragend":
            case "ondragenter":
            case "ondragleave":
            case "ondragover":
            case "ondrop":
            case "onfinish":
            case "onfocus":
            case "onhelp":
            case "onmousedown":
            case "onmouseup":
            case "onmouseover":
            case "onmousemove":
            case "onmouseout":
            case "onkeypress":
            case "onkeydown":
            case "onkeyup":
            case "onload":
            case "onlosecapture":
            case "onpropertychange":
            case "onreadystatechange":
            case "onrowsdelete":
            case "onrowenter":
            case "onrowexit":
            case "onrowsinserted":
            case "onstart":
            case "onscroll":
            case "onbeforeeditfocus":
            case "onactivate":
            case "onbeforedeactivate":
            case "ondeactivate":
            case "type":
            case "codebase":
            case "id":
                ret.objAttrs[args[i]] = args[i + 1];
                break;
            case "width":
            case "height":
            case "align":
            case "vspace":
            case "hspace":
            case "class":
            case "title":
            case "accesskey":
            case "name":
            case "tabindex":
                ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i + 1];
                break;
            default:
                ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i + 1];
        }
    }
    ret.objAttrs["classid"] = classid;
    if (mimeType) ret.embedAttrs["type"] = mimeType;
    return ret;
}

function writeFlashTag(Codebase, Width, Height, Align, Wmode, ID, BgColor, AllowScriptAccess, Movie, requiredMajorVersion, requiredMinorVersion, requiredRevision, alternateContentId, flashVars, writeToContainer) {
    var hasRightVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
    if (hasRightVersion) {  // if we've detected an acceptable version
        // embed the flash movie
        if (writeToContainer != null && writeToContainer != "" && writeToContainer != undefined)
            AC_FL_ContentContainer = writeToContainer;
        else
            AC_FL_ContentContainer = null;
        
        AC_FL_RunContent(
			'codebase', Codebase,
			'width', Width,
			'height', Height,
			'src', ID,
			'quality', 'high',
			'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
			'align', Align,
			'play', 'true',
			'loop', 'true',
			'scale', 'showall',
			'wmode', Wmode,
			'devicefont', 'false',
			'id', ID,
			'bgcolor', BgColor,
			'name', ID,
			'menu', 'true',
			'allowScriptAccess', AllowScriptAccess,
			'allowFullScreen', 'false',
			'movie', Movie,
			'salign', '',
			'flashVars', flashVars
			); //end AC code
    } else {  // flash is too old or we can't detect the plugin
        if (document.getElementById(alternateContentId))
            document.getElementById(alternateContentId).style.display = '';  // insert non-flash content
    }
}

function openImagePreview(url) {
    try {
        if (picturePreview!=undefined) {
            picturePreview(url);
            return false;
        }
    }
    catch (e) {
    }

    window.open(url, "Image", "top=100,left=100,width=750,height=750,status=0,toolbar=0,menubar=0,scrollbars=1,resizable=1", true);
    return false;
}
/************************************************************************************************************
Frame-resize
************************************************************************************************************/
var monitor_height = 0;
var monitor_width = 0;
var monitor_minheight = 0;
var monitor_minwidth = 0;
var monitor_interval = null;
var monitor_id = null;
function MonitorFrameContent(frameId, minHeight, minWidth) {
    if (monitor_id == null) {
        if (frameId != null) {
            monitor_minwidth = minWidth;
            monitor_minheight = minHeight;
            monitor_id = frameId;
        }
        else
            alert("Error in AutoResizeIFrame: no frameId are set!")
    }
    else if (frameId != null) {
        alert("VARNING!!\nAutoResizeIFrame can only handle one frame on the page!")
    }

    var iframeDoc = null;
    try {
        if (document.all)
            iframeDoc = document.getElementById(monitor_id).contentWindow.document;
        else
            iframeDoc = document.getElementById(monitor_id).contentDocument;
    }
    catch (e) {
        alert("Error occured in AutoResizeIFrame: " + e.message + "\nAutoResizeIFrame does not work on cross domains!");
        return false;
    }
    if (!iframeDoc) {
        setTimeout(MonitorFrameContent, 250);
    }
    else {
        monitor_interval = setInterval(MonitorCheckSize, 1000);
    }
}
function MonitorCheckSize() {
    try {
        var tW = 0;
        var tH = 0;
        var monIfrm = document.getElementById(monitor_id);

        if (document.all) {
            tW = monIfrm.contentWindow.document.body.scrollWidth;
            tH = monIfrm.contentWindow.document.body.scrollHeight;
        }
        else {
            tW = monIfrm.contentDocument.body.offsetWidth;
            tH = monIfrm.contentDocument.body.offsetHeight;
            //tW=monIfrm.contentDocument.body.scrollWidth;
            //tH=monIfrm.contentDocument.body.scrollHeight;
        }
        if (monitor_minwidth > tW)
            tW = monitor_minwidth;
        if (monitor_minheight > tH)
            tH = monitor_minheight;

        if (tW > 0 && tH > 0 && (monitor_height != tH || monitor_width != tW)) {
            monitor_height = tH;
            monitor_width = tW;
            //monIfrm.style.width=tW+'px';
            monIfrm.style.height = tH + 'px';
        }
    }
    catch (e) {
        //alert("Error occured: " + e.message + "\nCoreFunctions.js line:972");
    }
}
function loadStatisticSizes(prefix) {
    var sizeScreen = "";
    var sizeWindow = "";
    try {
        if (parseInt(navigator.appVersion) > 3) {
            sizeScreen = screen.width + "x" + screen.height;
        }
        else if (navigator.appName == "Netscape" && parseInt(navigator.appVersion) == 3 && navigator.javaEnabled()) {
            var jToolkit = java.awt.Toolkit.getDefaultToolkit();
            var jScreenSize = jToolkit.getScreenSize();
            sizeScreen = jScreenSize.width + "x" + jScreenSize.height;
        }
        else {
            sizeScreen = "unknown"
        }
    }
    catch (e) {
        sizeScreen = e.message;
    }

    try {
        if (typeof (window.innerWidth) == 'number') {
            //Non-IE
            sizeWindow = window.innerWidth + "x" + window.innerHeight;
        }
        else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
            //IE 6+ in 'standards compliant mode'
            sizeWindow = document.documentElement.clientWidth + "x" + document.documentElement.clientHeight;
        }
        else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
            //IE 4 compatible
            sizeWindow = document.body.clientWidth + "x" + document.body.clientHeight;
        }
    }
    catch (e) {
        sizeWindow = e.message;
    }
    document.getElementById(prefix+"_statistics_screen").value = sizeScreen;
    document.getElementById(prefix+"_statistics_window").value = sizeWindow;
}
function tN(element) //toggleNode
{
    while (element) {
        switch (element.nodeName) {
            case 'SPAN':
                if (element.innerHTML == '+')
                    element.innerHTML = '-';
                else
                    element.innerHTML = '+';
                break;
            case 'UL':
                if (element.style.display == '')
                    element.style.display = 'none';
                else
                    element.style.display = '';
                break;
        }
        element = element.nextSibling;
    }
}
function tA() {
    var ulObj = document.getElementById("debugXMLViewer").childNodes[1].childNodes[0];
    var spanList = ulObj.getElementsByTagName('SPAN');
    for (var x = 0; x != spanList.length; x++)
        tN(spanList[x]);
}
function tO(id) {
    if (!document.getElementById("debugXMLViewer")) {
        var nd = document.createElement("div");

        nd.style.position = "absolute";
        nd.style.top = "25px";
        nd.style.left = "25px";
        nd.id = "debugXMLViewer";

        document.body.appendChild(nd);
    }
    document.getElementById("debugXMLViewer").style.display = "";
    document.getElementById("debugXMLViewer").innerHTML = document.getElementById(id).innerHTML;
    document.getElementById("debugXMLViewer").focus();
}
function tC() {
    document.getElementById("debugXMLViewer").style.display = "none";
}
