$(document).ready(function(){
	
	$('#PowerFAQS .multiquestion .question').click(function(){
		$($(this).parent()).children('dd').slideToggle("slow");
	});
	
    $('img').hover(function() {
		
		if ($(this).attr('hoversrc') != undefined) {
			
			var currentImg = $(this).attr('src');
			$(this).attr('src', $(this).attr('hoversrc'));
			$(this).attr('hoversrc', currentImg);
		}
    }, function() {
		
		if ($(this).attr('hoversrc') != undefined) {
			
			var currentImg = $(this).attr('src');
			$(this).attr('src', $(this).attr('hoversrc'));
			$(this).attr('hoversrc', currentImg);
		}
    });
	
	$('img').click(function() {
		if ($(this).attr('clicksrc') != '') {
			var currentImg = $(this).attr('src');
			$(this).attr('src', $(this).attr('clicksrc'));
			$(this).attr('clicksrc', currentImg);
		}
    });
	
	$('input').focus(function(){
		if($(this).hasClass('notValid')){
			$('.PowerValidateMessage').removeClass('PowerOn');
			var PowerMessageSelector = "#PV_" + $(this).attr('name');
			$(PowerMessageSelector).addClass('PowerOn');
		}
	});
	
	$('input').change(function(){
		if ($(this).attr('Required')) {
			if ($(this).attr('Required').toLowerCase() == 'true') {
				checkPowerValidateRequired($(this));
			}else if ($(this).attr('Required').toLowerCase() == 'yes') {
				checkPowerValidateRequired($(this));
			}else if ($(this).attr('Required').toLowerCase() == 'email') {
				checkPowerValidateEmailRequired($(this));
			}else if ($(this).attr('Required').toLowerCase() == 'phone') {
				checkPowerValidatePhoneRequired($(this));
			}
		}
	});
});

function addPowerValidateMessage(inputname, inputmessage, type){
	var inputSelector = "input[name=" + inputname + "]";
	var PowerMessageSelector = "#PV_" + inputname;
	$(inputSelector).addClass("notValid");
	if(!($(inputSelector).attr('required'))){
		$(inputSelector).attr('required', type);		
	}
	if(!($(inputSelector).attr('message'))){
		$(inputSelector).attr('message', inputmessage);		
	}
	$(inputSelector).before("<div id='PV_" + inputname + "' class='PowerValidateMessage'><div class='message'>" + inputmessage + "</div><div class='arrow'></div></div>");
	var PowerMessageTop = $(inputSelector).position().top - $(PowerMessageSelector).height() + 'px';
	var PowerMessageLeft = $(inputSelector).position().left - (($(PowerMessageSelector).width() - $(inputSelector).width())/2) + 'px';
	$(PowerMessageSelector).css('top',PowerMessageTop);
	$(PowerMessageSelector).css('left',PowerMessageLeft);
	focusFirstPowerValidateMessage();
}

function removePowerValidateMessage(inputname){
	var inputSelector = "input[name=" + inputname + "]";
	var PowerMessageSelector = "#PV_" + inputname;
	$(inputSelector).removeClass('notValid');
	$(PowerMessageSelector).remove();
}

function focusFirstPowerValidateMessage(){
	var PowerMessageSelector = "#PV_" + $('.notValid:first').attr('name');
	$('.notValid:first').focus();
	$(PowerMessageSelector).addClass('PowerOn');
}

function checkPowerValidateRequired(input){
if($(input).val().length > 0){
		removePowerValidateMessage($(input).attr('name'));
		$(input).addClass("isValid");
		return true;
	} else {
		$(input).removeClass("isValid");
		if($(input).hasClass('notValid') == false){
			addPowerValidateMessage($(input).attr('name'),$(input).attr('message'),'true');
		}
		return false;
	}
}

function checkPowerValidateEmailRequired(input){
	if($(input).val().indexOf("@") > 0){
		removePowerValidateMessage($(input).attr('name'));
		$(input).addClass("isValid");
		return true;
	} else {
		$(input).removeClass("isValid");
		if($(input).hasClass('notValid') == false){
			addPowerValidateMessage($(input).attr('name'),$(input).attr('message'),'email');
		}
		return false;
	}
}

function checkPowerValidatePhoneRequired(input){
	var phonenumber = $(input).val();
	phonenumber = phonenumber.replace(/ /g,"");
	phonenumber = phonenumber.replace(/-/g,"");
	phonenumber = phonenumber.replace(/\./g,"");
	phonenumber = phonenumber.replace(/\)/g,"");
	phonenumber = phonenumber.replace(/\(/g,"");
	if(phonenumber.length > 9){
		$(input).addClass("isValid");
		removePowerValidateMessage($(input).attr('name'));
		return true;
	} else {
		$(input).removeClass("isValid");
		if($(input).hasClass('notValid') == false){
			addPowerValidateMessage($(input).attr('name'),$(input).attr('message'),'phone');
		}
		return false;
	}
}

function checkAllPowerValidateFields(FormSelector) {
	var AllValid = true;
	var ThisIsValid = true;
	
	var EachSelector = FormSelector + ' :input';
	$(EachSelector).each(function(){
		if ($(this).attr('Required')) {
			if ($(this).attr('Required').toLowerCase() == 'true') {
				ThisIsValid = checkPowerValidateRequired($(this));
			}else if ($(this).attr('Required').toLowerCase() == 'yes') {
				ThisIsValid = checkPowerValidateRequired($(this));
			}else if ($(this).attr('Required').toLowerCase() == 'email') {
				ThisIsValid = checkPowerValidateEmailRequired($(this));
			}else if ($(this).attr('Required').toLowerCase() == 'phone') {
				ThisIsValid = checkPowerValidatePhoneRequired($(this));
			}
		}
		if(!(ThisIsValid)){
			AllValid = false;
		}
	});
	
	return AllValid;
}

function PowerValidate(Form){
	var FormSelector = 'form[name=' + $(Form).attr('name') + ']';
	return checkAllPowerValidateFields(FormSelector);
}
