/*
 
 function PanelItem (name, content, height) {
    this.name = name;
    this.content = content;
	this.height = height;
    this.getInfo = function() {
        return this.name + ' ' + this.ref;
    };
}

*/


function MineForm() {}
MineForm.Get = function(id) {
	return $('#' + id).attr('value');
}
MineForm.Valid = function(form){
	var id = '';
	var dirty = false;
	var message = '';
	for (f in form)	
	{
		switch(f) {
			case 'id':
				id = '#' + form[f];
				break;
			default:
				var val = $(id + ' #' + f).attr('value');
				var type = form[f];
				switch(type.split(',')[0])
				{
					case 'selected':							
						$(id + ' #' + f).parent().removeClass('error');
						$(id + ' #' + f).removeClass('error');
						break;
					default:
						$(id + ' #' + f).removeClass('error');
						break;
				}
				var result =  MineForm.TypeValid(type, val);				
				if (result[0] == false) {
					message += result[1] + "\n";
					switch(type.split(',')[0])
					{
						case 'selected':							
							$(id + ' #' + f).parent().addClass('error');
							$(id + ' #' + f).addClass('error');
							break;
						default:
							$(id + ' #' + f).addClass('error');
							break;
					}
					dirty = true;
				}
				break;
		}
	}

	if (dirty) {
		alert(message);
		return false;	
	} else {
		return true;
	}

}
MineForm.TypeValid = function(type, value) {
	
	t = type.split(',');
	if (value.length > 0) {
		switch(t[0])
		{
			case 'name':
				if (value.length > 2) {
					return [true,''];
				} else {
					return [false,t[1] + ' is invalid'];
				}
			case 'zip':
				return [Zip.Valid(value), t[1] + ' is invalid'];		
			case 'phone':
				return [Phone.Valid(value), t[1] + ' is invalid'];		
			case 'email':
				return [Email.Valid(value), t[1] + ' is invalid'];
			case 'selected':
				if(value == '') {
					return [false, t[1] + ' is invalid'];
				} else {
					return [true,''];
				}
			default:
				return [false,'type not valid'];
		}
	} else {
		switch(t[0])
		{
			case 'selected':
				return [false, 'Please select your ' + t[1]];
			default:
				return [false, t[1] + ' was left blank'];
		}
	}
}
function Email() {}
Email.Valid = function(email) {
		if (email.length > 0) {
		var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
		return emailReg.test(email);
	} else {
		return false;
	}
}


function Zip() {}
Zip.Valid = function(zip) {
	z = zip.split('-');
	zip = z[0].replace(/[^\d]/g,'');
	if (z.length > 1) {
		zip += z[1].replace(/[^\d]/g,'');
	}
	
	if (!isNaN(parseFloat(zip)) && isFinite(zip)) {
		switch(zip.length) {
			case 5:					
				return true;
			case 9:
				if (z.length > 1) {
					return true;	
				}
			default:
				return false;
		}
	}
	return false;
}
function Phone() {}
Phone.Valid = function(phone) {
	phone = phone.replace(/[^\d]/g,'');
	switch(phone.length) {		
		case 11:
			if(phone.substring(0,1) == '1') {
				phone = phone.substring(1);            
				return Phone.IsValidAreaPref(phone);
			} else {
				return false;
			}
		case 10:
		  return Phone.IsValidAreaPref(phone);	
		default:
			return false;
	}	
}
Phone.IsValidAreaPref = function(phone) {
	var ba = new Array( "123", "111", "222", "333", "444", "555", "666", "777", "999", "000" );
	var bp = new Array( "000", "555" );    
	var isValid = true;
	var area = phone.substring(0, 3);    
	var pref = phone.substring(3, 6);

	for (var i = 0; i < ba.length; i++)
	{
		if (area == ba[i])
		{
			isValid = false;
		}
	}
	for (var i = 0; i < bp.length; i++)
	{        
		if (pref == bp[i])
		{
			isValid = false;
		}
	}
	return isValid;
}


	


