/**
 * @author Leygues Adrien - aleygues@digitas.com - 07/10	 
 * @projectDescription Tools to access Forms
 * @version 2.0
 * Courtesy of Alsy / Laurent Leborgne
 */

/* F O R M S  C O N T R O L S */


/**
* @namespace formsControls
* @method getMainFormName() return the current form name
* @method getElement() return an element
* @method getElementName() return the element Name
* @method saveElement() save the value of an element
* @method setLogin() copy the email field value to the hidden login field value
* @method doRegister() 
* @method submitForm() submit a form
* @method init() init functions
* */	

var formsControls = {
	
	getMainFormName: function (){
			if (document.forms[0]){
				return document.forms[0].name;
			}else{
				return null;
			}		
	},

	getElement: function (ElementName, eParentWrapper, sTest){
		var sFormName = this.getMainFormName();
		//if (window.console) console.log('sFormName: ' + sFormName);
		return document.forms[sFormName].elements[this.getElementName(ElementName, eParentWrapper, sTest)];
		
	},

	getElementName: function (sName, eParentWrapper, sTest){

	/*		
		if (window.console) console.log('sName : ' + sName);
		
		if (window.console) console.log('sTest : ' + sTest)
		if (window.console) console.log('eParentWrapper : ' + eParentWrapper)*/
	
		var mf = this.getMainFormName();
			
		if (sName == null || sName == "") return null;
				
		sName = sName.toLowerCase();
		var i, s, j;
			
		//If the element is in a specified wrapper
		if ((eParentWrapper !== undefined) && (eParentWrapper !== null) && (eParentWrapper.childNodes)){

			for (i=0;i<eParentWrapper.childNodes.length;i++){
				if ((eParentWrapper.childNodes[i].name) && (eParentWrapper.childNodes[i].name.toLowerCase().lastIndexOf(sName) != -1)){
		
					var strform = eParentWrapper.childNodes[i].name.toLowerCase();
					var strformname = strform.substr(strform.lastIndexOf(sName));
					if (strformname == sName)
						return eParentWrapper.childNodes[i].name;
				}	
			}			
			
		}else{
				
			for (i=0;i<document.forms[mf].elements.length;i++){
				if (document.forms[mf].elements[i].name){
				    if (document.forms[mf].elements[i].name.toLowerCase().lastIndexOf(sName) != -1){
    					
					    var strform = document.forms[mf].elements[i].name.toLowerCase();
					    var strformname = strform.substr(strform.lastIndexOf(sName));
					    if (strformname == sName)
						    return document.forms[mf].elements[i].name;
				    }	
				}
			}
			
		}
		
		//if (window.console) console.log('GETELEMENT NULL')
		return null;
		
	},

	saveElement: function (elementObject, elementValue, index){

		var element  = formsControls.getElement(elementObject);
		
		if (element != null){
			if (index != 0) //Pour ne pas mettre le "selectionner dans l'element"
				element.value = elementValue;
			else
				element.value = "";
		}	
	},

	setLogin: function (sLoginName){
	
		var mf = this.getMainFormName();
		if (mf==null) return;
		var login = this.getElementName('login', document.getElementById('loginWrapper'));
		
		if (login!= null)
			document.forms[mf].elements[this.getElementName('login', document.getElementById('loginWrapper'))].value = sLoginName;
			document.forms[mf].elements[this.getElementName("hidden_login",mf)].value = sLoginName;			
			
	},

	doRegister: function (buttonName){
	
		var mf = this.getMainFormName();
		if (mf==null) return;

		if ((event.which && event.which == 13) || (event.keyCode && event.keyCode == 13)){
			document.forms[mf].all(buttonName).click();
			return false;
		}
		else{
			return true;
		}
		
	},
	
	submitForm: function(){
		this.getMainFormName().submit();
	},
	
	init: function(){
		
		eLogin = formsControls.getElement('login', document.getElementById('loginWrapper'));
		eEmail = formsControls.getElement('email', document.getElementById('loginWrapper'));
		
		if (eLogin && eEmail)
			addEvent(eEmail, 'blur', function(){ formsControls.setLogin(eEmail.value); }, false);

	}
	
};



/**
 * oFakeInput
 * aleygues@digitas.com
 * 2007
 */

var oSwitchPassword = {
	
	//http://alt-tag.com/blog/archives/2006/02/ie-dom-bugs/
  	replaceInput: function(element){
		
		if (element){
			oTextInput = document.createElement('input');
			oTextInput.setAttribute('type','text');
			oTextInput.setAttribute('value','');
			element.parentNode.replaceChild(oTextInput, element);
		
			oTextInput.onfocus = function(){
        	    if (oTextInput.value != ""){		
					oTextInput.parentNode.replaceChild(element, oTextInput);
					//Handle the focus as far as ie bugs
					if (element.select())
						element.select();
				}
			}
		}
   },
   
   init: function(){
   		oSwitchPassword.replaceInput(formsControls.getElement('Password'), document.getElementById('regOkContent'));
	}
     
};


//addEvent(window, 'load', oSwitchPassword.init, false);
addEvent(window, 'load', formsControls.init, false);

