var _initText = "" ;
function ResetBox(sender, textVal)
{
	if (textVal != "" && _initText == "")
	{
		_initText = sender.value;
		sender.value="";
		sender.style.color = "#000";
	}
}
/////////////////////////////////////////////////////////////////////////////////////////////
//Hint Start
//hint object format -> {id: "", hint: "", head: "": style: "" }
var HintElements = new Array();
var ValElements = new Array();
var ClientStrings = new Array();	
var ErrorValidators= new Array();
var ErrorInputs= new Array();

__supxFlow = typeof(__supxFlow) == "undefined" ? false : true;

if(!__supxFlow){
    addLoadEvent(prepareInputsForHints);
    addLoadEvent(prepareSelectsForHints);
}


function addLoadEvent(func) 
{
  var oldonload = window.onload;
  if (typeof window.onload != 'function') 
  {
    window.onload = func;
  } 
  else 
  {
    window.onload = function() 
    {
      oldonload();
      func();
    }
  }
}


function convertCollectionToArray(collection) 
{
	var array = new Array();
	
	for (var i = 0; i < collection.length; i++)
	{
		array[array.length] = collection[i];
	}
	
	return array;
}

function prepareInputsForHints() 
{
	var inputs = convertCollectionToArray(document.getElementsByTagName("input"));
	inputs = inputs.concat(convertCollectionToArray(document.getElementsByTagName("textarea")));
	for (var i=0; i<inputs.length; i++)
	{
	    if((inputs[i].type == "text" || inputs[i].type == "textarea" || inputs[i].type == "password") && 
	        (inputs[i].className == 'signupinput' || inputs[i].className == 'signupinputError' ||
	        inputs[i].className == 'bandNameInput' || inputs[i].className == 'bandNameInputError')) 
	    {
	        //show hint on focus
	        inputs[i].onfocus = function () 
		    {
		        showHint(this);
		    }
		    // when the cursor moves away from the field, hide the hint
		    inputs[i].onblur = function () 
		    {
		        hideHint(); validate(this);
		    }
		    //validate input's content 
//		    inputs[i].onchange = function () 
//		    {
//		        validate(this); 
//		    }
		}
	}
}

function prepareSelectsForHints() 
{
	var selects = document.getElementsByTagName("select");
	for (var i=0; i<selects.length; i++)
	{
        //show hint on focus
        selects[i].onfocus = function () 
	    {
	        showHint(this);
	    }
	    // when the cursor moves away from the field, hide the hint
	    if(selects[i].id.toLowerCase() == "preferredculture")
        {
	        selects[i].onblur = function () 
	        {
    	        hideHint();
	            validate(this); 
	        }
	    }
	    else
	    {
	        selects[i].onblur = function () 
	        {
	        hideHint(); validate(this);
	        }
	    }
	    //validate content 
//	    selects[i].onchange = function () 
//	    {
//	        validate(this); 
//	    }
	}
}

function buildHintMarkup(ele, head, body, showimg)
{
    var hintstyle = "signupBBdiv";
    var pointerstyle = ele.attributes["hintstyle"];
        
    if(typeof(head) == "object")
        head = head.value;
    if(typeof(body) == "object")
        body = body.value;
    if(typeof(pointerstyle) == "object")
        pointerstyle = pointerstyle.value;
    
    var hintpos = findPos(ele);
    
    var top = hintpos.top + 4;
    var width = hintpos.width;
    var left = hintpos.left + width + 10;
       
    switch(pointerstyle)
    {
        case "top" :
            pointerstyle = "hint-pointer_top";
            top = top + 30  ;
            left = left - width + 50;
            break;
        case "bottom" :
            pointerstyle = "hint-pointer_bottom";
            top = top - 50  ;
            left = left - width;
            break;
            
        case "right" :
            pointerstyle = "hint-pointer_right";
            left = left - width - 240;
            break;
        default:
            hintstyle = " signupBBdiv";
            pointerstyle = "signupBBleft";
            break;
    }
      
    if(typeof(pointerstyle) == "undefined" || !pointerstyle)
        pointerstyle = "signupBBleft";
        
    var hintMarkup = "<div class=\"" + hintstyle + "\">";
    hintMarkup += "<div class=\""+pointerstyle+"\"></div>";
    hintMarkup += "<div class=\"signupBBcontent\">";
    if(typeof(head) != "undefined" || head)
    {
        if(showimg)
            hintMarkup += "<div class=\"signupBBerrorHead\">" + head + "</div>";
        else
            hintMarkup += "<div class=\"signupBBHead\">" + head + "</div>";
    }
    else
        hintMarkup += "<div class=\"signupBBerrorHead\">&nbsp; </div>";
    hintMarkup += "<div style=\"clear:left;\">" + body + "</div> ";
    hintMarkup += "</div>";  
    hintMarkup += "</div>";              

    return {markup:decode(hintMarkup),left:left,top:top};
}

function showHint(ele)
{
    if(typeof(ele) == "undefined" || !ele || ele.style.display == 'none')
        return;
    
    //display any validation err on the page.
    if(ErrorInputs.length > 0)
    {
        var errObj = ErrorValidators[ErrorInputs.indexOf(ele.id)];
        if(typeof(errObj) == "undefined" || !errObj)
            return;
        showErr(ele, errObj.msg, errObj.head);
        return;
    }
        
    var hint = document.getElementById("divHint");
  
    if(typeof(hint) == "undefined" || ! hint)
    {
        hint = document.createElement("div");
        hint.id= "divHint";
        hint.style.position = "absolute";
        document.body.appendChild(hint, ele.parentNode);
        //ele.parentNode.appendChild(hint, ele.parentNode);
    }
    
    var hintobj = GetHint(ele);
    var head = hintobj.head;
    var body = hintobj.hint;
    if(!body || body == "")
        return;
    var hintbody = buildHintMarkup(ele, head, body, false);

    hint.style.left = hintbody.left + "px";
    hint.style.top = hintbody.top + "px";
    if(hintbody.markup && hintbody.markup != "")
        hint.innerHTML = hintbody.markup;
    hint.style.display = "inline";
    hint.style.paddingTop = "5px";
    //ele.className = ele.attributes["orig_class"];
}

function decode(text)
{
    return text.replace(/&lt;/g, "<").replace(/&gt;/g, ">");
}

function GetHint(ele)
{
//hint object format -> {id: "", hint: "", head: "": style: "" }
    if(!HintElements)
        return;
    for(var i=0; i<HintElements.length; i++)
    {
        var hintObj = HintElements[i];
        if(!hintObj)
            break;
        if(ele.id === hintObj.id)
            return {hint: hintObj.hint, head:hintObj.head};
    }
    return {hint:"", head:""};
}

function SetHint(ele, hint)
{
//hint object format -> {id: "", hint: "", head: "": style: "" }
    if(!HintElements)
        HintElements = new Array();
    var hintObj;    
    for(var i=0; i<HintElements.length; i++)
    {
        var v = HintElements[i];
        if(ele.id === v.id)
        {
            hintObj = v;
            break;
        }
    }
    if(hintObj)
    {
        hintObj.hint = hint.hint;
        hintObj.head = hint.head; 
    }
    else
        HintElements.push({id:ele.id, hint:hint.hint, head:hint.head, style: hint.style});
}

function GetValidationObj(ele)
{
//var validationObj = {id: "", type: "", val: "", body: "", head: "", style: ""};
    if(!ValElements)
        return;
    
    // added by Derik H. Jang
    // handle exception which fired when 'ele' variables is null.
    // if 'ele' is null, IE 7 can't submit form data because an exception.
    if (ele == null || typeof(ele) == 'undefined')
		return;
		
    var validations = new Array();
    
    for(var i=0; i<ValElements.length; i++)
    {
        var valObj = ValElements[i];
        if(!valObj)
            break;
        
        if(ele.id === valObj.id)
            validations.push(valObj);
    }
    return validations;
}


function showErr(ele, msg, head)
{
    if(typeof(ele) == "undefined" || !ele)
        return false;
    
    var hint = document.getElementById("divHint");
    if(typeof(hint) == "undefined" || ! hint)
    {
        hint = document.createElement("div");
        hint.id="divHint";
        hint.style.position = "absolute";
        document.body.appendChild(hint, ele.parentNode); 
    }
    
    if(head && typeof(head) == "object")
        head = head.value;
    if(msg && typeof(msg) == "object")
        msg = msg.value;
    
    var hintbody = buildHintMarkup(ele, head, msg, true);
    if(hintbody.markup && hintbody.markup != "")
        hint.innerHTML = hintbody.markup;
    hint.style.left = hintbody.left + "px";
    hint.style.top = hintbody.top + "px";
    hint.style.display = "inline";
}

function hideHint()
{
    var hint = document.getElementById("divHint");
    
    if(typeof(hint) == "undefined" || !hint)
        return;
    hint.style.display = "none";
}

var nameRegex = /^([a-zA-Z]+)$/;
var emailRegex = /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
                ///^([\w]+)(.[\w]+)*@([\w]+)(.[\w]{2,3}){1,2}$/;
var dobRegex = /^([0-9]){2}(\/|-){1}([0-9]){2}(\/|-)([0-9]){4}$/;

function validate(ele)
{
    //var validationObj = {id: "", type: "", val: "", body: "", head: "", style: ""};        
    var valObj = GetValidationObj(ele);
    
    var flag = true;
    
    if(!valObj || valObj.length <=0)
        return flag;
    
    for(var i=0; i<valObj.length; i++)
    {
        if(!flag)
            break;
        flag = ValidateElement(ele, valObj[i]);
    }
    return flag;
}

function ValidateElement(ele, valObj)
{
    if(typeof(ele) == "undefined" || typeof(valObj) == "undefined")
	    return false;
	
    var result = true;
	if(valObj && typeof(valObj.type) != "undefined")
	{
	    var eleDefaultStyle = "signupinput";
	    var eleErrStyle = (valObj.style && valObj.style != "" && valObj.style != null)? valObj.style : 'signupinputError';
	    switch(valObj.type)
	    {
	        case "required":
	            if(valObj.val == true || valObj.val == "true")
                {
                    //required SELECT validation
                    if (ele.tagName == "SELECT")
                    {
						for(var i=0; i<ele.length; i++)
						{
							if (ele[i].selected == true)
							{
								if (ele[i].value == -1)
								{
									msg = valObj.body;
									head = valObj.head;
									if(typeof(msg) == "object")
											msg = msg.value;
									if(typeof(head) == "object")
										head = head.value;
									updateErrLists(ele.id, {id:ele.id, msg:msg, head:head, style: eleErrStyle}, false);
									result = false;
								}
								else
								{
									updateErrLists(ele.id, {style: eleDefaultStyle}, true);
								}
							}
						}
                    }
                    else
                    {
						//required field validation
						if(ele.value.length <= 0)
						{
							msg = valObj.body;
							head = valObj.head;
							if(typeof(msg) == "object")
									msg = msg.value;
							if(typeof(head) == "object")
								head = head.value;
							updateErrLists(ele.id, {id:ele.id, msg:msg, head:head, style: eleErrStyle}, false);
							result = false;
						}
						else
						{
							updateErrLists(ele.id, {style: eleDefaultStyle}, true);
						}
                    }
                }
	            break;
	        case "minlength":
	            //min length validation
                if(ele.value.length < valObj.val)
                {
                    msg = valObj.body;
                    head = valObj.head;
                    if(typeof(msg) == "object")
                            msg = msg.value;
                    if(typeof(head) == "object")
                        head = head.value;

                    updateErrLists(ele.id, {id:ele.id, msg:msg, head:head, style:eleErrStyle}, false);
                    result = false;
                }
                else
                    updateErrLists(ele.id, {style: eleDefaultStyle}, true);
                break;
            case "maxlength":
	            //max length validation
                if(ele.value.length > valObj.val)
                {
                    msg = valObj.body;
                    head = valObj.head;
                    if(typeof(msg) == "object")
                            msg = msg.value;
                    if(typeof(head) == "object")
                        head = head.value;

                    updateErrLists(ele.id, {id:ele.id, msg:msg, head:head, style:eleErrStyle}, false);
                    result = false;
                }
                else
                    updateErrLists(ele.id, {style: eleDefaultStyle}, true);
                break;
	        case "comparewith":
	            var eleToCompare = document.getElementById(valObj.val);
                if(eleToCompare)
                {
                   if(ele.value != eleToCompare.value)
                    {
                        msg = valObj.body;
                        head = valObj.head;
                        if(typeof(msg) == "object")
                            msg = msg.value;
                        if(typeof(head) == "object")
                            head = head.value;
                            
                        updateErrLists(ele.id, {id:ele.id, msg:msg, head:head, style:eleErrStyle}, false);
                        result = false;
                    }
                    else
                        updateErrLists(ele.id, {style: eleDefaultStyle}, true);
                }
	            break;

	        case "regex":
	            //regex validation
                var regex = valObj.val; 
                switch(regex)
                {
                    case "name":
                        result = validateRegex(ele, nameRegex, valObj);
                        break;
                    case "dob":
                        result = validateRegex(ele, dobRegex, valObj);
                        break;
                    case "email":
                        result = validateRegex(ele, emailRegex, valObj);
                        if(!result)
                            break;
                        var countryList = document.getElementById("Country");
                        if (countryList != null)
                        {
							var countryCode = countryList[countryList.selectedIndex].value.split("_")[1];
							if(countryCode === "JP" )
							    result = isMobileEmail(ele, valObj);
	                    }
                        break;
                    default:
                        result = validateRegex(ele, regex, valObj);
                        break;    
                }
	            break;
	        case "customfunc":
	            var customfunc = valObj.val;
	            if(customfunc && typeof(customfunc) == "function")
	                result = customfunc(ele.id, valObj);
	            break;
	        default:
	            break;
	    }
	} 
	return result;
}


function validateRegex(ele, regex, valObj)
{
    var msg;
    var head;
    var regex = new RegExp(regex);
    var result = true;
    
    if(!ele)
        return result;
    
    var eleDefaultStyle = "signupinput";
	var eleErrStyle = (valObj.style && valObj.style != "" && valObj.style != null)? valObj.style : 'signupinputError';
    
    if(regex.test(ele.value) != true)
    {
        msg = valObj.body;
        head = valObj.head;
        
        if(typeof(msg) == "object")
            msg = msg.value;
        if(typeof(head) == "object")
            head = head.value;

        updateErrLists(ele.id, {id:ele.id, msg:msg, head:head, style:eleErrStyle}, false);
        result = false;
    }
    else
        updateErrLists(ele.id, {style: eleDefaultStyle}, true);
    return result;
}

function updateErrLists(eleId, errObj, isvalid)
{
    if(__supxFlow){
        if(!isvalid){
            MySpace.Signups.GetSignupso().setCustValidation(errObj);
        }
    }
    else{
        var ele = document.getElementById(eleId);
        var style = "";
        if(typeof(errObj) != "undefined" && errObj.style != null)
           style = errObj.style;
        if(!isvalid)
        {
            if(ErrorInputs.indexOf(eleId) != -1)
                return;
            showErr(ele,errObj.msg, errObj.head);
            ele.className = style;//"signupinputError";
            ErrorValidators.push(errObj);
            ErrorInputs.push(eleId);
        }
        else
        {
            hideHint();
            if(ErrorInputs.indexOf(eleId) == -1)
                return;
            ele.className = style;
            ErrorValidators.splice(ErrorInputs.indexOf(eleId), 1);
            ErrorInputs.splice(ErrorInputs.indexOf(eleId), 1);
        }
   }
}

function GetClientString(key)
{
    if(!key || typeof(ClientStrings) == "undefined")
        return "";
    for(var i=0; i<ClientStrings.length; i++)
    {
        var errObj = ClientStrings[i];
        if(!errObj || typeof(errObj) == "undefined")
            break;
        if(errObj.key == key)
            return errObj.msg;    
    } 
    return decode(key);
}

[].indexOf || (Array.prototype.indexOf = function(v,n)
{
  n = (n==null)?0:n; var m = this.length;
  for(var i = n; i < m; i++)
    if(this[i] == v)
       return i;
  return -1;
});

function findPos(obj) 
{
	var curleft = curtop = curwidth = 0;
	var elementNode = obj;
	if (obj.offsetParent) 
	{
		curleft = obj.offsetLeft;
		curtop = obj.offsetTop;
		while (obj = obj.offsetParent) 
		{
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		}
	}
	if(elementNode.offsetWidth) 
	{
		curwidth = elementNode.offsetWidth;
	} 
			
	return {left:curleft, top:curtop, width:curwidth};
}

function ValidateForm()
{
    var isValid = false;
    
    if(ValElements.length >0)
    {
        for(var i=0; i<ValElements.length; i++)
        {
            var valObj = ValElements[i];
            validate(document.getElementById(valObj.id));
        }
    }
    if(ErrorInputs.length <=0)
    {
       isValid = true;
    }
    else
    {
        //display any validation err on the page. 
        for(var i=0; i<ValElements.length; i++)
        {
            var j = ErrorInputs.indexOf(ValElements[i].id);
            if(j >= 0)
            {
                var errObj = ErrorValidators[j];
                if( errObj && typeof(errObj) != "undefined" )
                {
                    var ele = document.getElementById(errObj.id);
                    showErr(ele, errObj.msg, errObj.head);
                    ele.focus();
                    isValid = false;
                    break;
                }
            }
        }
    }
    return isValid;
}

//Hint End
//////////////////////////////////////////////////////////////////////////////////////////////////////
//Region Start
function populateStates(countrylistId, statelistid, selectedState)
{
	var objstate= document.getElementById(statelistid);
	var objregionlabel = document.getElementById('lblRegion');
	var objcountry = document.getElementById(countrylistId);
	objstate.options.length = 1;
	var statelist = g_statelist;	
 
	var countryId = objcountry[objcountry.selectedIndex].value;
	var countryCode = countryId.split("_")[1];
	countryId = countryId.split("_")[0];	
	var counter = 0;
	var states = new Array();
	
	for ( i=0; i < statelist.length; i++ )
	{
		if ( statelist[i].refID == countryId)
		{
		    //copy matching states into an array
		    states[counter] = { optText:statelist[i].title, optValue:statelist[i].id };
		    counter++;
		}
	}	
	
	var postalCode = document.getElementById("PostalCode");
	var postcodeDiv = document.getElementById("postCodeDiv");
	
	// sort the states array
	if(countryCode != "JP")
	{
        states.sort(sortAsc);

        if(postcodeDiv)
            postcodeDiv.style.display="inline";
    }
    else
    {
        if(postcodeDiv)
            postcodeDiv.style.display="none";
        if(postalCode)
            postalCode.value = "11111";
    }

    // copy sorted options from array to states dropdown
    for (var j=0; j<states.length; j++) 
    {
        var optObj = document.createElement('option');
        optObj.text = states[j].optText;
        optObj.value = states[j].optValue + "_" + states[j].optText;
        objstate.options.add(optObj);
        
        if(states[j].optValue == selectedState)
            optObj.selected = true;
    }

	if(counter > 0)
	{	
	 	objstate.style.display='';
	 	if(null != objregionlabel)
	 		objregionlabel.style.display = '';
	    var regionBox = $get("supxRegionB");
	 	if(__supxFlow && regionBox){
	 	    Sys.UI.DomElement.removeCssClass(regionBox, "hide");
	 	}
	}
	
	else
	{	
	    objregionlabel.style.display = 'none';
		objstate.style.display='none';
		var regionBox = $get("supxRegionB");
	 	if(__supxFlow && regionBox){
	 	    Sys.UI.DomElement.addCssClass(regionBox, "hide");
	 	}

	}
}

// sort function - ascending (case-insensitive)
function sortAsc(r1, r2) {
    var v1 = r1.optText.toLowerCase();
    var v2 = r2.optText.toLowerCase();
    if (v1 > v2) return(1);
    if (v1 < v2) return(-1);
    return(0);
}

function validateRegion(id, valObj) 
{
	var country = document.getElementById('Country');
	var region = document.getElementById(id);
	
	if ((region.options != null ) && (region.options.length > 1) && 
	    country[country.selectedIndex].value.split("_")[1] != 'US' && 
	    country[country.selectedIndex].value.split("_")[1] != 'UK')
	{
		if (region.value == "" || region.value == " ") 
		{
			//alert("Please Select a State/Province/Territory");
			updateErrLists(id, {id:id, msg:valObj.body, head:valObj.head, style:'signupinputError'}, false);
			return false;
		} 
	}
	updateErrLists(id, {style: 'signupinput'}, true);
	return true;
}


function validateCity(id, valObj) 
{
	var city = document.getElementById(id);
	
	if (city.value == "" || city.value == " ") 
		{
			updateErrLists(id, {id:id, msg:valObj.body, head:valObj.head, style:'signupinputError'}, false);
			return false;
		} 

	updateErrLists(id, {style: 'signupinput'}, true);
	return true;
}

function displayPostalCodeSample(countryListId, postalCodeEleId) 
{
    var objcountry = document.getElementById(countryListId);
	var countryCode =objcountry[objcountry.selectedIndex].value.split("_")[1];
	var objPostalCode = document.getElementById(postalCodeEleId);
	var sampleText = GetClientString("Example") + ": ";
	if(countryCode=="AU" || countryCode=="NO" || countryCode=="DK") 
	{
	    sampleText = sampleText + " 0123";
	}
	else if(countryCode=="FR" || countryCode=="DE" || countryCode=="IT" || countryCode=="ES" || 
		countryCode=="MX") 
    {
		sampleText = sampleText + " 01234";
	}
	else if(countryCode=="AT" || countryCode=="BE" || countryCode=="CH") 
	{
		sampleText = sampleText + " 1234";
	}
	else if(countryCode=="SE" || countryCode=="FI") 
	{
		sampleText = sampleText + "012 34";
	}
	else if(countryCode=="IN" || countryCode=="RU") 
	{
		sampleText = sampleText + "123456";
	}
	else if(countryCode=="BR") 
	{
		sampleText = sampleText + "01234-567";
	}
	else if(countryCode=="NL") 
	{
		sampleText = sampleText + "1111ww";
	}
	else if(countryCode=="PL") 
	{
		sampleText = sampleText + "12345 / 12-345";
	}
	else if(countryCode=="PT") 
	{
		sampleText = sampleText + "1234 / 1234-567";
	}
	else if(countryCode=="TR") 
	{
		sampleText = sampleText + "12345";
	}
	else if(countryCode == "UK") //TFS #37594: Validate UK postal code.
	{
	    sampleText = sampleText + "SO32 4NG";
	}
	
	if(sampleText != GetClientString("Example") + ": ")
	{
	    //{hint: "", head: "", style: ""}
        SetHint(objPostalCode, {id:objPostalCode.id, hint:sampleText, head:"", style: ""});
        showHint(objPostalCode);
	}
	else
	{
	    SetHint(objPostalCode, {id:objPostalCode.id, hint:"", head:"", style: ""});
	    hideHint();
	}
}

function PostalCodeMessageFocus(countryListId, postalCodeEleId)
{
    var countrySelected = document.getElementById(countryListId);
	var postalCodeCell = document.getElementById(postalCodeEleId);
	var countryCode = countrySelected[countrySelected.selectedIndex].value.split("_")[1];
  
    //TFS #37594: Validate UK postal code
  	if( countryCode!="US" && countryCode!="CA" && countryCode!="AU" && 
	    countryCode!="FR" && countryCode!="DE" && countryCode!="IT" && countryCode!="ES" && 
	    countryCode!="AT" && countryCode!="MX" && countryCode!="SE" && countryCode!="JP" && 
	    countryCode!="NL" && countryCode!="SE" && countryCode!="CH" && countryCode!="KR" && 
	    countryCode!="NO" && countryCode!="DK" && countryCode!="FI")
	{
		SetHint(postalCodeCell, {id:postalCodeCell.id, hint:GetClientString('International_SignupPleaseEnterPostalCodeErro2'), head:"", style: ""});
        showHint(postalCodeCell);
    }
	else
	{
	    SetHint(postalCodeCell, {id:postalCodeCell.id, hint:"", head:"", style: ""});
        hideHint();
	}
}

String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ""); };

function validatePostalCode(id, valObj) 
{
	var country = document.getElementById('Country');
	var postalCode = document.getElementById('PostalCode');
	var countryZipCodeKey = "";
	var isValid = true;
	var countryCode = country.value.split('_')[1];
	countryZipCodeKey = getCountryZipCodeKey(countryCode)

	if(countryZipCodeKey!="") 
	{
		var items = countryZipCodeKey.split(":")
		
		//Strip space from SE postal code
		if (items[0] == "SE" && postalCode.value.indexOf(" " ) >= 0)
		{	
			var temp = postalCode.value;
			postalCode.value = temp.replace(/\s/g,"");
		}
		
		if (countryCode == "NL" || countryCode == "PL" || countryCode == "TR" || countryCode == "PT" || countryCode == "UK") 
		{
		    var countryPostalCode = postalCode.value.trim();
		    //UK allows whitespace in postal code.
		    if(countryCode != "UK")
		{
		        countryPostalCode = countryPostalCode.replace(" ","");
		    }
		    
			if (countryPostalCode=="") 
			{
				//{id:ele.id, msg:msg, head:head}
				updateErrLists(postalCode.id, {id:postalCode.id, msg:GetClientString('PostalCodeErrorMessage'), head:valObj.head, style:'signupinputError'}, false);
				return false;
			}
			else
			{			
				var postalRegEx =  "";//new RegExp(/^\d{4}\w{2}$/i);
				if (countryCode == "NL") 
					postalRegEx =  new RegExp(/^\d{4}( )?\w{2}$/);
				if (countryCode == "PL") 
					postalRegEx =  new RegExp(/^\d{2}(-)?\d{3}$/);
				if (countryCode == "TR") 
					postalRegEx =  new RegExp(/^\d{5}$/);
				if (countryCode == "PT") 
					postalRegEx =  new RegExp(/^\d{4}(-\d{3})?$/);
				if (countryCode == "UK")  //TFS #37594: Validate UK postal code
				    postalRegEx = new RegExp(/^[A-Za-z0-9 -_]{2,9}$/);
				
				if(postalRegEx.test(countryPostalCode)) 
				{
				    updateErrLists(postalCode.id, {style: 'signupinput'}, true);
					return true;
				}
				else 
				{
				    updateErrLists(postalCode.id, {id:postalCode.id, msg:GetClientString('ZipCodeErrorMessage'), head:valObj.head, style: 'signupinputError'}, false);
					displayPostalCodeSample(country.id, postalCode.id);
					return false;
				}
			}
		}
		if(items[1]=="1") 
		{
			if(postalCode.value.trim()=="") 
			{
			    updateErrLists(postalCode.id, {id:postalCode.id, msg:GetClientString('PostalCodeErrorMessage'), head:valObj.head, style: 'signupinputError'}, false);
				return false;
			}
			else if(!isNumeric(postalCode.value.trim())) 
			{
				if(items[0] != "US" && items[0] != "UK" && items[0] != "JP" && items[0] != "CA" && items[0] != "KR" &&
					items[0] != "NL" && items[0] != "SE") 
				{
					updateErrLists(postalCode.id, {id:postalCode.id, msg:GetClientString('LoginErrorMessage23'), head:valObj.head, style: 'signupinput'}, false);
					return false;
				}
			}
			else 
			{
				isValid = isValidPostalCode(items[0],postalCode.value.trim());
			}
		}
		else 
		{
			isValid = isValidPostalCode(items[0],postalCode.value.trim());
		}
		
		if (!isValid) 
		{
		    updateErrLists(postalCode.id, {id:postalCode.id, msg:GetClientString('LoginErrorMessage18'), head:valObj.head, style: 'signupinputError'}, false);
			return false;
		}
	}
	if(isValid == true)
	    updateErrLists(postalCode.id, {style: 'signupinput'}, true);
	return isValid;
}

function isValidPostalCode(countryCode, postalCodeValue) 
{
	if(countryCode=="AU" || countryCode=="NO" || countryCode=="DK") 
	{
		if(postalCodeValue.length != 4) 
			return false;
	}
	else if(countryCode=="FR" || countryCode=="DE" || countryCode=="IT" || countryCode=="ES" || 
		countryCode=="MX" || countryCode=="FI" || countryCode=="SE" ) 
	{
		if(postalCodeValue.length != 5) 
			return false;
	}
	else if (countryCode=="IN" || countryCode=="CA" || countryCode=="RU") 
	{
		if(postalCodeValue.length != 6) 
			return false;
	}
	else if(countryCode=="AT" || countryCode=="BE" || countryCode=="CH") 
	{
		if(postalCodeValue.length == 4) 
		{
			if(postalCodeValue.charAt(0)=="0") 
				return false;
		}
		else 
			return false;
	}
	else if(countryCode=="BR")
	{		
		if(postalCodeValue.length > 9) 
			return false;
	}
	else if (countryCode=="NL") 
	{
		if (postalCodeValue.length <= 6) 
		{
			if (postalCodeValue.charAt(0)=="0") 
			{
				return false;
			}
		} 
	}
	return true;
}

function getCountryZipCodeKey(countryCode) 
{
	// Key - "US:0" (CountryCode:IsZipCodeRequired)
	var countryCheckList = new Array("AU:1","AT:1","BE:1","CA:1","FR:1",
					                  "DE:1","IT:1","JP:1","KR:1","ES:1",
					                  "NL:1","CH:0","UK:1", "US:1", 
					                  "MX:1","SE:1","NO:1","DK:1",
					                  "FI:1", "IN:1", "BR:0","RU:1","PL:1","TR:1","PT:1");
	var items;
					  
	for(var i=0; i<countryCheckList.length; i++) 
	{
		items = countryCheckList[i].split(":");
		if(countryCode==items[0])
			return countryCheckList[i].toString();
	}
	return "";
}

function isNumeric(s) 
{ 
	var validChars = "0123456789"; 
	var c;
	for (i = 0; i < s.length; i++) 
	{
		c = s.charAt(i);
		if (validChars.indexOf(c) == -1) 
			return false;
	}
	return true;
}
//Region End
//FullName Start
function ValidateFullName(id, valObj)
{
    var fullname = document.getElementById('FullName');
    var errMsg = "";
    var fullnameValue = fullname.value.trim();
    
    if(fullnameValue.length > 2 && fullnameValue.indexOf(" ") > 0 && fullnameValue.indexOf(" ") < fullnameValue.length - 1)
    {
        //remove password ele from the errList
	    updateErrLists(id, {style: 'signupinput'}, true);
	    return true;
    }
    else
    {
        errMsg = GetClientString('PasswordErrorMessage');
        //display err hint
        updateErrLists(id, {id:id, msg:valObj.body, head: valObj.head, style: 'signupinputError'}, false);
        return false;
    }
}

//FullName End
//Password Start
function ValidatePassword(id, valObj)
{
    var Password = document.getElementById('Password');
    var fullName = document.getElementById('FullName');
    var firstname = document.getElementById('FirstName');
    var lastname = document.getElementById('LastName');
    var email = document.getElementById('Email');
    var strPassword = new String(Password.value);
    var flag = true;
    var errMsg = "";
    var firstnameValue = "";
    var lastnameValue = "";
    
    if(fullName && fullName.value.length > 2)
    {
        firstnameValue = fullName.value.substring(0, fullName.value.lastIndexOf(" "));
        lastnameValue = fullName.value.substring(fullName.value.lastIndexOf(" ")+1);
    }
    else if( firstname && lastname)
    {
        firstnameValue = firstname.value;
        lastnameValue = lastname.value;
    }
    
    //remove password ele from the errList
	updateErrLists(id, {style: 'signupinput'}, true);
    
    // Password Checker
	if (Password.value =="") {
		errMsg = GetClientString('PasswordErrorMessage');
		flag = false;
	} else if (strPassword.length < 6) {
		errMsg = GetClientString('PasswordErrorMessage');
		flag = false;
	} else if (strPassword.length > 10) {
		errMsg = GetClientString('PasswordErrorMessage');
		flag = false;
	} else if (!strPassword.match(/[0-9!@##\$%\^&\*\(\)\-_\+=\{\}\[\|:;'\?<>\.,~`"]/)) {
		errMsg = GetClientString('PasswordErrorMessage');
		flag = false;
	} else if (!strPassword.match(/[A-Za-z]/)) {
		errMsg = GetClientString('PasswordErrorMessage');
		flag = false;
	} else if (firstnameValue.length > 2 && strPassword.toUpperCase().lastIndexOf(firstnameValue.toUpperCase()) > -1) {
		errMsg = GetClientString('EmailErrorMessage5');
		flag = false;
	} else if (lastnameValue.length > 2 && strPassword.toUpperCase().lastIndexOf(lastnameValue.toUpperCase()) > -1) {
		errMsg = GetClientString('PasswordErrorMessage6');
		flag = false;
	} else if (email.value.length > 2 && strPassword.toUpperCase().lastIndexOf(email.value.toUpperCase()) > -1) {
        errMsg = GetClientString('PasswordErrorMessage7');		
		flag = false;
	} else if (Password.value.indexOf(" ") >= 0) {
		errMsg = GetClientString('PasswordErrorMessage8');
		flag = false;
	} 
	
	if(!flag)
	{
	    //remove prev confirm pwd errs
	    updateErrLists('ConfirmPassword', {style: 'signupinput'}, true);
        //display err hint
        updateErrLists(id, {id:id, msg:errMsg, head: valObj.head, style: 'signupinputError'}, false);
	}
	
	return flag;
}

function ValidateConfPassword(id, valObj)
{
    var result = true;
    var pwdEle = document.getElementById('Password');
    
    if(!pwdEle)
        return result;
    
    if(validate(pwdEle))
    {
        var ele = document.getElementById(id);
        if(!ele)
            return result;
        if(ele.value != pwdEle.value)
        {
            updateErrLists(ele.id, {id:ele.id, msg:valObj.body, head:valObj.head, style:'signupinputError'}, false);
            result = false;
        }
        else
            updateErrLists(ele.id, {style: 'signupinput'}, true);
    }
    
    return result;
}
//Password End
//Email Start
function CheckDuplicateEmail(id, valObj)
{
    var ele = document.getElementById(id);
    var prevEmail = GetClientString("PrevEmail");
    
    if(ele.value == prevEmail)
    {
        updateErrLists(id, {id:id, msg:valObj.body, head: valObj.head, style: 'signupinputError'}, false);
		return false; 
    }
    else
    {
        updateErrLists(id, {style: 'signupinput'}, true);
        return true;
    }
}

function ValidateConfEmail(id, valObj)
{
    var result = true;
    var emailEle = document.getElementById('Email');
    
    if(!emailEle)
        return result;
    
    if(validate(emailEle))
    {
        var ele = document.getElementById(id);
        if(!ele)
            return result;
		
		var email1 = emailEle.value.toLowerCase();            
		var email2 = ele.value.toLowerCase();            
        if(email1 != email2)
        {
            updateErrLists(ele.id, {id:ele.id, msg:valObj.body, head:valObj.head, style:'signupinputError'}, false);
            result = false;
        }
        else
            updateErrLists(ele.id, {style: 'signupinput'}, true);
    }
    
    return result;
}

//Email End
//Age check
function ValidateAge(id, valObj)
{
    var day = document.getElementById('Day');
    var month = document.getElementById('Month');
    var year = document.getElementById(id);
    
    //remove age ele from errList
	updateErrLists(id, {style: ''}, true);
    
    if(day.value == -1 || month.value == -1 || year.value == -1)
    {
        updateErrLists(id, {id:id, msg:GetClientString('BirthdayErrorMessage'), head: valObj.head, style: ''}, false);
		return false;
    }
    return true;
}

var onblurHandler = null;
function ShowAgeLockingMessage(eleId)
{
    var year = $get('Year');
    var month = $get('Month');
    var day = $get('Day');
    
    if(!year || !month || !day || day.value === '-1' || month.value === '-1' || year.value === '-1')
    {
        hideHint();
        return;
    }   

    var errId = dobErrDisplayEleId ? dobErrDisplayEleId: eleId;
    var ErrEle = document.getElementById(errId);
   
    var minAge = new Date();
    minAge = minAge.setYear(minAge.getYear()-18);
    var ageSelected = new Date(year.value, month.value - 1, day.value);
    var curDate = new Date();
    var curEle = $get(eleId);
    
    if(ageSelected > curDate)
    {
        showErr(ErrEle, GetClientString('BirthdayErrorMessage'), GetValidationObj(ErrEle)[0].head);
        return;
    }

    if(curEle.onblur)
        onblurHandler = curEle.onblur;
    
    if(ageSelected > minAge)
    {
        curEle.onblur = null;
        var msg = GetClientString('AgeLockingText');
        var age = curDate.getFullYear() - ageSelected.getFullYear(); 
        
        // subtract another year if we're before the birth day in the current year
        if(curDate.getMonth() < ageSelected.getMonth() || 
            (curDate.getMonth() == ageSelected.getMonth() && curDate.getDate() < ageSelected.getDate()))
        {
            age = age - 1;
        }
        
        if(msg.length > 0)
            msg = msg.replace("{0}", age);
            
        showErr(ErrEle, msg, GetClientString('AreYouSure'));
    }
    else
    {
        hideHint();
    
        curEle.onblur = onblurHandler;
    }
}

//Age check end
//Gender Start
function ValidateGender(id, valObj)
{
    var M = document.getElementById('genderM');
    var F = document.getElementById('genderF');
    if(!M.checked && !F.checked)
    {
        updateErrLists(M.id, {id:M.id, msg:GetClientString('GenderErrorMessage'), head: valObj.head, style: null}, false);
        return false;
    }
    updateErrLists(M.id, {style: null}, true);
    return true;
}

//Gender End
//Preferred Site & Language Start
function handleOnChangePreferredCulture(id) 
{
    var ele = $get('TermsDiv');
    
    if(ele)
    {
        var prefCultureDropDown = $get(id);
        if(prefCultureDropDown)
        {   
            //display secondary disclaimer for ja-JP, ko-KR
            DisplaySecondaryUserAgreement(prefCultureDropDown.value);
            //display disclaimer for selected pref culture.
            ele.innerHTML = GetClientString(prefCultureDropDown.value);
        }
    }
}

function DisplaySecondaryUserAgreement(culture)
{
    var termsJP = $get('SecondaryTermsJP');
    var termsKR1 = $get('SecondaryTermsKR1');
    var termsKR2 = $get('SecondaryTermsKR2');
    
    if(termsJP)
        termsJP.style.display = "none";
    if(termsKR1)
        termsKR1.style.display = "none";
    if(termsKR2)
        termsKR2.style.display = "none";
    
    //display secondary disclaimer, if pref culture selected is ja-JP or ko-KR 
    if(termsJP && culture === "ja-JP")
    {
        termsJP.value = termsJP.value.trim();
        termsJP.style.display = "block";
    }
    else if(termsKR1 && termsKR2 && culture === "ko-KR")
    {
        termsKR1.value = termsKR1.value.trim();
        termsKR1.style.display = "block";
        termsKR2.value = termsKR2.value.trim();
        termsKR2.style.display = "block";
    }
}
function ValidatePrefSiteLang(id, valObj)
{
    var prefCulture = document.getElementById(id);
	
	if ((prefCulture.options != null ) && (prefCulture.options.length > 1))
	{
		if (prefCulture.value == "" || prefCulture.value == " ") 
		{
			updateErrLists(id, {id:id, msg:valObj.body, head:valObj.head, style:'signupinputError'}, false);
			return false;
		} 
	}
	updateErrLists(id, {style: 'signupinput'}, true);
	return true;
}

//Preferred Site & Language End

//Terms Start
function ValidateTermsOfUse(id, valObj)
{
    var tos = document.getElementById(id);
    // TOS check
	if (!tos.checked) 
	{
		//alert("Please check the agree to our terms box.");
		updateErrLists(id, {id:id, msg: GetClientString('TOSErrorMessage'), head: valObj.head, style:null}, false);
		tos.onclick = function()
		               {
		                if(tos.checked)
		                    hideHint();
		                else 
		                    showHint(tos);
		               }
		return false;
	}
	
	updateErrLists(id, {style: null}, true);
	return true;
}

//Terms End

function ShowValidationErrors()
{
    for(var i=0; i < ErrorInputs.length; i++)
    {
        var errObj = ErrorValidators[i];
        if( errObj && typeof(errObj) != "undefined" )
        {
            var ele = document.getElementById(errObj.id);
            showErr(ele, errObj.msg, errObj.head);
            ele.className = errObj.style;
        }
    }
}

//safety tips popup
// Security Pop-up code.

var continueButton;
function DisplaySafetyTips(content, title, continueBtnTitle, cancelBtnTitle)
{
    var p = MySpace.UI.Popup.create(content, title, hideSafetyTips);
    p.addCssClass('popUp');
    continueButton = p.add_button(continueBtnTitle, false);
    continueButton.disabled = true;

    p.show();                
} 

function hideSafetyTips(popup, args)
{
    var v = document.getElementById('safetytipsread');
    if(!v.checked)
    {
        popup.show();
    }
}

function toggleContinueBtn()
{
    var v = document.getElementById('safetytipsread');
    if(v && v.checked)
    {
        continueButton.disabled = false;
    }
    else
    {
        continueButton.disabled = true;
    }
    return continueButton.enabled;
}

//
function openWin(url, title, width, height)
{
    window.open(url,title,"height="+height+",width="+width+",status=yes,toolbar=no,menubar=no,location=no,resizable=no");
}

function adjustTabHeight(tab1, tab2)
{
    var t1 = document.getElementById(tab1);
    var t2 = document.getElementById(tab2);

    if(t1 && t2)
    {
        if(t1.offsetHeight - t2.offsetHeight > 6)
        {
            t2.style.height = "27px";
        }
        else if(t2.offsetHeight - t1.offsetHeight > 6)
        {
            t1.style.height = "27px";
        }
    }
}

function adjustTabHeight(tab1, tab2, tab3)
{
    var t1 = document.getElementById(tab1);
    var t2 = document.getElementById(tab2);
    var t3 = document.getElementById(tab3);

    if(t1 && t2 && t3)
    {
        if(t1.offsetHeight - t2.offsetHeight > 6)
        {
            t2.style.height = "27px";
            t3.style.height = "27px";
        }
        else if(t2.offsetHeight - t1.offsetHeight > 6)
        {
            t3.style.height = "27px";
            t1.style.height = "27px";
        }
        else if(t3.offsetHeight - t1.offsetHeight > 6)
        {
			t2.style.height = "27px";
            t1.style.height = "27px";
        }
    }
}

function ValidateSignupInviteForm(id)
{
    //the id passed is the first input box id(could be any id). 
    //and holds the err msgs that are required 
    var eles = document.getElementsByTagName("input");
    if(!eles)
        return;
        
    var isValid = true;    
    var errEle = null;
    var valType = null;
    var emptyEleCount = 0;
    var eleCount = 0;
    var firstEleIndex = null;
    
    for(var i =0; i < eles.length; i++)
    {
        if(eles[i].className === "signupinput2" || eles[i].className === "signupinput2 exampleemail" || eles[i].className === "signupinput2 signupinput2error")
        {
            if(!firstEleIndex)
                firstEleIndex = i;
            //count the number of email inputs
            eleCount++;

            //clear prev errs
            updateErrLists(eles[i].id, {style:'signupinput2'}, true);
            
            if(eles[i].value.length == 0 || eles[i].value == eles[i].defaultValue)         
                emptyEleCount++; //count number of empty inputs
    
            //validate email(s) entered
            if(eles[i].value.length > 0 && !emailRegex.test(eles[i].value))      
            {
                valType = "regex";
                errEle = eles[i];
                isValid = false;
                //break out of the loop if there's invalid input
                break;
            }
        }
    }
    
    //if all the inputs are empty show err msg for the first input
    if(errEle == null && emptyEleCount == eleCount)
    {
        errEle = eles[firstEleIndex];
        if(errEle.value === errEle.defaultValue)
            errEle.value = "";
        valType = "required";
        isValid = false;
    }   
    
    //get all validation objs for these inputs
    //Note: as all the text boxes had same type of validations and need to display same err msgs,
    //stored all the validation objects under one id(the first text box) so that they can be used for all validations.
    var valObjs = GetValidationObj($get(id));
    var valObj = null;
    
    for(var i = 0; i < valObjs.length; i++)
    {
        if(valObjs[i].type === valType)
        {
            valObj = valObjs[i];
            break;
        }
    }
    
    if(errEle && valObj)
    {
        updateErrLists(errEle.id, {id:errEle.id, msg:valObj.body, head:valObj.head, style: valObj.style}, false);
    }
    
    return isValid;
}

// setting the webservice path
// This method also sets the handler that will be invoked before making reqests
// Sets handler to unload the eventhandlers
function setServicePath(wsPath)
{
	MySpace.Web.Modules.Signup.Services.SignupService.set_path(wsPath);
}

//Type.registerNamespace("MySpace.Signups");
//// signup class
//MySpace.Signups = function() {
//    MySpace.Signups.initializeBase(this);
//}
//
//MySpace.Signups.prototype={
//    _userEmail:null, _emailHome:null, _vConfirmationPath:null,
//    _helpMsgs:{},
//    initialize : function(){
//        MySpace.Signups.callBaseMethod(this, 'initialize');        
//    },
//    
//    dispose:function(){
//        var vEmailBtn = $get("VEmailAbiBtn");
//        if(vEmailBtn){ 
//            $removeHandler(vEmailBtn, 'click', Function.createDelegate(this,this._vEmailClicked));  
//        }
//        var reqEmailLink = $get("requestVEmail");
//        if(reqEmailLink){
//            $removeHandler(reqEmailLink, 'click', Function.createDelegate(this,this._reqAnotherClicked));
//        }
//        if(this._helpMsgs){
//            this._helpMsgs = null;
//        }
//        MySpace.Signups.callBaseMethod(this, 'dispose');
//    },
//            
//    setVEmailBtn : function(userEmail, emailHome, wsPath){
//        this._userEmail = userEmail;
//        this._emailHome = emailHome;
//        this._vConfirmationPath = wsPath;
//        var vEmailBtn = $get("VEmailAbiBtn");
//        if(vEmailBtn){            
//            $addHandler(vEmailBtn, 'click', Function.createDelegate(this,this._vEmailClicked));
//        }
//        
//        var reqEmailLink = $get("requestVEmail");
//        if(reqEmailLink){
//            $addHandler(reqEmailLink, 'click', Function.createDelegate(this,this._reqAnotherClicked));
//        }
//    },
//    
//    setSupBtn : function(sBtnId){    
//        var supBtn = $get(sBtnId);
//        if(supBtn){
//            $addHandler(supBtn, 'click', Function.createDelegate(this,this._validatePage));
//        }
//    },
//    
//    addHintMsg : function(elId, hintMsg, hintH){
//        if(elId && !this._helpMsgs[elId]){
//            this._helpMsgs[elId] = $create(MySpace.Signups.HelpMsg, {'elId':elId,'hintTxt':hintMsg, 'hintHead':hintH});
//        }
//    },
//    
//    addValidation : function(validation){        
//        if(validation){            
//            if(!this._helpMsgs[validation.id]){
//                this._helpMsgs[validation.id] = $create(MySpace.Signups.HelpMsg, {'elId':validation.id});                
//            }
//            this._helpMsgs[validation.id].vals.push(validation);
//        }
//    },
//    
//    setCustValidation : function(validation, showOnLoad){        
//        if(validation && validation.id){
//            if(!this._helpMsgs[validation.id]){
//                this.addHintMsg(validation.id);
//            }
//            this._helpMsgs[validation.id]._custValo = validation;           
//            if(showOnLoad && (!this._helpMsgs[validation.id]._helpTipo.errId || this._helpMsgs[validation.id]._helpTipo.errId === validation.id)){
//                this._helpMsgs[validation.id].showHelpMsg(1);
//            }            
//        }
//    },
//    
//    clearValidation : function(elId){
//        if(elId && this._helpMsgs[elId]){
//            this._helpMsgs[elId].hideHintMsg();
//        }
//    },        
//    
//    _vEmailClicked : function(evt){
//        window.open(this._emailHome, "new", "", false);
//        evt.preventDefault();        
//    },
//    
//    _reqAnotherClicked : function(){
//        window.location.href = this._vConfirmationPath;
//    },
//    
//    _validatePage : function(evt){    
//        var validated = true;
//        if(this._helpMsgs){
//            for(var i in this._helpMsgs){
//                validated = this._helpMsgs[i].validateAndShowErr() && validated;
//            }
//        }        
//        (!validated) && evt.preventDefault();        
//    }
//}
//MySpace.Signups.registerClass('MySpace.Signups', Sys.Component);
//
//MySpace.Signups.GetSignupso = function(){
//    var signupsInstance = $find('signupsSingleton');
//    if(!signupsInstance){
//        signupsInstance = $create(MySpace.Signups, {'id':'signupsSingleton'});
//    }
//    return signupsInstance;
//}
//
//Type.registerNamespace("MySpace.Signups.HelpMsg");
//// signup Hint and Error class
//
//MySpace.Signups.HelpMsg = function() {
//    this.hintTxt = null;
//    this.hintHead = null;    
//    this.vals = null;
//    this.elId = null;
//    this.el = null;
//    this.errCss = null;    
//    MySpace.Signups.HelpMsg.initializeBase(this);
//}
//
//MySpace.Signups.HelpMsg.prototype={
//    _boxType : -1, // 0 - Hint, 1 - Error
//    _boxCss:[{tTipCss:'supXHint',tTipPtrCss:'supXHintPtrLeft',tTipTextCss:'supXHintText'},
//             {tTipCss:'supXErr',tTipPtrCss:'supXErrPtrLeft',tTipTextCss:'supXErrText'}],
//    _helpTipo:null,
//    _custValo:null,
//    
//    initialize : function(){
//        MySpace.Signups.HelpMsg.callBaseMethod(this, 'initialize');
//        this.el = $get(this.elId);
//        if(this.el){
//            this.hintTxt && $addHandler(this.el, "focus", Function.createDelegate(this, this._showHint));
//            $addHandler(this.el, "blur", Function.createDelegate(this,this.hideHintMsg));
//        }
//        this._helpTipo = this._getHelpBox();
//        this.vals = new Array();
//    },
//    
//    dispose:function(){    
//        this.el && $clearHandlers(this.el);        
//        this._el = null;
//        this._helpTipo = null;
//        this._custValo=null;
//        this.vals = null;
//        MySpace.Signups.HelpMsg.callBaseMethod(this, 'dispose');        
//    },
//    
//    showHelpMsg : function(msgType, valIndex){
//        if(this._helpTipo){
//            this._setBoxType(msgType);
//            if(!msgType){
//                this._helpTipo.setContent(this._formatMsg(this.hintTxt, this.hintHead));
//            }
//            else{
//                if(this._custValo){
//                    this._helpTipo.setContent(this._formatMsg(this._custValo.msg, this._custValo.head));
//                    this._custValo = null;
//                }
//                else{
//                    this._helpTipo.setContent(this._formatMsg(this.vals[valIndex].body, this.vals[valIndex].head));
//                    this.errCss = this.vals[valIndex].style;
//                }                
//            }            
//            this.el && this._helpTipo.show({target:this.el});
//        }
//    },
//    
//    hideHintMsg : function(){
//        this._helpTipo && !this._helpTipo.errId && this._helpTipo.hide({target:this.el});
//        this.validateAndShowErr();
//    },
//    
//    validateAndShowErr : function(){
//        if(this.vals && this.vals.length > 0){
//            var validated = true;
//            for(var i=0;i<this.vals.length;i++){
//                if(!ValidateElement(this.el, this.vals[i])){
//                    this.errCss = this._custValo ? this._custValo.style : this.vals[i].style;
//                    Sys.UI.DomElement.addCssClass(this.el, this.errCss);
//                    if(!this._helpTipo.errId || this._helpTipo.errId === this.vals[i].id){
//                        this.showHelpMsg(1, i);
//                        this._helpTipo.errId = this.el.id;
//                    }
//                    validated = false;                    
//                    break;                
//                }
//            }
//            validated && this.hideErrMsg();
//        }
//        return validated;
//    },
//    
//    hideErrMsg : function(){
//        Sys.UI.DomElement.removeCssClass(this.el, this.errCss);
//        if(this._helpTipo.errId == this.el.id){
//            this._helpTipo.hide({target:this.el});
//            this._helpTipo.errId = null;
//        }
//    },
//    
//    // creating the tooltip for showing hint and error for express signup
//    _getHelpBox : function(){
//        var lrTipo = $find('lrTipSingleton');;
//        if(!lrTipo){
//            lrTipo = $create(MySpace.Signups.LRToolTip,{'supXVerifyTipText':0,'id':'lrTipSingleton'});
//        }
//        return lrTipo;
//     },
//    
//    _setBoxType : function(msgType){
//        if(/*msgType != this._boxType && */this._helpTipo){
//            this._boxType = msgType;
//            this._helpTipo.tTipCss = this._boxCss[this._boxType].tTipCss;
//            this._helpTipo.tTipPtrCss = this._boxCss[this._boxType].tTipPtrCss;
//            this._helpTipo.tTipTextCss = this._boxCss[this._boxType].tTipTextCss;
//            this._helpTipo.updateToolTip();
//        }
//    },
//    
//    _showHint : function(evt){
//        if(this._helpTipo && !this._helpTipo.errId){
//            this.showHelpMsg(0);
//        }
//    },
//    
//    _formatMsg : function(msg, header){
//        var tMsg = "";
//        if(header){
//            tMsg += "<b>" + decode(header) + "</b><br/>";
//        }
//        tMsg += decode(msg);
//        return tMsg;
//    }
//}
//
//MySpace.Signups.HelpMsg.registerClass('MySpace.Signups.HelpMsg', Sys.Component);
//
////Type.registerNamespace("MySpace.Signups.LRToolTip");
//MySpace.Signups.LRToolTip = function(){
//	MySpace.Signups.LRToolTip.initializeBase(this);
//}
//
//MySpace.Signups.LRToolTip.prototype ={
//    errId:false,
//    initialize : function(){
//	        MySpace.Signups.LRToolTip.callBaseMethod(this, 'initialize');
//	        if(this.targets){
//		        for(var i=0; i<this.targets.length; i++){
//			        $clearHandlers(this.targets[i]);
//		        }
//	        }		
//        },
//    	
//    dispose : function(){         
//        MySpace.Signups.LRToolTip.callBaseMethod(this, 'dispose');
//    },
//
//    updateToolTip : function(){
//        this._element && (this._element.innerHTML = this._buildTTip("up"));
//    },
//
//    // Place the tooltip on left or right of the element. 
//    // This will be based on property of tooltip instead of dynamic positioning tooltip
//    _positionToolTip : function(tipElem){
//	    var elementBounds = Sys.UI.DomElement.getBounds(tipElem);		
//    	
//	    // Showing Tooltip on right of the Element
//	    if(this._element.location == 4)
//	    {		
//		    this._element.style.left = elementBounds.x - this._element.firstChild.clientWidth + "px";
//		    this._element.location = 4;
//	    }
//	    else // Showing Tooltip on left of the Element
//	    {
//		    this._element.style.left = elementBounds.x + elementBounds.width + 10 + "px";
//		    this._element.location = 3;
//	    }
//
//	    this._element.style.top = (elementBounds.y - 7) + "px";
//    }
//}
//
//__supxFlow && MySpace.Signups.LRToolTip.registerClass('MySpace.Signups.LRToolTip', FriendsCategories.AjaxToolTip);
//
//
//Type.registerNamespace("MySpace.Signups.ArtistSup");
//// Artist signup class
//MySpace.Signups.ArtistSup = function() {
//    this.ddClass = null;
//    this.ddErrorClass = "artistGenreError";
//    this.errHeader = "";
//    this.errMsg = "";
//    this.showErr = 0;
//	MySpace.Signups.ArtistSup.initializeBase(this);	
//}
//
//MySpace.Signups.ArtistSup.prototype={
//    _ddEls : null,
//    _upDateBtn : null,
//    initialize : function(){
//        MySpace.Signups.ArtistSup.callBaseMethod(this, 'initialize');
//        _upDateBtn = MySpace.UI.getElementsByClassName("signupSubmitBtn")[0];
//        if(_upDateBtn){
//            $addHandler(_upDateBtn, "click", Function.createDelegate(this, this._fullArtistValidation));
//        }
//        
//        _ddEls = MySpace.UI.getElementsByClassName(this.ddClass);
//        for(var i = 0; i < _ddEls.length; i++){
//            $addHandler(_ddEls[i], "change", Function.createDelegate(this, this._genreddGrpValidation));
//        }
//        if(this.showErr){
//            this._fullArtistValidation(null);
//        }
//    },
//    dispose : function(){
//        MySpace.Signups.ArtistSup.callBaseMethod(this, 'dispose');
//        if(_upDateBtn){        
//            $clearHandlers(_upDateBtn);
//        }
//        if(_ddEls){
//            for(var i = 0; i < _ddEls.length; i++){
//                $clearHandlers(_ddEls[i]);
//            }
//        }
//    },
//    _genreddGrpValidation : function(){        
//        var isValid = false;
//        if(!this.ddClass){        
//            return isValid;            
//        }
//        if(!_ddEls || !_ddEls.length){
//            return isValid;
//        }
//        updateErrLists(_ddEls[0].id, {id:_ddEls[0].id, style:this.ddClass}, true);
//        for(var i = 0; i < _ddEls.length; i++){
//            if(_ddEls[i].selectedIndex > 0){
//                isValid = true;
//                break;
//            }
//        }
//        if(!isValid){            
//            updateErrLists(_ddEls[0].id, {id:_ddEls[0].id, msg:this.errMsg, head:this.errHeader, style:this.ddErrorClass}, false);
//        }
//        else {
//			updateErrLists(_ddEls[0].id, {style:this.ddClass}, true);
//        }
//        
//        return isValid;     
//    },
//    _fullArtistValidation : function(evt)
//    {
//		var isValid = this._genreddGrpValidation();
//		
//		if(isValid)
//		{
//			isValid = ValidateForm();
//		}
//		
//		if((evt !== null) && (!isValid))
//			evt.preventDefault();
//    }
//}
//
//MySpace.Signups.ArtistSup.registerClass('MySpace.Signups.ArtistSup', Sys.Component);
//
//
//function ValidateUrlName(id, valObj)
//{
//    var _txtUrl = $get(id);
//    var isValid = true;
//    
//    if(!_txtUrl)
//        return isValid;
//    
//    //clear prev errs if any
//    updateErrLists(id, {style: 'bandNameInput'}, true);   
//    
//    var errMsg = null;
//
//    //validate
//    if ((_txtUrl.value.length < 2) || (_txtUrl.value.length > 50)) {
//	    errMsg = GetClientString('UrlErrorMessage1');
//	    isValid = false;
//    }
//    if ((_txtUrl.value=='none')) {
//	    errMsg = GetClientString('UrlErrorMessage2');
//	    isValid = false;
//    }
//    if ((_txtUrl.value.search(/[^a-z0-9]/gi)>-1)) {
//	    errMsg = GetClientString('UrlErrorMessage3');
//	    isValid = false;
//    }
//    if ((_txtUrl.value.search(/[a-zA-Z]/g)==-1)) {
//		//match failed to find one alpha character
//	    errMsg = GetClientString('UrlErrorMessage4');
//	    isValid = false;
//    }	
//    
//    if(errMsg != null && !isValid)
//        updateErrLists(id, {id:id, msg:errMsg, head: valObj.head, style: 'bandNameInputError'}, false);
//        
//    return isValid;
//}    
//
//function HideContent(className)
//{
//    var eles = MySpace.UI.getElementsByClassName(className);
//    if(eles && eles.length > 0)
//    {
//        eles[0].style.display = "none";
//    }
//}