// JavaScript Document
function showHideLayerSearchGw(hideElement, showElement, focusID) {
    var hideElementClass = "";
    var showElementClass = "";
    
    var startIndex = hideElement.lastIndexOf("_");
    if (startIndex > -1)
    {
        hideElementClass = hideElement.substr(startIndex+1);
    }
    else
    {
        hideElementClass = hideElement; 
    }
    
    startIndex = showElement.lastIndexOf("_");
    if (startIndex > -1)
    {
        showElementClass = showElement.substr(startIndex+1);
    }
    else
    {
        showElementClass = showElement; 
    }
	document.getElementById(hideElement).className = hideElementClass + " hideLayer";
	document.getElementById(showElement).className = showElementClass + " showLayer";
	if ((focusID != null) && (focusID != undefined) && (focusID != ''))
	    document.getElementById(focusID).focus();
}

function showAgeCheck(ageId, welcomeId)
{
    try {
        document.getElementById(welcomeId).style.display = "none";
		document.getElementById(ageId).style.display = "block";
    } catch (ex) {}
}

function clearPassword(el, sID) {
	try {
		el.style.display = "none";
		document.getElementById(sID).focus();
    } catch (ex) {}
}
function focusPass(el, sID) {
    try {
        document.getElementById(sID).style.display = "none";
        el.focus();
    } catch (ex) {}    
}
function blurPass(el, sID) {
    try {
        if (el.value == "") {                
            document.getElementById(sID).style.display = "block";
        }
    } catch (ex) {}
}
function checkKeycode(e, btnId) {
    var keycode;
    if (window.event) keycode = window.event.keyCode;
    else if (e) keycode = e.which;
    
    if(keycode == 13){
        document.getElementById(btnId).focus();
    }
}
function clearFieldGW(el, elInitialValue) {
	try {
		if (el.value == elInitialValue) {
		    el.value = "";
		}
	} catch (ex) {}  
}

function HideElement(elementId)
{
    var hideEl = document.getElementById(elementId);
    if (hideEl != null)
    {
        var startIndex = hideEl.className.lastIndexOf("showLayer")
        if (startIndex > -1)
        {
            hideEl.className = hideEl.className.substr(0, startIndex)+ "hideLayer";
        }
    }
    return;
}

function ShowElement(elementId)
{
    var showEl = document.getElementById(elementId);
    if (showEl != null)
    {
        var startIndex = showEl.className.lastIndexOf("hideLayer")
        if (startIndex > -1)
        {
            showEl.className = showEl.className.substr(0, startIndex)+ "showLayer";
        }
    }
    return;
}

function showBasketPasswordGw(elementId) {
    document.getElementById(elementId).className = document.getElementById(elementId).className.replace("blLogin", "blPassword");
}


function editAdr(obj, bSave) { //bSave = true, if Save button clicked
    if (obj == null || obj == undefined) return false;
    var oId = obj.id;
    //var tblId = oId.substring(0, oId.indexOf("-"));
    var tblId = oId.substring(0, oId.indexOf("__"));
    var oTbl = document.getElementById(tblId).getElementsByTagName("TD");
    
    var sTxtId = "";
    var oTxt = null;
    for (var i=0; i<oTbl.length; i++) {
        if (oTbl[i].className == "fAdr" || oTbl[i].className == "fAdr boxTitle") {
            for (var j=0; j<oTbl[i].childNodes.length; j++) {
                sTxtId = oTbl[i].childNodes[j].id;                
                if (sTxtId != null && sTxtId.indexOf("__txt") != -1) {
                    sInpId = sTxtId.replace("txt", "inp");
                    if (bSave) { // Save
                        //TO DO: field value validation for document.getElementById(sInpId).getElementsByTagName("INPUT")[0].value;
                    
                        hideEl(oId);
                        showEl(oId.replace("save", "edit"));
                        if (document.getElementById(sInpId).getElementsByTagName("INPUT").length > 0) {
                            document.getElementById(sTxtId).innerHTML = document.getElementById(sInpId).getElementsByTagName("INPUT")[0].value;    
                        }
                        hideEl(sInpId);
                        showEl(sTxtId);
                    } else {  // Edit
                        hideEl(oId);
                        showEl(oId.replace("edit", "save"));
                        if (document.getElementById(sInpId).getElementsByTagName("INPUT").length > 0) {
                            document.getElementById(sInpId).getElementsByTagName("INPUT")[0].value = document.getElementById(sTxtId).innerHTML.replace(/ /g,'');
                        }
                        hideEl(sTxtId);
                        showEl(sInpId);                    
                    }
                    break;
                }                
            }
        }
    }
}

//*******************
// Validation
//*******************

function FiledChanged(event) {
    if(typeof(event)=="undefined" || event==null) return;
    if(typeof(event.target)=="undefined" || event.target==null) return;
    var ctl = event.target;
    var isValid = FieldIsValid(ctl);
    ctl.parentNode.parentNode.className = (isValid) ? 'tb' : 'tb tbErr';
}

function FiledValChanged(event) {
    if(typeof(event)=="undefined" || event==null) return;
    if(typeof(event.target)=="undefined" || event.target==null) return;
    var ctl = $get(event.target.controltovalidate);
    if ((typeof(ctl) != "undefined") && (ctl != null)) {    
        var isValid = FieldIsValid(ctl);
        ctl.parentNode.parentNode.className = (isValid) ? 'tb' : 'tb tbErr';
    }
}

function TextAreaFieldValChanged(event) {
    if(typeof(event)=="undefined" || event==null) return;
    if(typeof(event.target)=="undefined" || event.target==null) return;
    var ctl = $get(event.target.controltovalidate);
    if ((typeof(ctl) != "undefined") && (ctl != null)) {    
        var isValid = FieldIsValid(ctl);
        ctl.parentNode.parentNode.className = (isValid) ? 'ta' : 'ta taErr';
    }
}


function FieldIsValid(targetedControl){
    var validators = FieldRunValidators(targetedControl);
    //return AllValidatorsValid(validators);
    if ((typeof(validators) != "undefined") && (validators != null)) {
        for (var i = 0; i < validators.length; i++) {
            if(validators[i].style.display != 'none') return false;
        }    
    }
    return true;
}

function FieldRunValidators(targetedControl){
    var validators;
    if (typeof(targetedControl.Validators) != "undefined") {
        validators = targetedControl.Validators;
    }
    else {
        if(typeof(targetedControl.tagName) != "undefined")
            if (targetedControl.tagName.toLowerCase() == "label") {
                targetedControl = document.getElementById(targetedControl.htmlFor);
                validators = targetedControl.Validators;
        }
    }
    if ((typeof(validators) != "undefined") && (validators != null)) {
		var ev = window.event;
		if(typeof(ev)=="undefined"){
			ev = document.createEvent("UIEvents");
			ev.initUIEvent("change", true, true, window, 1);
		}
        /*for (var i = 0; i < validators.length; i++) {
            ValidatorValidate(validators[i], null, ev);
        }
        ValidatorUpdateIsValid();*/
    }
    return validators;
}


//**************************************************************************************
	
function ShowHideAgreeToTermsErrorMsg(obj, valObj) 
{
    if (document.getElementById(obj.id) != null)
    {
        if (document.getElementById(obj.id).checked)
        {
            // Hide error msg.
            if ((valObj != null) && (valObj.tagName == "SPAN")) valObj.style.cssText = "color:Red;display:none;";
        }
        else
        {
            // show error msg.
            if ((valObj != null) && (valObj.tagName == "SPAN")) valObj.style.cssText = "color:Red;display:inline;";
        }
    }
}


function ReplaceRatingControlRateTitles(ratingControlId, rateTitles) {
  if (ratingControlId && $get(ratingControlId+"_A")) {
    var maxRating = 5;
    var oldTitle = $get(ratingControlId+"_A").title;
    var currentRateTitle = $get(ratingControlId+"_RatingExtender_ClientState").value;
    
    if (oldTitle && oldTitle.length >0)
      $get(ratingControlId+"_A").title = GetRatingTitle(rateTitles,oldTitle);
    
    for (var i=0; i<maxRating; i++) {
      oldTitle = $get(ratingControlId+"_Star_"+(i+1).toString()).title;
      if (!oldTitle || oldTitle.length == 0)
        oldTitle = currentRateTitle;
      if (oldTitle && oldTitle.length >0)
        $get(ratingControlId+"_Star_"+(i+1).toString()).title = GetRatingTitle(rateTitles,oldTitle);
    }
  }
}

function GetRatingTitle(ratingTitles,ratingValue)
{
    return ratingTitles[ratingValue - 1 ];
}

function addEvent(obj, evType, fn, useCapture)
{
  if (obj.addEventListener)
  {
    obj.addEventListener(evType, fn, useCapture);
    return true;
  } else if (obj.attachEvent)
  {
    var r = obj.attachEvent("on"+evType, fn);
    return r;
  }
}

/* TRIM string */
function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}