//
//Global function to use in javascript
//

(function ($) {
    $.fn.watermark = function (c, t) {
        var e = function (e) {
            var i = $(this);
            if (!i.val()) {
                var w = t || i.attr('title'), $c = $($("<div />").append(i.clone()).html().replace(/type=\"?password\"?/, 'type="text"')).val(w).addClass(c);
                i.replaceWith($c);
                $c.focus(function () {
                    $c.replaceWith(i); setTimeout(function () { i.focus(); }, 1);
                })
				.change(function (e) {
				    i.val($c.val()); $c.val(w); i.val() && $c.replaceWith(i);
				})
				.closest('form').submit(function () {
				    $c.replaceWith(i);
				});
            }
        };
        return $(this).live('blur change', e).change();
    };
})(jQuery);


function checkkey(e) {
    var key;

    if (window.event)
        key = window.event.keyCode; //ie
    else
        key = e.which; //firefox

    if (key == 13) {
        LoadSearch();
        return false;
    }
    else
        return true;
}

function LoadSearch() {
  if ($('#searchterm').val() != "") 
  {
      ShowLoadingBox();
      document.location.href = 'search.aspx?searchstring=' + encodeURIComponentNew($('#searchterm').val());
  }
  return false;
}




var BrowserDetect = {
    init: function() {
        this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
        this.version = this.searchVersion(navigator.userAgent)
				|| this.searchVersion(navigator.appVersion)
				|| "an unknown version";
        this.OS = this.searchString(this.dataOS) || "an unknown OS";
    },
    searchString: function(data) {
        for (var i = 0; i < data.length; i++) {
            var dataString = data[i].string;
            var dataProp = data[i].prop;
            this.versionSearchString = data[i].versionSearch || data[i].identity;
            if (dataString) {
                if (dataString.indexOf(data[i].subString) != -1)
                    return data[i].identity;
            }
            else if (dataProp)
                return data[i].identity;
        }
    },
    searchVersion: function(dataString) {
        var index = dataString.indexOf(this.versionSearchString);
        if (index == -1) return;
        return parseFloat(dataString.substring(index + this.versionSearchString.length + 1));
    },
    dataBrowser: [
			{ string: navigator.userAgent,
			    subString: "OmniWeb",
			    versionSearch: "OmniWeb/",
			    identity: "OmniWeb"
			},
			{
			    string: navigator.vendor,
			    subString: "Apple",
			    identity: "Safari"
			},
			{
			    prop: window.opera,
			    identity: "Opera"
			},
			{
			    string: navigator.vendor,
			    subString: "iCab",
			    identity: "iCab"
			},
			{
			    string: navigator.vendor,
			    subString: "KDE",
			    identity: "Konqueror"
			},
			{
			    string: navigator.userAgent,
			    subString: "Firefox",
			    identity: "Firefox"
			},
			{
			    string: navigator.vendor,
			    subString: "Camino",
			    identity: "Camino"
			},
			{		// for newer Netscapes (6+)
			    string: navigator.userAgent,
			    subString: "Netscape",
			    identity: "Netscape"
			},
			{
			    string: navigator.userAgent,
			    subString: "MSIE",
			    identity: "Explorer",
			    versionSearch: "MSIE"
			},
			{
			    string: navigator.userAgent,
			    subString: "Gecko",
			    identity: "Mozilla",
			    versionSearch: "rv"
			},
			{ 		// for older Netscapes (4-)
			    string: navigator.userAgent,
			    subString: "Mozilla",
			    identity: "Netscape",
			    versionSearch: "Mozilla"
			}
		],
    dataOS: [
			{
			    string: navigator.platform,
			    subString: "Win",
			    identity: "Windows"
			},
			{
			    string: navigator.platform,
			    subString: "Mac",
			    identity: "Mac"
			},
			{
			    string: navigator.platform,
			    subString: "Linux",
			    identity: "Linux"
			}
		]

};
BrowserDetect.init();

//------------------------------------------------------------
// popwindow - global popupfunktion med scrollbars
//------------------------------------------------------------
function popwindow(sUrl, sTitel, sHeight, sWidth) {
    var parameter = 'height=' + sHeight + ',width=' + sWidth +
		                ',left=200,top=250,scrollbars=yes,resizable=yes,status=yes'

    newWin = window.open(sUrl, sTitel, parameter);
    newWin.focus();
    return newWin;
}
//------------------------------------------------------------

//------------------------------------------------------------
// popdialog - global popup middle of screen like dialog
//------------------------------------------------------------
function popdialog(sUrl, sTitel, sHeight, sWidth) {

    var diatop = (screen.height - sHeight) / 2;
    var dialeft = (screen.width - sWidth) / 2;
    var parameter = 'height=' + sHeight + ',width=' + sWidth +
		                ',left=' + dialeft + ',top=' + diatop + ',scrollbars=yes,resizable=no'

    newWin = window.open(sUrl, sTitel, parameter);
    newWin.focus();
    return newWin;
}
//------------------------------------------------------------


//------------------------------------------------------------
// Cookie functions
//------------------------------------------------------------
var today = new Date();
var zero_date = new Date(0, 0, 0);
today.setTime(today.getTime() - zero_date.getTime());

var todays_date = new Date(today.getYear(), today.getMonth(), today.getDate(), 0, 0, 0);
var expires_date = new Date(todays_date.getTime() + (8 * 7 * 86400000));

//	alert(document.body.clientWidth);
//	alert(document.body.clientHeight);
Set_Cookie('ScreenWidth', screen.width);
Set_Cookie('ScreenHeight', screen.height);
Set_Cookie('ColorDepth', screen.colorDepth);

//------------------------------------------------------------
function Get_Cookie(name) {
    var start = document.cookie.indexOf(name + "=");
    var len = start + name.length + 1;
    if ((!start) && (name != document.cookie.substring(0, name.length))) return null;
    if (start == -1) return null;
    var end = document.cookie.indexOf(";", len);
    if (end == -1) end = document.cookie.length;
    return unescape(document.cookie.substring(len, end));
}
//------------------------------------------------------------
function Set_Cookie(name, value, expires, path, domain, secure) {
    document.cookie = name + "=" + escape(value) +
	        ((expires) ? ";expires=" + expires.toGMTString() : "") +
	        ((path) ? ";path=" + path : "") +
	        ((domain) ? ";domain=" + domain : "") +
	        ((secure) ? ";secure" : "");
}
//------------------------------------------------------------
function Delete_Cookie(name, path, domain) {
    if (Get_Cookie(name)) document.cookie = name + "=" +
	        ((path) ? ";path=" + path : "") +
	        ((domain) ? ";domain=" + domain : "") +
	        ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}
//------------------------------------------------------------
//------------------------------------------------------------
//------------------------------------------------------------



function ActivateSearch(sUrl, menuID, elementId) {
    var searchUrl;

    if (document.getElementById(elementId).value != '') {
        searchUrl = sUrl + '?MenuID=' + menuID + '&SearchText=' + escape(document.getElementById(elementId).value);

        document.location.href = searchUrl;
    }
}


function AddToValue(itemId) {
    if (document.getElementById(itemId) != NaN) {
        var itemValue = 0;
        itemValue = document.getElementById(itemId).value;

        if (itemValue != '') {
            itemValue++
        } else {
            itemValue = 1;
        }

        document.getElementById(itemId).value = itemValue;
    }
}

function SubFromValue(itemId) {
    if (document.getElementById(itemId) != NaN) {
        var itemValue = 0;
        itemValue = document.getElementById(itemId).value;

        if (itemValue != '') {
            itemValue--
        } else {
            itemValue = 0;
        }

        if (itemValue > 0) {
            document.getElementById(itemId).value = itemValue;
        } else {
            document.getElementById(itemId).value = '0';
        }
    }
}

//------------------------------------------------------------
// Function to show and hide div layer
//------------------------------------------------------------
function ShowHide(id) {
    obj = document.getElementsByTagName("div");

    if (obj[id].style.display == 'inline') {
        obj[id].style.display = 'none';
    }
    else {
        obj[id].style.display = 'inline';
    }
}
//------------------------------------------------------------

//------------------------------------------------------------
// Function to validate if text is numeric
//------------------------------------------------------------
function IsThisNumber(sText) {
    var ValidChars = "0123456789.,";
    var Char;

    for (i = 0; i < sText.length; i++) {
        Char = sText.charAt(i);

        if (ValidChars.indexOf(Char) == -1) {
            return false;
        }
    }
    return true;
}
//------------------------------------------------------------

//------------------------------------------------------------
// Function to validate numeric update of textbox
//------------------------------------------------------------
function UpdateQty(qtyElement) {
    var qtyCount = qtyElement.value;

    if (IsThisNumber(qtyCount)) {
        if (qtyCount < 0) {
            qtyElement.value = 0;
        }
    }
    else {
        qtyElement.value = 0;
    }
}
//------------------------------------------------------------

//------------------------------------------------------------
// Function to validate numeric update of textbox
//------------------------------------------------------------
function ReturnFalse() {
    return false;
}
//------------------------------------------------------------


//------------------------------------------------------------
// Function to prevent form submit on eneter
//------------------------------------------------------------	
function disableEnterKey(e) {
    var key;

    if (window.event)
        key = window.event.keyCode;     //IE
    else
        key = e.which;     //firefox

    if (key == 13)
        return false;
    else
        return true;
}
//------------------------------------------------------------


//------------------------------------------------------------
// Function to validate numeric update of textbox
//------------------------------------------------------------
function WaitFunc() {

}
//------------------------------------------------------------

//------------------------------------------------------------
// Function to validate numeric update of textbox
//------------------------------------------------------------	
function selectAll(textbox) {
    var tempval = eval(textbox)
    tempval.focus()
    tempval.select()
}
//------------------------------------------------------------



function HoverPointer(thiselement) {
    thiselement.style.cursor = 'pointer';
}



//------------------------------------------------------------
/* ***************************
** http://www.worldtimzone.com/res/encode/
**
** Most of this code was kindly 
** provided to me by
** Andrew Clover (and at doxdesk dot com)
** http://and.doxdesk.com/ 
** in response to my plea in my blog at 
** http://worldtimzone.com/blog/date/2002/09/24
** It was unclear whether he created it.
*/
//------------------------------------------------------------
function utf8(wide) {
    var c, s;
    var enc = "";
    var i = 0;
    while (i < wide.length) {
        c = wide.charCodeAt(i++);
        // handle UTF-16 surrogates
        if (c >= 0xDC00 && c < 0xE000) continue;
        if (c >= 0xD800 && c < 0xDC00) {
            if (i >= wide.length) continue;
            s = wide.charCodeAt(i++);
            if (s < 0xDC00 || c >= 0xDE00) continue;
            c = ((c - 0xD800) << 10) + (s - 0xDC00) + 0x10000;
        }
        // output value
        if (c < 0x80) enc += String.fromCharCode(c);
        else if (c < 0x800) enc += String.fromCharCode(0xC0 + (c >> 6), 0x80 + (c & 0x3F));
        else if (c < 0x10000) enc += String.fromCharCode(0xE0 + (c >> 12), 0x80 + (c >> 6 & 0x3F), 0x80 + (c & 0x3F));
        else enc += String.fromCharCode(0xF0 + (c >> 18), 0x80 + (c >> 12 & 0x3F), 0x80 + (c >> 6 & 0x3F), 0x80 + (c & 0x3F));
    }
    return enc;
}
//------------------------------------------------------------


//------------------------------------------------------------
var hexchars = "0123456789ABCDEF";
function toHex(n) {
    return hexchars.charAt(n >> 4) + hexchars.charAt(n & 0xF);
}
//------------------------------------------------------------

//------------------------------------------------------------
var okURIchars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-";
function encodeURIComponentNew(s) {
    s = utf8(s);
    var c;
    var enc = "";
    for (var i = 0; i < s.length; i++) {
        if (okURIchars.indexOf(s.charAt(i)) == -1)
            enc += "%" + toHex(s.charCodeAt(i));
        else
            enc += s.charAt(i);
    }
    return enc;
}
//------------------------------------------------------------


//------------------------------------------------------------
// function to preload a image
//------------------------------------------------------------
function PreLoadImage(imageSrc) {
    if (document.images) {
        preload_image = new Image(16, 16);
        preload_image.src = imageSrc;
    }
}
//------------------------------------------------------------


//------------------------------------------------------------
// Function to update values in basket for product
//------------------------------------------------------------
function DeleteFromConfig(configid) {
    document.getElementById('TopActionIFrame').src = 'DefaultUpdateValues.aspx?ConfigDelete=true&ConfigID=' + configid;
    document.location.href = document.location.href;
}
//------------------------------------------------------------

//------------------------------------------------------------
// Function to update values in basket for product
//------------------------------------------------------------		
function HideShowSmartChoiceProduct(SmartChoiceConfigID) {
    ShowHide('smartchoice_' + SmartChoiceConfigID);
}
//------------------------------------------------------------


//------------------------------------------------------------
// Function to update values in basket for product
//------------------------------------------------------------		
function HideShowOrderButton(basketProductCount) {

    if (document.getElementById('OrderButton') != null) {
        if (basketProductCount > 0) {
            document.getElementById('OrderButton').style.visibility = "visible";
        } else {
            document.getElementById('OrderButton').style.visibility = "hidden";
        }
    }

}
//------------------------------------------------------------

//------------------------------------------------------------
// Function to update values in basket for product
//------------------------------------------------------------	
function UpdateBasket(pid, qtyname, imageElem, evt) {
    document.getElementById('TopActionIFrame').src =
			'UpdateValues.aspx?UpdateType=addproducttobasket&qty=' +
			document.getElementById(qtyname).value + '&pid=' + pid;
}
//------------------------------------------------------------	


//------------------------------------------------------------
// Function to visual update info in basket
//------------------------------------------------------------	
function SetBasketInfo(basketInfo, basketCount) {
    if (document.getElementById('basket_productinfo') != null)
        document.getElementById('basket_productinfo').innerHTML = basketInfo;
    if (document.getElementById('BaketTabMenuItem') != null)
        document.getElementById('BaketTabMenuItem').innerHTML = basketCount;
}
//------------------------------------------------------------	

//------------------------------------------------------------
// Function to visual update info in basket
//------------------------------------------------------------	
function SetBasketProductListInfo(basketProductlistInfo) {
    if (document.getElementById('BasketProductListText') != null)
        document.getElementById('BasketProductListText').innerHTML = basketProductlistInfo;

    if (document.getElementById('BasketProductListTable') != null) {
        document.getElementById('BasketProductList').style.height = document.getElementById('BasketProductListTable').offsetHeight;
    }


}
//------------------------------------------------------------	

//------------------------------------------------------------
// Function to visual update info in basket
//------------------------------------------------------------		
function ShowInfoBlock(infoText, pid) {
    var fadeInBlockText = document.getElementById('fadeInBlockText')
    fadeInBlockText.innerHTML = infoText;

    if (pid == null) pid = 0;

    var offleft = 0;
    var offtop = 0;
    var x, y;

    if (window.innerHeight) { // all except Explorer
        x = window.innerWidth;
        y = window.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
        x = document.documentElement.clientWidth;
        y = document.documentElement.clientHeight;
    } else if (document.body) { // other Explorers
        x = document.body.clientWidth;
        y = document.body.clientHeight;
    }
    /*
    if (pid > 0) {
    var targetElement = 'Add_' + pid;
			
    if (BrowserDetect.browser == 'Explorer') 
    {
    offleft = (x / 2) - (document.getElementById('fadeInBlock').clientWidth / 2) ;
    offtop = (y / 2) ;
    } 
    else 
    {
    if (document.getElementById(targetElement) != null) 
    {
    offleft = document.getElementById(targetElement).offsetLeft - 10 - document.getElementById('fadeInBlock').clientWidth;
    offtop = document.getElementById(targetElement).offsetTop - 10;
    }
    else 
    {
    offleft = (x / 2) - (document.getElementById('fadeInBlock').clientWidth / 2) ;
    offtop = (y / 2) ;
    }
    }
    } else {*/
    offleft = (x / 2) - (document.getElementById('fadeInBlock').clientWidth / 2);
    offtop = (y / 2) - (document.getElementById('fadeInBlock').clientHeight / 2);
    //}

    document.getElementById('fadeInBlock').style.left = offleft + 'px';
    document.getElementById('fadeInBlock').style.top = offtop + 'px';

    if (pid > 0) {
      XSysFadeAndHide('fadeInBlock', 10, 100, '', offleft, offtop);
    } else {
        XSysSetOpacityNoPosition(100, 'fadeInBlock');
    }
}
//------------------------------------------------------------			

function ShowBasketAddBox(pid, qty) {
    //loading.gif
    var MsgText = "";
    var MsgInnerText = "";

    if (qty > 0) {
        MsgInnerText = "Din indk&#248;bskurv er opdateret.";
    } else {
        MsgInnerText = "Din favoritliste er opdateret.";
    }

    //if (BrowserDetect.browser == 'Explorer') 
    //{
    MsgText = MsgText + "<table style=\"height: 40px; width: 100%; border: 0px; background-color: #ffffff\"><tr valign=\"middle\"><td style=\"height: 100%;\" align=\"middle\">";
    MsgText = MsgText + "<strong>" + MsgInnerText + "</strong>";
    MsgText = MsgText + "<\/tr><\/td><\/table>";
    /*} else {
    MsgText = MsgText + "<table style=\"height: 46px; width: 100%; border: 0px; background-color: #ffffff\"><tr valign=\"middle\"><td style=\"height: 100%;\" align=\"middle\">";
    MsgText = MsgText + "<img src=\"Images/loading_static.gif\" bordr=\"0\" align=\"absmiddle\">&nbsp;<strong>Vent venligst</strong>";
    MsgText = MsgText + "<\/tr><\/td><\/table>";
    }*/
    //var MsgText = "Vent venligst";
    ShowInfoBlock(MsgText, pid);
}

function ShowLoadingBox() {
    //loading.gif
    var MsgText = "";

    //if (BrowserDetect.browser == 'Explorer') 
    //{
    MsgText = MsgText + "<table style=\"height: 40px; width: 100%; border: 0px; background-color: #ffffff\"><tr valign=\"middle\"><td style=\"height: 100%;\" align=\"middle\">";
    MsgText = MsgText + "<img src=\"Images/loading.gif\" bordr=\"0\" align=\"absmiddle\">&nbsp;<strong>Vent venligst</strong>";
    MsgText = MsgText + "<\/tr><\/td><\/table>";
    /*} else {
    MsgText = MsgText + "<table style=\"height: 46px; width: 100%; border: 0px; background-color: #ffffff\"><tr valign=\"middle\"><td style=\"height: 100%;\" align=\"middle\">";
    MsgText = MsgText + "<img src=\"Images/loading_static.gif\" bordr=\"0\" align=\"absmiddle\">&nbsp;<strong>Vent venligst</strong>";
    MsgText = MsgText + "<\/tr><\/td><\/table>";
    }*/
    //var MsgText = "Vent venligst";
    ShowInfoBlock(MsgText, 0);
  }




// function ShowProductInfoPopup(src, dest) {
//   var ctrl = document.getElementById(src);
//   // call server side method
//   PageMethods.GetContactName(ctrl.value, CallSuccess, CallFailed, dest);
// }

 // set the destination textbox value with the ContactName
 function CallSuccess(res, destCtrl) {
   var dest = document.getElementById(destCtrl);
   dest.innerHTML = res;
 }

 // alert message on some failure
 function CallFailed(res, destCtrl) {
   XSysFadeHide('ProductInfoPop');
   alert(res.get_message());
 }
 

  function HideProductInfoPopup() {
    XSysFadeHide('ProductInfoPop');
  }

function supportsOpacity(el) {
    if (el.style.opacity != undefined)
        return true;
    if (el.style.MozOpacity != undefined)
        return true;

    if (el.style.filter != undefined)
        return true;
    return false;
}

function getOpacity(nNode) {
    if (!nNode
			|| !nNode.style
			|| (!nNode.style.filter
			&& !nNode.style.opacity)) {
        return 0;
    }

    if (nNode.style.filter) {
        return parseInt(nNode.style.filter.substring(nNode.style.filter.indexOf("=") + 1), 10);
    }

    if (nNode.style.opacity) {
        return parseFloat(nNode.style.opacity) * 100;
    }
}

function XSysFadeInLoopNoPosition(opacity, endfade, id, offleft, offtop) {
    var el = document.getElementById(id);

    if (opacity > endfade) {
        return;
    }

    XSysSetOpacityNoPosition(opacity, id);

    opacity = opacity + 10;

    var func = "XSysFadeInLoopNoPosition(" + opacity + ", " + endfade + ", '" + id + "', " + offleft + ", " + offtop + ")";
    window.setTimeout(func, 20);
}

function XSysFadeInLoop(opacity, endfade, id, idtarget, offleft, offtop) {
    var el = document.getElementById(id);

    if (opacity > endfade) {
        return;
    }

    XSysSetOpacity(opacity, id, idtarget, offleft, offtop);

    opacity = opacity + 10;

    var func = "XSysFadeInLoop(" + opacity + ", " + endfade + ", '" + id + "', '" + idtarget + "', " + offleft + ", " + offtop + ")";
    window.setTimeout(func, 20);
}

function XSysFadeOutLoop(opacity, id) {
  var el = document.getElementById(id);

    if (opacity <= 0) {
        XSysSetOpacityNoPosition(0, id);
        return;
    }

    XSysSetOpacityNoPosition(opacity, id);

    opacity = opacity - 10;

    var func = "XSysFadeOutLoop(" + opacity + ", '" + id + "')";
    window.setTimeout(func, 20);
  }

function XSysFadeInAndFadeOutLoop(opacity, endfade, id, idtarget, offleft, offtop) {
    var el = document.getElementById(id);

    if (opacity > endfade) {
        window.setTimeout("XSysFadeOutLoop(" + opacity + ", '" + id + "')", 500);
        return;
    }

    XSysSetOpacityNoPosition(opacity, id);

    opacity = opacity + 10;

    var func = "XSysFadeInAndFadeOutLoop(" + opacity + ", " + endfade + ", '" + id + "', '" + idtarget + "', " + offleft + ", " + offtop + ")";
    window.setTimeout(func, 20);
}

function XSysSetOpacity(opacity, id, idtarget, offleft, offtop) {
    if (offleft == null) offleft = 0;
    if (offtop == null) offtop = 0;

    getleft = document.getElementById(idtarget).offsetLeft - 10;
    gettop = document.getElementById(idtarget).offsetTop - 10;

    el = document.getElementById(id).style;
    el.opacity = (opacity / 100);
    el.MozOpacity = (opacity / 100);
    el.KhtmlOpacity = (opacity / 100);
    el.filter = "alpha(opacity=" + opacity + ")";

    el.visibility = "visible";
    el.display = 'block';
    el.left = getleft - offleft + "px";
    el.top = gettop - offtop + "px";
}


function XSysSetOpacityNoPosition(opacity, id) {
    el = document.getElementById(id).style;
    el.opacity = (opacity / 100);
    el.MozOpacity = (opacity / 100);
    el.KhtmlOpacity = (opacity / 100);
    el.filter = "alpha(opacity=" + opacity + ")";
    //el.visibility = "visible";

    if (opacity == 0) {
      el.visibility = "hidden";
      el.display = 'none';
    } else {
    el.visibility = 'visible';
    el.position = 'absolute';
    el.display = 'block';
    }
}

function XSysFadeIn(id, startfade, endfade, idtarget, offleft, offtop) {
    XSysFadeInLoop(startfade, endfade, id, idtarget, offleft, offtop);
}

function XSysFadeHide(id) {
    XSysFadeOutLoop(100, id);
}

function XSysFadeAndHide(id, startfade, endfade, idtarget, offleft, offtop) {
    XSysFadeInAndFadeOutLoop(startfade, endfade, id, idtarget, offleft, offtop);
}


function findPos(obj) {
    var curleft = curtop = 0;
    if (obj.offsetParent) {
        curleft = obj.offsetLeft
        curtop = obj.offsetTop
        while (obj == obj.offsetParent) {
            curleft += obj.offsetLeft
            curtop += obj.offsetTop
        }
    }
    return [curleft, curtop];
}

function GetNodeHight(id) {
    var cloneElem = document.getElementById(id); //.cloneNode(false);
    //cloneElem.style = document.getElementById(id).style;

    var originalVisibility = cloneElem.style.visibility;
    var originalPosition = cloneElem.style.position;
    var originalDisplay = cloneElem.style.display;

    cloneElem.style.visibility = 'visible';
    cloneElem.style.position = 'absolute';
    cloneElem.style.display = 'block';
    var returnHeight = cloneElem.clientHeight;

    cloneElem.style.visibility = originalVisibility;
    cloneElem.style.position = originalPosition;
    cloneElem.style.display = originalDisplay;

    return returnHeight;
}

function GetNodeWidth(id) {
    var cloneElem = document.getElementById(id); //.cloneNode(false);
    //cloneElem.style = document.getElementById(id).style;

    var originalVisibility = cloneElem.style.visibility;
    var originalPosition = cloneElem.style.position;
    var originalDisplay = cloneElem.style.display;

    cloneElem.style.visibility = 'visible';
    cloneElem.style.position = 'absolute';
    cloneElem.style.display = 'block';
    var returnWidth = cloneElem.clientWidth;

    cloneElem.style.visibility = originalVisibility;
    cloneElem.style.position = originalPosition;
    cloneElem.style.display = originalDisplay;

    return returnWidth;
}

var ProductSpecs;
var ProductBasicInfo;
var ProductExtendSpecs;
var ProductExtendInfo;

function TroggleProductInfoTab(tabName) {
    document.getElementById('ContentSpecs').style.display = (tabName == 'ContentSpecs' ? 'block' : 'none');
    document.getElementById('ContentBasicInfo').style.display = (tabName == 'ContentBasicInfo' ? 'block' : 'none');
    document.getElementById('ContentExtendSpecs').style.display = (tabName == 'ContentExtendSpecs' ? 'block' : 'none');
    document.getElementById('ContentExtendInfo').style.display = (tabName == 'ContentExtendInfo' ? 'block' : 'none');

    document.getElementById('ContentSpecs').style.visibility = (tabName == 'ContentSpecs' ? 'visible' : 'hidden');
    document.getElementById('ContentBasicInfo').style.visibility = (tabName == 'ContentBasicInfo' ? 'visible' : 'hidden');
    document.getElementById('ContentExtendSpecs').style.visibility = (tabName == 'ContentExtendSpecs' ? 'visible' : 'hidden');
    document.getElementById('ContentExtendInfo').style.visibility = (tabName == 'ContentExtendInfo' ? 'visible' : 'hidden');

    if (ProductSpecs != null)
        ProductSpecs.className = (tabName == 'ContentSpecs' ? 'tabselected' : 'tab');

    if (ProductBasicInfo != null)
        ProductBasicInfo.className = (tabName == 'ContentBasicInfo' ? 'tabselected' : 'tab');

    if (ProductExtendSpecs != null)
        ProductExtendSpecs.className = (tabName == 'ContentExtendSpecs' ? 'tabselected' : 'tab');

    if (ProductExtendInfo != null)
        ProductExtendInfo.className = (tabName == 'ContentExtendInfo' ? 'tabselected' : 'tab');
}


//------------------------------------------------------------
PreLoadImage("images/loading.gif");
PreLoadImage("images/loading_static.gif");
//------------------------------------------------------------


function GetTopLeft(elm) {
  var x, y = 0;

  //set x to elm’s offsetLeft
  x = elm.offsetLeft;

  //set y to elm’s offsetTop
  y = elm.offsetTop;

  //set elm to its offsetParent
  elm = elm.offsetParent;

  while (elm != null) {

    x = parseInt(x) + parseInt(elm.offsetLeft);
    y = parseInt(y) + parseInt(elm.offsetTop);
    elm = elm.offsetParent;
  }

  return { Top: y, Left: x };
}


function GetTop(elm) {
  var x, y = 0;

  //set x to elm’s offsetLeft
  x = elm.offsetLeft;

  //set y to elm’s offsetTop
  y = elm.offsetTop;

  //set elm to its offsetParent
  elm = elm.offsetParent;

  while (elm != null) {

    x = parseInt(x) + parseInt(elm.offsetLeft);
    y = parseInt(y) + parseInt(elm.offsetTop);
    elm = elm.offsetParent;
  }

  return y;
}


function CloseAndShowAlert(win, strAlertMsg) {
  win.close();
  alert(strAlertMsg);
}


function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    if (results == null) return "";
    else return decodeURIComponent(results[1].replace(/\+/g, " "));
}


function closeFancyboxAndRefresh() {
    $.fancybox.close();
    window.location = window.location;
}

function closeFancybox() {
    $.fancybox.close();
}

function SetTopAndLeft(parentContainer, elementToSet, elementHeight) {
    var containerPosition;
    containerPosition = $(parentContainer).position();

    var top = (($(window).height() - elementHeight) / 2) + $(window).scrollTop() + "px";
    $(elementToSet).css("top", top);
    var left = (($(window).width() / 2) + 100) + "px";
    $(elementToSet).css("left", left);
}

function SetTopLeftTool(elementToSet, x, y) {
    
    $(elementToSet).css("top", y - 45);
    $(elementToSet).css("left", (($(window).width() / 2) - 30));
}

function RecalcProductImageSize(size, maxSize) {
    var oldwidth = size[0]['width'];
    var oldheight = size[0]['height'];

    if(oldwidth > maxSize || oldheight > maxSize)
    {
        if (oldwidth > oldwidth) {
            var h = maxSize;
            var w = Math.ceil(oldwidth / oldheight * maxSize);
        } else {
            var w = maxSize;
            var h = Math.ceil(oldheight / oldwidth * maxSize);
        }
        return { width: w, height: h };
    } else {
        return { width: oldwidth, height: oldheight };
    }
}


function getImgSize(imgSrc) {

    var newImg = new Image();
    newImg.src = imgSrc;
    var height = newImg.height;
    var width = newImg.width;
    var newsize = $(newImg).ready(function () {
        return { width: newImg.width, height: newImg.height };
    });

    return newsize;
}

function CreateDiv(cssClass) {
    var spanToAdd;

    spanToAdd = document.createElement('div');
    spanToAdd.className = cssClass;
    //spanToAdd.innerHTML = innerText;

    return spanToAdd;
}


function AddTHEAD(tableName) {
    var table = document.getElementById(tableName);
    if (table != null) {
        var head = document.createElement("THEAD");
        head.style.display = "table-header-group";
        head.appendChild(table.rows[0]);
        table.insertBefore(head, table.childNodes[0]);
    } 
} 
