/************************************************************** 
 * Cross-browser event handling, by Scott Andrew
 **************************************************************/
function addEvents(element, eventType, lamdaFunction, useCapture) {
    if (element.addEventListener) {
        element.addEventListener(eventType, lamdaFunction, useCapture);
        return true;
    } else if (element.attachEvent) {
        var r = element.attachEvent('on' + eventType, lamdaFunction);
        return r;
    } else {
        return false;
    }
}

/************************************************************** 
 * Clear Default Text: functions for clearing and replacing default text in
 * <input> elements.
 * by Ross Shannon, http://www.yourhtmlsource.com/
 **************************************************************/

function clearDefaultText(e) {
    var target = window.event ? window.event.srcElement : e ? e.target : null;
    if (!target) {
    	return;
    }
    
    if (target.value == target.defaultText) {
        target.value = '';
    }
}

function replaceDefaultText(e) {
    var target = window.event ? window.event.srcElement : e ? e.target : null;
    if (!target) {
    	return;
    }
    
    if (target.value === '' && target.defaultText) {
        target.value = target.defaultText;
    }
}

function init() {
    var formInputs = document.getElementsByTagName('input');
    for (var i = 0; i < formInputs.length; i++) {
        var theInput = formInputs[i];
        
        if (theInput.type == 'text' && (theInput.className.match(/\bcleardefault\b/) || theInput.id.match(/\SearchForm_SearchForm_Search\b/) || theInput.id.match(/\SignupForm_AfterContent_Surname\b/) || theInput.id.match(/\SignupForm_AfterContent_Email\b/) || theInput.id.match(/\SignupForm_AfterContent_FirstName\b/) )) {  
            /* Add event handlers */          
            addEvents(theInput, 'focus', clearDefaultText, false);
            addEvents(theInput, 'blur', replaceDefaultText, false);
            
            /* Save the current value */
            if (theInput.value !== '') {
                theInput.defaultText = theInput.value;
            }
        }
    }
}

DOMAssistant.DOMReady(init); 

/************************************************************** 
 * Validate subscribe fields
 **************************************************************/

function validateForm(objElem) {

	if ($$('SignupForm_AfterContent_FirstName').value == "First Name:" || $$('SignupForm_AfterContent_FirstName').value == "" ) {
		$$('SignupForm_AfterContent_FirstName').addClass("validation-error");
//		alert('fn');
		return false;
	}

	if ($$('SignupForm_AfterContent_Surname').value == "Surname:" || $$('SignupForm_AfterContent_Surname').value == "" ) {
		$$('SignupForm_AfterContent_Surname').addClass("validation-error");
//		alert('sn');
		return false;
	}

	if ($$('SignupForm_AfterContent_Email').value == "Email:" || $$('SignupForm_AfterContent_Email').value == "" ) {
		$$('SignupForm_AfterContent_Email').addClass("validation-error");
//		alert('em');
		return false;
	}
	
}

// removes the 'error' class on focus
function unValidateField(objElem) {
	
	if ($(objElem).hasClass("validation-error")) {
		$(objElem).removeClass("validation-error");
	}
}

// checks for defaults and errors if found. Email is handled by PHP
function validateField(objElem) {
	
	
	if (objElem.value == "First Name:" || objElem.value == "Surname:" || objElem.value == "Email:" || objElem.value == "") {
		$(objElem).addClass("validation-error");
		objElem.value="";
		return false;
	}
}

// fired on load for Subscribe page.
function signupForm() {

	//remove labels from view
	$$("SignupForm_AfterContent").elmsByTag("label").each(function () {
		$(this).style.display="none";	
	});

	//add in labels to input boxes
	if($$('SignupForm_AfterContent_FirstName').value == "") { $$('SignupForm_AfterContent_FirstName').value = "First Name:"; }
	if($$('SignupForm_AfterContent_Surname').value == "") { $$('SignupForm_AfterContent_Surname').value = "Surname:"; }
	if($$('SignupForm_AfterContent_Email').value == "") { $$('SignupForm_AfterContent_Email').value = "Email:"; }

	//add validation to inputs
	$$("SignupForm_AfterContent").elmsByTag("input").each(function () {
		$(this).addClass("more-space");
		$$(this).addEvent("blur", function () {validateField(this);}); 
		$$(this).addEvent("focus", function () {unValidateField(this);}); 
	});

	//add validation to form submit
	$$("SignupForm_AfterContent").addEvent("submit", function () {return validateForm(this);}); 


	init();

}