﻿// JScript File


function AddLogText(_Text)
{
    var logline = document.createElement("div");
    logline.innerText = _Text;
    document.getElementById("log").appendChild(logline);
    logline.scrollIntoView();
}

////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////

function MainTab_onmouseenter(_TabElement)
{
    _TabElement.style.backgroundImage = "url(../Media/images/tab_hp_over.gif)";
    _TabElement.style.color = "darkgreen";
    _TabElement.style.paddingTop = "4px";
}

function MainTab_onmouseout(_TabElement)
{
    _TabElement.style.backgroundImage = "url(../Media/images/tab_hp.gif)";
    _TabElement.style.color = "";
    _TabElement.style.paddingTop = "";
}


function SectionButton_onmouseenter(_Element)
{
    _Element.src = _Element.src.split(".gif")[0] + "_over.gif";
}

function SectionButton_onmouseleave(_Element)
{
    _Element.src = _Element.src.split("_over.gif")[0] + ".gif";
}

function SectionButton_onmouseenter(_Element)
{
    _Element.src = _Element.src.split(".gif")[0] + "_over.gif";
}

function SectionButton_onmouseleave(_Element)
{
    _Element.src = _Element.src.split("_over.gif")[0] + ".gif";
}

/////////////////////////////////////
// arrows

function arrow_left_onmouseenter(_ArrowElement)
{
    if(!arrow_disabled(_ArrowElement)){
        _ArrowElement.src = "../Media/images/arrow_right_over.jpg";
    }
}

function arrow_left_onmouseout(_ArrowElement) 
{
    if(!arrow_disabled(_ArrowElement)){
        _ArrowElement.src = "../Media/images/arrow_right.jpg";
    }
}

function arrow_right_onmouseenter(_ArrowElement)
{
    if(!arrow_disabled(_ArrowElement)){
        _ArrowElement.src = "../Media/images/arrow_left_over.jpg";
    }
}

function arrow_right_onmouseout(_ArrowElement) 
{
    if(!arrow_disabled(_ArrowElement)){
        _ArrowElement.src = "../Media/images/arrow_left.jpg"; 
    }
}
function arrow_disabled(_ArrowElement){
    if(_ArrowElement.disabled){
        if(_ArrowElement.disabled==true)
            return true;
    }else{
        if(_ArrowElement.getAttribute("disabled")){
            if(String(_ArrowElement.getAttribute("disabled"))=="true")
                return true;
        }
    }
    return false;
}

/////////////////////////////////////
// popup

var Popup;
var PopupDataElement;

function datacell_onmouseout()
{   
    if (Popup==null || Popup==undefined) return;
    
    // cheked if the element is a popup or a data cell
	function isPopupDataElement(_CheckedElement)
	{
	    if (_CheckedElement==undefined) return false;
	    var EventElement = _CheckedElement;
	    for (; document.documentElement.uniqueID!=EventElement.uniqueID && 
	    EventElement.className!="style_DataCell" && EventElement.className!="style_Popup"; 
	    EventElement=EventElement.parentNode);
	
	    if (EventElement.uniqueID==PopupDataElement.uniqueID) return true;
	    if (EventElement.uniqueID==Popup.uniqueID) return true;
	
	    return false;
	}
	
	if (isPopupDataElement(event.toElement)) return;

	function HidePopup()
	{
	    //Popup.removeNode(true);
	    Popup.style.display = 'none';
	    Popup = null;
	}
	HidePopup();
}

function doSomething()
{
//    var waitFlag = true;

//    while(waitFlag)
//    {
//        setTimeout(" waitFlag = false; ",  2 * 1000);
//    }
}

//functions used for the rating in the popup
function EmphaseStar(objStar)
{
    if (objStar != null && objStar != 'undefined')
    {
        var iCurrentStar = parseInt(objStar.id);
        var StarArray = objStar.parentNode.getElementsByTagName('span');
        
        for (Index=0;Index<StarArray.length; Index++)
        {
            if ((Index+1)<=iCurrentStar)
                StarArray[4-Index].className = "ratingStar filledRatingStar";
            else
                StarArray[4-Index].className = "ratingStar emptyRatingStar";
        }
    }
}

function resetStars(objStar)
{
    if (objStar != null && objStar != 'undefined')
    {
        var StarArray = objStar.parentNode.getElementsByTagName('span');
        
        for (Index=0;Index<StarArray.length; Index++)
        {
           StarArray[Index].className = "ratingStar emptyRatingStar";
        }
     }
}

function RateProduct(objRating)
{
    if (objRating != null && objRating != 'undefined')
    {
        if (Popup == null )
        return;
        
        document.getElementById('lblThanks').style.display = "";
        document.getElementById('divRating').style.display = "none";
        Popup.setAttribute("Rated", "1");
        
        var x = MasterPage.UpdateProductRating(Popup.getAttribute("ProductID"), objRating.id).value;
        
     }
}
function AddTo(type)
{
     
    if (Popup == null )
        return;
        
    var oProductID = Popup.getAttribute("ProductID");
    var sRezult = "";
    if (type == 0)
    {
        //call add to basket
         sRezult = MasterPage.AddProductToCart(oProductID).value;
    }
    else
        if (type == 1)
        {
           //call add to wishlist
           sRezult = MasterPage.AddProductToWishList(oProductID).value;
        }
        
    if (sRezult == "") {
        if (type == 0){
            window.location = "WishListAndShoppingCart.aspx?BasketType=Primary";
        }
        else{
            window.location.reload();
        }
    }
    else 
        alert(sRezult);
}
function AddTo(type,oProductID)
{
     
    //var oProductID = Popup.getAttribute("ProductID");
    var sRezult = "";
    if (type == 0)
    {
        //call add to basket
         sRezult = MasterPage.AddProductToCart(oProductID).value;
    }
    else
        if (type == 1)
        {
           //call add to wishlist
           sRezult = MasterPage.AddProductToWishList(oProductID).value;
        }
        
    if (sRezult == "") {
        if (type == 0){
            window.location = "WishListAndShoppingCart.aspx?BasketType=Primary";
        }
        else{
            window.location.reload();
        }
    }
    else 
        alert(sRezult);
}
//end functions used for the rating in the popup

function CreateContent()
{
    if (Popup!=null && Popup!=undefined) return;

    var EventElement = event.srcElement;

    while(EventElement.id != 'div_Container')
    {
        EventElement=EventElement.parentNode;
    }
  
    if (EventElement.uniqueID==document.documentElement.uniqueID) return;

    PopupDataElement = EventElement;
    Popup = EventElement.lastChild;
    if (Popup == null )
        return;
    var sProductData = MasterPage.GetProductInfo(Popup.getAttribute("ProductID"), Popup.getAttribute("CategoryID")).value;
    var sDiscount= Popup.getAttribute("Discount");
    var saData = sProductData.split("|@|");
    var sRatedStyle = "";
    var sThanksStyle = "";
    if (Popup.getAttribute("Rated") == "1"){
        sRatedStyle = 'style="display:none;"';
    }
    else{
        sThanksStyle = 'style="display:none;"';
    }
    
    Popup.innerHTML = '<table border="0" cellpadding="0" cellspacing="0" dir="rtl">'+
                '<tr style="height: 14px;"><td class="popupRightCorderUp"></td><td class="popupUpPixel"></td><td class="popupLeftCorderUp"></td></tr>'+
                '<tr><td class="popupRightPixel"></td>'+
                '<td style="" valign="top" align="right">'+
                //content goes here
                '<div dir="rtl" style="text-align: right; background-color: white;">'+
                        '<div class="style_PopupTitle" style="text-align: right;">'+
                        '<a href="'+saData[4]+'" >'+saData[0]+'</a>'+
                        '</div>'+
                        
                        '<div class="style_PopupTitle" style="text-align: right;">'+
                        '<a href="'+saData[5]+'" >'+saData[3]+'</a>'+
                        '</div>'+
                        
                        '<div name="div_ProductRanking" style="text-align: center"></div>'+
                        
                        '<div class="titleC  artLabelsGray" unselectable="on">'+
                        ' מחיר <span class="old_price">'+
                        '<span class="titleFontSmallNormal" runat="server" id="Popup_PriceCatalog">'+saData[1]+'</span>'+
                        '<span class="titleFontSmallNormal"> ש"ח</span></span>'+
                        '</div>'+
                        
                        '<div class="titleCartLabelsGray" unselectable="on">'+
                            'מחיר באתר <span class="titleFontSmallNormal" runat="server" id="Popup_PriceActual">'+
                                sDiscount + '</span><span class="titleFontSmallNormal"> ש"ח</span></div>'+
                                
                        '<div>'+
                            '<table cellpadding="0" cellspacing="0">'+
                                '<tr><td class="titleCartLabelsGray">דרג את הפריט'+
                                        '<div style="width: 120px;"><div onmouseout="resetStars(this)" id="divRating" ' + sRatedStyle + '>'+
'<span id="5" class="ratingStar emptyRatingStar" style="float: left;" onmouseover="EmphaseStar(this);" onclick="RateProduct(this);">&nbsp;</span>'+
'<span id="4" class="ratingStar emptyRatingStar" style="float: left;" onmouseover="EmphaseStar(this);" onclick="RateProduct(this);">&nbsp;</span>'+
'<span id="3" class="ratingStar emptyRatingStar" style="float: left;" onmouseover="EmphaseStar(this);" onclick="RateProduct(this);">&nbsp;</span>'+
'<span id="2" class="ratingStar emptyRatingStar" style="float: left;" onmouseover="EmphaseStar(this);" onclick="RateProduct(this);">&nbsp;</span>'+
'<span id="1" class="ratingStar emptyRatingStar" style="float: left;" onmouseover="EmphaseStar(this);" onclick="RateProduct(this);">&nbsp;</span>'+
                                        '</div>' + 
                                        '<label id="lblThanks" '+ sThanksStyle +'>' + saData[6] + '</label>' +
                                        '</div>'+
                           '</td></tr></table>'+
                        '</div>'+
                        '<table cellpadding="0" cellspacing="0" dir="rtl">'+
                            '<tr><td style="width: 20px;">'+
                                    '<img width="16" src="../Media/images/icon_carriage1.gif" />'+
                                '</td><td valign="top"><span class="style_PopupTitle">'+
                                        //basket
                                        '<a href="javascript:AddTo(0);" >הוסף לעגלת הקניות</a>'+
                                 '</span></td></tr><tr>'+
                                '<td style="width: 20px;">'+
                                    '<img width="16" src="../Media/images/icon_lamp.gif" />'+
                                '</td><td><span class="style_PopupTitle">'+
                                        //wishlist
                                        '<a href="javascript:AddTo(1);" >הוסף לרשימת המשאלות</a>'+
                                    '</span></td></tr></table>'+
                        '</div>'+
                
                //end content
                '</td><td class="popupLeftPixel"></td></tr>'+
                '<tr style="height: 16px;"><td>'+
                    '<img src="../Media/Images/cuts_parit/prit_menu_right_down_corner.gif" border="0"'+
                        'width="13" height="16" /></td>'+
                '<td class="popupDownPixel"></td>'+
                '<td><img src="../Media/Images/cuts_parit/prit_menu_left_down_corner.gif" border="0" width="13"'+
                        'height="16" /></td></tr></table>';
    
    
    Popup.style.display = 'inline-block';
    
    
    
}

function datacell_onmouseover()
{
//    debugger;

//    doSomething();

    //if (Popup!=null && Popup!=undefined) return;

    var EventElement = event.srcElement;

    while(EventElement.id != 'div_Container')
    {
        EventElement=EventElement.parentNode;
    }
  
    if (EventElement.uniqueID==document.documentElement.uniqueID) return;

    PopupDataElement = EventElement;
    Popup = EventElement.lastChild;//.cloneNode(true);

    //document.body.appendChild(Popup);
    Popup.onmouseout = datacell_onmouseout;

    //set the popup location
    var PopupTop = -55; //+45;
    var PopupLeft = +25;
    
    for (var Element=PopupDataElement; Element!=null; Element=Element.offsetParent)
    {
    
        PopupTop += Element.offsetTop - Element.scrollTop;
//        PopupLeft += Element.offsetLeft - Element.scrollLeft;
        
        //
          //alert(Element.offsetLeft + ' ' + Element.scrollLeft);
    }
    Popup.style.position = "absolute";
    
    Popup.style.top = PopupTop;
//  Popup.style.left = PopupLeft;
    

    var xPosition = -1;
    var xPositionPopup = -1;
    var oBrowserType = BrowserType();
    if (oBrowserType == "IE6" || oBrowserType == "IE7")
    {
        var oMainContent = document.getElementById("tdMainContent");
        if (oMainContent != null)
        {
            xPosition = FindPositionX(oMainContent);
        }
    }        
    
    Popup.style.display = 'inline-block';
    
    if (oBrowserType == "IE6" || oBrowserType == "IE7")
    {
        xPositionPopup = Popup.offsetLeft;
        var xPosStrip = FindPositionX(Popup.parentNode);
        
        if (LikeOrRelated(Popup.parentNode)==false)
        {
            if (xPosition != -1 && xPositionPopup != -1)
                if (xPosition > xPositionPopup)
                    Popup.style.left = xPositionPopup + Popup.offsetWidth+50;
        }
        else
        {
            Popup.style.top = PopupTop + 100;
            if (xPositionPopup > xPosStrip)
                Popup.style.left = xPositionPopup - (Popup.offsetWidth + 75);
        }
    }
    
}
//return internet explorer version
function BrowserType()
{
    if (navigator.appName.indexOf('Microsoft') != -1)
    {
        var temp=navigator.appVersion.split("MSIE")
        version=parseInt(temp[1])
        return "IE"+version;
    }
}

//find the element's x position
function FindPositionX(obj)
{
    var x = 0;
    while (obj.offsetParent)
    {
        x+=obj.offsetLeft;
        obj = obj.offsetParent;
    }
    return x;
}

//find if product box is in like or related content (reposition the popup div)
function LikeOrRelated(obj)
{
    while (obj)
    {
        if (obj.id == "divLikeLike" || obj.id == "divBasketCampaign" || obj.id=="divRelated")
        {
            return true;
        }
        obj = obj.parentNode;
    }
    return false;
}

///////////////////////////////
// data cell movement

var MoveCounter;
var MoveElement;
var MoveNumberOfProducts = 3; // how many products to move per one click
var MoveDeltaDefault = 20; // pixels
var MoveStepTimer = 60; // miliseconds
var _LeftArrow = null;
var _RightArrow = null;
var InitialMoveCounter = 0;

function MoveDataLeft(_ArrowElement)
{
    if(_ArrowElement.disabled){
        if(_ArrowElement.disabled==true)
            return;
    }else{
        if(_ArrowElement.getAttribute("disabled")){
            if(String(_ArrowElement.getAttribute("disabled"))=="true")
                return;
        }
    }
    _RightArrow = _ArrowElement;
    //MoveElement = _ArrowElement.parentNode.nextSibling.firstChild;
    MoveElement = first_child(node_after(_ArrowElement.parentNode));
    //var trProducts = MoveElement.firstChild.firstChild.firstChild;
    var trProducts = first_childs(MoveElement, 3);
    //MoveCounter = trProducts.children[0].offsetWidth * MoveNumberOfProducts;
    MoveCounter = first_child(trProducts).offsetWidth * MoveNumberOfProducts;

    //enable the other arrow (if disabled)
    //_LeftArrow = _ArrowElement.parentNode.nextSibling.nextSibling.firstChild; 
    _LeftArrow = first_child(next_siblings(_ArrowElement.parentNode, 2)); 
    _LeftArrow.removeAttribute("disabled");
    _LeftArrow.disabled = false;

    var iScrollLeft = 0;
    if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){
        iScrollLeft = MoveElement.scrollLeft;
    }else{
        iScrollLeft = MoveElement.scrollWidth - MoveElement.clientWidth + MoveElement.scrollLeft;
    }
    //check if we reached the end
    if (iScrollLeft + MoveCounter > MoveElement.scrollWidth)
    {
        MoveCounter = MoveElement.scrollWidth - MoveElement.clientWidth;
    }

    InitialMoveCounter = MoveCounter;
    
    function MoveStep()
    {
    	var MoveDelta = MoveDeltaDefault;
    	if (MoveCounter - MoveDelta < 0)
    	    MoveDelta = MoveCounter;
        MoveElement.scrollLeft += MoveDelta;
        MoveCounter -= MoveDelta;
     	var iScrollLeft = 0;
        if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){
            iScrollLeft = MoveElement.scrollLeft;
        }else{
            iScrollLeft = MoveElement.scrollWidth - MoveElement.clientWidth + MoveElement.scrollLeft;
        }
        if (MoveCounter<=0) 
        {
            if (iScrollLeft + InitialMoveCounter > MoveElement.scrollWidth){
                _RightArrow.removeAttribute("disabled");
                _RightArrow.disabled = true;
            }
            CheckArrowImages();
            return;
        }
        setTimeout(MoveStep, MoveStepTimer);
    }
    
    setTimeout(MoveStep, 50);
}

function MoveDataRight(_ArrowElement)
{
    if(_ArrowElement.disabled){
        if(_ArrowElement.disabled==true)
            return;
    }else{
        if(_ArrowElement.getAttribute("disabled")){
            if(String(_ArrowElement.getAttribute("disabled"))=="true")
                return;
        }
    }
    _LeftArrow = _ArrowElement;
    //MoveElement = _ArrowElement.parentNode.previousSibling.firstChild;
    MoveElement = first_child(node_before(_ArrowElement.parentNode));
    //var trProducts = MoveElement.firstChild.firstChild.firstChild;
    var trProducts = first_childs(MoveElement,3);
    //MoveCounter = trProducts.children[0].offsetWidth * MoveNumberOfProducts;
    MoveCounter = first_child(trProducts).offsetWidth * MoveNumberOfProducts;

    //enable the other arrow (if disabled)
    //_RightArrow = _ArrowElement.parentNode.previousSibling.previousSibling.firstChild;
    _RightArrow = first_child(prev_siblings(_ArrowElement.parentNode,2));
    _RightArrow.removeAttribute("disabled");
    _RightArrow.disabled = false;
    
    //check if we reached the end
    var iScrollLeft = 0;
    if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){
        iScrollLeft = MoveElement.scrollLeft;
    }else{
        iScrollLeft = MoveElement.scrollWidth - MoveElement.clientWidth + MoveElement.scrollLeft;
    }
    if (iScrollLeft - MoveCounter < 0)
    {
        MoveCounter = iScrollLeft - (MoveCounter - MoveElement.clientWidth);
    }

    InitialMoveCounter = MoveCounter - MoveElement.clientWidth;
        
    function MoveStep()
    {
    	var MoveDelta = MoveDeltaDefault;
    	if (MoveCounter - MoveDelta < 0)
    	    MoveDelta = MoveCounter;
        MoveElement.scrollLeft -= MoveDelta;
        MoveCounter -= MoveDelta;
        var iScrollLeft = 0;
        if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){
            iScrollLeft = MoveElement.scrollLeft;
        }else{
            iScrollLeft = MoveElement.scrollWidth - MoveElement.clientWidth + MoveElement.scrollLeft;
        }
        if (MoveCounter<=0) 
        {
            if ((InitialMoveCounter <= 0) || 
                ((InitialMoveCounter > 0) && (iScrollLeft - InitialMoveCounter <= 0))){
                 _LeftArrow.removeAttribute("disabled");
                 _LeftArrow.disabled = true;
                }
            CheckArrowImages();
            return;
        }
        setTimeout(MoveStep, MoveStepTimer);
    }
    
    setTimeout(MoveStep, 50);
}

function CheckArrowImages()
{
    _LeftArrow.src = "../Media/images/arrow_left" + (_LeftArrow.disabled ? "_over" : "") + ".jpg";
    _RightArrow.src = "../Media/images/arrow_right" + (_RightArrow.disabled ? "_over" : "") + ".jpg";
}

function AddHandler(target,eventName,handlerName)
{
    if (target.addEventListener )
        target.addEventListener(eventName, handlerName, false);
    else if ( target.attachEvent )
        target.attachEvent("on" + eventName, handlerName);
    else
        target["on" + eventName] = handlerName;
}


function HitEnter(e){
    if (!e) var e = window.event;
    if (e.keyCode == 13){
        var srcEl = e.srcElement? e.srcElement : e.target;
        if (srcEl != null){
            //check if the control has a keypress event attached (if not, we ignore this event)
            if(e.srcElement){
                //ie
                if (srcEl.getAttribute("onkeypress") == null || srcEl.getAttribute("onkeypress") == ""){
                    return false;
                }
            }else{
                //ff
                if ((srcEl.getAttribute("onkeypress") != null && srcEl.getAttribute("onkeypress") != "") ||
                    (srcEl.getAttribute("onkeydown") != null && srcEl.getAttribute("onkeydown") != "") ||
                    (srcEl.getAttribute("onkeyup") != null && srcEl.getAttribute("onkeyup") != "")){
                    return true;
                }else{
                    return false;
                }
            }
        }
        else{
            return false;
        }
    }
}

function DisablePayButton(ctrl)
{
    var oPayButton = document.getElementById("divPayMask");
    if (oPayButton != null && ctrl.disabled == false)
    {
        if (Page_ClientValidate())
            oPayButton.style.display = "";
        else
            oPayButton.style.display = "none";
    }
}

function is_all_ws( nod )
{
  // Use ECMA-262 Edition 3 String and RegExp features
  return !(/[^\t\n\r ]/.test(nod.data));
}
function is_ignorable( nod )
{
  return ( nod.nodeType == 8) || // A comment node
         ( (nod.nodeType == 3) && is_all_ws(nod) ); // a text node, all ws
}

function node_before( sib )
{
  while ((sib = sib.previousSibling)) {
    if (!is_ignorable(sib)) return sib;
  }
  return null;
}

function prev_siblings( sib , nr)
{
  while ((sib = sib.previousSibling)) {
    if (!is_ignorable(sib)) {
        if(nr > 1){
            return prev_siblings(sib, nr-1);
        }else{
            return sib;
        }
    }
  }
  return null;
}

function node_after( sib )
{
  while ((sib = sib.nextSibling)) {
    if (!is_ignorable(sib)) return sib;
  }
  return null;
}

function next_siblings( sib , nr)
{
  while ((sib = sib.nextSibling)) {
    if (!is_ignorable(sib)) {
        if(nr > 1){
            return next_siblings(sib, nr-1);
        }else{
            return sib;
        }
    }
  }
  return null;
}

function last_child( par )
{
  var res=par.lastChild;
  while (res) {
    if (!is_ignorable(res)) return res;
    res = res.previousSibling;
  }
  return null;
}
function first_childs( par , nr){
    if(par.firstChild){
        var res=par.firstChild;
        while (res) {
            if (!is_ignorable(res)) {
                if(nr > 1){
                    return first_childs(res, nr-1);
                }else{
                    return res;
                }
            }
            res = res.nextSibling;
        }
    }
  return null;
}
function first_child( par )
{
    if(par.firstChild){
      var res=par.firstChild;
      while (res) {
        if (!is_ignorable(res)) return res;
        res = res.nextSibling;
      }
    }
  return null;
}
