﻿
var postbackElement;
var buttonsToScrollOnClick = '';
var scrollXPos = 0, scrollYPos = 0;


var stdSubmit;
if (!typeof (theForm) === "undefined") {
    stdSubmit = theForm.onsubmit;
    theForm.onsubmit = submitHandler;
}

String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); }


addEvent(window,"load",labels_init);


function beginRequest(sender, args) {
        postbackElement = args.get_postBackElement();
}

function pageLoaded(sender, args) { 
    if (typeof(postbackElement) === "undefined") {
        return;
    } 
    if (buttonsToScrollOnClick.indexOf(postbackElement.id) > -1){
           window.scrollTo(scrollXPos, scrollYPos); 
        }
} 

function setupScrolling(buttonIds, xPos, yPos) {
    buttonsToScrollOnClick = buttonIds;
    scrollXPos = xPos;
    scrollYPos = yPos;
    Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginRequest);
    Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoaded)
}

function disableAllSubmitButtons() {
	var submits = document.forms[0].getElementsByTagName('input'); 
	for (i=0; i<submits.length; i++) { 
		if (submits[i].type == 'submit') {
			submits[i].disabled = true; 
		}
	}
}

function submitHandler() { 
   window.setTimeout('disableAllSubmitButtons()', 1);
   if (stdSubmit)
      return stdSubmit;
   return true;
}




function labels_init(){
    if(document.getElementById&&document.styleSheets){
        try{
            var s=document.styleSheets[document.styleSheets.length-1];
            addStyleRule(s,"label.fieldcontent","position:absolute; visibility:hidden;");
            for(var i=0,label=null;(label=document.getElementsByTagName("label")[i]);i++){
                if(label.className=='fieldcontent'){label_init(label);}
            }
            addEvent(document.forms[0],"submit",labels_uninit);}
        catch(e){}
     }
}

function labels_uninit(e){
    if(document.getElementById&&document.styleSheets){
        for(var i=0,label=null;(label=document.getElementsByTagName("label")[i]);i++)
        {
            var el=document.getElementById(label.htmlFor);
            if(el&&el.value==el._labeltext)
                label_hide(el);
        }
    }
}

function label_init(label){
    try{
        var el=document.getElementById(label.htmlFor);
        var elName=el.nodeName;
        var elType=el.getAttribute("type");
        if(elName=="TEXTAREA"||(elType=="text"||elType=="password")){
            el._labeltext=label.firstChild.nodeValue;el._type=el.getAttribute("type");
            addEvent(el,"focus",label_focused);
            addEvent(el,"blur",label_blurred);
            label_blurred({currentTarget:el});
        }
        else{
            label.style.position="static";label.style.visibility="visible";
        }
    }
    catch(e){label.style.position="static";label.style.visibility="visible";}
}

function label_focused(e){
    e=fix_e(e);var el=e.currentTarget;if(el.value==el._labeltext)el=label_hide(el)
    el.select();
}

function label_hide(el){
    if(el._type=="password")
        el=label_setInputType(el,"password");
    el.value="";
    return el;
}

function label_blurred(e){
    e=fix_e(e);
    var el=e.currentTarget;
    if(el.value=="")
        el=label_show(el);
}

function label_show(el){
    if(el._type=="password")
        el=label_setInputType(el,"text");
    el.value=el._labeltext;
    return el;
}

function label_setInputType(el,type){
    if(navigator.appName=="Microsoft Internet Explorer"){
        var newEl=document.createElement("SPAN");
        newEl.innerHTML='<input type="'+type+'" />';
        newEl=newEl.firstChild;
        var s='';
        for(prop in el){
            try{
                if(prop!="type"&&prop!="height"&&prop!="width")
                    newEl[prop]=el[prop];
            }
            catch(e){}
        }
        addEvent(newEl,"focus",label_focused);
        addEvent(newEl,"blur",label_blurred);
        el.parentNode.replaceChild(newEl,el);
        return newEl;
    }else{
        el.setAttribute("type",type);
        return el;
    }
}

function addEvent(obj,evType,fn){
    if(obj.addEventListener){
        obj.addEventListener(evType,fn,false);
        return true;
    }else if(obj.attachEvent){
        var r=obj.attachEvent("on"+evType,fn);
        return r;
    }else{return false;}
}

function addStyleRule(stylesheet,selector,rule){
    if(stylesheet.addRule)
        stylesheet.addRule(selector,rule);
    else{
        var index=stylesheet.cssRules.length;stylesheet.insertRule(selector+"{"+rule+"}",index);
    }
}

function fix_e(e){
    if(!e&&window.event)
        e=window.event;
    if(!e.currentTarget&&e.srcElement)
        e.currentTarget=e.srcElement;
    if(!e.originalTarget&&e.srcElement)
        e.originalTarget=e.srcElement;
    return e;
}

function toggleLogin(){
    unpopp();
    var login_div=document.getElementById('login-form');
    if(login_div.style.display=='none')
        Effect.Appear('login-form',{duration:1.0,afterFinish:changeLoginFocus});
    else
        Effect.Fade('login-form',{duration:1.0});
    return(false);
}

function changeLoginFocus(){
    document.getElementById('side-username').focus();
}

function charCounter(field,maxLength,countTarget){
    var inputLength = field.value.length;
    if(inputLength >= maxLength){
        field.value = field.value.substring(0, maxLength);
    }
    countTarget.innerHTML = maxLength-field.value.length;
}


