/*
Some useful script, moved from javascriptcoy.js to reduce script size.
*/

function validDate(dt) {
	if (dt.length != 10) {
		return false;
	} else {
		var dtsplit = dt.split('/');
		if (dtsplit.length != 3) {
			return false;
		} else if (isNaN(dtsplit[0]) || isNaN(dtsplit[1]) || isNaN(dtsplit[2])) {
			return false;
		} else {
			return true;
		}
	}
}

function newDate(dt) {
	var dtstr = dt.split('/');
	return new Date(dtstr[1] + '/' + dtstr[0] + '/' + dtstr[2]);
}

function y2k(number) { return (number < 1000) ? number + 1900 : number; }

function daysBetween(dt1,dt2) {
	if (validDate(dt1) && validDate(dt2)) {
		var date1 = newDate(dt1);
		var date2 = newDate(dt2);
		var daysApart = Math.abs(Math.round((date1-date2)/86400000));
		return daysApart;
	} else {
		return 0;
	}
}


//date string type dd/mm/yyyy
function getAge(dateString) {
    var now = new Date();
    var today = new Date(now.getYear(),now.getMonth(),now.getDate());

    var yearNow = now.getYear();
    var monthNow = now.getMonth();
    var dateNow = now.getDate();

    if ((dateString == '') || (dateString == '__/__/____') || !validDate(dateString)) {
		return Array (0,0,0);
		exit;
	}
	var dob = new Date(dateString.substring(6,10),
                            dateString.substring(3,5)-1,
                            dateString.substring(0,2));
    var yearDob = dob.getYear();
    var monthDob = dob.getMonth();
    var dateDob = dob.getDate();

    yearAge = yearNow - yearDob;

    if (monthNow >= monthDob)
        var monthAge = monthNow - monthDob;
    else {
        yearAge--;
        var monthAge = 12 + monthNow -monthDob;
    }
    if (dateNow >= dateDob)
        var dateAge = dateNow - dateDob;
    else {
        monthAge--;
        var dateAge = 31 + dateNow - dateDob;

        if (monthAge < 0) {
            monthAge = 11;
            yearAge--; 
        }
    }
	sYear = String(yearAge);
	if (sYear.length > 3) {
		yearAge = parseInt(sYear.substring(2));
	}
	res = new Array (yearAge,monthAge,dateAge);
	return res;
}

function isThousands(position) {
	if (Math.floor(position/3)*3==position) return true;
	return false;
};

function formatNum(theNumber) {
	var theThousands = digitThousand;
	var theDecimal = digitDecimal;
	var theDecimalDigits = Math.round((theNumber*100)-(Math.floor(theNumber)*100));
	theDecimalDigits = ""+ (theDecimalDigits + "0").substring(0,digitAfter);
	theNumber = ""+Math.floor(theNumber);
	var theOutput = '';
	for (x=0; x<theNumber.length; x++) {
		theOutput += theNumber.substring(x,x+1);
		if (isThousands(theNumber.length-x-1) && (theNumber.length-x-1!=0)) {
			theOutput += theThousands;
		}
	}
	if (digitAfter > 0) theOutput += theDecimal + theDecimalDigits;
	return theOutput;
};

function calculate(obj1,obj2,operation) {
	if (typeof obj1 == 'object') nobj1 = obj1.value; else nobj1 = obj1;
	if (typeof obj2 == 'object') nobj2 = obj2.value; else nobj2 = obj2;
	
	var nobj1 = String(nobj1);
	nobj1 = nobj1.replace('.','');
	var nobj2 = String(nobj2);
	nobj2 = nobj2.replace('.','');

	var n1,n2;
	if (!isNaN(nobj1) && nobj1 != '') n1 = parseFloat(nobj1); else n1 = 0;
	if (!isNaN(nobj2) && nobj2 != '') n2 = parseFloat(nobj2); else n2 = 0;
	if (operation == '+') {
		return n1+n2;
	} else if (operation == '*') {
		return n1*n2;
	} else if (operation == '-') {
		return n1-n2;
	} else if (operation == '/') {
		return n1/n2;
	}
}

function calcVal(obj,operation) {
	var objval;
	if (typeof obj == 'string') {
		objval = obj.split('|');
	} else {
		objval = obj;
	}
	var x = new Array();
	var nobj,nval,kar;
	for (a=0; a<obj.length; a++) {
		nobj = String(objval[a]);
		nval = '';
		for (b=0; b<nobj.length; b++) {
			kar = nobj.charAt(b);
			if (kar != '.') nval += kar;
		}
		if (!isNaN(nval) && nval != '') nint = parseFloat(nval); else nint = 0;
		x.push(nint);
	}
	var xctr = 0;
	var syntax = '';
	for (a=0; a<operation.length; a++) {
		kar = operation.charAt(a);
		if (kar == 'n') {
			kar = x[xctr];
			xctr++;
		}
		syntax += kar;
	}
	var out = eval(syntax);
	return out;
}
