var loadedCarriertypes = new Object(); // Anv�nds som en map (i java) f�r att h�lla reda p� vilka b�rare som h�mtats fr�n servern, f�r att inte h�mta dem varje g�ng anv�ndaren klickar p� visa/d�lj

function showFromStart(carriertype, imgElem, pngNr, imgHolder, isdark, lang)
{
    document.getElementById(imgElem).onload = function(){doit(imgElem,imgHolder)};
    handleClick(document.getElementById('heightSetter' + carriertype),carriertype, imgElem, pngNr, imgHolder, isdark, true, lang);
}

function handleClick(elem, carriertype, imgElem, pngNr, imgHolder, isdark, loadFromStart, lang)
{
    if(document.getElementById(imgHolder).style.height == '')
        addToCookie(carriertype);            
    else
        removeFromCookie(carriertype);
        
    if(loadedCarriertypes['\''+carriertype+'\''] != 'laddad')
    {
        document.getElementById(imgElem).style.display = "none";
        document.getElementById(imgHolder).style.height = "50px";
        getPic(imgElem, pngNr, imgHolder, isdark, carriertype, lang);
        loadedCarriertypes['\''+carriertype+'\''] = 'laddad';
    }
    showHide(elem, loadFromStart, lang);
}

/* Called from identity */
function lookpreview(imgElem, imgHolder, pngNr, isdark, carriertype, lang)
{
    document.getElementById(imgElem).style.display = "none";
    document.getElementById(imgElem).onload = function(){doit(imgElem,imgHolder)};
    getpreviewpic(imgElem, pngNr, imgHolder, isdark, carriertype, lang);
}

/* Called from orderreview */
function orderpreview(imgElem, imgHolder, pngNr, isdark, carriertype, person, lang)
{
    document.getElementById(imgElem).style.display = "none";
    document.getElementById(imgElem).onload = function(){doit(imgElem,imgHolder)};
    getorderpreviewpic(imgElem, pngNr, imgHolder, isdark, carriertype, person, lang);
}


function getpreviewpic(imgElem, pngNr, imgHolder, isdark, carriertype, lang)
{
    pause(100); // needed to get different nocache-values when this function is called multiple times in a short time span
    var img = document.getElementById(imgElem);
    var url = unescape(location.href);
    var quick_preview = "";
    if(url.indexOf("lookquickpreview") != -1){
        quick_preview = "~qp=1";
    }
    if(isdark && carriertype == "1")
        img.setAttribute("src", ('/' + lang + '/servecustompreviewpng/whitelogo~nocache=' + (new Date()).getTime() + "~x" + quick_preview));
    else
        img.setAttribute("src", ('/' + lang + '/servecustompreviewpng/' + pngNr + '~nocache=' + (new Date()).getTime() + "~x" + quick_preview));
}

function getorderpreviewpic(imgElem, pngNr, imgHolder, isdark, carriertype, person, lang)
{
    pause(100); // needed to get different nocache-values when this function is called multiple times in a short time span
    var img = document.getElementById(imgElem);
    if(isdark && carriertype == "1")
        img.setAttribute("src", ('/' + lang + '/servecustompreviewpng/whitelogo~nocache=' + (new Date()).getTime() + "~" + person));
    else
        img.setAttribute("src", ('/' + lang + '/servecustompreviewpng/' + pngNr + '~nocache=' + (new Date()).getTime() + "~" + person));
}

function getPic(imgElem, pngNr, imgHolder, isdark, carriertype, lang)
{
    document.getElementById(imgHolder).className = "item_container_loading_" + lang;
    var img = document.getElementById(imgElem);
    var url = unescape(location.href);
    var quick_preview = "";
    if(url.indexOf("quick_look_preview") != -1){
        quick_preview = "~qp=1";
    }
    if(isdark && carriertype == "1")
    {
        img.setAttribute("src", ('/' + lang + '/servecustompng/whitelogo~nocache=' + (new Date()).getTime() + quick_preview));
    }
    else
    {
        img.setAttribute("src", ('/' + lang + '/servecustompng/' + pngNr + "~nocache=" + (new Date()).getTime() + quick_preview));
    }
}


function doit(imgElem, imgHolder)
{
    var img = document.getElementById(imgElem);
    var imgsource = img.getAttribute("src")

    var myImg = new Image;
    myImg.src = imgsource;
    img.parentNode.className = "item_container";

    var e = document.getElementById(imgHolder);
    if(e != null && ((imgsource.indexOf("servecustompng") != -1)||(imgsource.indexOf("servecustompreviewpng") != -1) ))
    {
        e.style.backgroundRepeat = "no-repeat";
        var browser = window.navigator.userAgent;
        var myHeight = img.height;
        if(browser.indexOf("MSIE") != -1) myHeight = myImg.height;
        document.getElementById(imgHolder).style.height = myHeight + "px";

        if((browser.indexOf("MSIE") != -1) && (browser.indexOf("MSIE 7") == -1))
        {
                e.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=" + imgsource + ",sizingMethod=crop)";
        }
		else 
		{
                e.style.backgroundImage = "url('" + imgsource + "')";
        }
    }
}


/*
  Called from look.rhtml when user clicks on "visa"/"d�lj"
*/
function setCookieAndShowHide(elem, carriertype, id, lang)
{
    if(document.getElementById(id).style.display == '')
    {
        addToCookie(carriertype);
    }
    else
    {
        removeFromCookie(carriertype);
    }
    showHide(elem, false, lang);
}

function setHeight(imgElem, elemname)
{
    var myImg = new Image;
    myImg.src = imgElem.getAttribute("src");
    var myheight = myImg.height;
    document.getElementById(elemname).style.height = myheight + "px";
    imgElem.style.display = "none";
}


function setCookie(name, state){
    var cookie = getCookie(name);
    document.cookie = name + "=" + clean(state) + ";path=/;"
}

/*
    Funktion som h�mtar inneh�llet i cookies
*/
function getCookie(name)
{
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1)
    {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    }
    else
    {
        begin += 2;
    }
    var end = document.cookie.indexOf(";", begin);
    if (end == -1)
    {
        end = dc.length;
    }
    return unescape(dc.substring(begin + prefix.length, end));
}

/**
*   Add an item to the opencarriers cookie
*/
function addToCookie(item)
{
    var cookie;
    cookie = getCookie('opencarriers');
    cookie = addIfNotExists(cookie, item);
    setCookie('opencarriers',cookie);
}

/**
 *  Remove an item from the opencarriers cookie
 */ 
function removeFromCookie(item)
{
    cookie = getCookie('opencarriers');
    cookie = removeIfExists(cookie, item)
    setCookie('opencarriers', cookie);
}

/*
*   Removes an item from the cookie if it exists
*/
function removeIfExists(cookie, item)
{
    var result = '';
    if(cookie)
    {
        cookieItems = cookie.split('x');
        for(var i = 0; i<cookieItems.length; i++)
        {
            if(cookieItems[i] && cookieItems[i] != '' && cookieItems[i] != item)
            {   
                result = result + "x" + cookieItems[i];
            } 
        }
    }
    if(result.length > 0 && result[result.length] != 'x')
        result = result + 'x';
    return result;
}

/*
*   Adds an item to a cookie if does not exist already
*/
function addIfNotExists(cookie, item)
{
    var result = '';
    var exists = 0;
    if(cookie)
    {
        cookieItems = cookie.split('x');
        for(var i = 0; i<cookieItems.length; i++)
        {
            if(cookieItems[i] == item)
            {
                exists = 1;
            } 
        }
        if(exists == 0)
            result = cookie + item;
        else
            result = cookie;
    }
    else
        result = "x" + item;
    if(result && result[result.length] != 'x')
        result = result + 'x';
    return result;
}


/*
    clean multiple separation chars 'x'
*/
function clean(str){
    do{ //Ta bort alla dubbla komma-tecken
        str = str.replace("xx", "x");
    }while(str.indexOf("xx")!=-1);
    return str;
}


function pause(ms) 
{
    date = new Date();
    var now = null;
    
    do{ 
        var now = new Date(); 
    }while(now-date < ms);
} 
