function ValidatePicture (object, args){     	
	args.IsValid = false;
	args.IsValid = isPicture(document.getElementById('PhotoUpload').value)
}
function isEmail(testStr){
	return (!(testStr.indexOf("@") <0) && !(testStr.indexOf(".") <0))
}

function y2k(number) { return (number < 1000) ? number + 1900 : number; }

function isDate(testStr){
	sep="/"
    if (testStr.length == 10) {
        if (testStr.substring(2,3) == sep && testStr.substring(5,6) == sep) {
            var date  = testStr.substring(0,2);
            var month = testStr.substring(3,5);
            var year  = testStr.substring(6,10);

            var test = new Date(year,month-1,date);

            if (year == y2k(test.getYear()) && (month-1 == test.getMonth()) && (date == test.getDate())) {
                reason = '';
                return true;
            }
            else {
                reason = 'valid format but an invalid date';
                return false;
            }
        }
        else {
            reason = 'invalid spearators';
            return false;
        }
    }
    else {
        reason = 'invalid length';
        return false;
    }

}
function isNumber(testStr){
	var regex = /[^0-9\.]/;
	return !regex.test(testStr);
}
function isPhoneNumber(testStr){
	var regex = /[^0-9 \+]/;
	return !regex.test(testStr);
}
function isMoney(testStr){
	var regex = /[^0-9\u00A3,\. ]/;
	return !regex.test(testStr);	
}
function isPicture(fileName){
	return (fileName == "" || (fileName.indexOf(".jpg") > -1) || (fileName.indexOf(".jpeg") > -1) || (fileName.indexOf(".gif") > -1))
}
function validateOneField(field,testStr,msg){
	if((!(document.getElementById(field).value == testStr)&&!(document.getElementById(field).value==""))){
		valid=true
	}else{
		alert(msg)
		valid=false
	}
	return valid
}

function changeDivHeight() {
    var h = document.getElementById("footer").offsetTop
	if (h<=0){
	var h = document.body.clientHeight
	}
    document.getElementById('sideMenu').style.height = h-90+ "px";
    document.getElementById('ad').style.height = document.getElementById('sideMenu').style.height
}


function radioValidation(groupID) {
	group = document.getElementById(groupID)
	tag=group.getElementsByTagName('input')
	len = tag.length
	n=-1
	for(i=0;i<len;i++){
		if(tag[i].checked){
			n=1
		}
	}
	return(n!=-1)
}

function fuzzyValidation(fields,req,type,def){
	var aFields = fields.split(",")
	var aReq = req.split(",")
	var aType = type.split(",")
	var aDef = def.split(",")
	valid=false
	var validT = new Array()
	for(var i = 0; i < aFields.length; i++){
		if (aReq[i]=='true'&&document.getElementById(aFields[i]).value==""||document.getElementById(aFields[i]).value==aDef[i]){
			document.getElementById('validate_' + aFields[i]).innerHTML="This must be filled in!"
			validT[i] = false
		}else if(aType[i]!='null'){
			
			document.getElementById('validate_' + aFields[i]).innerHTML=""
				switch(aType[i]){
					case(aType[i]="money"): 
					  validT[i] = isMoney(document.getElementById(aFields[i]).value);
					  msg="This must be a currency value!"
					break
					case(aType[i]="number"): 
					  validT[i] = isNumber(document.getElementById(aFields[i]).value); 
					  msg="This must be a number!"
					break
					case(aType[i]="email"): 
					  validT[i] = isEmail(document.getElementById(aFields[i]).value);
					  msg="This must be an email address"
					break
					case(aType[i]="confirmemail"): 
					  validT[i] = isEmail(document.getElementById(aFields[i]).value)&& document.getElementById(aFields[i]).value == document.getElementById(aFields[i-1]).value;
					  
					  msg="This must be an email address and be the same as your first entry"
					break
					case(aType[i]="confirm"): 
					  validT[i] = document.getElementById(aFields[i]).value&& document.getElementById(aFields[i]).value == document.getElementById(aFields[i-1]).value;
					  
					  msg="This must be the same as your first entry"
					break
					case(aType[i]="phone"): 
					  validT[i] = isPhoneNumber(document.getElementById(aFields[i]).value);
					  msg="This must be a phone number" 
					break
					case(aType[i]="date"): 
					  validT[i] = isDate(document.getElementById(aFields[i]).value);
					  msg="This must be a valid date (dd/mm/yyyy)" 
					break
					case(aType[i]="radio"): 
					  validT[i] = radioValidation(aFields[i]);
					  msg="Please select an option" 
					break
					}
				if(!validT[i]){
					document.getElementById('validate_' + aFields[i]).innerHTML=msg
				}else{
					document.getElementById('validate_' + aFields[i]).innerHTML=""
				}
		}else{
			document.getElementById('validate_' + aFields[i]).innerHTML=""
			validT[i] = true
		}
	}
	if(!(validT.join(",").indexOf("false") < 0)){
		alert("Please ensure the marked fields are all filled in")
	}
	return validT.join(",").indexOf("false") < 0
}